在前面的文章中,我们按接口类型列举了AB常见PLC通讯接口上支持的工业通讯协议,对于AB公司来说,自己开发的通讯协议就有好几种,比如DF1,DH485,DeviceNet,ControlNet,EtherNet/IP等,如果只是在这AB的产品之间进行通讯的话,选一种它自己的协议就行,但是如果要连接外部第三方设备,就不得不使用一些其他公司或者工控届通用性较强的协议了,其中Modbus协议可以说应用最为广泛。
并不是所有的AB产品都会支持Modbus协议,按物理接口来说,
小笔记
开 整
先说Master
本文以Micrologix1400 系列1766-L32BWA型号PLC为例,配合modsim软件测试。
先配置好modsim备用
01
打开Logix500编程软件,创建一个对应PLC型号的工程,同时可以指定PLC的连接路劲。自定义程序名称,并且点击下方Who Active按钮再弹出框选择Rslinx软件连接的PLC型号。
02
双击程序左侧的Channel Configuration菜单,弹出配置画面,选择Channel1(以太网口),勾选ModbusTCP Enable选项,其余默认。
03
勾选完ModbusTCP enable后,会在该也上部菜单选项位置多出来一个Channel 1-Modbus选项,点选该选项。
Channel 1-Modbus选项页面为ModbusTCP Server功能的一些参数配置页面,其中Modbus Data Table File Numbers:指定modbus协议里面的数据区对应在该PLC内的内数据文件及位置。0xxx区和1xxx去只能对应填写PLC内BINARY类型的数据文件编号,如3。3xxx和4xxx只能填写PLC内INTEGER类型数据文件的编号,如7。填写之后,该数据文件及作为对应数据区地址区间,其他MobusTCP Client访问时实际访问到的就是这些数据文件。默认地,0xxxx和1xxxx分别有0-255是位地址。3xxxx和4xxxx分别有0-255是INT类型地址。另外,4xxxx后面有个选项Expand,如果勾选了,还可以增加5个数据文件,总共可以达到1536个INT类型的寄存器地址。
Enable Access Control for IP Address:选择是否使用下列IP地址作为ModbusTCP的Client。建议不要勾选。
配置完毕点击下方应用并确定。
04
作为ModbusTCP Client连接Modsim软件
在Micrologix1400PLC内,需要使用MSG指令配置modbus Client功能参数,并且该MSG指令每次读完后会返回一个完成状态为。另外,我们也可以在程序内使用定时器定时触发该MSG指令执行。程序如下
选中DataFile,右键新建一个MSG类型的数据文件,File:默认数字即可,Type:Message,Name:modbus(自定义的)。Elements:改数据文件内包含的Message文件个数,一个MSG指令需要一个Message文件,此时根据需要填写,后期可以修改。其余默认,点击OK创建。
另外需要再创建一个类型为RouteInformation的数据文件,用于存放modbus连接的状态信息。
在LAD里面创建定时器触发MSG程序。
点击程序里面MSG指令的 setup Screen,编辑MSG指令。
指令配置页面中,channel:选择本PLC的通讯接口,我们配置的是ModbusTCP协议的通讯,所以选择1-ModbusTCP。
选择了1-ModbusTCP后,下面会变成ModbusTCP相关的参数:
在Target Device区域内配置第三方ModbusTCP通讯的参数,此处我们要读取modsim软件。
配置完成后将程序下载到PLC内,运行PLC。
至此,ModbusTCP功能实验完成。
思考题:
如果PLC内有一些浮点数需要传输该怎么办呢?