视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
S7-200与V20的MODBUS RTU通讯
2025-09-29 09:05:05 责编:小OO
文档

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

显示订货号

S7-200与V20的MODBUS RTU通讯

1、本例程的系统配置:

(1)安装Step7 Micro/Win software和Modbus协议库,西门子在Micro/WIN V4.0 SP5

          中正式推出Modbus RTU主站协议库。

(2)PC/PPI电缆、S7-200、电源模块、通信电缆。

(3)V20驱动装置和一台PC机。

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

3、创建一个例程:

3.1 设置通讯接口

本例程使用PC/PPI电缆。

3.2 建立PC和PLC之间的连接

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

3.3 用电缆将S7-200 Port 1端口与V20的RS485接口相连(注意端口连接规则:V20的

P+对3、N-对8),如下图所示:

3.4 变频器参数设置:

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

参数描述Cn011默认值

实际设置备注
P0700[0]选择命令源55RS485为命令源

P1000[0]选择频率55RS485为速度设定值

P2023[0]RS485协议选择

22MODBUS RTU协议

P2010[0]USS/MODBUS波特率

66波特率为9600bps

P2021[0]MODBUS地址

13V20的MODBUS 地址

P2022[0]MODBUS应答超时

10002000向主站发回应答的最大时间
P2014[0]USS/MODBUS报文间断时间

1000接收数据时间
   

3.5 V20常用寄存器说明

 寄存器编号描述访问类型定标系数读取写入
控制数据40100控制字R/W1PZD1PZD1
40101主设定值R/W1PZD2PZD2
状态数据40110状态字R1PZD1 
40111速度实际值R1PZD2 
P112040322斜坡上升时间R/W100P1120P1120
P112140323斜坡下降时间R/W100P1121P1121
更多的V20寄存器信息,请访问下面链接:

67267484

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

 

3.6 初始化Modbus Master端口:

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

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

Baud 波特率: 支持的通讯波特率为4800,9600,19200 。

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

0=无校验

1=奇较验

2=偶较验

Timeout 超时: 主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000 毫秒(1 秒),允许设置的范围为 1 - 32767。

注意: 这个值必须设置足够大以保证从站有时间响应。

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

Error:初始化错误代码。

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

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

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

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

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

Slave 从站地址: 可选择的范围 1 - 247 。

RW 请求方式: 0 = 读, 1 = 写 。

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

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

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

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

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

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

常用的控制字:

047E :运行准备

047F :正转启动

0C7F :反转启动

04FE :故障确认

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

 

3.7.3 读取斜坡上升时间P1120:

 

3.7.4 写入斜坡下降时间P1121:

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

对于斜坡上升时间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)

5Modbus /自由口未使能

6Modbus 正在忙于其他请求

7响应错误(响应不是请求的操作)
8响应CRC校验和错误

101从站不支持请求的功能
102从站不支持数据地址
103从站不支持此种数据类型
104从站设备故障
105从站接收了信息,但是响应被延迟
106从站忙,拒绝了该信息
107从站拒绝了信息
108从站存储区奇偶错误
关键词

下载本文
显示全文
专题