新聞中心News
基于串口仿真的地磅模擬系統(tǒng)的研究與應(yīng)用
基于串口仿真的地磅模擬系統(tǒng)的研究與應(yīng)用
用Asp.Net(C#)和串口通信仿真系統(tǒng),根據(jù)不同型號地磅的數(shù)據(jù)協(xié)議規(guī)則,模擬地磅稱重向串口連續(xù)發(fā)送數(shù)據(jù),C#根據(jù)接收到的十六進(jìn)制數(shù)據(jù)進(jìn)行截取轉(zhuǎn)化計算,實時顯示稱重重量,很好地解決了程序開發(fā)過程中調(diào)試問題,極大縮短了系統(tǒng)開發(fā)時間,提高了系統(tǒng)穩(wěn)定性。
地磅也被稱為汽車衡,是大宗貨物計量的主要稱重設(shè)備。串口因具有接線簡單、傳輸距離長、穩(wěn)定可靠等優(yōu)點,而被廣泛應(yīng)用于工業(yè)控制系統(tǒng)之中,是計算機與地磅等硬件設(shè)備進(jìn)行數(shù)據(jù)通信的重要方式之一。由于地磅的特殊性及串口獨占性,給程序開發(fā)調(diào)試及系統(tǒng)實施帶來了諸多不利因素,因此,本文提出一種基于串口仿真的地磅模擬系統(tǒng),根據(jù)不同型號地磅的數(shù)據(jù)協(xié)議規(guī)則,向串口連續(xù)發(fā)送數(shù)據(jù),C#根據(jù)接收到的十六進(jìn)制數(shù)據(jù)進(jìn)行截取轉(zhuǎn)化計算,實時顯示稱重重量,模擬開發(fā)系統(tǒng)可直接通過串口連接實物,極大縮短了系統(tǒng)開發(fā)時間,提高了系統(tǒng)穩(wěn)定性。
1.虛擬串口
虛擬串口是用操作系統(tǒng)的虛擬驅(qū)動技術(shù)產(chǎn)生的串口,相對于計算機本身的硬件串口來說虛擬串口并不對應(yīng)一個物理上的串口,但是計算機應(yīng)用軟件可以像硬件串口一樣地使用虛擬串口,對于串口軟件來說虛擬串口和硬件串口并沒有區(qū)別。本文采用虛擬串口工具( Virtual Serial Port Driver 6.9)添加兩個虛擬串口 Com3及 Com4,實現(xiàn)數(shù)據(jù)的發(fā)送與接收,如圖 1所示。
2.串口調(diào)試
利用虛擬串口 Com3,設(shè)置波特率、校驗位、數(shù)據(jù)位及停止位等參數(shù),根據(jù)不同型號地磅的數(shù)據(jù)協(xié)議規(guī)則,向Com3連續(xù)發(fā)送十六進(jìn)制數(shù)據(jù)。本文采用托利多型號數(shù)據(jù)規(guī)則進(jìn)行數(shù)據(jù)模擬,數(shù)據(jù)輸出格式為: 02 72 60 20 30 30 36 36 37 35 30 30 30 30 30 30 0D 4E。托利多輸出格式如圖 2所示。其中:1.起始符 (02H);2.狀態(tài)字;3.顯示重量,6位不帶符號和小數(shù)點的數(shù)字; 4.皮重值, 6位不帶字符和小數(shù)點的數(shù)字; 5.結(jié)束符( 0DH);6.波特率、校驗位、數(shù)據(jù)位、停止位參照實際地磅設(shè)置參數(shù)。
3.系統(tǒng)開發(fā)
3.1串口初始化
采用 C#的 SerialPort類 PortName、BaudRate、DataBits、Parity、StopBits屬性分別設(shè)置通訊格式中的串口名、波特率、數(shù)據(jù)位、校驗位、停止位,參數(shù)配置與圖 3設(shè)置一致。serialPort.PortName = Com3;
serialPort.BaudRate = 9600
serialPort.DataBits = 8;
serialPort.Parity = Parity.None;
serialPort.StopBits= StopBits.One;
3.2數(shù)據(jù)接收與處理
采用 C#的 SerialPort類 DataReceived事件接收串口發(fā)送的數(shù)據(jù),根據(jù)獲取數(shù)據(jù)的 ASCII表進(jìn)行十進(jìn)制轉(zhuǎn)化。運行程序如下。
f (receivedData[i] > 47 && receivedData [i] < 59) //接收的數(shù)據(jù)
}
double weight = 0; //定義重量
for (int i = 0; i < data.Length; i++)
{//根據(jù)十進(jìn)制數(shù)組按個、十、百、千位進(jìn)行累加
weight += Convert.ToInt32(data[i] * Math.Pow(10, data.
Length - i - 1));
運行效果如圖 4所示.
4.結(jié)束語
筆者采用串口仿真技術(shù)有效解決了地磅等實物不宜調(diào)試的問題,提高了程序開發(fā)效率。并且有效解決了系統(tǒng)連續(xù)運行穩(wěn)定性問題,仿真技術(shù)可直接應(yīng)用到實際項目中。