资源描述:
《modbus协议主站驱动程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MODBUS协议主站驱动程序1MODBUS规约简介Modbus通讯协议广泛应用于工业控制领域的通用通讯协议,几乎所有的主流工控系统都支持这种协议。Modbus通讯协议最初是由Modicon公司提出的,基于RS232的通讯协议的,后来Modicon公司又将这种协议推广到了以太网上,形成了基于TCP的Modbus协议。有些厂家还在UDP上定义了modbus协议,Modbus通讯协议是主从方式的规约。通讯都是由主站发起的,主站发出通讯请求,从站收到请求后,回答所请求的数据。基于TCP的Modbus协议的主站是TCP的客户端,从站是
2、TCP的服务器端。本主站通讯驱动同时支持基于RS232的Modbus规约和基于TCP的Modbus规约。同时支持多串行连接,每个串行口下允许有32个设备;支持多个TCP连接的Modbus规约,每个TCP连接下允许有32个设备。连接方式,如图3-1所示。图3-1设备连接示意图本驱动程序支持不仅支持串行口上MODBUS规约,同时支持TCP和UDP上MODBUS规约。此通讯驱动程序可以运行在DPU下也可运行虚拟DPU下。1接口硬件连接方式如采用串口方式进行通讯,XDPS系统通常采用标准的RS232口即Com1或Com2……ComN
3、,通讯距离一般为15米,如需增长通讯距离,可采用R232/485转换器,通讯距离为1200米。接线方式,如图3-2所示。XDPSDPUCOM口串口Modbus设备信号名称信号引脚信号名称RXD2------------------TXDTXD3------------------RXDGND5------------------GND图3-2接线图2驱动程序组成本程序由动态链接文件modiplc.dll、配置文件modiplc.ini两个文件组成,如果是WINCE环境的DPU,动态链接文件的名称为modiplc_CE.dll
4、。如果采用虚拟DPU,这两个文件都要拷入VDPU目录下运行;如果采用DPU,则应该以文件下装的形式,把以上两个文件安装到VDPU目录下。3寄存器数据与DPU逻辑I/O地址的对应关系DPU的每个站最多可带16块逻辑卡件,每对DPU最多可带16个站。在配置文件中,定义了寄存器数据与XDPS系统VDPU逻辑卡件的数据通道的对应关系。XDPS系统的IO逻辑内测点地址由以下几个因素确定:通道类型、站号、卡件地址、通道号;MODBUS设备的数据地址信息由从站地址号、寄存器地址决定,这种映射关系在Modiplc.ini中定义。1Modip
5、lc.ini配置文件说明5.1通讯参数配置无论是在串口通讯方式,还是在TCP或者是UDP通讯方式,都要保证本驱动程序的通讯参数与对方的通讯参数是匹配的,那么有哪些参数需要配置、怎样配置这些参数呢?I、如果外部设备通过串口连接到DPU上,需要这样配置通讯参数: [CONFIG]communication_port1=Com1,9600,8,n,0,1,debug,ASCIIcommunication_port2=Com2,9600,8,n,0,1,debug。。。。。。communication_portN=ComN,9600
6、,8,n,0,1,debug“communication_port1”、“communication_port2”、。。。。。。、“communication_portN”配置的是DPU下一共有多少通讯通道(最多可支持64个通道)和各个通讯通道下的通讯参数,后面的参数依次为:①串口号:如“COM1”表示的是串口1,“COM2”表示的是串口2,。。。。。。②波特率:可选项57600、38400、19200、9600、4800、2400、1200、600等③数据位:可选项8、7、6。④奇偶校验位:可选项e、o、n,分别表示偶校验
7、、奇校验、无校验。⑤停止位:可选项0、1、2,分别表示1位停止位、1.5位停止位、2位停止位。⑥设备数量:配置通讯口下连接的Modbus设备数量,最多可连接32个设备。⑦是否需要调试窗口:如果配置了“debug”,表示DPU运行时,需弹出窗口,显示这个通讯口的报文,如果没有,则不弹出窗口显示这个通讯口的报文。⑧串口MODBUS协议的类型:如果配置了“ASCII”,表示这个通讯口上的通讯协议是MODBUSASCII协议;如果没有配置这个参数,则这个通讯口上的协议是MODBUSRTU协议。这个参数与上面的“是否需要调试窗口”参数
8、可以配置,也可以不配置,这两个参数的位置可以对调。II、串口设备可以通过串口转TCP/IP网络的设备(如MOXANPORT)连接到DPU上,或者设备本身就是支持TCP/IP网络连接,它们通过网络直接连接到DPU上,这时需要这样来配置通讯参数:[CONFIG]communication_po