quote:以下是引用四书五经在2013-01-30 22:31:07的发言:
记得十年前,在一个现场调试时遇到WINCC和S7300通讯出现时断时继的情况。当时一通折腾,无意中把BY PLC这个选项去掉之后通讯恢复正常。之后一直想搞清楚为什么?但是一直无法得到正确的答案,现在理解了CCP、TS、AS CYCLE等概念了,AS CYCLE应该还是在CCP中完成与WINCC的通讯,只不过AS CYCLE并不是请求/应答的方式,而是PLC主动上传数据给WINCC(根据刷新时间不同,可以有多个AS CYCLE),这样效率应该会更高,但不能理解的是效率更高为什么反而更慢?难道AS CYCLE需要多个CCP才能完成通讯?或者是WINCC画面中的变量/刷新周期使用的不合理,导致AS CYCLE负担太重?
看来我得逐一的回复了,否则没有人跟上来了:)
首先,By PLC,是WinCC把注册PLC的信息,周期性发送给PLC,PLC不用再请求数据给WinCC。但是对于300来说,通信发生在CCP,但是未必是一个周期发送和接受到WinCC的数据,可能需要几个周期,取决于CPU的型号。而对于400来说,通信发生在时间片,通信的速度取决于WinCC数据的刷新时间。
这里的效率高,我不知道是如何计算这个数据,但是这种方式仅是减少了网线上传输的数据报文量。其实我建议不必激活By PLC,100M/1000M带宽对于通信数据是足够的。
当然对于WinCC,我们通过各种各样的变量去读写PLC的数据是不推荐的,众所周知。最好使用一类的数据变量,例如DB1中的各种字节,字等以及刷新时间一致等。这个咱们抛开WinCC本身不说,它可以使PLC的通信更加有效率,大家知道为什么吗?