西门子SMART PLC 和V20变频器modbus 通讯实例
1、
用通信电缆将S7-200SMART自带的RS485接口与V20的RS485接口相连(注意端口连接规则:V20的P+对3、N-对8),如下图所示:
2、变频器参数设置:
V20 可以通过选择连接宏Cn011实现Modbus RTU控制,也可以通过直接更改变频器参数的方法来实现。参数设置如下表所示:
3、V20常用寄存器说明
4、上述准备工作完毕,接下来正式编写通信程序
1)初始化ModbusMaster端口
EN 使能:
必须保证每一扫描周期都被使能(使用 SM0.0)
。
Mode 模式:
为 1 时,使能 Modbus 协议功能;为 0 时恢复为系统 PPI 协议
。
Baud 波特率:
支持的通讯波特率为4800,9600,19200 。必须与变频器一致。
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)写设定频率
5、Modbus错误代码:
Done 完成位:读写功能完成位
Error 错误代码:
只有在 Done 位为1时,错误代码才有效
6、读取变频器的相关参数,RW为0,则为读取数据,此处为读取寄存器地址为40111的频率值,并进行转换,是否需要转换,需要看变频器的要求,其他品牌的变频器不一定需要
需要特别注意的就是RS485为半双工通讯方式,每次对变频器的读写只能有一个指令在执行,所以需要进行轮询程序编写,一般可以使用Done和Error作为下一个读写指令的启动指令