国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

WinCC訪問(wèn)外部數(shù)據(jù)庫(kù)方法研究

2018-01-18 09:03
制造業(yè)自動(dòng)化 2017年9期
關(guān)鍵詞:腳本數(shù)據(jù)源語(yǔ)句

(廣州中國(guó)科學(xué)院沈陽(yáng)自動(dòng)化研究所分所 智能裝備研發(fā)中心,廣州 511458)

0 引言

在某電路板生產(chǎn)企業(yè)實(shí)施數(shù)字化車間改造的過(guò)程中,為其設(shè)計(jì)了一套基于西門子WinCC軟件平臺(tái)的生產(chǎn)過(guò)程數(shù)據(jù)監(jiān)控系統(tǒng)。該系統(tǒng)通過(guò)監(jiān)視、保存和查詢現(xiàn)場(chǎng)數(shù)據(jù),達(dá)到指導(dǎo)生產(chǎn)的功能。由于現(xiàn)場(chǎng)設(shè)備隸屬于不同供貨商,故底層數(shù)據(jù)的保存形式也各不相同:除小部分為PLC產(chǎn)生的實(shí)時(shí)數(shù)據(jù)外,其余的數(shù)據(jù)均保存在由供貨商提供的數(shù)據(jù)庫(kù)中。其中光致車間有4臺(tái)設(shè)備的數(shù)據(jù)保存在SQL Server數(shù)據(jù)庫(kù)中,鉆孔等車間數(shù)據(jù)保存在MySQL數(shù)據(jù)庫(kù)中,而光致車間的另外兩臺(tái)設(shè)備數(shù)據(jù)保存在Access數(shù)據(jù)庫(kù)中。故如何通過(guò)WinCC軟件訪問(wèn)SQL Server、MySQL及Access等數(shù)據(jù)庫(kù)并將這些數(shù)據(jù)讀取出來(lái)即是本文的研究重點(diǎn)。

1 設(shè)計(jì)方案

WinCC軟件是西門子公司研發(fā)的一款主要針對(duì)工業(yè)控制的組態(tài)軟件,具有功能強(qiáng)大、使用靈活方便及開(kāi)放性好等優(yōu)勢(shì)[1]。

這款軟件提供了兩種腳本語(yǔ)言:C和VBScript[2]。這兩種語(yǔ)言都可以通過(guò)執(zhí)行函數(shù)的形式來(lái)實(shí)現(xiàn)特定的功能。由于VBScript具有運(yùn)行速度快、調(diào)試方便等優(yōu)勢(shì),因此系統(tǒng)選擇VBScript語(yǔ)言來(lái)開(kāi)發(fā)訪問(wèn)外部數(shù)據(jù)庫(kù)腳本。同時(shí),WinCC還提供了兩種腳本集成方式:全局腳本和圖形編輯器腳本。為了使系統(tǒng)能自動(dòng)訪問(wèn)并讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù),系統(tǒng)采用全局腳本以定時(shí)執(zhí)行的方式訪問(wèn)外部數(shù)據(jù)。由于外部數(shù)據(jù)庫(kù)的更新頻率為1次/分鐘,故系統(tǒng)也采用該頻率來(lái)執(zhí)行腳本。系統(tǒng)整體設(shè)計(jì)方案如圖1所示。

圖1 系統(tǒng)整體設(shè)計(jì)方案

2 WinCC訪問(wèn)SQL Server數(shù)據(jù)庫(kù)

2.1 SQL及SQL Server數(shù)據(jù)庫(kù)簡(jiǎn)介

SQL是英文名稱Structured Query Language的縮寫,對(duì)應(yīng)的中文解釋為結(jié)構(gòu)化查詢語(yǔ)言。美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)的規(guī)定:SQL是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。因此大部分關(guān)系數(shù)據(jù)庫(kù)都使用SQL作為其數(shù)據(jù)庫(kù)管理語(yǔ)言[3,4]。

SQL Server是微軟公司開(kāi)發(fā)并且推廣的一款大型關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),它為用戶提供了一個(gè)安全、可靠、易管理的數(shù)據(jù)庫(kù)平臺(tái)。這是一種高性能的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),設(shè)計(jì)結(jié)構(gòu)為客戶端/服務(wù)端形式,支持企業(yè)級(jí)的應(yīng)用程序和多個(gè)不同的開(kāi)發(fā)平臺(tái),可以滿足不同類型的數(shù)據(jù)庫(kù)解決方案[5]。

2.2 WinCC與SQL Server數(shù)據(jù)庫(kù)的數(shù)據(jù)交互

本系統(tǒng)用到ADO(ActiveX Data Object)即ActiveX數(shù)據(jù)對(duì)象的兩個(gè)主要獨(dú)立對(duì)象:Connection對(duì)象和Recordset對(duì)象。系統(tǒng)通過(guò)Connection對(duì)象與數(shù)據(jù)庫(kù)建立連接,而通過(guò)Recordset對(duì)象與數(shù)據(jù)庫(kù)里的具體數(shù)據(jù)表進(jìn)行數(shù)據(jù)交換。

1)連接SQL Server數(shù)據(jù)庫(kù)

下面的VBS代碼用于建立WinCC與SQL Server的連接。其中conn和StrNew為全局變量,用于創(chuàng)建Connection和RecordSet的對(duì)象;Persist Security Info的值為真表示建立與數(shù)據(jù)庫(kù)連接受保存安全信息;Initial Catalog表示conn要打開(kāi)的數(shù)據(jù)庫(kù)為gzsia;Data Source表示數(shù)據(jù)庫(kù)的IP地址,若要連接本地?cái)?shù)據(jù)庫(kù)改為本地IP地址即可。另外conn.State表示數(shù)據(jù)庫(kù)連接狀態(tài),當(dāng)其值等于1時(shí),表示數(shù)據(jù)庫(kù)連接成功。

2)執(zhí)行SQL語(yǔ)句

下面的VBS腳本代碼用于完成執(zhí)行SQL的功能。其中sql表示要被執(zhí)行的SQL語(yǔ)句,該句SQL語(yǔ)句表示:當(dāng)EquipCode等于1001時(shí),根據(jù)First參數(shù)倒敘排列g(shù)z_EL_Jobs表格,選取表中第一行Rejected參數(shù)并將其命名為newtital。在打開(kāi)數(shù)據(jù)集的過(guò)程中,游標(biāo)類型選擇靜態(tài)游標(biāo)來(lái)反映第一次打開(kāi)游標(biāo)時(shí)表中數(shù)據(jù)的狀態(tài);加鎖類型選擇缺省上鎖類型,這種方式允許多個(gè)用戶同時(shí)讀取數(shù)據(jù),但不能改變數(shù)據(jù)。

3)WinCC讀取數(shù)據(jù)庫(kù)數(shù)據(jù)

下面的VBS腳本代碼用于完成讀取SQL Server中的數(shù)據(jù)并將數(shù)據(jù)賦值到WinCC內(nèi)部變量等功能。首先將找到的newtital中的值賦給變量buffer_6_01(Rejected)。再將其值寫入WinCC的6_01_ Rejected變量中。

2.3 連接測(cè)試

WinCC讀取SQL Server數(shù)據(jù)測(cè)試結(jié)果如圖2所示。其中圖2(a)為#1STR曝光機(jī)產(chǎn)生的最新一條信息中的部分?jǐn)?shù)據(jù),圖2(b)為WinCC讀取SQL Server數(shù)據(jù)庫(kù)并顯示出來(lái)的數(shù)據(jù)。

3 WinCC訪問(wèn)MySQL數(shù)據(jù)庫(kù)

3.1 MySQL數(shù)據(jù)庫(kù)簡(jiǎn)介

MySQL是一個(gè)由瑞典MySQL AB公司開(kāi)發(fā)的小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。相比于oracle、DB2和SQL Server等大型數(shù)據(jù)庫(kù),MySQL具有速度快、體積小、成本低和代碼開(kāi)源等優(yōu)勢(shì),而且MySQL可以工作在不同平臺(tái)上,支持C、C++、Java和PHP等多種開(kāi)發(fā)語(yǔ)言。另外,其使用的核心線程是完全多線程,并支持多處理器。My SQL數(shù)據(jù)庫(kù)的優(yōu)勢(shì)明顯但劣勢(shì)也較為突出,相對(duì)其他大型數(shù)據(jù)庫(kù),其安全系統(tǒng)存在非標(biāo)準(zhǔn)化、規(guī)模小及功能有限等不足。但是針對(duì)個(gè)人用戶、中小型數(shù)據(jù)系統(tǒng)或小規(guī)模網(wǎng)站來(lái)說(shuō),MySQL在保證數(shù)據(jù)庫(kù)完整功能的前提下,大大降低了開(kāi)發(fā)和后期的運(yùn)維成本,所以針對(duì)這類客戶來(lái)說(shuō),MySQL數(shù)據(jù)庫(kù)的使用量是相當(dāng)廣泛的[6]。

3.2 WinCC通過(guò)ODBC連接MySQL數(shù)據(jù)庫(kù)

ODBC(Open Database Connectivity)中文譯為開(kāi)放數(shù)據(jù)庫(kù)連接,是微軟公司提出的一個(gè)數(shù)據(jù)庫(kù)訪問(wèn)接口標(biāo)準(zhǔn),也是開(kāi)放服務(wù)結(jié)構(gòu)(WOSA,Windows Open Services Architecture)中有關(guān)數(shù)據(jù)庫(kù)的一個(gè)組成部分。它提供了一組標(biāo)準(zhǔn)API接口使用戶可以根據(jù)不同需求訪問(wèn)數(shù)據(jù)庫(kù)文件[7]。

WinCC要想訪問(wèn)MySQL數(shù)據(jù)庫(kù),就必須通過(guò)ODBC管理器注冊(cè)一個(gè)ODBC數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的位置、類型及MySQL的ODBC驅(qū)動(dòng)程序等信息,建立起ODBC與MySQL數(shù)據(jù)庫(kù)的聯(lián)系。通常來(lái)說(shuō),在建立ODBC與MySQL的連接后,可以通過(guò)SQL Server訪問(wèn)MySQL數(shù)據(jù)庫(kù),也可以通過(guò)腳本直接訪問(wèn)數(shù)據(jù)庫(kù)。為了能直觀顯示測(cè)試結(jié)果,本文選擇通過(guò)SQL Server來(lái)訪問(wèn)MySQL數(shù)據(jù)庫(kù)。

1)建立ODBC數(shù)據(jù)源

在控制面板的管理工具中的數(shù)據(jù)源(ODBC)選項(xiàng)中,選擇添加名為“MySQL ODBC 5.3 Unicode Driver”的數(shù)據(jù)源驅(qū)動(dòng)程序,在填寫完成要連接數(shù)據(jù)庫(kù)的基本信息后,點(diǎn)擊Test,若彈出“Connection Successful”的字樣表示連接成功,如圖3所示。

圖3 MySQL建立ODBC數(shù)據(jù)源界面

2)通過(guò)SQL Server訪問(wèn)MySQL數(shù)據(jù)庫(kù)

由于是通過(guò)SQL Server訪問(wèn)MySQL數(shù)據(jù)庫(kù),故VBS腳本連接的是SQL Server數(shù)據(jù)庫(kù)。所以,除SQL語(yǔ)句外,連接數(shù)據(jù)庫(kù)及WinCC讀取數(shù)據(jù)庫(kù)數(shù)據(jù)等部分的代碼均與WinCC訪問(wèn)SQL Server數(shù)據(jù)庫(kù)相同。

通過(guò)SQL Server訪問(wèn)MySQL數(shù)據(jù)庫(kù)的SQL語(yǔ)句如下所示。其中,OpenQuery是SQL Server用來(lái)與其他Server交互的一種技術(shù),通過(guò)OpenQuery,SQL Server可以直接訪問(wèn)其他數(shù)據(jù)庫(kù)資源;ZK_MYSQL為連接的服務(wù)端名。該句SQL語(yǔ)句表示:數(shù)據(jù)來(lái)源為ZK_MYSQL服務(wù)端;當(dāng)mt_console_nu等于1并且aw_run_hit不等于0時(shí),根據(jù)aw_begin_dt倒敘排列Easy_work_201705表格,選取第一行aw_run_hit參數(shù)。

sql = "SELECT * FROM OPENQUERY(ZK_MYSQL,

'select aw_run_hit from Easy_work_201705

where mt_console_nu = 1 and aw_run_hit <> 0 order by aw_begin_dt desc limit 1')";

3.3 連接測(cè)試

WinCC讀取MySQL數(shù)據(jù)測(cè)試結(jié)果如圖4所示。其中圖4(a)為鉆孔設(shè)備產(chǎn)生的最新一條信息中的部分?jǐn)?shù)據(jù),圖4(b)為WinCC通過(guò)SQL Server讀取MySQL數(shù)據(jù)庫(kù)并顯示出來(lái)的數(shù)據(jù)。

圖4 WinCC讀取MySQL測(cè)試

4 WinCC訪問(wèn)Access數(shù)據(jù)庫(kù)

4.1 Access數(shù)據(jù)庫(kù)簡(jiǎn)介

Microsoft Access數(shù)據(jù)庫(kù)是包含在微軟公司Office系統(tǒng)中的一套小型關(guān)系數(shù)據(jù)庫(kù)軟件,用戶可以通過(guò)該軟件完成儲(chǔ)存、查詢和分析數(shù)據(jù)及連接其他大型數(shù)據(jù)庫(kù)的功能。Access數(shù)據(jù)庫(kù)的工作界面與Office的其他軟件相似,故相比于其他數(shù)據(jù)庫(kù)軟件Access數(shù)據(jù)庫(kù)具有更好的用戶體驗(yàn)。同時(shí),該數(shù)據(jù)庫(kù)不僅可以有效地組織與管理、共享與開(kāi)發(fā)應(yīng)用數(shù)據(jù)庫(kù)信息,而且其提供的數(shù)據(jù)庫(kù)對(duì)象可以使大部分用戶不用編寫代碼就能設(shè)計(jì)出一個(gè)功能完善的桌面數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),這無(wú)疑成為小規(guī)模數(shù)據(jù)用戶的較好選擇[8,9]。

4.2 WinCC通過(guò)ODBC連接Access數(shù)據(jù)庫(kù)

1)同步Access數(shù)據(jù)庫(kù)

相比于訪問(wèn)局域網(wǎng)內(nèi)的Access數(shù)據(jù)庫(kù),WinCC連接本地?cái)?shù)據(jù)庫(kù)要容易的多,故先將兩臺(tái)設(shè)備的Access數(shù)據(jù)庫(kù)同步至本地。系統(tǒng)使用GoodSync軟件同步設(shè)備端的Access數(shù)據(jù)庫(kù),如圖5所示,其同步周期設(shè)置為每分鐘一次。

圖5 同步Access數(shù)據(jù)庫(kù)

2)連接并讀取Access數(shù)據(jù)庫(kù)

若要連接Access數(shù)據(jù)庫(kù)同樣要通過(guò)建立ODBC數(shù)據(jù)源的方式實(shí)現(xiàn),具體實(shí)現(xiàn)方法與MySQL數(shù)據(jù)庫(kù)建立數(shù)據(jù)源的方法相同,故不再贅述。WinCC連接Access數(shù)據(jù)庫(kù)、執(zhí)行SQL語(yǔ)句和讀取變量的方法與SQL Server數(shù)據(jù)庫(kù)的相關(guān)操作與設(shè)置基本相同,唯一的不同是兩個(gè)數(shù)據(jù)庫(kù)的連接字符串有差異,下面的VBS腳本即為連接Access數(shù)據(jù)庫(kù)的連接字符串。

Conn.ConnectionString = “Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Production.accdb”;

4.3 連接測(cè)試

WinCC讀取Access數(shù)據(jù)測(cè)試結(jié)果如圖6所示。其中圖6(a)為#1LED曝光機(jī)產(chǎn)生的最新一條信息中的部分?jǐn)?shù)據(jù),圖6(b)為WinCC讀取Access數(shù)據(jù)庫(kù)并顯示出來(lái)的數(shù)據(jù)。

圖6 WinCC讀取Access測(cè)試

5 結(jié)束語(yǔ)

本文通過(guò)VBS腳本,將WinCC與SQL Server、MySQL及Access等三個(gè)數(shù)據(jù)庫(kù)進(jìn)行連接,并使其讀取存儲(chǔ)在各數(shù)據(jù)庫(kù)中的底層設(shè)備的實(shí)時(shí)數(shù)據(jù)。通過(guò)測(cè)試顯示,這種連接數(shù)據(jù)庫(kù)并讀取數(shù)據(jù)的方法可以完全滿足現(xiàn)場(chǎng)對(duì)于底層數(shù)據(jù)的實(shí)時(shí)性、準(zhǔn)確性和穩(wěn)定性的要求,為進(jìn)一步設(shè)計(jì)數(shù)字化車間、構(gòu)建信息化平臺(tái)、實(shí)現(xiàn)自動(dòng)化生產(chǎn)以及完善現(xiàn)代化的工廠管理體系提供了重要的數(shù)據(jù)支撐。

[1]西門子(中國(guó))有限公司.深入淺出西門子WinCCV6[M].北京:北京航空航天大學(xué)出版社,2004.

[2]楊洋.WinCC腳本在MES系統(tǒng)中的應(yīng)用[J].制造業(yè)自動(dòng)化,2016,38(6):13-14.

[3]閆旭.淺談SQL Server數(shù)據(jù)庫(kù)的特點(diǎn)和基本功能[J].價(jià)值工程,2012,(22):229-231.

[4]姜黎莉,姜巍巍.Access數(shù)據(jù)庫(kù)與SQL Server數(shù)據(jù)庫(kù)[J].知識(shí)經(jīng)濟(jì),2010,(04).

[5]顏昌斌.基于和的實(shí)驗(yàn)數(shù)據(jù)庫(kù)系統(tǒng)研究[D].武漢:武漢理工大學(xué),2006.

[6]王威.My SQL數(shù)據(jù)庫(kù)源代碼分析及存儲(chǔ)引擎的設(shè)計(jì)[D].南京:南京郵電大學(xué),2012.

[7]楊少霞.關(guān)于WinCC與Oracle連接以及數(shù)據(jù)交互的研究與應(yīng)用[J].制造業(yè)自動(dòng)化,2016,38(9):146-148.

[8]喻濟(jì)兵.基于Access數(shù)據(jù)庫(kù)信息管理系統(tǒng)的設(shè)計(jì)[J].船電技術(shù),2011,(4):57-59.

[9]崔再惠.Access數(shù)據(jù)庫(kù)與SQL Server數(shù)據(jù)庫(kù)主要功能的比較[J].鞍山師范學(xué)院學(xué)報(bào),2009,(6):51-52.

猜你喜歡
腳本數(shù)據(jù)源語(yǔ)句
酒駕
安奇奇與小cool 龍(第二回)
重點(diǎn):語(yǔ)句銜接
一種多源數(shù)據(jù)融合過(guò)程中的實(shí)體關(guān)聯(lián)性計(jì)算方法
利用屬性集相關(guān)性與源誤差的多真值發(fā)現(xiàn)方法研究
自動(dòng)推送與網(wǎng)站匹配的腳本
Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
我喜歡
裝備保障數(shù)據(jù)集成平臺(tái)
作文語(yǔ)句實(shí)錄