利用C++Builder开发串口通信程序对工艺流量计进行实时监控

   2024-02-18 互联网840
核心提示:一、前言 C++Builder是当今世界上相当优秀的WINDOWS开发工具之一,其良好的图形用户接口(GUI)、面向对象的程序设汁和结构化的

    一、前言

    C++Builder是当今世界上相当优秀的WINDOWS开发工具之一,其良好的图形用户接口(GUI)、面向对象的程序设汁和结构化的事件与驱动编程模式,使得编程效率提高,现场应用功能大大增强。加拿大C0MPU-WATT称重系统公司的工艺流量计—智能型功率表是一种可编程的智能型电工仪表,具有称重计量设备的全部功能,同时具有RS232和RS485通讯接口, 可实现远程联网操作。本文介绍了在Windows98/NT操作系统下用C++Builder开发串行通信程序对流量计进行监控的编程方法。

    二、C0MPU-WATT工艺流量计通讯协议简介

    1、该流量计的通讯设置如下:数据长度:8位;停止位:1位;奇偶校验:无;波特率:1200或9600

    2、通讯协议如下:

    1)、命令帧格式:

第1个字符第2个字符第3个字符第4、5个字符第6个字符$设备地址命令字符校验码回车符

    设备地址为地址为流量计的编号,为字符1-9、A-Z中的一个。

    命令字符的代号和含义如下:
    S— 停止重量累计 K— 清除累计的重量数据C— 继续重量累计 m— 指定设备工作模式,可取值1—6
    z— 零校准 w— 传送重量数据和满载百分率R— 传送瞬时流量和平均流量

    校验码的计算方法为:第1、2、3字符的ASCII码相加的和转换为l6进制。

    2)、应答帧格式:

    a、如果命令帧的设备地址和命令字符都正确,则应答帧的第1个字符是*,第2、3个字符与命令帧的第2、3个字符相同,第4、5、6个字符为校验和与回车符。

于W命令第1个
字符第2个
字符第3个
字符前4个
字符第5个
字符后7个
字符第13个
字符后4个
字符第18、19个字符第20个
字符#设备地址设备状态设备模式· 流量数据· 满载百分率校验和回车符

对于R命令第1个
字符第2个
字符第3个
字符第4个
字符第5个
字符后6个
字符第12个
字符后6个
字符第19、20个字符第21个
字符#设备地址设备状态设备模式· 瞬时流量· 平均流量校验和回车符


    b、如果命令帧的设备地址或命令字符中的任何一个不正确,则应答帧的第1个字符是?,第2、3个字符与命令帧的第2、3个字符相同,第4、5、6个字符为校验和与回车符。
    c、如果命令帧的校验码不正确,则应答帧的第1个字符是?,第2、3个字符是CE,第4、5、6个字符为校验和与回车符。
    d、当命令字符是W或R时,则流量计会直接将请求的数据返回,而不会返回应答帧。返回的数据格式如:

    三、编程实现

    1、首先利用C++Builder的可视化编程工具建立如下运行界面。

流量计信息网内容图片

    2、然后在C++/Builder中建立串口类,该类定义了操作串口的方法,综述如下:
    1)、打开串口: BOOLOpenCom(intnPort=1);
    2)、关闭串口:BOOLClose(·void);
    3)、取得串口通信配置:void GetComState(DCB*dcb);
    4)、设置串口通信配置:void SetComState(DCB*dcb);
    5)、读串口:int ReadData(void*);
    6)、写串口:int SendData(const char*int);
    7)、获取缓冲区字符个数:int GetCharNumber (void);
    8)、判断串口是否打开:BOOL IsOpened(void);

    3、串口的打开、关闭和配置

    利用串口类的打开串口、关闭串口和配置串口通信配置方法,对给定的串口进行相关的操作。

    4、命令的发送和数据的处理

    为了连续进行数据采集,在程序中设置了一个定时器,用于周期性的发送命令帧给流量计,同时读取接收到的数据。下面以读取重量数据为例,介绍发送命令和处理数据的方法。
    第l步,建立发送的命令字符串“SlWAC”。
    第2步,利用串口类的写串口方法将上面建立的字符串写入串口。
    第3步,利用串口类的读串口方法将从流量计返回的重量数据读入监控程序。
    第4步,利用C++Builder的字符串函数处理接收的重量数据,抽取其中的第6位到12位字符,然后将其显示在重量数据文本框中。

    对于瞬时流量的命令发送和数据处理,可以用与上面相同的方法进行处理。

    5、为了便于同上位机组态软件交换数据,本程序采用了DDE(动态数据交换)方式进行设计。

    四、结束语

    利用以上方法,笔者成功地将其应用于粮库仓储自动化监控系统。同时笔者也成功的实现了对OMRON PLC的监控。

    参考文献

    1、《C++Builder3 编程指南》徐新华编著人民邮电出版社
    2、MSDN技术文档
    3、加拿大COMPU-WATT智能型功率表技术文档


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅