变频器的MODBUS-RTU模式通讯控制,采用RS指令发送命令内容说明

在前几篇文章中我们说到了MODBUS的ASCII码数据模式通讯去控制变频器,以及RTU模式的CRC校验码的PLC计算程序,今天就说下采用RTU数据模式控制变频器,包括变频器的调频、正转、反转、停止命令的写入及运行频率的读取。

先了解下RTU帧的结构:

帧头 3.5个字节的通讯时间

从机地址: 通讯地址0~247, 0代表广播

功能码: 01H、02H、03H等

数据: 2*N个字节的数据,为通讯的主要内容,包括数据地址、数据内容等。

CRC 低位: CRC校验码

CRC 高位: CRC校验码

帧尾: 3.5个字节的通讯时间

在变频器的控制器,功能码主要用到两个03H和06H。

03H表示主机向变频器读取数据,要读取多少个数据由命令中“数据个数”而定,最多可以读取 16 个数据。读取的参数地址必须是连续的。每个数据占用的字节长度为 2 字节,也即一个字(word)。以下命令格式均以 16 进制表示(数字后跟一个“H”表示 16 进制数字),一个 16 进制占用一个字节,主要作用是读取变频器的参数及工作状态,比如变频器的频率、电压、电流以及运行状态(正转、反转、停机、故障状态的监视等)

06H的命令表示主机向变频器写数据,一条命令只能写一个数据,不能写多个数据。它的作用是改变变

频器的参数及工作方式,比如控制变频器正反转、停机,设定频率、转矩、加减速时间等。

我们从主机往从机发送命令后,如果发送成功,从机会返回一个回应信息,从这个返回信息中可以看出我们想要得到的东西,这里说下发送写命令06H,它的返回信息与发送命令是一样的,所以我们只有在读命令03H才用到返回信息。下面我们举个例子说明发送信息与返回信息。

03H,从通讯地址为01的变频器,以地址0004H开始,连续读取两个数据内容就是去读0004H和0005H地址的内容。

变频器的MODBUS-RTU模式通讯控制,采用RS指令发送命令内容说明

03H

从上表看出主机向从机发送命令需要知道从机的地址、功能码(命令)、数据地址、数据个数、CRC校验码,以上例子中我们知道从机的地址是01H,功能码是读03H,地址是0004H,拆分成高低位,数据个数是俩个0002H,同样拆分,最后的CRC校验码是根据以上数据计算出来的,数据发送到从机后,从机也根据信息计算一个CRC校验码,如果与主机计算的校验码一致,则通讯成功,会向从机发送一组返回信号,我们就知道了从变频器中读取的信号,例如0004H和0005H地址的数据是5000,0, 那么返回信息除了地址与命令码不变, 后面的数据就变成了字节个数、 数据内容了,5000的16进制是1388H, 因此数据内容是高位13H, 低位88H。

接下来我们举例子说下英威腾变频器的相关控制(电机正反转停止、频率设定、频率读取)

我们知道正反转停止、频率设定是写指令06H,频率读取是读指令03H,这大家应该清楚。

由变频器手册知道通讯控制的地址为2000H, 正转数据位0001H, 反转是0002H, 停机是0005H。

通讯频率设定值的地址是2001H, 变频器运行频率地址是3000H。

设置变频器的站号是01H。

1、 正转指令,01 06 20 00 00 01 67 90

2、 反转指令,01 06 20 00 00 02 81 A7

3、 停机指令,01 06 20 00 00 02 C0 65

4、 设定频率,01 06 20 01 0B B8 56 E4 (设置变频器30.00Hz运行)

5、 运行频率,01 03 30 00 00 01 8B 0A (返回信息,01 03 02 0B B8 BF 06)

以上指令是否明白?

那么上面的清楚后, 如何在PLC发送这些指令呢, 这里我们采用RS指令完成。

RS指令在以前的MODBUS-ASCII码通讯文章也说过, 指令格式是RS S m D n, 发送以S为开始的m个数据, 接受以D为开始的n个数据。 比如发送正转指令,RS D0 K8 D20 K8,D0 D1 D2 D3 D4 D5 D6 D7是发送数据,D20 D21 D22 D23 D24 D25 D26 D27是接受数据,D0的内容是01,D1是06 , 依此论推下去,接受信息与发送数据一致。

下面看下实际例子:

变频器的MODBUS-RTU模式通讯控制,采用RS指令发送命令内容说明

系统连接

变频器的MODBUS-RTU模式通讯控制,采用RS指令发送命令内容说明

正转指令

变频器的MODBUS-RTU模式通讯控制,采用RS指令发送命令内容说明

反转指

变频器的MODBUS-RTU模式通讯控制,采用RS指令发送命令内容说明

停止指令

变频器的MODBUS-RTU模式通讯控制,采用RS指令发送命令内容说明

频率读取指令

从以上的图中看出, 写入指令的发送和接受都是一样的, 读取指令的接受数据就不一样了, 就比如频率读取指令返回的信息中就没有地址数据, 它的返回数据就是字节个数2, 数据内容07 D0, 转换成十进制就是2000, 也就是20.00Hz, 这在PLC编程时候需要注意。


分享到:


相關文章: