技術頻道

娓娓工業(yè)
您現在的位置: 中國傳動網 > 技術頻道 > 應用方案 > 4InTouchHMI軟件的應用

4InTouchHMI軟件的應用

時間:2008-06-17 11:19:00來源:fenghy

導語:?本文介紹的是InTouch在某醋酸纖維有限公司《動力工段自控系統改造》項目中的應用。
摘要:本文介紹的是InTouch在某醋酸纖維有限公司《動力工段自控系統改造》項目中的應用。 關鍵詞:intouch   1. 系統簡介 《動力工段自控系統改造》項目是對南纖公司原有動力工段的自控系統進行改造和優(yōu)化。目標是充分利用原有軟硬件資源,用最少的投入獲得高效、安全的系統性能。 原動力工段包括:化水車間、冷凍空壓車間(簡稱動力車間)、軟水站及一二泵房車間,各自擁有自己的控制室。改造前,化水車間已采用了一套SIEMENS TI545 PLC 和兩臺全點的INTOUCH 操作站實現監(jiān)控,泵房車間也已采用了一套SIEMENS TI545 PLC 和兩臺256 點的INTOUCH 操作站實現監(jiān)控,動力車間除5 臺壓縮空氣干燥器采用GE 90-30PLC 控制外其余設備的監(jiān)控均用盤裝儀表實現。原動力工段系統結構如下圖所示。
改造前的系統結構
     系統改造后,泵房車間和動力車間由原泵房車間的SIEMENS TI545 PLC 控制(需增加一些卡件),化水車間在原系統基礎上增加一些功能。將原有的兩臺全點INTOUCH 和一臺256 點INTOUCH 移入新設的集中控制室,實現三個車間的集中監(jiān)控,在化水車間設一臺256 點INTOUCH 操作站,供現場巡回檢查時使用。 同時系統通過一臺新設的數據及Web 服務器與公司管理網連接,公司和工段管理者可通過公司區(qū)域網獲取生產過程的數據和報表。
改造后的系統結構
     2. 系統功能及特點 2.1冗余的總線及操作站 系統包含2 臺全點的INTOUCH(SERVER1、SERVER2)和2 臺256 點的INTOUCH(CLIENT1、CLIENT2),SERVER1、SERVER2 分別通過各自的TIWAY 卡與化水、泵房的PLC 構成兩條冗余的TIWAY 總線。CLIENT1、CLIENT2 則通過遠程變量訪問某臺全點INTOUCH 上的數據從而實現對現場的監(jiān)控。通常CLIENT1、CLIENT2只與SERVER1、SERVE2 中的一臺通訊,當發(fā)生通訊故障時會自動嘗試與另一臺SERVER 連接。INTOUCH 中的“通訊狀態(tài)”畫面顯示了各工作站、PLC 及總線的當前狀態(tài)。
圖中紅線表示操作站在線,黑色表示離線。在CLIENT1、CLIENT2 的“通訊狀態(tài)”畫面中,工程師可以手動切換CLIENT 與SERVER 的連接。 2.2“瘦”操作站模式 256 點的CLIENT 通過遠程變量訪問全點的SERVER 從而訪問PLC,這樣CLIENT的變量配置不超過256點。同時系統運用了“分布式報警”和“分布式歷史趨勢”等功能,所有的報警記錄及歷史趨勢都存儲在全點的SERVER上,CLIENT上顯示的報警和歷史趨勢是從SERVER上獲得的??梢哉f,SERVER充當了INTOUCH服務器而CLIENT是一個INTOUCH 客戶端,只需較低的配置即可。當切換SERVER時,“分布式報警”和“分布式歷史趨勢”也跟著自動切換。 1.“分布式報警”的設置 在INTOUCH 組態(tài)中需用“分布式報警”控件,在控件的報警查詢欄中輸入“\\SERVER1\INTOUCH!DONGLI”,SERVER1 為缺省連接的計算機名,DONGLI 表示INTOUCH 中的DONGLI 報警組(報警組包括DONGLI、HS)。在SERVER 的計算機屬性需選中“本機將提供報警”;而在CLIENT 的計算機屬性中需選中“本機將顯示報警”。運行時CLIENT 將通過函數切換與SERVER 的連接。 為了統一報警設置,我們將報警做在PLC 的報警模塊中通過對PLC 變量“AHA(報警上限)、AHHA(報警上上限)、ALA(報警下限)、ALLA(報警下下限)、APV(報警過程值)、AVF(報警狀態(tài)字)”的讀寫來判斷和設置報警。有報警發(fā)生時,只有SERVER 會將報警信息寫入報警記錄,SERVER2 在寫報警信息前先判斷SERVER1是否在運行,以免重復寫入。 2.“分布式歷史趨勢”的設置(以SERVER1 為例) 在SERVER 的INTOUCH 組態(tài)中需將歷史數據的存放路徑設為INTOUCH 默認路徑。CLIENT 的INTOUCH 組態(tài)需在“分布式名稱管理器”中的“分布式歷史”里添加一項,供應器名稱為“SERVER1”,路徑為“\\SERVER1\D\NCFC2000S1”(工程路徑)即可。在CLIENT 中訪問SERVER1 的歷史數據需寫成“SERVER1.TAGNAME”。SERVER2 的設置與SERVER1 相同。 3.遠程變量的引用 在CLIENT 上使用遠程變量只需在變量名前加計算機 名即可,無需在標記名字典中新建變量,所以不占點數。(SERVER:TAGNAME) 4.自動切換功能 CLIENT 通過遠程變量觀察SERVER 上的$Second 變量,若它在在一段時間內無變化則表明與SERVER 的連接出現問題,這時可通過SetAccessName 函數將CLIENT 上的遠程變量切換到另一臺SERVER 上。 2.3公用的操作窗口 系統中對于具有相同操作接口設備使用了公用的操作窗口,而不是對應每個設備都創(chuàng)建一個操作窗口,這樣大大減少了窗口的數量。實現它需要用到間接變量,可以將間接變量看作一個指針,當對某個設備操作時,利用間接變量指向操作變量,這樣,對間接變量的賦值就會作用到操作變量上,操作變量的變化也會反應到間接變量上。 以過濾水泵為例,在過濾水處理系統中,點擊3#過濾泵,彈出操作窗口,如下圖所示:
3#過濾泵的操作變量為“RUN-3#GLB(啟動)”、“STOP-3#GLB(停止)”、“RL-3#GLB(反饋)”、“AUTO-3#GLB(自動)”、“REPAIR-3#GLB(檢修)”點擊過濾泵時執(zhí)行語句: DL_START.NAME=RUN-3#GLB.NAME; DL_STOP.NAME=STOP-3#GLB.NAME; DL_RL.NAME = RL-3#GLB.NAME; AUTO.NAME = AUTO-3#GLB.NAME; DL_REPAIR.NAME=REPAIR-3#GLB.NAME; “DL_XXX”為間接變量。在操作窗口中只需對間接變量賦值即可。例如在“啟動”按鈕的動作屬性中寫到: IF DL_START.Name<>"NULL" AND DL_STOP.Name<>"NULL" THEN DL_START=1; DL_STOP=0; Record=DL_START.Comment; SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" ); //寫操作紀錄 ELSE IF DL_START.Name = = "NULL" THEN DL_STOP=0; Record=StringLeft( DL_STOP.Comment, StringLe(DL_STOP.Comment )/2 ); SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" ); ELSE DL_START=1; Record=StringLeft( DL_START.Comment, StringLen(DL_START.Comment )/2 ); SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" ); ENDIF; ENDIF; 因為設備的啟停一般有兩種:1.啟動與停止是一個輸出;2.啟動與停止是兩個輸出。為一個輸出時我們將輸出變量的COMMENT 屬性寫為“XXX 啟動XXX 停止”這樣,在寫操作記錄時需取COMMENT 的左一半或右一半;若為兩個輸出時,變量的COMMENT 將為“XXX 啟動”或“XXX 停止”,寫記錄時取對應變量的COMMENT即可。 CLIENT 的情況比較特殊,因為CLIENT 需用間接變量指向遠程變量,而遠程變量的COMMENT 無法賦給間接變量的COMMENT,所以為了在公用窗口中獲得遠程變量的COMMENT 我們只能利用間接變量的NAME(即遠程變量的NAME)在數據庫中查找到COMMENT,再寫操作記錄。語句如下:(寫記錄的操作參見“數據庫的應用”。) IF DL_START.Name<>"NULL" AND DL_STOP.Name<>"NULL" THEN DL_START=1; DL_STOP=0; Record=StringRight( DL_START.Name ,StringLen( DL_START.Name )-7 ); SQLSelect( ConnectionId, "COMM", "COMMENT", "device_id="+"’"+Record + "’" , "" ); //查找COMMENT SQLFirst( ConnectionId ); Record=StringTrim( COM, 3 ); SQLEnd( ConnectionId ); SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" ); //寫操作紀錄 ELSE IF DL_START.Name=="NULL" THEN DL_STOP=0; Record=StringRight( DL_STOP.Name ,StringLen( DL_STOP.Name )-7 ); SQLSelect( ConnectionId, "COMM", "COMMENT", "device_id="+"’"+Record + "’" , "" ); SQLFirst( ConnectionId ); Record=StringTrim( COM, 3 ); Record=StringLeft( Record, StringLen( Record )/2 ); SQLEnd( ConnectionId ); www.it168.com SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" ); ELSE DL_START=1; Recor d=StringRight( DL_START.Name ,StringLen( DL_START.Name )-7 ); SQLSelect( ConnectionId, "COMM", "COMMENT", "device_id="+"’"+Record + "’" , "" ); SQLFirst( ConnectionId ); Record=StringTrim( COM, 3 ); Record=StringLeft( Record, StringLen( Record )/2 ); SQLEnd( ConnectionId ); SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" ); ENDIF; ENDIF; 2.4數據庫的應用 系統中的IBM 服務器作為數據存儲和發(fā)布的服務器,安裝了SQL SERVER 2000,系統的報警歷史記錄和操作記錄以及設備檔案都存放在名為“DL” 的數據庫中。 2.4.1 ODBC的連接 INTOUCH 通過ODBC 訪問SQL SERVER,在ODBC 中建立名為“DL”的用戶DSN,在INTOUCH 中用語句: SQLConnect( ConnectionId, "DSN=DL"); 建立連接,若連接成功則ConnectionId > 0 。在執(zhí)行每一條SQL 語句時都會有一個返回值,若返回值為0 則表示執(zhí)行成功,否則表示與數據庫連接不正常,需重新建立連接。為了時刻檢測與數據庫服務器的連接情況,在應用程序腳本中每5 秒鐘執(zhí)行一條查詢語句: IF ResultCode = = 0 THEN ResultCode = SQLSelect(ConnectionId , "SYSUSERS" ,"SYSUSERS","UID=0", "" ); ENDIF; 同時在條件腳本中判斷ResultCode (即返回值)若ResultCode <> 0 則斷開連接: SQLDisconnect( ConnectionId ); ConnectionId = 0; SHOW “通訊狀態(tài)”; 打開“通訊狀態(tài)”畫面,顯示信息“與服務器連接失??!”及“重試”、“取消”兩個按鈕。按“重試”,置位系統將每20 秒進行一次嘗試連接: IF RETRY = = 1 THEN ResultCode = SQLConnect( ConnectionId, "DSN=DL"); ENDIF; 直到ResultCode = 0 為止。 嘗試連接時系統將變得很忙。若想取消連接,則按“取消”按鈕,系統將不再與服務器連接,對現場 的監(jiān)控可以正常進行,但操作與報警記錄都將不寫入服務器(數據發(fā)布不受影響)。希望重新連接服務器時,只需在“通訊狀態(tài)”畫面下按“重試”按鈕即可。 2.4.2 綁定列表 在全點INTOUCH 中需建立四個綁定列表:“alarmhis”,“cortrolog”,“device”,“sysusers”分別對應數據庫中的表格?!皊ysusers”只是為了檢查ODBC 連接用的,并無其他用處。在每個列表中用變量與各字段相對應,如“cortrolog” 中變量“DATETIME” 對應字段“DATETIME” ;變量“$OPERATER”對應字段“USERNAME” ;變量“RECORD”對應字段“RECORD”等。在寫記錄前,只需先對變量復值,再執(zhí)行語句: SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" ); 即可。 查詢記錄時,首先準備一個查詢條件,例如在“稀礬池液位”的動作腳本中有以下語句 DEVICE_ID= LT51027.Name; ShowAt("設備檔案",$ObjHor +200, $ObjVer +50); SQLSelect( ConnectionId , "DevICE" , "DevICE" , "Device_ID=" + "’"+ device_id +"’" , "" ); SQLFirst( ConnectionId ); 首先將要查詢的設備名(LT51027)賦給DEVICE_ID。 “SQLSelect”語句實際上執(zhí)行了一條SQL 語句: SELECT * FROM DEVICE WHERE DEVICE_ID = ‘LT51027’ 后將查詢到的記錄的字段值賦給綁定列表中的變量。這樣在設備檔案中里,只要放上綁定 列表中的變量就能顯示查詢的結果了。下圖為從數據庫中查到的設備’ LT51027’的信息。
3 管理層應用程序 有了數據庫中的“操作記錄”、“報警記錄”和“設備檔案”,可以方便的開發(fā)管理層應用程序。下圖是用Delphi 開發(fā)的一個客戶端軟件,用來查詢記錄及維護設備檔案,它可以運行在工程師的PC 上。
另外,利用Intouch 的NETDDE 功能,可將生產數據實時地通過第三方軟件進行發(fā)布,這里涉及更多的軟件編程技術,就不在深入了。下圖為將數據以WEB 的方式進行發(fā)布。
結束語 以上的數據庫及WEB 功能也可以通過IndustrialSQL Sever 和SuiteVoyager 實現,以上的應用可以說明InTouch 無論在腳本和第三方軟件的接口方面都是非常靈活的。在過去,組態(tài)軟件往往只針對下位機,一個控制系統通常與外界隔離,成為信息孤島,使用Intouch 可以做到車間層與管理層的緊密結合,管理者可以在辦公室里瀏覽到生產一線的數據,使企業(yè)以更高的效率進行生產和管理。

標簽:

點贊

分享到:

上一篇:淺談配網柱上開關遠程監(jiān)測系...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.treenowplaneincome.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業(yè)內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網-工業(yè)自動化與智能制造的全媒體“互聯網+”創(chuàng)新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號