久久久91-久久久91精品国产一区二区-久久久91精品国产一区二区三区-久久久999国产精品-久久久999久久久精品

ABB
關(guān)注中國(guó)自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
CAIAC 2025
2025工業(yè)安全大會(huì)
OICT公益講堂
當(dāng)前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

案例頻道

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

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

    1 引言

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

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

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

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

    (3)擴(kuò)展到多臺(tái)WinCC工作站困難。

    (4)擁有報(bào)表功能的程序,如果要從單機(jī)運(yùn)行擴(kuò)展到實(shí)現(xiàn)C/S結(jié)構(gòu)及冗余架構(gòu)的多用戶程序時(shí),這種登錄用戶的標(biāo)記方式也帶來(lái)混亂。

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

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

    (1)作息制度

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

    (2)倒班計(jì)劃

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

    2 WinCC中的實(shí)現(xiàn)

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

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

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

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

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

    運(yùn)行中,用戶層面需要注意的事項(xiàng):

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

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

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

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

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

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

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

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

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

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

    Function Visible_Trigger(ByVal Item)

    On Error Resume Next

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

    Dim S

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

    Dim T5m

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

    Dim HH

    '每30分鐘執(zhí)行一次值班判斷

    '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 & "當(dāng)值班組為:" & Turn)

          End If

           ' HMIRuntime.Trace vbCrLf & "30min end "

          End If

          HMIRuntime.Tags("HalfHour").Write HH

          End Function  

    運(yùn)行思路:

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

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

    (3)GetShiftName函數(shù)得到了當(dāng)前時(shí)間應(yīng)對(duì)應(yīng)的班次代號(hào)和名稱,GetTurn函數(shù)查詢了當(dāng)前日期指定班次對(duì)應(yīng)的當(dāng)值班組。如和當(dāng)前班次變量不同,則說(shuō)明到了換班時(shí)間切換到當(dāng)值班組,并對(duì)話框提示,如圖5所示。
            
                         
                                     圖5    換班時(shí)間對(duì)話框
 
   3 結(jié)論

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

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

      完美報(bào)表例程V2的升級(jí)內(nèi)容,除了自動(dòng)倒班功能之外,還增加了EXCEL格式的導(dǎo)出功能。能夠?qū)⒆远x報(bào)表的內(nèi)容直接輸出到EXCEL格式的文件,文件格式用模板已設(shè)置好,生成后即可以直接打印。  

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

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 亚洲精品在线影院 | 2048亚洲精品国产 | 日韩一级黄色录像 | 免费中国一级啪啪片 | 国产一区二区三区波多野吉衣 | 激情影院成人区免费观看视频 | 日韩一区三区 | 欧美美女一区二区三区 | 日本一级毛片毛片一级毛片 | 精品国产欧美一区二区最新 | 91看片淫黄大片一级在线观看 | 亚洲精品 欧美 | 秀人网福利视频在线观看 | 欧美在线黄| 免费观看国产精品视频 | 欧美香蕉视频在线观看 | 日本一级特黄毛片免费视频9 | 国产亚洲高清在线精品不卡 | 成人精品视频一区二区三区尤物 | 国产日韩在线观看视频网站 | 一级毛片一级毛片免费毛片 | 久久91久久91精品免费观看 | 午夜精品在线免费观看 | 国产白嫩在线观看视频 | 91精品国产综合成人 | jiz欧美高清 | japanese国产在线中文 | 久久视频精品 | 国产自产v一区二区三区c | 欧美精品a毛片免费观看 | 大乳女人做受视频免费观看 | 亚洲色大成网站www久久九九 | 看全色黄大色大片免费久黄久 | 欧美日韩在线精品一区二区三区 | 美女一级毛片毛片在线播放 | 香蕉啪 | 国产精品探花千人斩久久 | 宅宅在线 | 中文在线观看视频 | 高清视频一区 | 黄网在线免费 |