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

?

VBA實(shí)現(xiàn)SE的多用戶記錄

2017-01-11 14:15:42王福東
關(guān)鍵詞:多用戶數(shù)據(jù)庫

王福東

摘要:FactoryTalk View SE在畫面數(shù)據(jù)監(jiān)控及控制等方面具有強(qiáng)大的功能,提供適用于工業(yè)的實(shí)時(shí)數(shù)據(jù)采集、顯示、數(shù)據(jù)的歸檔、報(bào)警以及報(bào)表等功能模塊,但在操作的用戶記錄方面尤顯不足,然而在一些雙重身份驗(yàn)證的系統(tǒng)中,往往需要同時(shí)記錄操作用戶及監(jiān)護(hù)用戶,以方便事故追憶和歷史查詢。本文利用FactoryTalk View SE內(nèi)嵌VBA,通過ODBC接口鏈接SQL Server數(shù)據(jù)庫,實(shí)現(xiàn)操作的雙重身份驗(yàn)證與記錄。

關(guān)鍵詞:SE;VBA;多用戶;數(shù)據(jù)庫

中圖分類號:TP311文獻(xiàn)標(biāo)識(shí)碼:A

Abstract:FactoryTalk View SE has powerful function in the picture data monitoring and control area. It provides function modules suitable for industry such as realtime data acquisition, display, data archiving, alarm, report and so on, but in aspect of user record it is especially inadequate. However, it often needs to record user operation and to monitor the user at the same time in some dual authentication system,so as to facilitate the accident tracing and history inquiry. This paper used the FactoryTalk View SE embedded VBA to link SQL Server database by the ODBC to realize dual authentication and records of operation.

Key words:SE;VBA;Multiuser;database

1引言

FactoryTalk View SE是用于開發(fā)者監(jiān)控管理級人機(jī)交互界面(HMI)應(yīng)用項(xiàng)目的組態(tài)軟件,具有強(qiáng)大的畫面編輯、數(shù)據(jù)監(jiān)控能力,方便開發(fā)多用戶、分布式服務(wù)器應(yīng)用。它所擁有的分布式和擴(kuò)展架構(gòu)特性使得其支持多個(gè)分布式服務(wù)器/客戶端的應(yīng)用??梢詮木W(wǎng)絡(luò)上的任何地方組態(tài)應(yīng)用項(xiàng)目,能夠以遠(yuǎn)程、多用戶方式對運(yùn)行的應(yīng)用項(xiàng)目進(jìn)行更改。然而在系統(tǒng)用戶記錄方面稍顯不足,F(xiàn)actoryTalk View SE自帶的數(shù)據(jù)記錄模型,其生成表的方式以及記錄內(nèi)容具有很大局限性,滿足不了特殊場合用戶的管理與記錄。FactoryTalk View SE內(nèi)嵌VBA開發(fā)平臺(tái),為自定義功能及擴(kuò)展需求提供了開發(fā)環(huán)境。

2實(shí)現(xiàn)原理

用戶記錄的目的是方便以后的事故追憶與查詢,通過記錄報(bào)表了解某一用戶在事故發(fā)生前后所進(jìn)行的操作。所以在SE中需要將記錄的操作數(shù)據(jù)與當(dāng)前用戶匹配。操作數(shù)據(jù)的采集通過SE內(nèi)部的HMI標(biāo)簽完成,當(dāng)前用戶的判斷通過SE內(nèi)部函數(shù)CurrentUserName實(shí)現(xiàn)。

FactoryTalk View SE自帶的數(shù)據(jù)記錄存儲(chǔ)格式有文件集和ODBC數(shù)據(jù)庫。文件集是把數(shù)據(jù)記錄為專有的文件集,只能在SE中通過功能塊調(diào)用且不能存儲(chǔ)用戶信息;ODBC數(shù)據(jù)庫把數(shù)據(jù)記錄到 ODBC 數(shù)據(jù)庫(使用 Microsoft SQL Server 或 Oracle 等 ODBC 數(shù)據(jù)源)中的表,表的格式固定且無法更改,也不能存儲(chǔ)用戶信息。ODBC 備份文件存儲(chǔ)為二進(jìn)制文件且無法查看。

由于SE常規(guī)的數(shù)據(jù)存儲(chǔ)格式不能滿足需求,而SE內(nèi)嵌的VBA又提供了自定義的開發(fā)平臺(tái),在FactoryTalk View SE組態(tài)軟件中,通過HMI內(nèi)部標(biāo)簽與外部PLC變量的關(guān)聯(lián)來采集有效的操作反饋信息,利用功能函數(shù)來獲取當(dāng)前時(shí)間與用戶信息,并將信息標(biāo)簽加入VBA內(nèi)創(chuàng)建的標(biāo)簽組,以集合訪問的方式引用。在VBA開發(fā)系統(tǒng)中,利用用戶操作數(shù)據(jù)的觸發(fā),匹配當(dāng)前用戶并通過ODBC數(shù)據(jù)源與SQL Server 數(shù)據(jù)庫建立鏈接,將數(shù)據(jù)與用戶信息記錄到數(shù)據(jù)庫中。數(shù)據(jù)記錄框圖如下:

3HMI標(biāo)簽在VBA中的引用

在SE中建立標(biāo)志有效操作的HMI標(biāo)簽,而在SE的VBA中,我們要想引用標(biāo)簽,需要先創(chuàng)建標(biāo)簽組,標(biāo)簽組是一組標(biāo)簽的集合體。然后將本地HMI標(biāo)簽加入標(biāo)簽組,之后通過集合訪問的方式引用標(biāo)簽組中的標(biāo)簽[1]。需要注意的是,SE中的標(biāo)簽類型并不是變量而是對象,我們需要用標(biāo)簽對象而不是普通變量去引用標(biāo)簽組中的單個(gè)標(biāo)簽。而且當(dāng)一個(gè)運(yùn)行時(shí)錯(cuò)誤發(fā)生時(shí),控件轉(zhuǎn)到緊接著發(fā)生錯(cuò)誤的語句之后的語句,并在此繼續(xù)運(yùn)行而不是退出。

4數(shù)據(jù)庫的鏈接與操作

操作數(shù)據(jù)與當(dāng)前用戶的匹配是利用SQL Server數(shù)據(jù)庫中的動(dòng)態(tài)表完成的,由操作數(shù)據(jù)標(biāo)簽的上升沿觸發(fā)數(shù)據(jù)記錄,并將匹配的標(biāo)簽描述與當(dāng)前用戶記錄到數(shù)據(jù)表中。

在SQL Server中新建SX_bdz數(shù)據(jù)庫,之后在SX_bdz下新建CmdTable表。數(shù)據(jù)表的數(shù)據(jù)類型與結(jié)構(gòu)如下表所示:

SE通過VBA與數(shù)據(jù)庫建立鏈接后,就可以把數(shù)據(jù)按表的形式存儲(chǔ)到數(shù)據(jù)庫中,ADO是微軟公司提供的一個(gè)用于存取數(shù)據(jù)源的COM組件。它提供了編程語言和統(tǒng)一數(shù)據(jù)訪問方式OLE DB的一個(gè)中間層,允許開發(fā)人員編寫訪問數(shù)據(jù)的代碼而不用關(guān)心數(shù)據(jù)庫是如何實(shí)現(xiàn)的,而只用關(guān)心到數(shù)據(jù)庫的鏈接[2]。在VBA編輯器中選擇“工具”之后點(diǎn)擊“引用”在彈出的對話框中“Microsoft ActiveX Data Objects *.*”、“Microsoft SQL Server Data Conversion Transform*.* Tape Library(其中*.*號代表版本號,選擇最新版本即可)[4]。編寫程序創(chuàng)建ADO的Connection對象建立與數(shù)據(jù)庫的鏈接。

5實(shí)現(xiàn)過程

以三峽升船機(jī)變電站10KV系統(tǒng)的雙用戶身份驗(yàn)證控制分合閘操作為例,闡述SE利用VBA實(shí)現(xiàn)操作數(shù)據(jù)的多用戶記錄過程。三峽升船機(jī)變電站10KV系統(tǒng)開關(guān)柜分合閘操作需要同時(shí)驗(yàn)證操作員與監(jiān)護(hù)人的身份,利用SE自帶的數(shù)據(jù)記錄模型無法將操作數(shù)據(jù)與用戶信息完整的記錄到數(shù)據(jù)庫中。

5.1用戶的創(chuàng)建與引用

在FactoryTalk View SE單機(jī)開發(fā)系統(tǒng)左側(cè)瀏覽視圖中雙擊System文件夾,通過User 新建操作員用戶op1、op2和監(jiān)護(hù)人用戶mon1、mon2,用于分合閘操作時(shí)的身份確認(rèn)。在SE中新建HMI標(biāo)簽SE\\user,用于存儲(chǔ)用戶信息;新建HMI標(biāo)簽SE\\QR\\OP,用于操作員身份確認(rèn)標(biāo)志;新建HMI標(biāo)簽SE\\QR\\MON,用于監(jiān)護(hù)人身份確認(rèn)標(biāo)志。

5.2操作與記錄

用戶的操作需要有相應(yīng)的人機(jī)交互接口,利用FactoryTalk View SE組態(tài)軟件開發(fā)分合閘控制人機(jī)交互畫面。用戶在分合閘控制畫面下發(fā)控制指令,SE控制畫面彈出操作員確認(rèn)對話框,待驗(yàn)證操作員身份后提示操作員是否確認(rèn)當(dāng)前操作,當(dāng)操作員確認(rèn)操作后,操作員的當(dāng)前用戶信息暫時(shí)緩存在SE\\user標(biāo)簽內(nèi),代碼如下:

VBA代碼的實(shí)現(xiàn)是在畫面下加載的,當(dāng)畫面被關(guān)閉時(shí),要及時(shí)釋放標(biāo)簽組里的數(shù)據(jù)。通過上述方案既可以實(shí)現(xiàn)將操作記錄數(shù)據(jù)以及用戶信息記錄到SQL server數(shù)據(jù)庫中,然后生成報(bào)表,實(shí)現(xiàn)數(shù)據(jù)的查詢與打印。數(shù)據(jù)記錄結(jié)果如下圖所示:

6結(jié)束語

FactoryTalk View SE自帶的數(shù)據(jù)記錄模型,無論是文件集還是ODBC數(shù)據(jù)源的格式,都無法記錄SE的操作用戶信息,而且生成表的格式是固定且不可改變的。本文較詳細(xì)地論述了通過SE內(nèi)嵌的VBA將控制操作數(shù)據(jù)以及用戶信息記錄到了SQL Server數(shù)據(jù)庫中的方法,為記錄FactoryTalk View SE用戶信息提供了一種有益的方案。

參考文獻(xiàn)

[1]Factory Talk View SE 用戶手冊,美國AB公司.

[2]牛正光,張五一,王東云.用VBA在RSView32中實(shí)現(xiàn)報(bào)表的方法[J].中原工學(xué)院學(xué)報(bào),2008,19(4):6-10.

[3]趙井文,蔣騰旭,Visual Basic 程序設(shè)計(jì)案例教程[M].北京:北京交通大學(xué)出版社,2007.

[4]孫云輝,謝輝輝,王挺.Factory Talk View SE 組態(tài)環(huán)境下報(bào)表系統(tǒng)的開發(fā)[J].制造業(yè)自動(dòng)化,2011,33(4):4-9.

猜你喜歡
多用戶數(shù)據(jù)庫
安泰科多用戶報(bào)告訂閱單
安泰科多用戶報(bào)告訂閱單
安泰科多用戶報(bào)告訂閱單
安泰科多用戶報(bào)告訂閱單
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
沛县| 保山市| 南和县| 鄢陵县| 灵石县| 尼勒克县| 宜昌市| 清河县| 蕲春县| 南宫市| 封开县| 吴忠市| 兴国县| 宁都县| 蕲春县| 沙洋县| 成都市| 吕梁市| 江城| 上虞市| 建宁县| 同江市| 安图县| 比如县| 保康县| 社会| 西昌市| 如东县| 富川| 渝中区| 呼伦贝尔市| 辽源市| 浪卡子县| 余姚市| 宁南县| 通道| 盖州市| 东辽县| 淮阳县| 普宁市| 武城县|