首页 理论教育 Modbus通信优化:实用技巧分享

Modbus通信优化:实用技巧分享

时间:2023-06-23 理论教育 版权反馈
【摘要】:Modbus协议是应用于电子控制器上的一种通用语言。标准的Modbus口是使用RS-232C兼容的串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率和奇偶校验。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在组态IO模块时,要选择others→1756-Module。图575 导入的标准通信例程3.对MVI56-MCM模块进行配置对于Modbus通信协议来说,每个Modbus网络只可以有一个主站,主站可以发出请求信息,等待从站的响应。

Modbus通信优化:实用技巧分享

Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其他设备之间可以通信。它已经成为一种通用的工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一台控制器请求访问其他设备的过程,如何回应来自其他设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。

标准的Modbus口是使用RS-232C兼容的串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率奇偶校验。通信时,每个控制器需要知道它们的设备地址,识别按照地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。

1.MVI56-MCM模块的硬件设置

MVI56-MCM模块有三个通信口,最上端的为组态端口,用于对模块本身的配置。其他两个端口P1、P2用于和外部设备进行通信。底部有三组跳线,分别是RS-232、RS-422、RS-485,如图5-69所示。

图5-69 跳线设置图

对于P1端口设置,选择PRT2跳线;对于P2端口设置,选择PRT3跳线,默认状态下两个端口的跳线均为RS-232方式。SETUP跳线默认状态是断开的,未经ProSoft人员授权不要随意更改。

P1、P2两个端口都是RJ-45型,如果做串行通信,需要先将出厂提供的RJ-45转RS-232连接线接到MVI56-MCM模块上,再将RS-232端分别接到配套的DB9接头上。通过螺钉端子按如图5-70方式接线。

图5-69 跳线设置图

对于P1端口设置,选择PRT2跳线;对于P2端口设置,选择PRT3跳线,默认状态下两个端口的跳线均为RS-232方式。SETUP跳线默认状态是断开的,未经ProSoft人员授权不要随意更改。

P1、P2两个端口都是RJ-45型,如果做串行通信,需要先将出厂提供的RJ-45转RS-232连接线接到MVI56-MCM模块上,再将RS-232端分别接到配套的DB9接头上。通过螺钉端子按如图5-70方式接线。

图5-70 RS-232接线

2.MVI56-MCM模块的软件组态

首先需要新建工程,选择CPU并进行相关组态配置。在组态IO模块时,要选择others→1756-Module。注意模块所处的槽号,通信的数据格式要选择INT类型。组态模块信息如图5⁃71所示。

图5-70 RS-232接线

2.MVI56-MCM模块的软件组态

首先需要新建工程,选择CPU并进行相关组态配置。在组态IO模块时,要选择others→1756-Module。注意模块所处的槽号,通信的数据格式要选择INT类型。组态模块信息如图5⁃71所示。

图5⁃71 配置模块信息

打开梯形图导入例程(MainProgram双击进入梯形图,右键单击rung,会弹出如图5-72所示界面,选择Import Rung)。

图5⁃71 配置模块信息

打开梯形图导入例程(MainProgram双击进入梯形图,右键单击rung,会弹出如图5-72所示界面,选择Import Rung)。

图5-72 导入例程

选择要导入的名为MVI56(E)MCM_AddOn_Rung_v2_8.L5X的文件,如图5-73所示。修改导入时的相关配置,如图5⁃74所示。

图5-72 导入例程

选择要导入的名为MVI56(E)MCM_AddOn_Rung_v2_8.L5X的文件,如图5-73所示。修改导入时的相关配置,如图5⁃74所示。

图5-73 导入的AOI文件

图5-73 导入的AOI文件

图5-74 模块相关配置

图5⁃74中将Local:1:I,Local:1:O这两个变量修改为硬件所在槽位对应的变量,由于本示例模块插在主站1槽,所以修改完配置如图5-74所示。单击确定后,可以发现整个工程里面多了一些配置,包括ControllerTags、Data Type-UserDefine、Add-On Instructions等;导入后在例程中会出现MCM模块标准的运行程序如图5-75所示,下载程序到ControlLogix控制器中。

下载完毕后,请观察模块的OK灯是否变为绿色,而且APP status和BP AC指示灯显示橙色。

图5-74 模块相关配置

图5⁃74中将Local:1:I,Local:1:O这两个变量修改为硬件所在槽位对应的变量,由于本示例模块插在主站1槽,所以修改完配置如图5-74所示。单击确定后,可以发现整个工程里面多了一些配置,包括ControllerTags、Data Type-UserDefine、Add-On Instructions等;导入后在例程中会出现MCM模块标准的运行程序如图5-75所示,下载程序到ControlLogix控制器中。

下载完毕后,请观察模块的OK灯是否变为绿色,而且APP status和BP AC指示灯显示橙色。

图5⁃75 导入的标准通信例程

3.对MVI56-MCM模块进行配置

对于Modbus通信协议来说,每个Modbus网络只可以有一个主站,主站可以发出请求信息,等待从站的响应。当从站设备有响应或者响应超时时,主站模块都会去执行下一条命令。对于该模块来说无论将端口配置为主站或从站,必须对以下三个地方进行配置。

ModDef:这里主要是进行读写区域的分配,该模块一共有5000个数据寄存器,在这里我们可以配置哪些寄存器用于模块向CPU发送数据,哪些寄存器用于模块从CPU读取信息。

PortX:主要用于配置端口参数,如波特率、数据位、停止位等。

PortXMasterCommand:当模块作为主站时,需要在这里做一个轮询数据表,这个表主要告诉模块,要和Modbus网络里的哪些设备进行连接,需要进行哪些数据交换,读/写的数据存到什么位置等信息。

(1)配置ModDef

双击ControllerTags进入变量表,展开MCM-MCM.config-MCM.Config.Moddef,变量详细说明见表5-15。

5-15 Moddef变量详细说明

图5⁃75 导入的标准通信例程

3.对MVI56-MCM模块进行配置

对于Modbus通信协议来说,每个Modbus网络只可以有一个主站,主站可以发出请求信息,等待从站的响应。当从站设备有响应或者响应超时时,主站模块都会去执行下一条命令。对于该模块来说无论将端口配置为主站或从站,必须对以下三个地方进行配置。

ModDef:这里主要是进行读写区域的分配,该模块一共有5000个数据寄存器,在这里我们可以配置哪些寄存器用于模块向CPU发送数据,哪些寄存器用于模块从CPU读取信息。

PortX:主要用于配置端口参数,如波特率、数据位、停止位等。

PortXMasterCommand:当模块作为主站时,需要在这里做一个轮询数据表,这个表主要告诉模块,要和Modbus网络里的哪些设备进行连接,需要进行哪些数据交换,读/写的数据存到什么位置等信息。

(1)配置ModDef

双击ControllerTags进入变量表,展开MCM-MCM.config-MCM.Config.Moddef,变量详细说明见表5-15。

5-15 Moddef变量详细说明(www.xing528.com)

(2)Port1和Port2的端口设置

不管端口作为主站还是从站,该项设置是必需的。该设置位于ControllerTag选项里的MCM.Config.PortX部分,Port1和Port2是相互独立的,需要分别进行配置。各项参数说明见表5-16。

5-16 Port1参数说明

(2)Port1和Port2的端口设置

不管端口作为主站还是从站,该项设置是必需的。该设置位于ControllerTag选项里的MCM.Config.PortX部分,Port1和Port2是相互独立的,需要分别进行配置。各项参数说明见表5-16。

5-16 Port1参数说明

(3)端口命令配置

当端口被配置为主站的时候,必须对该项参数进行设置,主站命令主要包括:使能位,数据存储地址,数据长度,轮询时间以及要处理的从站站点号,从站的数据地址以及Modb-us功能码。各项参数说明见表5-17。

5-17 MasterCmd参数说明

(3)端口命令配置

当端口被配置为主站的时候,必须对该项参数进行设置,主站命令主要包括:使能位,数据存储地址,数据长度,轮询时间以及要处理的从站站点号,从站的数据地址以及Modb-us功能码。各项参数说明见表5-17。

5-17 MasterCmd参数说明

(续)

(续)

4.MVI56-MCM模块做主站的配置方法

MVI56-MCM模块作为Modbus主站时的配置方法如图5-76所示。

4.MVI56-MCM模块做主站的配置方法

MVI56-MCM模块作为Modbus主站时的配置方法如图5-76所示。

图5-76 ModDef配置

写寄存器起始地址为0,寄存器的数量为600。读寄存器的起始地址为1000,读寄存器的数量为200。无条件连续运行,不保存错误状态。此时模块的工作原理如下图5-77所示。

写数据的过程如下:CPU将MCM.Data.WriteData[0]的数据映射到MVI56-MCM的内部寄存器[0],内部寄存器[0]再发送给Modbus从站设备。

读数据的过程如下:MVI56-MCM模块先将从站设备的数据读到内部寄存器[1000]中,内部寄存器[1000]再将数据映射到MCM.Data.ReadData[0],完成读取数据过程。

Port1配置如图5-78所示。Port2本实验不使用。

MCM.CONFIG..Port1MasterCmd[0]配置如图5-79所示。

图5-76 ModDef配置

写寄存器起始地址为0,寄存器的数量为600。读寄存器的起始地址为1000,读寄存器的数量为200。无条件连续运行,不保存错误状态。此时模块的工作原理如下图5-77所示。

写数据的过程如下:CPU将MCM.Data.WriteData[0]的数据映射到MVI56-MCM的内部寄存器[0],内部寄存器[0]再发送给Modbus从站设备。

读数据的过程如下:MVI56-MCM模块先将从站设备的数据读到内部寄存器[1000]中,内部寄存器[1000]再将数据映射到MCM.Data.ReadData[0],完成读取数据过程。

Port1配置如图5-78所示。Port2本实验不使用。

MCM.CONFIG..Port1MasterCmd[0]配置如图5-79所示。

图5⁃77 模块工作原理

图5⁃77 模块工作原理

图5⁃78 Port1口配置

图5⁃78 Port1口配置

图5⁃79 端口命令配置

功能码3表示读取Modbus网络上的起始地址为DevAddress+400001。本实验表示将2号Modbus从站的400000~400009这10个数据读取到内部寄存器1000~1009。

5.MVI56-MCM模块作为从站的配置方法

MVI56-MCM模块作为从站的配置方法和主站配置一样,新建工程导入例程。和作主站相区别的地方是Port端口配置,从站端口命令不需要配置。从站Port1端口配置如图5-80所示。

图5⁃79 端口命令配置

功能码3表示读取Modbus网络上的起始地址为DevAddress+400001。本实验表示将2号Modbus从站的400000~400009这10个数据读取到内部寄存器1000~1009。

5.MVI56-MCM模块作为从站的配置方法

MVI56-MCM模块作为从站的配置方法和主站配置一样,新建工程导入例程。和作主站相区别的地方是Port端口配置,从站端口命令不需要配置。从站Port1端口配置如图5-80所示。

图5-80 从站Port1端口配置

Type=1表示设置为从站,SlaveID=2表示从站地址设置为2。其他配置和主站一样。

将程序编译下载到ControlLogix控制器中运行,观察MVI56-MCM的RJ45接头左侧发送接收灯都处于闪烁状态,APP和OK灯都处于常绿状态。至此,Modbus通信完成。

图5-80 从站Port1端口配置

Type=1表示设置为从站,SlaveID=2表示从站地址设置为2。其他配置和主站一样。

将程序编译下载到ControlLogix控制器中运行,观察MVI56-MCM的RJ45接头左侧发送接收灯都处于闪烁状态,APP和OK灯都处于常绿状态。至此,Modbus通信完成。

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

我要反馈