登录
首页 串口通信 串口通信
回帖 发帖
正文

主题:改造西门子S7-200 Smart之Modbus RTU主站指令库及其应用

点击:1091 回复:5

改造西门子S7-200 Smart之Modbus RTU主站指令库及其应用
一、前言:
实际应用当中,多数从站设备给出的均是寄存器实际地址,而非寄存器编号,且西门子Modbus RTU主站指令库对于从站离散输入、离散输出和输入寄存器读写的寄存器起始地址和数量均达不到Modbus规定的最大化,使用起来有诸多不便,特此封装此库,方便自己使用!
二、系统概述:
西门子S7-200 Smart系列PLC做Modbus RTU主站、顺丰通W200变频器做Modbus RTU从站,PLC可以对变频器实现启动、停止、给定频率、读取输出参数等操作。
三、通信连接:
1、USB转RS485电缆之RS485通信口连接至西门子S7-200 Smart系列PLC本体RS485通信口;
2、西门子S7-200 Smart系列PLC本体RS485通信口连接至顺丰通W200变频器RS485通信口。
四、顺丰通W200变频器通信参数设定:
1、Pr0.00:设定为1,变频器起停由通信方式实现;
2、Pr0.01:设定为2,变频器频率给定由通信方式实现;
3、Pr1.00:设定为1,通信协议选择Modbus RTU协议;
4、Pr1.01:设定为1,变频器做Modbus RTU从站站号为1;
5、Pr1.02:设定为5,通信波特率设置为9600bps;
6、Pr1.03:设定为6,通信格式为8、E、1,即就是8位数据位、偶校验、1位停止位。
五、西门子S7-200 Smart系列PLC之Modbus通信指令库安装:
西门子S7-200 Smart相关Modbus TCP客户端、Modbus TCP服务器、Modbus RTU主站和Modbus RTU从站指令库需要先行安装,方可使用,如下所示:
附件 01.jpg
六、顺丰通W200变频器Modbus通信寄存器地址表:
附件 02.jpg
七、西门子S7-200 Smart系列PLC编程详解:
1、网络1:初始化复位各标志位
附件 03.jpg
2、网络2:Modbus RTU主站初始化完成后置位M0.1,即可进行读写操作
附件 04.jpg
3、网络3:调用MRM_INIT_0指令实现Modbus RTU主站初始化,各个参数如下所示
输入参数:
ProtocolSeting:通信协议选择,为1选择Modbus协议;为0选择PPI协议,故而一般使用SM0.0
BaudRateSeting:通信波特率设定,这里设定9600,即就是通信波特率为9600bps
CheckBitSeting:校验方式选择,这里设定为2,即就是校验方式为偶校验
TimeoutSetting:超时时间设定,单位为毫秒,这里设定为1000毫秒
输出参数:
CompletionMark:初始化完成标志位
ErroCodeOutput:错误代码
附件 05.jpg
4、网络4:停止变频器程序命令段,停止变频器时,只需对M1.0进行置位即可
附件 06.jpg
附件 07.jpg
5、网络5:正转变频器程序命令段,置位M1.1即可使变频器正转启动
附件 08.jpg
附件 09.jpg
6、网络6:给定频率程序命令段,只需给VW106中写入实际频率值的100倍,即可给定频率
附件 10.jpg
7、网络7:给定频率执行命令段
附件 11.jpg
附件 12.jpg
8、网络8:写操作命令执行段,调用MRM_TRAN_0指令,各参数如下所示:
输入参数:
CommandWSwitch:命令开关,为1时开始执行MRM_TRAN_0指令、为0时停止执行;
SlaveAddressID:从站站号,范围为1~247;
ModbusFunction:Modbus功能码,支持1、2、3、4、5、6、15、16等8个功能码;
RegisterAddres:寄存器地址,设置范围为0~65535;
RegisterNumber:寄存器数量
对于 01 和 02 功能码,设定范围为 1~2000 个位
对于 03 和 04 功能码,设定范围为 1~125 个字
对于 05 和 06 功能码,设定为 1
对于 15 功能码,设定范围为 1~1968 个位
对于 16 功能码,设定范围为 1~123个字
RegisterBuffer:读写缓冲区,参数 RegisterBuffer 是间接地址指针,指向 CPU 中与读/写请求相关的数据的 V 存储器地址。
输出参数:
CompletionMark:完成标志位,当 MRM_TRAN_0 指令执行完成后,该标志位被置位
ErroCodeOutput:错误代码
附件 13.jpg
9、网络9:写操作执行完成后,复位各个标志位,又开始执行读操作
附件 14.jpg
10、网络10:主站初始化完成后延时后开始执行读取参数操作
附件 15.jpg
11、网络11:读取输出电压程序命令段
附件 16.jpg
12、网络12:读取到的输出电压暂存至VW100中,复位各标志位,判断有无写操作
附件 17.jpg
13、网络13:读取输出电流程序命令段
附件 18.jpg
14、网络14:读取到的输出电流暂存至VW102中,复位各标志位,判断有无写操作
附件 19.jpg
15、网络15:读输出频率程序命令段
附件 20.jpg
16、网络16:读取到的输出频率暂存至VW104中,复位各标志位,判断有无写操作
附件 21.jpg
八、顺丰通W200变频器通信测试:
1、停止变频器测试:
串口调试助手发送:01 0F 50 00 00 10 02 01 00 B3 B5
变频器返回:01 0F 50 00 00 10 45 07
2、启动变频器测试:
串口调试助手发送:01 0F 50 00 00 10 02 02 00 B3 45
变频器返回:01 0F 50 00 00 10 45 07
3、给定频率测试:
串口调试助手发送:01 06 20 00 13 88 8F 5C
变频器返回:01 06 20 00 13 88 8F 5C
4、读取参数测试:
串口调试助手发送:01 04 30 05 00 03 AF 0A
变频器返回:01 04 06 0E D9 00 E1 11 AD E1 B5
串口调试助手收发截图如下所示:
附件 22.jpg
九、西门子S7-200 Smart系列PLC通信测试:
使用串口调试助手监控PLC发出之读写命令,如下所示:
附件 23.jpg
十、系统联调:
经过测试,PLC可对变频器实现启动、停止、给定频率和读取参数等操作:
附件 24.jpg
附件 25.jpg
附件 26.jpg
附件 27.jpg
22-04-07 11:53
全程 M 撸到底,万某人在赶来的路上了表情
22-04-07 20:47

引用 gk_0 在 2022/4/7 20:47:36 发言【内容省略】

M不就是这么用的吗,难道用S?各有各的风格,我也是用M点做辅助元件用到底的。
22-04-08 09:14
老铁你这个串口助手分享一下,win10系统可以用吧,前段时间临时下了个友善的不好用,win7的我有好几个,换了电脑没考过来(主要是拷过来不一定能用)
22-04-08 09:16

引用 gk_0 在 2022/4/7 20:47:36 发言【内容省略】

重点是这里,重点不是M用了多少
附件 image.jpg
22-04-08 10:37
图文并茂,非常好,就需要这样的好案例。
22-04-10 10:03

工控新闻

更多新闻资讯