标准的Modbus口是使用RS-232C兼容的串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。通信时,每个控制器需要知道它们的设备地址,识别按照地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。
1.MVI56-MCM模块的硬件设置
MVI56-MCM模块有3个通信口,最上端的为组态端口,用于对模块本身的配置。其他两个端口P1、P2用于和外部设备进行通信。底部有三组跳线,分别是RS-232、RS-422、RS-485,如图5-51所示。
对于P1端口设置,选择PRT2跳线;对于P2端口设置,选择PRT3跳线,默认状态下两个端口的跳线均为RS-232方式。SETUP跳线默认状态是断开的,未经ProSoft人员授权不要随意更改。
P1、P2两个端口都是RJ-45型,如果做串行通信,需要先将出厂提供的RJ-45转RS-232连接线接到MVI56-MCM模块上,再将RS-232端分别接到配套的DB9接头上。通过螺钉端子按如图5-52方式接线。
图5-51 跳线设置图
图5-52 RS-232接线
2.MVI56-MCM模块的软件组态
首先需要新建工程,选择CPU并进行相关组态配置。在组态IO模块时,要选择others→1756‐Module。注意模块所处的槽号,通信的数据格式要选择INT类型。组态模块信息如图5-53所示。
图5-53 配置模块信息
导入模块已提供的标准例程,打开梯形图导入例程(MainProgram双击进入梯形图,右键点击“rung”会弹出如图5-54所示画面,选择Import Rung)。
图5-54 导入例程
选择要导入的名为MVI56(E)MCM_AddOn_Rung_v2_8.L5X的文件,如图5-55所示。修改导入时的相关配置,如图5-56所示。
上图中将Local:1:I,Local:1:O这两个变量修改为硬件所在槽位对应的变量,由于本示例模块插在主站1槽,所以修改完配置如上图所示。点击“确定”后,可以发现整个工程里面多了一些配置,包括:ControllerTags,Data Type-UserDefine,Add-On Instructions等;导入后在例程中会出现MCM模块标准的运行程序如图5-57所示,下载程序到Con-trolLogix控制器中。
下载完毕请观察模块的OK灯是否变为绿色,而且APP status和BP AC指示灯显示橙色。
图5-55 导入的AOI文件
图5-56 模块相关配置
3.对MVI56-MCM模块进行配置
对于Modbus通信协议来说,每个Modbus网络只可以有一个主站,主站可以发出请求信息,等待从站的响应。当从站设备有响应或者响应超时时,主站模块都会去执行下一条命令。对于该模块来说无论将端口配置为主站或从站,必须对以下3个地方进行配置。
ModDef:这里主要是进行读写区域的分配,该模块一共有5000个数据寄存器,在这里可以配置哪些寄存器用于模块向CPU发送数据,哪些寄存器用于模块从CPU读取信息。
PortX:主要用于配置端口参数,如:波特率、数据位、停止位等。
PortXMasterCommand:当模块作为主站时,需要在这里做一个轮询数据表,这个表主要告诉模块,要和Modbus网络里的哪些设备进行连接,需要进行哪些数据交换,读/写的数据存到什么位置等信息。
图5-57 导入的标准通信例程
(1)配置ModDef
双击“ControllerTags”进入变量表,展开MCM-MCM.config-MCM.Config.Moddef,变量详细说明见表5-6。
表5-6 Moddef变量详细说明
(www.xing528.com)
(2)Port1和Port2的端口设置
不管端口作为主站还是从站,该项设置是必需的。该设置位于ControllerTag选项里的MCM.Config.PortX部分,Port1和Port2是相互独立的,需要分别进行配置。各项参数说明见表5-7。
表5-7 Port1参数说明
(续)
(3)端口命令配置
当端口被配置为主站的时候,必须对该项参数进行设置,主站命令主要包括:使能位,数据存储地址,数据长度,轮询时间以及要处理的从站站点号,从站的数据地址以及Modb-us功能码。各项参数说明见表5-8。
表5-8 MasterCmd参数说明
4.MVI56-MCM模块作主站的配置方法
MVI56-MCM模块作为Modbus主站时的配置方法如图5-58所示。
图5-58 ModDef配置
写寄存器起始地址为0,寄存器的数量为600。读寄存器的起始地址为1000,读寄存器的数量为200。无条件连续运行,不保存错误状态。此时模块的工作原理如图5-59所示。
图5-59 模块工作原理
写数据的过程如下:CPU将MCM.Data.WriteData[0]的数据映射到MVI56‐MCM的内部寄存器[0],内部寄存器[0]再发送给Modbus从站设备。
读数据的过程如下:MVI56‐MCM模块先将从站设备的数据读到内部寄存器[1000]中,内部寄存器[1000]再将数据映射到MCM.Data.ReadData[0],完成读取数据过程。
Port1配置如图5-60所示。Port2本实验不使用。
MCM.CONFIG..Port1MasterCmd[0]配置如图5-61所示。
功能码3表示读取Modbus网络上的起始地址为DevAddress+400001。本实验表示将2号Modbus从站的400000~400009这10个数据读取到内部寄存器1000~1009。
图5-60 Port1口配置
图5-61 端口命令配置
5.MVI56-MCM模块作从站的配置方法
MVI56-MCM模块作为从站的配置方法和主站配置一样,新建工程导入例程。和作主站相区别的地方是Port端口配置,从站端口命令不需要配置。从站Port1端口配置如图5-62所示。
图5-62 从站Port1端口配置
Type=1表示设置为从站,SlaveID=2表示从站地址设置为2。其他配置和主站一样。
将程序编译下载到ControlLogix控制器中运行,观察MVI56-MCM的RJ45接头左侧发送接收灯都处于闪烁状态,APP和OK灯都处于常绿状态。至此,Modbus通信完成。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。