S7-200与V20之间的MODBUS RTU通讯

n

S7-200与V20的MODBUS RTU通讯n

1、本例程的系统配置:n

(1)安装Step7 Micro/Win software和Modbus协议库,西门子在Micro/WIN V4.0 SP5
中正式推出Modbus RTU主站协议库。
(2)PC/PPI电缆、S7-200、电源模块、通信电缆。
(3)V20驱动装置和一台PC机。n

2、在使用MicroWin software 创建项目之前,确认Modbus Master 库文件已经安装:n

S7-200与V20之间的MODBUS RTU通讯

3、创建一个例程:n

3.1 设置通讯接口n

本例程使用PC/PPI电缆。n

S7-200与V20之间的MODBUS RTU通讯

3.2 建立PC和PLC之间的连接n

S7-200与V20之间的MODBUS RTU通讯

“双击刷新”搜索到PLC后,点击”确认”。n

3.3 用电缆将S7-200 Port 1端口与V20的RS485接口相连(注意端口连接规则:V20的
P+对3、N-对8),如下图所示:n

S7-200与V20之间的MODBUS RTU通讯

3.4 变频器参数设置:n

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

参数 描述 Cn011默认值 实际设置 备注
P0700[0] 选择命令源 5 5 RS485为命令源
P1000[0] 选择频率 5 5 RS485为速度设定值
P2023[0] RS485协议选择 2 2 MODBUS RTU协议
P2010[0] USS/MODBUS波特率 6 6 波特率为9600bps
P2021[0] MODBUS地址 1 3 V20的MODBUS 地址
P2022[0] MODBUS应答超时 1000 2000 向主站发回应答的最大时间
P2014[0] USS/MODBUS报文间断时间 100 0 接收数据时间

3.5 V20常用寄存器说明n

寄存器编号 描述 访问类型 定标系数 读取 写入
控制数据 40100 控制字 R/W 1 PZD1 PZD1
40101 主设定值 R/W 1 PZD2 PZD2
状态数据 40110 状态字 R 1 PZD1
40111 速度实际值 R 1 PZD2
P1120 40322 斜坡上升时间 R/W 100 P1120 P1120
P1121 40323 斜坡下降时间 R/W 100 P1121 P1121

更多的V20寄存器信息,请访问下面链接:n

67267484

3.6 库存储区分配:在编译程序之前,选择 “程序块” ->“ 库” 右键,选择“库存储区”。在点击 “建议地址” 选择V存储区的地址后点击 “OK”退出。n

S7-200与V20之间的MODBUS RTU通讯

3.6 初始化Modbus Master端口:n

S7-200与V20之间的MODBUS RTU通讯

EN 使能: 必须保证每一扫描周期都被使能(使用 SM0.0) 。
Mode 模式: 为 1 时,使能 Modbus 协议功能;为 0 时恢复为系统 PPI 协议 。
Baud 波特率: 支持的通讯波特率为4800,9600,19200 。
Parity 校验: 校验方式选择 (V20采用偶校验)n

0=无校验
1=奇较验
2=偶较验

Timeout 超时: 主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000 毫秒(1 秒),允许设置的范围为 1 - 32767。
注意: 这个值必须设置足够大以保证从站有时间响应。
Done 完成位: 初始化完成,此位会自动置1。
Error:初始化错误代码。n

3.7 调用 Modbus RTU 主站读写功能块MBUS_MSG,发送一个Modbus 请求:n

3.7.1 写入控制字1和速度实际值:n

S7-200与V20之间的MODBUS RTU通讯

EN 使能: 同一时刻只能有一个读写功能(即 MBUS_MSG)使能 。
注意:V20对于写指令同一时刻只运行对一个保持寄存器操作;读指令同一时刻最大允许操作125 个保持寄存器。
First 读写请求位: 每一个新的读写请求必须使用脉冲触发。
Slave 从站地址: 可选择的范围 1 - 247 。
RW 请求方式: 0 = 读, 1 = 写 。
Count 数据个数 通讯的数据个数(位或字的个数) 。
注意: Modbus主站可读/写的最大数据量为120个字(是指每一个 MBUS_MSG 指令)。
DataPtr 数据指针: 1. 如果是读指令,读回的数据放到这个数据区中 ;
2. 如果是写指令,要写出的数据放到这个数据区中 。n

Done 完成位:读写功能完成位 。
Error 错误代码: 只有在 Done 位为1时,错误代码才有效。
常用的控制字:n

047E :运行准备
047F :正转启动
0C7F :反转启动
04FE :故障确认

3.7.2 读取状态字1和速度实际值:n

S7-200与V20之间的MODBUS RTU通讯

3.7.3 读取斜坡上升时间P1120:n

S7-200与V20之间的MODBUS RTU通讯

3.7.4 写入斜坡下降时间P1121:

S7-200与V20之间的MODBUS RTU通讯

3.8 通过状态表控制和读取变频器的状态:n

S7-200与V20之间的MODBUS RTU通讯

对于斜坡上升时间P1120,从寄存器列表中可以看到40322的寄存器的定标系数是100,读取过来的值为:VW1310=1000,所以参数P1120=1000/100=10。

4 Modbus错误代码:

Done 完成位:读写功能完成位
Error 错误代码: 只有在 Done 位为1时,错误代码才有效

代码 描述
0 无错误
1 响应校验错误
2 未用
3 接收超时(从站无响应)
4 请求参数错误(slave address, modbus address, count ,R/W)
5 Modbus /自由口未使能
6 Modbus 正在忙于其他请求
7 响应错误(响应不是请求的操作)
8 响应CRC校验和错误
101 从站不支持请求的功能
102 从站不支持数据地址
103 从站不支持此种数据类型
104 从站设备故障
105 从站接收了信息,但是响应被延迟
106 从站忙,拒绝了该信息
107 从站拒绝了信息
108 从站存储区奇偶错误

关键词
V20、Modbus RTU

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc326337.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论