工控網(wǎng)首頁
>

應(yīng)用設(shè)計(jì)

>

機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)結(jié)構(gòu)體功能上線,助力客戶高效開發(fā)

機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)結(jié)構(gòu)體功能上線,助力客戶高效開發(fā)

企業(yè)微信截圖_20230414100018.png

應(yīng)用背景

運(yùn)動(dòng)控制器正朝著高速度、高精度、開放式的方向發(fā)展,不僅對(duì)運(yùn)動(dòng)控制功能精益求精,還增加了視覺相關(guān)的定位、測(cè)量、檢測(cè)和識(shí)別等,多種功能的穿插使用進(jìn)一步增加了在編程設(shè)計(jì)代碼時(shí)的復(fù)雜程度。

為了給客戶提供更好地軟件框架,簡(jiǎn)化程序結(jié)構(gòu)、節(jié)省內(nèi)存空間、提高代碼可讀性。

正運(yùn)動(dòng)技術(shù)在VPLC532E機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)上增加了結(jié)構(gòu)體功能,方便客戶在大型項(xiàng)目上更高效的進(jìn)行項(xiàng)目開發(fā)。

企業(yè)微信截圖_20230414100047.png
VPLC532E是正運(yùn)動(dòng)推出的一款EtherCAT視覺總線控制器,控制器集成了2個(gè)千兆以太網(wǎng)以及2個(gè)USB3.0、2個(gè)USB2.0接口,支持多種工業(yè)相機(jī),支持多種視覺功能和復(fù)雜的運(yùn)動(dòng)控制功能。

企業(yè)微信截圖_20230414100106.png


VPLC532E硬件介紹

1.集成RS232、RS485、CAN接口、2路USB3.0、2路USB2.0接口。

2.2路千兆EtherNet、1路百兆EtherCAT、6個(gè)本地軸接口。

3.24進(jìn)12出數(shù)字IO,其中4路高速輸出,4路高速輸入、2路模擬量輸出。

4.支持市場(chǎng)主流的USB3.0相機(jī)與GigE相機(jī)。


VPLC532E功能介紹

1.支持最多達(dá)32軸直線插補(bǔ)、任意空間圓弧插補(bǔ)、螺旋插補(bǔ)、樣條插補(bǔ)。
2.支持電子凸輪、電子齒輪、位置鎖存、同步跟隨、虛擬軸等功能。
3.支持硬件比較輸出(HW_PSWITCH2),硬件定時(shí)器,運(yùn)動(dòng)中精準(zhǔn)輸出。
4.支持脈沖閉環(huán),螺距補(bǔ)償?shù)裙δ堋?/span>
5.支持ZBasic多文件多任務(wù)編程。
6.多種程序加密手段,保護(hù)客戶的知識(shí)產(chǎn)權(quán)。
7.掉電檢測(cè),掉電存儲(chǔ)。





實(shí)現(xiàn)指令


1.STRUCTURE -- 結(jié)構(gòu)體定義
Structure 結(jié)構(gòu)名稱
       Dim 成員1名稱 [As數(shù)據(jù)類型1]
       ... ...
       Dim 成員n名稱[(數(shù)組長度)] [As數(shù)據(jù)類型1]
End Structure

2.FLASH_WRITEDBL -- flash存儲(chǔ)-double

FLASH_WRITEDBL sect_num [, varname] [, arrayname] [, arrayname(a)] [, arrayname(a,length)]
sect_num:flash塊編號(hào),不同類型不一樣。
varname:變量名。
arrayname:數(shù)組名,可以為TABLE,VR,MODBUS。
a:操作的數(shù)組索引。

length:操作的數(shù)組元素個(gè)數(shù)。





結(jié)構(gòu)體應(yīng)用例程


該例程主要是對(duì)三軸的機(jī)械參數(shù)和配方文件以結(jié)構(gòu)體框架來實(shí)現(xiàn),通過結(jié)構(gòu)體變量嵌套使用來減少變量,降低內(nèi)存占用,提高代碼的可復(fù)用性。

企業(yè)微信截圖_20230414100118.png

1.創(chuàng)建結(jié)構(gòu)體變量

GLOBAL SUB HMI_INIT()
    GLOBAL gv_CurParamNum      '當(dāng)前配方號(hào)
        gv_CurParamNum=0
    GLOBAL gv_PageNum        '頁碼
        gv_PageNum=0
    GLOBAL CONST gv_SysMaxAxis=3  '最大軸數(shù)
    GLOBAL STRUCTURE AxisParam
        '''軸參數(shù)
        DIM No        '軸號(hào)
        DIM AxisAtype    '軸類型
        DIM AxisDpos    '軸的當(dāng)前位置
        DIM OnePulses    '軸電機(jī)一圈脈沖數(shù)
        DIM AxisPitch    '軸螺距
        DIM AxisSpeed    '軸的運(yùn)動(dòng)速度
        DIM AxisAccel    '軸的加速度
        DIM AxisDecel    '軸的減速度
        DIM AxisSramp    '軸的S曲線時(shí)間
        DIM AxisLspeed    '軸的起始速度
        DIM FsLimit      '軸正限位
        DIM RsLimit      '軸負(fù)限位
        '''回零參數(shù)
        DIM DatumMode    '軸回零模式
        DIM BackZeroSpeed  '軸的回零速度
        DIM AxisCreep    '軸的回零第2段速度
        DIM DatumIn      '軸原點(diǎn)信號(hào)
        DIM FwdIn      '軸正限位信號(hào)
        DIM RevIn      '軸負(fù)限位信號(hào)
    END STRUCTURE
    GLOBAL STRUCTURE SysParam
        DIM SysAxis(gv_SysMaxAxis) AS AxisParam    '系統(tǒng)軸數(shù)
        DIM FileName(50)              '參數(shù)文件名
    END STRUCTURE
    GLOBAL gs_SysParam(50) AS SysParam    '定義系統(tǒng)結(jié)構(gòu)體變量
    LOCAL lv_i
    FOR lv_i=0 to gv_SysMaxAxis-1
        '初始化軸參數(shù)變量
        gs_SysParam(0).SysAxis(lv_i).No=lv_i
        gs_SysParam(0).SysAxis(lv_i).AxisAtype=0          '軸類型
        gs_SysParam(0).SysAxis(lv_i).OnePulses=8388608        '軸電機(jī)一圈脈沖數(shù)
        gs_SysParam(0).SysAxis(lv_i).AxisPitch=20          '軸螺距
        gs_SysParam(0).SysAxis(lv_i).AxisSpeed=100          '軸的運(yùn)動(dòng)速度
        gs_SysParam(0).SysAxis(lv_i).AxisAccel=1000          '軸的加速度
        gs_SysParam(0).SysAxis(lv_i).AxisDecel=1000          '軸的減速度
        gs_SysParam(0).SysAxis(lv_i).AxisSramp=0          '軸的S曲線時(shí)間
        gs_SysParam(0).SysAxis(lv_i).AxisLspeed=0          '軸的起始速度
        '初始化回零參數(shù)變量
        gs_SysParam(0).SysAxis(lv_i).DatumMode=104          '軸的回零模式
        gs_SysParam(0).SysAxis(lv_i).BackZeroSpeed=50        '軸的回零速度
        gs_SysParam(0).SysAxis(lv_i).AxisCreep=2          '軸的回零第2段速度
        gs_SysParam(0).SysAxis(lv_i).DatumIn=-1            '軸的回零信號(hào)
        gs_SysParam(0).SysAxis(lv_i).FwdIn=-1            '軸的正向硬限位信號(hào)
        gs_SysParam(0).SysAxis(lv_i).RevIn=-1            '軸的負(fù)向硬限位信號(hào)
        gs_SysParam(0).SysAxis(lv_i).FsLimit=1000          '軸正限位
        gs_SysParam(0).SysAxis(lv_i).RsLimit=-1000          '軸負(fù)限位
        '初始化參數(shù)文件
        gs_SysParam(0).FileName="NONE"                '初始化參數(shù)文件名
    NEXT
    FOR lv_i=0 to 49
        gs_SysParam(lv_i)=gs_SysParam(0)      '初始化其他配方參數(shù)
    NEXT
ENDSUB

2.保存配置文件

GLOBAL SUB SaveCurParam()
    LOCAL iflsflag
    iflsflag=70214733
    FLASH_WRITEDBL gv_CurParamNum,iflsflag,gs_SysParam(gv_CurParamNum)
    ?"下載成功"
ENDSUB

3.讀取配置文件

GLOBAL SUB LoadCurParam()
    LOCAL iflsflag,lv_i,addnum
    FOR lv_i=0 TO 49
        iflsflag=0
        FLASH_READDBL lv_i,iflsflag
        IF iflsflag=70214733 THEN
            FLASH_READ2DBL lv_i,1,gs_SysParam(lv_i)
            addnum=addnum+1
        ENDIF
    NEXT
    ?"上傳完成,上傳配置文件數(shù):"addnum
ENDSUB

4.刪除配置文件

GLOBAL SUB DeleCurParam()
    LOCAL lv_i
    FOR lv_i=0 to gv_SysMaxAxis-1
        '初始化軸參數(shù)變量
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).No=lv_i
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).AxisAtype=0        '軸類型
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).OnePulses=8388608    '軸電機(jī)一圈脈沖數(shù)
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).AxisPitch=20        '軸螺距
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).AxisSpeed=100      '軸的運(yùn)動(dòng)速度
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).AxisAccel=1000      '軸的加速度
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).AxisDecel=1000      '軸的減速度
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).AxisSramp=0        '軸的S曲線時(shí)間
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).AxisLspeed=0        '軸的起始速度
        '初始化回零參數(shù)變量
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).DatumMode=104      '軸的回零模式
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).BackZeroSpeed=50      '軸的回零速度
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).AxisCreep=2        '軸的回零第2段速度
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).DatumIn=-1        '軸的回零信號(hào)
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).FwdIn=-1          '軸的正向硬限位信號(hào)
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).RevIn=-1          '軸的負(fù)向硬限位信號(hào)
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).FsLimit=1000        '軸正限位
        gs_SysParam(gv_CurParamNum).SysAxis(lv_i).RsLimit=-1000      '軸負(fù)限位
        '初始化參數(shù)文件
        gs_SysParam(gv_CurParamNum).FileName="NONE"            '初始化參數(shù)文件名
    NEXT
    LOCAL iflsflag
    iflsflag=0
    FLASH_WRITEDBL gv_CurParamNum,iflsflag,gs_SysParam(gv_CurParamNum)
    ?"刪除成功"
ENDSUB

本次,正運(yùn)動(dòng)技術(shù)機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)結(jié)構(gòu)體功能上線,助力客戶高效開發(fā),就分享到這里

更多精彩內(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í),一起提高中國智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來源。
正運(yùn)動(dòng)技術(shù)專注于運(yùn)動(dòng)控制技術(shù)研究和通用運(yùn)動(dòng)控制軟硬件產(chǎn)品的研發(fā),是國家級(jí)高新技術(shù)企業(yè)。正運(yùn)動(dòng)技術(shù)匯集了來自華為、中興等公司的優(yōu)秀人才,在堅(jiān)持自主創(chuàng)新的同時(shí),積極聯(lián)合各大高校協(xié)同運(yùn)動(dòng)控制基礎(chǔ)技術(shù)的研究,是國內(nèi)工控領(lǐng)域發(fā)展最快的企業(yè)之一,也是國內(nèi)少有、完整掌握運(yùn)動(dòng)控制核心技術(shù)和實(shí)時(shí)工控軟件平臺(tái)技術(shù)的企業(yè)。主要業(yè)務(wù)有:運(yùn)動(dòng)控制卡_運(yùn)動(dòng)控制器_EtherCAT運(yùn)動(dòng)控制卡_EtherCAT控制器_運(yùn)動(dòng)控制系統(tǒng)_視覺控制器__運(yùn)動(dòng)控制PLC_運(yùn)動(dòng)控制_機(jī)器人控制器_視覺定位_XPCIe/XPCI系列運(yùn)動(dòng)控制卡等等。

審核編輯(
王靜
)
投訴建議

提交

查看更多評(píng)論
其他資訊

查看更多

正運(yùn)動(dòng)全國產(chǎn)EtherCAT運(yùn)動(dòng)控制器ZMC432H用戶手冊(cè)

正運(yùn)動(dòng)全國產(chǎn)EtherCAT運(yùn)動(dòng)控制器ZMC432H

正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器如何快速實(shí)現(xiàn)單軸/多軸同步跟隨功能?

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

正運(yùn)動(dòng)機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)VPLC710