欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

生产线称重实时打印条码标签

发布时间:2025/5/22 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 生产线称重实时打印条码标签 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

     由于生产的一些产品,包装后需要把产品的毛重实时打印到包装的标签上去,但一些工业用电子秤(电子磅)等称重器,都不带实时标签打印功能,即使一些超市用的称重器能打印标签,但如果换了不同标签格式,修改起来也比较麻烦。所以需要开发一套软件来实时采集称重器的重量数据,并按设置好的标签格式实时打印一个包装箱的条码标签。

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

总结

以上是生活随笔为你收集整理的生产线称重实时打印条码标签的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。