應用背景
運動控制器正朝著高速度、高精度、開放式的方向發(fā)展,不僅對運動控制功能精益求精,還增加了視覺相關的定位、測量、檢測和識別等,多種功能的穿插使用進一步增加了在編程設計代碼時的復雜程度。
為了給客戶提供更好地軟件框架,簡化程序結構、節(jié)省內(nèi)存空間、提高代碼可讀性。
正運動技術在VPLC532E機器視覺運動控制一體機上增加了結構體功能,方便客戶在大型項目上更高效的進行項目開發(fā)。
VPLC532E是正運動推出的一款EtherCAT視覺總線控制器,控制器集成了2個千兆以太網(wǎng)以及2個USB3.0、2個USB2.0接口,支持多種工業(yè)相機,支持多種視覺功能和復雜的運動控制功能。
VPLC532E硬件介紹
1.集成RS232、RS485、CAN接口、2路USB3.0、2路USB2.0接口。
2.2路千兆EtherNet、1路百兆EtherCAT、6個本地軸接口。
3.24進12出數(shù)字IO,其中4路高速輸出,4路高速輸入、2路模擬量輸出。
4.支持市場主流的USB3.0相機與GigE相機。
VPLC532E功能介紹
1.支持最多達32軸直線插補、任意空間圓弧插補、螺旋插補、樣條插補。2.支持電子凸輪、電子齒輪、位置鎖存、同步跟隨、虛擬軸等功能。3.支持硬件比較輸出(HW_PSWITCH2),硬件定時器,運動中精準輸出。4.支持脈沖閉環(huán),螺距補償?shù)裙δ堋?.支持ZBasic多文件多任務編程。6.多種程序加密手段,保護客戶的知識產(chǎn)權。7.掉電檢測,掉電存儲。
實現(xiàn)指令
1.STRUCTURE --結構體定義
Structure結構名稱
Dim成員1名稱[As數(shù)據(jù)類型1]
......
Dim成員n名稱[(數(shù)組長度)][As數(shù)據(jù)類型1]End Structure
2.FLASH_WRITEDBL-- flash存儲-double
FLASH_WRITEDBL sect_num [, varname] [, arrayname] [, arrayname(a)] [, arrayname(a,length)]
sect_num:flash塊編號,不同類型不一樣。
varname:變量名。
arrayname:數(shù)組名,可以為TABLE,VR,MODBUS。
a:操作的數(shù)組索引。
length:操作的數(shù)組元素個數(shù)。
結構體應用例程
該例程主要是對三軸的機械參數(shù)和配方文件以結構體框架來實現(xiàn),通過結構體變量嵌套使用來減少變量,降低內(nèi)存占用,提高代碼的可復用性。
1.創(chuàng)建結構體變量
GLOBALSUBHMI_INIT() GLOBALgv_CurParamNum'當前配方號 gv_CurParamNum=0 GLOBALgv_PageNum'頁碼 gv_PageNum=0 GLOBALCONSTgv_SysMaxAxis=3'最大軸數(shù) GLOBALSTRUCTUREAxisParam '''軸參數(shù) DIMNo'軸號 DIMAxisAtype'軸類型 DIMAxisDpos'軸的當前位置 DIMOnePulses'軸電機一圈脈沖數(shù) DIMAxisPitch'軸螺距 DIMAxisSpeed'軸的運動速度 DIMAxisAccel'軸的加速度 DIMAxisDecel'軸的減速度 DIMAxisSramp'軸的S曲線時間 DIMAxisLspeed'軸的起始速度 DIMFsLimit'軸正限位 DIMRsLimit'軸負限位 '''回零參數(shù) DIMDatumMode'軸回零模式 DIMBackZeroSpeed'軸的回零速度 DIMAxisCreep'軸的回零第2段速度 DIMDatumIn'軸原點信號 DIMFwdIn'軸正限位信號 DIMRevIn'軸負限位信號 ENDSTRUCTURE GLOBALSTRUCTURESysParam DIMSysAxis(gv_SysMaxAxis)ASAxisParam'系統(tǒng)軸數(shù) DIMFileName(50)'參數(shù)文件名 ENDSTRUCTURE GLOBALgs_SysParam(50)ASSysParam'定義系統(tǒng)結構體變量 LOCALlv_i FORlv_i=0togv_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'軸電機一圈脈沖數(shù) gs_SysParam(0).SysAxis(lv_i).AxisPitch=20'軸螺距 gs_SysParam(0).SysAxis(lv_i).AxisSpeed=100'軸的運動速度 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曲線時間 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'軸的回零信號 gs_SysParam(0).SysAxis(lv_i).FwdIn=-1'軸的正向硬限位信號 gs_SysParam(0).SysAxis(lv_i).RevIn=-1'軸的負向硬限位信號 gs_SysParam(0).SysAxis(lv_i).FsLimit=1000'軸正限位 gs_SysParam(0).SysAxis(lv_i).RsLimit=-1000'軸負限位 '初始化參數(shù)文件 gs_SysParam(0).FileName="NONE"'初始化參數(shù)文件名 NEXT FORlv_i=0to49 gs_SysParam(lv_i)=gs_SysParam(0)'初始化其他配方參數(shù) NEXT ENDSUB
2.保存配置文件
GLOBALSUBSaveCurParam() LOCALiflsflag iflsflag=70214733 FLASH_WRITEDBLgv_CurParamNum,iflsflag,gs_SysParam(gv_CurParamNum) ?"下載成功" ENDSUB
3.讀取配置文件
GLOBALSUBLoadCurParam() LOCALiflsflag,lv_i,addnum FORlv_i=0TO49 iflsflag=0 FLASH_READDBLlv_i,iflsflag IFiflsflag=70214733THEN FLASH_READ2DBLlv_i,1,gs_SysParam(lv_i) addnum=addnum+1 ENDIF NEXT ?"上傳完成,上傳配置文件數(shù):"addnum ENDSUB
4.刪除配置文件
GLOBALSUBDeleCurParam() LOCALlv_i FORlv_i=0togv_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'軸電機一圈脈沖數(shù) gs_SysParam(gv_CurParamNum).SysAxis(lv_i).AxisPitch=20'軸螺距 gs_SysParam(gv_CurParamNum).SysAxis(lv_i).AxisSpeed=100'軸的運動速度 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曲線時間 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'軸的回零信號 gs_SysParam(gv_CurParamNum).SysAxis(lv_i).FwdIn=-1'軸的正向硬限位信號 gs_SysParam(gv_CurParamNum).SysAxis(lv_i).RevIn=-1'軸的負向硬限位信號 gs_SysParam(gv_CurParamNum).SysAxis(lv_i).FsLimit=1000'軸正限位 gs_SysParam(gv_CurParamNum).SysAxis(lv_i).RsLimit=-1000'軸負限位 '初始化參數(shù)文件 gs_SysParam(gv_CurParamNum).FileName="NONE"'初始化參數(shù)文件名 NEXT LOCALiflsflag iflsflag=0 FLASH_WRITEDBLgv_CurParamNum,iflsflag,gs_SysParam(gv_CurParamNum) ?"刪除成功" ENDSUB
本次,正運動技術機器視覺運動控制一體機結構體功能上線,助力客戶高效開發(fā),就分享到這里。
更多精彩內(nèi)容請關注“正運動小助手”公眾號,需要相關開發(fā)環(huán)境與例程代碼,請咨詢正運動技術銷售工程師。
本文由正運動技術原創(chuàng),歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。
審核編輯黃宇
-
機器視覺
+關注
關注
162文章
4401瀏覽量
120539 -
一體機
+關注
關注
0文章
919瀏覽量
32779 -
自動化
+關注
關注
29文章
5613瀏覽量
79504 -
運動控制
+關注
關注
4文章
586瀏覽量
32928
發(fā)布評論請先 登錄
相關推薦
評論