ab plc modbus通讯

上传人:w****i 文档编号:91188753 上传时间:2019-06-26 格式:DOC 页数:21 大小:1.18MB
返回 下载 相关 举报
ab plc modbus通讯_第1页
第1页 / 共21页
ab plc modbus通讯_第2页
第2页 / 共21页
ab plc modbus通讯_第3页
第3页 / 共21页
ab plc modbus通讯_第4页
第4页 / 共21页
ab plc modbus通讯_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《ab plc modbus通讯》由会员分享,可在线阅读,更多相关《ab plc modbus通讯(21页珍藏版)》请在金锄头文库上搜索。

1、Logix5000控制器Modbus RTU主从通信一、适用的控制器Logix5000控制器通过自带的串行口可以实现Modbus RTU主从通信。这里提到的Logix5000控制器,包括:ControlLogix控制器(1756)CompactLogix控制器(1769)FlexLogix控制器(1794)当此串行口组态为用户模式实现Modbus RTU主从通信时,那么此端口不能再用于编程连接。二、机械接口与功能特性Logix5000控制器自带的串行口接口方式为常见的DB-9,RS232C,接口功能特性如下:三、接线方式1、接入RS232-Modbus通信当需要将Logix5000控制器接入R

2、S232-Modbus实现点到点Modbus通信,可以订购以下电缆实现Logix5000控制器与通信设备的连接:1747-CP3(用于SLC系列,使用后控制器盖无法关闭)1756-CP3(用于Logix5000控制器)这两种电缆都可以实现RS232C连接,长度为3米。当然,你也可以自制通信电缆来实现Modbus通信,但长度限制为15米。接线方法如下:2、接入RS485-Modbus通信可以通过AIC+高级接口转换器(1761-NET-AIC)将Logix5000控制器连接到RS485网络实现Modbus一主多从通信。接线方法如下:四、波特率和通信距离Logix5000控制器串行口的通信波特率有

3、110bps、300 bps、600 bps、1200 bps、2400 bps、4800 bps、9600 bps、19200 bps、38400 bps。默认为19200 bps。通信距离与接口转换器质量、电缆材质和线径、波特率、从站数量和现场环境有关,遵循Modbus协议规定。五、支持的功能码Logix5000控制器串行口实现Modbus通信仅支持以下功能码:六、需要准备的软件RSLogix5000 V17(PLC编程软件)RSLinx V2.54(PLC通信软件)ModbusMaster.ACD例程(从AB官方网站下载)ModbusSlave.ACD例程(从AB官方网站下载)七、Mod

4、bus RTU主站通信ModbusMaster.ACD文件帮助你使用Logix5000控制器作为Modbus主站,ACD文件包括:11个控制器标签1个周期性任务2个用户自定义数据类型使用Logix5000控制器作为Modbus主站,你必须完成下面的步骤:1、从ModbusMaster.ACD文件中复制用户自定义数据类型到你的RSLogix5000工程。2、从ModbusMaster.ACD文件中复制控制器标签到你的RSLogix5000工程。3、从ModbusMaster.ACD文件中复制周期任务到你的RSLogix5000工程。4、配置控制器通讯端口。5、配置新的控制器标签。6、使用新的程序

5、。7、校验工程并下载到控制器。复制用户自定义数据类型1、启动RSLogix5000。2、打开ModbusMaster.ACD文件。3、在另一个RSLogix5000窗口中,打开你的RSLogix5000工程。4、复制用户自定义数据类型:Mod_Command_StructureMod_Status5、粘贴用户自定义数据类型到你的RSLogix5000工程。6重复上面的步骤完成第二个用户自定义数据类型的复制和粘贴。复制控制器标签1、在ModbusMaster.ACD文件中复制所有控制器标签。2将复制的所有控制器标签粘贴到你的RSLogix5000工程。3至此,所有的11个控制器标签都已经复制到你

6、的RSLogix5000工程。下面是这11个控制器标签的描述:标签名称标签类型描述有效值Mod_ActiveBOOLModbus通讯使能位0=不使能1=使能Mod_Cmd_NumberDINT有效的命令数量1-40Mod_CommandsCommand40Modbus命令数组 Mod_Commandsx.EnableINT命令使能0=不使能1=始终使能2=按扫描使能3=仅使能1次 Mod_Commandsx.EchoReceivedINT如执行成功,则响应一个值和Enbale相同 Mod_Commandsx.ScanNumberINT确定从站在哪一次扫描执行命令0-12缺省为12 Mod_Co

7、mmandsx.AddressOffsetinMasterINT主站数据表字级别的偏移量0=不偏移0有偏移 Mod_Commandsx.SlaveAddressINT指定从站地址0-255 Mod_Commandsx.FunctionCodeINT指定功能码支持1、2、3、45、6、15、16 Mod_Commandsx.StartingAddressINT起始地址根据应用指定 Mod_Commandsx.NumberofpointsINT指定读/写数据数量位:1-2000寄存器:1-120 Mod_Commandsx.Spare1INT不用 Mod_Commandsx.Spare2INT不用

8、Mod_CommdMaxDINT最大的命令数量缺省40Mod_Data_Array_MaxDINT数据寄存器最大长度1-65537Mod_Data_Coils0INT250主站发送的输出位Mod_Data_Contacts1INT250主站接收的输入位Mod_Data_InpReg3INT250输入寄存器Mod_Data_HoldReg4INT250保持寄存器Mod_Echo_MaxTimeDINT响应超时时间ms默认350Mod_Scan_PresetDINT主站将要执行的扫描数0-40推荐至少为2复制周期任务 完成上面的动作后,你必须复制ModTask任务和相应的Modbus_Interf

9、ace程序到你的工程。1、从ModbusMaster.ACD文件中复制ModTask任务2、粘贴ModTask任务到你的RSLogix 5000工程。3、从ModbusMaster.ACD文件中复制Modbus_Interface程序。4、将Modbus_Interface程序粘贴到你的RSLogix 5000工程中的ModTask任务中。配置控制器通讯端口 完成以上的步骤后,下一步就是配置控制器通讯端口。1、访问控制器属性2、配置Serial Port(串行口)选项卡。3、配置User Protocol(用户协议)选项卡,如果需要。配置新的控制器标签 一旦你的控制器标签被复制到你的RSLog

10、ix 5000工程,你需要配置下表中的标签: 配置上述标签之前,确保你已经理解如何从主站数据表和从站之间读写数据。Modbus主站数据表标签数组 Modbus主站数据表有四个标签组:线圈数据(Mod_Data_Coils0标签)数据以位格式从读或写入这个数组。触点数据(Mod_Data_Contacts1标签)数据以位格式写入这个数组。输入寄存器数据(Mod_Data_InpReg3标签)数据以字格式写入这个数组。保持寄存器数据((Mod_DataHoldReg4标签)数据以字格式从读或写入这个数组。 在这个解决方案中,Mod_Commands标签根据你的配置,Modbus主站:使用四个数组中

11、的一个(决定于功能码)读/写数据从/到一个指定的位置(决定于地址偏移和起始地址)读/写一个指定的数据量(决定于number of points)读数据(写到一个从站)或写数据(从一个从站读)到指定位置。例子如果你希望以下命令被执行:命令总是被使能主站从线圈数据表中字2开始写入数据从Modbus从站节点2读取线圈数据主站在线圈数据表中字2从位3开始写入从一个从站读取32位线圈数据配置通信命令标签如下:Mod_Commands0.Enable = 1Mod_Commands0.AddressOffsetinMaster = 2Mod_Commands0.SlaveAddress = 2Mod_Co

12、mmands0.FunctionCode = 1Mod_Commands0.StartingAddress = 4Mod_Commands0.Numberofpoints = 32使能新的程序 最后,在运行程序之前,你必须使能新的程序。为了使能新的程序,你必须改变控制器标签Mod_Active的值为1。校验程序并下载运行 一旦你从ModbusMaster.ACD文件中复制了所有部件到你的RSLogix5000工程中,并对新的控制器标签作了相应的配置,然后使能新的程序后,那么你需要对新的程序进行校验,然后下载运行。从站数据地址与主站数据表对应关系Modbus主站与从站通信,实现位或字类型的数据的

13、读写操作。当进行读操作时,Modbus主站将读取的数据放置到主站的分类数据表中;当进行写操作时,Modbus主站将需要写出的数据也放置到对应的分类数据表中。主站分类数据表作为控制器标签,数据格式为整型数组,有四个,包括:线圈、离散输入、保持寄存器和输入寄存器,如下图所示:Mod_Data_Coils0数据表为线圈数据,适用于功能码1、5和15。Mod_Data_Contacts1数据表为离散输入数据,适用于功能码2。Mod_Data_HoldReg4数据表为保持寄存器数据,适用于功能码3、6和16。Mod_Data_InpReg3数据表为输入寄存器数据,适用于功能码4。当Modbus主站从某些

14、从站读取到位或字类型的数据时,它们被放置到了哪里?怎么让这些数据像我们希望的那样在分类数据表中放置?当Modbus主站要向某些从站写入位或字类型的数据时,它们应该被放置到哪里?如何准确地将数据写入到从站的正确位置?在这里要提到命令中的两个标签:Mod_Commandsx.AddressOffsetinMaster和Mod_Commands0.StartingAddress。前一个表示在主站数据表的地址偏移,后一个表示相应从站的起始地址。两个标签都是以字为单位进行操作的。实例1:读取5个离散输入状态(功能码2)情况一:Mod_Commandsx.AddressOffsetinMaster=0Mod_Commands0.StartingAddress=0命令设置如下:主站读取的离散量状态放置位置图,如下:在这种情况下,从站数据没有任何偏置,主站数据表的数据也没有偏移。情况二:Mod_Comma

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号