《MODBUS协议主站驱动程序.docx》由会员分享,可在线阅读,更多相关《MODBUS协议主站驱动程序.docx(25页珍藏版)》请在第一文库网上搜索。
1、MODBUS合同主站驱动程序1 Mc)DBUS规约简介Modbus通讯合同广泛应用于工业控制领域的通用通讯合同,几乎所有的主流工控系统都支持这种合同。Modbus通讯合同最初是由MC)dicon公司提出的,基于RS232的通讯合同的,后来ModiCc)n公司又将这种合同推广到了以太网上,形成了基于TCP的Modbus合同。有些厂家还在UDP上定义了modbus合同,Modbus通讯合同是主从方式的规约。通讯都是由主站发起时,主站发出通讯祈求,从站收到祈求后,回答所祈求的数据。基于TCP的IModbUS合同的主站是TCP的客户端,从站是TCP的服务器端。本主站通讯驱动同步支持基于RS232的MO
2、dbUS规约和基于TCP的MOdbUS规约。同步支持多串行连接,每个串行口下容许有32个设备;支持多种TCP连接时ModbUS规约,每个TCP连接下容许有32个设备。连接方式,如图3-1所示。图31设备连接示意图本驱动程序支持不仅支持串行口上MoDBUS规约,同步支持TCP和UDP上MoDBUS规约。此通讯驱动程序可以运营在DPU下也可运营虚拟DPU下。2 接口硬件连接方式如采用串口方式进行通讯,XDPS系统一般采用原则的RS232口即Com1或C。m2COmN,通讯距离一般为15米,如需增长通讯距离,可采用R232/485转换器,通讯距离为1200米。接线方式,如图3-2所示。XDPSDPU
3、COM串口ModbuS设备信号名称信号引脚信号名称RXD2-TXDTXD3RXDGND5-GND3 图3-2接线图4 驱动程序构成本程序由动态链接文献modip1c.dIk配备文献modip1cini两个文献构成,如果是W1NCE环境的DPU,动态链接文献的名称为modip1jCE.d1o如果采用虚拟DPU,这两个文献都要拷入VDPU目录下运营;如果采用DPU,则应当以文献下装的形式,把以上两个文献安装到VDPU目录下。5 寄存器数据与DPU逻辑I地址的相应关系DPU的每个站最多可带16块逻辑卡件,每对DPU最多可带16个站。在配备文献中,定义了寄存器数据与XDPS系统VDPU逻辑卡件的数据通
4、道的相应关系。XDPS系统的IO逻辑内测点地址由如下几种因素拟定:通道类型、站号、卡件地址、通道号;MoDBUS设备的数据地址信息由从站地址号、寄存器地址决定,这种映射关系在MOdiP1C.ini中定义。6 Modip1c.ini配备文献阐明6.1 通讯参数配备无论是在串口通讯方式,还是在TCP或者是UDP通讯方式,都要保证本驱动程序的通讯参数与对方的通讯参数是匹配时,那么有哪些参数需要配备、如何配备这些参数呢?I、如果外部设备通过串口连接到DPU上,需要这样配备通讯参数:CONFIGcommuiCation_port1=Com1z9600z8,n,0,1,debugzASCIIcommuic
5、tion_port2=Con2z9600,8zz0z1,debugcommuiction_portN=ComNz9600z8zn,O,1debugcommunication_port,、wcommuniction_port2,ooooooucommunication-portN配备的是DPU下一共有多少通讯通道(最多可支持64个通道)和各个通讯通道下的通讯参数,背面的参数依次为:串标语:如mCOM,表达的是串口1,“COM2”表达的是串口2)000000波特率:可选项57600、38400、19200、9600、4800、2400、1200s600等数据位:可选项8、7、6o奇偶校验位:可选项
6、e、。、n,分别表达偶校验、奇校验、无校验。停止位:可选项0、1、2,分别表达1位停止位、1.5位停止位、2位停止位。设备数量:配备通讯口下连接的Modbus设备数量,最多可连接32个设备。与否需要调试窗口:如果配备了“debug”,表达DPU运营时,需弹出窗口,显示这个通讯口的报文,如果没有,则不弹出窗口显示这个通讯口的报文。串口Mc)DBUS合同的类型:如果配备了aASCII,表达这个通讯口上的通讯合同是MODBUSASCII合同;如果没有配备这个参数,则这个通讯口上的合同是MODBUSRTU合同。这个参数与上面的“与否需要调试窗口”参数可以配备,也可以不配备,这两个参数的位置可以对调。I
7、I、串口设备可以通过串口转TCP/IP网络的设备(如MOXANPORT)连接到DPU上,或者设备自身就是支持TCP/IP网络连接,它们通过网络直接连接到DPU上,这时需要这样来配备通讯参数:CONFIGcommiction_port1=TCP,222.222.223.46,4001,1,debug,ASCIIcommuication_port2=MODICON_TCP,222.222.223.47,502z1,debugcommuicatio_port3=UDP,222.222.223.48z3308z1zdebugcommiction_port4=UDP_RS232PACK,222.222.
8、221.1,5001,1,debugOOOOOcOmmunication_portN=TCP,222.222.223.49,3308,1,debug“communication_port1、ucommication_port2j,oooooocommunication_portNw仍然表达DPU下一共有多少通讯通道(最多可支持64个通道)和各个通讯通道下的通讯参数,背面的参数依次为:合同类型:如配备“TCP”表达时是这个通讯口下的设备是通过串口转TCP/IP网络的设备连接到DPU上的。背面的其他参数表达的是这个通讯口下的设备连接在哪个串口转TCP/IP网络设备上,以及这个设备的哪个串口上。应当
9、阐明的是,这时通讯通道上合同仍然是串行口上的MoDBUS合同。如配备uMODICON.TCPw表达时是这个通讯口下的设备是通过TCP/IP网络的设备直接连接到DPU上的,背面的其他参数表达的是设备的网络地址信息。通过TCP/IP网络直接连接的设备所用的通讯合同是MoDBUSoNTCP合同。如配备“UDP”表达的是这个通讯口下的设备是通过网络的设备直接连接到DPU上的,所用的通讯合同是自定义基于UDP的MODBUS合同。背面的其他参数表达的是设备的网络地址信息。如果配备了“UDP”选项,则需要配备下列行来表达DPU与这个设备通讯的本地所用的IP地址和UDP端标语。commictio_port3_
10、1oca1Address=222.222.223.1,3308如配备UDP_RS232PACK”表达的是这个通讯口下的设备是通过网络的设备直接连接到DPU上的,所用的应用层合同是RS232上的MODBUS合同。背面的其他参数表达的是设备的网络地址信息。如果配备了uUDP_RS232PACK选项,也需要配备下列行来表达DPU与这个设备通讯时本地所用的IP地址和UDP端标语。commuication_port3_1ocaIAddress=222.222.223.1,3308。无论是串行口还是TCP上的MODBUS合同,本驱动程序都是按国际通用实现的,因此这里不对合同的具体内容作具体描述了。自定义基
11、于UDP的MODBUS合同将在背面具体描述。IP地址:如果合同类型配备为“TCP”,那么这个IP地址为串口转TCP/IP网络设备的IP地址;如果合同类型配备为“MODBUSTCP”或“UDP”,那么这个IP地址为设备的IP地址。端标语:如果合同类型配备为“TCP”,那么这个端标语为串口转TCP/IP网络设备的TCP端标语,这个端口相应着连接设备的串行口(MOXANPC)RT的COM1-COM4的端口缺省配备为40014004);如果合同类型配备为“MODBUS_TCP”,那么这个端标语为设备的TCP端标语,MODBUSOVERTCP合同中定义了这个端标语为502;如果合同类型配备为“UDP”,
12、那么这个端标语为设备的UDP端标语,顾客可自行选择这个端标语,只要与对方一致,并且不要与系统其他应用端口冲突就可以。设备数量:配备通讯口下连接的MOdbUS设备数量,最多可连接32个设备。只有在合同类型配备为“TCP”时,这个参数才会不小于1,合同类型配备为uMODBUS_TCPW或“UDP”时,设备数量为1O与否需要调试窗口:如果配备了“debug”,表达DPU运营时,需弹出窗口,显示这个通讯口的报文,如果没有,则不弹出窗口显示这个通讯口的报文。串口MODBUS合同的类型:只有在合同类型配备为“TCP”时,才可以配备此参数,由于只有在这个状况下用时是串口MODBUS合同。如果配备了“ASCI
13、I”,表达这个通讯口上的通讯合同是MODBUSASCI1合同;如果没有配备这个参数,则这个通讯口上的合同是MoDBUSRTU合同。这个参数与上面的“与否需要调试窗口”参数可以配备,也可以不配备,这两个参数的位置可以对调。HK通讯驱动程序,不管在哪种连接方式下,都支持通讯通到的冗余,那么冗余通道应如何配备呢?如果外部设备通过串口连接到DPU上,如:CONFIGcommunictio-port1=Comb9600,8,n,Oz1,debug,ASCII其冗余通道可配备为:commuication_port1_dup=com2表达的是在COM1通讯不正常时,DPU会通过COM2与设备通讯如果通过网络
14、连接到DPU上,如:CONFIGcommuication_port2=TCPz222.222.223.46,3308,1,debgcommuiction_port2=MOD1CON_TCP,222.222.223.46z5O2,1debugcommuication_port2=UDPz222.222.223.46,3308z1zdebug这些通讯的冗余通道可配备为:。commuictio_port2_dup=222.222.224.46,3308acommuication_port2_dup,背面的两个参数表达的是冗余通道上设备或串口转网络设备的IP地址和端标语。合同时“UDP”时,配备了冗余
15、通道的对方设备的地址,还需要配备冗余通道的本地网络IP地址和端标语,如:。Communicatio_POrt2OCaIaddress_dup=222.222.224.1z3308IVx不管是串行口MC)DBUS合同还是TCP上Me)DBUS合同,报文中都定义了数据的长度,这个数据的长度在报文中是用一种字节表达的,因此一次传送的数据不也许太多,模拟量(16寄存器)为约255/2=127个,开关量(位寄存器)为255*8=2040个。在顾客自定义的“UDP”合同中,增长了一种选项,报文中表达数据长度的字节数可以配备,可以配备成1字节或2个字节,这样可以在一次通讯中传送大量数据。这个配备也是在CONFIG段中完毕的,如:CONFIGcommuiction_port2_databyte=2Vs在进行通讯调试时,可觉得每一种通讯通道配备报文收集文献,用来记录整个通讯过程的报文收发状况,调试人员通过这个文献可以分析通讯运营状况。如:CONFIGcommunication_port1_record_fi1e=d:mod1.txt上面的配备表达的是将第一种通讯通道的报文记录在