咨詢電話
ENGLISH0755-88840386咨詢電話
0755-88840386發(fā)布時(shí)間:2021-04-25 15:46:31 |來源:網(wǎng)絡(luò)轉(zhuǎn)載
0引言
稱重控制器是應(yīng)用于冶金、礦山化工、交通、公路建設(shè)等場所的皮帶秤上的儀表,具有高精度、高可靠性的特點(diǎn). PLC( Programmable Logic Controller) 作為新一代工業(yè)控制器,以其高性價(jià)比在工業(yè)測控系統(tǒng)中獲得廣泛的應(yīng)用. 雖然 PLC 具有使用簡單方便、抗干擾性強(qiáng)、故障率低等優(yōu)點(diǎn),但它也有不能提供良好的人機(jī)界面,數(shù)據(jù)處理與管理 能力弱等缺點(diǎn). 將 PC 與 PLC 結(jié)合起來,既可以充分利用 PLC 的可靠性高、開發(fā)周期短、編程容易等特點(diǎn),又可充分利用計(jì)算機(jī)友好的人 機(jī)界面,實(shí)現(xiàn)人機(jī)對(duì)話和監(jiān)控功能[1]. 稱重控制器安裝在皮帶秤下面,皮帶上面有各個(gè)配料倉. 本文介紹了由工業(yè)控制計(jì)算機(jī)和 CP5613 通訊網(wǎng)卡組成的監(jiān)控系統(tǒng),利用 Delphi7. 0 和 Access 數(shù)據(jù)庫開發(fā)了稱重控制器上位機(jī)軟件. 該系統(tǒng)采用上下位機(jī)的主從式結(jié)構(gòu),PLC 作為下位機(jī)完成稱重控制器數(shù)據(jù)的實(shí)時(shí)采集和對(duì)各個(gè)稱重控制器的控制功能; 上位機(jī)采用計(jì)算機(jī)與 PLC 進(jìn)行數(shù)據(jù)交換,實(shí)現(xiàn)通訊設(shè)置、料種設(shè)置、儀表參數(shù)設(shè)置等. CP5613 網(wǎng)卡用于工業(yè)控制計(jì)算機(jī)連接到Profibus DP 現(xiàn)場總線,數(shù)據(jù)的實(shí)時(shí)通訊基于 Profibus 協(xié)議,通過專用數(shù)據(jù)線與控制站實(shí)現(xiàn)數(shù)據(jù)通訊[2].
1系統(tǒng)組成
該系統(tǒng)分為 3 層: 上位機(jī)( 工業(yè)控制計(jì)算機(jī)和 CP5613 通訊網(wǎng)卡) 、現(xiàn)場控制站( PLC) 和現(xiàn)場傳感器. 其系統(tǒng)結(jié)構(gòu)如圖 1 所示.
上位機(jī)以操作監(jiān)視為主要任務(wù),并有管理功能. 上位機(jī)監(jiān)控軟件采用 Delphi7. 0,Access 數(shù)據(jù)庫和 Photoshop7. 0 圖像處理軟件進(jìn)行開發(fā). 其軟件平臺(tái)完成系統(tǒng)中的時(shí)鐘、通訊、料種、儀表等參數(shù)設(shè)置,實(shí) 時(shí)顯示各個(gè)配料秤的累計(jì)量、瞬時(shí)流量、實(shí)時(shí)料種的 配比,并將每班的生產(chǎn)情況記錄到數(shù)據(jù)庫中. 上位機(jī)通過現(xiàn)場總線接口卡 CP5613 使上位工控機(jī)接入 DP 網(wǎng)絡(luò),這樣上位機(jī)與現(xiàn)場總線就連接為能完成運(yùn)行、操作等功能的控制網(wǎng)絡(luò)系統(tǒng),即 Profibus DP 現(xiàn)場總線通過 CP5613 接口卡與上位機(jī)進(jìn)行通信. 現(xiàn)場控制站直接面對(duì)控制對(duì)象( 各個(gè)稱重控制器) ,完成對(duì)工業(yè)現(xiàn)場的測控操作. 通過稱重控制器中的稱重傳感器和測速傳感器來測量系統(tǒng)的各種運(yùn)行參數(shù),并將 其返回到控制站,寫入上位機(jī)的實(shí)時(shí)數(shù)據(jù)庫中.
2上位機(jī)與 PLC 之間的通信
上位機(jī)作為主站能夠通過 PLC 監(jiān)控下層設(shè)備的狀態(tài),首先要實(shí)現(xiàn)上位機(jī)與 PLC 間的通信. PC 與PLC 間通常采用串行通信方式. 上位機(jī)同 PLC 間的通信采用主從應(yīng)答方式,在通信過程中上位機(jī)始終處于主動(dòng)方,PLC 則處于被動(dòng)方,所有數(shù)據(jù)交換只能在主站和從站之間進(jìn)行,從站之間不能直接交換數(shù) 據(jù),如果從站之間需要交換數(shù)據(jù),必須通過主站中轉(zhuǎn). 上位機(jī)先向 PLC 發(fā)送指令幀,PLC 接收了上位機(jī)的指令后,先進(jìn)行 FCS 校驗(yàn),看其是否正確,如果正確,則接收并向上位機(jī)傳送響應(yīng)幀; 否則,PLC 拒絕向上位機(jī)傳送數(shù)據(jù). 需要說明的是,整個(gè)通信過程中因 PLC 中配有通信機(jī)制,一般不對(duì) PLC 進(jìn)行編程. 上位機(jī)接收到 PLC 傳送的數(shù)據(jù),也要判斷正確與否, 若正確,則接收,完成一次正常通信; 否則,通信需要重新開始.
2. 1PLC 數(shù)據(jù)通信協(xié)議
2. 1. 1通信條件
要使上位機(jī)與下位機(jī)正確地交換數(shù)據(jù),必須保證雙方在初始化時(shí)要使波特率、數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗(yàn)均保持一致; 還必須嚴(yán)格按照 PLC 的通信協(xié)議的規(guī)定及幀格式編寫 PC 的通信程序.
2. 1. 2PC →PLC 的命令幀
PLC 傳輸協(xié)議的一般格式為
其中: @ 為幀開始標(biāo)志符; IP1、IP2 表示節(jié)點(diǎn)號(hào),是指定與上位機(jī)通訊的 PLC; ID1、ID2 表示識(shí)別碼,為命令代碼,占 2 個(gè)字節(jié); CT 表示正文,用以設(shè)置具體的命令參數(shù); F1、F2 表示幀校驗(yàn)碼( FCS) ,占 2 個(gè)字節(jié), 它是從開始符“@ ”到正文結(jié)束的所有字符的 ASCII碼按位異或的結(jié)果; “* ”和“/ ”2 字符表示命令結(jié)束[3]. 識(shí)別碼和正文取決于傳輸?shù)纳衔粰C(jī)鏈接命令; FCS 由上位機(jī)計(jì)算; 命令幀的正文最多可以有 131 個(gè)字節(jié),一個(gè)大于等于 132 字節(jié)的命令必須分成若干幀,命令分段應(yīng)使用回車定界符,而不是終止符, 終止符只能用在最后一幀的末尾.
2. 1. 3PLC →PC 的響應(yīng)幀
當(dāng) PLC 收到上位機(jī)的指令后,以上面格式應(yīng)答. @ 、節(jié)點(diǎn)號(hào)和識(shí)別碼的含義與命令幀格式中的含義相同; 響應(yīng)碼表示指令完成的狀態(tài)( 是否有錯(cuò)誤) ; FCS 由 PLC 計(jì)算給出,用來判斷 PLC 的應(yīng)答是否可靠; 終止符通過設(shè)置“* ”和“/ ”表示應(yīng)答結(jié)束.
2.2 上位機(jī)的通信編程
用 Delphi7. 0 實(shí)現(xiàn)串行通信,常用的 2 種方法是: 使用 API 函數(shù); 使用如 MsComm 或 PComm 等控件. 使用 API 編寫串行通信程序復(fù)雜,需要掌握大量軟硬件知識(shí),適合于編寫復(fù)雜的低層次通信程序. 相比較而言,利用 MsComm 控件則相對(duì)較簡單,該控件具有豐富的與串行通信密切相關(guān)的屬性及事件,支持多線程,提供了對(duì)串口的各種操作. 通信程序采用Delphi7. 0 編寫,使用通信控件 MsComm,該控件封裝了通信過程中的底層操作程序,用戶只需要設(shè)置和監(jiān)控軟件的相關(guān)屬性和事件即 OnComm 事件就可以實(shí)現(xiàn)串行通信. 在編寫通信程序之前,先對(duì) MsComm 一些屬性進(jìn)行初始化,完成串口通信設(shè)置. 設(shè)計(jì)時(shí)常用屬性如下.
CommPort. 設(shè)置并返回通信端口號(hào).
InBufferSize. 確定接收緩沖區(qū)大小,一般采用默認(rèn)值.
InputLen. 指定每次從接收緩沖區(qū)讀取的字符數(shù),若設(shè)置為 0,則 1 次讀入輸入緩沖區(qū)所有字符.
OutBufferSize. 確定發(fā)送緩沖區(qū)大小,一般采用默認(rèn)值.
Settings. 以字符串形式設(shè)置并返回串行通信協(xié)議,由波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位組成. 一般情況下設(shè)置為“9600,E,8,1 ”,含義是波特率為 9 600 bps,奇校驗(yàn),8 個(gè)數(shù)據(jù)位,1 個(gè)停止位.
采用 MsComm 接收數(shù)據(jù)有 2 種方法: 事件驅(qū)動(dòng)方式和定時(shí)查詢方式. 本系統(tǒng)采用 2 者結(jié)合的方式, 當(dāng) PC 機(jī)向 PLC 發(fā)送數(shù)據(jù)后,就一方面不斷地檢查PLC 是否響應(yīng)回答,當(dāng) ComEvReceive 事件驅(qū)動(dòng)時(shí), PC 機(jī)接收PLC 的響應(yīng); 另一方面在OnComm 事件中輪詢端口,當(dāng)串口緩沖區(qū)接收到數(shù)據(jù)時(shí),觸發(fā) On- Comm 事件,這時(shí)啟動(dòng)定時(shí)器輪詢端口,并關(guān)閉 On- Comm 事件. 若定時(shí)器計(jì)時(shí)到,通過串行通信口向指定地址的儀表發(fā)出讀命令,等待時(shí)間到則檢查 In- BufferCount 屬性值來判斷輸入緩沖區(qū)是否接收到了相應(yīng)數(shù)目的字符,從而進(jìn)行數(shù)據(jù)的讀取、判斷數(shù)據(jù)合 法性和數(shù)據(jù)的存儲(chǔ)、處理、顯示. 接收完一幀后再打開 OnComm 事件等待下一次觸發(fā). 當(dāng)窗口串口的接收緩沖區(qū)沒有接收到數(shù)據(jù)時(shí),不觸發(fā) OnComm 事件, 也就不會(huì)啟動(dòng)定時(shí)器輪詢端口,釋放 CPU 資源. PC 機(jī)的通信流程如圖 2 所示.
在此次實(shí)驗(yàn)中,PLC 通訊口初始化選用9 600 bps、8 位數(shù)據(jù)位、1 個(gè)校驗(yàn)位、1 個(gè)停止位; 自定義以@ 開頭的信息作為有用信息的標(biāo)志; 引入 2 個(gè)中斷, 即接收結(jié)束事件和發(fā)送結(jié)束事件,完成 PLC 接收到PC 機(jī)的數(shù)據(jù)后對(duì)PC 機(jī)的一個(gè)響應(yīng)過程[3]. PLC 通信流程如圖 3 所示.
3上位機(jī)監(jiān)控軟件設(shè)計(jì)
3.1 總體設(shè)計(jì)
上位機(jī)使用 Windows XP 作為操作系統(tǒng),監(jiān)控軟件采用 Delphi7. 0,Access 數(shù)據(jù)庫和 Photoshop7. 0 圖像處理軟件進(jìn)行開發(fā). 上位機(jī)監(jiān)控系統(tǒng)的功能結(jié)構(gòu)如圖 4 所示.
上位機(jī)監(jiān)控系統(tǒng)主要包括用戶登陸、監(jiān)控主界面、系統(tǒng)設(shè)置、報(bào)警處理、數(shù)據(jù)顯示、歷史查詢、系統(tǒng)日志、系統(tǒng)幫助等. 上位機(jī)可以設(shè)置各配料秤的給定流量、料種的配比,可以實(shí)時(shí)顯示各個(gè)配料秤的累計(jì)量、瞬時(shí)流量、實(shí)際料種的配比,將每班的生產(chǎn)情況記錄到數(shù)據(jù)庫中,并根據(jù)接收到的數(shù)據(jù)生成實(shí)時(shí)生產(chǎn)報(bào)表、歷史生產(chǎn)報(bào)表,各料種的實(shí)時(shí)曲線、歷史曲線. 上位機(jī)主畫面可同時(shí)顯示各倉的通信狀態(tài),各個(gè)倉可以選擇設(shè)置為供料倉或備用倉.
3. 2 數(shù)據(jù)庫設(shè)計(jì)
在數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)上,采用“前臺(tái) + 后臺(tái)”的結(jié)構(gòu),即借助 Access 來建立數(shù)據(jù)庫( 后臺(tái)) ,利用 Del- phi7. 0 實(shí)現(xiàn)數(shù)據(jù)輸入、查詢、報(bào)表生成、打印輸出等
管理功能( 前臺(tái)) ,前后臺(tái)之間采用 ADO 技術(shù)實(shí)現(xiàn)連接. Access 數(shù)據(jù)庫是微軟公司在 Windows 環(huán)境開發(fā)的一種關(guān)系型數(shù)據(jù)庫系統(tǒng),以表的形式存儲(chǔ)數(shù)據(jù),需要?jiǎng)?chuàng)建 6 個(gè)表分別對(duì)應(yīng) 6 個(gè)表的數(shù)據(jù)存儲(chǔ). 這 6 個(gè)表分別是用戶信息表、料種表、儀表參數(shù)表、報(bào)警記錄表、通訊狀態(tài)表、本班組配料狀況表. 其中報(bào)警記錄表有料倉、開始時(shí)間、結(jié)束時(shí)間、時(shí)長等字段; 本班組配料狀況表有料倉、料種、定值、本班累計(jì)、本日累計(jì)等字段. 完成數(shù)據(jù)庫的建立之后,Delphi7. 0 主要解決數(shù)據(jù)庫的連接、顯 示和操作 3 個(gè)問題. 用ADOConnection 控件完成對(duì)數(shù)據(jù)源的連接,用 DB- Grid 控件完成對(duì)數(shù)據(jù)庫內(nèi)容的顯示,用 ADOTable 控件來完成對(duì)數(shù)據(jù)庫的操作. ADO 和 DataGrid 控件的使用以及 Access 數(shù)據(jù)庫的建立[6],不再詳述.
3. 3 模塊設(shè)計(jì)
模塊化、自動(dòng)化是軟件設(shè)計(jì)的主題思想. 模塊化設(shè)計(jì)充分發(fā)揮了 Delphi 面向?qū)ο蟪绦蜷_發(fā)的優(yōu)勢(shì),將系統(tǒng)的功能分解成獨(dú)立的子功能模塊,使程序的開發(fā)、調(diào)試及維護(hù)簡單化. 自動(dòng)化將體現(xiàn)在將程序參數(shù)化,按照用戶設(shè)定的參數(shù)自動(dòng)完成既定的任務(wù)[2].
3. 3. 1 用戶管理模塊
只有合法的系統(tǒng)操作人員或系統(tǒng)管理員才能進(jìn)入系統(tǒng),進(jìn)行相應(yīng)的操作. 該功能模塊由用戶登錄和密碼修改 2 個(gè)部分組成.
3. 3. 2 監(jiān)控主界面模塊
監(jiān)控主畫面主要監(jiān)控各倉的通訊狀態(tài)( 通訊出錯(cuò)還是通訊正常) ,每個(gè)倉的料種的瞬時(shí)流量( 單位: t / h) 和累計(jì)量( 單位: t) . 各個(gè)配料倉可以選擇設(shè)置為供料倉或備用倉. 各個(gè)配料倉可以選擇設(shè)置為是自動(dòng)配料還是手動(dòng)配料.
3. 3. 3 系統(tǒng)設(shè)置模塊
系統(tǒng)設(shè)置模塊包括通信參數(shù)設(shè)置、報(bào)警參數(shù)設(shè)置、系統(tǒng)參數(shù)校正值設(shè)置等.
3. 3. 4 報(bào)警處理模塊
報(bào)警的內(nèi)容包括配料倉超料、缺料; 皮帶機(jī)開、停; 皮帶跑偏以及相關(guān)參數(shù)超出設(shè)定值等. 報(bào)警處理采用系統(tǒng)自動(dòng)處理和人為參與 2 種形式. 在自動(dòng)模式下,系統(tǒng)將進(jìn)入預(yù)先設(shè)定的故障處理程序( 如當(dāng) 1 號(hào)配料倉缺料時(shí),系統(tǒng)將關(guān)閉該倉及皮帶機(jī)) ; 在手動(dòng)模式下,由當(dāng)前的操作員進(jìn)行相應(yīng)的處理. 但不管在何種模式下,系統(tǒng)都會(huì)對(duì)報(bào)警迅速進(jìn)行定位和聲 光提示,并將其寫入系統(tǒng)日志.
3. 3. 5顯示模塊
系統(tǒng)接收到的數(shù)據(jù)可以數(shù)字形式、曲線形式、實(shí)時(shí)報(bào)表等多種形式顯示.
3. 3. 6數(shù)據(jù)保存模塊
在實(shí)時(shí)監(jiān)控系統(tǒng)軟件中,數(shù)據(jù)的存儲(chǔ)是其中的一個(gè)重要環(huán)節(jié),由于系統(tǒng)采用的是關(guān)系型數(shù)據(jù)庫,采集的數(shù)據(jù)量相對(duì)較大,考慮到系統(tǒng)對(duì)實(shí)時(shí)性的要求較高,故采用了緩沖存儲(chǔ)的辦法,即在計(jì)算機(jī)內(nèi)存中開辟一段數(shù)據(jù)存儲(chǔ)緩沖區(qū),可以有效地提高系統(tǒng)的響應(yīng)速度[5].
3. 3. 7 系統(tǒng)日志模塊
系統(tǒng)日志記錄系統(tǒng)運(yùn)行的狀態(tài)和行為,作為系統(tǒng)的一個(gè)組成部分,它為操作人員對(duì)系統(tǒng)的操作提供參考和系統(tǒng)的故障分析.
3. 4 用戶界面設(shè)計(jì)與實(shí)現(xiàn)
登陸界面和報(bào)警界面屬于 Delphi7. 0 數(shù)據(jù)庫應(yīng)用程序設(shè)計(jì),比較簡單; 監(jiān)控界面涉及上位機(jī)和 PLC 通信以及 Delphi7. 0 數(shù)據(jù)庫應(yīng)用程序設(shè)計(jì). 用戶界面設(shè)計(jì)的基本原則是操作方便,直觀形象,具有明確的 錯(cuò)誤提示. 上位機(jī)軟件運(yùn)行于 Windows XP 環(huán)境下, 監(jiān)控主界面是整個(gè)設(shè)計(jì)的核心部分( 圖 5) .
由各個(gè)配料秤的通訊狀態(tài),瞬時(shí)量顯示值,累計(jì) 量顯示值組成,并且可以對(duì)每個(gè)倉的通訊狀態(tài)進(jìn)行 控制,是通訊還是停止. 如當(dāng)點(diǎn)擊某倉旁邊的“手動(dòng)” 時(shí)彈出備用倉設(shè)置對(duì)話框,用戶可以把該倉設(shè)置為 供料倉還是備用倉; 可以為每個(gè)倉所加入的料種設(shè)定定值; 可以顯示各料種的實(shí)時(shí)曲線、歷史曲線,曲線的范圍可以是 1 min,1 h,8 h,1 d 等.
菜單欄中一級(jí)菜單系統(tǒng)設(shè)置有管理員密碼、系統(tǒng)時(shí)鐘、通訊設(shè)置( 圖 6) 、料種設(shè)置、儀表參數(shù)、保存時(shí)間、首班時(shí)間等二級(jí)菜單,配比設(shè)定可以添加新的料種并進(jìn)行比例設(shè)定,報(bào)表菜單有生產(chǎn)日志、小時(shí)記錄、料種累計(jì)、料倉累計(jì)二級(jí)菜單.
操作人員通過主工具欄及其級(jí)連的子工具欄可 以快速地切換到需要查看或處理的頁面,界面直觀, 形象,方便操作.
4結(jié)束語
上位機(jī)軟件實(shí)時(shí)采集下位機(jī)的數(shù)據(jù),可以讓管 理者隨時(shí)掌握裝置的運(yùn)行情況,并通過對(duì)生產(chǎn)過程 的關(guān)鍵數(shù)據(jù)的監(jiān)控和分析,對(duì)出現(xiàn)的問題及時(shí)進(jìn)行 處理. 目前開發(fā)的上位機(jī)軟件具有了必要的功能, 并可以隨著用戶要求的增加,方便地對(duì)軟件進(jìn)行 升級(jí).
本文源于網(wǎng)絡(luò)轉(zhuǎn)載,如有侵權(quán),請(qǐng)聯(lián)系刪除
深圳市卓禾儀器有限公司是一家專門從事稱重儀表和全自動(dòng)包裝碼垛生產(chǎn)線的研發(fā)及生產(chǎn)的高新技術(shù)企業(yè),所生產(chǎn)的JY500系列稱重顯示控制器(包括配料秤儀表、皮帶秤儀表、包裝秤儀表、重量變送器等)高速高精度,使用壽命長。卓禾儀器有十?dāng)?shù)年的現(xiàn)場校驗(yàn)經(jīng)驗(yàn),在業(yè)內(nèi)有良好的口碑,且有專門的售后工程師幫忙解決產(chǎn)品使用過程中遇到的技術(shù)問題,客戶可以放心省心順心的使用我司的產(chǎn)品。如果對(duì)我司的產(chǎn)品感興趣,歡迎咨詢。