碧波液压网 欢迎你,游客。 登录 注册

浅谈多线程串口DLL在称重软件中的应用

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  在汽车衡称重管理软件中, 经常要读写串口。由于不同厂家的仪表, 通讯协议往往不同, 因此在具体应用时有诸多不便。本文介绍了使用 C++builder编写 DLL, 封装称重仪表的通讯协议并给出主要代码。这种方法符合 OIMLD- SW 中, 将软件部件之间隔离的标准。

  在 Win16 中, 可以利用 OpenComm、CloseComm和 WriteComm 等函数打开、关闭和读写串口。但在Win32 中, 串口和其他通信设备均被作为文件处理,串口的打开、关闭和读写等操作所用的 API 函数与操作文件的函数相同。可通过 CreateFile 函数打开串口, 通过 CloseFile 函数关闭串口, 通过 Comm-Prop、DCB 结 构 、GetCommProperties、SetCommProp-erties、GetCommState 及 SetCommState 等函数设置串口状态, 通过函数 ReadFile 和 WritFile 读写串口。

  采用 C++builder 进行串口编程, 可以很方便的编译 DLL。而且可以利用它提供的线程类, 使 DLL使用多线程, 减少资源的占用。本文将以柯力公司的 D2002C/E 和上海耀华的 XK3190A9 表为例, 介绍编写多线程串口 DLL 的过程。

浅谈多线程串口 DLL在称重软件中的应用 

浅谈多线程串口 DLL在称重软件中的应用

  为了减少读串口函数占用系统资源问题, 采用多线程来解决, TformThread 为自定义线程类, 它继承父类 TThread

浅谈多线程串口 DLL在称重软件中的应用

浅谈多线程串口 DLL在称重软件中的应用

浅谈多线程串口 DLL在称重软件中的应用

  1.打开串口, 并设置串口相关参数。

浅谈多线程串口 DLL在称重软件中的应用

浅谈多线程串口 DLL在称重软件中的应用

  2.读取重量函数

浅谈多线程串口 DLL在称重软件中的应用

  3.当应用程序中不再使用时, 应将串口设备关闭, 同时关闭线程, 停止取数。

浅谈多线程串口 DLL在称重软件中的应用

浅谈多线程串口 DLL在称重软件中的应用

  将工程名称命名为 D2002E, 编译后将在当前目录下生成存 D2002E.dll 文件。我们在编写称重软件时, 可以调用这个函数库。

  在 VB 中调用如下:

浅谈多线程串口 DLL在称重软件中的应用

浅谈多线程串口 DLL在称重软件中的应用

  在易语言中调用如下:

浅谈多线程串口 DLL在称重软件中的应用

  上述程序修改后, 也可工作在指令模式下, 如上海耀华 XK3190A9 系列仪表, 有两种数据传送方式:一种是连续传送( tF=0) , 一种是指令传送( tF=1) 。此时需要在 DLL 程序中处理串口写函数 WriteFile( hCom, &order, lenght, &k, NULL) , 第二个参数为仪表指令, 第三个参数为指令长度。发送完指令后, 立即读取结果。

  而且, 当使用 RS485- 232 转换器, 将电脑和数字传感器连接起来时, 可以通过扩充上述程序, 将标定、调角差等过程封装成 DLL 给客户调用。其目的是方便用户进行软件功能的二次开发。

  参考文献:

  [1] C++builder6.0 程序设计开发[M].电子工业出版社.

  [2] D2002E/XK3190A9 使用手册.

  本文作者:喻 刚

  ( 作者通讯地址: 浙江省宁波市北区长兴路 199 号邮 政 编 码: 315033收 稿 日 期: 2007- 09- 17)

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论