咨詢電話
ENGLISH0755-88840386發(fā)布時間:2021-12-03 15:28:08 |來源:網(wǎng)絡(luò)轉(zhuǎn)載
這篇文章介紹了計算機(jī)與稱重顯示儀進(jìn)行串口通訊的具體實現(xiàn)方法,并將該方法應(yīng)用于稱重管理系統(tǒng)的開發(fā)。實踐證實此稱重系統(tǒng)在實際應(yīng)用中性能穩(wěn)定,效果良好。
隨著計算機(jī)通訊技術(shù)的發(fā)展,越來越多的稱重設(shè)備,儀器通過運(yùn)用計算機(jī)通訊技術(shù)實現(xiàn)了與微機(jī)直接互聯(lián),充分利用微機(jī)強(qiáng)大的軟硬件資源使儀器、設(shè)備的功能得以擴(kuò)展。本文介紹的稱重管理系統(tǒng)就是通過稱重顯示儀與計算機(jī)進(jìn)行串口通訊從而實現(xiàn)了稱重的自動化、票證治理的現(xiàn)代化以及票證信息的網(wǎng)絡(luò)資源共享。
一、系統(tǒng)的結(jié)構(gòu)概述
系統(tǒng)硬件組成
本系統(tǒng)硬件由稱重顯示儀、微機(jī)、通訊電纜及打印機(jī)等構(gòu)成。
計算機(jī)系統(tǒng)稱重系統(tǒng)
當(dāng)汽車在稱板上停穩(wěn)后,汽車衡的壓力傳感器將壓力彈性形變轉(zhuǎn)換成3~30mv的電信號,并傳送給稱重控制儀表,儀表對輸入的電信號進(jìn)行調(diào)理、放大、A/D轉(zhuǎn)換等處理后,最后送到計算機(jī)串口,稱重管理系統(tǒng)對數(shù)據(jù)進(jìn)行軟件處理,最終形成所需的磅單并進(jìn)行票證打印。計算機(jī)通過網(wǎng)卡上企業(yè)內(nèi)部ERP網(wǎng),從而實現(xiàn)票證信息的網(wǎng)絡(luò)資源共享。
通訊接口的連接
計算機(jī)與稱重顯示儀通過3根線進(jìn)行串口數(shù)據(jù)通訊。
二、串口通訊方法及其實現(xiàn)
目前,使用的大多數(shù)稱重儀表本身均帶有兩種通訊接口,一個是打印機(jī)并口,另一個是通用的標(biāo)準(zhǔn)RS-232串口。由于串口與并口相比有許多優(yōu)點(diǎn),如:RS-232串口硬件電路簡單,只要使用MAX232等芯片進(jìn)行上位機(jī)RS-232電平到下位機(jī)TTL電平的轉(zhuǎn)接即可。其次,在RS-232協(xié)議規(guī)定的傳輸距離內(nèi),傳輸可靠性很高而且不易受到干擾。
基于以上串口的優(yōu)點(diǎn),所以目前使用的大多數(shù)儀表在與微機(jī)通訊時,比較常用的方法還是通過RS-232串口來實現(xiàn)與微機(jī)的通訊。串口通訊作為一種靈活、方便、可靠的數(shù)據(jù)傳輸方式在工業(yè)現(xiàn)場中運(yùn)用十分廣泛。
三、通訊程序的設(shè)計
MSComm控件的介紹
MSComm控件(即MicrosoftCommunicationsControl的簡稱)是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了串行通訊功能,為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法。?MSComm控件對串行通訊有兩種處理方式:一是利用事件驅(qū)動方式:利用?MSComm控件的ONCOMM事件捕捉并處理通訊錯誤及事件。另一種是使用查詢方式,通過查詢CommEvent屬性的值來判定事件和錯誤。
MSComm控件的常用屬性
1.CommPort屬性:設(shè)置并返回通訊端口號,必須在打開端口之前設(shè)置CommPort,本例設(shè)為1,即Com1。
2.Threshold屬性:設(shè)置并返回的要接收的字符數(shù)。
3.Settings屬性:設(shè)置波特率、奇偶校驗、數(shù)據(jù)位、停止位。本例設(shè)為“4800,n,8,1”,該參數(shù)要與儀表串口的設(shè)置保持一致,否則不能通訊。
4.PortOpen屬性:設(shè)置并返回通訊端口的狀態(tài)。也可以打開和關(guān)閉端口。
5.Inputlen屬性:從接收緩沖區(qū)讀取的字符數(shù),設(shè)置InputLen值為“0”時,使用“Input”將使“MSComm”控件讀取接收緩沖區(qū)中全部的內(nèi)容。
具體實現(xiàn)方法
由于PB中沒有直接控制計算機(jī)串口的控件,可以利用OLE調(diào)用Mscomm。ocx控件,來解決PB中的通信控制問題??丶膶傩栽O(shè)置可以在程序中使用編碼設(shè)置,這樣更加便于控制。
在窗口OPEN事件中編程:
在窗口上添加該控件,名稱為OLE_comm,先設(shè)置OLE_comm的屬性。
ole_comm。object。commport=1
ole_comm。object。settings=“4800,n,8,1“
ole_comm。object。PortOpen=true
ole_comm。object。rthreshold=24
ole_comm。object。inputlen=24
ole_comm。object。inputmode=0
在OLE_comm控件的Oncomm事件里添加程序代碼,
stringls_t,ls_t1
choosecaseole_comm。object。commevent
case2
ole_comm。object。Rthreshold=0
intii
intw1,w2,w3,flag1,flag2,t1,t2,t3
stringa1,a2,a3
ls_t=ole_comm。object。input
forii=1to24
flag1=asc(mid(ls_t,ii,1))//取字節(jié)的數(shù)值
ifflag1=2then//判定是否為起始位
ii=ii+2
st_1。text=string(long(mid(ls_t,ii,6)))
ii=24
endif
……
endchoose
四、稱重管理系統(tǒng)的實現(xiàn)
配套開發(fā)的稱重治理軟件運(yùn)行于Windows98及以上平臺,用功能強(qiáng)大的開發(fā)工具PB和Oracle編程實現(xiàn)。
系統(tǒng)主要功能即將汽車衡稱量出的車輛的各種重量數(shù)據(jù),通過稱重管理系統(tǒng)的處理,實現(xiàn)自動打印所需磅單及各種統(tǒng)計報表。再通過企業(yè)內(nèi)部完善的ERP治理信息系統(tǒng),實現(xiàn)票證信息的網(wǎng)絡(luò)資源共享。
本稱重管理系統(tǒng)由六個獨(dú)立的功能模塊組成。分別為:稱重、數(shù)據(jù)治理、統(tǒng)計報表、詞組預(yù)制、稱重系統(tǒng)配制及系統(tǒng)退出模塊。
六個稱重模塊的功能分別為:
1.稱重子菜單功能:實現(xiàn)數(shù)據(jù)采集,可以稱取貨物的重量,一次是皮重,一次是毛重,無先后順序,系統(tǒng)自動識別。
2.?dāng)?shù)據(jù)子菜單功能:可以實現(xiàn)對皮重庫、未完車輛、稱重數(shù)據(jù)以及作廢數(shù)據(jù)進(jìn)行瀏覽,還可以清除數(shù)據(jù)、備份數(shù)據(jù)、恢復(fù)數(shù)據(jù)、以及導(dǎo)出數(shù)據(jù)。
3.統(tǒng)計報表子菜單:對皮重庫表、具體清單可按日、周、月、季、年進(jìn)行靈活統(tǒng)計、多重查詢。
4.詞組預(yù)置子菜單:對貨車車牌、貨物名稱、貨物價格、發(fā)貨單位、收貨單位及運(yùn)輸單位名稱預(yù)先輸入。
5.系統(tǒng)配置子菜單:對磅單格式、聯(lián)數(shù)以及其它參數(shù)進(jìn)行設(shè)置,還可更改口令、設(shè)置治理員、設(shè)置操作員及配置串行口。
6.退出系統(tǒng):可重新登錄或退出系統(tǒng)。
五、結(jié)語
在計算機(jī)高速發(fā)展的今天,要將計算機(jī)強(qiáng)大的功能運(yùn)用于實際生產(chǎn)中,數(shù)據(jù)采集是關(guān)鍵,只有稱重儀器、儀表與計算機(jī)之間能通訊、將稱重儀表檢測結(jié)果采集入計算機(jī),才能運(yùn)用軟件編程的方法,實現(xiàn)計算機(jī)控制及計算機(jī)治理。
本文具體介紹了關(guān)于串口通訊的各方面的知識及其具體實現(xiàn)方法,雖針對稱重管理系統(tǒng)實現(xiàn)的,但對具有標(biāo)準(zhǔn)RS-232串口的儀器、設(shè)備要實現(xiàn)與微機(jī)進(jìn)行串口通訊,本文介紹的方法具有通用性。此稱重系統(tǒng)在實際生產(chǎn)中運(yùn)用效果良好且系統(tǒng)運(yùn)行十分穩(wěn)定。
本文源于網(wǎng)絡(luò)轉(zhuǎn)載,如有侵權(quán),請聯(lián)系刪除