ATV303Modbus通讯概要
刘允松李平
下面列出ATV303变频器做Modbus通讯时的要点和注意事项:
一、 RS485口定义
ATV303集成RS485串行通讯口,并驻留ModbusRTU串行通讯协议,允许其与主流上位机通讯。
RS485口的物理形式是RJ45。针脚排列定义如图1所示。
图1
其中4和5是数据发送/接收口,也是Modbus通常使用的。
8是GND,在做Modbusbus通讯时通常要求接上,可以提高通讯质量。
7可以由变频器提供10V电源,用来外拉面板或某些型号的232/485的转换头使用。
此RJ45口除Modbus通讯外的其它用途:
1. 可以用来外拉面板(型号为VW3A1006);
2. 可以连接PC监控软件;
3. 可以连接简易参数下载器;
4. 可以连接多功能参数下载器。
二、 通讯参数设置:
通讯参数主要在通讯菜单700-中设置,主要有Modbus地址(站号),波特率,数据格式、超时等等。
图2
另外ATV303的Modbus默认要求一旦数据开始读写,必须有连续的数据交换,变频器依据Modbus超时进行ConsistencyCheck。如果超过该时限没有接到数据交换指令,即判定串行
连接故障。因此必须对数据进行循环读或写。另一种解决的方式是在故障管理菜单菜单中屏蔽串行连接故障,即将参数611设置为00.
图3
注意这种方法是一种偷懒的方法,潜在的危险时当出现真正的通讯连接故障(如遇到干扰),变频器将不能发现。
四、控制通道的设置:
如果作Modbus通讯的目的仅仅是读取变频器的状态和变量,例如输出频率,输出电流,故障记录等,控制通道是不用设置的。
典型的状态参数地址为:
如果以上位机同时控制变频器的给定频率和起停命令,其实也可以不做设置。因为本来通讯
就是优先的:变频器一旦接收到来自Modbus的给定频率和起停(包括正反转)指令,Modbus控制就起了主导作用,除非强迫本地有效。
但为了照顾习惯用法,我们可以在400-菜单中分别设置给定源和命令源,需要设置下列参数:
图4
将参数406设置为02,将使给定通道400和命令通道407单独设置。例如:将401设置为164,就以Modbus作为给定通道,将407设置为10,就以Modbus作为起停通道。
当以Modbus作为给定通道时,频率给定的变量地址为8502(16#2136),以0.1Hz为单位,称为LFRD。或者使用变量地址8602(16#219A),以RPM(转每分)为单位,称为LFRD。
五、基于IEC61800-7的变频器状态流程
ATV303通讯控制时,命令字CMD的变量地址是8501(16#2135),或8601(16#2199),前者以以8502做频率给定,后者以8602做速度给定。实时状态字ETA的变量地址都是3201(16#0C81)。CMD和ETA的交互关系如图5。
图5
图中,命令字CMD的每一位的意义见下表:
表1
比较有用的的命令字CMD见下表:
表2
另外还有,反转指令CMD=16#080F,停止指令CMD=16#010F
状态字ETA的每一位的意义见下表:
表3
为简单起见,我们将状态字ETA位乘16#006F,掩盖掉某些位,称其为MSK,则典型的状态见下表。
表4
例如,要完成如下控制要求:M218的本体模块的I0.0.0的上升沿启动ATV303,以I0.0.1的下降沿使ATV303停机。根据上述交互状态表,以Somachine为操作平台用ST语言编写的例程为:
图6
五、通讯浏览器(I/OScanner)
通常比较常用的写入的变量包括:
变量代码 | 变量地址(十进制) | 变量地址(16进制) | 变量含义 | 备注 |
CMD | 8501 | 2135 | 命令字 | 以CMD发起停指令时,以LFR作频率给定 |
LFR | 8502 | 2136 | 频率给定字(单位:0.1Hz) | |
CMDD | 8601 | 2199变频器接线图 | 命令字 | 以CMDD发起停指令时,以LFRD作速度给定 |
LFRD | 8602 | 219A | 速度给定字(单位:1rpm) | |
CMI | 8504 | 2138 | 扩展命令字 | |
表5
通常比较常用的读出的状态变量包括:
变量代码 | 变量地址(十进制) | 变量地址(16进制) | 变量含义 | 备注 |
ETA | 8603 | 219B | 状态字 | |
ETI | 3206 | 0C86 | 扩展状态字 | |
RFR | 3202 | 0C82 | 有符号输出频率(单位:0.1Hz) | |
RFRD | 8604 | 219C | 有符号输出速度(单位:1rpm) | |
LCR | 3204 | 0C84 | 电机电流(单位:0.1Hz) | |
ULN | 3207 | 0C87 | 电网电压(单位:0.1V) | 起始地址33207,从VB80开始寄存,存4个字节,数据将保存在VW82 |
THD | 3209 | 0C89 | 变频器热状态(单位:%) | |
THR | 9630 | 259E | 电机热状态(单位:%) | |
LFt | 7121 | 1BD1 | 故障代码(列表) | |
表6
可以看到,某些变量的逻辑地址并不连续,如果需要读取或写入变量,需要多个读取和写入指令,这将影响通讯的效率。
为此,ATV303设置了间接寻址读取缓冲区和间接寻址写入缓冲区。首先将要连续读取的变量的逻辑地址依次设进参数705.0—705.3,将要连续写入的变量的逻辑地址依次设进参数706.0—706.3。这样707.0—707.3(逻辑地址12741/16#31C5—12744/16#31C8)对应的是读取的变量的映射,708.0—708.3(逻辑地址12761/16#31D9—12764/16#31DC)对应的是写入的变量的映射。
在编写读取和写入参数的指令格式时时,按逻辑地址12741—12744和12761—12764填入即可。
表7
发布评论