改造西门子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从站指令库需要先行安装,方可使用,如下所示:
六、顺丰通W200变频器Modbus通信寄存器地址表:
七、西门子S7-200 Smart系列PLC编程详解:
1、网络1:初始化复位各标志位
2、网络2:Modbus RTU主站初始化完成后置位M0.1,即可进行读写操作
3、网络3:调用MRM_INIT_0指令实现Modbus RTU主站初始化,各个参数如下所示
输入参数:
ProtocolSeting:通信协议选择,为1选择Modbus协议;为0选择PPI协议,故而一般使用SM0.0
BaudRateSeting:通信波特率设定,这里设定9600,即就是通信波特率为9600bps
CheckBitSeting:校验方式选择,这里设定为2,即就是校验方式为偶校验
TimeoutSetting:超时时间设定,单位为毫秒,这里设定为1000毫秒
输出参数:
CompletionMark:初始化完成标志位
ErroCodeOutput:错误代码
4、网络4:停止变频器程序命令段,停止变频器时,只需对M1.0进行置位即可
5、网络5:正转变频器程序命令段,置位M1.1即可使变频器正转启动
6、网络6:给定频率程序命令段,只需给VW106中写入实际频率值的100倍,即可给定频率
7、网络7:给定频率执行命令段
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:错误代码
9、网络9:写操作执行完成后,复位各个标志位,又开始执行读操作
10、网络10:主站初始化完成后延时后开始执行读取参数操作
11、网络11:读取输出电压程序命令段
12、网络12:读取到的输出电压暂存至VW100中,复位各标志位,判断有无写操作
13、网络13:读取输出电流程序命令段
14、网络14:读取到的输出电流暂存至VW102中,复位各标志位,判断有无写操作
15、网络15:读输出频率程序命令段
16、网络16:读取到的输出频率暂存至VW104中,复位各标志位,判断有无写操作
八、顺丰通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
串口调试助手收发截图如下所示:
九、西门子S7-200 Smart系列PLC通信测试:
使用串口调试助手监控PLC发出之读写命令,如下所示:
十、系统联调:
经过测试,PLC可对变频器实现启动、停止、给定频率和读取参数等操作:
楼主最近还看过