北岛夜话
原创工业智能控制领域(PLC、单片机、嵌入式、机器人、通信)的技术及经验分享。
文章306 浏览2022196

实例:S7-200 SMART通过Modbus-RTU读取温湿度传感器数据

本实例我们介绍下西门子S7-200 SMART PLC如何通过Modbus-RTU协议读取温湿度传感器的数值。实例使用的硬件如下:

  1. S7-200 SMART CPU ST20;

  2. 温湿度传感器(支持Modbus-RTU协议);

cover.png

本文包括如下几个主题:

1、温湿度传感器外观、接线及通信参数介绍

2、CPU ST20与温湿度传感器的接线;

3、CPU ST20的编程;

1、温湿度传感器外观、接线及通信参数介绍

本例程使用的温湿度传感器能检测的温度范围为:-40℃~120℃,湿度范围为:0%~100% rh,其外观如下图所示:

tmperature-sensor.png

该温湿度传感器有四条线,颜色分别是:红、黑、黄、绿,各线的定义如下:

温湿度传感器接线定义
线色
定义
备注
红色
电源正极
电压范围:DC 5~24V
黑色
电源负极

黄色
RS485-A
RS485-信号A线(+)
绿色
RS285-B
RS485-信号B线(-)

该温湿度传感器支持Modbus-RTU协议,相关通信参数如下:

  1. 支持的波特率:1200bps、2400bps、4800bps、9600bps、19200bps,默认为9600bps;

  2. 通信设置:起始位1位,数据位8位,停止位1位,无校验位;

  3. 支持站地址范围:1~247,默认为1;

  4. 支持Modbus功能码0x03读取数据,数据格式如下表所示:

读取温度/湿度数据格式
数据起始地址
数据内容
字节数
单位
0
温度值
2
0.1℃
1
湿度值
2
0.1rh

支持Modbus功能码0x10或者0x06修改传感器的站地址或者波特率,数据格式如下表所示:

修改地址/波特率数据格式
数据起始地址
数据内容
字节数
范围
100
站地址
2
1~247
101
波特率
2
0~4①

①0=1200bps;1=2400bps;2=4800bps;3=9600bps;4=19200bps;

2、CPU ST20与温湿度传感器的接线

本例程使用CPU ST20本体集成的串口(编号:Port0)连接温湿度传感器。Port0针脚定义如下表所示:

port0.png

需要说明的是,西门子RS485信号线定义与很多厂家不同:多数厂家定义RS485信号A线为正极,信号B线为负极;但是西门子定义A线为负极,信号B线为正极。

因此,在本例程中,温湿度传感器的黄线(RS485+)应该与CPU ST20本体串口Port0的3号引脚相连;同时,温湿度传感器的绿线(RS485-)应该与Port0的8号引脚相连;

3、CPU ST20的编程

使用S7-200 SMART的库指令【Modbus RTU Master】中的MBUS_CTRL指令和MBUS_MSG指令来与温湿度传感器进行Modbus-RTU通信。

MBUS_CTRL指令用来配置Modbus主站的通信参数,需要在每个扫描周期都调用。指令各参数含义如下:

  • Mode:通信协议的类型;0=PPI协议;1=Modbus协议;

  • Baud:波特率;

  • Parity:校验位,0=无校验,1=奇校验,2=偶校验;

  • Port:端口号,CPU本体串口编号为0,通信板编号为1;

  • Timeout:超时的时间值,单位为毫秒;

  • Done:指令是否完成;

  • Error:指令执行的状态值,0=没有错误;

指令执行在线状态如下图所示:

modbus主站配置.png

MBUS_MSG指令用来与子站进行数据交换,其各参数含义如下:

  • First:请求数据交换,需要上升沿信号;

  • Slave:从站地址;

  • RW:读取或写入数据,0=读取,1=写入;

  • Addr:Modbus寄存器地址;

  • Count:要读取的数据长度;

  • DataPtr:数据的存放地址;

  • Done:指令是否执行完成,1=完成;

  • Error:指令执行的状态值,0=没有错误;

指令执行在线状态如下图所示:

modbus主站与从站交换数据.png

通过状态图表,可以监控到读取的数值为293和639,分别表示温度为29.3℃和63.9%rh的湿度,如下图所示:

状态图表.png

好了,这就是CPU ST20通过Modbus-RTU协议读取温湿度传感器数值的例程。我的新书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》有更多通信的内容介绍,点击【这里】查看关于该书的介绍。

我最近开通了微信视频号,以视频的方式分享工控小知识,欢迎扫描下方的二维码查看:

founderchip.png

实例:S7-200 SMART通过Modbus-RTU读取温湿度传感器数据

来源:本站|   大小:917KB|   下载次数:62次

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论