大家好!
最近在捣鼓MODBUS TCP 方面的通讯,为了让通讯速率尽可能的快,我对1200PLC进行了如下的实验,通过这个实验来说明对PLC的工作要求,很多应用可能对通讯有更高的要求,而对程序的扫描时间没有太高的要求,可以通过调整:通讯负载 的比例来使用我们的要求,下面就来看看调整通讯负载在最小值15%以及最大值50%的结果有什么不同:
先说一下实验的过程,两台PLC,一台是第三方的PLC,一台是西门子的S7-1211C,第三方的PLC作为MODBUS TCP 服务器,s7-1211C作为客户机,1200读取服务器的16个保持寄存器,然后再向服务器写入17个保持寄存器,服务器发过来的其中一个寄存器的值是服务器CPU扫描计数器,这个计数器的值是每次扫描加+1,加到1000时就清零再从0开始加+1,周而复始,1200这边读取到这个计数器的值以后直接通过 MOVE 把这个寄存器的计数器值再写入服务器,服务器这边通过趋势图来反应数据返回来的实时性,来判断通讯网络的质量!
第一部分:把客户机1200的通讯负载设置到最小值 15%,看如下图片

下面图片是服务器发送过去与返回来的计数器值进行比较,图片上方是返回值,图片下方是发送过去的值,从图片可以看出来,返回来的值有卡顿的现象,线条是波浪形的,说明返回来的计数器值实时性非常差


下面我们看一下最小通讯负载15%的状态下,1200CPU的扫描周期是多少
通过监控,最小扫描周期在同一个程序的条件下大概是1-4ms之间,扫描周期非常快,但是通讯质量非常不理想

第二部分:把客户机1200的通讯负载设置到最大值 50%,看如下图片下面修改

通过修改了通讯负载的值为最大值以后我们可以非常明显的看出来下面的趋势图的波形平滑很多,基本上与发送与回收的值接近,说明通讯速度快了非常多,具体比较一下下面的趋势图就非常明显,下面图片上方部分是回收的值,下方是发送出去的值

这个时候发现1200PLC的扫描周期大了很多,从4ms变为8ms了基本上多了一倍,说明通讯负载加大,PLC的扫描周期延长了。

通过修改这个通讯负载满足了通讯的问题,由于对程序的扫描速度要求不是很高,所以通过修改通讯负载解决了这个问题,当然如果你通讯要求不高而程序扫描速度要求很高就把通讯负载设置为最小15%就好