理论教育 PowerFlex525的Modbus网络通信优化方案

PowerFlex525的Modbus网络通信优化方案

时间:2023-06-28 理论教育 版权反馈
【摘要】:PowerFlex 525变频器集成的RS-485通信口使其具有多种应用方式。2)控制器通过Modbus协议与变频器进行通信。3)定义Modbus网络中主、从站。Modbus规定,只有主站具有主动权,从站只能被动的响应,包括回答出错信息。表6-7 Modbus功能代码和命令通过Modbus协议,控制器向PowerFlex 525变频器的寄存器中写入逻辑命令及速度给定信息。

PowerFlex525的Modbus网络通信优化方案

PowerFlex 525变频器集成的RS-485通信口使其具有多种应用方式。简单的RS-485通信有以下三种使用方案:

1)PC通过DriveExplorer或DriveExecutive软件对变频器进行控制和监视。

2)控制器通过Modbus协议与变频器进行通信。

3)定义Modbus网络中主、从站。

在控制单元速度控制系统中,选择通过Modbus协议实现控制器与变频器的通信。

1.Modbus协议

RS-485/Modbus是现在流行的一种布网方式,其特点是操作简单方便,凡是具有Modb-us接口的设备,都可以很方便地进行组态。从其功能上看,它可认为是一种现场总线,通过24种总线命令实现控制器与外界的信息交换。

Modbus有两种传送模式,RTU(Remote Terminal Unit)和ASCII码。它把通信参与者规定为主站和从站。主站可向多个从站发送通信请求,最多可达247个从站,每个从站都有自己的地址编号。对于每一种传输方式,Modbus协议都定义了控制器可识别和使用的信息类型,而无须考虑通信网络的拓扑结构。即通过定义传输的数据信息帧格式,描述了控制器如何访问其他设备和其他设备怎样做出响应,并检查和报告错误的过程。

在该速度控制系统中,采用Modbus的RTU模式,控制器与设备之间的通信主要包括主站对从站的读取和写入。主站可单独与从站进行通信,也可以广播方式与所有从站进行通信。Modbus规定,只有主站具有主动权,从站只能被动的响应,包括回答出错信息。主站写入信息的帧格式见表6-5,从站读取信息的帧格式见表6-6。

表6-5 主站写入信息的帧格式

978-7-111-45432-8-Chapter06-11.jpg

表6-6 从站读取信息的帧格式

978-7-111-45432-8-Chapter06-12.jpg

Modbus的RTU模式规定,采用CRC(循环冗余校验)方法对整个信息帧的内容进行错误检测,传输信息的最后两个字节用于传递该循环冗余校验数据。其校验方式是将整个传输数据(不包括最后两个字节)的所有字节按规定的方式进行位移并进行XOR(异或)计算,其结果作为检验码。接收端在收到数据时按同样的方式进行计算,并将结果与收到的CRC校验码进行比较,如果一致则认为通信正确,如果不一致,则认为通信有误,从站将发送CRC错误响应。

Modbus通信包括24种功能命令,每一种功能命令都有相应的功能代码。其中模拟量信息存放在寄存器(Holding Register)中,数字量信息存放在线圈(Holding Coils)中。

2.PowerFlex 525变频器的Modbus功能代码

PowerFlex 525变频器的外设接口(DSI)支持部分Modbus功能代码,见表6-7。

表6-7 Modbus功能代码和命令

978-7-111-45432-8-Chapter06-13.jpg

通过Modbus协议,控制器向PowerFlex 525变频器的寄存器中写入逻辑命令及速度给定信息。下面强调几点要注意的地方:

1)寄存器地址偏移量为1,例如:逻辑命令的寄存器地址是8192,而实际操作中就要设置为8193。

2)通过Modbus网络控制变频器,因此PowerFlex 525的参数P046[Start Source1](启动源)和P047[Speed Reference1](速度参考)应设为3——[Serial/DSI](串口或外设接口)。

3)控制器可通过发送功能代码06,将控制信息写入地址为8193(逻辑命令字)和8194(速度给定值)的寄存器中,以控制变频器的运行。也可通过发送功能代码03,读取地址为8449(逻辑状态字)和8452(速度反馈值)的寄存器中的信息。

读写变频器其他参数时,寄存器地址就是相应的参数号码,但是注意要偏移1位。

3.Modbus网络的硬件连接

本系统使用Micro850控制器,在RS-485网络上通过Modbus RTU模式监视并控制Pow-erFlex 525变频器。

4.PowerFlex 525变频器参数设置

通过变频器控制面板设置参数,控制面板相关参数设置见表6-8。

表6-8 变频器相关参数设置

978-7-111-45432-8-Chapter06-14.jpg

5.Micro850控制器组态

设置好变频器的参数后,即可对控制器进行编程,且在程序中不需要组态变频器,直接通过MSG MODBUS指令即可控制变频器。

1)将嵌入式串口通信模块插到控制器的1槽上,把该模块组态成Modbus网络协议(则该模块的通道号为5号,详见Modbus指令),通信驱动类型(Driver)设置为Modbus RTU Master。打开Micro850控制器的组态界面,选择对1槽上的串口通信模块进行组态,设置以下参数:(www.daowen.com)

●Driver(通信驱动类型):Modbus RTU;

●Baud Rate(通信波特率):19200;

●Party(奇偶校验位):NONE;

●Unit Address(控制器节点地址):1;

●Modbus Role(在Modbus中的角色):Modbus RTU Master。

2)单击“Advanced Settings”按钮,展开通信模块的高级设置,设置如下参数:Media(协议类型):RS-485;Stop Bites(数据格式停止位):1。

6.Micro850控制器与PowerFlex 525变频器的通信程序

1)创建MSG Modbus功能块,并分别创建功能块上所需要的变量,如图6-7所示。

2)编写读取变频器逻辑状态字的程序,如图6-8所示。

978-7-111-45432-8-Chapter06-15.jpg

图6-7 建立MSG功能块和它所对应的变量

梯级中的MSG MODBUS 1指令用于读取变频器的逻辑状态字,start指令用于启动指令,当start指令由假变真一次,控制器就会读一次变频器的逻辑状态字。

MSG MODBUS 1功能块指令的相关参数设置如图6-9所示,参数说明见表6-9。

978-7-111-45432-8-Chapter06-16.jpg

图6-8 读取变频器逻辑状态程序

978-7-111-45432-8-Chapter06-17.jpg

图6-9 读取变频器逻辑状态的MSG指令参数设置

表6-9 读取变频器逻辑状态MSG指令参数说明

978-7-111-45432-8-Chapter06-18.jpg

从Modbus地址8449~8452中读取的数据分别放到D1 laddr[1]~D1 laddr[4]中,其中8449中存放的是变频器逻辑状态字,8450中是变频器错误代码,8451中是变频器速度参考值,8452中是变频器速度反馈值。值得注意的是,这里的Modbus地址都是经过偏移一位以后的地址。

3)编写控制变频器逻辑命令字的程序与读取逻辑状态字类似,只是MSG文件不同,且MSG MODBUS指令的相关参数设置也有所不同,Modbus命令选择为“6”,存放数据的地址为“D2 laddr[1]”,将该地址文件中的数据写入到变频器寄存器中,而Modbus数据地址(变频器数据寄存器地址)为“8193”,D2 laddr设为18,命令电动机起动并正转,如图6-10所示。

程序编写完成后,将变频器运行位设为1时变频器起动,且读取的状态反馈字中的运行位为1表示变频器为运行状态。

4)编写设定速度给定值的程序与编写逻辑命令字类似,只是MSG文件不同,且MSG MODBUS指令的相关参数设置也有所不同,Modbus命令选择为“6”,存放数据的地址为“D3 laddr[1]”,将该地址文件中的数据写入到变频器寄存器中,而Modbus数据地址(变频器数据寄存器地址)为“8194”,如图6-11所示。

978-7-111-45432-8-Chapter06-19.jpg

图6-10 控制变频器逻辑命令字的MSG MODBUS指令参数设置

978-7-111-45432-8-Chapter06-20.jpg

图6-11 设定速度给定值的MSG MODBUS指令参数设置

5)变频器其他参数的修改与读取都可以用MSG MODBUS指令来实现,Modbus寄存器地址定义见表6-10。此时寄存器的地址就是相应的参数号码(注意偏移1位)。例如,要修改变频器参数P043[Minimum Freq]],则将寄存器地址设置为P044。

表6-10 Modbus寄存器地址定义

978-7-111-45432-8-Chapter06-21.jpg

注意,寄存器地址偏移量为1,例如:逻辑命令的寄存器地址是8192,而实际操作中就要设置为8193。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈