・90・《测控技术)2013年第32卷第10期S7—300PLC与设备进行ModbusRTU通信方法王勇,苏杨,商砚冰,程杨波(西安近代化学研究所,陕西西安710065)摘要:给出S7—300PLC与设备通过ModbusRTU协议进行通信连接的方法,以及硬件组态步骤、软件设计方法和要点。该方法可广泛应用于过程控制与数据采集系统,具有简单、方便等优点。关键词:ModbusRTU协议;PLC;通信中图分类号:TN915.04文献标识码:B文章编号:1000—8829(2013)10-0090-03CommunicationMethodof¥7-300PLCandEquipmentThroughModbusRTUProtocolWANGYong,SUYang,SHANGYan—bing,CHENGYang-bo(Xi’anModemChemistryResearchInstitute,Xi’an710065,China)Abstract:AcommunicationmethodofS7—300PLCandequipmentthroughtheModbusRTUprotocol。andhardwareconfiguration,softwaredesignmethodandkeypointsprocesscontrolanddatacollectionsystem.Itissimplearegiven.Thismethodcanbewidelyusedinandconvenient.Keywords:ModbusRTUprotocol;PLC;communicationModbusRTU通信协议广泛地应用于各种仪器仪表设备的通信,在物理层面上通过RS485接口,与工业控制计算机、PLC控制器等进行通信连接,具有简单、方便、可靠的特点。通常s7.300PLC与这些设备的通信,大多采用协2通信参数设置与下装2.1设置通信参数完成上述通信协议安装后,在STEP7中打开工程项目,在硬件组态窗口中,双击CP341模块打开属性对话框,单击“参数”(Parameters)按钮,打开协议选择接口对话框,选择ModbusMaster传输协议。在参数配置中设置好传输速率、数据位、停止位、奇偶校验,连接模式选“半双工(RS485)两线操作模式”,接线方式选R(A)0V,R(B)5V,通信参数设置完成后,保存通信参数。2.2下装通信参数到CP341在打开的CP341属性“参数”窗口中,点击“Loaddrivers”按钮,将设置的通信参数下装到CP341模块。在进行过一次下装MdobusMaster协议后,如果要重新修改通信参数,再一次下装时,会提示“驱动程序已存在”(Driveralreadyexists),不能下装,这是因为MdobusMaster协议已经存在于CP341中。这种情况下,应先下载一次ModbusSlave协议,将CP341中的Modbus议转换模块,将ModbusRTU协议转换为Profibus-DP协议,通过Profibus总线相连接。在此介绍一种采用¥7-300系列的CP341“通信处理器”模块,通过安装ModbusRTU协议,建立Modbus主、从站之间的数据链接,实现s7-300与设备之间的通信方法。1通信协议安装CP341是西门子s7—300系列的点对点主、从站通信处理器模块,出厂时厂家只安装了3964(R)和RK512、ASCII传输协议,没有安装ModbusRTU协议,需要另行安装,安装方法是,运行CD安装光盘中的setup.exe,按照安装提示,完成ModbusRTU协议安装。安装时需要将ModbusMaster和ModbusSlave全部要装,便于今后协议修改。Master协议清除,再下装。3通信软件设计收稿日期:2012—08—22作者简介:王勇(1964一),男,山西左云人,高级工程师,主要从事过程控制技术研究与系统设计。在通信软件设计中,通过调用发送功能块FB8P—SND—RK和接收功能块FB7P_RCV—RK,进行主、从站万方数据¥7-300PLC与设备进行ModbusRTU通信方法数据交换。发送功能块FB8用于主站(PLC)向从站(设备)发送从站地址、读写功能代码、读写寄存器的起始地址、寄存器个数等信息;接收功能块FB7用于等待接收从站返回的数据,并将接收到的数据写入其定义的数据区内。3.1s7-300与单个设备通信S7・300与单个设备进行通信时相对简单,只需要建立和定义好发送数据块和接收数据块,调用FB7、FB8功能块即可,方法如下:(1)创建发送数据块和接收数据块。在STEP7程序中,先创建发送数据块DBl和接收数据块DB2。例如要从地址为2的设备中,读取起始地址为100(十进制)的连续2个寄存器数据,并将读取的数据存放在数据块DB2中。发送数据块DBl格式如表1所示。表1发送数据块DBl格式“名称”列中的“地址”定义从站设备的地址“2”;“功能”定义Modbus协议读寄存器功能代码“03”,“起始地址”定义要读取的从站寄存器起始地址“64”(16进制),“寄存器数”定义需要读取的寄存器个数“2”。接收数据块DB2结构如表2所示。表2接收数据块DB2结构(2)调用发送功能块和接收功能块。打开OBl程序编程画面,在OBl块中调用发送功能块FB8P_SND—RK,建立背景数据块DB8,如图1所示。参数设置:SF一大写‘S’;REQ一发送数据触发位,上升沿触发;LADDR—CP34l硬件组态中的起始逻辑地址;DB—NO一发送数据块号;DBB—NO一发送数据起始地址;LEN一发送数据长度;R—TYP一‘x’,必须是大写‘x’。其余参数不用设置。在调用FB8(发送)功能块后,调用接收功能块FB7,建立背景数据块DB7,如图2所示。参数设置:LADDR—CP341硬件组态中的起始逻辑地址;DB—NO一接收数据块号;DBB—NO一接收数据写入接收数据块的起始地址。万方数据・91・“PSNDRK”ENDONE‘S’一SF—ERRORM20.O一STATUSSTATUSR256——LADDRl一DBN00—DBBNO6一LENRCPUNO‘X’一RTYPRNOROFFSETRCFBYTRCFBIT图1OBl中调用FB8功能块图2OBl中调用FB7功能块(3)设计定时触发程序。发送数据功能块F8是通过REQ上升沿触发,所以在调用聃之前,应先设计一个定时触发程序,周期性定时产生上升沿脉冲,接收功能块的EN—R始终置为1。3.2¥7-300与多个设备通信¥7-300与多个设备通信时,程序设计上不能简单地多次调用FB8和FB7功能块,因为从设备返回的数据信号是通过CP341同一个输入地址输入并且有延时,容易产生数据互窜现象。例如,如果第1个设备返回的数据还没到达PLC时,就发送第2个设备的数据请求,这时,第1个设备返回的数据才到达被接收,而此时第2个设备的数据请求已发出,接收功能块的DB—NO已被置为第2个设备的接收数据块号,于是第1个设备的数据被写入到第2个设备的接收数据块中,造成接收数据互窜现象。为了防止该现象的发生,可采用轮循的方式进行,例如通过循环计数的方式实现轮循,其程序流程图如图3所示。采用循环计数方法,由计数器值作为设备地址。・92・《测控技术))2013年第32卷第10期数器厂]厂]厂123REQEN—R接图4发送接收数据时序4图3通信轮循程序流程图结束语通过上述方法,很好地解决了多个设备与s7—PLC通信问题。目前有很多第三方设备都选用在程序设计中,设计一个计数器循环计数,例如轮循3个设备,计数器循环计数1,2,3,1,2,3,…,当计数器n等于某个值时,将该值对应的设备发送数据块和接收功能块DB—NO参数预置,并产生一个发送脉冲,脉冲宽度应小于计数器值脉冲宽度,其上升沿触发发送功能块FB8,向设备发送数据。设备接收到PLC发来的数据后,根据请求,向PLC发送数据,PLC接到数据后,将数据写入接收数据块DB2中。发送接收时序图如图4所示。300RTU通信协义,如果采用该方法与s7—300PLC进行通信,简单可行,不需要中间转换环节,可方便地Modbus建立数据通信连接,具有推广应用价值。参考文献:[1]姚福来,孙鹤旭,杨鹏.变频器、PLC及组态软件实用技术速成教程[M].北京:机械工业出版社,2010.[2]孟华,刘娜,厉玉呜,等.化工仪表及自动化[M].北京:化学工业出版社,2009.[3]徐德,孙同景,陈桂友.可编程序控制器(PLC)应用技术[M].济南:山东科学技术出版社,2000.[4]刘宝坤.计算机过程控制系统[M].北京:机械工业出版社.2005.口该方法可有效避免数据互窜现象,接收数据可靠,在程序设计时要注意调整好计数器和接收脉冲的宽度,计数器脉冲宽度应大于设备回传数据的延时时间,这可通过软件调试来确定。(上接第89页)统能正确读取现场数据,做出指令动作。温度数据曲线如图8所示。性好、可靠性高,具有良好的人机交换界面,易于观察和控制,非常适合于智能楼宇监控领域,具有良好的应用价值。参考文献:[1]沈佳栋,唐明浩,章力.无线传感网在智能楼字系统中的:设鳢溪状套蠢裙历史{B录应用[C]//2008系统仿真技术及其应用学术会议论文集.2008:658—661.[2]郝真鸣,李跃峰,徐成杰,等.基于ODMA的校园无线视频监控系统[J].河北大学学报(自然科学版),2011,31(5):538—543.[3]唐露新.传感与检测技术[M].北京:科学出版社,2006.[4]王恒,李勇,王泉,等.基于IEEE802.1lb和CDMA网的多路监控系统的设计与实现[J].计算机技术与发展,图8温度数据曲线[5]2008,18(6):192—194.张少军.短距离低功耗无线网络技术在建筑智能化中的应用[J].电气应用,2010,23(29):60—63.李馨荣.智能楼宇监控系统整体方案设计[J].科技资讯,2007(9):63—64.5结束语[6]利用AX22001芯片为核心的无线监控系统,是一种具有成本优势的嵌入式网络解决方案,一方面克服了有线传输的缺点,更重要的是它有效克服了传统无线传输系统体积庞大、安装不方便的不足,而且其稳定万方数据[7]娄国强,徐元,刘吉星.基于ZigBee技术的温湿度监测系统的设计[J].PLC&FA,2010(6):89—91.口