西门子6SL3040-0PA01-0AA0

6SL3040-0PA01-0AA0控制单元适配器 CUA32 针对功率模块 PM340 带增量编码器 HTL/TTL 接口

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 :正转启动西门子6SL3040-0PA01-0AA00C7F :反转启动
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从站存储区奇偶错误

关键词

插头与终端电阻在Profibus通讯中有着非常重要的作用,它们使用起来非常简单,没有很多复杂的设置;但是正是由于使用简单,使得很多工程师在使用当中忽略了一些细节,导致很多通讯问题。


1 Profibus插头的结构与简单用法


图1Profibus插头结构

这是常见的Profibus插头,如果我们有A、B两个站点要做Profibus通讯,应该如何连接插头呢?因为总线上只有两个站,显然终端电阻都要打到ON位置。那么插头上的接线是否要一进一出呢。


图2 两个DP站点的连接

正确的做法是两个插头都连接进线端。因为终端电阻与插头的出线端是2选1的。终端电阻打ON,进线端连接终端电阻,断开与出线端的连接;终端电阻打OFF,进线端断开与终端电阻的连接,连接出线端。


2常见的Profibus总线连接


图3 主站在总线一端点

图3所示的是一般的Profibus总线连接方法,主站位于总线的一端,终端电阻打ON。
然后依次连接后面的站点,中间的站点终端电阻打OFF,面的站点终端电阻打ON。


图4 主站在总线中间

有时候由于现场设备分布的原因,主站也可以安装在Profibus总线的中间,具体做法如图4所示。

终端电阻打ON的设备不能断电,如图5所示Profibus插头上除了220欧的终端电阻以外还有两个390欧的偏置电阻,并且偏置电阻上必须连接电源。


图5 终端电阻和偏置电阻

如果终端设备需要经常断电维护,或者终端设备只有接线端子而没有9针D型插座,就需要使用有源终端模块作为Profibus总线的终端(6ES7 972-0DA00-0AA0)。


图6 Profibus有源终端模块

如果Profibus电缆不够长,需要把两根电缆接起来,不能简单的把两根铜芯拧起来,因为这样会破坏电缆的特征阻抗,可能会导致通讯问题。使用图7中的接头来连接两根需要接起来的电缆。


图7 Profibus连接接头


3 RS485中继器的终端电阻使用方法
Profibus通讯电缆的长度取决于通讯的波特率,如果电缆超过了所能通讯的长度,就需要使用RS485中继器来延长通讯距离。

表1 总线长度与传输速率的关系

传输速率(kbit/s) 9.6-187.550015003000-12000
总线长度(m)1000400200100

中继器上有接线端子,Profibus电缆可直接连接到端子上。另外中继器上也配有终端电阻。其用法与电缆插头相同。


图8 1网段只有进线,2网段有进线出线

 


图9 1网段只有进线,2网段只有进线

 


图10 1网段有进线出线,2网段有进线出线


4 OLM上插头终端电阻使用方法

如果现场设备通讯距离较远,或者现场电磁干扰严重,可以使用OLM把电信号转化成光信号,使用光缆来传输信号。OLM上有RS485电气接口,需要使用Profibus插头来连接电缆。并且OLM电气接口不论连接主站还是从站,接法都一样。


图11 1网段只有进线,2网段只有进线

 


图12 1网段有进线出线,2网段只有进线

 


图13 1网段有进线出线,2网段有进线出线

对于只有一个RS485接口的OLM,可认为只有1网段,接法相同。


5 DP/DP coupler上插头终端电阻使用方法
两个DP主站可以使用DP/DP coupler来传输数据。DP/DP coupler上有两个RS485接口,连接方法与OLM相同。


图14 1网段只有进线,2网段只有进线

 


图15 1网段只有进线,2网段有进线出线

 


图16 1网段有进线出线,2网段有进线出线

西门子6SL3040-0PA01-0AA0