呂品
(邯鋼邯鋼自動化部)
摘 要:力標(biāo)準(zhǔn)機是國家統(tǒng)一力值的主要依據(jù),而設(shè)備配套的控制軟件一般不能及時隨著規(guī)程、規(guī)定等的更改而升級,不能滿足檢定工作中出現(xiàn)的各種狀況。本文針對目前疊加式力標(biāo)準(zhǔn)機控制系統(tǒng)難以升級適應(yīng)新規(guī)、不能連接檢定系統(tǒng)等問題,使用python語言,對控制系統(tǒng)進行升級,是系統(tǒng)具有良好的適應(yīng)性及擴展性。
關(guān)鍵詞:Python;疊加式力標(biāo)準(zhǔn)機;tkinter;pycharm
0 引言
力標(biāo)準(zhǔn)機是力學(xué)計量中對各種力傳感器、測力儀和稱重儀表進行檢定或測試的設(shè)備,力標(biāo)準(zhǔn)機是力值計量的最高標(biāo)準(zhǔn),在保障力值的量值傳遞和溯源性方面具有非常重要的作用【1-3】。力標(biāo)準(zhǔn)機按結(jié)構(gòu)可以分為杠桿式、靜重式、液壓式和疊加式。疊加式力標(biāo)準(zhǔn)機(BFSM),是一種比對式標(biāo)準(zhǔn)機,用一個比被測定傳感器精度高的傳感器作為標(biāo)準(zhǔn),與被測定的傳感器進行串聯(lián),施加力值進行比較,從而完成設(shè)備各項性能的測力。這種力標(biāo)準(zhǔn)機既能解決大力值傳感器的檢定問題,又能保證比杠桿式力標(biāo)準(zhǔn)機高的精度,因此得到了比較廣泛的應(yīng)用。
由于疊加式力標(biāo)準(zhǔn)機系統(tǒng)由PC機、PLC、伺服電機、液壓系統(tǒng)、變頻模塊、數(shù)據(jù)采集卡等諸多元部件組成,一般均配套自動控制軟件。然而,由于系統(tǒng)龐雜,價格昂貴,目前大部分設(shè)備較為陳舊,其控制軟件不能很好的適應(yīng)自動化控制系統(tǒng)的發(fā)展,無法和辦公自動化進行數(shù)據(jù)傳輸,嚴(yán)重拖滯了檢定工作的效率。更為嚴(yán)重的是,當(dāng)相應(yīng)檢定規(guī)程、標(biāo)準(zhǔn)進行更改時,軟件不及時升級會造成檢定工作無法開展。因此,使用python編程語言編寫程序,對其控制系統(tǒng)進行改造升級,使系統(tǒng)具備良好的可擴展性及易用性。
1 開發(fā)環(huán)境的搭建
Python 一種面向?qū)ο蟆⒔忉屝汀討B(tài)數(shù)據(jù)類型的優(yōu)秀高級通用程序設(shè)計語言,具有簡潔性、易讀性以及可擴展性,擁有大量功能強大的內(nèi)置對象、標(biāo)準(zhǔn)庫和擴展庫,適合完成各種高難度任務(wù),而且?guī)缀蹩梢栽谒械牟僮飨到y(tǒng)中運行,雖然僅有十多年的發(fā)展歷史,深受廣大程序員喜愛,很多著名的項目,例如谷歌的alphago項目,微軟的小冰,蘋果的siri,谷歌的無人駕駛,python在其中得到了良好的應(yīng)用。
1.1安裝python
Python也可在多種平臺開發(fā)運行首先,確定好操作系統(tǒng),Python 版本,系統(tǒng)64 位或者32位,在www.python.org找到相應(yīng)的下載包,進行安裝。
本文以64位WINDOWS系統(tǒng)作,Python3.8.2為開發(fā)平臺。
1.2 安裝庫文件
默認的Python 程序通過命令行界面實現(xiàn),為了使程序便于使用,需要通過GUI 工具開發(fā)圖形用戶接口來與用戶進行交互。常用的Python 的GUI 開發(fā)工具有tkinter、wxPython、PyQt 等。tkinter 是Python 標(biāo)準(zhǔn)庫的GUI 模塊,提供標(biāo)簽、按鈕、菜單等圖形接口,小巧輕便,能滿足日常的圖形用戶接口開發(fā)要求。
由于系統(tǒng)還需要進行數(shù)據(jù)繪圖,數(shù)據(jù)庫的配置及數(shù)據(jù)的讀寫,因此需要安裝相應(yīng)的庫文件來實現(xiàn)功能,本系統(tǒng)使用matplotlib、、pyodbc、mysql庫來實現(xiàn)上述功能。
通過使用pip命令安裝mysql ,安裝畫面如圖1。
Py –m pip install mysql
圖1 使用pip 命令安裝 mysql 庫文件
2 優(yōu)化系統(tǒng)
2.1 創(chuàng)建Bfsm項目和應(yīng)用
PyCharm 是一款功能強大的 Python 編輯器,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具,比如調(diào)試、語法高亮、Project管理、代碼跳轉(zhuǎn)、智能提示、自動完成、單元測試、版本控制。本項目使用pycharm創(chuàng)建項目。
首先,進入PyCharm官網(wǎng)進行程序下載安裝程序。然后打開程序,點擊Create New Project,選擇Location的路徑,建立編譯環(huán)境,右鍵點擊“python_pycharm”選擇“New”,選擇“python file”,以此建立main.py,test.py,ver.py,record.py等文件。
之后,配置解釋器。點擊“File”,選擇“Settings”,點擊“Project:bfsm”,在“Project Interpreter”頁面點擊“+”按鈕,在打開頁面中搜索“mysql”,點擊“Apply”。
項目結(jié)構(gòu)如圖2。
圖2 pycharm下項目結(jié)構(gòu)
2.2 項目模塊劃分及實現(xiàn)
通過對現(xiàn)有疊加式力標(biāo)準(zhǔn)機控制系統(tǒng)的分析,新增自動檢定程序、檢定證書模板設(shè)置、檢定記錄模板設(shè)置三個模塊,以適應(yīng)規(guī)程規(guī)章的更改、批量進行檢定等檢定狀況。
2.2.1自動檢定程序模塊
原檢定程序每次檢定前,都需要輸入檢定規(guī)程、規(guī)格型號、產(chǎn)品編號、 測量范圍、執(zhí)行標(biāo)準(zhǔn)、試驗類型、預(yù)加荷力、檢測點數(shù)、檢測次數(shù)、 溫度、濕度、報告編號、證書編號等大量參數(shù),而且同型號儀表進行檢定時每一個都需要輸入相似的內(nèi)容,耗用大量人力成本,效率低下。更改后新增自動檢定功能,當(dāng)輸入檢定儀表型號后,參數(shù)會根據(jù)規(guī)程規(guī)定自動設(shè)置,無特殊需求無需手動依次更改各個選型直接進入檢定程序。同時可以選擇個體檢定或批量檢定,當(dāng)選擇批量檢定時,系統(tǒng)依據(jù)設(shè)置自動為每個儀表進行編號。
2.2.2檢定證書模板設(shè)置模塊
原系統(tǒng)檢定證書格式不能修改,無法根據(jù)不同儀表、委托方要求及規(guī)程更改而改動,因此,新增檢定證書模板設(shè)置模塊,可以按照不同檢定情況變更檢定證書頁數(shù)及內(nèi)容樣式,其設(shè)置模塊畫面如圖3所示。
圖3 檢定證書模板設(shè)置頁面
2.2.3檢定記錄模板設(shè)置模塊
檢定記錄模板設(shè)置模塊同檢定證書模板設(shè)置模塊,可以在檢測儀表、檢定要求、檢定狀態(tài)變更時修改記錄內(nèi)容,以適應(yīng)不同檢定狀況。
2.3 項目數(shù)據(jù)庫配置
使用Python進行數(shù)據(jù)庫操作,需要安裝相應(yīng)的數(shù)據(jù)庫庫文件,python針對不同的數(shù)據(jù)庫有不同的模塊,如mysql來接和操作MySQL數(shù)據(jù)庫,cx_oracle來連接和操作oracle數(shù)據(jù)庫。本項目使用mysql數(shù)據(jù)庫來存儲疊加式力標(biāo)準(zhǔn)機系統(tǒng)數(shù)據(jù),通過mysql庫文件在Python環(huán)境中進行數(shù)據(jù)庫管理、數(shù)據(jù)查詢、數(shù)據(jù)操作等活動。
Python連接數(shù)據(jù)庫包括引入應(yīng)用程序編程接口模塊、連接數(shù)據(jù)庫、執(zhí)行SQL語句和存儲過程、關(guān)閉數(shù)據(jù)庫四個步驟。
連接數(shù)據(jù)庫需使用連接函數(shù)connect。Connect函數(shù) 使用connect方法生成connect對象,再使用此對象訪問所需要訪問的數(shù)據(jù)庫,代碼如下:
try:
conn=smsql.connect(host=' localhost',user='admin' ,passwd='admin ',db='machine' )
except Exception.e:
print e
sys.exit 0
然后用這個對象定義一個游標(biāo),對數(shù)據(jù)庫的增、刪、改,就要通過這個游標(biāo)來實現(xiàn),獲取cursor對象代碼如下:
cursor=conn.cursor 0
之后用游標(biāo)執(zhí)行“execute”方法進行查詢,“fetchall”方法執(zhí)行取結(jié)果。
2.4 項目打包
python 開發(fā)的程序需要在已安裝Python 以及相關(guān)第三方模塊的計算機上運行。為了使程序能夠在沒有安裝Python的計算機上直接運行,需要通過第三方模塊pyinstaller 將開發(fā)好的Python 程序打包成一個可執(zhí)行文件。經(jīng)過pyinstaller打包后的exe 程序可以復(fù)制到其他32 位或64 位的計算機上運行。
在windows控制臺下 輸入命令如下命令進行pyinstaller模塊安裝:
py –m pip install pyinstaller
在python中輸入如下命令進行程序打包:
pyinstaller –F d:\bfsm\main.py –noconsole
3 結(jié)語
通過使用python編程語言,搭建pycharm編程環(huán)境,安裝gui等庫文件,對疊加式力標(biāo)準(zhǔn)機系統(tǒng)進行了升級改造。新系統(tǒng)具備自升級功能,能很好的與外部應(yīng)用程序進行數(shù)據(jù)傳輸,提高了系統(tǒng)自動化水平,使檢定工作的效率得到大幅提升。
參考文獻
[1] 沙樹靜.國家基準(zhǔn)機力值控制問題的研究與應(yīng)用[D].吉林:吉林大學(xué),2004.
[2] 劉士平.全自動疊加式力標(biāo)準(zhǔn)機的控制技術(shù)[I].自動化儀表,1999,(1O).
[3] 謝顯奇.疊加式力標(biāo)準(zhǔn)機應(yīng)用技術(shù)研究[J].衡器,2003,(1).
[4] 劉衛(wèi)國. Python語言程序設(shè)計[M]. 北京: 電子工業(yè)出版社, 2016.
[5] 洪錦魁.PythonGUI 設(shè)計tkinter 菜鳥編程[M]. 北京:清華大學(xué)出版社,2019,8(1):64-70.
[6] Di Giacomo M.MySQL:Lessons Learned on aDigital Library[J].IEEE Software,2005,22(3):
