产品名称 | 山东潍坊市西门子工控机(授权)总代理 西门子IPC一级经销商 |
---|---|
公司名称 | 广东湘恒智能科技有限公司 |
价格 | .00/件 |
规格参数 | 西门子PLC:西门子伺服电机 西门子触摸屏:西门子电缆 西门子变频器:西门子模块 |
公司地址 | 惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公) |
联系电话 | 13510737515 13185520415 |
山东潍坊市西门子工控机(授权)总代理 西门子IPC一级经销商
第二次握手返回的报文长度是27个字节,最后两个字节就是PDU的值,上图展示的是S7-1200PLC返回的报文,0和240的组合即为240。
对于S7-1500,我这里也做了一下测试,结果如下,返回结果为3和192,3和192的组合恰好是960(960=3*256+192)。
虽然PDU是由硬件做了限制,但是我们可以通过软件的方式,实现大量数据的读取,只需要在底层做一些封装即可。做了一下测试,针对S7-1200和S7-1500同时读取M区的8000个字节的耗时比较,S7-1200耗时800多ms,S7-1500耗时仅需200ms,由此可见,硬件对通信的重要性。
对于很多其他的通信协议,当我们遇到数据变量比较零散,同时读取多个存储区或者一个存储区多个不同部分的时候,我们只能针对每个存储区或者每块区域做一个数据请求,但是西门子S7协议可以解决这样的问题。
西门子S7协议有一个非常强大的一个地方,可以同时读取很多个不同的存储区,最大支持19种,总共读取长度仍然受PDU的限制。
这里我们仍然以实验测试为例,体验多组读取带来的美妙体验。
假设我们的通信组配置如下:
通信组01:读取I区从0开始的1个字节
通信组02:读取Q区从0开始的1个字节
通信组03:读取M区从0开始的200个字节
通信组04:读取M区从500开始的50个字节
通信组05:读取M区从1000开始的60个字节
通信组06:读取DB100从0开始的20个字节
通信组07:读取DB100从20开始的20个字节
通信组08:读取DB100从40开始的20个字节
通信组09:读取DB100从60开始的20个字节
我们采用常用S7-1200PLC,通过配置软件实现配置以上9个通信组,开始通信测试,首先我们选择的是单组读取的方式,就是针对每个组,依次进行读取,结果如下,耗时大约200ms,这个时间应该相对来说还是比较正常的。