999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python的龍骨成型機通信方案設計

2019-06-17 09:28:40周任杰張子立朱志松
計算機應用與軟件 2019年6期
關鍵詞:進程指令界面

周任杰 劉 宇 張子立 朱志松

(南通大學機械工程學院 江蘇 南通 226019)

0 引 言

輕鋼別墅作為一種鋼結構住宅,具有“無支撐、鋼柱變斷面、結構布局靈活、抗震性能好、屋面輕型化”五大優點,在國內外應用日益廣泛,形成了較為成熟的生產鏈及產業體系[1-2]。輕鋼別墅骨架的加工設備是龍骨成型機,由工控機、下位機及機構組成。工控機實現龍骨加工數據解析、設備參數設置、加工過程的檢測和反饋等功能,通過建立通信實現數據傳輸;下位機采用松下PLC執行機構動作;機械設備由模具、機身、輸料裝置、液壓系統等組成。三部分相互配合加工龍骨。

為實現機器穩定加工,工控機與下位機間的通信必須穩定可靠。同時為保證工控機的便攜性和布局的便利,廠家提出基于Wi-Fi通信的要求。Wi-Fi通信的優點為無線電波覆蓋范圍廣,傳輸速率高,提高工控機的便攜性,無需布線,避免復雜線的連接,實現一定距離上工控數據的交換[3]。在帶來便利的同時,網絡安全成為隱患,當傳輸距離加大時,外加電磁等的干擾,通信質量大幅下降[4]。

1 龍骨成型機通信方案設計

龍骨成型機通信系統構架如圖1所示[5]。工控機、Wi-Fi通信模塊、下位機分別構成龍骨成型機通信系統的客戶應用層、數據通信層、與硬件層。在數據通信層,基于Python語言,選擇Socket作為通信的端點,從Socket發送和接收數據,比其他通信協議更安全可靠[6]。Socket分為基于TCP的流式套接字和基于DUP的數據報式套接字,經過三次握手建立連接。本通信方案采用基于TCP的流式套接字,實現工控機與下位機間的本地通信[7],工控機作為客戶端(Master),PLC作為服務端(Slave)。龍骨成型機的加工速度為40 m/min,連續高速運行過程中不能出現卡頓現象。由于上下位機數據傳輸密集,為避免通信成為整機運行的速度瓶頸,基于生產者消費者模式,分別設計三種方案:采用單進程、多線程以及多線程與多進程相結合的通信方案。

圖1 龍骨成型機通信系統構架

1.1 Mewtocol通信協議

松下PLC與工控機間進行數據交換采用Mewtocol通信協議。Mewtocol協議要求通信報文為對應格式的指令,指令格式如圖2所示。每一幀指令包含:起始位、站號高低位、指令代碼、文本代碼、校驗碼、結束位。起始位為字符“%”;站號高低位在工控機與多個PLC通信時設置,代表PLC序號;指令代碼為讀寫不同狀態、不同內容寄存器的指令;高低兩位校驗碼,用來校驗數據傳輸過程中是否出現亂碼或者數據丟失;使用回車符作為結束位[8]。

工控機與松下PLC的傳輸數據包括龍骨加工數據的下發與工控狀態寄存器的讀取,其中下發數據包括模具號、孔距、加工序號等,PLC上傳數據包括模具工況、傳感器狀態、加工結束標記等。按照圖2所示指令格式,以分別向下位機松下PLC中DT1至DT3的連續3個寄存器中分別寫入數據0500、0715、0009為例,編寫指令為:“%01# WDD000100030500071500095DCR”,指令字符串經過Socket封裝發送至下位機,PLC接收指令后數據寫入相應寄存器,控制油缸動作并發送應答信息。若工控機收到的應答指令為“%0 $WD13CR”,則寫入正確;若收到的應答指令為“%01!WD13CR”,則寫入不正確,數據丟失或其他異常[8]。

圖2 指令格式

1.2 通信系統硬件構成

龍骨成型機通信系統硬件由5G Wi-Fi路由器、工控機、松下PLC組成,工控機與松下PLC接入路由器完成硬件系統連接。松下PLC提供AFPX-COM5模塊與RS232模塊。RS232串口通信距離較短,通信質量不穩定,易受外部環境干擾,為保證通信質量與效率,提高通信距離,采用RS232轉以太網模塊接入基于Wi-Fi的以太網總線。松下PLC通過AFPX-COM5模塊在以太網中與工控機完成加工指令的接收與執行;通過RS232轉以太網模塊將傳感器數據與現場工況傳回工控機。相應硬件組成示意圖如圖3所示[8]。

圖3 通信系統硬件組成示意圖

2 通信方案的比較與分析

2.1 單進程的通信方案

以龍骨成型機加工過程為例,工控機解析工藝數據,生成加工指令后發送到下位機,下位機指令執行結束后將執行狀況反饋給工控機,確保上一條指令執行完畢后,工控機繼續生成下一條加工指令并傳輸[9]。加工過程中單條指令創建與執行過程如圖4所示。

(a) 工控機發送指令 (b) 下位機發送指令 (c) 工控機接收指令圖4 加工指令過程

若多次發送與接收指令,Socket只需創建一次,創建Socket過程如下:

tcpCliSocket=socket(AF_INET,SOCK_STREAM)

tcpCliSocket.settimeout(10)

tcpCliSocket.connect(ADDR)

BUFSIZ=512

try:

tcpCliSocket.send(data_send)

data_recv=tcpCliSocket.recv(BUFSIZ)

except:

tcpCliSocket.close()

break

創建名為tcpCliSocket的Socket套接字,AF_INET指定使用IPv4,SOCK_STREAM為流式套接字。使用Connect方法建立Socket,連接到本地地址,使用settimeout設置連接超時時間。Socket通過Send()方法發送數據data_send;通過Recv()方法從緩沖區接收數據data_recv;使用close()函數斷開Socket連接。其中,ADDR為地址,HOST為服務器的主機名,PORT是端口號,BUFSIZ為設置的緩沖區大小。

本方案為同步通信方式,主界面與通信主界面與通信進程在一個進程中,采用try/except語句處理程序正常執行過程中出現的一些異常情況,減少Socket阻塞狀態的出現。龍骨成型機為順序加工,加工進程需要等待通信數據,加工中會出現卡頓現象,效率較低。

2.2 使用多線程的通信方案

由前述通信方式可知,工控機同時完成對加工指令的下發與下位機各參數的實時反饋,應采用異步方式提高效率。利用不同線程間的自動切換,在后臺交替運行處理數據,多線程的使用無疑能夠充分有效地提高程序執行[10],使龍骨成型機的通信、跟蹤、檢測等功能同時進行。本通信方案流程圖如圖5所示[11]。

圖5 使用多線程的通信方案

多線程通信方案設計思路:創建線程池,設置線程池允許運行的線程函數個數,建立Socket連接。將讀寫的功能函數分別包裝為線程函數,使用實例化隊列Queue作為線程函數的參數,將界面進程的數據通過隊列Queue的put()函數傳入線程函數,在線程函數中通過隊列Queue的get()函數取出數據,完成數據的傳入。

采用信號與槽,傳出線程函數中數據,將數據從通信線程中傳到工控機界面進程。首先聲明信號變量,設置其參數類型為str字符串類型,創建信號與槽函數的連接。傳出數據時,emit信號,觸發信號與槽機制,執行槽函數,data作為參數輸出到界面進程中,工控機主界面根據data數據判斷工況并實現加工過程跟蹤。其中,self.slot為槽函數名稱,data為線程中需傳出的數據。實現方法如下:

signal=pyqtSignal(str)

signal.connect(self.slot)

signal.emit(data)

本方案中龍骨成型機在加工時無需等待通信數據,龍骨加工與工控狀態監測并行處理,通信數據讀寫與界面更新同時進行,提高加工速度,缺點是線程函數較多時,影響CPU的處理效率,實際生產中數據傳輸頻率較高時,偶爾有卡頓現象,而且由于Python存在GIL,需要防止線程死鎖情況的發生[11]。

2.3 多線程與多進程相結合的通信方案

考慮到前述多線程方案的不足,單獨設置不影響主界面進程的通信進程能大大提高系統的擴展性和穩定性[12-13]。本方案采用多線程與多進程相結合,借助Python的future模塊,繞開GIL,利用主進程之外的CPU核心。基于生產者消費者模型,多進程負責生產數據,由于進程間無法通過信號槽機制通信,借助線程安全的隊列Queue共享數據,引入多線程負責查詢和讀取Queue,并通過信號槽機制傳遞給主界面,實現生產者與消費者的解耦合,提高程序的整體處理數據的速度與效率[14-15],數據傳輸路線圖如圖6所示。

圖6 數據傳輸路線圖

將讀寫的功能包裝為進程函數,隊列Queue作為參數,讀寫指令通過Queue的入隊出隊,完成與PLC間數據的交換。使用如下方法創建進程,其中w=work(),實例化通信進程類,w.communication調用實例化類中通信函數,并完成龍骨加工狀態信息的指令編碼解碼,q_Processwrite,q_Processread為實例化隊列Queue,分別作為參數傳入進程。q_Processwrite作為寫入隊列,存放龍骨成型機加工指令;q_Processread作為為獲取隊列,存放獲取加工狀態指令。

p=Process(target=w.communication,args=(q_Processwrite,q_Processread))

p.start()

進程間使用多線程中轉程序完成數據的傳輸與交換。多線程中轉程序創建線程池,借助信號和槽機制,在加工中每有一個數據出隊時,線程發送包含數據的信號給槽函數,將加工狀態和信息反饋到主界面進程,完成龍骨成型機UI界面對加工過程的實時跟蹤[16]。主界面將需加工數據入隊,通過線程函數生成加工指令,將加工指令存入進程函數參數,完成數據的傳入。線程池創建方法如下:

pool=ThreadPoolExecutor(2)

t_write=pool.submit(fun_write,q_write)

t_read=pool.submit(fun_read,q_read)

其中,t_write為獲取數據的線程函數,t_read為發送數據的線程函數,fun_read、fun_write分別為讀寫函數。fun_write根據q_write傳入的龍骨加工數據(孔距、加工序列等)放入q_Processwrite。fun_read利用信號與槽機制將q_read中的工況數據emit到主界面進程中,實現加工監測。

本方案中主界面進程與通信進程相互獨立,充分利用CPU多核優勢,避免通信延遲。結合多線程中轉,龍骨加工進程無需等待數據。數據獲取快速高效,主界面不卡頓。

根據上述三種方案在實際生產中的效果分析,龍骨加工時,使用多線程與多進程相結合的通信方式,加工過程無卡頓,工況最穩定,符合預期要求。在通信環境較為惡劣的情況下,前兩種方案卡頓明顯,方案三無明顯卡頓,能夠滿足生產需要。因此最終采用多線程與多進程相結合的通信方案。

3 結 語

本文介紹了龍骨成型機的系統結構與加工過程,基于Wi-Fi通信,提出了三種通信方案,并使用Python語言實現。經過實驗測試與分析,最終采用了基于Mewtocol協議的多線程與多進程相結合的通信方案。實驗結果標明,該通信方案結合多線程與多進程優點,規避缺點,能夠按照“生產者與消費者模式”實現既定的通信與加工同時進行,穩定可靠,數據傳輸迅速,實際生產出的龍骨完全可裝配為輕鋼別墅,生產過程簡單可靠便捷。

猜你喜歡
進程指令界面
聽我指令:大催眠術
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
人機交互界面發展趨勢研究
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
坐標系旋轉指令數控編程應用
機電信息(2014年27期)2014-02-27 15:53:56
主站蜘蛛池模板: 2021无码专区人妻系列日韩| 无码内射中文字幕岛国片| 99精品热视频这里只有精品7 | 99精品国产高清一区二区| 性欧美在线| 91区国产福利在线观看午夜| 中文字幕亚洲综久久2021| 日本午夜精品一本在线观看| 亚洲一级无毛片无码在线免费视频 | 人妖无码第一页| 重口调教一区二区视频| 香蕉国产精品视频| 亚洲AⅤ波多系列中文字幕| 91黄视频在线观看| 久久婷婷五月综合色一区二区| 日本黄色a视频| 亚洲欧美在线精品一区二区| a欧美在线| 中文字幕av无码不卡免费| 国产激情在线视频| 久一在线视频| 亚洲伦理一区二区| 国产欧美日韩精品综合在线| 亚洲天堂区| 97影院午夜在线观看视频| 国产二级毛片| 免费一级毛片在线播放傲雪网 | 免费观看成人久久网免费观看| 欧美亚洲综合免费精品高清在线观看 | 国产永久免费视频m3u8| 日本成人一区| 亚洲第一页在线观看| 久久免费精品琪琪| 国产麻豆福利av在线播放 | 久久亚洲黄色视频| 亚洲欧美成人网| 日韩在线观看网站| 国产国产人成免费视频77777| 日本不卡在线播放| 亚洲中文无码h在线观看| 18禁色诱爆乳网站| 亚洲九九视频| 国产精品xxx| 国产在线精品美女观看| 91精品国产91久久久久久三级| 日本免费一级视频| 国产美女91呻吟求| 亚洲无码A视频在线| 中文无码毛片又爽又刺激| 精品免费在线视频| 欧美国产三级| 国产成人精品亚洲77美色| 日韩毛片在线播放| 国产精品精品视频| 日本国产一区在线观看| 久久香蕉国产线| 在线播放精品一区二区啪视频| 亚洲天堂区| 亚洲成a∧人片在线观看无码| 日韩大乳视频中文字幕| 国产在线欧美| 国产高清无码第一十页在线观看| 午夜欧美在线| 欧美亚洲另类在线观看| 中文字幕调教一区二区视频| 91免费片| 亚洲国产亚洲综合在线尤物| 亚洲综合经典在线一区二区| 亚洲国产成人久久精品软件| 乱系列中文字幕在线视频| 国产精品永久在线| 超清无码一区二区三区| 91亚洲国产视频| 欧美中文字幕一区| 日韩在线观看网站| 精品国产成人av免费| 女人18一级毛片免费观看| 午夜限制老子影院888| 日韩精品无码免费一区二区三区 | 一本无码在线观看| 国产在线精品美女观看| 亚洲国产系列|