999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Intouch組態軟件在換流站集控系統中的應用研究

2011-10-09 00:39:06戴迪王麗麗鄭華閻冬梅
電氣開關 2011年2期
關鍵詞:程序數據庫系統

戴迪,王麗麗,鄭華,閻冬梅

(1.湖北超高壓輸變電公司,湖北 武漢 430050;2.三峽電力職業學院,湖北 宜昌 443002)

1 前言

MACH2(Modular advanced control HVDC&SVC 2ndedition)系統稱為超高壓直流以及輸電以及靜態無功補償第二代模塊化高級控制系統,是ABB公司開發的用于輸電工程的一種控制保護系統。MACH2系統是一種基于軟件和硬件的開發平臺,也是一種適用于直流輸電的控制保護系統。

MACH2系統主要有以下幾個部分組成:

硬件:包括標準工業計算機、PCI板卡,多種專用電路板。

軟件:包括操作系統(XEX,Win NT)及相關系統軟件、應用軟件,編程和調試環境Hidraw,輔助系統等。

MACH2系統盡可能多的使用商業的“集成軟件”,以Window NT/XP為基礎的HMI人機接口(Human Machine Interface)、暫態分析、數據庫服務器和查看器、通訊等組成。常見的MACH2系統結構如圖1所示。

整個MACH2系統整體可分為兩個層次:站層和設備層。其中,站層主要包括SCADA和遠動通訊系統及站級CAN網,設備層則包括交直流站控系統、直流極控系統、直流保護系統等。HMI程序工作于圖1所示的SCADA工作站上,故本文的主要研究對象為站層。目前江陵換流站采用的是直流輸電系統中較為常用的MACH2系統,故本文以江陵換流站為例對其HMI程序進行研究和分析。

2 MACH2系統HMI實現

2.1 InTouch介紹

現在在變電站綜合自動化系統中,使用了多種人機界面,有的是通用軟件,有的是專門開發的軟件。目前江陵換流站使用的是基于InTouch開發的HMI,In-Touch和這些軟件相比,主要特點是[1]:

(1)最大限度的開放性。InTouch的運行環境是WinNT/XP,基本的通訊格式包括“快速DDE”和SuiteLink。其中,快速DDE兼容微軟的 DDE,因此許多Windows下運行的軟件都可以與InTouch直接通訊。為了與其他設備通訊,InTouch有600種通訊協議轉換軟件(I/O Server),可以與不同的設備通訊。InTouch還提供了一個工具軟件,幫助編寫通訊協議轉換軟件。

圖1 MACH2系統結構圖

(2)網絡功能。InTouch支持微軟的各種網絡,組網非常簡單。

(3)數據庫功能。InTouch除了自身帶有數據庫以外,還支持SQL語言,可以方便地與其他數據庫連接。

(4)易使用和掌握。InTouch的編程因為方法非常簡單,所以多稱為組態,是面向非計算機專業的工程人員,任何專業的工程技術人員和維修人員都可以掌握。一方面縮短了應用開發周期,另一方面方便了變電站用戶修改和開放上位軟件。

圖2顯示用于構建與運行應用程序的InTouch HMI核心組件。

圖2 Intouch核心組件關系圖

從圖2可以看出,整個Intouch HMI由應用程序管理器、Windows Maker、Windows Viewer以及用戶 HMI程序構成,通過應用程序管理器可以分別啟動Windows Maker和Windows Viewer組件對用戶HMI程序進行編輯和運行。目前江陵換流站全部OWS均安裝了Windows Viewer,但僅在 EWS上安裝了 Windows Maker,通過 Windows Maker可以查看HMI內部的代碼,了解整個HMI程序運行過程。

2.2 標記

在InTouch應用程序中,標記代表數據項,在腳本中相當于全局變量。對于需要使用應用程序對其屬性進行監視或控制的過程組件,可以為其創建標記。

在Intouch中標記可分為內存標記和I/O標記,內存標記相當于本地變量和其他語言一樣,這些變量用于存放程序運行時的各種數據。I/O標記存放的則不是數據而是一個遠程的鏈接標識,通過對I/O變量的調用,即可訪問對應的遠程數據,若要使用I/O型變量,必需在標記名典中對其訪問名進行相應設置[2]。

(1)訪問名:可隨意填寫,為方便維護,一般使其與主題名相同。

(2)節點名:I/O Server所在上位機的IP地址,若其與InTouch安裝在同一臺機器上,則可不填。本例中,I/O Server裝MACH2前置機上,故該項應填寫相應的MACH2主機名。

(3)應用程序名:InTouch所要訪問的I/O Server的進程名稱。

(4)主題名:應與I/O Server中的對應的 Topic Name(題名)相同,以保證InTouch與I/O Server的正常通訊。

在MACH2系統中前置機上的各種模擬及開關量正是通過I/O標記取得的,下面將對I/O標記如何在江陵站HMI程序中獲取數據的過程做一個深入的分析。

HMI與前置MACH2主機交換數據是通過I/O標記來完成的,通過使用不同的I/O標記HMI可以從前置機獲得狀態信息、數值信息等。在前置MACH2主機中所運行的MAIN程序起到了I/O Server的作用,MAIN程序將配置好的I/O標記利用站LAN和SuiteLink協議將這些標記共享給OWS等運行HMI程序的機器。HMI程序通過配置好的I/O標記獲得這些被共享的I/O標記信息,其詳細過程如圖3所示[3]。

圖3 I/O標記數據交換示意圖

圖3中MACH2主機在站LAN里的主機名應為HMI程序里訪問名中的節點名稱,應用程序名則應為MACH2主機上提供I/O服務的程序的進程名,這里應為MAIN。主題名和項目名稱應與MAIN程序共享的主題名和項目名對應。

2.3 狀態量數據交換分析

首先在 Windows Maker界面打開窗口 Jingzhou LAN,如圖4所示。

圖4 Jingzhou LAN窗口編輯界面

本文將以ACP1A狀態指示燈為例,分析開關量是如何從MACH2前置主機最終傳遞到HMI界面上的。雙擊ACP1A旁的綠色方塊,出現該方塊的屬性對話框,在屬性對話框中選擇模擬屬性彈出圖5窗口。

將以上表達式的計算結果和斷點值進行比較即可決定該長方形對象的顏色,在InTouch里最多可設置9個斷點值,最多可改變10種顏色。從圖6中可以看到該對象共使用了4個斷點值從而劃分出了5個顏色區間,其顏色與表達式值的對應關系如表1所示。

圖5 ACP1A狀態指示方塊模擬屬性

表1 表達式與顏色對應表

下面以ACP11SystemActive標記為例來分析該標記的值是從何處獲得的。

為了了解ACP11SystemActive標記獲取數據的過程,首先必須找到ACP11SystemActive標記獲取數據的數據源。啟動Intouch應用程序管理器,在應用程序選擇列表中,選擇江陵換流站目前所使用的HMI程序,選定后啟動Windows Maker進入開發界面。在開發界面中選擇“特別”菜單,在彈出的下拉菜單中選擇標記管理器,之后出現圖6窗口。

圖6 標記名屬性對話框

點擊選擇按鈕后彈出標記名列表,從列表中找到ACP11SystemActive標記,選擇該標記即可進入該標記的屬性對話框。點擊圖7中的訪問名按鈕,彈出訪問名列表,選擇ACP11SystemActive標記對應的訪問名ACP1A,點擊修改進入訪問名配置對話框,如圖7所示。

從圖6和圖7可以看出ACP11SystemActive標記是一個I/O標記,它對應的訪問名為ACP1A。它使用SuiteLink協議從主機名為X51的主機上的Main程序獲取數據。在EWS上打開資源管理器查看站LAN上的計算機后發現站LAN上并沒有主機名為X51的計算機,由此可以判斷,該I/O標記的主機名是在HMI程序運行時重新指定的。

圖7 訪問名配置對話框

選擇“特別”菜單下的腳本按鈕,點擊應用程序腳本,此時可以查看應用程序啟動時,運行時和結束時所執行的腳本。在應用程序啟動時包含如下腳本:

CALL StartupScript();

由上面代碼可以看出,應用程序在啟動時調用了StartupScript函數,在 QuickFunction中找到 Startup-Script函數,該函數部分代碼如下:

………

CALL ReadConsolData();

CALL SetDdeApplicationTopic();

由以上代碼可以看到StartupScript函數調用了ReadConsolData函數,在 ReadConsolData函數中可以找到如下兩段代碼:

IniFileName=InfoInTouchAppDir()+“Application.INI”;

Mach2_ACP1A =INIReadString(IniFileName,“INIT”,“Mach2 S1 ACP1A Node Name”);

第一行代碼是獲取HMI程序全路徑,并將該路徑輸出到內存標記IniFileName,第二行代碼是從該路徑下的 Application.INI文件中找出 Mach2 S1 ACP1A Node Name對應的值,并將結果返回給內存消息標記Mach2_ACP1A。

在當前HMI程序目錄下找到 Application.INI文件,用記事本打開,發現如下配置信息:

………

Mach2 S1 ACP1A Node Name=GG_S1-ACP1A

Mach2 S1 ACP1B Node Name=GG_S1-ACP1B-

而站LAN中ACP1A主機的主機名為GG_S1-ACP1A-,可見第二行代碼已將正確的ACP1A的主機名傳遞給了標記Mach2_ACP1A。

ReadConsolData函數執行完后又重新返回StartupScript函數,而StartupScript函數又調用了 SetDde-ApplicationTopic函數,打開該函數可以找到以下腳本:

IOSetAccessName( “ACP1A”,Mach2_ACP1A,“”,“”);

IOSetAccessName函數的功能正是實現訪問名的重新配置,該語句的含義是將Mach2_ACP1A中的字符變量作為訪問名ACP1A的節點名。由此可以看到ACP1A訪問名已經配置正確,此時標記名ACP11SystemActive就可以通過 SuiteLink協議和站LAN獲取ACP1A主機上的標記信息。該標記獲得數據后通過和表達式內的其他標記共同計算出表達式內的值從而確定長方形對象的顏色為用戶提供當前主機的工作狀態[4]。

2.4 HMI與數據庫系統數據交換分析

HMI程序除了從MACH2主機獲取各種現場數據外還要通過數據庫系統將各種事件從數據庫中獲取到HMI程序中來。首先簡要介紹一下SQL訪問管理器。

在Intouch中數據庫在共享的屬性或字段的表中存儲信息。“結構化查詢語言”(Structured Query Language,簡稱SQL)是以查詢的形式訪問該類信息的語言。“SQL訪問管理器”讓您可以使用查詢來訪問、修改、創建以及刪除數據庫表。在HMI使用SQL Server數據庫的步驟可分為如下3步:

(1)連接數據庫

連接SQL Server數據庫使用函數SQLConnect,其語法格式如下:

[ResultCode=]SQLConnect(ConnectionID,“ConnectString”):

SQLConnect()返回一個值給 ConnectionID參數,后續的所有SQL函數都將它用作參數。

(2)填寫SQL腳本

填寫SQL腳本的工作由函數SQLAppendStatement完成,其語法格式為:

[ResultCode=]SQLAppendStatement(Connection-ID,“SQLStatement”):

SQLAppendStatement()函數使用字符串得內容來追加SQL語句。返回值指出在函數調用過程中是否發生了錯誤。

(3)執行SQL語句返回結果

SQLExecute函數在腳本中運行 SQL查詢。其語法為:

SQLExecute(ConnectionID,BindList,StatementID):

如果語句包含 SELECT,則 BindList參數指定用于綁定數據庫列與 InTouch標記的“綁定列表”的名稱。如果“綁定列表”為 NULL,則不進行任何關聯標記的操作。

下面以江陵換流站“Event List”事件列表實現列表顯示為例,說明以上三個函數是如何將數據庫記錄顯示到InTouch界面上的。

首先簡要介紹一下江陵換流站SCADA數據庫的表結構。江陵換流站數據庫管理系統使用SQL Server 2008,其數據庫名為SCMDB,其中共有48張表,其中事件均存放在Point表中。當日事件存放于Event表中,其他一些表作為Point表的外鍵表或存放一些輔助信息。

打開Windows Maker查看其中QuickFunction中的BottomOfEventList函數,發現如下代碼:

CALL PrepareEventStatement();

ResultCode=SQLExecute(EventListConnectionID,“SQLBindlist”,SQLHandle);

查看PrepareEventStatement函數發現如下代碼:

ResultCode=SQLConnect(EventListConnection-ID,“DSN=”+ODBC_DSN+“;UID=”+ODBC_User+ “;PWD=ows”);

ResultCode = SQLAppendStatement(EventList-ConnectionID,“Select* from event”);

SQLAppendStatement ( EventListConnectionID,EventSelectSTR):

SQLAppendStatement ( EventListConnectionID,EventSelectSTR2);

在PrepareEventStatement函數內,第一行代碼實現了數據庫的連接,并將連接存放在了標記EventList-ConnectionID中,后面三行代碼實現了該連接的查詢語句,其中EventSelectSTR和EventSelectSTR2的值標記可以在InitSelectStrings函數中找到在這里不再詳細介紹。

PrepareEventStatement函數執行完后返回 BottomOfEventList函數并利用SQLExecute函數完成將查詢到的數據集綁定到SQLBindlist列表中。SQLBindlist的列表綁定配置如圖8所示。

此時數據已經被加載到SQLBindList中,之后通過進一步調用InsertEventRow函數將該列表中的每一行插入到HMI的顯示界面中,便實現了一個完整的數據庫查詢操作。

以上介紹了InTouch與MACH2系統各主機之間的數據交換過程,這對于排除各種InTouch程序界面顯示異常或數據不刷新故障有著重要意義。

圖8 列表綁定配置

3 總結與展望

本文以ABB公司的MACH2系統為例,介紹了目前直流系統所采用的控制保護系統,不足之處有待于進一步改進和完善,對于控制保護軟件仍需深入研究。

[1] 尹麗娟,徐勤.InTouch組態軟件在計算機監控系統中的應用[J].計算機工程與設計,2007,28(13):3273 -3276.

[2] 安連祥,蔡召君,張少如,等.InTouch在冷軋機控制系統中的設計和應用[J].計算機工程,2007,32(22):225 -226.

[3] 張穎,史麗萍,張廣龍.基于組態軟件InTouch的變電所監控系統[J].計算機應用,2006(26):323 -324.

[4] Wonderware.InTouch9.0 使用手冊[Z],2006.

猜你喜歡
程序數據庫系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 东京热av无码电影一区二区| 性视频一区| 国产最爽的乱婬视频国语对白| av天堂最新版在线| 国产成+人+综合+亚洲欧美| 欧美成人日韩| 国产精品乱偷免费视频| 永久天堂网Av| 亚洲精品少妇熟女| 日韩无码黄色网站| 国产免费看久久久| 国产成人你懂的在线观看| 欧美激情一区二区三区成人| 亚洲最新在线| 国产a v无码专区亚洲av| 国产色图在线观看| 久久无码高潮喷水| 亚洲国产无码有码| 暴力调教一区二区三区| 欧美在线一二区| 亚洲视频一区在线| 久久人人爽人人爽人人片aV东京热| 99ri精品视频在线观看播放| 欧美日本二区| 秋霞国产在线| 亚洲三级成人| 精品国产电影久久九九| 日本不卡视频在线| 国产精品亚洲αv天堂无码| 欧美日韩v| 久久久波多野结衣av一区二区| 久久成人国产精品免费软件| 麻豆国产精品视频| 日本一区二区三区精品国产| 爱色欧美亚洲综合图区| 国产亚洲成AⅤ人片在线观看| 国产一级毛片yw| 国产成人精品一区二区秒拍1o| 久热精品免费| 91久久精品日日躁夜夜躁欧美| 一区二区欧美日韩高清免费| 在线观看网站国产| 国产噜噜在线视频观看| 色综合天天操| 成人在线不卡| 97超碰精品成人国产| 亚洲大尺度在线| 国产视频一区二区在线观看| 91国内在线观看| 91精品国产福利| 香蕉伊思人视频| 日韩在线2020专区| 成人毛片在线播放| 高清久久精品亚洲日韩Av| 婷五月综合| 狠狠色噜噜狠狠狠狠色综合久| 波多野结衣无码中文字幕在线观看一区二区 | 免费国产一级 片内射老| 久久久四虎成人永久免费网站| 国产一级毛片网站| 国产一级视频久久| av免费在线观看美女叉开腿| 亚洲AV无码精品无码久久蜜桃| 99人体免费视频| 久久视精品| 欧美α片免费观看| 欧美日本在线播放| 日韩一区精品视频一区二区| 亚洲综合亚洲国产尤物| 亚洲专区一区二区在线观看| 久久亚洲美女精品国产精品| 欧美三级日韩三级| 毛片视频网| 亚洲日韩每日更新| 国产自在自线午夜精品视频| 亚洲精品自拍区在线观看| 午夜影院a级片| 在线看AV天堂| 波多野结衣亚洲一区| 免费在线看黄网址| 国产精品永久免费嫩草研究院| 天天躁夜夜躁狠狠躁躁88|