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

基于Modbus協議的數據采集與并行加密通信系統

2017-04-14 00:47:25張紅梅張向利
計算機應用與軟件 2017年3期
關鍵詞:設備系統

黃 劍 張紅梅 張向利 陳 達

(桂林電子科技大學廣西高校云計算與復雜系統重點實驗室 廣西 桂林 541004)

基于Modbus協議的數據采集與并行加密通信系統

黃 劍 張紅梅 張向利 陳 達

(桂林電子科技大學廣西高校云計算與復雜系統重點實驗室 廣西 桂林 541004)

為了高效、集中地監控工業設備的運行情況,設計了基于Modbus的數據采集監控系統。提出將設備管理從數據采集系統分離出來,降低動態更改設備對數據采集系統的影響,提高設備管理的便捷性。該系統引入斷線自動重連機制,提升了系統的穩定性。探討傳統SM4加密算法的優缺點,提出改進的SM4加密算法,提高了安全性。結合算法的結構特點與GPU的并行計算能力,設計了基于GPU的SM4并行數據加密算法,并將該算法應用到數據采集系統中,提高了數據傳輸過程中的實時性。

數據采集 SM4 并行計算

0 引 言

隨著物聯網的發展,越來越多的企業需要將生產及運營的設備接入網絡并對其進行遠程實時監控,大量的設備監控數據往往需要通過互聯網傳輸到遠處的監控中心。但是,由于互聯網的開放性,一旦監控數據被截獲并被用于破壞活動,其帶來的損失將會非常嚴重。因此,工業數據傳輸的安全性問題亟待解決。此外,隨著設備數量的增加。數據量的增加,如何確保數據傳輸實時性、采集系統的穩定性和設備管理的便捷性也將成為一個難題。

基于以上問題,本文提出了基于Modbus的數據采集與并行加密通信系統。將設備管理從數據采集系統分離出來,降低了動態更改設備對數據采集程序的影響,提高了管理設備的便捷性。該系統引入斷線自動重連機制,提升了系統的穩定性。雖然,利用SM4加密算法[1]可以確保數據傳輸一定的安全,但是,由于SM4密鑰擴展算法與加密算法結構相似性,輪密鑰生成算法參數的固定,都導致其安全性降低[2]。本文提出改進的SM4加密算法,并結合算法的結構特點與GPU的并行計算能力,設計了基于GPU的SM4并行數據加密算法,提高了數據傳輸過程中的安全性和實時性。

1 系統總體設計方案

設備數據監控系統采用分布式架構,分為中心控制系統、采集控制系統和通信系統等3個主要部分,如圖1所示。

圖1 設備數據監控系統架構圖

中心控制系統實現對下屬子區域各個設備的監控功能,采集控制系統實現對設備數據信息的采集及對采集到的數據進行加密轉發功能,通信系統實現在中心控制系統與采集控制系統的通信。為保證監控系統的可靠性,系統需要全天24小時不間斷地運行并傳輸著大量實時數據。因此,對數據傳輸過程的實時性、穩定性和安全性要求都非常高。隨著業務的增加,設備的增加,對設備的動態管理提出了更高的要求。

采集控制系統是整個系統的核心,其系統組成示意如圖2所示,系統主要包括主應用程序、數據采集模塊、控制模塊、數據加解密模塊、數據轉發與存儲顯示模塊、站點配置模塊,以及Modbus協議、TCP/IP協議和MySQL數據庫。

圖2 數據采集系統示意圖

由于采集的站點數據信息量大,不適宜用單線程實現各個功能,因此采取多線程機制,把整個工作細化為若干個獨立的模塊,在多核的服務器上實現多線程并發操作,減少每次的采集時間。

當設備數量達到一定規模后,設備的配置信息的管理成為一個急需解決的問題。使用配置文件或程序中指定的方法不具有良好的交互性和易操作性。本文提出基于MySQL數據庫的配置應用程序,根據實際的需求,產生配置信息表,存儲在數據庫中。將站點配置和數據采集分開,可以很方便地增加或刪除站點,擴展性強、便捷性好。另外,該配置應用程序操作簡單、交互性強、具有容錯能力,可以預防因誤操作引起的數據采集系統的崩潰。

數據采集應用程序根據配置表信息,創建并協調各個線程。數據采集模塊根據主應用程序的采集信息,填充Modbus協議的各個字段,并組裝成TCP/IP幀,發送出采集請求命令。該模塊還從接收到的TCP/IP幀中提取出采集到的數據。該模塊引入斷線自動重連的機制。一旦建立的鏈接發生斷開情況,就會立刻刷新并重新建立鏈接,繼續發送采集請求,提高系統的穩定性。

為了提升數據在互聯網上傳輸的安全性,在數據發送前采用改進的SM4加密算法對數據進行加密。在數據量較大的情況下,數據加密的耗時成為了實時傳輸的瓶頸。本文利用GPU的并行計算能力,設計了基于GPU的并行加解密模塊。將數據采集過來的實時數據送給GPU,GPU把加密后的結果送給數據轉發模塊。數據轉發模塊負責把采集到的數據利用TCP/IP轉發出去。數據存儲模塊負責把采集到的實時數據存儲到數據庫中。

2 配置模塊應用程序

為了方便管理大規模站點設備的信息,并且各個站點的配置信息往往是隨需求而改變的,因此單獨設計了一個基于MySQL數據庫的配置應用程序,如圖3所示,可以便捷、靈活、直觀地管理各個設備。站點的配置信息主要包括設備的IP地址、端口號、起始地址、采集數量等。

圖3 站點配置管理應用程序

首先,通過調用MySQL數據庫的接口mysql_real_connect()函數連接modbus_db數據庫,若返回調用失敗,說明還沒有該modbus_db數據庫,則調用mysql_real_query()函數創建modbus_db數據庫和modbus_configure_table配置表,并初始化配置表的各個字段。

然后,打印顯示菜單欄,提示用戶功能選項(配置、插入、更改、刪除、退出),并等待用戶輸入。

1) 當選擇查看配置時,通過mysql_real_query()函數調用查詢SQL語句,把當前所有的配置表信息打印出來。

2) 當選擇更改配置時,提示用戶選擇需要更改的站點號,當正確輸入站點號之后,打印當前的配置信息,并等待用戶輸入需要修改的配置項。正確輸入需要修改的選項后,提示輸入新的配置值,并通過mysql_real_query()接口函數調用更改SQL語句,更改配置為當前的輸入值。若沒有需要修改的項了,則輸入q退出,返回主菜單欄。反之,若輸入站點號或者配置選項號出錯,則提示出錯,并重新提示輸入。

3) 當選擇插入選項時,循環輸出需要配置的選項,等待輸入,并通過mysql_real_query()接口函數調用插入SQL語句,插入輸入的配置值。全部配置項配置完成后,返回到主菜單項。

4) 當選擇刪除選項時,打印輸出要刪除的站點號,正確輸入站點號后,通過mysql_real_query()接口函數調用刪除SQL語句,刪除相應的配置表,并返回主菜單。錯誤時,提醒出錯,并重新刪除操作。

5) 若選擇退出,通過調用mysql_close()函數斷開數據庫連接。

3 基于Modbus協議的數據采集

3.1 Modbus協議介紹

Modbus通信采用主/從通信方式,主站點發出數據請求消息,從站點接收到正確的消息后就可以發送數據到主站點以響應請求;主站點也可以直接發送控制消息修改從站點的數據,實現雙向讀寫。目前工業中將 Modbus通過以太網結合TCP/IP協議組成Modbus TCP/IP網絡進行通信[3]。該Modbus幀格式如圖4 所示。

圖4 Modbus幀格式

Modbus幀在TCP/IP上傳輸的應用數據單元(ADU)包括供TCP/IP專用的Modbus應用協議報文頭(MBAP)和通用的協議數據單元(PDU)組成[4]。整個Modbus幀的大小不能超過 256字節。該幀的具體含義:

事務處理標識符用來標識 Modbus 幀的順序,每發送一個 Modbus 幀,該值加1;協議標識符用來表明應用層協議是不是 Modbus 協議,固定取值為0;長度用來表示單元標識符和數據域的字節數;單元標識符用來標識Modbus總線上所連接的從機設備的地址碼;功能碼指出了要求進行的操作;數據域具體格式與功能碼密切相關,是一個可變長字段。總的說來,主站點發送請求數據時,數據域給出要操作的寄存器的起始地址和個數。而從站點發送應答數據時,數據域給出被操作的寄存器個數以及n個寄存器的狀態值[5]。

3.2 數據采集實現

數據采集模塊是采集系統的核心,為了提高數據采集的速度,該模塊設計成多線程的結構,每個設備的采集都用一個線程來控制采集,這樣在多核的Linux服務器上可以實現并發采集的功能。為了確保上傳數據的完整性,在采集模塊中引入了斷線重連的機制。一旦建立的TCP/IP套接字發生斷開情況,采集系統如果采集不到數據,就會馬上刷新連接,重新建立TCP/IP套接字,繼續發送采集請求。

為了更好便捷的操作,設計了一個modbus_info_t結構體,用來保存線程在采集過程中需要的信息,具體定義如下:

typedef struct _modbus_info {

modbus_t *md;

//modbus協議結構體

MYSQL *mysql;

// 保存數據庫操作過程中用到的句柄

modbus_configure_t *modbus_configure_info;

//站點配置信息結構體

modbus_data_t *modbus_data;

//站點數據信息結構體

pthread_mutex_t rw_mutex;

//線程鎖

int modbus_stat;

//狀態標志

}modbus_info_t;

該結構體中的md成員是一個modbus_t結構體的指針變量,該結構體負責Modbus協議的相關操作,比如用于保存建立TCP/IP連接時套接字的成員表變量,用來協調實現Modbus的傳輸的一系列成員函數指針,以及用來保存傳輸過程中需要的數據等;mysql成員變量用于保存MySQL數據庫操作過程中用到的句柄;modbus_configure_info成員保存了該線程所要采集的站點的配置信息;modbus_data成員則用來保存采集過后的數據信息,包括站點ID、地址、數據類型、數據值等;rw_mutex成員是線程間操作的互斥鎖,用來實現各個線程之間訪問公共數據的互斥操作;modbus_stat成員用來記錄當前采集過程中的狀態。

Modbus通信基于TCP/IP。首先,查看modbus_info結構體里面的modbus_stat變量,獲取狀態信息,如果處于未連接狀態,則調用connect_site()函數進行TCP/IP連接,并更改狀態為采集狀態。當處于采集狀態時,通過調用read_site_register()和read_site_bit()函數進行數據采集。若采集返回出錯,則重新設置連接狀態,等待下次循環重新建立連接并采集數據。當處于關閉狀態是,通過調用close_site()函數關閉TCP/IP連接并釋放相應的資源。同樣需要重新設置連接狀態。具體代碼如下:

while(1){

switch(modbus_info->modbus_stat){

case 0:

if(-1!= connect_site(modbus_info))

//連接modbus設備

modbus_info->modbus_stat = 1;

break;

case 1:

if(-1==read_site_register(modbus_info,&modbus_mutex)‖-1== read_site_bit(modbus_info,&modbus_mutex))

//采集數據

modbus_info->modbus_stat=0;

break;

case 2:

close_site(modbus_info);

//斷開modbus連接

modbus_info->modbus_stat=0;

break;}}

read_site_register()函數和read_site_bit()函數分別用來采集設備的寄存器值和線圈值,背后實現的過程大同小異。采集的狀態通過函數值返回,若采集返回出錯,則重新設置連接狀態,等待下次循環重新建立連接并采集數據。采集的流程,如圖5所示。

圖5 Modbus數據采集流程圖

Modbus協議規定報文幀的大小不能超過256字節,因此,每次采集的數目不能超過上限值。若傳入的請求數量超過最大值時,則返回錯誤。若沒有超過最大值,則根據傳入的地址、數量、功能碼等參數構造Modbus幀的各個字段,填充請求報文的頭部。利用建立的TCP/IP連接把該Modbus幀數據發送至設備端。根據返回值判斷是否發送成功,如果發送失敗,則刷新Modbus連接,并重新發送。如果發送成功,則監聽是否有數據到來。當發現有數據到來,同樣利用TCP/IP連接接收Modbus幀數據。如果接收失敗,說明TCP/IP鏈路出現問題,需要重新建立連接并返回錯誤碼。如果接收成功,則檢驗接收到的數據是不是本次請求的所期望的數據。如果是,則提取接收到的Modbus幀的數據部分,并保存到內存中,如果不是,則返回錯誤碼。

4 基于GPU的SM4并行加密

SM4 是一種分組密碼算法,其分組長度和密鑰長度均為128 bit。加解密算法與密鑰擴張算法都采用32輪非線性迭代結構[6]。雖然利用SM4加密算法可以確保數據傳輸一定的安全。但是,由于SM4加密算法的公開性,密鑰擴展算法與加密算法結構的相似性,輪密鑰生成算法參數的固定,都導致其安全性降低。在數據量較大的情況下,使用SM4串行加密的耗時成為了采集系統實時傳輸的瓶頸。

4.1 改進SM4加密算法設計

本文中對SM4的特點設計出一種改進的SM4算法,提高了安全性,與傳統算法相比改進之處主要體現在以下兩點:

(1) 用AES-128密鑰擴展算法替換SM4密鑰擴展算法。

本文提出通過利用AES-128密鑰擴展算法[9]生成SM4加密算法需要的32個輪密鑰。新的密鑰擴展算法,具有透明簡潔、實現速度快、安全性高等優勢。

(2) 將加解密算法中的32迭代所用輪函數由“固定函數”改為“動態選擇”。

研究表明[8]將原輪函數:

Xi=4=F(Xi,Xi+1,Xi+2,Xi+3,rki)

=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki)

(1)

改為:

Xi=4=F(Xi,Xi+1,Xi+2,Xi+3,rki)

=Xi⊕T(Xi+1+Xi+2+Xi+3⊕rki)

(2)

將原算法中Xi+1,Xi+2,Xi+3的“⊕”運算替換為“+”運算是可行的、正確的、線性復雜度高,從而提高了整個算法的安全性。本文提出將32迭代所用輪函數由“固定函數”改為“動態選擇”,即對每輪使用的輪函數在使用“⊕”還是 “+”運算時進行動態隨機選擇。改進后算法的輪函數如圖6所示。

圖6 基于動態選擇的加密輪函數流程圖

在對密碼進行迭代之前以時間為隨機種子,使用隨機函數K(time)生成一個4字節32位的隨機數G,G的每一位作為每一輪迭代時選擇“⊕”還是“+”運算的輪函數。當G的某位為0選擇使用Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki)的輪函數,為1選擇使用Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)=Xi⊕T(Xi+1+Xi+2+Xi+3+rki)的輪函數。

4.2 改進SM4并行加密算法實現

雖然動態SM4算法的安全性得到提高,但是數據加密耗時依然是采集系統傳輸實時性的瓶頸。本文利用GPU的并行計算能力與SM4算法的結構特點,設計了基于GPU的動態SM4并行數據加密模塊。將采集到的實時數據送給GPU,GPU把加密后的結果送給數據轉發模塊,提高了加密運算的實時性。如圖7所示。

圖7 SM4并行算法整體框架

首先,在CPU執行一次密鑰擴展,生成輪密鑰。然后,將輸入數據和擴展密鑰存儲到GPU全局存儲空間內。在加密的初始階段,輸入數據將被分成每塊128bit的數據分組,每個GPU線程負責加密一個數據分組。最后,加密輸出的密文數據將再次被寫到全局設備存儲器內,隨后,CPU程序將輸出數據結果從GPU的全局設備存儲器內取回,整個加密過程完成。

密鑰擴展在CPU上執行一次,生成32組44字節的密鑰分組,存儲于全局存儲區。cudaMalloc()函數是用來申請指定大小的GPU設備存儲空間。cudaMemcpy()函數用來實現內存到GPU設備的數據的傳遞,第四個參數用來指定方向,cudaMemcpyHostToDevice表示從主機內存到GPU設備,cudaMemcpyDeviceToHost表示從GPU設備到主機內存[10,11]。具體代碼如下:

unsigned char *d_sk;

//定義設備擴展密鑰指針

sm4_setkey(sk, key);

//生成擴展密鑰

cudaMalloc((void**)&d_sk, 128 * sizeof(unsigned char));

//分配設備擴展密鑰空間

cudaMemcpy(d_sk, ctx.sk, 128 * sizeof(unsigned char), cudaMemcpyHostToDevice);

//復制密鑰

將采集到的明文數據傳入GPU全局存儲空間內,供每個線程將會從該全局存儲空間里提取自己需要處理的數據。同樣,對于S盒Sbox的處理也是存儲于全局存儲區。具體代碼如下:

unsigned char *d_input;

//定義明文指針

for(int i=0;i

cudaMalloc((void**)&d_input, size * sizeof(unsigned char));

//在設備上為明文分配空間

cudaMemcpy(d_input, input, size * sizeof(unsigned char), cudaMemcpyHostToDevice);

//將明文數據從主存傳至設備

通過調用cryptKernel <<< dmgrid, 256 >>>(d_sk, d_input, d_output)核函數實現每個GPU線程對數據塊的并行加密。其中d_sk表示擴展密鑰,d_input表示明文,d_output表示加密后的密文。核函數提供對數據分組的加密處理,由多個塊并行執行。具體代碼如下:

__global__ void cryptKernel(unsigned long *d_sk, unsigned char *d_input, unsigned char *d_output)

{ int tid = threadIdx.x + blockDim.x * blockIdx.x;

//計算線程id號

unsigned char input[16],output[16];

unsigned long b, x[36];

memcpy(input,&d_input[tid *16],16);

//獲取該線程要處理的數據

get_ulong(x[0],x[1],x[2],x[3],input);

//把16字節數據轉換成44字節的形式

for(int i=0;i<32;i++)

//循環

{b=sm4Sbox(x[i+1]^x[i+2]^x[i+3]^d_sk[i]);

//S盒變換

x[i+4] = x[i]^sm4L(b);}

//線性變換

put_ulong(x[35],x[34],x[33],x[32],output);

//輸出密文數據

memcpy(&d_output[i*16],output,16);}

5 系統性能測試與分析

本文設計的獨立于數據采集系統的配置應用程序,將站點配置和數據采集分開,可以很便捷地增加或刪除站點,降低動態更改設備對數據采集系統的影響;另外,該配置應用程序操作簡單、交互性強、具有容錯能力,可以預防因誤操作引起的數據采集系統的崩潰。

本文實現的斷線重連機制,能夠確保數據采集系統穩定性。為了測試該系統的斷線重連機制,在運行該采集系統后,人為手動斷開設備的網絡連接,隨機重新恢復網絡連接,如此反復10次。通過查看日志文件,發現發生10次斷線,自動重連10次,自動重連率100%。自動重連后系統依然運行正常,具有很好的斷線重連功能,從而具有很好的穩定性。

加密算法的安全性,主要從擴散性[8]的角度對改進SM4的算法進行安全性測試分析。取100組明文數據,對每組明文改變任一比特時測試其密文比特改變個數,取其均值測試改進算法的擴散性。算法安全性指標的對比實驗數據如表1所示,可見改進后的算法可達到很好的擴散效果,具有較好的安全性。

表1 動態SM4算法與原算法安全性比較

在采集數據量較大的情況下,使用SM4加密的耗時成為了實時傳輸的瓶頸。將基于GPU的并行SM4加密算法與傳統的串行SM4加密算法進行實驗對比,測試的數據長度從16 B到64 MB遞增,每種大小的明文均運行100次,取平均值以減少數據誤差,得到執行時間對比如圖8所示。

圖8 串行SM4和并行SM4執行時間比較

隨著明文大小成倍增加,串行SM4的計算時間也成倍增加,但并行SM4的執行總時間以緩慢的速度增長,加速比高達40.6倍,說明在數據量較大的情況下,并行算法的耗時更少,加密的實時性更高。

6 結 語

在兩臺不同IP地址的主機上運行Modbus數據模擬器應用程序作為客戶端,用來產生Modbus寄存器和線圈數據,如圖9所示。運行本數據采集系統對其數據進行采集,通過數據顯示模塊,讀取并顯示采集到的數據,如圖10所示。

圖9 Modbus數據模擬器

圖10 Modbus數據采集顯示程序

本文實現了工業設備監控系統中最重要的數據采集子系統,典型應用在電廠設備和機房設備數據采集。數據采集采用與TCP/IP協議結合緊密的Modbus協議,方便數據的傳輸。將設備管理從數據采集系統分離出來,降低了動態更改設備對數據采集程序的影響,提高了管理設備的便捷性。該系統引入斷線自動重連機制,提升了系統的穩定性。為了確保數據傳輸過程中的安全性,將實時數據進行加密后傳輸。為了提高安全性,對標準SM4加解算法進行了改進,提出改進的SM4算法。為了提升改進算法的加密、解密速度,提高數據傳輸的實時性,提出基于GPU并行計算的SM4加解密基本架構。最終,實現了對設備數據進行實時采集與加密傳輸的功能,為工業監控系統提供了核心模塊。

[1] 國家商用密碼管理辦公室.國家密碼管理局公告(第23號)[OL].(2012-02-21).http://www.oscca.gov.cn/News/201204/News_1227.htm.

[2] Hu Z, Liao X. SMS4 algorithm algebra fault attack[C]//2010 Third International Symposium on Electronic Commerce and Security (ISECS). IEEE, 2010:118-120.

[3] 張偉. 基于Modbus現場總線技術的智能配電系統設計與實現[D]. 南京:南京郵電大學, 2012.

[4] 高秀蘭. 基于Modbus TCP/IP通訊綜合監控系統的實現[J]. 儀表技術與傳感器, 2015(10):104-106,110.

[5] 翁建年, 張浩, 彭道剛, 等. 基于嵌入式ARM的Modbus/TCP協議的研究與實現[J]. 計算機應用與軟件, 2009, 26(10):36-38,68.

[6] Wang K, Peng D, Song L, et al. Implementation of Modbus communication protocol based on ARM Coretx-M0[C]//2014 IEEE International Conference on System Science and Engineering (ICSSE). IEEE, 2014:69-73.

[7] Wang S, Gu D, Liu J, et al. A power analysis on SMS4 using the chosen plaintext method[C]//2013 9th International Conference on Computational Intelligence and Security (CIS). IEEE, 2013:748-752.

[8] 鄭秀林, 李敏. SMS4算法的一種改進[J]. 北京電子科技學院學報, 2007, 15(4):16-18.

[9] Harrison O, Waldron J. AES encryption implementation and analysis on commodity graphics processing units[C]//Proceedings of the 9th International Workshop on Cryptographic Hardware and Embedded Systems, 2007:209-226.

[10] Iwai K, Nishikawa N, Kurokawa T. Acceleration of AES encryption on CUDA GPU[J]. International Journal of Networking and Computing, 2012,2(1):131-145.

[11] Shane Cook. CUDA并行程序設計GPU編程指南[M]. 蘇統華, 李東, 李松澤, 等, 譯. 北京:機械工業出版社, 2014.

A DATA COLLECTION AND PARALLEL ENCRYPTION COMMUNICATION SYSTEMBASED ON MODBUS PROTOCOL

Huang Jian Zhang Hongmei Zhang Xiangli Cheng Da

(GuangxiCollegesandUniversitiesKeyLaboratoryofCloudComputingandComplexSystems,GUILINUniversityofElectronicTechnology,Guilin541004,Guangxi,China)

A data acquisition monitoring system based on Modbus is designed to monitor the running condition of industrial plant efficiently and centrally. The device management is separated from the data acquisition system in order to reduce the effects of dynamically changing equipment for data acquisition program and improve the convenience of equipment management. When this system is off line, it will be reconnected automatically, which improves its stability. Then, the advantages and disadvantages of traditional SM4 encryption algorithm are discussed and an improved SM4 encryption algorithm is proposed, which improves the security. Combining the structure characteristics of algorithm with the GPU parallel computing ability, an improved SM4 parallel data encryption algorithm based on GPU is designed. And the algorithm is applied to the data acquisition system, improving the real-time performance of data transmission.

Data acquisition SM4 Parallel computing

2015-10-19。國家自然科學

61461010,61363031);廣西高校云計算與復雜系統重點實驗研究課題(14101)。黃劍,碩士生,主研領域:信息安全,嵌入式應用系統。張紅梅,教授。張向利,教授。陳達,碩士生。

TP309.2

A

10.3969/j.issn.1000-386x.2017.03.047

猜你喜歡
設備系統
諧響應分析在設備減振中的應用
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
主站蜘蛛池模板: 网久久综合| 亚洲一区二区日韩欧美gif| 午夜精品国产自在| 亚洲一级毛片免费观看| 精品国产91爱| 深爱婷婷激情网| 波多野结衣爽到高潮漏水大喷| 国产乱人伦AV在线A| 中文字幕人妻无码系列第三区| 中文字幕永久在线观看| 毛片视频网址| 国产成人在线无码免费视频| 久久黄色毛片| 五月六月伊人狠狠丁香网| 91精品国产自产在线老师啪l| 亚洲欧美一区二区三区图片| 欧美日韩中文国产| 97亚洲色综久久精品| 国产手机在线ΑⅤ片无码观看| 欧洲av毛片| 亚洲AⅤ波多系列中文字幕| 91网红精品在线观看| 亚洲大学生视频在线播放| 国产免费精彩视频| 国产在线观看人成激情视频| 色噜噜综合网| 亚洲人网站| 久久五月天国产自| 国产91色| 99久久国产综合精品女同| 国产一二三区视频| a毛片在线| 在线亚洲小视频| 在线a视频免费观看| 国产真实乱子伦精品视手机观看 | 中文字幕久久精品波多野结| 亚洲日韩精品综合在线一区二区| 亚洲天堂精品在线| 国产精品手机视频| 国产精品自拍合集| 青青极品在线| 午夜视频在线观看免费网站 | 国产精品嫩草影院视频| 久久久久青草线综合超碰| 精品少妇人妻无码久久| 少妇精品在线| 黄色福利在线| 亚洲欧美不卡视频| 亚洲欧美人成电影在线观看| 在线精品视频成人网| 色综合天天综合中文网| 动漫精品中文字幕无码| 日韩国产 在线| 噜噜噜久久| 国产精品视频3p| 午夜啪啪福利| 91亚洲影院| 国产激情无码一区二区免费| 成年A级毛片| 九色在线观看视频| 亚洲三级a| h视频在线播放| 国产亚洲欧美在线中文bt天堂| 久久综合结合久久狠狠狠97色| 亚洲精品午夜无码电影网| 无码中文字幕精品推荐| 国产毛片片精品天天看视频| 在线观看网站国产| 色综合网址| 亚洲国语自产一区第二页| 亚洲AⅤ永久无码精品毛片| 色综合婷婷| 亚洲国产成人无码AV在线影院L | 国产本道久久一区二区三区| 欧洲成人在线观看| 夜夜高潮夜夜爽国产伦精品| 国产91视频免费| 一区二区在线视频免费观看| 人妻少妇久久久久久97人妻| 综合天天色| 就去色综合| 亚洲无码精彩视频在线观看|