首先介绍我们的硬件准备工作
1、一个支持modbus协议的温湿度传感器
2、查看温湿度传感器参数,厂家一般都会配一个修改软件,这里不做修改,用其默认值
波特率:9600
数据格式:8位数据位、无校验
通讯方式:标准modbus RTU
通讯地址:2
3、确定所要读取变量地址
温度实时寄存地址为0,对应modbus通讯里的40001
湿度实时寄存地址为1,对应modbus通讯里的40002
4、s7-200smartplc一台
5、端口连接
将温湿度传感器与plc端DB9接口连接
准备工作完毕,接下来就是编程,因为软件自带modbus库,直接使用就好
6、初始化主站指令
“模式”(Mode) 输入的值用于选择通信协议。输入值为 1 时,将 CPU 端口分配给 Modbus 协议并启用该协议。
参数“奇偶校验”(Parity) 应设置为与 Modbus 从站设备的奇偶校验相匹配。0(无奇偶校验)
参数“端口”(Port)设置物理通信端口(0 = CPU 中集成的 RS-485)。
参数“超时”(Timeout) 设为等待从站做出响应的毫秒数。典型值是 1000 ms (1 s)。
当 MBUS_CTRL指令完成时,指令将“真”(TURE) 返回给“完成”(Done) 输出。
“错误”(Error) 输出包含指令执行的结果。
以上的参数设置与称重仪表端的对应
7、温湿度传感器的访问
参数“从站”(Slave) 是 Modbus 从站设备的地址。允许范围为 0 至 247。地址 0 是广播地址。仅将地址 0 用于写入请求。系统不会响应对地址 0 的广播请求。并非所有从站设备都支持广播地址。S7-200 SMART Modbus 从站库不支持广播地址。
使用参数 RW 指示是读取还是写入该消息。0(读取)
参数地址 (Addr) 是起始 Modbus 地址。寄存器地址为0,对应Modbus通讯里的地址40001
参数“计数”(Count) 用于分配要在该请求中读取或写入的数据元素数。读取仪表中保持寄存器字数。
参数 DataPtr 是间接地址指针,指向 CPU 中与读请求相关的数据的 V 存储器。将 DataPtr 设置为用于存储从 Modbus 从站读取的数据的第一个 CPU 存储单元。
地址1的温湿度数据被存入到以VW100为起始的两个字,即vw100为温度,vw102为湿度,这里要注意,整数转为实数,最后在除以10,并是最后的温湿度值
8、编程结束,我们调试看下
vw100的温度为25.4℃,vw102的湿度为74.0%RH
到这里编程结束,需要源程序的可以关注私信
下次更新昆仑通泰触摸屏与s7-200smart ppi通讯设置