发布于 2018-07-16 20:48:40
11楼
曾经试过用Modbus Slavel模拟127.0.1.1~127.0.1.64共64个服务器测试过,每个TCP服务器30个保持寄存器。
嗯,能连上,但是WinCC画面中的变量频繁的显示灰色****(同一个画面显示所有变量),感觉就是很不稳定。但是分开每个画面只显示一个服务器的变量完全就不会显示***的问题,可.....实际应用中都有有那么几个画面需要显示所有设备的通讯状态、设备当前状态的,尽量不分画面。
然后用Modbus Poll做客户端同样是64个服务器完全无压力,系统CPU也就3%最高。然后继续增加服务器到100个也就CPU上升到5%....
一气之下用第三方Modbus TCP 转OPC给WinCC,我擦,完全不会再****了,,,,反正我是不知道为啥的WinCC这么的蛋痛。
如果你要走Modbus TCP,建议你再增加一个ModbusTCP服务器专门用来采集所有Modbus TCP服务器模块的数据,然后通过Modbus帧中的通道地址来映射不同的ModbusTCP模块,这样最终WinCC访问的仅是ModbusTCP服务器一个IP,而不是很多个数据转换模块的IP完全不会造成通讯延迟造成变量****的情况。
其实,说到底Win7系统的IP连接数量还是非常多,比如浏览网站时随随便便几百上千,也就是自己写Modbus TCP 客户端读取Modbus TCP模块,连几百个IP完全不是问题。而且IOCP这逆天神器对应几百个连接连塞牙缝都不够。