一、准备工具及材料
1.台式电脑一台,笔记本电脑一台;
2.西门子200smart PLC一台,
3.多功能电表DW9L-RC38或DS9L或DS7L一台,温控表TE系列一台,
4.仪表说明书及通讯协议,
5.9针接口通讯线一根,
6.USB转RS485转换器一台,
7.电源线,网线、网络交换机等。
二、软件安装
软件名称: STEP 7-MicroWIN SMART ,可从西门子网站下载。
三、梯形图编程
1. 主要编程思路
PLC 使用自带的 RS485 接口与仪表进行通信连接, PLC 作为主站,仪表为从站,使用标准 Modbus-RTU 通讯协议。调用编程软件自带的 Modbus 协议库,实现与仪表的数据通信。
2 . MBUS_CTRL 和 MBUS_MSG 指令介绍
本示例使用单个主站及
MBUS_CTRL
和
MBUS_MSG
指令。同一理念对使用第二个主站及
MB_CTRL2
和
MB_MSG2
指令的示例同样适用。
3. 电力仪表通信协议:
4.梯形图编程
(1)设置 PLC 型号
(2) 设置库存储器的地址分配(系统已分配 VB0~VB285 用于 modbus 通信使用,我们就从 VB286 开始)
(3) 编辑符号表
(4) 编辑状态图表
(5)
编制第一、二段:置位标志位及通讯初始化:波特率
Baud=9600
,
Parity=0
无校验,
Port=0
集成
CPU
内
RS485
口,
Timeout
从站响应超时
50ms
。
Done
初始化完成返回
"TURE",Error
输出错误结果。
(6) 程序 3-4 :当 MBUS_CTRL 初始化完成后, M0.0 从关闭变为接通时,延时 T33=10mS 时间后,置位第一条 MBUS_MSG 指令的启用标志 (M2.0)=1 。
(7) 程序 5 : 读第一台从机设备,地址 1 ,型号 DW9L 或 DS9L 或 DS7L 。当第一个启用标志 (M2.0) 接通后,调用 MBUS_MSG 指令。只需为启用该指令的第一次扫描设置 First 参数。该指令会对从站( Slave =1 ) 的 12 个保持寄存器执行读取 (RW = 0) 操作。
Modbus 主站对 Modbus 从站的 12 个保持寄存器执行读操作( A 、 B 、 C 相电压值)。
PLC 会从仪表地址为 416385 ( 0x4000 )开始的保持寄存器中读取到 CPU 内部,并保存在以 VB300 开始的 12 个字节 V 存储器中。
读0x4000 开始的A 相电压值,需将0x4000 转换为十进制数0x4000→16384 ,再用400001+16384=416385 。
读取的数据存放在 CPU 中的 VB300-VB311 中; VB300 , 301 , 302 , 303 对应 A 相电压; VB304 , 305 , 306 , 307 对应 B 相电压; VB308 , 309 , 310 , 311 对应 C 相电压。因为电压值是双字节存放,所以用 VD300 地址读取 A 相电压, VD304 地址读取 B 相电压, VD308 地址读取 C 相电压。
M0.4 为启动轮询,将通信设备进行反复读写操作。
(8) 程序 6 :第一条 MBUS_MSG 指令完成后( " 完成 "(Done) 位从 0 变为 1 ),会清除第一条 MBUS_MSG 指令的启用标志,然后设置第二条 MBUS_MSG 指令的启用标志。
(9) 程序7:第二次轮询,读电能值参数:读第一台设备的频率参数。第二个启用标志 (M2.1) 接通时,调用第二条 MBUS_MSG 指令。只需为启用该指令的第一次扫描设置 First 参数。该指令会对从站 1 的 2 个保持寄存器执行读取 (RW = 0) 操作。数据从 Modbus 从站中的地址 416437 ( 0x4034 ) 读取,并复制到 CPU 中的 VB400 - VB403 ( 4 个字节 VD400 )。
(10) 程序 8-9 :第二次读数据轮询结束,复位相关参数。
(12)
将
VW406
中的值写入温控表
SV
设定值中。
四、 编译及程序下载
六、
串口监控:在电脑上用USB转RS485转换器连接到RS485接线端上,监控PLC与仪表的通信收发报文: