沈樵综合在线,一区二区三区乱码,免费资源一区二区三区,91超碰碰,av极品一线天,日韩免费高清一区二区,国产蜜尤福利在线,嗯啊91在线观看,精品一区二三

行業(yè)產(chǎn)品

  • 行業(yè)產(chǎn)品

昆山科爾源儀器儀表有限公司


當前位置:昆山科爾源儀器儀表有限公司>技術(shù)文章>利用C++Builder開發(fā)串口通信程序?qū)に嚵髁坑嬤M行實時監(jiān)控

經(jīng)營模式:經(jīng)銷商

商鋪產(chǎn)品:49條

所在地區(qū):

聯(lián)系人:龔靜潔 (經(jīng)理)

技術(shù)文章

利用C++Builder開發(fā)串口通信程序?qū)に嚵髁坑嬤M行實時監(jiān)控

閱讀:20發(fā)布時間:2025-7-2

/div>

    一、前言

    C++Builder是當今世界上相當優(yōu)秀的WINDOWS開發(fā)工具之一,其良好的圖形用戶接口(GUI)、面向?qū)ο蟮某绦蛟O(shè)汁和結(jié)構(gòu)化的事件與驅(qū)動編程模式,使得編程效率提高,現(xiàn)場應(yīng)用功能大大增強。加拿大C0MPU-WATT稱重系統(tǒng)公司的工藝流量計―智能型功率表是一種可編程的智能型電工儀表,具有稱重計量設(shè)備的全部功能,同時具有RS232和RS485通訊接口, 可實現(xiàn)遠程聯(lián)網(wǎng)操作。本文介紹了在Windows98/NT操作系統(tǒng)下用C++Builder開發(fā)串行通信程序?qū)α髁坑嬤M行監(jiān)控的編程方法。

    二、C0MPU-WATT工藝流量計通訊協(xié)議簡介

    1、該流量計的通訊設(shè)置如下:數(shù)據(jù)長度:8位;停止位:1位;奇偶校驗:無;波特率:1200或9600

    2、通訊協(xié)議如下:

    1)、命令幀格式:

第1個字符第2個字符第3個字符第4、5個字符第6個字符
$設(shè)備地址命令字符校驗碼回車符

    設(shè)備地址為地址為流量計的編號,為字符1-9、A-Z中的一個。

    命令字符的代號和含義如下:
    S― 停止重量累計 K― 清除累計的重量數(shù)據(jù)C― 繼續(xù)重量累計 m― 指定設(shè)備工作模式,可取值1―6
    z― 零校準 w― 傳送重量數(shù)據(jù)和滿載百分率R― 傳送瞬時流量和平均流量

    校驗碼的計算方法為:第1、2、3字符的ASCII碼相加的和轉(zhuǎn)換為l6進制。

    2)、應(yīng)答幀格式:

    a、如果命令幀的設(shè)備地址和命令字符都正確,則應(yīng)答幀的第1個字符是*,第2、3個字符與命令幀的第2、3個字符相同,第4、5、6個字符為校驗和與回車符。

于W命令
第1個
字符
第2個
字符
第3個
字符
前4個
字符
第5個
字符
后7個
字符
第13個
字符
后4個
字符
第18、19個字符第20個
字符
#設(shè)備地址設(shè)備狀態(tài)設(shè)備模式? 流量數(shù)據(jù)? 滿載百分率校驗和回車符

對于R命令
第1個
字符
第2個
字符
第3個
字符
第4個
字符
第5個
字符
后6個
字符
第12個
字符
后6個
字符
第19、20個字符第21個
字符
#設(shè)備地址設(shè)備狀態(tài)設(shè)備模式? 瞬時流量? 平均流量校驗和回車符


    b、如果命令幀的設(shè)備地址或命令字符中的任何一個不正確,則應(yīng)答幀的第1個字符是?,第2、3個字符與命令幀的第2、3個字符相同,第4、5、6個字符為校驗和與回車符。
    c、如果命令幀的校驗碼不正確,則應(yīng)答幀的第1個字符是?,第2、3個字符是CE,第4、5、6個字符為校驗和與回車符。
    d、當命令字符是W或R時,則流量計會直接將請求的數(shù)據(jù)返回,而不會返回應(yīng)答幀。返回的數(shù)據(jù)格式如:

    三、編程實現(xiàn)

    1、首先利用C++Builder的可視化編程工具建立如下運行界面。

    2、然后在C++/Builder中建立串口類,該類定義了操作串口的方法,綜述如下:
    1)、打開串口: BOOLOpenCom(intnPort=1);
    2)、關(guān)閉串口:BOOLClose(?void);
    3)、取得串口通信配置:void GetComState(DCB*dcb);
    4)、設(shè)置串口通信配置:void SetComState(DCB*dcb);
    5)、讀串口:int ReadData(void*);
    6)、寫串口:int SendData(const char*int);
    7)、獲取緩沖區(qū)字符個數(shù):int GetCharNumber (void);
    8)、判斷串口是否打開:BOOL IsOpened(void);

    3、串口的打開、關(guān)閉和配置

    利用串口類的打開串口、關(guān)閉串口和配置串口通信配置方法,對給定的串口進行相關(guān)的操作。

    4、命令的發(fā)送和數(shù)據(jù)的處理

    為了連續(xù)進行數(shù)據(jù)采集,在程序中設(shè)置了一個定時器,用于周期性的發(fā)送命令幀給流量計,同時讀取接收到的數(shù)據(jù)。下面以讀取重量數(shù)據(jù)為例,介紹發(fā)送命令和處理數(shù)據(jù)的方法。
    第l步,建立發(fā)送的命令字符串“SlWACr"。
    第2步,利用串口類的寫串口方法將上面建立的字符串寫入串口。
    第3步,利用串口類的讀串口方法將從流量計返回的重量數(shù)據(jù)讀入監(jiān)控程序。
    第4步,利用C++Builder的字符串函數(shù)處理接收的重量數(shù)據(jù),抽取其中的第6位到12位字符,然后將其顯示在重量數(shù)據(jù)文本框中。

    對于瞬時流量的命令發(fā)送和數(shù)據(jù)處理,可以用與上面相同的方法進行處理。

    5、為了便于同上位機組態(tài)軟件交換數(shù)據(jù),本程序采用了DDE(動態(tài)數(shù)據(jù)交換)方式進行設(shè)計。

    四、結(jié)束語

    利用以上方法,筆者成功地將其應(yīng)用于糧庫倉儲自動化監(jiān)控系統(tǒng)。同時筆者也成功的實現(xiàn)了對OMRON PLC的監(jiān)控。

    參考文獻

    1、《C++Builder3 編程指南》徐新華編著人民郵電出版社
    2、MSDN技術(shù)文檔
    3、加拿大COMPU-WATT智能型功率表技術(shù)文檔


儀表網(wǎng) 設(shè)計制作,未經(jīng)允許翻錄必究 .? ? ? Copyright(C)?2021 http://m.liuyangwu.com,All rights reserved.

以上信息由企業(yè)自行提供,信息內(nèi)容的真實性、準確性和合法性由相關(guān)企業(yè)負責(zé),儀表網(wǎng)對此不承擔(dān)任何保證責(zé)任。 溫馨提示:為規(guī)避購買風(fēng)險,建議您在購買產(chǎn)品前務(wù)必確認供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。

會員登錄

×

請輸入賬號

請輸入密碼

=

請輸驗證碼

收藏該商鋪

登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時間回復(fù)您~
偏关县| 信宜市| 宁武县| 七台河市| 尖扎县| 建水县| 扶风县| 永胜县| 丰宁| 达州市| 曲水县| 曲水县| 五莲县| 舞阳县| 迁西县| 商都县| 尼勒克县| 冀州市| 扶风县| 昭觉县| 和顺县| 嘉善县| 日土县| 洞头县| 满城县| 闵行区| 体育| 将乐县| 富蕴县| 平山县| 柳林县| 江孜县| 墨玉县| 滦南县| 来凤县| 濮阳市| 齐齐哈尔市| 岫岩| 西峡县| 林西县| 宁都县|