今天客户问起,如何需要用大量布尔型过程变量,会不会对通讯的负载有不好的影响。
这是个很好的问题。
简单来说:
1、变量地址尽可能连续(一位一位挨在一起),就是通讯的变量尽可能放在一起
2、尽可能使用统一的变量刷新周期
3、WinCC不需要像S5时代那样建字节或字长度的变量,然后再拆分
Wincc与plc的通讯中,数据是以字节为单位来传送的。例如读取 T1(D10.0)、T2(D10.6)2个变量,plc会把整个DBB10整个字节传送过来。总之就是数据地址越分散,所传送的无效数据越多,大量占用通讯带宽。
还有一个减少通讯量的方法,就是减少读取循环分类。例如T1变量,在画面io域中的采集周期是1s,同时在数据归档的采集周期是2s,对于T1就有2个采集周期,每2s被采集了3次;我们把归档采集周期改成1s(如果归档周期大于采集周期,则对项目没有影响),对于T1只有1个采集周期,传输的数据反倒比前者小。
S5时代的通讯优化不多,两个布尔变量在同一个字节里,这个字节会被读两次,因此S5的时代因为报警都用布尔变量而导致通讯过载的问题很常见。S7通讯就不用在“是否应该建布尔变量”上费心了。