西门子SMART PLC 和V20变频器modbus 通讯实例

1
用通信电缆将S7-200SMART自带的RS485接口与V20RS485接口相连(注意端口连接规则:V20P+3N-8),如下图所示:


2、变频器参数设置:

V20 可以通过选择连接宏Cn011实现Modbus RTU控制,也可以通过直接更改变频器参数的方法来实现。参数设置如下表所示:

3V20常用寄存器说明

4、上述准备工作完毕,接下来正式编写通信程序

1)初始化ModbusMaster端口

EN 使能:
必须保证每一扫描周期都被使能(使用 SM0.0

Mode 模式:
1 时,使能 Modbus 协议功能;为 0 时恢复为系统 PPI 协议

Baud 波特率:
支持的通讯波特率为4800960019200 。必须与变频器一致。

Parity 校验:
校验方式选择
V20采用偶校验)

0=无校验

1=奇较验

2=偶较验

Timeout 超时:
主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000 毫秒(1 秒),只要保证从站有时间响应即可。

Done 完成位:
初始化完成,此位会自动置1

Error:初始化错误代码。

2
调用 ModbusRTU 主站读写功能块MBUS_MSG,发送一个Modbus 请求:

写入控制字1

EN 使能:
同一时刻只能有一个读写功能(即 MBUS_MSG)使能

注意:V20对于写指令同一时刻只运行对一个保持寄存器操作;读指令同一时刻最大允许操作125 个保持寄存器。

First 读写请求位:
每一个新的读写请求必须使用脉冲触发。

Slave 从站地址:
可选择的范围 1 – 247,填写变频器实际地址

RW 请求方式: 0
读, 1


Count 数据个数
通讯的数据个数(位或字的个数)

注意: Modbus主站可读/写的最大数据量为120个字(是指每一个 MBUS_MSG 指令)。

DataPtr 数据指针:
如果是读指令,读回的数据放到这个数据区中

如果是写指令,要写出的数据放到这个数据区中

Done 完成位:读写功能完成位,正在发送命令时为0,完成后为1

Error 错误代码:
只有在 Done 位为1时,错误代码才有效。

常用的控制字:

047E :运行准备

047F :正转启动

0C7F :反转启动

04FE :故障确认

3)写设定频率

5Modbus错误代码:

Done 完成位:读写功能完成位

Error 错误代码:
只有在 Done 位为1时,错误代码才有效

 

6、读取变频器的相关参数,RW0,则为读取数据,此处为读取寄存器地址为40111的频率值,并进行转换,是否需要转换,需要看变频器的要求,其他品牌的变频器不一定需要

需要特别注意的就是RS485为半双工通讯方式,每次对变频器的读写只能有一个指令在执行,所以需要进行轮询程序编写,一般可以使用Done和Error作为下一个读写指令的启动指令

微信长按或扫描下方二维码(或加公众号:gkplc888)并关注,每天推送经典文章,电话/微信咨询:18861496300

抢沙发

昵称*

邮箱*

网址