目前英创公司提供ModBus通讯协议软件运行于WinCE及Linux环境下,均是以C函数加静态库(modbus.lib或libmodbus.a文件)的形式提供给客户。随着越来越多的客户的使用,最近我们将modus通讯协议,特别是主控协议软件(简称modbus_Master),以动态库(modbus_Master.dll或libmbusmaster.so文件)的形式预装到英创嵌入式工控主板内核系统中,以方便客户应用程序的调用。预装Modbus协议的工控主板包括ESM928x、ESM335x、ESM6800、ESM6802等型号。
Modbus协议动态库各个接口函数定义在modbus_Master.h,与原来的静态库保持不变,相应各个API函数的说明请参见英创网站技术天地文章《Wince下的Modbus主控通讯协议》、《英创嵌入式Linux工控主板支持Modbus主控协议软件》。这次的更新在RS485通讯模式中,还增加了可以配置RTS硬件方向控制的功能,实现该功能并没有增加任何函数,只是调整打开函数mbusMaster_OpenPortProtocol(…)中所带参数 pPortName即可。
选择RS485通讯模式,其格式如下:
_T( "COM3:9600-8-1-0 RS485" );
如果需要用GPIO来作为RS485的RTS硬件方向控制,以GPIO8为例,其参数格式调整如下:
_T( "COM3:9600-8-1-0 RS485-GPIO8" );
应用程序的开发在Linux环境下保持不变,参考《英创嵌入式Linux工控主板支持Modbus主控协议软件》一文即可。在WinCE环境下需要做以下调整:
WinCE应用需要重新在开发主机上更新以下安装文件后重新安装SDK,
EM928x_SDK.msi
ESM335X_SDK.msi
ESM6802_SDK.msi
SDK成功安装后,开发主机的环境中就自带了modbus对应的文件:
modus_Master.h
modus_Master.lib
应用程序中需要包含#include "modbus_Master.h",并将link设置中加入modbus_Master.lib,用于指定附加的Modbus库的名称,如:
编译后的应用程序在板卡上运行时会自动加载modbus动态库,相比原来静态库,应用程序的大小明显变小。
后续供货的ESM系列主板中均预装modbus协议,原有的静态库模式也可继续正常运行。
全部0条评论
快来发表一下你的评论吧 !