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

[复制链接]
查看41985 | 回复0 | 2024-3-22 08:29:53 | 显示全部楼层 |阅读模式
一、前言:

实际应用当中,多数从站设备给出的均是寄存器实际地址,而非寄存器编号,且西门子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可对变频器实现启动、停止、给定频率和读取参数等操作:







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则