• <blockquote id="fficu"><optgroup id="fficu"></optgroup></blockquote>

    <table id="fficu"></table>

    <sup id="fficu"></sup>
    <output id="fficu"></output>
    1. 20240703
      關(guān)注中國自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
      工業(yè)智能邊緣計算2024年會(huì )
      2024
      2024中國自動(dòng)化產(chǎn)業(yè)年會(huì )
      2023年工業(yè)安全大會(huì )
      OICT公益講堂
      當前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

      案例頻道

      WinCC報表中的自動(dòng)倒班功能實(shí)現
      • 企業(yè):《自動(dòng)化博覽》     領(lǐng)域:自動(dòng)化軟件     行業(yè):礦業(yè)    
      • 點(diǎn)擊數:5680     發(fā)布時(shí)間:2011-12-07 17:05:56
      • 分享到:
      本文表述了WinCC中實(shí)現自動(dòng)倒班管理及切換的實(shí)現方法,可以應用于需要倒班及班報表的WinCC報表系統。關(guān)鍵詞:WinCC;報表;倒班;班報表

          摘要:本文表述了WinCC中實(shí)現自動(dòng)倒班管理及切換的實(shí)現方法,可以應用于需要倒班及班報表的WinCC報表系統。關(guān)鍵詞:WinCC;報表;倒班;班報表

          1 引言

          在使用WinCC實(shí)現的自定義報表系統中,因為生產(chǎn)管理的需要,報表需要做到按班報表,即班報表。在《鍋爐自動(dòng)抄表系統實(shí)現——一種WinCC實(shí)現自定義報表的方法》一文中,作者曾經(jīng)簡(jiǎn)略提到的實(shí)現班組信息管理的方法,即使用WinCC的用戶(hù)管理器,值班班組在完成交接班時(shí),則用自己班組的賬戶(hù)登錄,而值班期間的運行數據連同帳號信息則會(huì )被同步存入數據庫,在進(jìn)行報表查詢(xún)時(shí),以相應的賬戶(hù)名稱(chēng)作為過(guò)濾條件,則可以查詢(xún)得到相應的班組工作報表。

          文中介紹的上述思路確實(shí)很容易實(shí)現,不需要編程工作就可以達到目的。從簡(jiǎn)單應用來(lái)說(shuō)很實(shí)用,但細究下來(lái)存在的缺陷也很明顯:

          (1)過(guò)于依賴(lài)于人工操作過(guò)程。班組在交接班的同時(shí),必須在電腦終端準時(shí)進(jìn)行登錄用戶(hù)的切換。如果一次忙亂疏忽,交班班組未注銷(xiāo),接班班組帳號也未登錄,那么就會(huì )產(chǎn)生數據記錄的混亂,在最終報表中這種混亂也會(huì )體現出來(lái)。

          (2)影響正常的用戶(hù)權限管理。如果在生產(chǎn)過(guò)程中,需要 對不同級別的用戶(hù)有不同的權限區分,不同用戶(hù)在登錄時(shí)需要使用各自的用戶(hù)帳號,雖然可以每個(gè)用戶(hù)名名稱(chēng)可以用班組名作為前綴表示, 但仍不可避免會(huì )帶來(lái)影響。比如登錄帳戶(hù)切換失敗,管理員帳戶(hù)登錄等。

          (3)擴展到多臺WinCC工作站困難。

          (4)擁有報表功能的程序,如果要從單機運行擴展到實(shí)現C/S結構及冗余架構的多用戶(hù)程序時(shí),這種登錄用戶(hù)的標記方式也帶來(lái)混亂。

         針對此問(wèn)題,本文提出了在WinCC程序中實(shí)現自動(dòng)倒班管理的實(shí)現方法。而我們在做工程項目時(shí),是不可能按照一種固定的倒班模式去做編程實(shí)現的。首先,你在設計階段不可能準確了解到工廠(chǎng)的倒班規劃,并且一個(gè)公司隨著(zhù)運行階段不同,也有可能對倒班方案及作息時(shí)間進(jìn)行調整。況且,針對每種不同的倒班規劃單獨做系統設計,除工作量極大以外,可重復利用性也太差。所以我們必須做出一種能夠自動(dòng)適應各種不同倒班規劃的自動(dòng)倒班系統。

          分析倒班管理問(wèn)題,其實(shí)包含了兩個(gè)方面:

          (1)作息制度

          每天24個(gè)小時(shí),分成幾個(gè)不同的輪值時(shí)間段,即平常說(shuō)的白班、中班、夜班等具體的上下班時(shí)間。對于不是24小時(shí)滿(mǎn)運轉的工廠(chǎng),應該還有停產(chǎn)的時(shí)間段,都應該是屬于作息制度的范疇。而具體時(shí)間段上白班、夜班的稱(chēng)謂也有所不同,主要依循各行業(yè)的習慣定義。

          (2)倒班計劃

          視行業(yè)不同,勞動(dòng)強度不同,與每日運轉班次數量對應的班組數量為基礎,再加上若干個(gè)調休班組構成整個(gè)值班的班組團隊。比如每日三個(gè)運轉班次,加上兩個(gè)輪休班次構成五班三運轉的體系。然后還根據環(huán)境和習慣,約定的每過(guò)一定時(shí)間段,比如2天到一周,進(jìn)行一次倒班的輪轉。每個(gè)班組會(huì )有一個(gè)固定的代號名稱(chēng), 如A、B、C、D、E或者中文序列的甲、乙、丙、丁等。

          2 WinCC中的實(shí)現

          首先,在WinCC中進(jìn)入用戶(hù)歸檔,建立名為T(mén)imeRule(作息時(shí)間表)的歸檔,并在其中依次建立域Shift(班次號),Name(班次名稱(chēng)),StartTime (上班時(shí)間),EndTime(下班時(shí)間),其中上班時(shí)間與下班時(shí)間的格式建立時(shí)選擇“文本”格式,建立完成后回過(guò)來(lái)修改為日期/時(shí)間格式,如圖1所示。因為對歸檔的訪(fǎng)問(wèn)均將通過(guò)數據庫手段實(shí)現,所以歸檔的類(lèi)型選擇為無(wú)通訊,建立的各個(gè)域也不綁定WinCC變量。
                 
                            
           
                                        圖1  WniCC  中用戶(hù)歸檔圖   

          這樣就建立了作息時(shí)間表的空模板,可以在用戶(hù)歸檔的模塊中,通過(guò)修改運行狀態(tài)數據的方式,將一套真正的時(shí)間表輸入,也可以在運行中在運行界面上由客戶(hù)來(lái)操作輸入和修改,如圖2所示。
            
                        
       
                                                  圖2  運行界面  

          然后同樣在用戶(hù)歸檔中建立倒班計劃的模板:建立名為Rota的歸檔,名稱(chēng)為“倒班計劃”。在歸檔中依次建立域:ThisDay(日期)以及Shift_1,2,3,4,5,6最多可以容許一天內設置6個(gè)值班班次。在正常小于6個(gè)班次的情況下,多余的班次作為備用或標注休班班次。而如果特殊場(chǎng)合超過(guò)6個(gè),則需要在設計狀態(tài)修改模板。MARK域為備用,可用于標注備注信息等,程序中無(wú)用,如圖3所示。
                      
                          
                                                 圖3  倒班計劃模板

          倒班計劃模板的歸檔Rota同樣不需要WinCC變量接口,類(lèi)型為“無(wú)通訊”由于倒班計劃模板中的倒次定義Shift_1等為固定的所以在前面的作息時(shí)間表中定義時(shí)必須同樣的格式。

          在WinCC項目中建立一個(gè)倒班計劃管理的畫(huà)面,ShiftPlan.pdl,畫(huà)面中放置兩個(gè)UA控件,分別指向上述兩個(gè)歸檔,作為用戶(hù)使用期間的接口,可以設計調整作息時(shí)間,更重要的是必須定期根據生產(chǎn)的調度安排,將將來(lái)一段時(shí)期的倒班計劃輸入到系統中。畫(huà)面運行以后如圖4所示。
                  
                          
              
                                              圖4     倒班計劃管理畫(huà)面  

          運行中,用戶(hù)層面需要注意的事項:

           (1)班組作息時(shí)間表如需改動(dòng),需在改動(dòng)當天完成,當場(chǎng)生效,不能預約。如不能接受改動(dòng)時(shí)刻帶來(lái)的混亂,應當增加手動(dòng)倒班的機制,在改動(dòng)時(shí)間表期間關(guān)閉自動(dòng)倒班切換。

          (2)時(shí)間表中的時(shí)間可以有盲區,但不可以有重疊。

          (3)如有盲區,即無(wú)人值班的狀態(tài),如果WinCC在運行中,查詢(xún)到的當前班次和當值班組都為空,系統中用NN表示。

          (4)如需要有重疊,即某個(gè)時(shí)間段需要有2個(gè)班組同時(shí)當值,則重疊部分必須切開(kāi)定義為一個(gè)單獨的班次,然后在倒班計劃中通過(guò)定義2個(gè)當值班組實(shí)現搭接。

          (5)由于語(yǔ)法限制,一天中的最晚時(shí)間以23:59:59表示。

         (6)如班次計劃需要跨0點(diǎn)值班,則需要將這兩部分班次定義切開(kāi)為2段,然后在倒班計劃表中,相鄰的2天中的相應班次中指定同一個(gè)當值班組。系統運行中,不會(huì )出現班組換班的提示。

         (7)倒班計劃表中的數據有過(guò)期計劃與未來(lái)計劃,可以通過(guò)選擇框,實(shí)現過(guò)濾顯示。

         (8)用戶(hù)可以手動(dòng)輸入編輯方式輸入新的計劃安排及刪除舊的過(guò)期計劃。

         (9)用戶(hù)也可以用導入數據的方法,先在EXCEL中建立新的倒班計劃表,用CSV文件格式保存,然后導入到WinCC中。具體的數據格式可以先在UA中導出數據,然后按照格式編輯即可。之后,最重要的是腳本編程,用全局腳本或者啟動(dòng)畫(huà)面的屬性中建立循環(huán)腳本,每秒執行一次查詢(xún),讀取當前時(shí)間對應的班次,以及當天相應班次所對應的輪值的班組。

          本文的實(shí)現是在主畫(huà)面中放置一個(gè)空白的子窗口,子窗口中調用畫(huà)面shiftwork.pdl,而shiftwork畫(huà)面的顯示屬性中編制VBS腳本如下:  

          Function Visible_Trigger(ByVal Item)

          On Error Resume Next

          '為提前進(jìn)行自動(dòng)換班,將表調前15S

          Dim S

          S=DateAdd("S",15,Now)

          Dim T5m

          T5m=Split( SQLTimeFormat(S)," ",-1,1)

          Dim HH

          '每30分鐘執行一次值班判斷

          'HH=Minute(T5m(1))\30

          HH=Minute(T5m(1))

          HMIRuntime.Trace vbCrLf & "time15s="& T5m(0) & " " & T5m(1)& " HH=" & HH

               If HMIRuntime.Tags("HalfHour").read(0) <> HH Then
      '
                       HMIRuntime.Trace vbCrLf & "on 30min"

                       Dim ShiftName

                        ShiftName=Split( GetShiftName(T5m(1)),",",-1,1)  

                Dim Turn

                Turn=GetTurn(T5m(0),ShiftName(0))

                If Turn<>HMIRuntime.Tags("班次").read(0) Then

                HMIRuntime.Tags("班次").Write Turn

                MsgBox ("到換班時(shí)間了,下一個(gè)班次:" & ShiftName(0)&

                "/"&ShiftName(1) & vbCrLf & "當值班組為:" & Turn)

                End If

                 ' HMIRuntime.Trace vbCrLf & "30min end "

                End If

                HMIRuntime.Tags("HalfHour").Write HH

                End Function  

          運行思路:

          (1)腳本每1S運行一次,每次運行檢查當前時(shí)間,但為減少系統負擔,每30分鐘進(jìn)行班組運行狀態(tài)查詢(xún),其它時(shí)候均跳過(guò)。

          (2)為保證換班時(shí)整點(diǎn)時(shí)刻記錄的報表中班組信息為接班班組,將系統時(shí)間加15S,進(jìn)行查詢(xún),即電腦中提前15S提醒換班。

          (3)GetShiftName函數得到了當前時(shí)間應對應的班次代號和名稱(chēng),GetTurn函數查詢(xún)了當前日期指定班次對應的當值班組。如和當前班次變量不同,則說(shuō)明到了換班時(shí)間切換到當值班組,并對話(huà)框提示,如圖5所示。
                  
                               
                                           圖5    換班時(shí)間對話(huà)框
       
         3 結論

          通過(guò)UA中的數據庫管理功能,實(shí)現了倒班管理,并實(shí)現自動(dòng)倒班切換。

          本文實(shí)現的過(guò)程是結合《萬(wàn)泉河WinCC完美報表例程V2.0》的升級過(guò)程實(shí)現的。對例程感興趣的讀者可以從網(wǎng)絡(luò )上搜索關(guān)鍵字“萬(wàn)泉河”“WinCC”“完美報表”等搜索到更多信息。

            完美報表例程V2的升級內容,除了自動(dòng)倒班功能之外,還增加了EXCEL格式的導出功能。能夠將自定義報表的內容直接輸出到EXCEL格式的文件,文件格式用模板已設置好,生成后即可以直接打印。  

         摘自《自動(dòng)化博覽》2011年第十一期

      熱點(diǎn)新聞

      推薦產(chǎn)品

      x
      • 在線(xiàn)反饋
      1.我有以下需求:



      2.詳細的需求:
      姓名:
      單位:
      電話(huà):
      郵件:
      欧美精品欧美人与动人物牲交_日韩乱码人妻无码中文_国产私拍大尺度在线视频_亚洲男人综合久久综合天

    2. <blockquote id="fficu"><optgroup id="fficu"></optgroup></blockquote>

      <table id="fficu"></table>

      <sup id="fficu"></sup>
      <output id="fficu"></output>