在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

正運(yùn)動技術(shù) ? 來源:正運(yùn)動技術(shù) ? 作者:正運(yùn)動技術(shù) ? 2024-12-24 10:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文導(dǎo)讀

今天,正運(yùn)動小助手給大家分享一下如何使用C#上位機(jī)編程實(shí)現(xiàn)運(yùn)動控制卡網(wǎng)絡(luò)通訊的心跳檢測功能。

01 ECI2618B硬件介紹

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

wKgZPGdqIEGAWqa6AAFufRYXF-c253.png

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

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

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

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

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

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

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

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

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

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

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

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

wKgZO2dqIFeAFxqvAAKSiO2Etu0550.png

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

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

wKgaomYuEteAI33-AAEe24mYong268.jpg

02 為什么要進(jìn)行心跳檢測,作用是什么

1.實(shí)時(shí)監(jiān)測:

通過檢測上位機(jī)與下位機(jī)的通信狀態(tài),可以實(shí)時(shí)監(jiān)測上位機(jī)是否正常連接和通訊。一旦發(fā)現(xiàn)上位機(jī)掉線,系統(tǒng)可以及時(shí)采取相應(yīng)的應(yīng)對措施,避免因?yàn)榈艟€導(dǎo)致通訊中斷或數(shù)據(jù)丟失。

2.系統(tǒng)穩(wěn)定性:

上位機(jī)是控制系統(tǒng)的核心部分,掉線可能會導(dǎo)致整個(gè)系統(tǒng)失去控制。掉線檢測可以保障系統(tǒng)的穩(wěn)定性,及時(shí)發(fā)現(xiàn)掉線情況并進(jìn)行處理,保持系統(tǒng)正常運(yùn)行。

3.數(shù)據(jù)完整性:

上位機(jī)通常負(fù)責(zé)與用戶界面交互、數(shù)據(jù)處理和決策,數(shù)據(jù)的完整性對系統(tǒng)運(yùn)行至關(guān)重要。通過掉線檢測,系統(tǒng)可以及時(shí)發(fā)現(xiàn)掉線情況,保證數(shù)據(jù)的完整性和準(zhǔn)確性。

4.故障診斷:

掉線檢測可以作為系統(tǒng)故障診斷的一種手段,通過監(jiān)測上位機(jī)的狀態(tài),可以幫助確定系統(tǒng)出現(xiàn)問題的具體原因,加快故障排查和修復(fù)的速度。

03 BASIC語言進(jìn)行心跳檢測腳本語言編寫

(一)前情提要

心跳檢測的實(shí)現(xiàn)主要是兩個(gè)部分組成:

1.上位機(jī)周期修改變量;

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

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

流程圖如下所示:

wKgZPGdqIHaAb7DqAAIrsFEHqW4587.png

(二)創(chuàng)建變量

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

(三)開啟掃描

掃描流程:

等待上位機(jī)發(fā)送掃描開始指令;

根據(jù)控制器信號進(jìn)入不同掃描程序(原理一樣只是實(shí)現(xiàn)略有不同);

將通訊標(biāo)識變量置1;

等待一個(gè)超時(shí)時(shí)間;

判斷通訊標(biāo)識;

如果為1表示上位機(jī)沒有進(jìn)行通訊,掉線狀態(tài)。進(jìn)行掉線保護(hù)操作;

為0表示進(jìn)行通訊,正常狀態(tài)。開啟下一次掃描。

WHILE TRUE
    WAIT until Heart_StarFlag = 1                       '等待PC軟件連接
    DELAY Heart_Time                                    'PC連接之后,延時(shí)一個(gè)超時(shí)時(shí)間,避免上位
    WHILE TRUE
ifHeart_Status=0thenHeart_Status=1       '等待PC上修改通訊變量
ticks=Heart_Time'超時(shí)判斷處理,等待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#語言進(jìn)行心跳檢測開發(fā)

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

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

wKgZPGdqIKuAUSeSAABq_dsJTdI335.png

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

wKgZPGdqILCAZgUFAAFFotI8gKE552.png

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

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

wKgZO2dqILaAYUjuAAF_c5dZC6s158.png

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

wKgZPGdqILyAYWy-AAE-QNZnxLo183.png

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

wKgZO2dqIMGAQN0JAAD3dVQveDA983.png

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

wKgZO2dqIMaAFx6VAADlTI5Pwmc986.png

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

wKgZO2dqIMqAN0MDAAF3XrW7LhI273.png

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

wKgZO2dqIM6AAtBkAAFbt5-utow040.png

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

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

wKgZPGdqINOAcSW6AADznk8pJDo203.png

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

wKgZO2dqINiACmeFAAEqhdvXRuk969.png

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

wKgZPGdqIN-AbO6kAABlk1QIPFk832.pngwKgZO2dqIOSAJ4mnAAB8glgArcc820.png

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

wKgZO2dqIOqANCYhAADPBPMNIa8552.png

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

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

wKgZO2dqIPKAPwVBAAA-YOQ1viQ897.png

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

wKgZPGdqIPiAFM6NAAEk0KT1p4M492.png

3.下載并運(yùn)行控制器程序。

wKgZPGdqIPyATDgnAABu_jXtbWs243.png

4.設(shè)置控制器程序參數(shù)。

wKgZO2dqIQKACgbAAAB-TJpMk0A275.pngwKgZPGdqIQ2ADi5DAACFWf6JLDI858.png

05 C#例程建設(shè)之網(wǎng)絡(luò)通訊的心跳檢測

(一)前情提要

上位機(jī)軟件的主要功能:

1.下載并運(yùn)行控制器程序;

2.設(shè)置掃描參數(shù);

3.開啟和關(guān)閉心跳檢測;

4.設(shè)置急停IO。

界面如下圖所示:

wKgZO2dqITGAFIDRAAAWFVFRID0149.png

(二)例程講解

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

//連接控制器,控制器默認(rèn)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執(zhí)行錯(cuò)誤,錯(cuò)誤碼:" + ZauxErr.ToString(), "錯(cuò)誤碼信息");
}
wKgZO2dqIUeASXw2AAAWnje5Pgw475.png

2.下載心跳bas程序

函數(shù)介紹:

通過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.啟動心跳檢測

函數(shù)介紹:

首先通過SetTimeOutPara設(shè)置掃描參數(shù),然后ZAux_Direct_SetUserVar設(shè)置Heart_StarFlag心跳標(biāo)示變量。啟動控制器掃描程序,隨后開啟上位機(jī)掃描程序。

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 = "已啟動";
}
//上位機(jī)掃描程序
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】軟件,點(diǎn)擊【連接】輸入控制器的IP(默認(rèn)IP:192.168.0.11)。

wKgZPGdqIZGAUfzgAABwmKDan60575.pngwKgZO2dqIZaAFkHkAAAQ6aJMBWg884.png

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

wKgZO2dqIZ2AV5FTAABbuPENWb4461.png

(三)教學(xué)視頻

教學(xué)視頻可點(diǎn)擊→“教學(xué)視頻:運(yùn)動控制卡網(wǎng)絡(luò)通訊的心跳檢測之C#上位機(jī)編程”查看。

本次,正運(yùn)動技術(shù)運(yùn)動控制卡網(wǎng)絡(luò)通訊的心跳檢測之C#上位機(jī)編程,就分享到這里。

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

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

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

    EtherCAT運(yùn)動控制卡應(yīng)用開發(fā)教程之Java

    運(yùn)動控制卡的Java開發(fā)及DLL調(diào)用
    的頭像 發(fā)表于 06-13 14:29 ?190次閱讀
    EtherCAT<b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制卡</b>應(yīng)用開發(fā)教程之Java

    控制系統(tǒng)調(diào)優(yōu)必備知識:“運(yùn)動控制卡 控制周期怎么算”你真的懂了嗎?

    在工業(yè)自動化領(lǐng)域,運(yùn)動控制卡控制周期這個(gè)參數(shù)常常被忽視,但它卻是影響整個(gè)系統(tǒng)穩(wěn)定性、精度甚至產(chǎn)能的關(guān)鍵因素。你是不是也遇到過這些問題:電機(jī)總是抖動?軌跡跟蹤老是偏?想優(yōu)化系統(tǒng)卻無從下手?大概率是你的
    的頭像 發(fā)表于 05-27 10:59 ?370次閱讀
    <b class='flag-5'>控制</b>系統(tǒng)調(diào)優(yōu)必備知識:“<b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制卡</b> <b class='flag-5'>控制</b>周期怎么算”你真的懂了嗎?

    LabVIEW運(yùn)動控制(五):EtherCAT運(yùn)動控制器的心跳檢測功能

    LabVIEW心跳檢測功能
    的頭像 發(fā)表于 05-13 13:49 ?139次閱讀
    LabVIEW<b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制</b>(五):EtherCAT<b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制</b>器的<b class='flag-5'>心跳</b><b class='flag-5'>檢測</b>功能

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

    使用C++進(jìn)行運(yùn)動控制卡的周期上報(bào)功能實(shí)現(xiàn)
    的頭像 發(fā)表于 12-17 13:59 ?774次閱讀
    <b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制卡</b>周期上報(bào)實(shí)時(shí)數(shù)據(jù)IO狀態(tài)<b class='flag-5'>之</b><b class='flag-5'>C</b>++篇

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

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

    PCIe實(shí)時(shí)運(yùn)動控制卡的雙盤視覺篩選機(jī)上位機(jī)開發(fā)應(yīng)用

    PCIe實(shí)時(shí)運(yùn)動控制卡的雙盤視覺篩選機(jī)上位機(jī)開發(fā)應(yīng)用
    的頭像 發(fā)表于 10-10 10:15 ?723次閱讀
    PCIe實(shí)時(shí)<b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制卡</b>的雙盤視覺篩選機(jī)<b class='flag-5'>上位</b><b class='flag-5'>機(jī)</b>開發(fā)應(yīng)用

    EtherCAT運(yùn)動控制上位機(jī)開發(fā)Python+Qt(三):PDO配置與SDO讀寫# 運(yùn)動控制器# 控制卡

    運(yùn)動控制
    正運(yùn)動技術(shù)
    發(fā)布于 :2024年08月22日 09:11:13

    EtherCAT運(yùn)動控制上位機(jī)Python+Qt(一):鏈接與單軸運(yùn)動

    PC上位機(jī)Python+Qt混合編程,助力智能制造高效開發(fā)。
    的頭像 發(fā)表于 07-31 09:43 ?809次閱讀
    EtherCAT<b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制</b>器<b class='flag-5'>上位</b><b class='flag-5'>機(jī)</b><b class='flag-5'>之</b>Python+Qt(一):鏈接與單軸<b class='flag-5'>運(yùn)動</b>

    PCIe EtherCAT實(shí)時(shí)運(yùn)動控制卡PCIE464的IO與編碼器讀寫應(yīng)用# 正運(yùn)動技術(shù)# 運(yùn)動控制卡

    編碼器運(yùn)動控制卡
    正運(yùn)動技術(shù)
    發(fā)布于 :2024年07月23日 09:37:31

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

    C#進(jìn)行PCIe EtherCAT運(yùn)動控制卡的項(xiàng)目開發(fā)和快速讀取多個(gè)IO和軸編碼器位置的例程。
    的頭像 發(fā)表于 07-17 14:47 ?1386次閱讀
    PCIe EtherCAT實(shí)時(shí)<b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制卡</b>PCIE464的IO與編碼器讀寫應(yīng)用
    主站蜘蛛池模板: 天天爽夜夜爽免费看 | 天天做天天爱天天大综合 | 亚洲四虎影院 | 中文字幕一区二区三区有限公司 | 欧美色图在线观看 | 色老头久久久久久久久久 | 深夜免费在线视频 | 日本最好的免费影院 | 三级国产在线观看 | 操的网站| 天天爱天天色 | 免费看一毛一级毛片视频 | 婷婷开心六月久久综合丁香 | 日韩啪啪网 | 色香婷婷 | 免费视频一区二区 | 四虎精品影院永久在线播放 | 久久99热久久精品 | avtt国产 | 亚洲美女激情视频 | 奇米影视四色首页手机在线 | 国产精品美女免费视频大全 | 性欧美大战久久久久久久野外 | 奇米影色777四色在线首页 | 日本五十交尾在线观看 | 天天看片网站 | 四虎永久在线日韩精品观看 | 亚洲a毛片 | 久久久噜久噜久久gif动图 | 午夜亚洲国产精品福利 | 国产精品毛片天天看片 | 亚洲国产片 | 亚洲经典乱码在线播 | 男女交性拍拍拍高清视频 | 羞羞爱爱| 午夜小福利 | 伊人久久大香线蕉综合7 | 在线操| 欧美不卡视频在线观看 | 久久99国产亚洲高清观看首页 | 国产三级网 |