亚洲免费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)用
        无套内谢的新婚少妇国语播放| 在线观看国产成人自拍视频| 久久国产精品一国产精品金尊| 一边吃奶一边摸做爽视频| 少妇被又大又粗又爽毛片| 无码人妻一区二区三区在线视频| 国产一极毛片| 丰满少妇一区二区三区专区| 91精品国产一区国产二区久久| 乱色精品无码一区二区国产盗| 精品国产18久久久久久| 亚州AV成人无码久久精品| 国产免费人成视频在线观看播放播 | 无码精品人妻一区二区三区影院| 亚洲饱满人妻视频| 一区二区三区婷婷中文字幕| 中文字幕高清不卡视频二区| 亚洲国产精品久久电影欧美| 欧美性群另类交| 亚洲av一区二区国产精品| 亚洲激情一区二区三区不卡| 日本肥老妇色xxxxx日本老妇| 中文字幕av在线一二三区| 一本色道久久综合亚洲精品蜜臀| 开心久久婷婷综合中文字幕 | 精品一区二区三区蜜桃麻豆| 天天做天天爱天天综合网2021| 老熟妻内射精品一区| 极品诱惑一区二区三区| 国产在线观看女主播户外| 欧美成人精品a∨在线观看 | a级毛片成人网站免费看 | 一本色道久久88—综合亚洲精品| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲av无码专区亚洲av伊甸园| 少妇高潮喷水久久久影院| 按摩师玩弄少妇到高潮hd| 久久亚洲免费精品视频| 久久综合九色综合久99| 亚洲色图+国产精品| 青青草免费在线视频导航|