一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡(jiǎn)單易用的以太網(wǎng)IO控制卡:C#讀寫(xiě)測(cè)試

正運(yùn)動(dòng)技術(shù) ? 來(lái)源:正運(yùn)動(dòng)技術(shù) ? 作者:正運(yùn)動(dòng)技術(shù) ? 2023-02-13 09:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天,正運(yùn)動(dòng)小助手給大家分享一下運(yùn)動(dòng)控制卡之ECIO系列IO卡的用法,C#語(yǔ)言進(jìn)行ECI IO卡的開(kāi)發(fā)以及測(cè)試多個(gè)IO讀寫(xiě)的交互速度。

一、ECI0032/ECI0064 IO卡的硬件介紹

1.功能介紹

ECI0032/ECI0064等ECI0系列運(yùn)動(dòng)控制卡支持以太網(wǎng)RS232通訊接口電腦相連,接收電腦的指令運(yùn)行,可以通過(guò)CAN總線連接各個(gè)擴(kuò)展模塊,從而擴(kuò)展輸入輸出點(diǎn)數(shù)。

poYBAGPpkQ2ATFNqAAM8j2MaMEQ771.pngECI0032 IO控制卡

pYYBAGPpkROAXfmgAALZ_SEqMic038.pngECI0064?IO控制卡

ECI0032/ECI0064等ECI0系列采用了優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議,可以實(shí)現(xiàn)實(shí)時(shí)的邏輯控制和IO狀態(tài)的監(jiān)控。

ECI0032/ECI0064等ECI0系列IO卡的應(yīng)用程序可以使用VC,VB,VS,C++,C#等軟件開(kāi)發(fā),程序運(yùn)行時(shí)需要?jiǎng)討B(tài)庫(kù)zmotion.dll,調(diào)試時(shí)可以將ZDevelop軟件同時(shí)連接控制器,從而方便調(diào)試、方便觀察。

poYBAGPpkRiANxaOAACdmwbQ808799.pngpYYBAGPpkR2AJVELAAJY-L-59ts049.pngECI0032系統(tǒng)架構(gòu)圖

pYYBAGPpkSKAZzycAAJ704Cd52A846.pngECI0064系統(tǒng)架構(gòu)圖

2.硬件接口

pYYBAGPpkSaAXjIVAAD8adkg-go471.png通用輸入口電路圖

poYBAGPpkSuAPWuJAACzbsJBewQ437.png通用輸入口接線參考圖

pYYBAGPpkS-AQi1DAAEQyaRWqGw029.png通用輸出口電路圖

pYYBAGPpkTWAQN0VAADnyUi6DaE381.png通用輸出口接線參考圖

3.控制器基本信息

poYBAGPpkTmACCi7AADjwgy_HoE767.png

二、C#語(yǔ)言進(jìn)行ECI IO卡的開(kāi)發(fā)

(一)新建WinForm項(xiàng)目并添加函數(shù)庫(kù)

1.在VS2015菜單“文件”→“新建”→“項(xiàng)目”,啟動(dòng)創(chuàng)建項(xiàng)目向?qū)А?/p>

poYBAGPpkT-ANEu0AADLY_D7w18175.png

2.選擇開(kāi)發(fā)語(yǔ)言為“Visual C#”和.NET Framework 4以及Windows窗體應(yīng)用程序。

pYYBAGPpkUOAfUuEAAGmfNRUuCE104.png

3.找到廠家提供的光盤(pán)資料里面的C#函數(shù)庫(kù),路徑如下(64位庫(kù)為例)。

1)進(jìn)入廠商提供的光盤(pán)資料找到“8.PC函數(shù)”文件夾,并點(diǎn)擊進(jìn)入。

poYBAGPpkUiARRqmAACmpbr-gN8693.png

2)選擇“函數(shù)庫(kù)2.1”文件夾。

pYYBAGPpkUyAeJz2AABvY8Eg3Dc151.png

3)選擇“Windows平臺(tái)”文件夾。

pYYBAGPpkVSAFWI2AACQkjL0iSk800.png

4)根據(jù)需要選擇對(duì)應(yīng)的函數(shù)庫(kù),這里選擇64位庫(kù)。

pYYBAGPpkVmAJ1V3AABXzXEOPew653.png

5)解壓C#壓縮包,里面有C#對(duì)應(yīng)的函數(shù)庫(kù)。

poYBAGPpkV6ASbTHAABXNEr3tU0801.png

6)函數(shù)庫(kù)具體路徑如下。

poYBAGPpkWOAU2kRAACaYcnAdEI475.png

4.將廠商提供的C#的庫(kù)文件以及相關(guān)文件復(fù)制到新建的項(xiàng)目中。

1)將zmcaux.cs文件復(fù)制到新建的項(xiàng)目里面中。

pYYBAGPpkWmAUFNzAAD80H8rBRE931.png

2)將zaux.dll和zmotion.dll文件放入bindebug文件夾中。

pYYBAGPpkW2AeSXSAADeT2cFJDU044.png

5.用vs打開(kāi)新建的項(xiàng)目文件,在右邊的解決方案資源管理器中點(diǎn)擊顯示所有文件,然后鼠標(biāo)右擊zmcaux.cs文件,點(diǎn)擊包括在項(xiàng)目中。

pYYBAGPpkXKAX9NtAARAb1NaKcw310.png

6.雙擊Form1.cs里面的Form1,出現(xiàn)代碼編輯界面,在文件開(kāi)頭寫(xiě)入using cszmcaux,并聲明控制器句柄g_handle。

pYYBAGPpkXiARMcMAAEv-ng48qU376.png

7.至此,項(xiàng)目新建完成,可進(jìn)行C#項(xiàng)目開(kāi)發(fā)。

(二)PC函數(shù)介紹

1.PC函數(shù)手冊(cè)可在光盤(pán)資料查看,具體路徑如下。

poYBAGPpkX6AX9-jAACvq0Opucg925.png

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

pYYBAGPpkcGAHChpAABHE1U5Z9c554.png

3.快速讀取多個(gè)輸入口當(dāng)前狀態(tài)接口說(shuō)明。

poYBAGPpkcaAK-0uAABDDniczdY980.png

4.快速讀取多個(gè)輸出口當(dāng)前狀態(tài)接口說(shuō)明。

pYYBAGPpkc6AIB4jAABM8BpmCrQ947.png

三、C#快速讀取多個(gè)IO狀態(tài)的測(cè)試?yán)?/strong>

1.例程界面

poYBAGPpkdSAcuPzAAEm6r2uTRc517.png

2.相關(guān)代碼

①鏈接按鈕的事件處理函數(shù)中調(diào)用鏈接控制器的接口函數(shù)ZAux_OpenEth(),與控制器進(jìn)行鏈接,鏈接成功后啟動(dòng)定時(shí)器1監(jiān)控控制器的IO狀態(tài)。

//鏈接控制器
private void LinkButton_Click(object sender, EventArgs e)
{
   zmcaux.ZAux_OpenEth(IP_comboBox.Text, out g_handle);
   if (g_handle != (IntPtr)0)
   {
       // MessageBox.Show("控制器鏈接成功!", "提示");
       timer1.Enabled = true;
       LinkButton.BackColor = Color.FromArgb(200, 255, 200);
   }
   else
   {
       MessageBox.Show("控制器鏈接失敗,請(qǐng)檢測(cè)IP地址!", "警告");
       LinkButton.BackColor = Color.FromArgb(255, 200, 200);
   }
}


②通過(guò)定時(shí)器1監(jiān)控控制器的IO狀態(tài)。

//定時(shí)器更新IO信息
private void timer1_Tick(object sender, EventArgs e)
{
   int j, k;
   int TestNum = 50;
   //快速讀取輸入口狀態(tài)接口時(shí)間測(cè)試
   byte[] InState = new byte[4];
   DateTime beforeDT = System.DateTime.Now;
   for (int count = 0; count < TestNum; count++)
   {
       zmcaux.ZAux_GetModbusIn(g_handle, 0, 32, InState);
       for (int i = 0; i < 32; i++)
       {
           j = i / 8;
           k = i % 8; 
           if (((InState[j] >> k) & 1) == 1)
           {
               InStatus[i].BackColor = Color.FromArgb(200, 255, 200); 
           }
           else
           {
               InStatus[i].BackColor = Color.FromArgb(255, 200, 200);
           }
       }
   }
   DateTime afterDT = System.DateTime.Now;
   //計(jì)算beforeDT與afterDT的時(shí)間差
   TimeSpan ts = afterDT - beforeDT;
   InMoitoring.Text = "輸入口監(jiān)控_刷新時(shí)間:  " + (ts.TotalMilliseconds * 1000 / TestNum).ToString() + " us    ";
   //快速讀取輸出口狀態(tài)接口時(shí)間測(cè)試
   byte[] OutState = new byte[4];
   DateTime beforeDTOP = System.DateTime.Now;
   for (int count = 0; count < TestNum; count++)
   { 
       zmcaux.ZAux_GetModbusOut(g_handle, 0, 32, OutState);
       for (int i = 0; i < 32; i++)
       {
           j = i / 8;
           k = i % 8;
           if (((OutState[j] >> k) & 1) == 1)
           {
               OutStatus[i].BackColor = Color.FromArgb(200, 255, 200);
           }
           else
           {
               OutStatus[i].BackColor = Color.FromArgb(255, 200, 200);
           }
       }
   }
   DateTime afterDTOP = System.DateTime.Now;
   //計(jì)算beforeDTOP與afterDTOP的時(shí)間差
   ts = afterDTOP - beforeDTOP;
   OutMoitoring.Text = "輸出口監(jiān)控_刷新時(shí)間:  " + (ts.TotalMilliseconds * 1000 / TestNum).ToString() + " us    ";
}


③多個(gè)輸入口狀態(tài)讀取速度測(cè)試函數(shù)。

//多個(gè)輸入口狀態(tài)讀取交互速度測(cè)試
private void ReadInTest_Click(object sender, EventArgs e)
{
   int j, k;
   int testNum = Convert.ToInt32(TestNum.Text.ToString());
   int readInNum = Convert.ToInt32(ReadInNum.Text.ToString());
   //快速讀取輸入口狀態(tài)接口時(shí)間測(cè)試
   byte[] InState = new byte[4];
   DateTime beforeDT = System.DateTime.Now;
   for (int count = 0; count < testNum; count++)
   {
       zmcaux.ZAux_GetModbusIn(g_handle, 0, readInNum, InState);
       if (count % 100 == 0)
       {
           for (int i = 0; i < 32; i++)
           {
               j = i / 8;
               k = i % 8;
               if (((InState[j] >> k) & 1) == 1)
               {
                   InStatus[i].BackColor = Color.FromArgb(200, 255, 200);
               }
               else
               {
                   InStatus[i].BackColor = Color.FromArgb(255, 200, 200);
               }
           }
       }
   }
   DateTime afterDT = System.DateTime.Now;
   //計(jì)算beforeDT與afterDT的時(shí)間差
   TimeSpan ts = afterDT - beforeDT;
   //總耗時(shí) ms
   ReadInTotTime.Text = ts.TotalMilliseconds.ToString("0.00");
   //平均耗時(shí) us
   ReadInTime.Text = (ts.TotalMilliseconds * 1000 / testNum).ToString("0.00");
}


④多個(gè)輸出口狀態(tài)讀取速度測(cè)試函數(shù)。

//多個(gè)輸出口狀態(tài)讀取交互速度測(cè)試
private void ReadOutTest_Click(object sender, EventArgs e)
{
   int j, k;
   int testNum = Convert.ToInt32(TestNum.Text.ToString());
   int readOutNum = Convert.ToInt32(ReadOutNum.Text.ToString());
   //快速讀取輸入口狀態(tài)接口時(shí)間測(cè)試
   byte[] OutState = new byte[4];
   DateTime beforeDT = System.DateTime.Now;
   for (int count = 0; count < testNum; count++)
   {
       zmcaux.ZAux_GetModbusOut(g_handle, 0, readOutNum, OutState); 
       if (count % 100 == 0)
       {
           for (int i = 0; i < 32; i++)
           {
               j = i / 8;
               k = i % 8;
               if (((OutState[j] >> k) & 1) == 1)
               {
                   OutStatus[i].BackColor = Color.FromArgb(200, 255, 200);
               }
               else
               {
                   OutStatus[i].BackColor = Color.FromArgb(255, 200, 200);
               }
           }
       }
   }
   DateTime afterDT = System.DateTime.Now;
   //計(jì)算beforeDT與afterDT的時(shí)間差
   TimeSpan ts = afterDT - beforeDT;
   //總耗時(shí) ms
   ReadOutTolTime.Text = ts.TotalMilliseconds.ToString("0.00");
   //平均耗時(shí) us
   ReadOutTime.Text = (ts.TotalMilliseconds * 1000 / testNum).ToString("0.00");
}


⑤多個(gè)輸出口狀態(tài)設(shè)置速度測(cè)試函數(shù)。

//多個(gè)輸出口狀態(tài)設(shè)置交互速度測(cè)試
private void WriteOutTest_Click(object sender, EventArgs e)
{
   int testNum = Convert.ToInt32(TestNum.Text.ToString());
   int writeOutNum = Convert.ToInt32(WriteOutNum.Text.ToString());
   //快速讀取輸入口狀態(tài)接口時(shí)間測(cè)試
   byte[] OutState = new byte[4];
   DateTime beforeDT = System.DateTime.Now;
   for (int count = 0; count < testNum; count++)
   {
       zmcaux.ZAux_GetModbusOut(g_handle, 0, writeOutNum, OutState);
   }
   DateTime afterDT = System.DateTime.Now;
   //計(jì)算beforeDT與afterDT的時(shí)間差
   TimeSpan ts = afterDT - beforeDT;
   //總耗時(shí) ms
   WriteOutTolTime.Text = ts.TotalMilliseconds.ToString("0.00");
   //平均耗時(shí) us
   WriteOutTime.Text = (ts.TotalMilliseconds * 1000 / testNum).ToString("0.00");
}

3.多個(gè)IO狀態(tài)與上位機(jī)交互速度測(cè)試結(jié)果

(1)32個(gè)輸入輸出口讀寫(xiě)1000次,交互速度測(cè)試結(jié)果。

poYBAGPpkyKAATA5AAE4GxSMT1Q476.png

(2)32個(gè)輸入輸出口讀寫(xiě)1W次,交互速度測(cè)試結(jié)果。

poYBAGPpkyiAEUHWAAE9y6sUcFw841.png

(3)32個(gè)輸入輸出口讀寫(xiě)10W次,交互速度測(cè)試結(jié)果。

poYBAGPpkzyAZTYxAAEzAshm7y4218.png

四、分析與結(jié)論

以上分別是對(duì)32個(gè)輸入口的讀速度、32個(gè)輸出口的讀速度以及32個(gè)輸出口的寫(xiě)速度進(jìn)行測(cè)試,從上面的運(yùn)行效果圖的數(shù)據(jù)顯示來(lái)看,無(wú)論是輸入口還是輸出口,它們的交互速度都保持在200us左右。當(dāng)測(cè)試次數(shù)從1000次增加到1W次,甚至10W次時(shí),交互速度依舊保持在200us左右。測(cè)試效果十分穩(wěn)定。測(cè)試數(shù)據(jù)如下表所示:

poYBAGPpk0iAdCgOAAASYnlWAtE478.png

本次,正運(yùn)動(dòng)技術(shù)簡(jiǎn)單易用的以太網(wǎng)IO控制卡:C#讀寫(xiě)測(cè)試,就分享到這里。

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

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

審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • IO
    IO
    +關(guān)注

    關(guān)注

    0

    文章

    490

    瀏覽量

    40502
  • 測(cè)試
    +關(guān)注

    關(guān)注

    8

    文章

    5687

    瀏覽量

    128783
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    41

    文章

    5630

    瀏覽量

    175801
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    簡(jiǎn)單易用以太網(wǎng)數(shù)據(jù)采集應(yīng)用開(kāi)發(fā)之C#

    C#語(yǔ)言以太網(wǎng)數(shù)據(jù)采集的開(kāi)發(fā)。
    的頭像 發(fā)表于 05-17 14:25 ?1188次閱讀
    <b class='flag-5'>簡(jiǎn)單</b><b class='flag-5'>易用</b>的<b class='flag-5'>以太網(wǎng)</b>數(shù)據(jù)采集<b class='flag-5'>卡</b>應(yīng)用開(kāi)發(fā)之<b class='flag-5'>C#</b>

    PCIe EtherCAT實(shí)時(shí)運(yùn)動(dòng)控制卡PCIE464的IO與編碼器讀寫(xiě)應(yīng)用

    C#進(jìn)行PCIe EtherCAT運(yùn)動(dòng)控制卡的項(xiàng)目開(kāi)發(fā)和快速讀取多個(gè)IO和軸編碼器位置的例程。
    的頭像 發(fā)表于 07-17 14:47 ?1426次閱讀
    PCIe EtherCAT實(shí)時(shí)運(yùn)動(dòng)<b class='flag-5'>控制卡</b>PCIE464的<b class='flag-5'>IO</b>與編碼器<b class='flag-5'>讀寫(xiě)</b>應(yīng)用

    EtherCAT運(yùn)動(dòng)控制卡之ECI2820如何使用

    軸直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨、虛擬軸、機(jī)械手指令等;采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實(shí)現(xiàn)實(shí)時(shí)的運(yùn)動(dòng)控制?! CI2828系列運(yùn)動(dòng)運(yùn)動(dòng)控制卡支持以太網(wǎng),232 通訊接口和電腦相連,接收電
    發(fā)表于 09-01 06:24

    C#教程之IC讀寫(xiě)

    C#教程之IC讀寫(xiě),很好的C#資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-21 09:52 ?26次下載

    C#教程之視頻采集讀寫(xiě)

    C#教程之視頻采集讀寫(xiě),很好的C#資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-21 09:52 ?27次下載

    正運(yùn)動(dòng)ECI0032 IO控制卡用戶手冊(cè)

    ECI0032 是正運(yùn)動(dòng)技術(shù)開(kāi)發(fā)的一款網(wǎng)絡(luò) IO 控制卡,采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實(shí)現(xiàn)實(shí)時(shí)的 IO 控制。ECI0032 網(wǎng)絡(luò) IO
    發(fā)表于 05-10 09:15 ?0次下載

    正運(yùn)動(dòng)ECI0064 IO控制卡用戶手冊(cè)

    ECI0064 是正運(yùn)動(dòng)技術(shù)開(kāi)發(fā)的一款網(wǎng)絡(luò) IO 控制卡,采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實(shí)現(xiàn)實(shí)時(shí)的 IO 控制。ECI0064 網(wǎng)絡(luò) IO
    發(fā)表于 05-10 15:38 ?0次下載

    正運(yùn)動(dòng)ECI0064C IO控制卡用戶手冊(cè)

    ECI0064C 是正運(yùn)動(dòng)技術(shù)開(kāi)發(fā)的一款網(wǎng)絡(luò) IO 控制卡,采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實(shí)現(xiàn)實(shí)時(shí)的 IO 控制。ECI0064
    發(fā)表于 05-29 14:26 ?0次下載

    EtherCAT運(yùn)動(dòng)控制卡的硬件接線與C#的硬件外設(shè)讀寫(xiě)與回零運(yùn)動(dòng)

    EtherCAT運(yùn)動(dòng)控制卡進(jìn)行硬件接線與C#的硬件外設(shè)讀寫(xiě)與回零運(yùn)動(dòng)
    的頭像 發(fā)表于 11-08 16:26 ?3217次閱讀
    EtherCAT運(yùn)動(dòng)<b class='flag-5'>控制卡</b>的硬件接線與<b class='flag-5'>C#</b>的硬件外設(shè)<b class='flag-5'>讀寫(xiě)</b>與回零運(yùn)動(dòng)

    EtherCAT運(yùn)動(dòng)控制卡的硬件接線與C#的單軸運(yùn)動(dòng)控制

    EtherCAT運(yùn)動(dòng)控制卡實(shí)現(xiàn)C#的單軸運(yùn)動(dòng)控制的例程
    的頭像 發(fā)表于 10-22 16:07 ?3765次閱讀
    EtherCAT運(yùn)動(dòng)<b class='flag-5'>控制卡</b>的硬件接線與<b class='flag-5'>C#</b>的單軸運(yùn)動(dòng)<b class='flag-5'>控制</b>

    具有PMIC和汽車(chē)以太網(wǎng)的AM263x控制卡

    電子發(fā)燒友網(wǎng)站提供《具有PMIC和汽車(chē)以太網(wǎng)的AM263x控制卡.pdf》資料免費(fèi)下載
    發(fā)表于 10-31 09:33 ?0次下載
    具有PMIC和汽車(chē)<b class='flag-5'>以太網(wǎng)</b>的AM263x<b class='flag-5'>控制卡</b>

    以太網(wǎng)IO控制卡C#實(shí)時(shí)讀寫(xiě)時(shí)間測(cè)試

    C#語(yǔ)言進(jìn)行ECI IO的項(xiàng)目開(kāi)發(fā)和快速讀取多個(gè)IO狀態(tài)與上位機(jī)交互速度的測(cè)試結(jié)果
    的頭像 發(fā)表于 11-21 13:50 ?653次閱讀
    <b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>IO</b><b class='flag-5'>控制卡</b>:<b class='flag-5'>C#</b>實(shí)時(shí)<b class='flag-5'>讀寫(xiě)</b>時(shí)間<b class='flag-5'>測(cè)試</b>

    運(yùn)動(dòng)控制卡網(wǎng)絡(luò)通訊的心跳檢測(cè)之C#上位機(jī)編程

    使用C#上位機(jī)編程實(shí)現(xiàn)運(yùn)動(dòng)控制卡網(wǎng)絡(luò)通訊的心跳檢測(cè)功能
    的頭像 發(fā)表于 12-24 10:54 ?1101次閱讀
    運(yùn)動(dòng)<b class='flag-5'>控制卡</b>網(wǎng)絡(luò)通訊的心跳檢測(cè)之<b class='flag-5'>C#</b>上位機(jī)編程

    C#上位機(jī)與運(yùn)動(dòng)控制卡網(wǎng)絡(luò)通訊的周期上報(bào)

    使用C#上位機(jī)編程實(shí)現(xiàn)運(yùn)動(dòng)控制卡網(wǎng)絡(luò)通訊的周期上報(bào)功能
    的頭像 發(fā)表于 06-26 13:59 ?124次閱讀
    <b class='flag-5'>C#</b>上位機(jī)與運(yùn)動(dòng)<b class='flag-5'>控制卡</b>網(wǎng)絡(luò)通訊的周期上報(bào)