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