谘詢電話

ENGLISH0755-88840386
新聞中心

谘詢電話

0755-88840386
您的位置:首頁 > 新聞中心>詳情頁

用觸摸屏大字號實時顯示稱重儀表的數據

發布時間:2020-10-21 13:45:56 |來源:網絡轉載

0引言
隨著科學技術的進步及生產力水平的提高,工業生產朝著集成自動化方向發展[1],在許多工業現場中都會用到稱重設備,而現在使用的稱重儀表顯示字體較小,對操作者來說,遠距離讀數很不方便,特別是在工作量大、工作繁忙的時候,儀表顯示界麵信息不夠清晰直觀將直接加重操作者的工作負擔,故采用具有一定技術集成的觸摸屏與儀表進行連接、通信,使之與儀表同步並大字號實時顯示測量數值,從而減輕操作者的負擔,間接達到提高工作效率的目的。
1硬件係統組成與功能
1.1硬件係統組成
該文硬件係統由觸摸屏、稱重儀表[2]、稱重傳感器、220V交流電源和24V直流電源構成,硬件結構如圖1所示

儀表係統硬件結構圖

係統工作原理:稱重傳感器讀取稱重重量並在托利多稱重儀表顯示出來,供產品檢測人員記錄查看,托利多稱重儀表通過RS232串口數據線把重量數據傳到觸摸屏內部的數據內存區中,內部處理器對傳來的數據進行截取、校驗、二次校驗,再轉換成有效信息,最後在觸摸屏上顯示出來,實現與稱重儀表的同步顯示,方便工作人員對工業現場稱重狀態的實時監視。
1.2硬件係統功能
觸摸屏:由24V直流電源供電,通過RS232串口通信數據線接收稱重儀表傳來的實時數據,然後
對接收的數據進行截取、存儲、校驗、轉換,沒有錯誤後實時顯示出來,最後在觸摸屏上以大字號實時顯示稱重儀表上的數據值。
稱重儀表:由220V交流電源供電,通過信號線對稱重傳感器傳來的模擬量數據進行A/D轉換[3],存儲到稱重儀表中並顯示稱重值,並把轉換的數字量數據發送給觸摸屏。
稱重傳感器:用於稱重重量,獲得具體的重量測量信息,並通過RS232串口通信數據線將獲得的重量數據以模擬量的形式傳輸給稱重儀表。
2上位機程序設計
2.1程序設計流程
軟件設計流程如圖2所示,

儀表軟件設計流程圖

基於威綸通EasyBuilderPro開發環境,一方麵對組態界麵開發環境的顯示進行合理地組態布局,另一方麵對通信方式進行編程,借助內部函數對儀表實時發過來的數據進行加工處理,進行數據截取、校驗、轉換、顯示等步驟。
2.2通信數據傳送與處理
為使硬件係統與軟件係統很好地結合,兩者通信方式的參數設置需要一致,上電後對與通信數據有關的稱重儀表進行參數設置,而軟件編程的算法是保證係統準確實時顯示的核心部分。

2.2.1對IND236稱重儀表通信設置
IND236稱重儀表通過RS232接口進行數據傳輸[4],選擇相應型號的觸摸屏MT8121iE/MT8150iE(1024×768)進行開發,IND236稱重儀表支持兩種串行端口,分別為主板上的標準串口COM1和可選串口COM2,該文選用COM1為通信端口,並將其設為連續輸出的模式,IND236稱重儀表具有連續輸出模式的特點,在傳輸中可以連續發送重量數據和稱重狀態信息,通過數據線把數據提供給觸摸屏,該數據含有17或18個字節,按標準連續輸出的格式輸出[5],如表1所示,信息的起始標誌為STX,可查ASCII碼表得到,即0x02作為文本的開始,CR為結束標誌,即
為0x0D。

儀表標準連續輸出格式表

連續輸出格式說明:
1)ASCII文本開始字符(0x02),始終發送。
2)顯示的重量,可以是毛重或是淨重,6位,沒有小數點或符號,不足6位前補空格。
3)皮重,具有6位皮重數據,在此顯示的字段中沒有小數點。
4)ASCII回車<CR>字符(0x0D)。
5)啟用和校驗時需要校檢位的發送,校驗和用於檢測數據發送中的錯誤[6]。
由於觸摸屏MT8150iE使用COM1口與托利多儀表進行通信,故將接口類型設置為“RS232”,然後對COM1口進行通信參數設置,點擊COM1口對應的“設置”,根據IND236對參數配置的要求,選用其默認參數配置,將波特率設定為“9600”,數據位設定為“8Bits”,校驗位設定為“None”,停止位設為“1Bits”,超時設為“1.0”,設備屬性窗口和通信端口設置如圖3所示。

設備屬性窗口和通信端口設置圖

2.2.2利用內建函數接收數據
首先用到通信相關的函數即INPORT為內建函數,使得觸摸屏可以接收儀表數據,具體格式為:IN ̄PORT(read_data[start],"device_name",read_count,return_value),從串行端口或者以太網絡讀取數據至HMI,這些資料保存在read_data[start]~read_data[start+read_count-1]一維數組中,device必須選擇為“FreeProtocol”PLC類型,read_count是設定需要讀取的命令位組長度,可以是常數或者變量,若此函數能夠成功的從PLC或者控製器中讀取數據,則return_value值為1,否者為0,觸摸屏每個周期從儀表獲得數據後,根據開始標誌與結束標誌從中提取出所需信息,存入數組中等待進行下一步解讀,程序語句如下:
INPORT(response1[0],"toledp",40,return_value)
∥數據讀至HMI取40位至數組,返回值為1
i=StringLength(response1[0])
∥變量i為取數組response1[0]字符串長度
2.2.3數據截取與校驗程序
為保證數據同步顯示,需要對儀表發來的數據實時處理,通過INPORT內建函數對稱重儀表發來的數據進行截取、校驗、轉換處理,才能保證截取的數據達到同步顯示的效果,是保證稱重儀表同步正常顯示的關鍵一步,程序如下:
Ifi>=40then∥對於response1[0]長度大於40位的則清空緩存區
PURGE(1)∥i為短整型變量,如果大於40則清空COM1的緩衝區

jj=0∥給短整型變量jj賦初始值
forii=0to39∥ii的值從0~39,共40個
ifresponse1[ii]==0x02then∥對數組中的數據進行判斷,哪個為0x02
jj=ii∥jj為短整型變量,代表第幾位是0x02,並跳出循環體
breakendif
next
forj=0to16∥把截取數據進行賦值,i為短整型變量
ji1=ji+j
response[j]=response1[ji1]∥把截取17位標準連續輸出存到response[0]一維數組中
next
endif
為保證稱重數據在觸摸屏上顯示正確無誤,又增加了二次校驗功能,使得顯示更加穩定,經過實驗,在半年多的實際應用中,沒出現任何錯誤,保證了用戶在實際應用中的體驗,程序段如下:
ifresponse[0]==0x02andresponse[16]==0x0Dthen//檢驗數組第1位、第17位是否滿足條件
GETBIT(response[1],A0,0)∥位狀態轉換,解析出A位數位0的數值
GETBIT(response[1],A1,1)∥位狀態轉換,解析出A位數位1的數值
GETBIT(response[1],A2,2)∥位狀態轉換,解析出A位數位2的數值
GETBIT(response[2],B1,1)∥位狀態轉換,解析出狀態字節B位數位1的值
GETBIT(response[2],B4,4)∥位狀態轉換,解析出狀態字節B位數位4的值
GETBIT(response[3],C0,0)∥位狀態轉換,解析出狀態字節C位數位4的值
GETBIT(response[3],C1,1)∥位狀態轉換,解析出狀態字節C位數位4的值
GETBIT(response[3],C2,2)∥位狀態轉換,解析出狀態字節C位數位4的值
ASCII2FLOAT(response[4],read_data,6)
endif
當完成二次校驗時,則需要對截取的數據分段進行譯碼處理,把帶有負數的單位以及稱重儀表中的單位對應起來的數據進行轉換處理,當完成這些必要的步驟後,需要在觸摸屏上對應位置正確顯示。

出稱重數值以及單位,根據IND236的連續輸出格式,數組中第5~第10為重量的數值信息,故從數組中取出第5~第10的數據,因組態軟件提供了眾多十分方便的轉換函數,故在此可直接調用組態軟件攜帶的函數ASCII2FLOAT,將數據由ASCII碼轉為浮點數,再從數組中分別取出3個狀態位對應的數據,即數組中的第2~第4個數據,根據表提供的參數設置手冊,對IND236的狀態字節位的定義分別確定小數點位置、數值的正負和單位,對數值進行相應的處理並傳送到相應的地址,程序如下:ASCII2FLOAT(response[4],read_data,6)
ifB1==1then∥狀態字節B位符號定義,B1為1則為負號,為0則是正號
read_data=read_data∗(-1)∥顯示數據數值的正負號轉換
endif
ifA2==0andA1==1andA0==0then∥010代表小數點後沒有數值
result=readdata
_
endif
ifA2==0andA1==1andA0==1then∥011代表小數點後有一位數值
result=readdata/10
_
endif
ifA2==1andA1==0andA0==0then∥100代表小數點後有兩位數值
result=readdata/100
_
endif
SetData(result,"LocalHMI",LW,20,1)
ifB4==0then∥B4字符型變量,狀態字節B
位數位4,lb=0weightunit[0]=′l′weightunit[1]=′b′endif
ifB4==1then∥B4字符型變量,狀態字節B
位數位4,kg=1weightunit[0]=′K′weightunit[1]=′g′endif
ifC2==0andC1==0andC0==1then∥對應的數位為001時,重量單位為克(g)
weightunit[0]=′′weightunit[1]=′g′endif

ifC2==0andC1==1andC0==1then∥對應的數位為011時,重量單位為盎司(oz)
weightunit[0]=′o′weightunit[1]=′z′endif
2.3觸摸屏與稱重儀表大字號實時顯示
把需要的數據都解析出來後,調用內建函數,使傳過來的數據以與稱重儀表上的稱重值和所對應的單位在觸摸屏中顯示出來[7],實物圖如圖4所示,不需要再連接任何型號的PLC等設備,既減少了設備成本又能準確、實時傳輸並大字號顯示,滿足了客戶在多變化的工廠環境下的使用需求。

觸摸屏與稱重儀表大字號實時顯示實物圖

3結語
該文依托威綸通觸摸屏,使用梅特勒-托利多的工業電子秤為硬件基礎,借助威綸通觸摸屏自帶的開發工具,使得係統上下位機更穩定地配合,使用RS232串口通信接口來傳輸數據,實現對稱重儀表數據大字號同步顯示,該係統經調試運行後現已投入使用,經過半年多的現場運行,表明該文數據傳輸可靠,效果理想,滿足了生產需求,程序代碼可移植性好,具有較大的市場推廣價值,係統設計方案簡單,經濟、有效,同步性穩定可靠,也提高了設備的可維護性,成本低,使用方便。

 

文章來源於網絡轉載,侵刪

分享到
網站地圖凱發K8凱發K8凱發K8凱發K8凱發K8凱發K8凱發K8