技术天地

在英创主板中预装Modbus通讯协议作者:张红琳    发布时间:2017-8-14 13:15:00    被阅览数:

  目前英创公司提供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主控协议软件动态库简介.gif


  编译后的应用程序在板卡上运行时会自动加载modbus动态库,相比原来静态库,应用程序的大小明显变小。


  后续供货的ESM系列主板中均预装modbus协议,原有的静态库模式也可继续正常运行。

Go Top