siemens x
I/O 設(shè)備

基于VB及臺(tái)達(dá)觸摸屏的監(jiān)控系統(tǒng)在紡機(jī)中的應(yīng)用

2025China.cn   2009年05月21日

  一、引言

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

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

  精梳機(jī)是近年來在紡織行業(yè)使用較為普遍的一種設(shè)備,其主要作用是排出梳棉生條中一定長度以下的短纖維,提高纖維整齊度,進(jìn)一步清除纖維中殘留的棉結(jié)、雜質(zhì),提高纖維光潔度。條并卷聯(lián)合機(jī)是精梳工序的準(zhǔn)備設(shè)備,通常情況下,一套精梳設(shè)備由一臺(tái)條并卷聯(lián)合機(jī)和五臺(tái)精梳機(jī)組成。該產(chǎn)量監(jiān)控查詢系統(tǒng)應(yīng)用于精梳設(shè)備的結(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)量,車號(hào)進(jìn)行查詢操作,也可綜合考慮數(shù)據(jù)保存方式進(jìn)行查詢,提高查詢準(zhǔn)確率。

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

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

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

  1)硬件配置 

 

名稱

數(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)逼真且豐富的圖庫,簡單易用等特點(diǎn),在紡織業(yè)中得到了廣泛的應(yīng)用,因此通過觸摸屏來采集所需數(shù)據(jù)。所以要對(duì)紡機(jī)進(jìn)行實(shí)時(shí)監(jiān)控,首先要解決觸摸屏與PC的通信問題。所用的臺(tái)達(dá)觸摸屏支持標(biāo)準(zhǔn)的MODBUS協(xié)議,通過串口與PC相連。

  <1>MODBUS通信協(xié)議

  modbus功能碼

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

  02:讀取輸入狀態(tà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é)議,通信中中包含的字符串應(yīng)包括以下幾部分:

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

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

  <2>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)

  <3>mscomm控件

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

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

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

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

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

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

  LRC算法函數(shù):

  PublicFunctionLRC(str)

  c=0

  l=Len(str)’求出str的長度賦值給l

  Forc=c+1Tol

  c_data=Mid$(str,c,2)’在str串中,從c的值開始取2個(gè)字符。

    d_lrc=d_lrc+Val("&H"+c_data)

    c=c+1

    Nextc

    Ifd_lrc>&HFFThen

    d_lrc=d_lrcMod&H100

    EndIf

    h_lrc=Hex(&HFF-d_lrc+1)

    IfLen(h_lrc)>2Then

    h_lrc=Mid(h_lrc,Len(h_lrc)-1,2)

    EndIf

    LRC=h_lrc

    EndFunction

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


    PrivateSubTimer1_Timer()

    ’連接數(shù)據(jù)庫

    tion

    DimDBStrAsString

    set

    DBStr="Provider=.

OLEDB.4.0;DataSource="&&"\;PersistSecurityInfo=False"

    Str

    DimMac_Num’Mac_Num是車號(hào)

    Mac_Num=(dex)

    ac_Num

    sql="s elect*frommachinewhereMachine_Num=’"+Mac_Num+"’"’獲取車號(hào)

    l,CONN,1,3

    =("machine_type").Value’獲取車的類型(是精梳機(jī)還是條并聯(lián))

   

    str_type=Mac_Num’

    SetCONN=Nothing

    DBStr=""

    ’發(fā)送數(shù)據(jù)(根據(jù)所選車號(hào)發(fā)送數(shù)據(jù))

    en=TrueAndstakeout_flagAndCombo_MacNum.

ListIndex>=0Then

    str_output=str_type+"030064001D"

    =":"+str_output+LRC(str_output)+Chr$(13)+Chr$(10)

    ’接收數(shù)據(jù)

    inputstring=

    ’將接收到的數(shù)據(jù)分別賦值并顯示

    =change(inputstring,8,12)’甲班當(dāng)日產(chǎn)量

    =change(inputstring,16,20)’甲班累計(jì)產(chǎn)量

    =change(inputstring,24,28)’乙班當(dāng)日產(chǎn)量

    =change(inputstring,32,36)’乙班累計(jì)產(chǎn)量

    =change(inputstring,40,44)’丙班當(dāng)日產(chǎn)量

    =change(inputstring,48,52)’丙班累計(jì)產(chǎn)量

    =change(inputstring,56,60)’丁班當(dāng)日產(chǎn)量

    =change(inputstring,64,68)’丁班累計(jì)產(chǎn)量

    =change(inputstring,72,76)’各班當(dāng)日合計(jì)產(chǎn)量

    =change(inputstring,80,84)’各班累計(jì)合計(jì)產(chǎn)量

    ="條并聯(lián)"Then

    =change(inputstring,104,108)’條并聯(lián)繞卷速度

    =change(inputstring,112,116)’條并聯(lián)當(dāng)前長度

    Else

    =change(inputstring,88,92)’精梳機(jī)鉗次

    =change(inputstring,96,100)’精梳機(jī)條速

    EndIf

    str_state=Mid(inputstring,120,4)’接收運(yùn)行狀態(tài)的返回值,并判斷運(yùn)行狀態(tài)

    Ifstr_state="0001"Then

    n="運(yùn)行中"

    EndIf

    Ifstr_state="0000"Then

    n="停止"

    EndIf

    EndIf

    EndSub

    change(inputstr,start1AsInteger,start2AsInteger)用于轉(zhuǎn)換采集到的數(shù)據(jù),其功能是將采集到的產(chǎn)量數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制。其代碼如下:

    PublicFunctionchange(inputstr,start1AsInteger,start2AsInteger)

    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)制

    Ifstr_input>=-32768Andstr_input<=-1Then’

將轉(zhuǎn)換成十進(jìn)制處于-32768~32767的數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的正數(shù)

    str_input=str_input+65536

    EndIf

    change=str_input/1000’返回值取三位小數(shù)

    EndFunction

    3)信息查詢

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

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

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

    PrivateSubChk_team_Click()

    =1Then

    d=True

    Else

    d=False

    EndIf

    EndSub

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

    PrivateSubCombo_team_Click()

    Dimliner_str

    S dex

    Case0

    liner_str="甲班"

    Case1

    liner_str="乙班"

    Case2

    liner_str="丙班"

    Case3

    liner_str="丁班"

    EndS elect

    EndSub

    ’班次查詢子函數(shù),獲取查詢字符串

    PublicFunctionsch_team()

    Dimliner_str

    Dimsch_str_team

    S dex

    Case0

    liner_str="甲班"

    Case1

    liner_str="乙班"

    Case2

    liner_str="丙班"

    Case3

    liner_str="丁班"

    EndS elect

    sch_str_team="info_liner=’"+liner_str+"’"

    sch_team=sch_str_team

    EndFunction

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

    PrivateSubcmd_search_Click()

    Dimsch_str

    ’按班次查詢

    =1Then

    sch_str="where"+sch_team()

    EndIf

    ’查詢結(jié)果顯示

    Dimresource_str

    resource_str="s electinfo_idas編號(hào),info_mactypeas

機(jī)器類型,info_lineras班次,"

    resource_str=resource_str+"info_sumoutputas

當(dāng)日產(chǎn)量,info_dayoutputas累計(jì)產(chǎn)量,"

    resource_str=resource_str+"info_daytotalas

當(dāng)日合計(jì)產(chǎn)量,info_totalas累計(jì)合計(jì)產(chǎn)量"

    resource_str=resource_str+"from"+table_str+sch_str

    Source=resource_str

    Source

    h

    EndSub

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

    四、結(jié)束語

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

(轉(zhuǎn)載)

標(biāo)簽:基于 VB 及 臺(tái)達(dá) 觸摸屏 的 監(jiān)控 系統(tǒng) 在 紡機(jī)中 的 應(yīng)用 我要反饋 
2024世界人工智能大會(huì)專題
即刻點(diǎn)擊并下載ABB資料,好禮贏不停~
優(yōu)傲機(jī)器人下載中心
西克
2024全景工博會(huì)
專題報(bào)道