文章来源:http://www.emtronix.com/article/article2009331.html
Modbus 协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为Modbus Master,从设备方使用的服务器协议称为Modbus Slave。典型的主设备包括工控机和工业控制器等;典型的从设备如PLC可编程控制器等。Modbus通讯物理接口可以选用串口(包括RS232和RS485),也可以选择以太网口。其通信遵循以下的过程:
·主设备向从设备发送请求;
·从设备分析并处理主设备的请求,然后向主设备发送结果;
·如果出现任何差错,从设备将返回一个异常功能码。
英创公司提供的ARM9嵌入式主板系列产品,均带有丰富的串口、网络资源、通用GPIO接口等,同时具有强大的处理能力,除了适用于作为Modbus 主设备的开发应用,还可以作为ModBus从设备的开发应用。主控协议软件在英创的“WinCE下的ModBus主控协议软件”一文已有介绍,在本文中主要介绍基于实现ModBus设备方协议的软件包“WinCE下的ModBus设备方协议软件”(以下简称modbusSlave软件包)。该软件的是以C函数加静态LIB库的形式提供给客户。主要特征如下:
·非常适用于实时的工业应用。
·可以支持基于串口的Modbus协议应用或者基于TCP的Modbus协议应用。
·支持RTU传输模式。
·支持大多数的Modbus功能码操作,包括对线圈、离散开关输入的位操作,以及对寄存器的字节操作。
·可以获取通讯中传输协议的错误代码的详细信息。
作为ModBus服务器,无论是基于串口还是基于TCP,在英创提供的modbusSlave软件包中,实现了对于ModBus应用报文的分析与响应,这只是ModBus通讯的一部分。另一部分是还需要有对应用数据的访问,这部分的内容则需要用户自己来进行定义,为了方便客户的使用,在modbusSlave软件包中通过函数指针的形式,实现了这些用户接口函数的自动加载,将用户应用数据处理和ModBus应用报文响应关联起来。用户只需根据需求定义这些接口函数来实现相应的功能,各个函数具体的定义是通过专门的一个CPP文件:DataProvider.cpp来实现。所以在使用英创的modbusSlave软件包时,有两个部分组成,一部分是 modbus_slave.h/ modbus_slave.lib定义的API函数;另一部分是DataProvider.h /DataProvider.cpp定义的用户数据接口函数,其中接口函数需要用户在DataProvider.cpp中具体实现。
一、modbusSlave软件包API函数
为了方便应用程序的使用,对不同的通讯介质保持一致的代码形式,英创所提供的modbusSlave软件包的API函数可以同时支持基于串口和TCP的Modbus协议,应用程序只需要在调用初始化函数时,用不同参数区分即可。以下介绍英创modbusSlave软件包的相关API函数,各个函数的定义如下:
......
[查看全文]
[技术论坛]
[更多相关内容]
[产品] ModBus通讯协议软件包 [2009-11-9] | ||
[公司新闻] 英创公司推出ModBus通讯协议软件产品 [2009-10-21] | ||
[技术文章] WinCE下的Modbus设备方协议软件 [2009-10-16] | ||
[公司新闻] 英创公司特推出“WinCE下的Modbus主控软件” [2009-9-11] | ||
[技术文章] WinCE下的Modbus主控通讯协议软件 [2009-9-11] | ||
[下载] WinCE下的ModBus设备方协议软件 [2009-10-21] | ||
[下载] WinCE下的ModBus主控协议软件 [2009-10-21] |
[产品] ModBus通讯协议软件包 [2009-11-9] | ||
[公司新闻] 英创公司推出ModBus通讯协议软件产品 [2009-10-21] | ||
[技术文章] WinCE下的Modbus设备方协议软件 [2009-10-16] | ||
[公司新闻] 英创公司特推出“WinCE下的Modbus主控软件” [2009-9-11] | ||
[技术文章] WinCE下的Modbus主控通讯协议软件 [2009-9-11] | ||
[下载] WinCE下的ModBus设备方协议软件 [2009-10-21] | ||
[下载] WinCE下的ModBus主控协议软件 [2009-10-21] |
文章评论(0条评论)
登录后参与讨论