电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> 梯形图实例 >> 正文

西门子S7-200 SMART PLC通过Modbus-RTU读取温湿度传感器数据

作者:佚名    文章来源:网络整理    点击数:    更新时间:2024/3/31

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

  1. S7-200 SMART CPU ST20;
  2. 温湿度传感器(支持Modbus-RTU协议);

本文包括如下几个主题:

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

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

3、CPU ST20的编程;

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

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

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

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

  1. 支持的波特率:1200bps、2400bps、4800bps、9600bps、19200bps,默认为9600bps;
  2. 通信设置:起始位1位,数据位8位,停止位1位,无校验位;
  3. 支持站地址范围:1~247,默认为1;
  4. 支持Modbus功能码0x03读取数据,数据格式如下表所示:

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

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

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

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

需要说明的是,西门子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=没有错误;

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

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

  • First:请求数据交换,需要上升沿信号;
  • Slave:从站地址;
  • RW:读取或写入数据,0=读取,1=写入;
  • Addr:Modbus寄存器地址;
  • Count:要读取的数据长度;
  • DataPtr:数据的存放地址;
  • Done:指令是否执行完成,1=完成;
  • Error:指令执行的状态值,0=没有错误;

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

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

好了,这就是CPU ST20通过Modbus-RTU协议读取温湿度传感器数值的例程。

Tags:Modbus-RTU,温湿度传感器,读取温湿度  
责任编辑:admin
  • 上一篇文章:
  • 下一篇文章: 没有了
  • 请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
    1分 2分 3分 4分 5分

    还可以输入 200 个字
    [ 查看全部 ] 网友评论
    推荐文章
    最新推荐
    关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
    返回顶部
    刷新页面
    下到页底
    晶体管查询