国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Qt的電腦橫機上位機系統(tǒng)

2017-05-02 05:39朱耀麟劉慧琳
計算機技術與發(fā)展 2017年4期
關鍵詞:機系統(tǒng)花型機頭

朱耀麟,劉慧琳

(西安工程大學 電子信息學院,陜西 西安 710048)

基于Qt的電腦橫機上位機系統(tǒng)

朱耀麟,劉慧琳

(西安工程大學 電子信息學院,陜西 西安 710048)

電腦橫機是自動化程度較高的機電一體化紡織機械,隨著電腦控制的針織機械的普及,人們對高性能的電腦橫機的需求越來越大。電腦橫機控制系統(tǒng)分為上位機與下位機,為了實現(xiàn)電腦橫機上位機與下位機的信號快速處理以及獲得更加人性化的人機交互,引入一種基于Qt的電腦橫機上位機系統(tǒng)。采用處理器ARM9 S3C2416及擴展電路作為橫機上位機系統(tǒng)的硬件載體,將嵌入式Linux作為控制器軟件操作平臺,通過GPIO口模擬總線的方式,實現(xiàn)上位機與下位機的通信。通過分析橫機需求以及系統(tǒng)的實現(xiàn)方式,從嵌入式系統(tǒng)的實際性能出發(fā),采用Qt開發(fā)人機交互界面,實現(xiàn)數(shù)據處理和顯示,最終實現(xiàn)編織功能。與傳統(tǒng)的橫機上位機系統(tǒng)相比,功能更強,實時性更好,軟件界面更加人性化。

Qt;電腦橫機;上位機;嵌入式系統(tǒng);Linux

0 引 言

電腦橫機是一種由電腦控制的,高自動化緯編針織機械,主要用于服裝和工藝產品的編織制造[1-3]。目前,國內企業(yè)在電腦橫機方面還處于不斷消化和吸收的狀態(tài)[4]。國外電腦橫機方面,日本島精和德國斯托爾占據了大部分的市場份額[5]。對于國內的一些毛衫生產廠家來說,進口橫機成本太貴。國產的中低端橫機人機交互界面非常簡單,操作不便,人性化低。

針對ARM9和FPGA共同組成的硬件控制平臺,進行了上位機系統(tǒng)的設計,如何協(xié)調處理上位機與下位機之間的眾多信號以及方便實用的人性化圖形界面是系統(tǒng)設計過程中的兩大難點。從需求分析出發(fā)進行了系統(tǒng)的總體設計,并詳細講述了上述兩大難點問題的解決辦法。采用GPIO口模擬總線的方式實現(xiàn)上位機與下位機的通信,在Linux系統(tǒng)的基礎上搭建了開發(fā)環(huán)境,然后使用Qt/E進行了用戶層圖形界面的開發(fā)。與同類產品相比,更加穩(wěn)定且可移植性好,具有比較高的實用價值。

1 需求分析及總體設計

為達到編織效果,滿足用戶需求,系統(tǒng)具有以下功能:

(1)初始化功能。在橫機開機時,可以將各個設備進行初始化。將搖床起、底板回零,機頭三角處于編織狀態(tài),選針器壓下,導紗器、電磁閥收起。

(2)信號處理功能。實時接收由底層傳感器傳來的信號,控制電磁鐵、電動機工作以及報警處理。

(3)花型文件解析功能。用戶通過USB接口讀入花型文件系統(tǒng),由系統(tǒng)進行解析,并生成底層設備可以識別的一系列動作。

(4)人性化的圖形界面。將各個模塊的信號輸入輸出詳細地顯示在界面上,以便于用戶操作。

經過分析,系統(tǒng)采用上位機和下位機的二級控制結構[6]。工作人員通過USB接口將格式為CNT或PAT的花型準備文件讀入到ARM9控制器,經過上位機軟件的解析識別,并將解析過的數(shù)據通過總線經由FPGA層傳遞到執(zhí)行設備,與此同時,上位機系統(tǒng)將接收到的傳感器信號顯示在用戶界面上。

硬件部分主要采用一片32位的ARM9 S3C2416作為主控芯片,其運行主頻一般為400 MHz[7],實時操作速度快,且提供豐富的系統(tǒng)外設,大大降低了系統(tǒng)成本。上位機硬件系統(tǒng)的設計采用模塊化集成的方法,包括觸摸屏模塊、LCD模塊、以太網模塊、串口模塊、JTAG模塊、USB模塊及FPGA模塊,如圖1所示。

圖1 上位機硬件系統(tǒng)

2 編織功能實現(xiàn)

橫機開機后,首先加載I/O驅動模塊,然后進行相應硬件設備的初始化,并讀取花型準備文件,進入主控界面,用戶進行相應的設置后即可進行編織,主要功能實現(xiàn)如下:

2.1 開機初始化

系統(tǒng)上電之后,在進入主控制程序之前,需要進行將搖床起、底板回零,機頭三角處于編織狀態(tài),選針器壓下,導紗器、電磁閥收起等一系列的初始化,流程如圖2所示。

圖2 初始化流程

進入初始化程序之后,打開GPIO設備文件,讀取U盤中的花型文件并將所讀數(shù)據保存于數(shù)組中,將選針器、紗嘴及機頭電磁鐵清零后檢查是否有用戶輸入操作,若有,則啟動電動機,帶動機床向右移動,通過讀取機頭右側傳感器信號,判斷機頭是否到達右限位,若是,則將搖床、卷布、壓針電機清零,隨后啟動機頭向左移動并開始計數(shù),到達左限位計數(shù)1 000,中間位置計數(shù)500。最后讀取花型文件第一行數(shù)據,機頭向右運行至超過右限位停止,至此進入主編織程序。

2.2 花型文件解析

作為原始輸入,系統(tǒng)通過解析花型文件獲取數(shù)據,并調用設備控制函數(shù)進行控制[8]。文件中包括機頭速度、移床針數(shù)、密度、組織紗嘴數(shù)據。每個花型文件的第一行前四個字節(jié)分別為花型的寬度和高度,第二行以及第一行的剩余部分為加密部分,只有密碼吻合才能讀取。系統(tǒng)每編織一行都要讀取控制數(shù)據和紗嘴數(shù)據,控制數(shù)據設置24個字節(jié)(B1~B24),定義如圖3所示。組織紗嘴數(shù)據的長度由花型寬度決定,之后便是下一行的控制數(shù)據,如此反復直到結束。

2.3 上位機與下位機的通信

ARM9控制器與FPGA之間的傳輸采用I/O口模擬總線的方式,其幀結構定義如圖4所示:bit[7..0]與bit[12..8]分別定義為數(shù)據存儲位SD[7..0]和地址存儲位SA[4..0],bit[14..13]存儲片選cs[1..0],bit[16..15]存儲中斷nInt[1..0],bit[29..10]存儲實時針數(shù)knit_num[9..0],bit[30]代表機頭運轉方向,bit[31]代表中斷標志。當需要讀取傳感器信號時,將傳感器信號地址存儲在bit[29..25]中。

圖3 控制數(shù)據

圖4 幀結構定義

2.3.1 傳感器信號讀取

系統(tǒng)通過讀取傳感器信號獲取當前編織信息,并根據當前信號做出相應操作[9],總共有30個傳感信號,所以為8位數(shù)據線分配4個地址:

(1)01001:機頭三角到位信號;

(2)00111:高5位故障信號,低3位機頭位置信號;

(3)00101:壓針電機零位置信號;

(4)00011:低3位用戶操作信號,中間兩位搖床電機零位信號,其余兩位空余。

如圖1所示,傳感器信號通過FPGA(1)板讀入,沒有動作時,令FPGA(1)的片選信號無效,讀取傳感信號時,先把傳感信號地址清零,再讀入要讀取的信號地址,然后令FPGA(1)板的片選信號有效,調用驅動讀取信號并儲存在數(shù)據存儲位SD[7..0]中,讀取數(shù)據存儲位數(shù)據,調用return(rval&0xff)返回傳感器信號值,再將傳感器地址清零。傳感器信號讀取完畢。

2.3.2 機頭與紗嘴電磁鐵的控制

機頭通過向系統(tǒng)寫入數(shù)據進行控制,而機頭又是由電磁鐵控制的,所以歸根到底是對電磁鐵的控制[10]。雙系統(tǒng)電腦橫機機頭總共有16個電磁鐵,每個系統(tǒng)有8個,在程序中總共為其設置了4個地址,每個地址控制4個電磁鐵,由FPGA(2)板控制。同樣,在沒有動作時,將FPGA(2)板的片選信號置為無效,首先讀取系統(tǒng)號,再確定電磁鐵號,然后將數(shù)據寫入,由于每個系統(tǒng)控制8個電磁鐵,前4個由地址1控制,后4個由地址2控制,所以當電磁鐵號大于4時寫第二個地址,當電磁鐵號小于4時寫第一個地址,然后將FPGA(2)板置為有效,將數(shù)據發(fā)送到相應地址。

同理,紗嘴也是由16個電磁鐵組成,其控制原理與機頭完全一樣,在此就不贅述。

2.3.3 電機控制

系統(tǒng)包含壓針電機、搖床卷布電機、主軸電機,這三種電機都由FPGA(2)板控制。

系統(tǒng)設置8個壓針電機控制壓針密度,每個壓針電機配有一個地址,兩個數(shù)據位,低位數(shù)據為脈沖信號,高位數(shù)據為方向信號。首先令FPGA(2)板片選信號無效,確定電機號,寫方向到數(shù)據線,再寫地址到地址線,令FPGA(2)板有效。

搖床電機和卷布電機控制方式相同,分別配有一個地址[11],兩位數(shù)據,用來控制正反兩種脈沖,正脈沖正轉,反脈沖反轉。

主軸電機為交流伺服電機,由4位數(shù)據控制,1、2位設置了兩個速度等級,3、4位分別為方向和使能。FPGA(2)根據寫入的速度等級發(fā)送相應頻率的脈沖。通過將方向、速度、使能信號寫入數(shù)據線,再將相應的電機地址寫入地址線,便可進行控制。

3 圖形用戶界面

考慮到可移植性強,界面友好,良好的封裝性及其模塊化的程度,以及Linux對其的支持,圖形用戶界面使用Qt進行編寫。界面在Linux系統(tǒng)的宿主機上進行開發(fā),之后進行交叉編譯后下載到目標機上運行。

3.1 開發(fā)環(huán)境的搭建

在安裝Linux發(fā)行版本之前,需要安裝Vmware Workstation虛擬機。由于PC機上具有豐富的開發(fā)資源,在宿主機上進行開發(fā),并與目標機通過交叉編譯器進行連接,安裝交叉編譯器選擇arm-Linux-gcc-4.4.3,將其復制到/tmp目錄下,進入該目錄,執(zhí)行如下命令進行解壓安裝:

#cd/tmp

#tarxvzf arm-linux-gcc-4.4.3-tgz -C /

執(zhí)行上面的命令把arm-Linux-gcc安裝到/opt/ARM/toolschain/4.4.3/,此外還要執(zhí)行以下命令將編譯器路徑加入系統(tǒng)環(huán)境變量:

#gedit /root/.bashrc

打開bashrc,在最后一行加入:export #PATH=$PATH:/opt/ARM/toolschain/4.4.3/bin,保存退出后重啟或注銷系統(tǒng),以上設置將生效。

在Qt/E主界面設計中,需要使用大量的按鈕和標簽。為了更加直觀和方便地進行集成化設計,采用了QtCreator這款集成開發(fā)工具。QtCreator是跨平臺的開源IDE,不但界面簡潔,而且操作也非常簡單,是初學者的不二選擇。首先安裝Qt的SDK(qt-sdk-linux-x86-opensource-2010.05.1.bin),把qt-sdk-linux-x86-opensource-2010.05.1.bin文件拷貝到/tmp目錄,執(zhí)行如下命令將文件改為可執(zhí)行并解壓安裝:

#chmod +x qt-sdk-linux-x86-opensource-2010.05.1.bin

#./qt-sdk-linux-x86-opensource-2010.05.1.bin

由于該基于Qt的操作系統(tǒng)最終要在橫機上運行,所以需要ARM版的Qt。這里編譯制作了腳本build.sh用來編譯Qt,代碼如下:

1.#/bin/bash

2.QTVERSION=4.8.5

3.PKGNAME=qt-everywhere-opensource-src-${QTVERSION}

4.QTPACKAGE=${PKGNAME}.tar.gz

5.DESTDIR=/usr/local/Trolltech/QtEmbedded-${QTVERSION}-arm

6.[-d ${PKGNAME}] && rm -rf ${PKGNAME}

7.[-d ${DESTDIR}] && rm -rf ${DESTDIR}

8.rm -rf qt-everywhere-opensource-src-${QTVERSION}

9.tarxvzf $QTPACKAGE

#----------------------------------------

10.cd qt-everywhere-opensource-src-${QTVERSION}

Echo yes|./configure -opensource -embedded arm -xplatform qws /linux-arm-g++-webkit -qt-gfx-transformed-qt-libtiff-qt-libmng-qt-mouse-tslib-qt-mouse-pc-no-mouse-linuxtp -no-neon

11.make && make install

制作完成后,進入源代碼目錄執(zhí)行如下命令:

#cd /opt/arm-qte-4.8.5

#./build.sh

編譯完成后,制作腳本mkt,從目標文件分別提取必要的庫文件并分別打包成ARM版本(target-qte-4.8.5-to-board.tgz)和PC上的版本(target-qte-4.8.5-to-pc.tgz)。QtE4.8.5會安裝在/usr/local/Trolltech/QtEmbedded-4.8.5-arm/下,其中包含所需的庫文件和應用程序。將該路徑加入PATH,執(zhí)行如下命令:

#gedit /etc/profile

在最后一行加上:export PATH=/usr/local/Trolltech/QtEmbedded-4.8.5-arm/bin:$PATH

為了檢驗開發(fā)環(huán)境是否搭建成功,先編寫一個簡單helloworld程序,放在開發(fā)板上運行,看是否成功。

3.2 為Qt/E添加觸摸屏驅動

系統(tǒng)選用四線壓力感應控制的電阻觸摸屏LTM035A776C。S3C2416內部的觸摸屏接口控制觸摸屏的不同工作模式,首先將觸屏控制器初始化,此時為中斷等待模式,同時初始化定時器,將其設定為每10 ms檢查一次是否被觸摸并注冊到內核同時使能中斷。當觸摸動作觸發(fā)TS中斷時,即進入中斷處理函數(shù),檢測觸摸坐標并處理。

通常,鼠標、鍵盤等以設備驅動接口的形式封裝在Qt/E中[12],但是,在Qt/E中并沒有專用的觸屏設備接口。所以,需要通過鼠標的驅動接口來控制,將觸摸屏模擬為鼠標。要實現(xiàn)Qt/E中的觸摸屏驅動,需要修改qwsmouseyopy_qws.cpp中的兩個函數(shù)。首先,在QWSYopyMouseHandleprivate類構造函數(shù)中將觸摸屏設備文件/dev/ts修改為/dev/xxts;然后,修改readMouseData函數(shù),使其正確讀取設備文件、判斷觸摸狀態(tài)并將其轉換為屏幕上的X/Y坐標數(shù)據。觸摸屏的數(shù)據存在如下結構體中:

typedef struct{

short pressure;

short xpos;

short ypos;

short timestamp;

}ts_sample;

readMouseData()通過open函數(shù)打開設備驅動文件并讀取。最后,設定編譯選項,重新編譯Qt/Embedded即可。

3.3 用戶界面的實現(xiàn)

電腦橫機系統(tǒng)龐大,所包含的界面眾多,下面以橫機主界面(見圖5)為例,介紹用戶界面的設計方法。使用Qt設計用戶界面主要包括界面設計、信號和槽的連接、槽的定義。

圖5 橫機主界面

3.3.1 界面設計

Qt提供了兩種界面設計的方法。一種是使用Qtdesigner直接從工具欄將所需要的控件拖到界面中,使用QLayout()類進行窗口布局;一種是采用純代碼的方法在程序中進行控件的定義及布局[13]。這里使用前面所安裝的集成開發(fā)環(huán)境QtCreater,建立.ui文件,啟動Qtdesigner,進行窗口布局。編譯時,Qt會自動將.ui文件裝換成C++可識別的.h文件。圖5主界面總共有15個按鈕,包含電腦橫機的所有功能。工作時,需要點擊按鈕,以觸發(fā)它們的clicked()信號,并通過與槽函數(shù)的連接跳轉到各自頁面。所以需要在頭文件中添加私有的槽函數(shù)定義,如下:

private slots:

void systemButtonclicked();

void runButtonclicked();

void languageButtonclicked();

void fileButtonclicked();

void timeButtonclicked();

……

void netButtonclicked();

void testButtonclicked():

3.3.2 信號與槽的關聯(lián)

信號與槽是一種用于對象間通信的機制,是Qt的獨特之處[14]。為了用戶在Qt程序中點擊按鈕控件是可運行指定函數(shù),信號與槽提供可以運行指定函數(shù)的框架。Qt提供的所有控件擁有多種預設信號。例如,QPushButton控件的單擊(click)、雙擊(doubleclick)、鼠標經過(mouseover)等多種信號。信號用于處理發(fā)生的事件,槽則指定從信號處接收的事件的函數(shù)。因此可以將信號與槽視為一個管道。而且,信號與槽并不是1對1匹配的,一個信號可以關聯(lián)多個槽,一個槽也可以關聯(lián)多個信號。當發(fā)生鼠標單擊信號時,調用函數(shù)connect,與運行特定函數(shù)的槽相關聯(lián)。例如,當單擊系統(tǒng)測試按鈕時,槽函數(shù)接收到信號,跳轉到測試頁面,關聯(lián)該信號與槽的代碼示例如下:

Connect(ui->QtestButton,SIGNAL(clicked()),this,SLOTS(testButtonclicked()));

3.3.3 槽函數(shù)的定義

在界面設計過程中,需要根據橫機運行情況自己編寫槽函數(shù)。由于橫機界面眾多,所以Qt提供了show()和hide()類來顯示和隱藏窗體。槽函數(shù)的編寫需要在.cpp文件中進行。

4 結果展示

面對這樣一個復雜的橫機系統(tǒng),調試主要分為模塊調試和整機調試。將電腦橫機控制器的界面系統(tǒng)移植到開發(fā)板上,可以通過觸摸屏控制電腦橫機工作。與傳統(tǒng)橫機相比,伺服電機響應時間更短,并且可以通過觸摸屏準確控制電機運轉速度,在整機調試階段,處理器實時讀取FPGA返回的針位置,根據針位置發(fā)送控制數(shù)據至機頭以控制選針,準確度高,運行比較穩(wěn)定。運行實例結果如圖6所示。

5 結束語

為了實現(xiàn)上位機與下位機信號的快速處理,以及獲得更加人性化的人機交互,在詳細分析電腦橫機上位機系統(tǒng)技術需求的基礎上,以ARM9為核心硬件平臺,設計了在嵌入式Linux系統(tǒng)電腦橫機上位機系統(tǒng),并應用Qt設計開發(fā)了友好的圖形用戶界面。調試和試運行結果表明,所設計的電腦橫機上位機系統(tǒng)運行可靠、穩(wěn)定,電腦橫機工作性能良好,滿足了工程應用要求;與傳統(tǒng)的橫機上位機系統(tǒng)相比,其功能更強,實時性更好,軟件界面更加人性化。

圖6 運行實例結果

[1] 黃向軍.新型嵌入式電腦橫機控制器的設計[D].杭州:浙江大學,2007.

[2] 朱石林.電腦橫機控制系統(tǒng)的設計[D].杭州:浙江理工大學,2009.

[3] 薛 佳.嵌入式電腦橫機控制器關鍵技術的研究[D].杭州:浙江理工大學,2009.

[4] 王紅凱,張森林.基于Linux嵌入式全自動橫機軟件系統(tǒng)設計[J].紡織學報,2008,29(2):101-105.

[5] 金 昌.全自動電腦橫機花型準備和控制系統(tǒng)的研究[D].武漢:武漢理工大學,2006.

[6] 王琛鑾.電腦橫機控制器的軟件設計[D].杭州:浙江大學,2006.

[7] 呂建飛,傅建中.新型電腦橫機的開發(fā)研制[J].針織工業(yè),2005(5):13-15.

[8] 李 鋒.電腦橫機控制器的硬件設計[D].杭州:浙江大學,2006.

[9] Li Ning,Wu Xiaoguang,Zhang C,et al.A new type of fabric density regulating device base on the application of computer flat knitting machine[J].Journal of Wuhan Textile University,2013,11(4):65-69.

[10] Zhang C,Zhang C,Wu Xiaoguang.Control system data preparation of computer flat knitting machine[J].Journal of Textile Research,2012,33(8):124-129.

[11] Han Q,Hou P W.The pattern management mathematical method of computer flat knitting machines based on embedded processor[J].Applied Mechanics & Materials,2010,43:156-159.

[12] Zhu N H.Research and implementation of I~2C device driver under embedded Linux system[J].Microcomputer Information,2010,26(11):70-72.

[13] 丁松林,黃麗琴.Qt4圖形設計與嵌入式開發(fā)[M].北京:人民郵電出版社,2009:5-8.

[14] 鄭阿奇,陳 超.Qt4開發(fā)實踐[M].北京:電子工業(yè)出版社,2011:121-123.

Host System of Computer Flat Knitting Machine with Qt

ZHU Yao-lin,LIU Hui-lin

(School of Electrics and Information,Xi’an Polytechnic University,Xi’an 710048,China)

Computer flat knitting machine is a high degree of automation of mechanical and electrical integration of textile machinery.With the popularity of computer control of knitting machinery,the high performance of computer flat knitting machine is needed more and more.Computer flat knitting machine control system is divided into host computer and slave computer.In order to achieve the rapid signal processing of computer flat knitting machine between upper machine and lower machine as well as more humanized human-computer interaction,a computerized flat knitting machine computer system based on Qt is introduced.It uses processor of ARM9 S3C2416 and extension circuit as the hardware carrier of flat knitting upper machine system,taking the embedded Linux as the controller software platform to realize the communication of upper machine and lower machine through simulating the bus by the GPIO port.By means of analyzing the demand of flat knitting machine and the way of the realization of the system,Qt development of human-computer interaction interface is used by stating from the actual performance of the embedded system,which has realized data processing and display,as well as the function of weaving finally.Compared with the traditional flat knitting machine system,the function of this system is stronger with better real-time performance and more humanized software interface.

Qt;computer flat knitting;upper machine;embedded system;Linux

2016-04-22

2016-08-11

時間:2017-02-17

國際科技合作與交流計劃(2016kw-043)

朱耀麟(1977-),男,博士(后),副教授,碩士生導師,研究方向為嵌入式系統(tǒng)及應用、信號與信息處理;劉慧琳(1991-),女,研究生,研究方向為電腦橫機系統(tǒng)設計及應用。

http://www.cnki.net/kcms/detail/61.1450.TP.20170217.1630.044.html

TP302

A

1673-629X(2017)04-0200-05

10.3969/j.issn.1673-629X.2017.04.045

猜你喜歡
機系統(tǒng)花型機頭
雙系統(tǒng)電腦橫機V型真領編織類型比較與效率分析
放療中小機頭角度對MLC及多靶區(qū)患者正常組織劑量的影響
哥特式浪漫
呼倫貝爾野生芍藥和栽培芍藥的繁殖生物學特性
基于交互式分割的蕾絲花型檢索算法
車機≈手機 ?
調頻廣播發(fā)射機的N+1備機系統(tǒng)
我國觀賞植物花型基因研究進展
博世完成對采埃孚轉向機系統(tǒng)的收購
747-400F貨艙機頭門系統(tǒng)原理及故障分析