PowerBuilder中使用MSComm32控件采集串行口数据实战
需积分: 3 96 浏览量
更新于2024-10-03
收藏 46KB DOC 举报
"mscomm32控件使用在PowerBuilder (PB6)中的串行数据采集实例及MSCOMM32.OCX控件基础知识"
在本文中,我们探讨了如何在PowerBuilder 6 (PB6)环境中利用MSComm32控件进行串行口数据的采集,特别关注于磅秤数据的读取。MSComm32.OCX控件是Microsoft提供的一种用于串行通信的ActiveX组件,它允许开发者通过编程控制串行端口的通信参数,如波特率、数据位、停止位和校验位。
首先,确保控件已经正确注册。如果在使用时出现许可问题,可能是因为缺少正确的注册信息。在注册表的`HKEY_CLASSES_ROOT\Licenses`下查找特定的键值,如果未找到,可以尝试运行`Regsvr32 mscomm32.ocx`命令来注册控件。如果仍然存在问题,可能需要安装Visual Basic (VB),并在安装过程中选择安装ActiveX组件,以确保MSComm32.OCX控件的完整安装。
接下来,我们关注如何在PB6中使用这个控件。在窗口设计阶段,通过OLE插入控件并将其命名为`ole_1`。然后,在窗口的Open事件中,我们需要设置控件的一些关键属性以配置串行通信:
- `ole_1.object.commport = 1`:设置串口为COM1。
- `ole_1.object.settings = "1200,n,8,1"`:设置波特率为1200,无校验位('n'),8位数据位,1位停止位。
- `ole_1.object.portopen = true`:打开串口连接。
- `ole_1.object.rthreshold = 10`:设置接收阈值为10个字节,因为每组磅秤数据包含5帧,每帧11位,总共55位,所以10字节足够包含完整的数据。
- `ole_1.object.inputlen = 1`:设定每次接收一个字节的数据。
- `ole_1.object.inputmode = 0`:设置输入模式为字符模式。
数据格式如下:磅秤每隔100ms发送一组数据,每组数据包括5帧,每帧11位。其中第1帧是起始位,第2帧包含小数点位置和状态信息,第3至5帧则为BCD编码的称重值。在处理这些数据时,我们需要根据帧结构解析接收到的字节流,以提取有效的称重信息。
通过监听`ole_1`控件的事件,例如OnComm事件,我们可以实时捕获串口数据并进行处理。一旦接收到数据,可以通过解析数据帧来获取磅秤的状态和称重值。注意,由于数据帧包含起始位、数据位和停止位,因此实际编程时可能需要额外的逻辑来正确地分离和解码每个帧。
MSComm32控件为开发者提供了一个强大且灵活的工具,用于在PB6中实现串行通信,特别是针对像磅秤这样使用RS-232协议的设备。通过理解其工作原理和配置参数,可以有效地开发出能够可靠采集和解析串行数据的应用程序。
2018-06-12 上传
2013-03-05 上传
2013-04-08 上传
2013-12-29 上传
2013-03-22 上传
2008-06-30 上传
2014-12-12 上传
2012-09-10 上传
clian_duan
- 粉丝: 1
- 资源: 1
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍