熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 運(yùn)動(dòng)控制卡周期上報(bào)實(shí)時(shí)數(shù)據(jù)IO狀態(tài)之C++篇

運(yùn)動(dòng)控制卡周期上報(bào)實(shí)時(shí)數(shù)據(jù)IO狀態(tài)之C++篇

時(shí)間:2024-12-19 15:08:38來源:深圳市正運(yùn)動(dòng)技術(shù)有限公司

導(dǎo)語(yǔ):?正運(yùn)動(dòng)小助手為大家分享一下運(yùn)動(dòng)控制卡周期上報(bào),通過提前設(shè)置經(jīng)常讀取的參數(shù)主動(dòng)周期上報(bào),可以減少PC主動(dòng)輪詢的時(shí)間。此次介紹將以ECI2A18B為例,主要講解如何使用C++編程語(yǔ)言來進(jìn)行周期上報(bào)函數(shù)的編寫和功能的開發(fā)。

  今天,正運(yùn)動(dòng)小助手為大家分享一下運(yùn)動(dòng)控制卡周期上報(bào),通過提前設(shè)置經(jīng)常讀取的參數(shù)主動(dòng)周期上報(bào),可以減少PC主動(dòng)輪詢的時(shí)間。此次介紹將以ECI2A18B為例,主要講解如何使用C++編程語(yǔ)言來進(jìn)行周期上報(bào)函數(shù)的編寫和功能的開發(fā)。

  01、ECI2A18B控制卡硬件介紹

  ECI2A18B經(jīng)濟(jì)型多軸運(yùn)動(dòng)控制卡是一款脈沖型、模塊化的網(wǎng)絡(luò)型運(yùn)動(dòng)控制卡。控制卡本身最多支持10軸,用以實(shí)現(xiàn)直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨、虛擬軸、機(jī)械手指令等簡(jiǎn)單的軌跡控制需求;采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實(shí)現(xiàn)實(shí)時(shí)的運(yùn)動(dòng)控制。

運(yùn)動(dòng)控制

  ECI2A18B控制卡功能特點(diǎn):

  (1)本身支持6差分脈沖軸+4單端脈沖軸運(yùn)動(dòng)控制,最多可擴(kuò)展至12軸運(yùn)動(dòng)控制。

  (2)脈沖輸出模式:脈沖/方向或雙脈沖。

  (3)AXIS接口支持編碼器位置測(cè)量,可以配置為手輪輸入模式。

  (4)專用的手輪輸入接口。

  (5)每軸最大輸出脈沖頻率10MHz。

  (6)通過CAN總線,最多可擴(kuò)展到256個(gè)隔離輸入口和256個(gè)隔離輸出口。

  (7)軸正負(fù)限位信號(hào)口/原點(diǎn)信號(hào)口可以隨意配置到任何輸入口。

  (8)通用數(shù)字輸出口最大輸出電流可達(dá)500mA,可直接驅(qū)動(dòng)部分電磁閥。

  (9)RS232接口、以太網(wǎng)接口、CAN接口。

  (10)支持最多達(dá)12軸直線插補(bǔ)、任意圓弧插補(bǔ)、螺旋插補(bǔ)。

  (11)支持點(diǎn)位運(yùn)動(dòng)、電子凸輪、直線插補(bǔ)、圓弧插補(bǔ)、連續(xù)插補(bǔ)運(yùn)動(dòng)、機(jī)械手指令。

  (12)支持Basic多文件多任務(wù)編程。

  (13)多種程序加密手段,保護(hù)客戶的知識(shí)產(chǎn)權(quán)。

運(yùn)動(dòng)控制

  接口定義:

運(yùn)動(dòng)控制

  ECI2000系列經(jīng)濟(jì)型多軸運(yùn)動(dòng)控制卡可用于電子半導(dǎo)體設(shè)備(檢測(cè)類設(shè)備、組裝類設(shè)備、鎖附類設(shè)備、焊錫機(jī))、點(diǎn)膠設(shè)備和流水線等12軸以內(nèi)脈沖應(yīng)用場(chǎng)合。

  控制器支持windows、linux、Mac、Android、wince各種操作系統(tǒng)下的開發(fā),提供vc、c#、vb.net、labview等各種環(huán)境的dll庫(kù),如下圖。上位機(jī)軟件編程參考《ZMotion PC函數(shù)庫(kù)編程手冊(cè)》。

運(yùn)動(dòng)控制

  02、為什么要進(jìn)行周期上報(bào),作用是什么?

  1、當(dāng)PC主動(dòng)輪詢的次數(shù)過多時(shí),可能會(huì)導(dǎo)致以下問題:

  (1)消耗系統(tǒng)資源

  輪詢會(huì)使系統(tǒng)資源消耗增加,無論是任務(wù)輪詢或定時(shí)器輪詢,都會(huì)消耗系統(tǒng)的部分資源。在多用戶或者資源受限的環(huán)境里,這極有可能致使系統(tǒng)性能下滑。

  (2)浪費(fèi)CPU資源

  只要是輪詢都會(huì)造成CPU資源的浪費(fèi)。這是因?yàn)檩喸儠?huì)會(huì)在系統(tǒng)內(nèi)不間斷的運(yùn)行,不論當(dāng)前設(shè)備的狀態(tài)是否有改變。實(shí)際上,設(shè)備的諸多狀態(tài)并不經(jīng)常改變,輪詢空轉(zhuǎn)只會(huì)無端消耗CPU的時(shí)間。

  (3)影響電源管理

  向PC報(bào)告外圍設(shè)備次數(shù)增多會(huì)使功耗提高,這可能縮短電池壽命或增加能源消耗,從而影響電源管理。

  (4)降低響應(yīng)速度

  如果輪詢頻率過高,系統(tǒng)響應(yīng)其他任務(wù)的速度或許會(huì)變慢。造成原因是由于CPU會(huì)不間斷的輪詢當(dāng)前狀態(tài),從而響應(yīng)處理其他計(jì)算或與用戶交互任務(wù)會(huì)減慢。

  (5)網(wǎng)絡(luò)負(fù)載增加

  若輪詢涉及網(wǎng)絡(luò)通信,輪詢請(qǐng)求過多就可能加大網(wǎng)絡(luò)負(fù)載,造成網(wǎng)絡(luò)擁堵或者延遲加劇。

  (6)服務(wù)器壓力增大

  在客戶端服務(wù)器架構(gòu)里,要是頻繁進(jìn)行輪詢請(qǐng)求,就可能給服務(wù)器帶來壓力。主要集中在在服務(wù)器資源不足時(shí),也許會(huì)使服務(wù)質(zhì)量降低或者出現(xiàn)請(qǐng)求超時(shí)的情況。

  2、多種獲取方式對(duì)于程序運(yùn)行占比的區(qū)別:

  在探討單條獲取、多條獲取以及周期性獲取對(duì)程序運(yùn)行產(chǎn)生的影響時(shí),我們需要考量這些操作的特性以及它們對(duì)程序整體性能可能存在的潛在影響。

  (1)單條獲取

  單條獲取即程序每次僅處理一個(gè)單獨(dú)的數(shù)據(jù)項(xiàng)。此方式簡(jiǎn)單直接,然而處理大量數(shù)據(jù)時(shí)效率不高,因?yàn)槊看尾僮鞫紩?huì)有上下文切換與資源管理方面的開銷。此時(shí),程序運(yùn)行時(shí)間主要耗費(fèi)在數(shù)據(jù)處理上。

  (2)多條獲取

  多條獲取意味著同時(shí)處理多個(gè)數(shù)據(jù)項(xiàng)。在現(xiàn)代計(jì)算機(jī)系統(tǒng)里,常借助多線程或者并發(fā)技術(shù)達(dá)成這一操作,這樣做能大幅提升數(shù)據(jù)處理的吞吐量。不過,多線程雖有好處,卻可能被鎖爭(zhēng)、內(nèi)存競(jìng)爭(zhēng)和上下文切換等問題所抵消。所以,多條獲取也許會(huì)縮短單個(gè)數(shù)據(jù)項(xiàng)處理的相對(duì)運(yùn)行時(shí)間,但總體運(yùn)行時(shí)間能否減少取決于多線程優(yōu)化的成效。

  (3)周期性獲取

  周期獲取即按照固定的時(shí)間間隔重復(fù)開展數(shù)據(jù)獲取操作。在諸如實(shí)時(shí)監(jiān)控系統(tǒng)、定時(shí)任務(wù)這類需要定期更新數(shù)據(jù)狀態(tài)的應(yīng)用場(chǎng)景中較為常見。其運(yùn)行時(shí)間占比由任務(wù)的周期性和每個(gè)周期內(nèi)實(shí)際工作量決定。若周期性任務(wù)負(fù)載較輕,則對(duì)程序整體運(yùn)行時(shí)間影響不大。

  應(yīng)用場(chǎng)合:在實(shí)際應(yīng)用里,具體的應(yīng)用場(chǎng)景、數(shù)據(jù)特性以及性能要求決定了選擇何種數(shù)據(jù)獲取策略。比如,若程序要對(duì)單個(gè)事件快速響應(yīng),單條獲取或許更合適;要是旨在使數(shù)據(jù)處理速度最大化,多條獲取可能更有利;而對(duì)于那些需要定期保持?jǐn)?shù)據(jù)新鮮度的應(yīng)用而言,周期性獲取則不可或缺。

  03、新建MFC項(xiàng)目并添加函數(shù)庫(kù)

  1、首先打開Visual Studio 2022,點(diǎn)擊創(chuàng)建新項(xiàng)目。

運(yùn)動(dòng)控制

  2、選擇開發(fā)語(yǔ)言為“Visual C++”和程序類型“MFC應(yīng)用程序”。

運(yùn)動(dòng)控制

  3、點(diǎn)擊下一步即可。

運(yùn)動(dòng)控制

  4、選擇類型為“基于對(duì)話框”,下一步或者完成。

運(yùn)動(dòng)控制

  5、前往正運(yùn)動(dòng)官網(wǎng)下載PC函數(shù)庫(kù),路徑如下(本文采用64位函數(shù)庫(kù)為例)。

  (1)進(jìn)入官網(wǎng),選擇支持與服務(wù),打開下載中心選擇庫(kù)文件,就能找到所有的PC函數(shù)庫(kù)。

運(yùn)動(dòng)控制

  (2)點(diǎn)擊下載Windows C++(64位),可按需求另存為想要保存的路徑下。

運(yùn)動(dòng)控制

  (3)函數(shù)庫(kù)另存為具體路徑如下。

運(yùn)動(dòng)控制

  6、將廠商提供的C++庫(kù)文件和相關(guān)頭文件復(fù)制到新建的項(xiàng)目里。

運(yùn)動(dòng)控制

  7、在項(xiàng)目中添加靜態(tài)庫(kù)和相關(guān)頭文件。

  (1)先右擊項(xiàng)目文件,接著依次選擇:“添加”→“現(xiàn)有項(xiàng)”。

運(yùn)動(dòng)控制

  (2)在彈出的窗口中依次添加靜態(tài)庫(kù)和相關(guān)頭文件。

運(yùn)動(dòng)控制

  8、聲明用到的頭文件和定義控制器連接句柄。

運(yùn)動(dòng)控制

  至此項(xiàng)目新建完成,可進(jìn)行MFC項(xiàng)目開發(fā)。

  04、查看PC函數(shù)手冊(cè),熟悉相關(guān)函數(shù)接口

  1、PC函數(shù)手冊(cè)也可以在正運(yùn)動(dòng)官網(wǎng)“支持與服務(wù)”→“下載中心”→“編程手冊(cè)”中找到。

運(yùn)動(dòng)控制

  2、鏈接控制器,獲取鏈接句柄。

運(yùn)動(dòng)控制

  3、控制器自動(dòng)上報(bào)相關(guān)指令。

運(yùn)動(dòng)控制

  4、讀取數(shù)字輸入輸出相關(guān)指令。

運(yùn)動(dòng)控制

  5、讀取Modbus寄存器相關(guān)指令。

運(yùn)動(dòng)控制

  05、MFC實(shí)現(xiàn)軸的周期上報(bào)

  1、例程界面如下。

運(yùn)動(dòng)控制

  2、通過下拉控件選擇連接控制器/控制卡連接方式。

  ·

  BOOL CTest_CycleUpDlg::OnInitDialog(){ CDialogEx::OnInitDialog(); // 將“關(guān)于...”菜單項(xiàng)添加到系統(tǒng)菜單中。 // IDM_ABOUTBOX 必須在系統(tǒng)命令范圍內(nèi)。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if(pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if(!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX,strAboutMenu); } } // 設(shè)置此對(duì)話框的圖標(biāo)。當(dāng)應(yīng)用程序主窗口不是對(duì)話框時(shí),框架將自動(dòng) // 執(zhí)行此操作 SetIcon(m_hIcon, TRUE); // 設(shè)置大圖標(biāo) SetIcon(m_hIcon, FALSE); // 設(shè)置小圖標(biāo) // TODO: 在此添加額外的初始化代碼 GetDlgItem(IDC_COMBO2)->SetWindowTextA("網(wǎng)口\n"); CComboBox *connetList; connetList = (CComboBox *)GetDlgItem(IDC_COMBO2); connetList->AddString(_T("網(wǎng)口\n")); connetList->AddString(_T("LOCAL\n")); connetList->AddString(_T("PCI\n")); connetList->AddString(_T("串口\n")); return TRUE; // 除非將焦點(diǎn)設(shè)置到控件,否則返回 TRUE}

  3、自動(dòng)搜索IP。

  ·

  void CTest_CycleUpDlg::OnCbnDropdownCombo1(){ char Buffer[256]; CTest_CycleUpDlg* pDlg = (CTest_CycleUpDlg*)AfxGetMainWnd(); GetDlgItemText(IDC_COMBO2,Buffer,256); Buffer[255] = '\0'; if(0==strcmp(Buffer,"串口\n")) { Com_SCAN(pDlg); } else if(0==strcmp(Buffer,"網(wǎng)口\n")) { IP_SCAN(pDlg); } else if(0==strcmp(Buffer,"PCI\n")) { PCI_SCAN(pDlg); } else if(0==strcmp(Buffer,"LOCAL\n")) { CComboBox *m_pEthList; m_pEthList = (CComboBox *)GetDlgItem(IDC_COMBO1); m_pEthList->ResetContent(); m_pEthList->AddString(_T("LOCAL1\n")); }else { CString str; MessageBox("請(qǐng)選擇正確的鏈接類型!"); return; } return;}

運(yùn)動(dòng)控制

  4、開啟上報(bào)。

運(yùn)動(dòng)控制

  ·

  //開啟關(guān)閉上報(bào)void CTest_CycleUpDlg::OnBnClickedCheckStart(){ if(NULL == G_ZmcHandle) { MessageBox(_T("控制器未連接")); return; } CString tempstr; UpdateData(true); int iret = 0; if(m_If_StartUp) //開啟上報(bào) { GetCycleStr(); iret = ZAux_CycleUpEnable(G_ZmcHandle,m_CyclePort,m_CycleTime,Str_CycleCmd); if(ERR_SUCCESS != iret) { tempstr.Format("周期上報(bào)打開失敗!錯(cuò)誤碼:%d 命令:%s\r\n",iret,Str_CycleCmd); AppendTextOut(tempstr); return; } tempstr.Format("周期上報(bào)開始!命令:%s\r\n",Str_CycleCmd); AppendTextOut(tempstr); ifirsttimeus = GetTickCount(); SetTimer(1,1,NULL); } else { m_CycleCount = ZAux_CycleUpGetRecvTimes(G_ZmcHandle,m_CyclePort); iret = ZAux_CycleUpDisable(G_ZmcHandle,m_CyclePort); if(ERR_SUCCESS != iret) { tempstr.Format("周期上報(bào)關(guān)閉失敗!錯(cuò)誤碼:%d \r\n",iret); AppendTextOut(tempstr); return; } tempstr.Format("周期上報(bào)關(guān)閉-上報(bào)用時(shí):%dms, 上報(bào)次數(shù):%d ,平均時(shí)間:%.3fms\r\n",(GetTickCount() - ifirsttimeus),m_CycleCount,(float)(GetTickCount() - ifirsttimeus)/m_CycleCount); AppendTextOut(tempstr); KillTimer(1); }}

  5、選擇獲取參數(shù)類型和起始地址及數(shù)量。

運(yùn)動(dòng)控制

  ·

  //獲取上報(bào)參數(shù)void CTest_CycleUpDlg::GetCycleStr(){ memset(Str_CycleCmd,0,sizeof(Str_CycleCmd)); CString TempString = ""; int ilen = 0; if(m_CycleParaEnAble[0]) { switch(m_CyclePara[0]) { case 0: //AXISSTATUS TempString.Format("AXISSTATUS(%d,%d),",m_CycleParaStart[0],m_CycleParaNum[0]); break; case 1: //DPOS TempString.Format("DPOS(%d,%d),",m_CycleParaStart[0],m_CycleParaNum[0]); break; case 2: //IDLE TempString.Format("IDLE(%d,%d),",m_CycleParaStart[0],m_CycleParaNum[0]); break; case 3: //IN TempString.Format("IN(%d,%d),",m_CycleParaStart[0],m_CycleParaNum[0]); break; case 4: //MODBUS_REG TempString.Format("MODBUS_REG(%d,%d),",m_CycleParaStart[0],m_CycleParaNum[0]); break; case 5: //MPOS TempString.Format("MPOS(%d,%d),",m_CycleParaStart[0],m_CycleParaNum[0]); break; case 6: //OP TempString.Format("OP(%d,%d),",m_CycleParaStart[0],m_CycleParaNum[0]); break; case 7: //TABLE TempString.Format("TABLE(%d,%d),",m_CycleParaStart[0],m_CycleParaNum[0]); break; default: break; } } ilen += TempString.GetLength(); memcpy(Str_CycleCmd,TempString.GetBuffer(0),TempString.GetLength()*sizeof(TCHAR)); if(m_CycleParaEnAble[1]) { switch(m_CyclePara[1]) { case 0: //AXISSTATUS TempString.Format("AXISSTATUS(%d,%d),",m_CycleParaStart[1],m_CycleParaNum[1]); break; case 1: //DPOS TempString.Format("DPOS(%d,%d),",m_CycleParaStart[1],m_CycleParaNum[1]); break; case 2: //IDLE TempString.Format("IDLE(%d,%d),",m_CycleParaStart[1],m_CycleParaNum[1]); break; case 3: //IN TempString.Format("IN(%d,%d),",m_CycleParaStart[1],m_CycleParaNum[1]); break; case 4: //MODBUS_REG TempString.Format("MODBUS_REG(%d,%d),",m_CycleParaStart[1],m_CycleParaNum[1]); break; case 5: //MPOS TempString.Format("MPOS(%d,%d),",m_CycleParaStart[1],m_CycleParaNum[1]); break; case 6: //OP TempString.Format("OP(%d,%d),",m_CycleParaStart[1],m_CycleParaNum[1]); break; case 7: //TABLE TempString.Format("TABLE(%d,%d),",m_CycleParaStart[1],m_CycleParaNum[1]); break; default: break; } } if((ilen + TempString.GetLength()) < 1000) { memcpy(&Str_CycleCmd[ilen],TempString.GetBuffer(0),TempString.GetLength()*sizeof(TCHAR)); ilen += TempString.GetLength(); } if(m_CycleParaEnAble[2]) { switch(m_CyclePara[2]) { case 0: //AXISSTATUS TempString.Format("AXISSTATUS(%d,%d)",m_CycleParaStart[2],m_CycleParaNum[2]); break; case 1: //DPOS TempString.Format("DPOS(%d,%d)",m_CycleParaStart[2],m_CycleParaNum[2]); break; case 2: //IDLE TempString.Format("IDLE(%d,%d)",m_CycleParaStart[2],m_CycleParaNum[2]); break; case 3: //IN TempString.Format("IN(%d,%d)",m_CycleParaStart[2],m_CycleParaNum[2]); break; case 4: //MODBUS_REG TempString.Format("MODBUS_REG(%d,%d)",m_CycleParaStart[2],m_CycleParaNum[2]); break; case 5: //MPOS TempString.Format("MPOS(%d,%d)",m_CycleParaStart[2],m_CycleParaNum[2]); break; case 6: //OP TempString.Format("OP(%d,%d)",m_CycleParaStart[2],m_CycleParaNum[2]); break; case 7: //TABLE TempString.Format("TABLE(%d,%d)",m_CycleParaStart[2],m_CycleParaNum[2]); break; default: break; } } if((ilen + TempString.GetLength()) < 1000) { memcpy(&Str_CycleCmd[ilen],TempString.GetBuffer(0),TempString.GetLength()*sizeof(TCHAR)); ilen += TempString.GetLength(); }}

  6、獲取上報(bào)結(jié)果并輸出。

運(yùn)動(dòng)控制

  ·

  //獲取上報(bào)結(jié)果void CTest_CycleUpDlg::GetCycleInfo(){ CString ParaString = ""; CString TempString = ""; CString ShowString = ""; int iret = 0; int ival = 0; for(int inum=0;inum<3;inum++) { ShowString =""; if(m_CycleParaEnAble[inum]) { switch(m_CyclePara[inum]) { case 0: //AXISSTATUS ParaString = "AXISSTATUS"; break; case 1: //DPOS ParaString = "DPOS"; break; case 2: //IDLE ParaString = "IDLE"; break; case 3: //IN ParaString = "IN"; break; case 4: //MODBUS_REG ParaString = "MODBUS_REG"; break; case 5: //MPOS ParaString = "MPOS"; break; case 6: //OP ParaString = "OP"; break; case 7: //TABLE ParaString = "TABLE"; break; default: break; } ShowString += ParaString; for(int i =0;i

  7、強(qiáng)制上報(bào)一次。

  ·

  //強(qiáng)制上報(bào)一次void CTest_CycleUpDlg::OnBnClickedBtnCycleup(){ if(NULL == G_ZmcHandle) { MessageBox(_T("控制器未連接")); return; } UpdateData(true); int iret = ZAux_CycleUpForceOnce(G_ZmcHandle, m_CyclePort); if(ERR_SUCCESS != iret) { MessageBox(_T("周期上報(bào)刷新失敗!")); return; }}

  8、使用正運(yùn)動(dòng)RTSys軟件輸出窗口和軸參數(shù)窗口方便直接的觀察到我們周期上報(bào)的數(shù)值。

運(yùn)動(dòng)控制

  9、上位機(jī)讀取周期上報(bào)的值并輸入在文本框。

運(yùn)動(dòng)控制

  10、可以點(diǎn)擊下拉框選擇其他參數(shù)或更改起始地址及數(shù)量讀取不同區(qū)域數(shù)據(jù)。

運(yùn)動(dòng)控制

  11、周期上報(bào)獲取信息和單次獲取信息的比較。

運(yùn)動(dòng)控制

完整代碼獲取地址

運(yùn)動(dòng)控制

  本次,正運(yùn)動(dòng)運(yùn)動(dòng)控制卡周期上報(bào)實(shí)時(shí)數(shù)據(jù)IO狀態(tài)之C++篇就分享到這里。

  更多精彩內(nèi)容請(qǐng)關(guān)注“正運(yùn)動(dòng)小助手”公眾號(hào),需要相關(guān)開發(fā)環(huán)境與例程代碼,請(qǐng)咨詢正運(yùn)動(dòng)技術(shù)銷售工程師:400-089-8936。

  本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來源。

標(biāo)簽: 正運(yùn)動(dòng)運(yùn)動(dòng)控制

點(diǎn)贊

分享到:

上一篇:工業(yè)領(lǐng)域中,壓力傳感器是如...

下一篇:采用物聯(lián)網(wǎng)能源效率解決方案...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.hysjfh.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)

主站蜘蛛池模板: 大关县| 祥云县| 长汀县| 万全县| 安国市| 城固县| 池州市| 郑州市| 木兰县| 北川| 门源| 徐汇区| 江西省| 托克逊县| 黑山县| 明光市| 文山县| 蓬安县| 綦江县| 葵青区| 五原县| 和顺县| 青神县| 阿巴嘎旗| 巴塘县| 民和| 文水县| 东源县| 维西| 讷河市| 衡南县| 丽江市| 江孜县| 夏津县| 湘西| 雷波县| 恩施市| 洛浦县| 兰西县| 乌鲁木齐县| 恩施市|