• 
    <ul id="auswy"><sup id="auswy"></sup></ul>
  • <ul id="auswy"></ul>
    ABB
    關注中國自動化產業發展的先行者!
    CAIAC 2025
    2025工業安全大會
    OICT公益講堂
    當前位置:首頁 >> 案例 >> 案例首頁

    案例頻道

    硫化機PLC上位機監控軟件的開發應用
    • 企業:控制網     領域:PLC /PAC/PCC/RTU     行業:市政工程    
    • 點擊數:1060     發布時間:2008-06-12 01:03:41
    • 分享到:

    前 言

        隨著硫化機自動控制水平的不斷提高,硫化機的溫度壓力數據采集記錄方法經歷了圓盤記錄儀、打點式記錄儀、智能化無紙記錄儀乃至目前較先進的上位機監控系統。上位機監控系統界面友好、控制安全可靠、精度高、數據存儲量大,已越來越受用戶青睞。筆者采用電阻式觸摸平板電腦作為上位機,把現場數據通過傳感器采集經PLC處理后送入上位機,組成一個監控系統。

    1、監控系統構成

        整個監控系統由A/D模塊、D/A模塊、CPU、傳感器、電氣轉換器、平板電腦組成,如圖1所示。

        上位機對數據進行分析、存盤、綜合處理、打印、報警、圖形顯示、人機對話,并可通過數據傳送對PLC進行控制。

    2、監控軟件的設計
    2.1 窗體設計

        在軟件的編程過程中,人機界面(MM,)非常重要,因為它直接與操作員產生信息交流,友好的人機界面要求能真實再現控制設備的狀態以及準確的采集所需參數的數據,這主要依靠VB 6.0的控件組合及原代碼完成。整個人機界面包括硫化狀態畫面(主畫面)、實時曲線畫面、數據查看畫面、歷史曲線畫面、工藝編輯畫面、報警畫面、口令畫面、開關狀態畫面,各畫面間可以相互切換。當然也可根據用產習慣編輯不同的人機界面,具有很好的靈活性。

        主畫面如圖2所示,它實時采集硫化機溫度壓力信號,并將其保存在以日期為名稱的數據庫里。顯示每鍋輪胎硫化的時間、步序參數數據,產量、膠囊計數、本機目前的信息也一目了然,棒圖控件能動態表明每條輪胎的硫化進程,并有百分數提醒操作員。如果某一閥門打開,主畫面中相應閥門名稱的顏色變化,管路里就會有液體流動的動畫,形象再現了閥門狀態的變化,這可以在picture控件中應用API函數實現。清零菜單可分別對左右計數和產量進行清零。單擊通訊按鈕通過串口與PLC通信,進行數據交換,數據采集頻率可在Timer控件中設定。主畫面為監控系統的窗口,基本上所有操作員需要了解的數據都集中在這里,其畫面的友好程度及功能的完整性直接影響人機界面成功與否。

        實時曲線畫面實時跟蹤硫化機的溫度壓力參數,可分為圓盤型和直線型。圓盤型尊重原有圓盤記錄儀的習慣,以一天為單位,實時記錄每一時間的數值,在實時數據與上一時間數據間畫圓弧,這樣能準確顯示數值的變化情況。直線型以一小時(一般輪胎硫化時間在一小時內)為單位顯示,如果采集完一個小時數據,則實時曲線以采集頻率從右向左漂移,這時在Picture控件最右端顯示當前數值對應的曲線,這種動態漂移效果可由WINDOWS API函數實現。這兩種曲線方式各有千秋,前者可以直觀了解當天所有輪胎的曲線情況,但上位機的顯示屏顯示一天數據,圖形就顯得小,分辨率不高。者清晰度高,但只能顯示當前一段時間的映線,如果需要更長時間的曲線,得從歷史畫面中查看。一般來講,兩者兼顧應用,相得益彰。

        每天采集的數據都存放在當天的數據庫里,要查看哪天的曲線只要打開該天的數據庫就可以畫出該天的歷史曲線。

        工藝編輯畫面:所有需要修改的參數都集中在工藝編輯畫面里,步序、分步時間、閥門狀態、PID參數、延時設定、硫化規格、機號都可修改。該畫面功能多,操作較為復雜,但主要還是圍繞數據庫做文章。建立一個數據庫與Treeview控件聯接,數據庫中包括各種工藝號,每個工藝號為一個表(Table)。單擊表名,該表的內容顯示在Datagrid控件中,可以通過鍵盤修改表的內容。

    其它畫面不再詳述。

    2.2 上位機與PLC間的通信

        在上位機鏈接通信中,上位機多是以主態同PLC進行通信,命令一般從上位機發至PLC,任何數據都能從PLC發送至上位機。兩者間的通信通過上位機的串口與連接實現,并遵循RS-232協議,其命令格式為:

    響應碼為:

        用V 8 6.0編寫通信程序時,要用通訊控件(Mscomm)。將通訊控件調入后,還需編通信代碼,如PLC采集的內溫、內壓、外溫、外壓存芯正數據區DMOOOONDM0003,主畫面的內溫、內壓、外溫、外壓分別顯示在Label 1(0)~Label 1(3)中。則在VB6.0下建立的通信代碼如下:

    Private Sub Timer 1-Timer()
    Form l. MSComm l. CommPort=1使用COM l端口
    Form l. MSComm l. Settings=9600,e,7,2設置通信條件
    Form l. MSComm l. Port Open=True打開串口
    R$=@ 00RD00000004讀PLCDM0000-DM 0003的內容
    RD$=R$content$fcs(R$)
    Form 1. MSComm 1.In Buffer Count=0
    Form 1. MSComm 1.Output=RD$content$Chr$(13)發送命令
    Do
    Dummy=Do Everts(1)
    Loop Until Form 1. MSComm 1. In Buffer Count>=27
    Instring$=form1. MSComm 1. Input接受數據
    Label 1(0). caption=MID$(instring$,8,4)
    Label 1(1). caption=MID$(instring$,12,4)
    Label 1(2). caption=MID$(instring$,16,4)
    Label 1(3). caption=MID$(instring$,20,4)
    From1. MSComm 1. Port Open=Faise
    End Sub

        數據是以幀為單位發送的,每次接受一幀時計算FCS并將結果與包含在幀中的FCS比較使之能檢查幀中的數據錯誤。FCS是轉換成2個ASC Ⅱ字符的8位數據,這8位數據是對幀開始數據直到此幀正文結束的數據進行異或運算的結果。VB 6.0下的FCS函數代碼如下:

    Function fcs(O$)
    Dim B%,I%,Ⅱ%,FF$
    B%=0
    Ⅱ%=Len(O$)
    For I%= I TO Ⅱ%
    B%=B%×or Asc(Mid(O$,I%,1))
    Next I%
    FF$二He×$(B%)
    1f Len(FF$)=1 Then
    FF$=0+FF$
    End If
    Fcs=FF$content$*
    End Function

    3、結束語

    本例已成功地應用于硫化機自動控制系統中,從實際運行情況,狀態良好。當然,它有待不斷完善,使之畫面更豐富,功能更強大。

    熱點新聞

    推薦產品

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



    2.詳細的需求:
    姓名:
    單位:
    電話:
    郵件: