前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Micrologix1400 ModbusTCP通讯之master | 答题赠书

Micrologix1400 ModbusTCP通讯之master | 答题赠书

作者头像
剑指工控
发布2021-11-04 10:45:54
8600
发布2021-11-04 10:45:54
举报
文章被收录于专栏:剑指工控

在前面的文章中,我们按接口类型列举了AB常见PLC通讯接口上支持的工业通讯协议,对于AB公司来说,自己开发的通讯协议就有好几种,比如DF1,DH485,DeviceNet,ControlNet,EtherNet/IP等,如果只是在这AB的产品之间进行通讯的话,选一种它自己的协议就行,但是如果要连接外部第三方设备,就不得不使用一些其他公司或者工控届通用性较强的协议了,其中Modbus协议可以说应用最为广泛

并不是所有的AB产品都会支持Modbus协议,按物理接口来说,

  • 多数AB产品上带Rs485接口的一般都会支持ModbusRTU协议,
  • 只有Micrologix1400 B系列产品才会支持ModbusTCP协议,
  • 当然,CompactLogix和Controllogix系列部分产品通过编写程序也可以支持到ModbusTCP协议,该部分另有文章说明。 本文主要介绍在Micrologix里面使用ModbusTCP协议与第三方设备通讯,此处,Micrologix1400产品既可以作为Master读取其他ModbusTCP节点的数据,也可以作为Slave向其他设备通过ModbusTCP协议提供数据。

小笔记

  • 当作为ModbusTCP Server(Slave)或者ModbusTCP Client(Master)时,Micrologix1400 PLC最多支持16个连接。
  • ModbusTCP功能默认没有启用,需要在ChannelConfiguration里面配置一下。
  • 作为ModbusTCP Server时,ChannelConfiguration里面有个Enable Access Control for IP Addre选项,如果不勾选,可以允许任意Client访问。如果勾选,就必须要在下方填写具体的Client IP地址才能允许访问,并且只允许写5个Client IP地址。
  • 此处Modbus协议只能传输BOOL类型和INT类型。
  • Micrologix1400 PLC 配置完Channel参数后需要将PLC断电重启才能生效。

开 整

先说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相关的参数:

  • Modbus Commend:modbus的功能码选择,支持01/02/03/04/05/06/15/16。本次实验我们选择03功能码,读取modsim里面40001-40010地址的数据。
  • Data Table address:使用03功能码时,读取回来的数据存储起始地址,本文设置为N7:0,表示从N7数据文件的第0个INT开始。
  • Size in Elements:数据区文件里面为modbus协议开辟的地址区大小,一般可以设置大点,我测试设置为100,表示N7:0到N7:99之间的地址都用来存储读取回来的数据。

在Target Device区域内配置第三方ModbusTCP通讯的参数,此处我们要读取modsim软件。

  • Data table Address:目标modbus协议的起始地址,配合功能码使用,此处输1,下面的Modbus Address会自动变成40001,依次类推。
  • Unit identifier: 这用于识别连接到PLC的远程设备是串口或其他接口。默认值为255。如果目标设备不是网关,请使用此默认值。
  • Modbus Address:自动生成的Modbus协议数据地址。
  • Routing Information File:MSG连接状态信息文件。
  • EtherNetIP Adress:目标设备IP地址,本例中为运行modsim软件的计算机IP地址。
  • Port:默认502即可

配置完成后将程序下载到PLC内,运行PLC。

至此,ModbusTCP功能实验完成。

思考题:

如果PLC内有一些浮点数需要传输该怎么办呢?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 剑指工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档