色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

運動控制卡網絡通訊的心跳檢測之C#上位機編程

正運動技術 ? 來源:正運動技術 ? 作者:正運動技術 ? 2024-12-24 10:54 ? 次閱讀

本文導讀

今天,正運動小助手給大家分享一下如何使用C#上位機編程實現運動控制卡網絡通訊的心跳檢測功能。

01 ECI2618B硬件介紹

ECI2618B經濟型多軸運動控制卡是一款脈沖型、模塊化的網絡型運動控制卡。控制卡本身最多支持6軸,可擴展至12軸的運動控制,用以實現直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸以及機械手指令等簡單的軌跡控制需求;采用優化的網絡通訊協議可以實現實時的運動控制。

wKgZPGdqIEGAWqa6AAFufRYXF-c253.png

ECI2618B控制卡功能特點:

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

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

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

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

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

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

(7)軸正負限位信號口/原點信號口可以隨意配置到任何輸入口。

(8)通用數字輸出口最大輸出電流可達500mA,可直接驅動部分電磁閥。

(9)支持點位運動、電子凸輪、直線插補、圓弧插補、連續插補運動、機械手指令。

(10)支持Basic多文件多任務編程。

(11)多種程序加密手段,保護客戶的知識產權。

wKgZO2dqIFeAFxqvAAKSiO2Etu0550.png

ECI2000系列經濟型多軸運動控制卡可用于電子半導體設備(檢測類設備、組裝類設備、鎖附類設備、焊錫機)、點膠設備和流水線等12軸以內脈沖應用場合。

控制器支持windows、linux、Mac、Android、wince各種操作系統下的開發,提供vc、c#、vb.net、labview等各種環境的dll庫,如下圖。上位機軟件編程參考《ZMotion PC函數庫編程手冊》。

wKgaomYuEteAI33-AAEe24mYong268.jpg

02 為什么要進行心跳檢測,作用是什么

1.實時監測:

通過檢測上位機與下位機的通信狀態,可以實時監測上位機是否正常連接和通訊。一旦發現上位機掉線,系統可以及時采取相應的應對措施,避免因為掉線導致通訊中斷或數據丟失。

2.系統穩定性:

上位機是控制系統的核心部分,掉線可能會導致整個系統失去控制。掉線檢測可以保障系統的穩定性,及時發現掉線情況并進行處理,保持系統正常運行。

3.數據完整性:

上位機通常負責與用戶界面交互、數據處理和決策,數據的完整性對系統運行至關重要。通過掉線檢測,系統可以及時發現掉線情況,保證數據的完整性和準確性。

4.故障診斷:

掉線檢測可以作為系統故障診斷的一種手段,通過監測上位機的狀態,可以幫助確定系統出現問題的具體原因,加快故障排查和修復的速度。

03 BASIC語言進行心跳檢測腳本語言編寫

(一)前情提要

心跳檢測的實現主要是兩個部分組成:

1.上位機周期修改變量;

2.控制器程序周期檢測變量并在掉線的時候執行一些急停操作。

在示例中,上位機程序會周期修改Heart_Status,控制器程序會周期掃描Heart_Status,并在檢測到變量的值異常的時候打開輸出口,模擬掉線急停的操作。

流程圖如下所示:

wKgZPGdqIHaAb7DqAAIrsFEHqW4587.png

(二)創建變量

'**************************心跳相關變量定義************************
GlobalHeart_StarFlag'開始通訊標識變量
Global Heart_Status                 '通訊標識變量
GlobalHeart_Time'心跳超時時間
GlobalHeart_OutNum'急停OP數量
GlobalOutList_Address'急停OUTmodbus_long起始地址(Ps:3系列以下,自定義變量為24位浮點數,32位精度丟失,用modbus_long來代替)
GLOBAL CONST cVer=CONTROL
Heart_StarFlag =-1
Heart_Status = 0
Heart_OutNum = 10
OutList_Address =0
dim i,j

(三)開啟掃描

掃描流程:

等待上位機發送掃描開始指令;

根據控制器信號進入不同掃描程序(原理一樣只是實現略有不同);

將通訊標識變量置1;

等待一個超時時間;

判斷通訊標識;

如果為1表示上位機沒有進行通訊,掉線狀態。進行掉線保護操作;

為0表示進行通訊,正常狀態。開啟下一次掃描。

WHILE TRUE
    WAIT until Heart_StarFlag = 1                       '等待PC軟件連接
    DELAY Heart_Time                                    'PC連接之后,延時一個超時時間,避免上位
    WHILE TRUE
ifHeart_Status=0thenHeart_Status=1       '等待PC上修改通訊變量
ticks=Heart_Time'超時判斷處理,等待PC上修改Heart_Flag=0
        WAIT until ticks < 0 or Heart_Status=0
             if Heart_Status = 1 THEN
                RAPIDSTOP(2)
                WAIT IDLE
                OP(0,31,MODBUS_LONG(OutList_Address))   'MODBUS_LONG存儲32位整型按位控制掉線急停IO
                Heart_StarFlag=-1
                Heart_Status = 0 ELSE
                OP(0,31,0)
            Endif
????WEND
WEND
end  

04 C#語言進行心跳檢測開發

(一)新建WinForm項目并添加函數庫

1.在VS2010菜單“文件”→“新建”→“項目”,啟動創建項目向導。

wKgZPGdqIKuAUSeSAABq_dsJTdI335.png

2.選擇開發語言為“Visual C#”和.NET Framework 4以及Windows窗體應用程序。

wKgZPGdqILCAZgUFAAFFotI8gKE552.png

3.找到廠家提供的光盤資料里面的C#函數庫,路徑如下(32位庫為例)。

(1)進入廠商提供的光盤資料找到“04PC函數”文件夾,并點擊進入。

wKgZO2dqILaAYUjuAAF_c5dZC6s158.png

(2)選擇“01PC函數庫V2.1”文件夾。

wKgZPGdqILyAYWy-AAE-QNZnxLo183.png

(3)選擇“windows平臺”文件夾。

wKgZO2dqIMGAQN0JAAD3dVQveDA983.png

(4)根據需要選擇對應的函數庫,這里選擇32位庫。

wKgZO2dqIMaAFx6VAADlTI5Pwmc986.png

(5)解壓C#壓縮包,里面有C#對應的函數庫。

wKgZO2dqIMqAN0MDAAF3XrW7LhI273.png

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

wKgZO2dqIM6AAtBkAAFbt5-utow040.png

4.將廠商提供的C#的庫文件以及相關文件復制到新建的項目中。

(1)將Zmcaux.cs文件復制到新建的項目里面中。

wKgZPGdqINOAcSW6AADznk8pJDo203.png

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

wKgZO2dqINiACmeFAAEqhdvXRuk969.png

5.用vs打開新建的項目文件,在右邊的解決方案資源管理器中點擊“顯示所有文件”,然后鼠標右擊Zmcaux.cs文件,點擊“包括在項目中”。

wKgZPGdqIN-AbO6kAABlk1QIPFk832.pngwKgZO2dqIOSAJ4mnAAB8glgArcc820.png

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

wKgZO2dqIOqANCYhAADPBPMNIa8552.png

(二)PC函數介紹

1.PC函數手冊可在光盤資料查看,具體路徑如下。

wKgZO2dqIPKAPwVBAAA-YOQ1viQ897.png

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

wKgZPGdqIPiAFM6NAAEk0KT1p4M492.png

3.下載并運行控制器程序。

wKgZPGdqIPyATDgnAABu_jXtbWs243.png

4.設置控制器程序參數。

wKgZO2dqIQKACgbAAAB-TJpMk0A275.pngwKgZPGdqIQ2ADi5DAACFWf6JLDI858.png

05 C#例程建設之網絡通訊的心跳檢測

(一)前情提要

上位機軟件的主要功能:

1.下載并運行控制器程序;

2.設置掃描參數

3.開啟和關閉心跳檢測;

4.設置急停IO。

界面如下圖所示:

wKgZO2dqITGAFIDRAAAWFVFRID0149.png

(二)例程講解

1.連接控制器獲取句柄,上位機操作通過獲取到的句柄來操作控制器。

//連接控制器,控制器默認IP是192.168.0.11
ZauxErr = zmcaux.ZAux_OpenEth("192.168.0.11", out g_Handle);
if (0 != ZauxErr)
{
    AlmInifFile.Write(DateTime.Now.ToString("F"), "ZAux_OpenEth執行錯誤,錯誤碼:" + ZauxErr.ToString(), "錯誤碼信息");
}
wKgZO2dqIUeASXw2AAAWnje5Pgw475.png

2.下載心跳bas程序

函數介紹:

通過OpenFileDialog獲取控制器程序路徑,然后通過openFile判斷文件是否為空,最后通過ZAux_BasDown將控制器程序下載到控制器。

private void btnFile_Click(object sender, EventArgs e)
{
    string m_strOpenFileName;
    FileStream openFile;
    OpenFileDialog fileOpen = new OpenFileDialog();
    fileOpen.Filter = "Basic Files (*.bas)|*.bas|All Files (*.*)|*.*";
    fileOpen.RestoreDirectory = true;
    fileOpen.FilterIndex = 1;
    if (fileOpen.ShowDialog() == DialogResult.OK)
    {
        m_strOpenFileName = fileOpen.FileName;
        try{
            openFile = new FileStream(fileOpen.FileName, FileMode.Open, FileAccess.Read);
            openFile.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Open Failed!");
            return;
        }
        ret = zmcaux.ZAux_BasDown(g_handle, m_strOpenFileName, 0);
        controlReturnQue.Enqueue(ret);
        if (ret == 0)
        MessageBox.Show("心跳程序已成功加載");
    }
}
wKgZO2dqIWGAHzzeAAAWvKWcMh8294.pngwKgZPGdqIWaAFkYJAACV9E9UjSU066.png

3.啟動心跳檢測

函數介紹:

首先通過SetTimeOutPara設置掃描參數,然后ZAux_Direct_SetUserVar設置Heart_StarFlag心跳標示變量。啟動控制器掃描程序,隨后開啟上位機掃描程序。

private void btnStart_Click(object sender, EventArgs e)
{
    SetTimeOutPara();
    ret = zmcaux.ZAux_Direct_SetUserVar(g_handle, "Heart_StarFlag", 1);
    controlReturnQue.Enqueue(ret);
    timeOut = 0;
    timer1.Enabled = true;
    timer1.Interval = int.Parse(tbxUpTimer.Text);
    tbState.Text = "已啟動";
}
//上位機掃描程序
private void timer1_Tick(object sender, EventArgs e)
{
    ret = zmcaux.ZAux_Direct_SetUserVar(g_handle, "Heart_Status", 0);
    controlReturnQue.Enqueue(ret);
    if (ret != 0)
    timeOut++;
    if (timeOut > 1)
    {
        tbState.Text = "未啟動";
        timer1.Stop();
    }
}
wKgZPGdqIYKAZWkwAACWKBYOUuA431.pngwKgZO2dqIYiAROhoAAAWmKNIuqo675.png

4.RTSys的使用

(1)打開【RTSys】軟件,點擊【連接】輸入控制器的IP(默認IP:192.168.0.11)。

wKgZPGdqIZGAUfzgAABwmKDan60575.pngwKgZO2dqIZaAFkHkAAAQ6aJMBWg884.png

(2)打開輸出口界面,即可通過輸出口觀察是否掉線。

wKgZO2dqIZ2AV5FTAABbuPENWb4461.png

(三)教學視頻

教學視頻可點擊→“教學視頻:運動控制卡網絡通訊的心跳檢測之C#上位機編程”查看。

本次,正運動技術運動控制卡網絡通訊的心跳檢測之C#上位機編程,就分享到這里。

更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師:400-089-8936。

本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 運動控制
    +關注

    關注

    4

    文章

    587

    瀏覽量

    32934
  • 上位機
    +關注

    關注

    27

    文章

    945

    瀏覽量

    54940
  • 運動控制卡
    +關注

    關注

    7

    文章

    114

    瀏覽量

    15497
  • 運動控制系統

    關注

    0

    文章

    92

    瀏覽量

    14167
  • 正運動技術
    +關注

    關注

    0

    文章

    104

    瀏覽量

    442
收藏 人收藏

    評論

    相關推薦

    運動控制卡周期上報實時數據IO狀態C++篇

    使用C++進行運動控制卡的周期上報功能實現
    的頭像 發表于 12-17 13:59 ?309次閱讀
    <b class='flag-5'>運動</b><b class='flag-5'>控制卡</b>周期上報實時數據IO狀態<b class='flag-5'>之</b><b class='flag-5'>C</b>++篇

    以太網IO控制卡C#實時讀寫時間測試

    C#語言進行ECI IO的項目開發和快速讀取多個IO狀態與上位交互速度的測試結果
    的頭像 發表于 11-21 13:50 ?265次閱讀
    以太網IO<b class='flag-5'>控制卡</b>:<b class='flag-5'>C#</b>實時讀寫時間測試

    PCIe實時運動控制卡的雙盤視覺篩選機上位開發應用

    PCIe實時運動控制卡的雙盤視覺篩選機上位開發應用
    的頭像 發表于 10-10 10:15 ?386次閱讀
    PCIe實時<b class='flag-5'>運動</b><b class='flag-5'>控制卡</b>的雙盤視覺篩選機<b class='flag-5'>上位</b><b class='flag-5'>機</b>開發應用

    PCIe EtherCAT實時運動控制卡PCIE464的IO與編碼器讀寫應用# 正運動技術# 運動控制卡

    編碼器運動控制卡
    正運動技術
    發布于 :2024年07月23日 09:37:31

    PCIe EtherCAT實時運動控制卡PCIE464的IO與編碼器讀寫應用

    C#進行PCIe EtherCAT運動控制卡的項目開發和快速讀取多個IO和軸編碼器位置的例程。
    的頭像 發表于 07-17 14:47 ?849次閱讀
    PCIe EtherCAT實時<b class='flag-5'>運動</b><b class='flag-5'>控制卡</b>PCIE464的IO與編碼器讀寫應用

    運動控制卡伺服電機如何控制

    運動控制卡伺服電機控制是現代工業自動化領域中一項重要的技術,它涉及到運動控制卡、伺服電機、控制
    的頭像 發表于 06-12 14:13 ?994次閱讀

    PCIE464M — 高速高精,超高速PCIe EtherCAT實時運動控制卡

    運動“高速高精運動控制卡”家族再添一員猛將!
    的頭像 發表于 05-31 11:17 ?494次閱讀
    PCIE464M — 高速高精,超高速PCIe EtherCAT實時<b class='flag-5'>運動</b><b class='flag-5'>控制卡</b>

    運動控制卡/運動控制器的ZCAN總線ZMIO310擴展模塊使用

    運動控制卡/運動控制器的ZCAN總線ZMIO310擴展模塊使用
    的頭像 發表于 04-11 11:46 ?711次閱讀
    <b class='flag-5'>運動</b><b class='flag-5'>控制卡</b>/<b class='flag-5'>運動</b><b class='flag-5'>控制</b>器的ZCAN總線ZMIO310擴展模塊使用

    EtherCAT超高速實時運動控制卡XPCIE1032H上位C#開發(十四)

    XPCIE1032H是一款基于PCI Express的EtherCAT總線運動控制卡,可選6-64軸運動控制,支持多路高速數字輸入輸出,可輕松實現多軸同步
    的頭像 發表于 03-04 10:46 ?4.6w次閱讀
    EtherCAT超高速實時<b class='flag-5'>運動</b><b class='flag-5'>控制卡</b>XPCIE1032H<b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>C#</b>開發(十四)

    EtherCAT超高速實時運動控制卡XPCIE1032H上位C#開發(十三)

    XPCIE1032H是一款基于PCI Express的EtherCAT總線運動控制卡,可選6-64軸運動控制,支持多路高速數字輸入輸出,可輕松實現多軸同步
    的頭像 發表于 02-25 10:11 ?1120次閱讀
    EtherCAT超高速實時<b class='flag-5'>運動</b><b class='flag-5'>控制卡</b>XPCIE1032H<b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>C#</b>開發(十三)

    超高實時性的EtherCAT運動控制卡——PCIE464

    運動技術PCIE464運動控制卡,提供高效的工業運動控制解決方案。用戶可直接將PCIE464嵌入標準PC
    發表于 01-26 14:39 ?1229次閱讀

    PT/PVT運動模式介紹:EtherCAT超高速實時運動控制卡XPCIE1032H上位C#人工智能

    上位運動控制卡
    正運動技術
    發布于 :2024年01月25日 11:12:46
    主站蜘蛛池模板: 热99re久久精品国产首页 | 麒麟色欧美影院在线播放 | 99RE6这里只有精品国产AV | 中文字幕高清在线观看 | 日本一区二区三区在线观看网站 | 日韩欧美精品有码在线播放 | 亚洲中文热码在线视频 | 午夜神器18以下不能进免费 | 一区精品在线 | 少男同志freedeos| 永久午夜福利视频一区在线观看 | 免费女性裸身照无遮挡网站 | 伦 乱真实故事 | 找老女人泻火对白自拍 | 入禽太深免费观看 | www色小姐 | 伊人香蕉在线播放视频免费 | 国产精品伦一区二区三级视频 | 国产欧美一区二区三区免费 | 全黄h全肉细节全文 | 深夜释放自己在线观看 | 97久久伊人精品影院 | 日本久久久WWW成人免费毛片丨 | 伊人精品视频直播 | 久久中文字幕亚洲 | 后入式狂顶免费视频 | 国产国语在线播放视频 | 51无码人妻精品1国产 | 俄罗斯性xxxx | 暖暖日本免费播放 | 学校女性奴sm训练调教 | 伊人激情综合网 | 亚洲熟女丰满多毛XXXXX | 色小姐电影qvod播放 | 在线亚洲国产日韩欧洲专区 | 亚洲另类中文字幕 | 中文字幕A片视频一区二区 中文字幕AV在线一二三区 | 国产婷婷午夜精品无码A片 国产婷婷色综合AV蜜臀AV | 亚洲三级视频 | 色中色辩论区 | 看电影来5566一区.二区 |