在PowerBuilder中如何通过MSComm32.ocx控件设置串口通信的详细参数,并实现数据的发送与接收?
时间: 2024-11-29 14:18:06 浏览: 0
在PowerBuilder中使用MSComm32.ocx控件进行串口通信涉及到一系列的配置步骤,以及数据的发送和接收机制。以下是详细的配置过程和数据处理方法:
参考资源链接:[PowerBuilder串口编程实战指南](https://wenku.csdn.net/doc/6498590ff8e98f67e0af84a3?spm=1055.2569.3001.10343)
首先,需要在PB的窗口中添加一个OLE对象,用于加载MSComm32.ocx控件。之后,通过编程方式配置串口参数,这些参数包括但不限于波特率、数据位、奇偶校验和停止位。具体代码示例如下:
```pascal
// 创建并初始化MSComm32控件
OLEObject oleComm
oleComm = Create OLEObject
oleComm.Create(
参考资源链接:[PowerBuilder串口编程实战指南](https://wenku.csdn.net/doc/6498590ff8e98f67e0af84a3?spm=1055.2569.3001.10343)
相关问题
在PowerBuilder中如何配置MSCOMM32.OCX控件以实现1200波特率的RS-232串行通信,并解析磅秤发送的BCD码数据?
在PowerBuilder (PB) 中实现串行通信并解析BCD码数据,关键在于正确配置MSCOMM32.OCX控件并编写相应的事件处理逻辑。首先,确保你已经将MSCOMM32.OCX控件添加到PowerBuilder项目中,并进行了注册。然后,设置串行通信的相关参数,如波特率、数据位、停止位和校验方式。具体到本问题,你需要设置波特率为1200,并确保通信参数与磅秤设备的设置一致。以下是一些关键步骤:
参考资源链接:[PowerBuilder串行通信实践:使用MSCOMM32.OCX解析磅秤数据](https://wenku.csdn.net/doc/6401ac40cce7214c316eb2b7?spm=1055.2569.3001.10343)
1. 在PowerBuilder窗口的Open事件中注册MSCOMM32.OCX控件:
ole_***mPort = 1; // 设置串口为COM1,根据实际情况可以更改
ole_1.object.Settings = '1200,n,8,1'; // 设置波特率为1200,无校验,8位数据位,1位停止位
ole_1.object.PortOpen = true; // 打开串行端口
2. 设置接收数据的触发条件,例如当输入缓冲区达到55字节时(每帧11字节,共5帧):
ole_1.object.RThreshold = 55; // 当接收缓冲区达到55字节时触发OnComm事件
ole_1.object.InputLen = 1; // 每次从缓冲区读取1字节
3. 在OnComm事件中处理接收到的数据,首先检测事件类型,然后读取和解析数据:
IF ole_***mEvent = 2 THEN // 检测到接收事件
// 读取数据并处理
string strData, strWeight;
long lPosition, lStatus, lSign, lOverload;
long i, count;
strData = ole_1.object.Input; // 读取数据
// 解析数据,提取小数点位置、称重稳定性标志、正负标志和超载标志
lPosition = integer(asc(mid(strData, 2, 1)));
lStatus = bitand(lPosition, 32);
lSign = bitand(lPosition, 16);
lOverload = bitand(lPosition, 8);
// 提取BCD码表示的重量值
strWeight =
参考资源链接:[PowerBuilder串行通信实践:使用MSCOMM32.OCX解析磅秤数据](https://wenku.csdn.net/doc/6401ac40cce7214c316eb2b7?spm=1055.2569.3001.10343)
在PowerBuilder中如何利用OLE技术调用Mscomm.ocx控件来完成串行通信,并详细设置通信参数?
在PowerBuilder应用中实现串行通信功能,可以通过OLE技术调用Mscomm.ocx控件。首先,需要在PowerBuilder窗体中插入一个OLE控件,并选择Microsoft Communications Control作为插入对象。之后,将控件命名为OLE_comm。接下来,需要配置控件属性,以确保能够与硬件设备进行有效通信。示例代码如下:
参考资源链接:[PowerBuilder串行通信:借助Mscomm.ocx控件的OLE调用](https://wenku.csdn.net/doc/cy7trv6m8r?spm=1055.2569.3001.10343)
ole_***mPort=1; // 设置串口为COM1
ole_comm.object.Settings=
参考资源链接:[PowerBuilder串行通信:借助Mscomm.ocx控件的OLE调用](https://wenku.csdn.net/doc/cy7trv6m8r?spm=1055.2569.3001.10343)
阅读全文