西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电

西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电

ID:37073203

大小:1.79 MB

页数:12页

时间:2019-05-16

西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电_第1页
西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电_第2页
西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电_第3页
西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电_第4页
西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电_第5页
资源描述:

《西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、西门子S7_200MODBUS通信协议和支持MODBUSRTU协议的电磁流量计、超声波流量计的通信实例S7_200系列PLC有一个通信口的也有两个通信口的,这两个口都支持MODBUS通信协议,不过要添加MODBUS库文件(SP6版本的step7micro/win软件自带有MODBUS库文件)。下面根据具体的项目来说明MODBUS的使用:在项目中要采集进水流量的瞬时流量、日累计、月累计、年累计量,流量计本身有4~20mA信号输出和脉冲信号输出,这些输出信号都是瞬时量,只能转换为瞬时流量,而累积量就要通过编写程序来累加,而且信号的传输衰减和计算过程

2、产生的误差就会造成和实际的流量相差很多,现在很多的流量计(包括其他的测量设备)都设计有通讯口,尤其是支持MODBUS协议,所以首选通信方式采集数据,这样可以直接读取我们想要的数据,只需做稍微的数据转换就可以的,同时也减小了工作量提高准确性(实际是按照流量收取费用的)。实际的硬件连接:10套s7-200组成PPI网络(其中一个200站做主站),有一个从站要采集两个不同厂家的流量计的相关信息。PPI网络层已经用去了一个端口0,还剩下一个端口1,那么就用这个端口并设置为自由口协议,在程序中调用MODBUS程序块并填写好必要的信息就可以了(其实调用MO

3、DBUS程序块时,程序块内就已经设置好端口为自由口协议了)。图1.MODBUS库文件图2.控制指令图3.控制指令这里MBUS_CTRL_P1指令要一直调用,有一点要指明:图2中的程序是读取其中一台流量计的,图3是读取另一台流量计的,这两个流量计是不一样的。这里最重要的是MBUS_MSG_P1指令中地址“Addr”的填写,其实这里要填写Modbus从站的寄存器地址(该地址内有我们需要的信息),那么这个地址要怎么填写呢,填写多少呢?这就要查看从站设备(这里是流量计)的“通信手册”了,因为每个厂家的设备都不一样,所以相同信息的寄存器地址也不一样。下面

4、是流量计厂家要的通讯手册上的信息:RTU消息帧基本定义01234567设备地址功能编码地址1地址0数据1数据0CRCCRC8位字节8位字节8位字节8位字节8位字节8位字节8位字节8位字节一、参数读出命令1、主机命令格式01234567设备地址功能代码地址1地址0数据1数据0CRCCRC1~9903000--3501XXXX2、从机回应格式0123456设备地址功能代码长度数据1数据0CRCCRC1~99032高字节低字节XXXX数据=数据1数据0;注意:读出时,参数编号加1(MODBUS协议规定),如主机命令中参数编号为08,读出的参数编号为0

5、9。二、读出瞬时流量、流速、百分比、空管比、报警1、主机命令格式01234567设备地址功能代码地址1地址0数据1数据0CRCCRC1~99040005XXXX2、从机回应格式01234567891011121314设备地址功能代码字节数量流量高位流量低位单位数点流速高位流速低位百分比高百分比低空管比高空管比低报警状态crccrc1-990410一、读出累计总量1、主机命令格式01234567设备地址功能代码地址1地址0数据1数据0CRCCRC1~99040505XXXX2、从机回应格式01234567891011121314设备地址功能代码字

6、节数量正向总量3正向总量2正向总量1正向总量0反向总量3反向总量2反向总量1反向总量0总量单位保留CrcCrc1-9904100有的通信手册并没有给出例子,而是只有寄存器地址如另一台流量计的通信手册::好了,有了对应的寄存器地址我们就可以参照它来填写指令中的地址“Addr”,注意一点:指令中的地址不能直接填写对应寄存器的地址,s7-200中是这样规定的:我们读取的就是从站的保持寄存器的地址,所以要在从站寄存器地址加上数字40000。例如第二个流量计的地址是40001和40113(在图3中),实际是读取了从站的从第一个和第113个寄存器开始的信息

7、。功能码是03。再来看一下第一个流量计中的地址是以3开头的地址,即30011和30015,这里的程序是没有错的,这就要看通信手册中具体要主站发送的数据帧格式和功能码,如下:可以看到功能码是04,这里的功能码04也是读取保持寄存器的,那么如何让PLC发出04这个功能码呢?正常读取从站时发出的功能码是03(这也是MODBUS协议给定好的)1、主机命令格式01234567设备地址功能代码地址1地址0数据1数据0CRCCRC1~99040005XXXX其实MODBUS标准协议中也有04这个功能指令,该指令命名为“读取输入寄存器”而不是“保持寄存器”。M

8、ODBUS协议当然可以发送04这个指令,问题是s7-200中的MODBUS协议库如何发送04这个指令呢?MODBUS指令要填写的信息如下:这里的RW只

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。