• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Qt5開發(fā)的面向工業(yè)控制的顯控軟件

    2020-09-27 23:02:21曹策賀廣健付云博姜良旭
    電腦知識與技術(shù) 2020年23期
    關(guān)鍵詞:工業(yè)控制自動化

    曹策 賀廣健 付云博 姜良旭

    摘要:本文介紹了如何使用Qt5在x86計(jì)算機(jī)上開發(fā)面向工業(yè)控制的顯控軟件。本文在Qt Creater中利用C++語言進(jìn)行了計(jì)算機(jī)串口通信與網(wǎng)口通信的開發(fā),并利用Qt Creater內(nèi)部集成的Qt Designer進(jìn)行了人機(jī)交互界面的設(shè)計(jì)。本文開發(fā)的計(jì)算機(jī)軟件,通過串口與STM32微控制器完成通信,并基于自擬的通信協(xié)議利用人機(jī)交互界面對電磁閥、步進(jìn)電機(jī)、舵機(jī)等常用的工業(yè)控制模塊進(jìn)行控制;通過網(wǎng)口與UNIVERSAL ROBOTS協(xié)作型機(jī)器人完成通信,并基于TCP/IP通信協(xié)議對機(jī)器人發(fā)送控制指令,控制機(jī)器人的位置與姿態(tài);通過網(wǎng)口與PLC完成通信,基于標(biāo)準(zhǔn)的Modbus TCP協(xié)議完成對PLC一個(gè)工作循環(huán)的啟??刂?。通過本文中顯控軟件開發(fā)的過程可以看出,使用Qt5可以方便地在x86計(jì)算機(jī)上開發(fā)面向工業(yè)控制的顯控軟件。另外,開發(fā)者還可以自擬通信協(xié)議,進(jìn)行功能更加復(fù)雜的串口、網(wǎng)口通信。

    關(guān)鍵詞:Qt5;C++;顯控軟件;工業(yè)控制;自動化

    中圖分類號:? TP311.1? ? ? ? ? ?文獻(xiàn)標(biāo)識碼:A

    文章編號:1009-3044(2020)23-0016-04

    Abstract: The paper describes how to use Qt5 to develop display and control software for industrial control on x86 computers. The paper uses C ++ language in Qt Creater to develop computer serial communication and network communication, and uses Qt Designer which is integrated in Qt Creater to design the user interface. Based on a self-made communication protocol, the software developed in this paper communicates with the STM32 microcontroller through a serial port, and controls common industrial control modules such as solenoid valves, step motors, and servos through the user interface. The software communicates with UNIVERSAL ROBOTS collaborative robot through network port, and sends control commands to the robot based on the TCP / IP communication protocol to control the robot's position and posture. The software communicates with a PLC through network port, and controls the PLC to start and stop based on the Modbus TCP protocol. Through the development process of display and control software in the paper, it can be seen that using Qt5 can easily develop display and control software for industrial control on x86 computers. In addition, developers can also compose their own communication protocols to realize more complex functions through serial and network ports.

    Key words: Qt5; C++; display and control software; industrial control; automation

    當(dāng)前我國制造業(yè)正快速發(fā)展,智能制造[1,2]、柔性制造[3,4]、物聯(lián)網(wǎng)[5]等概念已漸漸進(jìn)入相關(guān)研究人員的視野中。高度自動化、智能化的設(shè)備正在逐步替代傳統(tǒng)的勞動密集型人工流水線,如生產(chǎn)PCB中常用的AOI(Auto Optical Inspection,自動光學(xué)檢測機(jī))[6]、輕工業(yè)中常用的AGV(Automated Guided Vehicle,自動導(dǎo)航車)[7]、快遞行業(yè)中的自動分揀設(shè)備[8]等。在研發(fā)此類設(shè)備時(shí),通常使用單片機(jī)、微控制器、PLC等作為系統(tǒng)的核心控制部件;而計(jì)算機(jī)作為人機(jī)交互的媒介,命令設(shè)備按照人的意圖完成不同的工作。本文針對這種架構(gòu)的自動化設(shè)備,介紹了一種基于Qt5的計(jì)算機(jī)顯控軟件的開發(fā)方法。

    Qt5隸屬于Qt跨平臺開發(fā)框架。Qt5中的Qt Creater是一個(gè)開源的、集成的軟件開發(fā)套件,僅需開發(fā)人員掌握C++語言,即可開發(fā)出高質(zhì)量的軟件。Qt Creater有兩個(gè)特點(diǎn):一是完全面向?qū)ο蟮木幊谭椒?二是信號與槽的機(jī)制。所謂完全面向?qū)ο蟮木幊淌侵冈赒t Creater中,所有的界面控件、計(jì)算機(jī)外圍硬件、系統(tǒng)內(nèi)部資源等都可以視為“對象”。此處“對象”的概念與C++語言中的“對象”基本一致。因此,開發(fā)人員可以方便快捷的使用計(jì)算機(jī)、操作系統(tǒng)中的各類資源,無須具體了解這些資源的底層實(shí)現(xiàn)方法。信號與槽的機(jī)制是Qt的特有機(jī)制,在Qt5中,每一個(gè)對象都可以發(fā)送“信號(Signal)”和執(zhí)行“槽(Slot)”,而二者可以通過“連接(Connect)”進(jìn)行關(guān)聯(lián),通過“斷開(Disconnect)”取消關(guān)聯(lián)。比如開發(fā)人員連接了串口對象的“已接收到數(shù)據(jù)” 信號與界面對象的“顯示文本”槽,那么當(dāng)該信號被觸發(fā)時(shí)(即計(jì)算機(jī)收到串口數(shù)據(jù)),界面對象會自動地執(zhí)行對應(yīng)的槽(即在計(jì)算機(jī)屏幕上顯示收到的數(shù)據(jù))。Qt5支持一個(gè)對象擁有多個(gè)信號和多個(gè)槽,也支持多對多的連接方式。這種機(jī)制相對于傳統(tǒng)的回調(diào)函數(shù)的方法,其優(yōu)點(diǎn)在于參數(shù)的類型安全與對象間的松散耦合;其缺點(diǎn)在于槽函數(shù)的響應(yīng)速度遠(yuǎn)低于回調(diào)函數(shù),不過由于現(xiàn)在計(jì)算機(jī)硬件的高速發(fā)展,用戶幾乎感受不到二者響應(yīng)時(shí)間的差異。

    本文使用的框架版本為Qt 5.6.1,編譯套件為MinGW 4.9.2。運(yùn)行的平臺為標(biāo)準(zhǔn)x86計(jì)算機(jī),使用的操作系統(tǒng)為Windows 10。下面本文借助Qt Creater作為開發(fā)工具,詳細(xì)介紹人機(jī)交互界面、串口、網(wǎng)口的開發(fā)方法與關(guān)鍵代碼,并在實(shí)際項(xiàng)目中進(jìn)行應(yīng)用。

    1 人機(jī)交互界面

    人機(jī)交互界面是設(shè)備操作者與設(shè)備之間的橋梁,操作者通過界面控制設(shè)備的運(yùn)作,設(shè)備通過界面告知操作者設(shè)備的相關(guān)信息。因此人機(jī)交互界面的設(shè)計(jì)應(yīng)該盡量直觀、簡潔。Qt Creater中集成了Qt Designer模塊,在建立Qt Widgets Application時(shí),系統(tǒng)默認(rèn)添加了一個(gè).ui格式的文件,這個(gè)文件中記錄的就是人機(jī)交互界面。在Qt Creater中左上角的項(xiàng)目文件中雙擊這個(gè).ui文件即可對界面進(jìn)行編輯。

    圖1中所示為通過Qt Designer創(chuàng)建的人機(jī)交互界面的設(shè)計(jì),本項(xiàng)目中項(xiàng)目名為test,使用的基類為QWidget,派生類為Widget。人機(jī)交互界面使用的控件均為Qt Designer中的標(biāo)準(zhǔn)控件。Qt在創(chuàng)建項(xiàng)目時(shí),在類的聲明中創(chuàng)建了一個(gè)指向自己的指針變量Ui::Widget *ui,利用這個(gè)指針即可使用C++代碼來操作界面中的所有控件對象。例如在界面中創(chuàng)建一個(gè)按鈕控件,通過右下角的屬性面板將其對象名改為btnTest,然后在Widget類的構(gòu)造函數(shù)中添加以下代碼:

    ui->btnTest->setCheckable(true);

    ui->btnTest->setText("Test");

    即可將該按鈕設(shè)置為自鎖按鈕,且按鈕上顯示的文本為Test。

    在實(shí)際使用過程中,開發(fā)者往往需要點(diǎn)下某個(gè)按鈕,軟件執(zhí)行相應(yīng)的動作,此時(shí)就需要使用信號與槽的功能將按鈕的點(diǎn)擊信號與要執(zhí)行的槽函數(shù)進(jìn)行連接。此時(shí)需要先聲明一個(gè)槽函數(shù),例如在Widget類的聲明中添加下列代碼:

    private slots:

    void mySlotFunc(bool checked);

    即可聲明一個(gè)名為mySlotFunc的槽函數(shù)。

    然后進(jìn)行連接,在Widget的構(gòu)造函數(shù)中添加下列代碼:

    connect(ui-> btnTest, SIGNAL(chicked(bool)), this, SLOT(mySlotFunc(bool)));

    這是最常用的一種連接方式,這里的connect函數(shù)有4個(gè)參數(shù):第1個(gè)參數(shù)為信號發(fā)出者的指針;第2個(gè)為信號,SIGNAL()是一個(gè)能將函數(shù)名轉(zhuǎn)化為字符串的宏;第3個(gè)參數(shù)為信號接收者的指針,此處使用this指針指向Widget自己;第4個(gè)參數(shù)為槽函數(shù),SLOT()是一個(gè)與SIGNAL()功能類似的宏。當(dāng)Widget對象進(jìn)行構(gòu)建時(shí),程序?qū)?zhí)行這一句代碼,將指定的信號與槽進(jìn)行關(guān)聯(lián)。此時(shí)用戶在界面上點(diǎn)擊btnTest按鈕即可執(zhí)行mySlotFunc函數(shù)。在連接信號與槽時(shí),可以發(fā)現(xiàn)有些對象的信號是帶參數(shù)的,這表示這個(gè)信號發(fā)出的同時(shí),還會給槽函數(shù)傳遞一個(gè)該類型的變量。比如上文中的chicked(bool)信號,這個(gè)bool型變量表示的是自鎖按鈕的狀態(tài),槽函數(shù)可以根據(jù)按鈕狀態(tài)實(shí)現(xiàn)不同的功能。開發(fā)者可以利用該特點(diǎn)進(jìn)行信息的傳遞,實(shí)現(xiàn)部件間的通信。

    2 串口通信

    2.1 串口控制方式

    本文在實(shí)際項(xiàng)目中使用的串口通信協(xié)議為自擬通信協(xié)議,主要為了控制電磁閥、直流電機(jī)、步進(jìn)電機(jī)以及舵機(jī)。

    圖2所示為實(shí)際項(xiàng)目中的串口控制框圖。用戶通過計(jì)算機(jī)上的顯控軟件操作設(shè)備,顯控軟件將用戶的指令按照事先約定的通信協(xié)議通過串口發(fā)送給STM32微控制器。STM32微控制器根據(jù)指令控制電磁閥、電機(jī)等模塊。

    2.2 串口調(diào)試

    首先為軟件添加串口模塊,在Qt Creater中左上角的項(xiàng)目文件中雙擊test.pro,在編輯器中找到QT += core gui這一行,在該行的下一行輸入QT += serialport,保存test.pro文件。然后在“widget.h”的最上方包含兩個(gè)頭文件:

    #include //串口對象

    #include //串口信息對象

    隨后在QWidget類聲明中聲明一個(gè)公有串口對象及一個(gè)公有函數(shù):

    QSerialPort *serialPort = new QSerialPort(this);

    void initPort();//串口初始化函數(shù)

    Qt庫函數(shù)中為開發(fā)者提供了QSerialPort類,專門用于操作計(jì)算機(jī)的串口。上述聲明使用new關(guān)鍵字將該對象聲明到系統(tǒng)的堆上,同時(shí)指明了其父對象為this,即Widget。這樣聲明的好處是不占用系統(tǒng)的棧資源。而且在Qt中,若使用這種指明父對象的方法,當(dāng)父對象銷毀時(shí),會自動地先銷毀其子對象,無須開發(fā)者自行使用delete關(guān)鍵字銷毀堆上的對象,進(jìn)而有效防止內(nèi)存泄漏。

    下面對initPort()函數(shù)進(jìn)行實(shí)現(xiàn):

    void Widget::initPort(){

    QList info = QSerialPortInfo::availablePorts();

    for(int i=0;i

    ui->cmbPortName->addItem(info[i].portName());

    }

    }

    上述代碼利用QSerialPortInfo類中的靜態(tài)函數(shù)availablePorts()遍歷系統(tǒng)所有的可用串口,并將串口名排列至名為cmbPortName的下拉列表中。上述代碼編寫完成后,可在Widget對象的構(gòu)造函數(shù)中調(diào)用,這就實(shí)現(xiàn)了軟件運(yùn)行后,自動查找所有可用串口的功能。

    在UI中右鍵點(diǎn)擊打開串口按鈕,選擇轉(zhuǎn)到槽,在彈出的對話框中選擇clicked(bool)。此時(shí),Qt自動添加了一個(gè)名為on_btnOpen_clicked(bool checked)的函數(shù),該函數(shù)為當(dāng)btnOpen對象發(fā)出clicked(bool checked)信號時(shí)對應(yīng)的槽函數(shù)。這種“on_對象_信號”形式的槽函數(shù)是連接Qt Designer控件的一種特殊用法,Qt會自動將該對象的信號與本函數(shù)連接,無須開發(fā)者手動使用connect函數(shù)。此函數(shù)的代碼如下:

    void Widget::on_btnOpen_clicked(bool checked){

    if(checked==true){

    serialPort->setPortName(ui->cmbPortName->currentText());//選擇串口

    serialPort->setBaudRate(115200);//波特率

    serialPort->setDataBits(QSerialPort::Data8);

    //8位數(shù)據(jù)位

    serialPort->setStopBits(QSerialPort::OneStop);

    //1位停止位

    serialPort->setParity(QSerialPort::NoParity);

    //無奇偶校驗(yàn)

    serialPort->setFlowControl(QSerialPort::NoFlowControl);

    //不使用流控

    serialPort->open(QIODevice::ReadWrite);

    //打開串口

    ui->btnOpen->setText(tr("關(guān)閉串口"));

    //更新按鈕文本

    }

    if(checked==false){

    serialPort->close();//關(guān)閉串口

    ui->btnOpen->setText(tr("打開串口"));

    //更新按鈕文本

    }

    }

    上述代碼首先根據(jù)按鈕狀態(tài),即checked的值,判斷按鈕是按下還是抬起。若按下則打開串口;若抬起則關(guān)閉串口。這里使用代碼直接對串口進(jìn)行配置,開發(fā)者可以合理設(shè)計(jì)界面讓用戶可以選擇這些參數(shù)的值。

    完成上述代碼的編輯后,計(jì)算機(jī)串口的通信通道已建立完成,下面開始編寫串口發(fā)送與串口接收函數(shù),代碼如下:

    int Widget::serialPortTXD(char *str, int num){

    serialPort->write(str, num);//發(fā)送數(shù)據(jù)

    return serialPort->waitForBytesWritten(100);

    //確認(rèn)數(shù)據(jù)發(fā)送完畢,100ms超時(shí)

    }

    int Widget::serialPortRXD(char *str, int timeout){

    QByteArray buffer;//臨時(shí)存儲接收數(shù)據(jù)

    while(1){

    if(serialPort->waitForReadyRead(timeout)){

    buffer += serialPort->readAll();

    if(buffer.size() == 13)

    break;

    }

    else//超時(shí)返回

    return -1;

    }

    memcpy(str, buffer.constData(), buffer.size());

    return buffer.size();//返回接收的字節(jié)數(shù)

    }

    上述代碼分別為串口發(fā)送函數(shù)與串口接收函數(shù)。二者主要是利用了QSerialPort類中的write方法與readAll方法。另外由于實(shí)際項(xiàng)目中下位機(jī)不能主動向上位機(jī)發(fā)送信息,因此使用了waitForReadyRead進(jìn)行阻塞式接收。如果開發(fā)者想要按照“中斷式”接收串口數(shù)據(jù),可將該函數(shù)作為槽函數(shù),并與serialPort對象中的readyRead信號連接,即可實(shí)現(xiàn)隨時(shí)接收串口傳來的數(shù)據(jù)。

    至此串口通信的發(fā)送與接收的基礎(chǔ)代碼已全部完成,開發(fā)者可自行利用connect函數(shù)將界面中各種控件的信號與自己編寫的槽函數(shù)連接,實(shí)現(xiàn)用戶點(diǎn)擊界面,軟件產(chǎn)生相應(yīng)串口數(shù)據(jù)的功能。如果開發(fā)者想通過串口控制標(biāo)準(zhǔn)的工業(yè)控制模塊,那么將通信協(xié)議修改為Modbus協(xié)議即可[9]。

    在實(shí)際項(xiàng)目中,通過上文的方法編譯出的軟件可以完成與STM32微控制器的串口通信,可以正確控制16個(gè)電磁閥、2個(gè)直流電機(jī)、3個(gè)步進(jìn)電機(jī)以及2個(gè)舵機(jī)。

    3 網(wǎng)口通信

    3.1 網(wǎng)口控制方式

    當(dāng)使用網(wǎng)絡(luò)通信進(jìn)行工業(yè)控制時(shí),通常使用Modbus TCP協(xié)議[10]。該協(xié)議可以看作是網(wǎng)絡(luò)通信中的TCP協(xié)議與串口通信的Modbus協(xié)議結(jié)合而成的協(xié)議。TCP協(xié)議是面向連接的協(xié)議,其要求通信雙方必須建立可靠的連接,然后再通信。TCP協(xié)議使用CS模型進(jìn)行通信:通信的一方為客戶端(Client),另一方為服務(wù)器(Server)。使用Modbus TCP協(xié)議通信的雙方,先根據(jù)TCP協(xié)議進(jìn)行連接,完成連接后按照Modbus協(xié)議的格式發(fā)送數(shù)據(jù)包。Modbus TCP協(xié)議中客戶端又稱為主站,服務(wù)器又稱為從站。一般一個(gè)控制系統(tǒng)中僅有一個(gè)主站,但是可以有多個(gè)從站;通信必須由主站發(fā)起,從站只能響應(yīng)主站的指令,不能主動發(fā)起通信。

    上圖所示為實(shí)際項(xiàng)目中網(wǎng)口相關(guān)的控制框圖。計(jì)算機(jī)同時(shí)建立服務(wù)器與客戶端,服務(wù)器用來控制UR機(jī)器人,客戶端用來控制PLC。

    3.2 網(wǎng)口通信服務(wù)器的調(diào)試

    由于項(xiàng)目中的計(jì)算機(jī)需要同時(shí)作為服務(wù)器與客戶端與不同的設(shè)備通信,因此代碼中將每個(gè)通信的套接字放在各自獨(dú)立的線程中以實(shí)現(xiàn)并行通信。

    類似于調(diào)試串口,首先添加網(wǎng)絡(luò)模塊,在test.pro中添加QT += network。然后以QTcpServer為基類派生一個(gè)子類robotServer,以下為派生類的聲明。

    class robotServer: public QTcpServer

    {

    Q_OBJECT

    public:

    robotServer (QObject *parent = 0) :QTcpServer(parent){}

    ~ robotServer (){}

    QTcpSocket socket;//客戶端套接字

    protected:

    void incomingConnection(qintptr socketDescriptor){

    socket.setSocketDescriptor(socketDescriptor);}

    signals:

    void robotDataReply(QString str);

    private slots:

    void serverInit(QString addr, uint port){

    listen(QHostAddress(addr),port);}

    void serverClose(){

    socket.close();

    close();}

    void dataSend(QString str);

    void dataRecv();

    };

    在上述類聲明中Q_OBJECT為Qt元對象宏,添加此宏才能使用信號、槽、對象樹等Qt特有的功能。serverInit槽用于創(chuàng)建服務(wù)器,監(jiān)聽指定的端口。serverClose槽用于斷開套接字并關(guān)閉服務(wù)器。派生類中重新實(shí)現(xiàn)了incomingConnection(qintptr socketDescriptor)虛函數(shù),當(dāng)有新的客戶端連接服務(wù)器時(shí),系統(tǒng)會自動調(diào)用此函數(shù)建立套接字。由于實(shí)際項(xiàng)目中僅有1個(gè)UR機(jī)器人作為客戶端與上位機(jī)通信,因此類的聲明中只聲明了1個(gè)套接字,即服務(wù)器僅能同時(shí)連接1個(gè)客戶端。當(dāng)然開發(fā)者可以聲明多個(gè)套接字用來同時(shí)連接多個(gè)客戶端。由于篇幅所限,上述聲明中并沒有對收發(fā)函數(shù)進(jìn)行實(shí)現(xiàn),其實(shí)現(xiàn)過程與串口收發(fā)類似。另外類中還聲明了一個(gè)信號用來與UI界面通信,將機(jī)器人回傳的信息顯示在UI上。

    在構(gòu)建好服務(wù)器后,新建一個(gè)子線程。以QThread為基類派生一個(gè)子類serverThread。派生類的目的是重構(gòu)QThread基類中的虛函數(shù)run()。以下為派生類的聲明。

    class serverThread : public QThread

    {

    Q_OBJECT

    public:

    serverThread(QObject *parent = 0): QThread (parent){}

    ~serverThread(){

    requestInterruption();

    quit();

    wait();}

    protected:

    void run(){

    robotServer server;

    connect((Widget *)this->parent(),SIGNAL(serverOpen(QString,uint)),&server,SLOT(serverInit(QString,uint)));

    while(!isInterruptionRequested()){

    QCoreApplication::processEvents (QEventLoop::AllEvents, 100);//保持線程的事件循環(huán)

    msleep(1);}}

    };

    虛函數(shù)run()相當(dāng)于線程的主函數(shù),重新實(shí)現(xiàn)此函數(shù)相當(dāng)于對線程的主函數(shù)進(jìn)行編程。另外在Qt中,任何子線程都禁止訪問UI界面中的對象,但可以通過信號和槽的方式與UI通信,間接操作UI界面中的對象。析構(gòu)函數(shù)中的requestInterruption()與線程主函數(shù)中的isInterruptionRequested()配合使用,可以保證線程安全退出。

    完成上述兩個(gè)對象的派生后,在Widget對象的聲明里添加一個(gè)子線程對象,代碼如下:

    serverThread *robotThread = new serverThread (this);

    在Widget對象的構(gòu)造函數(shù)里啟動線程,代碼如下:

    robotThread->start();

    Qt5中的信號與槽也支持跨線程的連接方式,例如上述上文run()函數(shù)中的連接方式。這種連接方式是利用了Qt對象樹的特性,由于Widget對象(即UI界面)創(chuàng)建robotThread對象時(shí),使用this指針聲明了父子關(guān)系,因此在子線程內(nèi),用this->parent()返回的指針即為Widget的對象指針。

    在實(shí)際項(xiàng)目中,使用UR機(jī)器人作為客戶端成功與本文構(gòu)建的服務(wù)器相連接。通過發(fā)送特定的控制指令實(shí)現(xiàn)了對UR機(jī)器人的遠(yuǎn)程控制。

    3.3 網(wǎng)口通信客戶端的調(diào)試

    客戶端的調(diào)試與服務(wù)器的調(diào)試過程類似,只需從QTcpSocket派生一個(gè)子類即可,創(chuàng)建線程的方法與創(chuàng)建服務(wù)器線程完全一致,此處不再贅述。

    在實(shí)際項(xiàng)目中,本文構(gòu)建的客戶端成功與PLC相連接。通過標(biāo)準(zhǔn)的Modbus TCP協(xié)議讀、寫PLC的線圈狀態(tài),完成對PLC流水線的控制。

    4 結(jié)論

    (1)使用Qt5可以在x86計(jì)算機(jī)上開發(fā)面向工業(yè)控制的顯控軟件。使用Qt5自帶的QSerialPort類可以完成計(jì)算機(jī)串口通信、Modbus串口通信;使用QTcpServer類、QTcpSocket類以及他們的派生類可以完成TCP網(wǎng)絡(luò)通信、Modbus TCP網(wǎng)絡(luò)通信;使用QThread的派生類可以進(jìn)行多線程操作。使用這些Qt5標(biāo)準(zhǔn)類進(jìn)行軟件開發(fā),能快速實(shí)現(xiàn)預(yù)期功能而不必關(guān)心具體實(shí)現(xiàn)方法,從而大幅提高軟件開發(fā)的效率。

    (2)本文使用Qt 5.6.1 和C++語言編寫的顯控軟件在實(shí)際項(xiàng)目中成功控制了16個(gè)電磁閥、2個(gè)直流電機(jī)、3個(gè)步進(jìn)電機(jī)、2個(gè)舵機(jī)、1個(gè)UR5協(xié)作型機(jī)器人以及某型流水線。且該軟件還可以繼續(xù)擴(kuò)展,實(shí)現(xiàn)對更多工業(yè)模塊的復(fù)雜控制,進(jìn)一步提高系統(tǒng)的自動化程度。

    參考文獻(xiàn):

    [1] 張肅,許慧,黃蕊.我國人工智能產(chǎn)業(yè)發(fā)展問題研究[J].長春理工大學(xué)學(xué)報(bào),2018,31(5):1-6.

    [2] 鐘義信.人工智能:概念·方法·機(jī)遇[J].科學(xué)通報(bào),2017,62(22):2473-2479.

    [3] 倪珉.柔性制造系統(tǒng)在中小企業(yè)中的應(yīng)用和未來的發(fā)展[J].機(jī)械管理開發(fā),2018,33(8):227-229.

    [4] 任永杰,尹仕斌,邾繼貴.面向現(xiàn)代柔性制造的工業(yè)機(jī)器人高精度控制方法[J].航空制造技術(shù),2018(5):16-21.

    [5] 王銳,吳紫薇.基于物聯(lián)網(wǎng)技術(shù)的列車環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)[J].長春理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2019,42(3):133-137.

    [6] 馬曉波. 一種印刷電路板(PCB)AOI假缺點(diǎn)的修復(fù)方法[D]. 蘇州: 蘇州大學(xué), 2016: 1-7.

    [7] 賀冰倩. 倉庫智能AGV路徑設(shè)計(jì)及調(diào)度研究[D]. 武漢: 華中科技大學(xué), 2019: 16-19.

    [8] 吳星峰. 小包郵件自動分揀系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 長春: 吉林大學(xué), 2015: 1-3.

    [9] 戴振民.基于Qt5的MODBUS協(xié)議編程與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2018(17):55.

    [10] 羅旋,李永忠.Modbus TCP安全協(xié)議的研究與設(shè)計(jì)[J].數(shù)據(jù)采集與處理,2019,34(6):1110-1117.

    【通聯(lián)編輯:梁書】

    猜你喜歡
    工業(yè)控制自動化
    從電氣自動化安全角度談西門子工業(yè)控制PLC應(yīng)用
    分頻計(jì)數(shù)在汽車檢測中的應(yīng)用
    供電企業(yè)電力自動化主站系統(tǒng)研究
    錦界煤礦連采膠帶機(jī)集控系統(tǒng)的介紹
    供熱站自動控制系統(tǒng)中PLC的應(yīng)用
    AGV小車在白酒行業(yè)自動化立體倉庫中的應(yīng)用
    中國市場(2016年36期)2016-10-19 03:40:15
    配電室無人職守集控站在京博石化的運(yùn)用
    科技視界(2016年20期)2016-09-29 14:13:02
    配電線路運(yùn)行資料管理自動化的探討
    科技視界(2016年20期)2016-09-29 13:45:10
    基于MSC—51的主從式多級分布系統(tǒng)
    淺論工業(yè)控制過程DCS系統(tǒng)常見電磁干擾及抑制方法
    日韩欧美在线二视频| 夜夜看夜夜爽夜夜摸 | 女人被狂操c到高潮| 国产97色在线日韩免费| 校园春色视频在线观看| 精品国产乱子伦一区二区三区| 午夜福利影视在线免费观看| 欧美成人午夜精品| 91成人精品电影| 久久精品aⅴ一区二区三区四区| 男女床上黄色一级片免费看| 性色av乱码一区二区三区2| 一区二区三区精品91| 国产麻豆69| 午夜老司机福利片| 免费av中文字幕在线| 久久 成人 亚洲| 99久久99久久久精品蜜桃| 亚洲午夜精品一区,二区,三区| 超碰97精品在线观看| 国产精品久久久av美女十八| 国产免费av片在线观看野外av| 亚洲熟妇中文字幕五十中出 | 亚洲精品国产一区二区精华液| 人人澡人人妻人| 欧美国产精品va在线观看不卡| 两性午夜刺激爽爽歪歪视频在线观看 | 这个男人来自地球电影免费观看| 国产亚洲欧美98| svipshipincom国产片| xxxhd国产人妻xxx| 麻豆一二三区av精品| a级毛片黄视频| 国产精品综合久久久久久久免费 | 精品国产亚洲在线| av欧美777| 淫秽高清视频在线观看| 国产色视频综合| 日韩av在线大香蕉| 一区在线观看完整版| 视频区图区小说| 免费久久久久久久精品成人欧美视频| 变态另类成人亚洲欧美熟女 | 亚洲精品一二三| 国产精品av久久久久免费| 久久精品亚洲av国产电影网| 久久伊人香网站| 亚洲中文日韩欧美视频| 亚洲一区中文字幕在线| 村上凉子中文字幕在线| 五月开心婷婷网| 丝袜人妻中文字幕| 欧美一级毛片孕妇| 免费在线观看视频国产中文字幕亚洲| 亚洲伊人色综图| 88av欧美| 最近最新免费中文字幕在线| www.精华液| 国产精品野战在线观看 | 欧美激情高清一区二区三区| 免费在线观看亚洲国产| 91在线观看av| 久久久久久人人人人人| 国产一区二区激情短视频| 国产精华一区二区三区| 日本三级黄在线观看| 亚洲专区字幕在线| 波多野结衣高清无吗| av天堂在线播放| 亚洲第一青青草原| 99riav亚洲国产免费| 少妇的丰满在线观看| 国产在线精品亚洲第一网站| 国产精品1区2区在线观看.| 97人妻天天添夜夜摸| 激情在线观看视频在线高清| 欧美不卡视频在线免费观看 | 中文字幕人妻丝袜一区二区| 一区二区日韩欧美中文字幕| 久久久久久免费高清国产稀缺| 免费观看精品视频网站| 日日爽夜夜爽网站| 麻豆一二三区av精品| 久久久久久久久中文| 精品久久久精品久久久| 国产亚洲精品一区二区www| 脱女人内裤的视频| 真人做人爱边吃奶动态| 99国产精品99久久久久| 国产精品野战在线观看 | 国产一区二区三区综合在线观看| 午夜免费激情av| 操出白浆在线播放| 丰满迷人的少妇在线观看| 欧美日韩瑟瑟在线播放| 日韩精品青青久久久久久| 国产欧美日韩一区二区三| 久久精品影院6| 亚洲熟妇中文字幕五十中出 | 多毛熟女@视频| 国产欧美日韩一区二区精品| 99热国产这里只有精品6| 国产欧美日韩综合在线一区二区| 97超级碰碰碰精品色视频在线观看| 91麻豆av在线| 国产亚洲欧美精品永久| 国产精品一区二区在线不卡| 淫妇啪啪啪对白视频| 麻豆一二三区av精品| 久久久久国产精品人妻aⅴ院| 又黄又爽又免费观看的视频| 麻豆成人av在线观看| 妹子高潮喷水视频| 午夜精品国产一区二区电影| a级片在线免费高清观看视频| 老鸭窝网址在线观看| 欧美色视频一区免费| 制服人妻中文乱码| 超碰97精品在线观看| 日韩欧美三级三区| 夜夜爽天天搞| 久久久久精品国产欧美久久久| 美女国产高潮福利片在线看| 午夜福利一区二区在线看| 51午夜福利影视在线观看| 99久久精品国产亚洲精品| 国产1区2区3区精品| 97人妻天天添夜夜摸| 波多野结衣高清无吗| videosex国产| 国产成人一区二区三区免费视频网站| 成人永久免费在线观看视频| 亚洲精品在线观看二区| 欧美日韩乱码在线| 久久草成人影院| 国产成+人综合+亚洲专区| 久久久久亚洲av毛片大全| 视频区欧美日本亚洲| 久99久视频精品免费| 欧美最黄视频在线播放免费 | 久久精品国产亚洲av香蕉五月| 日韩av在线大香蕉| www.熟女人妻精品国产| 一二三四在线观看免费中文在| 日本欧美视频一区| 日韩人妻精品一区2区三区| 国产亚洲欧美精品永久| 亚洲精品一卡2卡三卡4卡5卡| 国产高清激情床上av| 男女下面插进去视频免费观看| 中出人妻视频一区二区| 变态另类成人亚洲欧美熟女 | 日韩视频一区二区在线观看| 午夜老司机福利片| 两性午夜刺激爽爽歪歪视频在线观看 | 国产主播在线观看一区二区| 人成视频在线观看免费观看| 国产97色在线日韩免费| 老司机深夜福利视频在线观看| 亚洲第一av免费看| 国产亚洲欧美在线一区二区| 国产亚洲欧美98| 高清欧美精品videossex| 亚洲欧美日韩无卡精品| 满18在线观看网站| 天堂影院成人在线观看| 女人被躁到高潮嗷嗷叫费观| 久久久精品欧美日韩精品| 性少妇av在线| 美女国产高潮福利片在线看| 欧美午夜高清在线| 日韩有码中文字幕| 国产免费男女视频| 日韩欧美一区二区三区在线观看| 日韩高清综合在线| 免费观看精品视频网站| 国产av在哪里看| 黑丝袜美女国产一区| 欧美中文日本在线观看视频| 黄色成人免费大全| 婷婷六月久久综合丁香| 制服诱惑二区| 色综合婷婷激情| 动漫黄色视频在线观看| 国产成人精品在线电影| 久久久国产一区二区| 激情在线观看视频在线高清| 亚洲精品美女久久久久99蜜臀| 波多野结衣一区麻豆| 看片在线看免费视频| 伊人久久大香线蕉亚洲五| 淫秽高清视频在线观看| 日本三级黄在线观看| 亚洲三区欧美一区| 午夜福利在线免费观看网站| 99久久综合精品五月天人人| 日韩中文字幕欧美一区二区| 欧美激情极品国产一区二区三区| 精品久久久久久电影网| 中文字幕精品免费在线观看视频| 国产又爽黄色视频| 电影成人av| svipshipincom国产片| a级毛片在线看网站| 啪啪无遮挡十八禁网站| 啦啦啦在线免费观看视频4| av中文乱码字幕在线| 最近最新中文字幕大全免费视频| 日韩大尺度精品在线看网址 | 在线视频色国产色| 亚洲五月婷婷丁香| 在线观看舔阴道视频| 巨乳人妻的诱惑在线观看| 1024视频免费在线观看| 丁香六月欧美| 在线观看一区二区三区激情| 久久午夜亚洲精品久久| 日韩国内少妇激情av| 午夜免费观看网址| 免费不卡黄色视频| 9热在线视频观看99| 亚洲成av片中文字幕在线观看| 日本wwww免费看| 日韩大码丰满熟妇| 怎么达到女性高潮| 国产在线观看jvid| 麻豆国产av国片精品| 91九色精品人成在线观看| 日韩 欧美 亚洲 中文字幕| a在线观看视频网站| 91精品国产国语对白视频| 色在线成人网| 麻豆国产av国片精品| 欧美乱色亚洲激情| 久久中文看片网| 日本一区二区免费在线视频| 一级a爱视频在线免费观看| 日本黄色日本黄色录像| 亚洲男人的天堂狠狠| 夜夜看夜夜爽夜夜摸 | 国产成人欧美在线观看| 一进一出抽搐gif免费好疼 | 亚洲三区欧美一区| 午夜福利在线免费观看网站| 成人18禁在线播放| 99久久久亚洲精品蜜臀av| 中文字幕人妻丝袜制服| 人人妻人人添人人爽欧美一区卜| 日韩精品免费视频一区二区三区| 操美女的视频在线观看| 黄网站色视频无遮挡免费观看| 亚洲九九香蕉| 亚洲精品久久午夜乱码| 精品国产一区二区三区四区第35| 免费在线观看亚洲国产| 亚洲成人久久性| 亚洲黑人精品在线| 好看av亚洲va欧美ⅴa在| 岛国视频午夜一区免费看| 亚洲欧美精品综合久久99| 老熟妇仑乱视频hdxx| 一级,二级,三级黄色视频| 女人爽到高潮嗷嗷叫在线视频| 亚洲av美国av| 色尼玛亚洲综合影院| 久久久久亚洲av毛片大全| 中文欧美无线码| 国产精品国产高清国产av| 女性生殖器流出的白浆| 国产aⅴ精品一区二区三区波| 久久人人精品亚洲av| 欧美人与性动交α欧美精品济南到| 亚洲精品一卡2卡三卡4卡5卡| 国产有黄有色有爽视频| 中文字幕高清在线视频| 亚洲av美国av| 最近最新中文字幕大全电影3 | 欧美不卡视频在线免费观看 | 亚洲专区国产一区二区| 亚洲一码二码三码区别大吗| 国产亚洲精品综合一区在线观看 | 99国产精品99久久久久| 成年人免费黄色播放视频| 国产av一区在线观看免费| 久久久国产欧美日韩av| av片东京热男人的天堂| 神马国产精品三级电影在线观看 | 国产三级在线视频| 午夜老司机福利片| 91字幕亚洲| 成人手机av| 水蜜桃什么品种好| 人成视频在线观看免费观看| 757午夜福利合集在线观看| videosex国产| 99国产精品99久久久久| 国产黄a三级三级三级人| 免费在线观看亚洲国产| av免费在线观看网站| 久久中文字幕一级| 免费av中文字幕在线| 动漫黄色视频在线观看| 久久精品亚洲av国产电影网| 亚洲成人免费电影在线观看| 十八禁人妻一区二区| 久久久久国产精品人妻aⅴ院| 国产成人精品在线电影| 看片在线看免费视频| 欧美黄色片欧美黄色片| 中文字幕最新亚洲高清| 在线永久观看黄色视频| www.精华液| 搡老岳熟女国产| 免费不卡黄色视频| 女人高潮潮喷娇喘18禁视频| 97超级碰碰碰精品色视频在线观看| 国产精品综合久久久久久久免费 | 极品人妻少妇av视频| 纯流量卡能插随身wifi吗| 嫁个100分男人电影在线观看| 国产乱人伦免费视频| 天堂中文最新版在线下载| 9191精品国产免费久久| 成人亚洲精品一区在线观看| 丝袜美足系列| 一个人免费在线观看的高清视频| 国产1区2区3区精品| 岛国视频午夜一区免费看| 黄色丝袜av网址大全| 精品一区二区三卡| 亚洲第一欧美日韩一区二区三区| 欧美av亚洲av综合av国产av| 成人国语在线视频| 欧美av亚洲av综合av国产av| 亚洲免费av在线视频| 成人国产一区最新在线观看| 日本一区二区免费在线视频| 亚洲成人久久性| 中文欧美无线码| 午夜两性在线视频| 18禁裸乳无遮挡免费网站照片 | 久久伊人香网站| 日韩 欧美 亚洲 中文字幕| 国产成人欧美在线观看| 无遮挡黄片免费观看| 黄色片一级片一级黄色片| 老司机靠b影院| 午夜免费激情av| 又紧又爽又黄一区二区| 母亲3免费完整高清在线观看| 色播在线永久视频| 露出奶头的视频| 脱女人内裤的视频| 亚洲精品国产精品久久久不卡| 亚洲情色 制服丝袜| 欧美黑人精品巨大| 少妇的丰满在线观看| 亚洲成人免费av在线播放| 免费在线观看亚洲国产| 伊人久久大香线蕉亚洲五| 在线观看免费午夜福利视频| 男人舔女人的私密视频| 18禁黄网站禁片午夜丰满| 身体一侧抽搐| 在线观看日韩欧美| 亚洲专区中文字幕在线| 国产欧美日韩综合在线一区二区| 99久久人妻综合| 很黄的视频免费| 韩国精品一区二区三区| aaaaa片日本免费| 成人国产一区最新在线观看| 三级毛片av免费| 日韩欧美国产一区二区入口| 亚洲欧美激情综合另类| 波多野结衣av一区二区av| av片东京热男人的天堂| 在线观看一区二区三区激情| 亚洲avbb在线观看| 欧美午夜高清在线| 我的亚洲天堂| 琪琪午夜伦伦电影理论片6080| 日日夜夜操网爽| 日韩三级视频一区二区三区| 精品高清国产在线一区| 欧美激情高清一区二区三区| 一边摸一边抽搐一进一出视频| 日韩有码中文字幕| 久久久久亚洲av毛片大全| 日本撒尿小便嘘嘘汇集6| 婷婷精品国产亚洲av在线| 老司机午夜十八禁免费视频| 精品人妻1区二区| 色婷婷av一区二区三区视频| 村上凉子中文字幕在线| 欧美日韩亚洲国产一区二区在线观看| 久久精品aⅴ一区二区三区四区| 亚洲精品国产一区二区精华液| svipshipincom国产片| 午夜91福利影院| 亚洲性夜色夜夜综合| 香蕉久久夜色| 99国产精品一区二区蜜桃av| 黑人巨大精品欧美一区二区mp4| 久久久久国内视频| 亚洲国产欧美日韩在线播放| 亚洲一卡2卡3卡4卡5卡精品中文| 变态另类成人亚洲欧美熟女 | 午夜激情av网站| 国产精品久久久久成人av| 国产欧美日韩精品亚洲av| 国内久久婷婷六月综合欲色啪| 女人高潮潮喷娇喘18禁视频| 1024视频免费在线观看| 老司机亚洲免费影院| av在线天堂中文字幕 | 亚洲成人久久性| 在线看a的网站| 91精品国产国语对白视频| 1024香蕉在线观看| 亚洲精品国产一区二区精华液| 亚洲伊人色综图| 国产成人精品久久二区二区91| 国产精品野战在线观看 | 国产av一区在线观看免费| 大型黄色视频在线免费观看| 久久精品91无色码中文字幕| 日韩免费高清中文字幕av| 日本精品一区二区三区蜜桃| 婷婷丁香在线五月| 午夜精品国产一区二区电影| 久久久久九九精品影院| 不卡av一区二区三区| 亚洲精品国产精品久久久不卡| 日日夜夜操网爽| 天堂√8在线中文| 在线观看免费高清a一片| 亚洲av日韩精品久久久久久密| 国产亚洲精品一区二区www| 亚洲国产精品一区二区三区在线| 欧美成人午夜精品| 18禁裸乳无遮挡免费网站照片 | xxxhd国产人妻xxx| 黄色视频,在线免费观看| 热99国产精品久久久久久7| a级毛片在线看网站| 在线观看www视频免费| 久久香蕉激情| 久久久国产欧美日韩av| www.熟女人妻精品国产| 日韩三级视频一区二区三区| 午夜福利影视在线免费观看| 亚洲五月天丁香| 激情视频va一区二区三区| 午夜精品久久久久久毛片777| 成人国产一区最新在线观看| 精品日产1卡2卡| 婷婷六月久久综合丁香| 免费观看精品视频网站| 国内毛片毛片毛片毛片毛片| 黄色成人免费大全| 99精品久久久久人妻精品| 男女午夜视频在线观看| 黑人猛操日本美女一级片| 欧美激情 高清一区二区三区| 一级毛片精品| 亚洲七黄色美女视频| 侵犯人妻中文字幕一二三四区| 国产欧美日韩一区二区精品| 大型黄色视频在线免费观看| 日本一区二区免费在线视频| 日韩免费av在线播放| 国产欧美日韩综合在线一区二区| 精品一区二区三区视频在线观看免费 | 99国产综合亚洲精品| 免费观看精品视频网站| 99热只有精品国产| 伦理电影免费视频| 久热这里只有精品99| 老司机福利观看| 啦啦啦免费观看视频1| 少妇的丰满在线观看| 亚洲自拍偷在线| 99久久精品国产亚洲精品| 伊人久久大香线蕉亚洲五| 99香蕉大伊视频| 欧美日韩黄片免| 高清毛片免费观看视频网站 | 亚洲第一青青草原| 久久午夜综合久久蜜桃| 80岁老熟妇乱子伦牲交| 欧洲精品卡2卡3卡4卡5卡区| 巨乳人妻的诱惑在线观看| 老司机福利观看| 男女下面进入的视频免费午夜 | 国产精品成人在线| 女人高潮潮喷娇喘18禁视频| 男女高潮啪啪啪动态图| 欧美日韩中文字幕国产精品一区二区三区 | 黄色怎么调成土黄色| av在线天堂中文字幕 | 性色av乱码一区二区三区2| 国产精品亚洲一级av第二区| 99久久国产精品久久久| 久久亚洲精品不卡| 一级毛片精品| 交换朋友夫妻互换小说| 午夜视频精品福利| 一级片'在线观看视频| 人人妻人人爽人人添夜夜欢视频| 咕卡用的链子| 久久久久九九精品影院| 女人高潮潮喷娇喘18禁视频| 中文字幕最新亚洲高清| 国产精品自产拍在线观看55亚洲| 亚洲五月色婷婷综合| 中文字幕人妻熟女乱码| 在线观看一区二区三区激情| 国产成人av激情在线播放| 亚洲狠狠婷婷综合久久图片| 一二三四在线观看免费中文在| 国产精品美女特级片免费视频播放器 | 另类亚洲欧美激情| 国产成人免费无遮挡视频| 亚洲aⅴ乱码一区二区在线播放 | 亚洲成国产人片在线观看| 久久精品国产清高在天天线| 国产成人精品久久二区二区免费| 久久天躁狠狠躁夜夜2o2o| 老熟妇仑乱视频hdxx| 欧美日韩亚洲国产一区二区在线观看| 19禁男女啪啪无遮挡网站| 又黄又爽又免费观看的视频| 在线观看日韩欧美| 在线观看免费视频网站a站| 亚洲精品av麻豆狂野| 69av精品久久久久久| 午夜视频精品福利| 午夜久久久在线观看| 人人妻人人爽人人添夜夜欢视频| 欧美人与性动交α欧美软件| 国产精品成人在线| 国产成人系列免费观看| 怎么达到女性高潮| 精品久久久精品久久久| 视频在线观看一区二区三区| 日韩欧美国产一区二区入口| 国产人伦9x9x在线观看| 大陆偷拍与自拍| 一级a爱视频在线免费观看| 精品无人区乱码1区二区| 国产精品影院久久| 中出人妻视频一区二区| 午夜福利一区二区在线看| 人人澡人人妻人| 成人亚洲精品一区在线观看| 精品久久久精品久久久| 亚洲av熟女| 变态另类成人亚洲欧美熟女 | 老司机午夜福利在线观看视频| avwww免费| 最新美女视频免费是黄的| 免费高清视频大片| 精品卡一卡二卡四卡免费| 一级黄色大片毛片| 国产男靠女视频免费网站| 熟女少妇亚洲综合色aaa.| 婷婷六月久久综合丁香| 看免费av毛片| 91av网站免费观看| 黄色成人免费大全| 国产熟女午夜一区二区三区| 欧美日本亚洲视频在线播放| 日韩欧美在线二视频| 1024香蕉在线观看| 亚洲色图综合在线观看| 岛国视频午夜一区免费看| 真人做人爱边吃奶动态| 亚洲精品中文字幕一二三四区| 在线观看免费视频日本深夜| 99精品久久久久人妻精品| 久久国产乱子伦精品免费另类| 色尼玛亚洲综合影院| 女生性感内裤真人,穿戴方法视频| 欧美乱码精品一区二区三区| 夜夜爽天天搞| 日本黄色视频三级网站网址| 99精品久久久久人妻精品| 日本五十路高清| 校园春色视频在线观看| 国产91精品成人一区二区三区| xxxhd国产人妻xxx| 国产亚洲欧美在线一区二区| 美国免费a级毛片| 亚洲黑人精品在线| 超碰97精品在线观看| bbb黄色大片| www.自偷自拍.com| 高清av免费在线| 亚洲熟妇中文字幕五十中出 | av视频免费观看在线观看| 成人18禁高潮啪啪吃奶动态图| 久久久久久久午夜电影 | 精品免费久久久久久久清纯| 欧美 亚洲 国产 日韩一| 男人的好看免费观看在线视频 | 国产午夜精品久久久久久| 亚洲午夜理论影院| 一个人观看的视频www高清免费观看 | 午夜福利在线免费观看网站| 又黄又爽又免费观看的视频| 成人手机av| av中文乱码字幕在线| 亚洲欧洲精品一区二区精品久久久| 色综合站精品国产|