恭喜,你发布的帖子
发布于 2020-10-28 17:09:34
18楼
TCP走传输层,包头开销54字节,单帧数据最大1460字节,1200最大8192字节。10ms传5000字节。可做服务器或客户端。适用范围广,上位机首选。
UDP也走传输层,包头开销42字节,通常小数据量传送。编程最简单。小范围用很可靠。
S7走应用层,三次TCP握手加两次S7认证,包头开销79字节,1200单帧数据最大222字节。实测比TCP慢50倍。下位机无需编程,上位机编程并未比TCP简化太多。
OPCUA走应用层,需客户端转服务器,速度稍慢。可访问符号地址,可异步可订阅,编程便利。有基础依赖,实用化略受限。
博途在线或仿真与PLC通信走表示层COTP。
现场总线比如PNIO等,走物理层、数据链路层和应用层,速度快。
Wireshark是利器,网络编程必备。
Execl表格配置变量,经NPOI Helper导入,封装成静态变量字典。多线程节点通信,读入数据整合后,匹配至变量字典,动态解析至数值字典,并匹配至ViewModel。变量报警分析同步进行,匹配至ViewModel,并经数据访问类保存至数据库。
ViewModel采用INotifyPropertyChange和Prism的ICommand实现数据和命令接口。View元素经ExInvokeCommandAction对象扩展,实现全部事件绑定至ICommand。
SQLhelper的通用功能,再封装为面向场景的一般数据访问类,被业务层调用,并与通信层协同保存历史数据。
纠正一下,S7比别人慢50倍不是S7的锅啊,是西门子的内部总线连接问题
像300 PLC单条总线走的是MPI 187.5Kbps, 所以你的300CP CARD飞起来也不会超过这个速率
400PLC 单条总线是12Mbps,所以用起来会比300快很多,但是怎么都到不了100Mbps,因为内部总线的限制
研究过很多这些问题,也在欧洲的时候和别的SCADA developer讨论过这个问题,西门子公开的资料太少了,加上自己力不从心。。。罢了
请填写推广理由:
分享
只看
楼主