通信与网络中的在VC++中利用ActiveX控件开发串行通信程序
在开发微机控制系统的过程中,我们经常需要通过RS-232串行接口与外部设备进行通信。例如分级控制系统中上位机与下位机的数据交换以及数据采集系统中计算机与数字仪表的通信等。在DOS时代,编写串行通信程序是一件相当复杂的工作,程序员需要具备相当的硬件知识,对可编程串行通信接口芯片的内部寄存器定义、工作方式、指令字等相关内容有所了解,才有可能着手编写程序,大量的时间和精力都花在了如何与硬件打交道上,而不是花在我们的主要目的——获取与处理数据上;在Windows下,Win32API提供了使用CreateFile/WriteFile等文件I/O函数进行串行口操作的方法,但是在实现上仍然是相当烦琐的。 在开发微机控制系统时,串行通信是一种常见的通信方式,特别是在连接外部设备如分级控制系统中的上下位机或数据采集系统中的计算机与数字仪表时。在早期的DOS系统中,串行通信编程需要深入理解硬件层面,包括串行通信接口芯片的内部结构、寄存器配置、工作模式和指令集,这使得编程工作既复杂又耗时。 然而,随着Windows的普及和ActiveX技术的发展,串行通信的实现变得更加简单。ActiveX控件是Windows应用程序开发的一种重要工具,它基于组件对象模型(COM),允许开发者通过接口调用来使用预定义的功能,无需关心底层实现细节。Microsoft Communications Control (MSComm) 是微软提供的一款用于串行通信的ActiveX控件,它简化了串行接口的数据收发操作。 MSComm控件提供了两种主要的通信处理方式: 1. **事件驱动法(Event-driven)**:当串行端口有新数据到达、状态改变或发生错误时,MSComm控件会触发OnComm事件。应用程序通过监听这个事件,并检查CommEvent属性来判断具体事件或错误,然后执行相应的处理。这种方法的优点是实时性强,程序能迅速响应通信状态的变化。 2. **查询法**:适用于小型应用,程序在执行串行操作后定期检查CommEvent属性,以确定操作结果或等待特定事件的发生。例如,等待特定的响应字符串。 在实际编程中,通常会选择事件驱动法,例如在Visual C++ 6.0环境下,创建一个基于对话框的MFC应用程序,并添加MSComm控件。首先确保项目选项中包含ActiveX Controls,然后通过Component和Control Wizard引入MSComm控件。在事件处理中,重点关注`comEvReceive`事件,当接收到数据时,该事件会被触发,可以通过`Input`属性读取缓冲区中的数据,而`Output`属性则用于发送数据。 在编程实现过程中,还需要配置串行口的参数,如波特率、校验方式、数据位和停止位,这些可以通过`Settings`属性设置。此外,`PortOpen`方法用于打开或关闭串行通信口。 通过以上步骤,开发者可以快速构建一个能够与RS-232设备进行有效通信的程序,大大减少了编写串行通信程序的时间和难度,使得开发者可以更专注于数据的处理和应用逻辑,而非底层硬件的交互。在开发PT650C秤重显示器通信模块时,这样的方法尤其有效,因为它简化了通信过程,提高了软件的稳定性和可靠性。


























- 粉丝: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 清单计价模式下工程招投标及结算问题技术讲座.doc
- 基于PLC四层电梯内含组态王仿真程序大学本科方案设计书.doc
- 关键部位控制及检测计划.doc
- 污水处理厂设计说明书.doc
- 辅助整流器检查及清洁(验证).doc
- 中职《计算机网络技术》有效性教学策略探究.docx
- 正德室内设计方案课程试题AutoCAD02.doc
- 单片机课程方案设计书(节日彩灯).doc
- 注册结构师基础考试混凝土结构.doc
- 昌平某森林公园项目环评简本.doc
- GE-英文面试更重软技能-.doc
- 大班美术活动--会跳舞的精灵-.doc
- 项目公司工程部给排水工程师职位说明书.doc
- 预应力锚索试验孔施工总结.doc
- 安装工程技术标演示.ppt
- 基于单片机控制的智能定时闹钟方案设计书(含完整程序仿真图).doc



评论0