摘 要:介紹了基于Windows操作系統(tǒng),用Delphi實現(xiàn)工業(yè)控制計算機與下位單片機之間的串口通信。該通訊技術(shù)已在筆者開發(fā)的人工智能儀表上獲得成功應(yīng)用。
關(guān)鍵詞:串口通訊;智能儀表;Delphi
1 前 言
計算機網(wǎng)絡(luò)通訊與信息技術(shù)的高速發(fā)展,使得計算機通信技術(shù)在工業(yè)控制中發(fā)揮著重要的作用。串行通信作為一種靈活方便可靠的通信方式,在工業(yè)控制中已被大量采用。在許多工業(yè)生產(chǎn)中,用計算機對生產(chǎn)過程實行實時監(jiān)控,對下位單片機采集來的數(shù)據(jù)進行實時數(shù)據(jù)處理,以及控制信號的產(chǎn)生與傳輸?shù)裙δ。在這種工業(yè)生產(chǎn)的特定環(huán)境下,計算機要與過程控制的實時信號相聯(lián)系,因此要求計算機能實現(xiàn)對串行端口的直接操作。本文根據(jù)智能儀表的通訊要求,基于Windows操作系統(tǒng)用Delphi實現(xiàn)了計算機與下位智能儀表單片機之間的串口通信。
2 設(shè)計思想
Delphi 是一種功能強大的高級編程語言,它具有可視化、面向?qū)ο蟮奶匦,特別適于在Windows環(huán)境下圖形界面和用戶程序的編制。智能儀表以8051單片機為核心,實現(xiàn)對工業(yè)過程參數(shù)的檢測、控制,并可與上位工控機實現(xiàn)數(shù)據(jù)通訊。通訊內(nèi)容包括控制參數(shù)和過程參數(shù),如采樣時間、設(shè)定值、PID控制參數(shù)、實際檢測值等。該通訊程序的界面如下圖所示:

圖1 程序可視化界面圖
2.1 該串口通訊程序的總體設(shè)計思路
(1)通過該軟件可以進行串口參數(shù)的各種配置,以與下位單片機形成統(tǒng)一的通訊協(xié)議。
(2)通過該軟件可以遠程進行對下位單片機的各種參數(shù)進行設(shè)置。
(3)通過該軟件可以實時顯示下位機的數(shù)據(jù)采集值,可以調(diào)用存盤的記錄值。
2.2 程序的設(shè)計過程
單片機通訊程序框圖:

計算機通訊程序的框圖:

該程序中的通訊控件采用了Small-Pig Team的Spcomm Communications免費通訊控件。在軟件啟動時就控制默認串行端口COM2,如果系統(tǒng)使用其它端口時可在系統(tǒng)啟動后在菜單上的“串口設(shè)置”選項進行包括“端口”、“波特率”、“數(shù)據(jù)位”、“校驗位”、“終止位”的滿足用戶的配置。

筆者將“PID參數(shù)設(shè)置”,“調(diào)節(jié)對象采樣參數(shù)”,“輸入信號種類”,“設(shè)備號設(shè)置”分為四個窗口發(fā)送。首先向單片機廣播設(shè)備號,然后向選中的單片機發(fā)送要設(shè)置的參數(shù)并且實時讀取單片機送來的采樣數(shù)據(jù)。

圖2 向單片機廣播設(shè)備號

圖3 設(shè)置被選單片機信號種類

圖4 設(shè)置被選單片機比例度、積分時間、微分時間
由于單片機容量的關(guān)系,單片機僅發(fā)送和接收二進制數(shù),發(fā)送整數(shù)用一個字節(jié)表示;浮點數(shù)用三個字節(jié)表示,第二、三字節(jié)表示浮點數(shù)的大小,第一個字節(jié)的第一位表示正負數(shù),第二位表示小數(shù)點移動位數(shù),如果是正數(shù),就右移,如果是負數(shù)就左移第一字節(jié)后六位表示的位數(shù)。筆者在計算機上進行了數(shù)制轉(zhuǎn)換,程序見后。

圖5 設(shè)置被選單片機溫度、液位、壓力、流量采樣周期
在進行實時數(shù)據(jù)顯示時,筆者采用了Delphi的多線程來實現(xiàn)。

圖6 采樣結(jié)果曲線
3 應(yīng)用程序
數(shù)制轉(zhuǎn)換部分程序及數(shù)據(jù)接收部分程序如下:該程序在實際運行中通過。
程序在此省略,歡迎讀者或用戶與作者直接聯(lián)系。
參考文獻:
[1] 張威,盧慶齡.Delphi 編程與技巧[M].北京:科學(xué)出版社.1999.
[2] 李華,等.MCS-51 系列單片機實用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社.1990.





