banhuafen
级别: 探索解密
精华主题: 0
发帖数量: 36 个
工控威望: 165 点
下载积分: 622 分
在线时间: 77(小时)
注册时间: 2012-11-27
最后登录: 2024-05-11
查看banhuafen的 主题 / 回贴
楼主  发表于: 2023-12-25 10:14
有个项目,共有十套200SMART PLC,挂在一个交换机上,不用加任何硬件,PLC间如何读取数据?
本帖最近评分记录:
  • 下载积分:+1(朝阳-haiyun)
    gxtmdb82164
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 662 个
    工控威望: 1040 点
    下载积分: 135 分
    在线时间: 534(小时)
    注册时间: 2019-09-22
    最后登录: 2024-05-13
    查看gxtmdb82164的 主题 / 回贴
    1楼  发表于: 2023-12-25 15:44
    10套有点小问题,S7-200 SMART的开放式以太网通讯资源是8个主动资源8个被动资源。
    加上触摸屏之类的,全部用一种方式会受限的,就看是怎么设计整个交互逻辑,是全部对全部还是一对一

    一对一就很简单了~

    如果是全部对全部,稍微有点麻烦~
    数据量不大的话,提供一种思路模拟ethcat,可以试试看:
    就是简单粗暴的全部搞一起比如100个字节,每台设备10个字节,OP1主动put到OP2,一次把100个字节全发过去,同一个地址区域,OP2主动Put到OP3,以此类推,最后OP10主动put到OP1,一圈下来,所有的通信数据都在这100个字节里面了。然后OP1只对自己的10个字节,比如VB0~VB9做写入操作,其他区域都是读,OP2对应VB10~VB19。。。OP10对应VB90~VB99

    这里是主动投递数据用的put,用get也是一样的,一组put或者get指令一次最大可以走212个字节,如果只是投递控制数据是完全够用的,如果要同步数据比如条码之类的可能就够呛。

    如果通信有严格的时序要求,可以自己模拟一个心跳信号用于,比如每台设备的数据区域的第1个字节,由上一台设备做自增,本地设备缓存这个字节并且和通信区域做比对,有变化了说明一次通信结束了,当前的数据已经刷新,那么再开始往下一台设备投递,投递前把下一台设备的自增变量+1,方便下一台设备判断是否有数据刷新~
    本帖最近评分记录:
  • 下载积分:+1(zlcp123) 思路不错
  • 下载积分:+2(曾经的我) 好贴好贴!