quote:以下是引用lihai在2009-04-25 09:12:58的发言:quote:以下是引用四书五经在2009-04-24 22:57:00的发言:
而S7-OP协议可能是对S7协议进行了一些封装,使之比较适合各种屏或者通讯数据量不大的PC和PLC之间的通讯,通过S7 OP这个接口,WINCC不能获得S7通讯提供的全部功能。
严重同意四书五经!!OP是一种特殊的S7协议,一种S7协议的变形。
说起BSEND/BRECV,有个现象很有趣:
当WinCC用BSEND/BRECV类型的RAWDATA时,需要在通道属性里打个勾,填上和PLC通讯的连接资源号。不打勾之前,是OP连接,但打了勾之后普通的TCP等连接也变成了S7连接。也就是说WinCC S7通道里并不是只有named connection可以是S7连接。故应该不能直接说named connection一定优于其他S7连接,至少S7和OP的连接类型的区别不能作为证据。
但问题又来了:
既然S7通道中的TCP等连接可以实现S7连接,为什么WinCC默认设置里,并没有打钩。是因为打了勾后,通讯设置变复杂了吗?很有可能,或者说是一个原因。但我认为也有可能是OP连接更适合上位机的应用特点。
正所谓尺有所短,寸有所长。
WinCC的BSEND 型RAWDATA,效率高,数据量大,但一般很难在WinCC中用到,不能归档,不能画面显示,只能用脚本拆,PCS7中使用到RAWDATA来传消息,但印象中好像也是普通的SEND/RECV(200多个字节)不是BSEND类型的。Bsend功能介绍的也很少,帮助里有一段,前一阵网上课堂有一个关于Bsend的文档。
即便使用S7连接,从通道诊断中一样可以看到通讯所使用的PDU:300是240字节,400是480字节。也就是说OP和S7的数据包大小是一样的,它取决于CPU类型而不是连接类型。而bsend的n KB尺寸是由7层模型中更上层来决定的,由第7层?说不好,也并不需要太关心。
循环读服务所携带的变量数才是要关注的,S7连接和OP连接一样也支持此服务,它直接影响到通讯性能和效率。而它又受到PDU的限制,但不会使用BSEND的尺寸。这一点从通道诊断中可以看出,但似乎看不出两者数量上差别。
另外,既然OP是S7的一种变种,少了部分不常用S7的功能(BSEND等),那有没有可能多出一些其他功能呢?很难排除这种可能性,我的观点是不排除。
综上所述,我的观点是:到目前来看还无法证明WinCC 的named connection 连接比其他方式能提供更高的通讯性能。