论文研究-基于WinCE的Modbus动态链接库的实现 .pdf

所需积分/C币:9 2019-08-19 21:08:36 337KB .PDF
24
收藏 收藏
举报

基于WinCE的Modbus动态链接库的实现,兰敏刚,李丽宏,在工业控制现场,常采用由一台主机和若干从机构成控制系统网络,通过Modbus总线协议来实现主从之间的信息传递。在基于WinCE的智能仪�
国武技论文在线 非阻塞式数据接收采用线程中调用回调函数的方式实现: 在实时应用中,大部分时候不可预知串口何时会有数据接收,因此采用非阻塞式数据接 收,在线程中处理串口接收事件很有必要。在打开串口后,使用 函数得 到回调函数 的入口地址,并建立数据接收线稈,线稈中在接受完一帧数据 后自动调用 进行数据处理,只需在外部自定义 网数即可完 成数据接收的实时处理。 串口的关闭: 关闭串口作句柄 在串凵关闭前,若建立了数据接收线程则需要先关闭数据接收线程,然后再清理缓存后 使用 关闭串口。 类的实现 协议 协议是工业控制领域的一种通用协议,被广泛用于各设备厂商的工业控制设备 中,通过此办议,不同厂商的设备可以组成控制网络并相互通信。 网络为典型的主从网终,网络中有且只有一个的主机(客户端)和若干个从机 (服务器),网络中每个设备有唯一的地址,信息的传输通过主机请求从机回应的方式完 成 协议规定有两种传输模式: 和,两种模式可以传输相同的信息,在 同网络中,所有设各都需要设置为同样的参数包括串∏波特率、校验方式、数据传输模式 等。在当前工控网络中,模式由于其通信效率髙,速率快,而被广泛采用 协议栈类的实现 为使用方便和方便与其他硬件接口结合使用,组成可用的 刈终,按照 标准,将协议封装为一个类,提供主机从机选择 模式选择、寄存器的读写操 作、数据发送的回调函数支持等,类图如图所示。 国武技论文在线 MOdbUs uNUm Coll: unsigned short ut: unsigned short iNum InputRee: unsigned short unUm HoldReg: unsigned short slaveD. unsigned char bmodBus mod sel bool bMod Bus Devsel bool nDatasend hMod Bus rccevcnt: void WaittimeMs. unsigned short ModBus) DdBus Ini(in bMoilBus Dey Selx in bModBus ModSelx, in uc SerID, in plunDale Sendx): lnsigneil char Master ReadCoil(in uiAddrass, in unCount): unsigned char Master ReadInput(in uiAddress, in uiCount: unsigned char Master ReadHoldReg(in uiAddress, in uiCount): unsigned char Master ReadInputReg(in uiAddress, in uiCount): unsigned char Master Write CoilSin(in uiAddrass): unsigned chat Master Write CoiMul(in uiAddress, in uiCount): unsigned char I Master_WritcHoldReg Sin(in uiAddress): uns igned char Master WrileHolIRegMul(in uiAddress, in uiCounl): unsigned char ave SetCoilMul(in uiAddress, in unCount, inpbvalue): unsigned char Slave GetCoilMuKin uiAddress, in uiCount, out pbReturn): unsigned chan Slave setInputmul in uiAddress, in uiCount, inpb value): unsigned char Slave getlnputMukin uiA ddress, in uiCount, out pbReturn): unsigned char Slave sctholdrcgMul(in uiAddrcss, in uiCount in"pui valuc): unsigned char Lave getlloldReg Mul(in uiA ddress, in unCount, out puivalue): unsigned char Slave SetInputReg Mul( in uiAddress, in unCount inpuiValuc): unsigned char Slave gellnputReyMuKin uiAddress, in niCount, out puiValue): unsigned char 图2 协议类类图 该协议类为一个进行数据处理的纯软件类,用于生成符合 协议的对应命令报文, 并提供有支持硬件的数据发送函数入冂和数据接收处理函数入∏,可以很好的结合各种硬件 实现 通信协议,组建 网络 动态链接库的实现 的动态链接库 嵌入式操作系统下应用程序编程可使用动态链接库,动态链接库()是程 序运行时由该程序动态链接调用的函数库,由一些函数,数据和类集合成的可执行模块。 在操作系统中使用有很多优点,文件作为一个单独的程序模块,封装性好,模块 独立,易于升级维护。最主要是多个应用稈序甚至不同语言编写的应用稈序可以共享一个 文件,实现资源共享,大大缩小了应用程序的执行代码,更加有效的利用内存,这 十分有利于嵌入式改备的软件开发,适用于工控领域各种设备仪表。 动态链接厍设计 为方便使用和便于软件维护,强化软件健壮性,将串口 协议封装为一个 文件,可以在各类 设备应用程序软什中被调用,方便的组建 网终 国武技论文在线 MBDev dll Serial My Serial MBDev Setcom(in Port, in BaudRate, in DData Bits, in Stop Bits, in Parity): unsigned short MBDev Close Com(): unsigned short MBDev Init(in bModBus DevSelx, in bModBus Mod Selx, in uc SerID, in uiScanTimeMs): unsigned short MBDev Set aitTimein ui WaitTimeMs): unsigned short MBDev Set scanTimein uiScanTimeMs): unsigned short MBDev readcoilin uiAddress, in uiCount): unsigned short MBDev readl MBDev ReadHoldReg(in uiAddress, in uiCount): unsigned short MBDev ReadlnpuIIReg(ill uiAddress, ill ui Count): unsigned short MBDov_ Write Coil Sin(in uiAddrcss): unsigned short MBDev Write CoilMul(in uiAddress, in ui Count): unsigned short MB Dev WriteHoldReg Sin(in ulAddress): unsigned short MBDev Write holdRegMuk(in uiAddress, in uiCount): unsigned short MBDev Setcoilmul(in ui Address, in ui Count, in >pb value): un si gned short MBDev GetcoiMul(in uiAddress, in uiCount, out"pbRetum): unsigned short MBDeV SetInputMul(in uiAddress, in ui Count, in Value): unsigned short MBDev GetInputMul(in uiAddress, in uiCount, out"pbRetum): unsigned short MBDev SetholdRegMul(in uiAddress, in ui Count, in pui Value): unsigned short - MB Dev GetHoldRegMul(in uiAddress, in ui Count, out pui value): unsigned short MBDev SetInputReg Mul(in uiAddress, in uiCount, in pui Value): unsigned short MBDev GetInputRegMul(in uiAddress, in uiCount, out puivalue): unsigned short 图3 动态链接库设计图 将 协议通过串凵方式实现,并封装为一个 同时引入编写的 类和 类,在串口的硬件基础上,实现 软件协议,动态链接库设计如图所示 工控网终中的装有系统的智能仪表设备都可使用本分别设置为主机或从机, 通过 协议通信,并能与网络上的其他设备进行数据通信,组建控制通信网络。 工程应用 动态链接库的应用 生成的 动态链接库可在 环境下被各种开发环境下编写的应用程序调 用,方便的组建 通信网终。 环境下编程使用时,将生成的 文件及 文件导入应用程序中,便可调用库函数实现功能: 本动态链接库己应用于智能动态称重仪表中,仪表使用装有 操作系统的 工控主板作为控制核心,使用本动态链接厍作为客户端,与显小屏通信,显小屏使用昆仑通 态的 ,软件使用 组态编程。其中仪表设置为主机,控制显示设备为从札, 设置模式, 波特率,实现显示屏对⊥业智能仪衣的参数设置、数据显示、 具体操作等功能。 测试结果及分析 本动态链接库应用在实际工程项日中,应用于现场的组态软件 下监控智能仪 表信息,监控部分显小及改置芥面如图所小: 国武技论文在线 0.O00h 基本状态1状态2设置1设置2标定轴型壮线性用户帮助 单轮 A称量系数:18000 速度系数 5000 单轴 B称量系数 18000 上秤國值 350k 收尾 分度值 1kg 下秤阈值 300k 丌机置零范围:20%.S开始上秤判据点 个 手功置零范围:20%.S完全下秤判据点 5个 零点跟踪范围:5×0.5 量程:200000 ○稳定 静态 动态系数:1000 ○零点 动态 上传完成测轮器异常光幕异常地感异常 CPU-UI异常 工稈应用部分显示界面 在实际应用工程中,该动态链接库能很好的完成 串口网络的组建并实现正常的 通信功能,在 编程的组态坏境中,可以及时的显示并设置在仪表中的参数,参数类 型可为廾关量与数值,分别存」各寄存器组中。 使用本通态链接库编程的动态汽车衡电了称重仪衣,自年月安装在收费站现场 使用至今,通讯正常,使用效果良好 结论 协议在工业控制领域已得到广泛的应用,并发展成为工业控制中现场总线标准, 随着嵌入式系统设备在工控领域的大量应用,基」 操作系统坯境卜的 通信 协议,能够方便快速的将嵌入式设备接入工控网络并进行数据传输与实吋控制,提晑系统稳 定性与可靠性,而将该协议封装为一个动态链接库文件,具有可移植性强、开发效率扃、 开发周期短、便于管理维护等优点。本文给岀的设计已应用于实际工程项目中,并取得良好 的效果,实践证明,基于 环境下的串口 通信协议的动态链接库实现,完全 可行并具有研究价值与实用价值。 参考文献 祝木田,帅勇 协议通讯的应用微计算信息, 赵文元涂远松颜乐先等 环境下的 协议的实现讣算机测量与控 清亻远见嵌入式培训中心 嵌入式开发标准教程北京:人民邮电出版社 罗健飞吴仲城沈春山等基于 和 下的设备接口驱动设计与实现白动化与仪 表 项举伟,高峰,束洪春利用 函数杓造类实现串行通讯、南京:工业控制计算机, 孔令彬黄敏基于 协议的多机通信系统的设计与实现电子技术 彭道刚张浩李辉等基于 协议的 嵌入式监测平台设计与实现电力自动化设 备 赵慧敏李文干晓宁等动态链接库在数据采集系统中的一个应用控制工稈 袁怡李贞炯兰芳等基于动态链接戽技术的传感器非线性特性校正仪器仪表学 报 李娟张钦基于动态链接库的 混合编程计算机I程与设计 熊华刘风新潘小莉等 动态链接库原理分析及其应用北京化大学学报自然科学 版

...展开详情
试读 6P 论文研究-基于WinCE的Modbus动态链接库的实现 .pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
论文研究-基于WinCE的Modbus动态链接库的实现 .pdf 9积分/C币 立即下载
1/6
论文研究-基于WinCE的Modbus动态链接库的实现 .pdf第1页
论文研究-基于WinCE的Modbus动态链接库的实现 .pdf第2页

试读结束, 可继续阅读

9积分/C币 立即下载 >