您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 统计图表 > 基于Modbus协议实现PLC与智能仪表的通讯
1基于Modbus协议实现PLC与智能仪表的通讯解放军理工大学工程兵工程学院苏薇叶磊吴晓红摘要:随着工业自动化技术的不断发展,Modbus协议现已不仅仅局限于应用在PLC/上位机之间的通讯上,许多智能仪表厂商也纷纷采用该协议作为自己产品的通讯协议。施耐德公司在其编程软件Concept2.2+补丁程序ServiceRelease2中增加了一条功能强大的通讯指令XXMIT。笔者结合实例对该指令的ModbusMaster使用方法做一些介绍,以供广大过程技术人员参考。关键字:Modbus协议;PLC;XXMIT指令;智能仪表中图分类号:TP273文献标识码:ACommunicationbsaedontheModbusbetweenPLCandIntelligenceinstrumentSuWeiYeLeiWuXiaoHongAbstract:Inmoreandmoreindustryautomationproject,PLCneedtocomminucatewithoneormoreinstruments.Soinordertomeettherequirementofcustomer,Schneiderhasaddacommunicationinstruction“xxmit”initsPLCsoftwareConcept2.2+Sp2.Withthisinstruction,youcanusethemodbuscommunicationpotoftheModiconserialPLCasamodbusmasterpotorastandardserialcommunicationpot.Thisarticleisgoingtointroducehowtousethecommunicationinstruction“xxmit”.Keywords:Modbus;PLC;XXMIT;Intelligenceinstrument1引言Modbus协议是法国施耐德公司推出的一个全开放的“主从式(Master/Slave)”通讯协议,其本意在于实现上位机(主设备)对PLC(从设备)内部存储区域的“直接”读写操作,无需用户对PLC进行通讯编程。随着工业自动化技术的不断发展,Modbus协议现已不仅仅局限于应用在PLC/上位机之间的通讯上,许多智能仪表厂商也纷纷采用该协议作为自己产品的通讯协议。与此同时,PLC也由以前单纯的I/O控制发展成为集控制、数据采集、通讯为一身,在越来越多的自动化工程中,PLC需要取代上位机,作为“主设备”来完成与智能仪表或其它支持该协议的PLC的通讯。针对这一情况,施耐德公司在其编程软件Concept2.2+补丁程序ServiceRelease2中增加了一条功能强大的通讯指令XXMIT。通过该指令,用户可以将施耐德Modicon系列PLC上的原ModbusSlave通讯口作为ModbusMaster口或标准串口来使用,大大扩展了Modicon系列PLC的通讯功能。本文将结合实例对该指令的ModbusMaster使用方法做一些介绍,以供广大过程技术人员参考。2XXMIT指令基本参数介绍22.1基本参数概述基本参数列表参数名称参数类型参数说明StartBOOL该参数为1时,XXMIT才被执行CommandWORD设置通讯口的工作参数,详细说明见下面的文章MsgOutANY需发送的数据MsgLenINT数据长度PortBYTE通讯口选择,1=Port12=Port2BaudrateINT波特率,可设定的值为:50,75,110,134,150,300,600,1200,1800,2000,2400,3600,4800,7200,9600,19200.DatabitsBYTE数据位数,可设定的值为:7,8StopbitsBYTE停止位,可设定的值为:1,2ParityBYTE奇偶校验,可设定的值为:0=无校验;1=奇校验;2=偶校验RespToutINT等待回应的时间,单位为毫秒RetryLmtINT通讯失败后重试的次数StartDlyINT使用RTS/CTS握手信号时的等待时间,单位为毫秒EndDlyINT使用RTS信号时的RTS信号的保持时间,单位为毫秒2.2重要参数说明2.2.1Command参数该参数的16个为位用于设置通讯口的不同工作方式Bit1-Bit4:使用Modem时需设定的相关参数Bit5:是否使用XON/XOFF流控制。设为1时表示使用XON/XOFF流控制Bit6:是否使用RTS/CTS握手信号。设为1时表示允许使用RTS/CTS信号Bit7:是否清除“BackSpace”字符。设为1时表示在“SimpleASCIIInput”和“TerminatedASCIIInput”模式下,清除MsgIn中的“BackSpace”字符Bit8:是否接管通讯口FIFO缓冲区。设为1时表示XXMIT指令接管通讯口FIFO缓冲区的控制Bit9:是否启用Modbus模式。设为1时表示通讯口工作在ModbusMaster模式下Bit10:是否启用标准串口模式。设我1时表示通讯口工作在标准串口模式下注:Bit9,Bit10不能同时设为1Bit11:是否启用“SimpleASCIIInput”模式,设为1时表示启用Bit12:是否启用“TerminatedASCIIInput”模式,设为1时表示启用Bit13:不用Bit14:是否启用RS485模式。设为1时表示启用。只有在使用ModiconMomentum系列PLC时,该位才设为1Bit15:是否启用RTS/CTSModem控制。设为1时表示启用Bit16:不用Bit1Bit16MSBLSB32.2.2Msgout参数该参数中存放需发送的字符或数据。通常在Concept中用一个WORD型数组来给该参数赋值。当通讯口工作在ModbusMaster模式下时,需按ModbusRTU的格式来给该参数赋值,但不含CRC校验值,具体的格式见下表名称说明Msgout[1]Modbus功能码:01=读取从设备内部多个输出位的值(0x)02=读取从设备内部多个输入位的值(1x)03=读取从设备内部多个可读写寄存器的值(4x)04=读取从设备内部多个只读寄存器的值(3x)05=向从设备内部单个输出位中写值(0x)06=向从设备内部单个可读写寄存器中写值(4x)15=向从设备内部多个输出位中写值(0x)16=向从设备内部多个可读写寄存器中写值(4x)Msgout[2]从从设备中读取或向从设备中写入的数据的数量Msgout[3]从设备的Modbus地址Msgout[4]从设备的数据开始地址,即你希望从从设备中哪个地址开始读取数据或向从设备中哪个地址开始写入数据Msgout[5]主设备的数据开始地址,即读取的数据返回到主设备从哪个地址开始的数据区或把主设备哪个数据区开始的数据发往从设备2.2.3Port参数只要使用ModiconMomentum系列PLC时,该参数才被设为2,否则该参数的值都被设定为1,表示用Port1进行通讯。3实例下面的例子为笔者在西宁寺沟口水电厂机组监控项目中,用ModiconCompactPLC与MP6000智能功率仪表通讯的程序,基此来对XXMIT指令的使用做更进一步的说明。3.1工程要求通过PLC从MP6000智能仪表中读取机组当前的有功功率、无功功率等数据。3.2硬件情况:PLC:施耐德ModiconCompact系列PLC,CPU型号为TSXPC-E984-265智能仪表:MP6000功率表通讯协议:Modbus协议3.3软件情况:PLC编程软件:Concept2.2+ServiceRelease2编程方式:ST文本编程MP6000的数据区情况:把MP6000仪表中从第一个地址开始的64个数据读出来PLC的数据区:从MP6000读出的数据写入PLC40031开始的64个寄存器中43.4程序:VARXXMIT_MB:XXMIT;SET_CMD:SET_BIT;END_VARSET_CMD(IN:=1,(*BOOL*)NO:=9(*UINT*));(*把Command参数的bit9置1,让通讯口工作在ModbusMaster模式下*)XXMIT_CMD:=SET_CMD.RES;XXMIT_MSGOUT[1]:=3;(***MODBUS功能码***)XXMIT_MSGOUT[2]:=64;(***需从MP6000中读取的寄存器的数量***)XXMIT_MSGOUT[3]:=5;(***MP6000的地址***)XXMIT_MSGOUT[4]:=1;(***MP6000中数据的起始地址***)XXMIT_MSGOUT[5]:=31;(***将读取的数据写入PLC从40031开始的64个寄存器中***)XXMIT_MB(Start:=1,(*BOOL*)Command:=XXMIT_CMD,(*WORD*)MsgOut:=XXMIT_MSGOUT,(*ANY*)MsgLen:=5,(*INT*)Port:=1,(*BYTE*)Baudrate:=9600,(*INT*)Databits:=8,(*BYTE*)Stopbits:=1,(*BYTE*)Parity:=2,(*BYTE*)RespTout:=1000,(*INT*)RetryLmt:=20,(*INT*)StartDly:=0,(*INT*)EndDly:=0(*INT*));参考文献:1、宋德玉.可编程控制器原理及应用系统设计.北京:冶金工业出版社,19992、曾繁泰等.可编程器件应用导论.北京:清华大学出版社,2001作者简介:苏薇,女,1976年7月生,汉族,江苏南京人,讲师,硕士研究生,现从事电子技术方面教学和机电一体化方面研究。(210007解放军理工大学工程兵工程学院)苏薇(210007EngineeringInstituteofEngineeringCorps,PLAUniv.ofSci.&Tech.,Nanjing)Su,Wei通信地址:南京解放军理工大学工程兵工程学院电子电工教研室邮编:210007电话:025-4876268-61608;13338622209EMAIL:yeleiwwf@sina.com
本文标题:基于Modbus协议实现PLC与智能仪表的通讯
链接地址:https://www.777doc.com/doc-2570899 .html