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

    案例頻道

    基于VB及臺(tái)達(dá)觸摸屏的監(jiān)控系統(tǒng)在紡機(jī)中的應(yīng)用
    • 企業(yè):中達(dá)電通股份有限公司     領(lǐng)域:運(yùn)動(dòng)控制與伺服系統(tǒng)     行業(yè):機(jī)場(chǎng)    
    • 點(diǎn)擊數(shù):2303     發(fā)布時(shí)間:2008-06-29 09:04:51
    • 分享到:

        喻  慧(1984-)
    女,畢業(yè)于陜西科技大學(xué)電子信息專(zhuān)業(yè),本科,現(xiàn)就職于烽火通信集團(tuán)恒鑫紡機(jī)公司,從事新型紡織機(jī)械的研發(fā)工作。

    摘要: 目前紡織業(yè)生產(chǎn)中產(chǎn)品產(chǎn)量一般都還是依靠人工進(jìn)行統(tǒng)計(jì),在實(shí)際操作過(guò)程中,不僅麻煩而且容易出錯(cuò)。因此,有必要采用產(chǎn)量監(jiān)控及查詢(xún)系統(tǒng)對(duì)產(chǎn)品產(chǎn)量進(jìn)行統(tǒng)計(jì)。本文介紹了基于VB及臺(tái)達(dá)觸摸屏的產(chǎn)量監(jiān)控及查詢(xún)系統(tǒng),該系統(tǒng)不僅能應(yīng)用于紡織機(jī)械,而且適用于其它設(shè)備。

    關(guān)鍵詞: 臺(tái)達(dá)觸摸屏;VB;監(jiān)控;查詢(xún);MODBUS;MSCOMM

    Abstract:  At the present time, the output of the textile industry is accounted by the worker usually. It is bother and easy to make mistakes. So it is necessary to have a system to monitor the output of the product. A monitor and enquiry system about the output of the product is introduced in this article, it's based on VB and Touch Screen. This system is not only used in the textile machine, but also used in the other area.

    Key words: Delta HMI; VB; Monitor;Enquiry;  MODBUS ;  MSCOMM

    一、引言

        該系統(tǒng)用于對(duì)各生產(chǎn)線的紡機(jī)進(jìn)行實(shí)時(shí)監(jiān)控和查詢(xún),并對(duì)各班次產(chǎn)量數(shù)據(jù)進(jìn)行存儲(chǔ),用戶(hù)可通過(guò)日期時(shí)間段、車(chē)號(hào)、班次等對(duì)產(chǎn)量進(jìn)行綜合查詢(xún),并進(jìn)行統(tǒng)計(jì),可在查詢(xún)出滿(mǎn)足條件的數(shù)據(jù)后,進(jìn)行報(bào)表輸出和打印。以下是對(duì)系統(tǒng)設(shè)計(jì)方面的一些討論。

    二、系統(tǒng)結(jié)構(gòu)與功能

        精梳機(jī)是近年來(lái)在紡織行業(yè)使用較為普遍的一種設(shè)備,其主要作用是排出梳棉生條中一定長(zhǎng)度以下的短纖維,提高纖維整齊度,進(jìn)一步清除纖維中殘留的棉結(jié)、雜質(zhì),提高纖維光潔度。條并卷聯(lián)合機(jī)是精梳工序的準(zhǔn)備設(shè)備,通常情況下,一套精梳設(shè)備由一臺(tái)條并卷聯(lián)合機(jī)和五臺(tái)精梳機(jī)組成。該產(chǎn)量監(jiān)控查詢(xún)系統(tǒng)應(yīng)用于精梳設(shè)備的結(jié)構(gòu)示意圖如下所示:



    圖1  結(jié)構(gòu)示意圖

        該系統(tǒng)實(shí)現(xiàn)了以下功能:

        (1)實(shí)時(shí)監(jiān)控所選機(jī)器各班次的當(dāng)日產(chǎn)量和累計(jì)產(chǎn)量以及該機(jī)器的運(yùn)行情況。

        (2)可定時(shí)保存各機(jī)器各班次的當(dāng)日產(chǎn)量及累計(jì)產(chǎn)量,且有多種定時(shí)方式可選擇。

        (3)能分別根據(jù)時(shí)間,班次,產(chǎn)量,車(chē)號(hào)進(jìn)行查詢(xún)操作,也可綜合考慮數(shù)據(jù)保存方式進(jìn)行查詢(xún),提高查詢(xún)準(zhǔn)確率。

        (4)查詢(xún)結(jié)果可顯示為報(bào)表格式,并可將結(jié)果打印輸出,方便用戶(hù)使用。

        (5)具有系統(tǒng)維護(hù)功能,可方便用戶(hù)進(jìn)行數(shù)據(jù)維護(hù)。

    三、系統(tǒng)設(shè)計(jì)

        1)硬件配置

    名稱(chēng)
    數(shù)量
    觸摸屏
    7
    普通PC機(jī)
    1
    轉(zhuǎn)換模塊RS232—RS485
    1

        2) 數(shù)據(jù)采集部分的設(shè)計(jì)

        觸摸屏選用臺(tái)達(dá)系列AE10THTD型,由于其具有強(qiáng)大的通訊功能,靈活的系統(tǒng)構(gòu)成,生動(dòng)逼真且豐富的圖庫(kù),簡(jiǎn)單易用等特點(diǎn),在紡織業(yè)中得到了廣泛的應(yīng)用,因此通過(guò)觸摸屏來(lái)采集所需數(shù)據(jù)。所以要對(duì)紡機(jī)進(jìn)行實(shí)時(shí)監(jiān)控,首先要解決觸摸屏與PC的通信問(wèn)題。所用的臺(tái)達(dá)觸摸屏支持標(biāo)準(zhǔn)的MODBUS協(xié)議,通過(guò)串口與PC相連。

        ● MODBUS通信協(xié)議

        modbus功能碼

        01:讀取線圈狀態(tài)  取得一組邏輯線圈的當(dāng)前狀態(tài)(ON/OFF)

        02:讀取輸入狀態(tài)  取得一組開(kāi)關(guān)輸入的當(dāng)前狀態(tài)(ON/OFF)

        03:讀取保持寄存器  在一個(gè)或多個(gè)保持寄存器中取得當(dāng)前的二進(jìn)制值

        04:讀取輸入寄存器  在一個(gè)或多個(gè)輸入寄存器中取得當(dāng)前的二進(jìn)制值

        05:強(qiáng)置單線圈  強(qiáng)置一個(gè)邏輯線圈的通斷狀態(tài)

        06:預(yù)置單線圈  把具體二進(jìn)制值裝入一個(gè)保持寄存器

        根據(jù)modbus協(xié)議,通信中mscomm1.output中包含的字符串應(yīng)包括以下幾部分:

        起始位  站號(hào)  功能碼  數(shù)據(jù)位  校驗(yàn)位  停止位

        在此通信中,站號(hào)表示人機(jī)站號(hào) 數(shù)據(jù)位包括寄存器地址和數(shù)據(jù)

        ● HMI內(nèi)部地址與MODBUS地址映射表

    MODBUS_ADDRESS
    HMI_ADDRESS
    PC_ADDRESS
    描述
    W40001-W41024
    $0-$1023
    0000-03FF
    內(nèi)部寄存器
    W42001-W43024
    $M0-$M1023
    07D0-0BCF
    斷電保持內(nèi)部寄存器
    W44001
    RCPN0
    0FA0
    配方編號(hào)寄存器
    W45001-......
    RCP0-RCPn
    1388-......
    配方寄存器
    B00001-B01024
    $2000.0-$2063.15
    0000-03FF
    內(nèi)部寄存器(bit)
    B01025-B02048
    $M200.0-$M263.15
    0400-07FB
    斷電內(nèi)部保持寄存器(bit)

        ● mscomm控件

        CommPort 設(shè)置并返回通訊端口號(hào)。

        Settings 以字符串的形式設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位。

        PortOpen 設(shè)置并返回通訊端口的狀態(tài)。也可以打開(kāi)和關(guān)閉端口。

        Input 從接收緩沖區(qū)返回和刪除字符。

        Output 向傳輸緩沖區(qū)寫(xiě)一個(gè)字符串。

        ● HMI與PC的通信及數(shù)據(jù)采集的設(shè)計(jì)

        LRC算法函數(shù):

    Public Function LRC(str)
        c = 0
        l = Len(str) '求出str的長(zhǎng)度賦值給l
            For c = c + 1 To l
        c_data = Mid$(str, c, 2) '在str串中,從c的值開(kāi)始取2個(gè)字符。
        d_lrc = d_lrc + Val("&H" + c_data)
        c = c + 1
        Next c
        If d_lrc > &HFF Then
           d_lrc = d_lrc Mod &H100
        End If
        h_lrc = Hex(&HFF - d_lrc + 1)
        If Len(h_lrc) > 2 Then
           h_lrc = Mid(h_lrc, Len(h_lrc) - 1, 2)
        End If
        LRC = h_lrc
    End Function

        下面對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)采集,數(shù)據(jù)采集程序界面如下圖所示:

    圖2  數(shù)據(jù)采集程序界面
    Private Sub Timer1_Timer()
        '連接數(shù)據(jù)庫(kù)
        Dim CONN As New ADODB.Connection
        Dim DBStr As String
        Dim rs As New ADODB.Recordset
        DBStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data.mdb;Persist Security Info=False"
        CONN.Open DBStr
        Dim Mac_Num    ' Mac_Num是車(chē)號(hào)
        Mac_Num = Combo_MacNum.List(Combo_MacNum.ListIndex)
        Debug.Print Mac_Num
        sql = "select * from machine where Machine_Num = '" + Mac_Num + "'"   '獲取車(chē)號(hào)
        rs.Open sql, CONN, 1, 3
        Txt_type.Text = rs.Fields("machine_type").Value   '獲取車(chē)的類(lèi)型(是精梳機(jī)還是條并聯(lián))
        rs.Close
        str_type = Mac_Num  '
        Set CONN = Nothing
        DBStr = ""
        '發(fā)送數(shù)據(jù)(根據(jù)所選車(chē)號(hào)發(fā)送數(shù)據(jù))
        If MSComm1.PortOpen = True And stakeout_flag And Combo_MacNum.ListIndex >= 0 Then
            str_output = str_type + "030064001D"
            MSComm1.Output = ":" + str_output + LRC(str_output) + Chr$(13) + Chr$(10)
            '接收數(shù)據(jù)
            inputstring = MSComm1.Input
            '將接收到的數(shù)據(jù)分別賦值并顯示
            Txt_100.Text = change(inputstring, 8, 12) '甲班當(dāng)日產(chǎn)量
            Txt_102.Text = change(inputstring, 16, 20) '甲班累計(jì)產(chǎn)量
            Txt_104.Text = change(inputstring, 24, 28) '乙班當(dāng)日產(chǎn)量
            Txt_106.Text = change(inputstring, 32, 36) '乙班累計(jì)產(chǎn)量
            Txt_108.Text = change(inputstring, 40, 44) '丙班當(dāng)日產(chǎn)量
            Txt_110.Text = change(inputstring, 48, 52) '丙班累計(jì)產(chǎn)量
            Txt_112.Text = change(inputstring, 56, 60) '丁班當(dāng)日產(chǎn)量
            Txt_114.Text = change(inputstring, 64, 68) '丁班累計(jì)產(chǎn)量
            Txt_116.Text = change(inputstring, 72, 76) '各班當(dāng)日合計(jì)產(chǎn)量
            Txt_118.Text = change(inputstring, 80, 84) '各班累計(jì)合計(jì)產(chǎn)量
            If Txt_type.Text = "條并聯(lián)" Then
                Txt_view1.Text = change(inputstring, 104, 108) '條并聯(lián)繞卷速度
                Txt_view2.Text = change(inputstring, 112, 116) '條并聯(lián)當(dāng)前長(zhǎng)度
            Else
                Txt_view1.Text = change(inputstring, 88, 92) '精梳機(jī)鉗次
                Txt_view2.Text = change(inputstring, 96, 100) '精梳機(jī)條速
          End If
          str_state = Mid(inputstring, 120, 4) '接收運(yùn)行狀態(tài)的返回值,并判斷運(yùn)行狀態(tài)
            If str_state = "0001" Then
                Cmd_128.Caption = "運(yùn)行中"
            End If
            If str_state = "0000" Then
                Cmd_128.Caption = "停止"
            End If
       End If
    End Sub
    change(inputstr, start1 As Integer, start2 As Integer)用于轉(zhuǎn)換采集到的數(shù)據(jù),其功能是將采集到的產(chǎn)量數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制。其代碼如下:
    Public Function change(inputstr, start1 As Integer, start2 As Integer)
        str_low = Mid(inputstr, start1, 4) '讀寄存器中的數(shù)據(jù)賦給低字節(jié)
        str_high = Mid(inputstr, start2, 4) '讀寄存器中的數(shù)據(jù)賦給高字節(jié)
        str_hex = str_high + str_low '整合高低字節(jié)數(shù)據(jù)
        str_input = Val("&H" + str_hex) '將十六進(jìn)制數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制
        If str_input >= -32768 And str_input <= -1 Then '將轉(zhuǎn)換成十進(jìn)制處于-32768~32767的數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的正數(shù)
            str_input = str_input + 65536
        End If
        change = str_input / 1000 '返回值 取三位小數(shù)
    End Function

        3)信息查詢(xún)

        信息查詢(xún)界面如下所示,可對(duì)已經(jīng)保存的生產(chǎn)數(shù)據(jù)根據(jù)時(shí)間、班次、產(chǎn)量、車(chē)號(hào)進(jìn)行綜合查詢(xún)。

    圖3  信息查詢(xún)界面
        該功能的程序方面比較簡(jiǎn)單,主要是對(duì)數(shù)據(jù)庫(kù)的查詢(xún)操作。以單獨(dú)對(duì)班次查詢(xún)?yōu)槔浯a如下:

        '按班次查詢(xún)子函數(shù),用于判斷其搜索關(guān)鍵字是否有效

    Private Sub Chk_team_Click()
        If Chk_team.Value = 1 Then
            Combo_team.Enabled = True
        Else
            Combo_team.Enabled = False
        End If
    End Sub

        '選擇班次子函數(shù),用于判斷所選班次

    Private Sub Combo_team_Click()
        Dim liner_str
        Select Case Combo_team.ListIndex
            Case 0
                liner_str = "甲班"
            Case 1
                liner_str = "乙班"
            Case 2
                liner_str = "丙班"
            Case 3
                liner_str = "丁班"
        End Select
    End Sub

        '班次查詢(xún)子函數(shù),獲取查詢(xún)字符串

    Public Function sch_team()
        Dim liner_str
        Dim sch_str_team
        Select Case Combo_team.ListIndex
        Case 0
            liner_str = "甲班"
        Case 1
            liner_str = "乙班"
        Case 2
            liner_str = "丙班"
        Case 3
            liner_str = "丁班"
        End Select
        sch_str_team = "info_liner = '" + liner_str + "'"
        sch_team = sch_str_team
    End Function

        '產(chǎn)量查詢(xún)函數(shù),用于查詢(xún)產(chǎn)量并對(duì)其進(jìn)行顯示

    Private Sub cmd_search_Click()
    Dim sch_str

        '按班次查詢(xún)

        If Chk_team.Value = 1 Then
            sch_str = " where " + sch_team()
        End If

        '查詢(xún)結(jié)果顯示

        Dim resource_str
        resource_str = " select info_id as 編號(hào),info_mactype as 機(jī)器類(lèi)型 ,info_liner as 班次, "
        resource_str = resource_str + " info_sumoutput as 當(dāng)日產(chǎn)量, info_dayoutput as 累計(jì)產(chǎn)量,"
        resource_str = resource_str + " info_daytotal as 當(dāng)日合計(jì)產(chǎn)量,info_total as 累計(jì)合計(jì)產(chǎn)量 "
        resource_str = resource_str + " from " + table_str + sch_str
        Adodc1.RecordSource = resource_str
        Debug.Print Adodc1.RecordSource
        Adodc1.Refresh
    End Sub

        可根據(jù)以上單獨(dú)查詢(xún)班次的例子對(duì)其進(jìn)行擴(kuò)展,增加根據(jù)時(shí)間,車(chē)號(hào),產(chǎn)量范圍等對(duì)產(chǎn)量進(jìn)行查詢(xún)的功能,這里就不一一敘述了。

    四、結(jié)束語(yǔ)

        觸摸屏與上位機(jī)的結(jié)合,并通過(guò)VB6.0傳送數(shù)據(jù)所構(gòu)成的計(jì)算機(jī)監(jiān)控系統(tǒng),對(duì)于近距離傳輸數(shù)據(jù)的現(xiàn)場(chǎng)控制來(lái)說(shuō)是一種性?xún)r(jià)比很高的解決方案。該系統(tǒng)充分的利用了觸摸屏的通信功能和PC強(qiáng)大的圖形顯示、浮點(diǎn)運(yùn)算等特點(diǎn),以最大的限度合理的利用了資源,實(shí)現(xiàn)了對(duì)設(shè)備運(yùn)行狀態(tài)的監(jiān)控。

    其它作者:

        馬巖(1980-),男,畢業(yè)于西安工程大學(xué)機(jī)械電子工程專(zhuān)業(yè),本科,現(xiàn)就職于陜西烽火通信集團(tuán)恒鑫紡機(jī)公司,從事新型紡織機(jī)械的研發(fā)工作。

    熱點(diǎn)新聞

    推薦產(chǎn)品

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



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