综上所述,以太网协议包在从一个以太网设备发送出来后,经过交换机、双绞线后传输到另一个以太网设备,此处的延时都很小,长的也在1ms左右(当然实际数据根据我上边的公式计算)。但是有时SCADA系统发送读写请求到PLC,PLC接收到指令并发送相应命令到现场设备后,会出现反应时间特别长的现象。其实这并非是数据传输的原因,而是PLC的响应问题。
任何一个PLC的以太网模板在响应别的以太网设备发来的读写请求时,在处理请求时有数据限制,同时数据准备也有时间限制。比如有的厂家同时最多可同时响应8个请求,数据准备时间为1个扫描周期。加入别的设备发来的请求一共有50个,当前PLC扫描周期为200ms,此时,PLC把所有数据准备好并返回给所有其他的以太网设备所需的时间为:50/8*200=1.4s。
这里其实我并没有考虑PLC处理请求队列满了以后的影响,有的PLC请求队列满了以后,所需的准备时间变为2~3扫描时间。如果重新计算,总的准这就是备时间为:
500*8*200*3=4.2s。
这就是有些大系统,PLC数据较多,计算机数据也很多时,SCADA系统反应特别慢的原因。我上边的计算是以施耐德PLC举的例子。西门子的PLC由于没有用Wireshark抓过相应的数据包观察过,所有不太清除相关的限制。但是原理都是相同的,只是处理的请求个数等等有区别而已。当然对于Rockwell的PLC的处理方法与其他厂家不大相同。
管理员注:本帖已被纳入此次探讨发帖整理,请
点此详阅。