1、本例程的系统配置:
(1)安装Step7Micro/Win software和Modbus协议库,西门子在Micro/WINV4.0 SP5
中正式推出ModbusRTU主站协议库。
(2)PC/PPI电缆、S7-200、电源模块、通信电缆。
(3)V20驱动装置和一台PC机。
2、在使用MicroWinsoftware 创建项目之前,确认Modbus Master 库文件已经安装:

3、创建一个例程:
3.1 设置通讯接口
本例程使用PC/PPI电缆。

3.2 建立PC和PLC之间的连接

“双击刷新”搜索到PLC后,点击”确认”。
3.3 用电缆将S7-200Port 1端口与V20的RS485接口相连(注意端口连接规则:V20的
P+对3、N-对8),如下图所示:

3.4 变频器参数设置:
V20 可以通过选择连接宏Cn011实现ModbusRTU控制,也可以通过直接更改变频器参数的方法来实现。参数设置如下表所示:
| 参数 | 描述 | 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 | 接收数据时间 | 
| 寄存器编号 | 描述 | 访问类型 | 定标系数 | 读取 | 写入 | |
| 控制数据 | 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 | 
3.6 库存储区分配:在编译程序之前,选择“程序块”->“ 库” 右键,选择“库存储区”。在点击“建议地址” 选择V存储区的地址后点击“OK”退出。

3.6 初始化ModbusMaster端口:

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) | 
| 5 | Modbus /自由口未使能 | 
| 6 | Modbus 正在忙于其他请求 | 
| 7 | 响应错误(响应不是请求的操作) | 
| 8 | 响应CRC校验和错误 | 
| 101 | 从站不支持请求的功能 | 
| 102 | 从站不支持数据地址 | 
| 103 | 从站不支持此种数据类型 | 
| 104 | 从站设备故障 | 
| 105 | 从站接收了信息,但是响应被延迟 | 
| 106 | 从站忙,拒绝了该信息 | 
| 107 | 从站拒绝了信息 | 
| 108 | 从站存储区奇偶错误 | 


 会员中心
 会员中心 会员注册
 会员注册 返回顶部
返回顶部 刷新页面
刷新页面 下到页底
下到页底