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