生产线称重实时打印条码标签
生活随笔
收集整理的這篇文章主要介紹了
生产线称重实时打印条码标签
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
???? 由于生產的一些產品,包裝后需要把產品的毛重實時打印到包裝的標簽上去,但一些工業用電子秤(電子磅)等稱重器,都不帶實時標簽打印功能,即使一些超市用的稱重器能打印標簽,但如果換了不同標簽格式,修改起來也比較麻煩。所以需要開發一套軟件來實時采集稱重器的重量數據,并按設置好的標簽格式實時打印一個包裝箱的條碼標簽。
1.獲取電子秤稱重數據
稱重器采用了上海耀華的XK3190-A7,
???? 將電子秤跟電腦連上,接收數據一看,數據是連續發送,而且還沒穩定的稱重數據也都發送過來了,發送的數據還是高位和低位顛倒的,看來還得費一番功夫去解析數據和算法判斷稱重是否已經穩定了。電子秤發送過來的數據截圖如下:
解析電子秤數據的代碼
/// <summary>/// 電子秤對象:/// </summary>public class ElectronicScale{/// <summary>/// 連續相同重量次數/// </summary>private int _sameCount = 20;/// <summary>/// 誤差范圍/// </summary>private decimal _errorLimit = 0.5M;/// <summary>/// 計數/// </summary>private int _readCount = 0;/// <summary>/// 上一次讀數/// </summary>private decimal _lastWeight;/// <summary>/// 最小重量起/// </summary>private decimal _minWeight = 0.2M;/// <summary>/// 重量隊列,先進先出/// </summary>private Queue _dataQueue = new Queue();/// <summary>/// 是否有新的重物/// </summary>private bool _isChanged = true;#region 構造函數public ElectronicScale(){}#endregion#region 屬性/// <summary>/// 最小起秤重量/// </summary>public decimal MinWeight{get{ return _minWeight; }set{ _minWeight = value; }}/// <summary>/// 頻率(連續相同重量次數,5--10)/// </summary>public int SameCount{get{ return _sameCount; }set{_sameCount = value;}}/// <summary>/// 誤差范圍(設置為重物的最小重量)/// </summary>public decimal ErrorLimit{get{return _errorLimit;}set{_errorLimit = value;}}/// <summary>/// 接收到的重量隊列/// </summary>public Queue WeightQueue{get { return _dataQueue; }}#endregionpublic void OnDataReceived(object sender, WeightEventArgs e){try{decimal weight = e.Weight; if (weight <= _minWeight){_readCount = 0;_isChanged = true;}if (Math.Abs(weight - _lastWeight) <= _errorLimit){//連續在誤差范圍里,就開始計數_readCount++;}_lastWeight = weight;if (_readCount >= _sameCount && _isChanged){if (weight <= _minWeight)return;_dataQueue.Enqueue(weight);_lastWeight = weight;_isChanged = false;}//string recevieData = _serialPort.ReadExisting();//string logData=DateTime.Now.ToString("hh:mm:ss")+":"+recevieData;//if (_dataQueue.Count > 0)//{// InvokeRichText.Log(this.richTextBox1, LogMsgType.Receiving, _dataQueue.Dequeue().ToString() + "\r\n");//}}catch{}}}2. 連接條碼打印機打印條碼標簽
?? 取得稱重數據后,還得及時驅動條碼打印機開始打印條碼標簽。條碼打印機采用Zebra 105S,為了提高生產線實時打印速度,所以采用指令打印方式。
轉載于:https://www.cnblogs.com/haoyue/archive/2010/07/14/1777500.html
總結
以上是生活随笔為你收集整理的生产线称重实时打印条码标签的全部內容,希望文章能夠幫你解決所遇到的問題。