分享

S7-200与变频器的MODBUS RTU通讯

 Y忍冬草 2017-03-25

1、本例程的系统配置:

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

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

3、创建一个例程:

3.1 设置通讯接口

本例程使用PC/PPI电缆。

3.2 建立PCPLC之间的连接

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

3.3 用电缆将S7-200Port 1端口与V20RS485接口相连(注意端口连接规则:V20
P+
3N-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

V20MODBUS  地址

P2022[0]

MODBUS应答超时

1000

2000

向主站发回应答的最大时间

P2014[0]

USS/MODBUS报文间断时间

100

0

接收数据时间

 3.5 V20常用寄存器说明


寄存器编号

描述

访问类型

定标系数

读取

写入

控制数据

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 
波特率:支持的通讯波特率为4800960019200 
Parity 
校验:校验方式选择(V20采用偶校验)

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

Timeout 超时:主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000 毫秒(秒),允许设置的范围为 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

从站存储区奇偶错误

来源:网络 侵删

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多