4、 WinCC的組態實現
4.1 主控界面的組態
  本系統的設備比較多,要將所有的設備都顯示在一張畫面里是不可能的,所以將設備按照處理工藝的功能步驟分級在多張畫面內,分為電泳線、前處理線、生化線、加藥線等,之間的切換使用按鈕的鼠標動作來實現。這對于用WinCC現成的鼠標動作來實現是很簡單的,但是不是要在每張圖上都使用相同數量且位置排列順序">

      技術頻道

      組態軟件WinCC在污水處理中的應用(2)

      4、 WinCC的組態實現
      4.1 主控界面的組態
        本系統的設備比較多,要將所有的設備都顯示在一張畫面里是不可能的,所以將設備按照處理工藝的功能步驟分級在多張畫面內,分為電泳線、前處理線、生化線、加藥線等,之間的切換使用按鈕的鼠標動作來實現。這對于用WinCC現成的鼠標動作來實現是很簡單的,但是不是要在每張圖上都使用相同數量且位置排列順序一致的按鈕呢?(出于對操作的一致性考慮,不能讓操作人員在不同的圖上,不同的位置找想要操作的按鈕)這個問題的解決我們使用WinCC的腳本編程,在按鈕動作中調用它的內部函數來實現。首先,組態一幅背景畫面,其中包括要顯示的靜態文本、OLE(例如,時鐘)、所有的圖形切換按鈕及推出關機按鈕。第二,在背景畫面中插入智能對象(Smart Object)中的畫面窗口(Picture Window),并且使其的尺寸與其分級畫面相同。第三,在相應的切換按鈕的屬性->事件->鼠標動作中編寫如下C語言腳本代碼:
        #include\"apdefap.h\"
        void OnClick(char *lpsz PictureName,
        char *lpsz ObjectName,char *lpsz PropertyName)
        {
        SetPictureName(\"背景畫面\", \"畫面窗口\", \"電泳處理線\");
        } //\"背景畫面\"即為始終顯示地靜態背景的屬性名,\"畫面窗口\"即為在背景畫//面中插入地畫面窗口(Picture Window)屬性名,\"電泳處理  線\"即為分級畫面//的名稱
        這樣就能方便快捷地切換畫面。
        還有一個必須始終顯示的是報警記錄,用畫面顏色閃爍來提示操作者有故障發生,可以用同樣的C語言腳本(當然不是加在鼠標動作中)在背景畫面的底部留下一條類似Windows狀態欄的報警欄,當出現故障報警的時候在報警欄顯示最近一條報警記錄,操作人員可以利用按鈕切換到主報警記錄畫面了解故障的完全信息。
      4.2 單個部件的組態
        WinCC在其內部的圖庫里集成很多的圖形對象,如水箱、電機、閥門等等,對于污水處理用的最多的是水池,攪拌機等等。為了使組態畫面貼近實際,能夠更好的反應現場工況,圖庫里的元素并不能滿足要求。我們可以利用WinCC的畫圖工具自己繪制適應實際的圖形元素,并且使用C腳本使其產生動畫效果。如3圖所示。

      圖3、組態部件元素


        對于調節池,反應池等可以用矩形來表示,以圖形的填充高度來示意其液位的高度。這里要注意的是一些數值地轉化,由于一些儀表例如E+H的超聲波液位計,是以4~20毫安的電流信號進入PLC,對于表的參數設定好以后4毫安就對應相應池子的液位最低點,而20毫安對應于池子的液位最高點。所以在顯示數字高度的時候要將PLC相對4、20毫安的數值轉化為實際池子的高度范圍例如,0.5~5.5米。但是對于圖形填充的時候是按照百分數來表示的所以還要將PLC數值轉化為0~100%的度量范圍。
        攪拌機的組態可以使用C腳本使其產生動畫,在其運行時產生視覺上的旋轉。實際上攪拌機的圖形是用兩個部分橢圓組成的,在橢圓的屬性->幾何->半徑中加入代碼如下:


        #include \"apdefap.h\"
        long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
        {
        static int x=25,y,z;//x為半徑的初始值為25,y為切換變量,z為攪拌機運行狀態變量
        z=GetTagBit(\"202攪拌機運行\"); //取得PLC攪拌機的運行狀態
        if(z!=0)
        {
        switch(y)
        {
        case 0:
        x=x-4;
        if(x<=0)
        y=1;
        break;
        default :
        x=x+4;
        if(x>=25)
        y=0;
        break;
        }
        }
        return x;
        }
       

      4.3語音報警的組態
        在工業現場安全是極其重要的,無論從那個角度講我們應該利用一切手段減少故障的發生。在故障已經發生的時候,應該在第一時間以多種方式通知操作人員有故障發生。現代微處理計算機的處理速度可以完全勝任對于圖形,語音地同時處理。所以我們可以利用計算機的聲卡和音箱在有故障發生的時候產生語言報警,但是問題是WinCC本身并不能產生語音的功能,而且其內部的上千個函數也沒有提供處理聲音的函數。解決這個問題的方法歸功于微軟開發的WinCC與操作系統地完美結合,因為在WinCC中可以直接調用Windows的API函數。實現的具體C腳本代碼如下:


        long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
        {
        #pragma code(\"Winmm.dll\")
        void WINAPI PlaySoundA(char *pszSound,char *hmode,DWORD dwflay);
        #pragma code()
        if(GetTagBit(\"112排泥備泵故障\"))
        PlaySoundA(\"d:\\\\\\\\winnt\\\\\\\\media\\\\\\\\Mircosoft Sound.wav\",NULL,8);
        return 1020;
        }


        還有一個值得主意的問題是此段代碼的加入點,通過反復多次的實踐得出結論,即這個點必須加在始終顯示于屏幕上的任何圖形元素的屬性中,這樣才能達到語言報警的預期效果。
      5、 小結
        WinCC采用了當今流行的面向對象的技術,很類似流行的Visual Basic語言。對象的屬性可以進行設定或編程以實現對該對象的動畫及事件的觸發,內嵌的MS C語言減少了開發者的學習時間,并增加了其靈活性。如果對于Windows的SDK編程熟悉的話,WinCC中調用Windows系統的API函數完全可以實現象VB、VC等高級語言所能實現的功能。但在開發時間和易用性、穩定性上要優于以上兩種語言,因為它是針對工業現場設計開發的。

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 黑巨人与欧美精品一区| 久久亚洲国产精品一区二区| 国产中的精品一区的| 一区二区乱子伦在线播放| 一区二区国产精品| 亚洲国产精品一区第二页| 午夜性色一区二区三区免费不卡视频| 亚洲日韩国产欧美一区二区三区| 亚洲AV无码一区二区三区国产 | 国产精品视频免费一区二区三区 | 国产福利电影一区二区三区,日韩伦理电影在线福 | 免费精品一区二区三区第35| 国产一区二区精品久久91| 怡红院美国分院一区二区| 精品一区狼人国产在线| 精品一区二区三区在线播放| 亚洲av无码天堂一区二区三区| 日韩人妻无码一区二区三区 | 精品无码一区二区三区爱欲| 午夜影视日本亚洲欧洲精品一区| 无码乱人伦一区二区亚洲一| 国产精品久久久久久麻豆一区| 精品亚洲福利一区二区| 日韩精品一区二区三区在线观看| 国产成人高清视频一区二区| 中文字幕亚洲综合精品一区| 视频一区二区三区免费观看| 内射女校花一区二区三区| 中文字幕一区在线观看视频| 精品一区二区三区四区电影| 久久福利一区二区| 日韩精品无码久久一区二区三| 高清国产精品人妻一区二区| 在线一区二区三区| 色欲AV蜜臀一区二区三区| 国产精品视频一区二区三区不卡| 无码国产精品一区二区免费vr| 精品福利一区二区三区| 另类国产精品一区二区| 精品一区二区三区视频在线观看| 日本一区二区三区在线视频|