亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        FactoryTalk View SE中實現(xiàn)Access數(shù)據(jù)庫記錄與查詢

        2015-10-12 09:46:24卓盛杰王博強天津賽象科技股份有限公司天津300384
        橡塑技術(shù)與裝備 2015年17期
        關(guān)鍵詞:報表組態(tài)表格

        卓盛杰,王博強(天津賽象科技股份有限公司,天津 300384)

        FactoryTalk View SE中實現(xiàn)Access數(shù)據(jù)庫記錄與查詢

        卓盛杰,王博強
        (天津賽象科技股份有限公司,天津 300384)

        FactoryTalk View SE是Rockwell Automation公司推出的監(jiān)控組態(tài)軟件,它可以用映射工廠和過程的方式來分配應(yīng)用項目的各個部分,在數(shù)據(jù)監(jiān)控,畫面顯示等方面具有強大的功能,然而在數(shù)據(jù)報表、處理方面卻表現(xiàn)出弱點。利用其內(nèi)嵌的VBA可以擴展軟件功能。本文結(jié)合FactoryTalk View SE內(nèi)嵌的VBA,調(diào)用事先做好的Excel表格,讀取軟件通過ODBC接口記錄到Access中的數(shù)據(jù),然后生成報表。

        數(shù)據(jù)庫;報表;Excel;VBA;FactoryTalk View SE;Access

        FactoryTalk View Supervisory Edition是Rockwell Automation公司組態(tài)軟件,是與公司自動化產(chǎn)品結(jié)合最佳的可視化軟件產(chǎn)品,提供了強大的數(shù)據(jù)監(jiān)控能力,方便用戶進行上位機的畫面組態(tài)。FactoryTalk View SE內(nèi)嵌VBA,它為自定義及擴展FactoryTalk View SE功能提供了完整的開發(fā)環(huán)境。

        現(xiàn)在愈來愈多的輪胎生產(chǎn)企業(yè)為了保證產(chǎn)品的質(zhì)量而要求對擠出生產(chǎn)線的一些重要的數(shù)據(jù)參數(shù)進行保存與查詢而FactoryTalk View SE和其他組態(tài)軟件一樣,本身報表生成、處理能力比較弱。為了實現(xiàn)數(shù)據(jù)記錄與報表查詢功能,本文使用FactoryTalk View SE內(nèi)嵌的VBA,與Access、Excel相結(jié)合,利用Access的數(shù)據(jù)記錄功能與Excel強大制表功能,實現(xiàn)數(shù)據(jù)記錄以及報表查詢功能。

        1 實現(xiàn)原理

        通過日志模型設(shè)置,F(xiàn)actoryTalk View SE從PLC采集實時數(shù)據(jù),通過ODBC接口存儲到Access數(shù)據(jù)庫中,利用FactoryTalk View SE內(nèi)嵌的VBA開發(fā),訪問Access數(shù)據(jù)庫,調(diào)用Excel,將Access數(shù)據(jù)庫中的數(shù)據(jù)讀取到Excel中,在進行處理,形成報表。系統(tǒng)解決方案框圖如圖1所示。

        圖1 報表解決方案框圖

        2 Excel對象模型

        Excel對象封裝了Microsoft Excel的全部元素,利用Excel對象提供的屬性、方法和事件,就可以在應(yīng)用程序中生成Excel報表。

        Excel對象模型描述了Excel對象之間的結(jié)構(gòu)關(guān)系,如圖2所示。

        (1)Application對象

        圖2 Excel對象模型

        Application對 象 表 示Excel應(yīng) 用 程 序, 在Excel 讀象模型中該對象處于模型的頂端,通過使用Application對象可以訪問模型中其他對象,從而控制Excel應(yīng)用程序的外觀和功能。

        (2)Workbook對象

        Workbook對象表示Excel中的工作簿,即對應(yīng)一個Excel文件,通過使用Workbook對象就可以實現(xiàn)對Excel工作簿的各種控制。

        (3)Worksheet對象

        Worksheet對象表示Excel中的工作表,通過使用Worksheet對象就可以實現(xiàn)對Excel工作表中的各種控制。

        (4)Range對象

        Range對象表示Excel中的區(qū)間,可以表示Excel中的單元格、幾個單元格、行、列或一個選中的區(qū)域,使用Range對象可以實現(xiàn)對Excel單元格或選中區(qū)域的各種操作。

        3 應(yīng)用實例

        通過讀取標簽中的單條秤重量、連續(xù)秤重量、測寬1、測寬2、一線設(shè)定速度、二線設(shè)定速度、一線實際速度、二線實際速度、收縮比、裁斷長度設(shè)定值,在報表中體現(xiàn)出記錄日期和數(shù)值。下面將具體介紹如何實現(xiàn)報表。

        (1)將Excel、Access對象庫加載到當前VBA程序中

        為了能夠在程序中調(diào)用Access數(shù)據(jù)庫以及Excel對象,為Access與Excel連接、互相嵌入使用做準備,必須在VBA程序中加載Excel、Access對象庫。在VBA編程環(huán)境下,單擊“Tools”菜單中的“Reference”命令,在彈出的對話框、中選中Microsoft Access 11.0 Object Library和 Microsoft Excel 11.0 Object Library兩項,點擊“確定”后退出,這樣就完成了Excel、Access對象庫在VBA程序中的加載。

        (2)創(chuàng)建Access數(shù)據(jù)庫

        創(chuàng)建記錄用Access數(shù)據(jù)庫,分別命名好如下字段:編號、日期、時間、單條秤重量、連續(xù)秤重量、測寬1、測寬2、一線設(shè)定速度、二線設(shè)定速度、一線實際速度、二線實際速度、收縮比、裁斷長度設(shè)定值。

        (3)讀取數(shù)據(jù)庫實際地址

        打開管理工具中的數(shù)據(jù)源(ODBC),在系統(tǒng)DSN選項卡中添加數(shù)據(jù)庫驅(qū)動,鏈接創(chuàng)建好的數(shù)據(jù)庫。

        (4)在FactoryTalk View中編寫代碼,將PLC數(shù)據(jù)寫入Access數(shù)據(jù)庫中

        為了將我們需要記錄的PLC數(shù)據(jù)寫入數(shù)據(jù)庫中,需要將FactoryTalk View中的標簽與VB代碼中聲明的變量對接,這樣才能將我們想要記錄的PLC數(shù)據(jù)寫入Access數(shù)據(jù)庫中,如圖3所示。

        圖3 PLC數(shù)據(jù)寫入Access數(shù)據(jù)庫示意圖

        編寫代碼如下:

        Private OTag As Tag

        Private O1Tag As Tag

        Private O2Tag As Tag

        Private O3Tag As Tag

        Private O4Tag As Tag

        Private O5Tag As Tag

        Private O6Tag As Tag

        Private O7Tag As Tag

        Private O8Tag As Tag

        Private O9Tag As Tag

        Private O10Tag As Tag

        Private WithEvents OtagG As TagGroup

        Private Conn As New ADODB.Connection

        Private Rs As New ADODB.Recordset

        Private Sub Display_AnimationStart()

        聲明標簽變量

        On Error Resume Next

        Set OtagG = CreateTagGroup(Me.AreaName)

        OtagG.Add ("SampleTime")

        OtagG.Add ("Weight1")

        OtagG.Add ("Weight2")

        OtagG.Add ("Width1")

        OtagG.Add ("Width2")

        OtagG.Add ("Line1Speed_Preset")

        OtagG.Add ("Line2Speed_Preset")

        OtagG.Add ("Line1Speed_Actual")

        OtagG.Add ("Line2Speed_Actual")

        OtagG.Add ("ShrinkRatio")

        OtagG.Add ("CutLength_Preset")

        將標簽變量與FactoryTalk View中的標簽對接

        Set OTag = OtagG.Item(1)

        Set O1Tag = OtagG.Item(2)

        Set O2Tag = OtagG.Item(3)

        Set O3Tag = OtagG.Item(4)

        Set O4Tag = OtagG.Item(5)

        Set O5Tag = OtagG.Item(6)

        Set O6Tag = OtagG.Item(7)

        Set O7Tag = OtagG.Item(8)

        Set O8Tag = OtagG.Item(9)

        Set O9Tag = OtagG.Item(10)

        Set O10Tag = OtagG.Item(11)

        OtagG.Active = True

        Conn.ConnectionString = "DSN=GZTM"

        Conn.Open

        End Sub

        Private Sub Display_BeforeAnimationStop() Conn.Close

        Set Conn = Nothing

        Set OTag = Nothing

        Set O1Tag = Nothing

        Set O2Tag = Nothing

        Set O3Tag = Nothing

        Set O4Tag = Nothing

        Set O5Tag = Nothing

        Set O6Tag = Nothing

        Set O7Tag = Nothing

        Set O8Tag = Nothing

        Set O9Tag = Nothing

        Set O10Tag = Nothing

        Set OtagG = Nothing

        End Sub

        Private Sub OtagG_Change(ByVal TagNames As IGOMStringList)

        On Error Resume Next

        Conn.Execute "insert into [GZTM] ([日期 ],[時間],[單條秤重量],[連續(xù)秤重量],[測寬1],[測寬2],[一線設(shè)定速度],[二線設(shè)定速度],[一線實際速度],[二線實際速度],[收縮比],[裁斷長度設(shè)定值])values('" & Date & "','" & Time() & "'," & O1Tag.Value & ",'" & O2Tag.Value & "'," & O3Tag.Value & ",'" & O4Tag.Value & "'," & O5Tag.Value & ",'" & O6Tag.Value & "'," & O7Tag.Value & ",'" & O8Tag.Value & "'," & O9Tag.Value & ",'" & O10Tag.Value & "')"

        插入數(shù)據(jù)庫字段名,以及對應(yīng)的標簽變量。

        End Sub

        (5)創(chuàng)建Excel表格

        為了使用Excel查詢Access數(shù)據(jù)庫生成報表,必須事先建立Excel表格,新建一個Excel文件用以存儲從Access數(shù)據(jù)庫中讀取的數(shù)據(jù),并使用VB代碼建立查詢模塊將Access數(shù)據(jù)庫中的記錄按照日期查詢條件寫入表格,從而形成我們所需要的報表。下面的VBA程序語句實現(xiàn)了在Excel中導入Access數(shù)據(jù)庫記錄的方法。

        Public Sub QueryFun()

        聲明模塊

        Dim date1 As String, date2 As String

        date1 = Worksheets("condition").Cells(2, 1).Value

        date2 = Worksheets("condition").Cells(2, 2).Value

        讀取日期條件

        Worksheets("results").Select

        Worksheets("results").Cells.Select

        Selection.ClearContents

        With Worksheets("results").QueryTables. Add(Connection:=Array(Array( _

        "O D B C;D S N=G Z T M;D B Q=C:G Z T M. mdb;DriverId=2" _

        ), Array("5;FIL=MS Access;MaxBufferSize=204 8;PageTimeout=5;")), Destination:= _

        Range("A1"))

        .CommandText = Array("SELECT GZTM.編號,GZTM.日期,GZTM.時間,GZTM.單條秤重量,GZTM.連續(xù)秤重量,GZTM.測寬1,GZTM.測寬2,GZTM.一線設(shè)定速度,GZTM.二線設(shè)定速度,GZTM.一線實際速度, GZTM.二線實際速度, GZTM.收縮比,GZTM.裁斷長度設(shè)定值" & Chr(13) & "" & Chr(10) & "FROM GZTM" & _

        " where (日期 >= #" & date1 & " 00:00:00# and日期 <= #" & date2 & " 23:59:59#)")

        .Name = "查詢來自 SE_Data"

        寫入從Access查詢的數(shù)據(jù)

        .FieldNames = True

        .RowNumbers = False

        .FillAdjacentFormulas = False

        .PreserveFormatting = True

        .RefreshOnFileOpen = False

        .BackgroundQuery = True

        .RefreshStyle = xlInsertDeleteCells

        .SavePassword = False

        .SaveData = True

        .AdjustColumnWidth = True

        .RefreshPeriod = 0

        .PreserveColumnInfo = True

        .Refresh BackgroundQuery:=False

        End With

        Worksheets("results").Range("A1").Select

        End Sub

        寫好代碼后在條件工作表中調(diào)用。

        在查詢條件工作簿添加按鈕以及如下代碼:

        Private Sub CommandButton1_Click()

        Call QueryFun

        End Sub

        可以使按鈕調(diào)用之前編寫的模塊。

        (6)在FactoryTalk View SE項目中查詢報表

        為了在FactoryTalk View SE項目中查詢報表,我們需要建立一個查詢報表按鈕,可以使全局按鈕,也可以在任意畫面新建按鈕。然后使用AppStart命令,并在參數(shù)中定義Excel的執(zhí)行程序路徑以及之前建立好的查詢表格路徑。這樣就可以卓盛杰直接打開之前創(chuàng)建好的查詢表格,并通過表格查詢想要的時間段的記錄數(shù)據(jù)了。

        4 結(jié)論

        與大部分組態(tài)軟件相似,F(xiàn)actoryTalk View SE在數(shù)據(jù)監(jiān)控、畫面組態(tài)功能較強,但在報表生成、處理能力較弱。此方法實現(xiàn)復雜的生產(chǎn)報表,開發(fā)周期短,可操作性強,完全滿足工業(yè)的生產(chǎn)要求,在此基礎(chǔ)上,完全可實現(xiàn)班報、周報、月報、年報等。

        Access database records and query implemented in FactoryTalk View SE

        TQ330.493

        1009-797X(2015)17-0044-04

        B DOI:10.13520/j.cnki.rpte.2015.17.012

        卓盛杰,自2006年起進入賽象科技股份有限公司工作,在2010年正式開始負責調(diào)試擠出聯(lián)動線,對擠出聯(lián)動線有比較深刻的認識。

        2015-04-21

        猜你喜歡
        報表組態(tài)表格
        《現(xiàn)代臨床醫(yī)學》來稿表格要求
        基于PLC及組態(tài)技術(shù)的恒溫控制系統(tǒng)開發(fā)探討
        統(tǒng)計表格的要求
        統(tǒng)計表格的要求
        統(tǒng)計表格的要求
        LabWindows/CVI中Excel報表技術(shù)研究
        從三大報表讀懂養(yǎng)豬人的成績單
        基于PLC和組態(tài)的智能電動擰緊系統(tǒng)
        PLC組態(tài)控制在水箱控制系統(tǒng)的應(yīng)用
        鑄造行業(yè)三維組態(tài)軟件的應(yīng)用
        h在线国产| 日韩视频午夜在线观看| 精品国产一区二区三区a| 欧洲美女熟乱av| 中文天堂国产最新| 伊人久久综合精品无码av专区| 波多野结衣中文字幕在线视频| 中年人妻丰满AV无码久久不卡| 亚洲中文字幕熟女五十| 神马影院日本一区二区| 无码国产精品一区二区免费式直播| 男女真实有遮挡xx00动态图| 久久亚洲一级av一片| 久久av粉嫩一区二区| 九九九免费观看视频| 东北老女人高潮疯狂过瘾对白| 亚洲一区二区三区av链接| 精品人妻av一区二区三区不卡| 性感美女脱内裤无遮挡| 无码免费无线观看在线视| 亚洲国产美女精品久久久 | 精品久久一区二区av| 曰批免费视频播放免费| 中国丰满熟妇av| 国产一区二区三区国产精品| 日本最新一区二区三区视频| 97成人精品在线视频| 所有视频在线观看免费 | 美女免费观看一区二区三区| 国产福利永久在线视频无毒不卡| 亚洲国产无线乱码在线观看 | 亚洲av综合色区无码一二三区| 99久久久精品免费| 五月婷婷开心五月激情| 玩弄丰满奶水的女邻居| 在线视频制服丝袜中文字幕| 国产少妇一区二区三区| 在线视频夫妻内射| 国产午夜福利精品久久2021| 国产精品一区二区av白丝在线| 男女裸体做爰视频高清|