簡介
電子秤作為現代工業生產和商業流通中的核心計量設備,其準確性直接關系到產品質量和交易公平。針對仙貝生產企業的電子秤管理需求,我們開發了一套集電子秤檢測信息錄入、產品信息管理、實時稱重數據采集和后臺可視化大屏于一體的綜合管理系統。該系統基于Django框架構建,支持雙杰G&G和上海寺岡兩大品牌電子秤的通信協議對接,實現了從數據采集到可視化展示的完整解決方案。
一、電子秤通信協議對接與數據采集
電子秤檢測管理系統流程圖:
電子秤數據采集是整個系統的基礎環節,需要正確理解并實現不同品牌電子秤的通信協議。雙杰G&G電子秤主要采用RS232串行通信協議,其參數設置和數據格式均有明確規范。根據技術文檔,雙杰電子秤的RS232參數配置為波特率600-9600可設置(出廠默認600),8位數據位,1位停止位,無校驗位。數據輸出格式固定為14位ASCII碼,包含符號、數值、單位及換行符。例如,顯示123.45g時,輸出數據為□□□123.45□g□↓←,符號位為空格表示非負數,負數則顯示為"-"。為實現數據采集,我們編寫了Python腳本,通過串口讀取并解析這14位ASCII碼數據,然后將解析后的重量值通過API發送至后臺系統。
上海寺岡電子秤則提供了兩種通信方式:RS232和TCP-IP。RS232參數與雙杰類似,但其TCP-IP通信方式更為先進,支持局域網數據傳輸。根據寺岡電子秤的TOP2000軟件使用指南,需在電子秤的設置模式下配置IP地址(如192.168.0.135)和端口號。我們設計了一個通用的網絡通信模塊,通過TCP/IP協議與寺岡電子秤建立連接,實現數據的實時采集和傳輸。對于兩種不同品牌的電子秤,我們分別編寫了適配器類,統一了數據采集接口,確保系統能夠兼容不同品牌設備。
二、檢測信息錄入模塊開發
檢測信息錄入模塊是系統的核心交互界面,需要支持手動錄入電子秤的檢測時間、負責人、編號、校驗周期,并保存校驗記錄。我們采用了Django框架的表單系統來實現這一功能。首先定義了檢測記錄模型,包含檢測時間、負責人、電子秤編號、校驗結果、下次檢測時間等字段:
class ScaleDetectionRecord(models.Model):scale = models.ForeignKey(Scale, on_delete=models.CASCADE)detection_time = models.DateTimeField()responsible_person = models.ForeignKey(User, on_delete=models.CASCADE)cycle = models.CharField(max_length=50)next_detection_time = models.DateTimeField()is_valid = models.BooleanField(default=True)
針對校驗周期的計算,我們實現了Python自定義校驗周期計算邏輯,通過datetime
模塊和dateutil.relativedelta
庫將自定義周期(如"3個月")轉換為下次檢測時間:
from dateutil.relativedelta import relativedeltadef calculate_next_detection_time(base_time, cycle):if cycle == '1 month':return base_time + relativedelta(months=+1)elif cycle == '3 months':return base_time + relativedelta(months=+3)elif cycle == '6 months':return base_time + relativedelta(months=+6)elif cycle == '1 year':return base_time + relati