HONEYWELLPKS与S7-200的MODBUSRTU从站协议通讯HONEYWELLPKS与S7-200的MODBUSRTU从站协议通讯摘要:本文通过着重阐述对HONEYWELLPKS和S7-200的modbusrtu通讯的各种参数的设置,以实现HONEYWELLPKS和S7-200之间的通讯。主要参数设备:S7-200CPUMBUS_INITMBUS_SLAVE终端服务器交换机等中图分类号:TP368文献标识码:A引言:在鞍山热能研究院碳素总厂针状焦工程中,通过一年多的工作,我们通过在HONEYWELLPKS的画面与下位机的编程调试过程中,接触了多种通讯协议,使我对HONEYWELLPKS和S7-200之间的通讯有个更深刻的认识,以下是我对HONEYWELLPKS与S7-200之间MODBUSRTU从站协议通讯的论述。在S7-200中MODBUSRTU从站指令库只支持CPU上的通信0口(PortO),是通过S7-200的自由口通信模式实现,它支持STEP7-Micro/WIN32V3.2以上版本的编程软件,通讯前我们耍检查Micro/WIN的指令树中是否存在MODBUSRTU从站指令库,库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。如果没有,必须安装Micro/WIN32V3.2的InstructionLibrary(指令库)软件包,如图:在编程时,我们一般使用SMO.1来初始化MBUS.INIT,使用SMO.0来调用MBUSSLAVEo在我们对MBUSINIT和MBUSSLAVE进行编程设置时,我们一定耍先明白每个管脚的意义与作用,下面我们对管脚逐一的剖析认识一下。图1在MBUS.INIT屮,Mode模式选择:启动/停止MODBUS,1=启动;0二停止Addr从站地址:MOUBUS从站地址,取值1、247Baud波特率:可选1200,2400,4800,9600,19200,38400,57600,115200Parity奇偶校验:0二无校验;1二奇校验;2二偶校验Delay延时:附加字符间延时,缺省值为0MaxIQ最大I/Q位:参与通信的最大1/0点数,S7-200的1/0映像区为128/128,缺省值为128MaxAI最大AI字数:参与通信的最大AI通道数,可为16或32MaxHold最大保持寄存器区:参与通信的V存储区字(VW)Holdst〜保持寄存器区起始地址:以&VBx指定(间接寻址方式)Done:初始化完成标志:成功初始化后置1Error:初始化错误代码在MBUS_SLAVE中,Done:MODBUS执行:通信中时置1,无MODBUS通信活动时为0Error:错误代码:0二无错误MaxIIold和HoldStart指定的保持寄存器区,是在S7-200CPU的V数据存储区中分配,此数据区不能和库指令数据区有任何重叠,否则在运行吋会产生错误,不能正常通信。我们一定要注意Modbus中的保持寄存器区是按“字”寻址,即MaxHold规定的是VW而不是VB的个数。在图1的例子中,规定了MODBUS保持寄存器区从VB700开始(IloldStart=VB700,保持区不一定要从VB0开始),并且保持寄存器为500个字(MaxHold=500),因保持寄存器以字(两个字节)为单位,实际上这个通信缓冲区占用了VB700〜VB1699共1000个字节。因此分配库指令保留数据区吋不能在VB700-VB1699之内。同吋我们要注意的是V存储区大小与CPU型号有关,不同型号的CPU的V数据存储区大小不同,所以我们应根据需要选择MODBUS保持寄存器区域的大小.在这里我们对MBUS_INIT和MBUS_SLAVE进行如图1的设置。我们通过一个终端服务器来实现485通讯转换为以太网通讯,如图2:485通讯电缆以太网通讯电缆以太网通讯电缆图2注意:用以太网线连接终端服务器和交换机时,要注意它们连接的端口间的传输速率是否相同,不相同一定要把它们设为相同的传输速率,这样终端服务器和交换机Z间才能进行通讯。在S7-200与MODBUS的地址转换中我们参照如图3:Modbus地址S7-200数据区00001〜00128Q0.0〜Q15.710001〜1012810.0〜115.730001〜30032AIW0〜AIW6240001〜4xxxxT〜T+2*(xxxx-1)图3T代表S7-200中的起始地址的数值,如图1中HoldStart=VB700,T就等于700•对应的MODBUS地址就是40001.在HONEYWELLPKS中,我们要在QuickBuilder(CONFIGURATIONSTUDIOCONTROLSTRATEGYSCADACONTROL)中对通道、控制器、点进行设置,如图4图4在进入下面的画面时,我们单击图5标栏中的“+”会弹出一个窗口如图6:图5图6我们需要在图6中的“标1”里选择要建立的类型,建立通道选择“Channel”,建立控制器选择^Controller",建立点选择“Point”。例如建立一个通道,我们选择“channel”这时下面在“标2”的位置我们选择“Modbuschannel",当我们选择完成后,在“标3”的位置是我们需要给建立的通道起个名...