全国服务热线: 17373148720
企业新闻

SIEMENS/西门子S7-300系列SM331模拟量输入模块6ES7331-7HF01-0AB0

发布时间:2023-12-17        浏览次数:3        返回列表
前言:西门子PLC.西门子变频器,西门子电机.西门子触摸屏.西门子电缆.西门子变压器.西门子高压变频器.西门子低压配电设备
SIEMENS/西门子S7-300系列SM331模拟量输入模块6ES7331-7HF01-0AB0-宣传视频
SIEMENS/西门子S7-300系列SM331模拟量输入模块6ES7331-7HF01-0AB0

S7协议之布尔操作

对于布尔操作,很多协议都有,但是这里的布尔操作是指寄存器布尔,比如DB100.DBX0.0,很多时候,我们都是通过先读取DB100.DBB0的值,再通过位运算结果,写入到DB100.DBB0中,实现DB100.DBX0.0的操作,但是这种方式有弊端,

第一:每次操作一个布尔值都需要与PLC进行两次数据交互。

第二:安全性和稳定性无法保障,你不知道在你读取和写入之间,这个字节的值是否已经发生了改变。

这样的问题也存在于Modbus协议的寄存器位操作,如40001.05,三菱、欧姆龙的寄存器位操作,如D100.06、W12.04,给上位机开发者带来很多苦恼。

但是S7协议支持直接位操作,有专门的报文指令实现这样的功能。

S7协议之PDU读取

大部分人都知道S7协议一次性读取有限制,但是具体是多少?怎么计算出来的?

S7协议的一次性读取长度是根据PDU计算出来的,这个PDU的值是来自于PLC本身,不同型号的CPU,它的PDU是不一样的,可以参考下面两张图:


图片图片


西门子PLC的PDU大小是和CPU息息相关的,一般会有240、480、960三个档次,知道PDU之后,那么一次性读取的字节长度,就是在PDU的基础上减去18,这个18是指包头包尾会有18个字节,这样我们就知道了一般的PLC,一次性能读取222个字节(240-18=222),但是对于S7-1516这样的PLC,我们一次性是可以读取942个字节的***,这个一次性能读取的字节越长,越能提高上位机的通信效率。

刚刚的方式是通过KepServer测试的,实际开发过程中,该怎么获取CPU的PDU呢,实际上在建立连接的第二次握手时,返回的报文中就包含PDU的值。


图片


第二次握手返回的报文长度是27个字节,*后两个字节就是PDU的值,上图展示的是S7-1200PLC返回的报文,0和240的组合即为240。

对于S7-1500,我这里也做了一下测试,结果如下,返回结果为3和***


图片


虽然PDU是由硬件做了限制,但是我们可以通过软件的方式,实现大量数据的读取,只需要在底层做一些封装即可。做了一下测试,针对S7-1200和S7-1500同时读取M区的8000个字节的耗时比较,S7-1200耗时800多ms,S7-1500耗时仅需200ms,由此可见,硬件对通信的重要性。


图片图片


上海乘晖科技集团有限公司
  • 地址:上海市奉贤区驰华路775号2幢
  • 手机:17373148720
  • 联系人:肖先生
推荐产品
信息搜索
 
西门子电机新闻