版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Softmotion概念和組件簡 SoftMotion驅動器接 SoftMotion的PLC配 SM_DriveBasic.lib和自動代碼生 SM_DriveBasic.lib中的數(shù)學輔助模 軸組輔助模 虛擬時間 數(shù)字硬件輸入控制的參考點運 診斷模 可視化模 AXIS_REF結構體中的變 中 C-編輯 簡 CNC-語言DIN66025的支持和擴展元 CNC程序的啟動,插入和管 CNC文本編輯 CNC圖形編輯 CNC-編輯器中命令和選 CNC-編輯器中的結構自動生 CAM-編輯 簡 SoftMotion中CAM的定 啟動CAM-編輯器并插入一個新的 編輯 編輯器的總體設 編輯一個特殊的CAM元素的屬 “Extras”和“Insert”菜單 CAMs的結構自動生 C.lib 簡 模 軌跡旋轉和平移的輔助模 通過全局變量進行設 C.lib中的結 SM_PLCopen.lib 簡 PLCopen-說明書“運動控制的功能塊 版 單軸運動控制模 CoDeSys2.3 同步運動控制模 SM_PLCopen.lib的附加元 CDiagnostic.lib 用 C_REF數(shù)據(jù)分析的功能 CREF功能 用 C_REF數(shù)據(jù)分析的功能 SMC_ShowQueue功能 SM_Trafo.lib 簡 ControlAxis功能 變換功能 龍門系 關節(jié)Scara系 SM_Error.lib 功能 SMC_Error枚舉型變 SM_FileFBs.lib 簡 CNC功能 CAM功能 編程實 簡 實例:驅動器接口:為驅動器創(chuàng)建PLC配 實例:單軸運動控 實例:在CFC中用可視化模板來控制單軸運 實例:通過CAM和一個虛擬時間軸來控制驅動 實例:改變 實例:通過CNC編輯器來控制驅動 CNC實例1:直接創(chuàng)建 CNC實例2:用變量進行............................................................................................CNC實例3:軌跡預處 動態(tài)SoftMotion編 CoDeSys2.3Softmotion概念和組件簡在CoDeSys開發(fā)環(huán)境下,SoftMotion可以實現(xiàn)多種運動——簡單的單軸運動、CAMs和復雜的運動。在某些獨特的應用中,除了單獨的運動功能外,順序和過程控制或輔助功能也都占了相當重要的。PLC程序控制著所有程序邏輯,只有純運動信息才會被庫函數(shù)處理。SoftMotion能被劃分成下列組件:驅動器接口(DriveInterface)在CoDeSys的配置編輯器(Configurationeditor)中,開發(fā)人員指定驅動器結構和硬件配置。(C.lib,SM_PLCOpen.lib)的標準模塊或IEC程序員創(chuàng)建的特殊模塊的幫助CNC編輯器(CNC- CAM編輯器(CAM-CNC庫(CNC- PLCopen庫(PLCopen-PLCopen運動控制庫”SM_PLCopem.lib”包括其他的模塊,用于幫助編程和輕松實現(xiàn)單軸和兩軸的同步運文件服務庫(FileServiceSM_FileFBs.lib庫基于系統(tǒng)庫sysLibFile.lib,因此只能用于支持這個庫錯誤庫(ErrorSoftMotion驅動器接由驅動器制造商提供的硬件和總線系統(tǒng)庫<BusInterfaceName>Drive.lib(例如CAN<customername>Drive.libSercos<cusomername>Drive.lib),提供了讓數(shù)據(jù)結構和硬件進行數(shù)據(jù)SoftMotion的PLC配置BusInterface:帶有域總線的板卡,可用于驅動器尋址。Axisgroup:一個實際連接的驅動器組 板卡的WORD類型的參 板卡的DWORD類型的參對于板卡/驅動的WORD類型dd板卡/驅動的DWORD類型的對于(<Senddata><Return VEL- Velocity- 5.POS,VEL->POS,VELPostion->Velocity Velocity->--- wCyclicDataR1,...R2,...R3(見下定義為“CONFIGURABLE”;根據(jù)驅動器的驅動程Act/SetPosition定義位置Act/SetVelocity定義速度Act/SetTorque定義扭矩Act/SetCurrent定義電流Act/SetUserDef對于Encoder的ID號旋轉軸的旋轉周期;決定于'dwRatioTechUnitsDenom'SMDriveBasic.lib和自動代碼生以左的字符串。(例如:“CAN(Peak)”->”CAN”->制造商庫將命名為“CANDrive.lib”)。<BusInterfaceName>DriveInit<BusInterfaceName>DriveExecute_End,則會對作為主函數(shù)的補充,SM_DriverBasic.lib還包含一些輔助模塊函數(shù)SMC_atan2計算并返回角度,它解出了下面sin(alpha)*f=Sinusundcos(alpha)*f=與普通ATAN函數(shù)相比,這種情況下返回值的范圍較大,為[0,2pi]虛擬時間軸這個功能模塊創(chuàng)建一個時間軸,并由輸出軸(AXIS_REF)發(fā)出數(shù)字硬件輸入控制的參考點運動bExecute的上升沿觸發(fā)啟動模塊之后,軸以fVelocityFast為運動速度,按nDirectionfHomePosition:fVelocitySlowfVelocityFastREALfAccelerationfDecelerationREALnDirectionMC_Direction(缺省值negative)bEndSwitch:BOOL(Default:TRUE)參考開關:TRUE(開),F(xiàn)ALSE(關fSignalDelayREAL(缺省值nHomingMode:SMC_HOMING_MODE(Default:FAST_BSLOW_S_STOP)如果這個標志被置位了,那么當nHomingMode定義的過程中止后,模塊將以0點位參考點來設置位置。bDoneBOOL(缺省值bCommandAbortedBOOL(缺省值FALSE)bError:BOOL(缺省值:FALSE)TRUE表示一個功nErrorID:診斷模塊 (bDaTeyceM_eMaxeeoct(dwTeSap)可視化模板對于兩種驅動器類型(直線的/旋轉的),庫都有可視化的模板,該模塊可以被連接到軸的結構體(AXIS_REF)使得可以觀察驅動器當前的位置。AXISREF結構體中的變編名數(shù)據(jù)類型初始注PLC-1:SetTorque2:SetVelocity,ActVelocity3:SetVelocity,ActPosition4:SetPosition,ActPosition5:或<總線接口或<總線接口置位/TRUE:驅動器PLC-PLC-號00PLC-PLC-TRUE:由ConfigFALSE:由IEC01001011-1:負1位1位1位1將總線單位轉換成Nm或11101=S00單位表示0示0000單位units/sec表示0位units/sec表示units/sec表示技術單位units/sec表示000表示0位表示techn.unit/sec2單位000techn.unit/sec2為單位0實際的度(techn.unit/sec2為單位最大度(techn.unit/sec2為單位00(以techn.unit/sec3為單位0techn.unit/sec3為單位techn.unit/sec3為單位(以techn.unit/sec3為單位00設置電流0實際電流最大電流0techn.unit/sec為單位000(以Nmresp.0用戶定義令值(用000techn.units為單位0techn.units為單位0獲取位置(以techn.units單位入來確認TRUE:開始參考00000000BYTE0formotioncontrol”),1.0版CoDeSys中的CNC-編輯器簡CNC編輯器允許在圖形和文本模式下為運動進行編程它遵循CNC語言 C語言的介紹見3.2章。文本編輯器的介紹見3.4章,編程實例見第11章。CoDeSys9維運動,其中有二維是非線性插補的。因此在二維中,直線,圓周,拋物CoDeSys會為每個編程軌跡創(chuàng)建一個全局數(shù)據(jù)結構(CNCData)IEC程序。將CNC程序用一個GL殊EOINFO(見C.lib,例如.(“。(菜單項:'Createprogramvariableon編譯時創(chuàng)建輸出文件”)(菜單項:'CreateOutQueuefileoncompile')CNC-語言DIN66025的支持和擴展元為了給幾何運動輪廓提供一種簡單的編程方法,SoftMotionCNCDIN66025,由于SoftMotionIEC61131DIN66025%例如%N10G01X100Y100E100F100E-200N20G01Z40F20N30G03X-100R200SoftMotionCNC程序必須以“%”開頭。在其后可加上程序名(programname),但是需要在“%”與程序名TABCNC程序是由一些語句(senstences)組成每條語句(行)由所需的字(words)組成字由字母(字標識符)和接下來的數(shù)字組成(例如。G01;參見下面的列表每條語句的第一個詞是語句號(sentencenumber)(N<number>),例如“N01”。目前語句號不起任何作tructons(<nub>如果StepSuppress選項被激活,那么在處理時將跳過以“/”開始的語句。用“()”包圍起來的字符為注釋(comments)對程序軌跡沒有任何影響。行號(linenumber)目前沒有意義,主要是為了保證一致性。(“H<nue>”:N90G1X20Y20N100G1X100Y40H-2注意:對于每條軌跡對象,只能處理有限個開關點開關動作(MAX_SWITCHES)刀具半徑(用于補償G40-42和“圓角”G50-速度[path-units/圓/橢圓中心的X坐標(G02/G03/G08/G09)或是拋物線切點的X圓/橢圓中心的Y坐標(G02/G03/G08/G09)或是拋物線切點的Y橢圓主軸的方向(0W,90絕對開關點(見上方,“H”),從軌跡對象的開始位置(>0)和結束位置(<0)相對開關(見上方,“H”)位置附加軸P附加軸Q的目標位置半徑(G02/G03)——替代“I”,“J”;或橢圓子軸和主軸的長度關系3:Z軸,7:P軸,8:Q軸,9:U軸,10:V軸,11:W 后續(xù)的坐標值(對于X/Y/Z/P-W)采用相對值編程方式 請注意必須包含 C.lib”庫,這樣編譯程序時才不會出錯CNC程序的啟動,插入和管理“CNC程序列表(CNCprogramlist)”。在左欄中有一個現(xiàn)有程序的列表。右上方的窗口中為一個文本編輯器,遵循DIN66025的CNC程序可以寫在這里。右下方的窗口顯示圖形,你可以修改文本部分或圖形部插入一個新的CNC程序:CNC程序列表,并在“CNC程序(CNCprogram)”菜單或上下文菜單中選擇命令“新CNC程序(NewCNCprogram)”,將會彈出一個定義新程序名的框。缺省的CNC程序名是CNC程序列表中選中程序,并在“CNC程序(CNCprogram)”菜單中或上下文菜單中選擇“刪除CNC程序(DeleteCNCprogram)”命令。程序將會被從列表中移除,窗口焦點將被設置在接下來的程序重命CNC程序CNC程序列表中選中程序,并在“CNC程序(CNCprogram)”菜單中或上下文菜單中選擇“重命名CNC程序(RenameCNCprogram)”命令。將會打開“程序名稱(Programname)”框,可以在其CNCCNC程序列表中選中程序,并在“CNC程序(CNCprogram)”菜單中或上下文菜單中選擇“定義隊列大小這條命令打開隊列數(shù)據(jù)緩存大?。⊿izeofqueuedatabuffer)框,可以定義OutQueue的緩存大小。由于IEC程序中NC函數(shù)塊的內(nèi)存空間有限,故這項功能是很有用處的,這樣的話并不是所有的定義起點位置在“定義起點位置(Definestartposition)”框中,可以為仿真設置軌跡的初始起點坐標值(缺省值:0。可以設置以下軸的初始位置:X,Y,Z,P,Q,U,V,W。為停止設置角度偏差在“為停止設置角度偏差(Setangleleewayforstop)”的框中,可以設置軌跡突變的敏感性??桑?,180移動程序旋轉程序拉伸程序此命令打開“拉伸系數(shù) coefficient)”框。在這里輸入NC程序的拉伸因子翻轉方向拆分對象N0G01X40.0N10G01X123.000000結果:新對象在X=20N0G01X20.000000Y25.000000N10G01X40.000000Y50.000000N20G01X123.000000Y73.550000Y坐標會自動適從文件中CNC程可以從ASCII碼文件中CNC程序??梢允褂脴藴实拇蜷_文件框打開*.txt文件。在接下來CNC程序寫入文件(*.txt導入DXF文件DXFNC程序:為每個DXF中的層創(chuàng)建一個CNC程序件中,單個的軌跡對象不是按次序的,CoDeSys會嘗試將這些對象連接成關聯(lián)軌跡。將outqueue寫入文(3.1章,b項CNCCoDeSys的情況下交換CNC程序,建議這樣來處理。CNC文本編輯器按<F2>CNC程序的全局變量。這些變量將其初始值顯示在圖CNC圖形編輯器顯示一個坐標系(coordinateystem。在坐標軸上標有定位線,用于標記坐標軸的間隔,另外還將一個亮灰色的網(wǎng)格,可以通過顯示網(wǎng)格(Showgrid)命令來打開或關閉它(附加命令(Extras)菜單或定位指令(Poitioning(G00)用綠色顯示,其他元素(elements)用藍色顯示。當前被標記的對(Spline)(G05CNC-編輯器中命令和選項為了便于在編輯器中操作和顯示,“附加命令(Extras)”菜單提供相應令和選項(當然也可以“附加命令”“選擇模式'Extras'Select“附加命令”“直線插入模式”(Extras'LineInsert'“附加命令”“插入樣條曲線模式”(Extras'ExtrasSplineInsert“附加命令”“適應窗口大小”(Extras''ExtrasFitto“附加命令”“對程序重編號”('Extras'Renumber“附加命令”“將樣條曲線/橢圓轉換成直線”('ExtrasConvertsplines/ellipsesto,如果該選被激活,且在N(41/42(G40)和刀具半徑(D<angle>),那么相應的補償后的軌跡會被顯示出來。這個選項與 C.lib庫中的SMC_ToolCorr模塊相一致。原路徑會以亮灰色顯示。被補償?shù)能壽E點的位置是“盲點”,因此以暗黃色顯示。'如果該選項被激活,編程后軌跡會被顯示出來,并能看到效果,功能塊SMC_SmoothPath( (G51,(D<angle> 經(jīng)出現(xiàn)在原編程軌跡上了。前提是:需要在CNC程序中設置起始點(G52),中止點(G50)和圓角半徑(D<angle>''bMvLopN(G61,中止點(60)“附加命令”“運行該步驟”('Extras''Extras:StepSuppress')如果該選項被激活,插補點會每隔100ms刷新顯示一次。因此可以粗略的估計速度(快=長行程打開的框“0公差值(Zerotolernecevalues)”。CNC-編輯器中的結構自動生成編譯IEC程序后,會自動創(chuàng)建一個“CNC數(shù)據(jù)(CNCData)”的全局變量文件夾。創(chuàng)建與編譯有關的的程序變量程序被到 中定義 C_REF結構中。這個結構 ?德 不進行編譯CAM-編輯器簡運動(CAM編輯器嵌入CoDeSys編程接口中??梢杂脠D形或圖表方式來創(chuàng)建含有CAM和CAM開關的程序,CoDeSys會在編譯工程時,自動創(chuàng)建全局數(shù)據(jù)結構(CAM數(shù)據(jù)。這個結構會被IEC程序。SoftMotionCAM的定Co二階導數(shù)為0。CAM5次曲線填充。因此需要況下總為0。一個點的一階導數(shù)和二階導數(shù)可以為任意值。啟動CAM-編輯器并插入一個新的啟list)”的窗口,窗口分為三部分。如果沒有定義CAM,窗口就是空的。二階導數(shù)(綠色曲線,加速度,顯示所有CAM元素的表(點/線)或顯示所CAM開關的表。這些“附加命令”“創(chuàng)建新CAM”('ExtrasCreatenew在“插入(Insert)”菜單或上下文菜單中,選擇命令“新建 CAM)”進行設置CAM類型(Type)CAMCAM元素(點,直線)CAM表只包含挺桿從動軸的縮放比例(Scalingslaveaxis):定義從屬軸的縮放比例。參見上方中的缺省值屬性:如果選擇了“周期的(periodic)”CAM起始點和終點的函數(shù)值、一階導數(shù)和點擊“確定(OK)”確認設置并關閉框CAMCAM列表中。只要選中它,CAM就會出現(xiàn)在編下面的按“CAM屬性(CAMProperties)”的缺省設置繪制:任何時候雙擊(Settings)”命令,都可以調出屬性框來編輯上述屬性CAM樹(CAM在編輯窗口的左部分,顯示出了所有的CAMs和CAM開關(挺桿)。這些元素總是以一編輯tree編輯器的總體設置(4.4.3章中對“附加命令(Extras)”和“插入(Insert)”菜單命令的描述)設置,使用附加命令(Extras)菜單中的設置Settings命令。顯示速度/加速度:在下方窗口中顯示出CAM的一階(藍色)和二階(綠色)導數(shù)。挺桿表格:下方窗口以可編輯表格方式顯示所包含的CAM開關(挺桿)及其屬性。CAM主動軸起點和終點(Masterstart,Masterend):X軸(主動軸)的起點和終點(“從動軸起點和終點(Slavestart,slaveend):Y軸(從動軸)的起點和終點(單位見“(elci)(加速度(Acceleration)(只對點有效數(shù)據(jù)位)將被設置成TRUE;可以設置下列選項來定義挺桿何時會被激活:(Action:開(on開始動作(TRUE;挺桿符號將變綠關(off)停止動作(挺桿位將被設置成FALSE)挺桿符(InverID(當動作(Action)=時間控制(timedin)時有效)保持時間(Duration)[us]:挺桿激活的動作需要保持多長時間(挺桿位需要保持 多長時間主動軸位置(Masterposition)X從動軸位置(Slaveposition)挺桿Y軸坐標,不可編輯,因為它是由曲線運動可以通過確定(OK)或應用(Apply)來確認屬性框中的設置編輯器中會顯示相應 曲線。確定(OK)也會關閉框,使用應用(Apply)不會關閉框CAM編輯器中選擇了一條直線,在直線的兩個端點上會出現(xiàn)紅色的小方塊??梢酝–AM編輯器中選擇一個挺桿,挺桿符號(方塊)框架會變?yōu)榧t色。挺桿可以通過移動鼠標來沿CAM曲線移動。“Extras”和“Insert”菜單“附加命令”“設置”('Extras'顯示邊界(Show如果這個選項被激活了,除了CAM,還會顯示他們的導數(shù)和邊界值(最大值/最小值)編譯選項(Compile多項式模式MC_CAM_REF5CAMMC_CamlnSM_DriveBasics.lib等距點表模式:根據(jù)在框下方中的設置創(chuàng)建出一個基點表。表的類型為CAM主動軸最小值處的從動軸位置。對于非周期性的CAM,最后一個值為主動軸最大值處的從動軸位置。如果CAM是周期性的,因為最大number>_2結構體類型的二維(不要求等矩)基點表。表中包含一系列主動軸和從動軸坐標對。劃分遵安排在余下的CAM上。不編譯:不為CAMCAM(見功能塊)的情況下使用,例如,需要在不改變CoDeSys工程的情況下改變CAM“附加命令”“從文件中讀出CAM”('Extras''ReadCAMfrom此命令可用于將CAM從*.CAM文件中導入到 CAM編輯器。當選擇了需要的文件后“插入”“選擇元素”('Insert' ''鼠標,點就入進CAM了,并且會自動切換到選擇模式(Selectelements)。“插入”“插入直線”('Insert''InsertCAM(左端點)處,按下鼠標并保持住,移動鼠標到直線的結束點,結束點必須在起始點的右方或下一個點、直線或挺桿的方。松鼠標,線就入進CAM了,并且會自切換到擇模式ecteeen“插入”“插入挺桿”('Insert''InsertCAMs的結構自動在編譯過程中,會根據(jù)CAM編輯器中的CAM數(shù)據(jù),生成一個名為CAMData的全局變量列表。每個樣它就可以被IEC程序和CAM預處理函數(shù)和功能塊了。為了使編譯時不出現(xiàn)錯誤,在IEC程序中必須C.lib簡IECSoftMotioin功能的模塊。因此。IEC程序必須包含它。其中包含的模 SMC_AvoidLoop軌跡預處理:避免軌跡中出現(xiàn)回環(huán) SMC_RoundPath軌跡預處理:用圓弧來做圓角SMC_CheckVelocities檢查軌末端的速度 functions)用于移動和旋轉軌跡全局變量(Globalvariables)StructuresSMC_POSINFO,SMC_GEOINFO,SMC_VECTOR3DandSMC_VECTOR6D位置,軌StructureSMC_OUTQUEUE管理固定大小列表中的GeoInfo對象(GeoInfo-objects)模塊和結構會在以下章節(jié)中介紹。也可參見第11章的編程實例模功能塊用于 C編輯器中創(chuàng)建的CNC程序轉換成SoftMotion-GEOINFO 構對 C.lib)的列表。每個循環(huán)一行程序若此輸入為FALSE,DataOutQueue會在每次重置時被清空。若為TRUE,新輸入的數(shù)據(jù)會 添加DataOutQueue的末bStepSuppress:pbyBufferOutQueue:POINTERTOBYTE常緩存的分配是通過在IEC程序區(qū)中定義一個字節(jié)陣列來完成的。這個值可以預定義,但是也可以模塊的輸入/輸出(VARINncprog: bError:此變量指向一個對SMC_GEOINFO進行的SMC_OUTQUEUE結構iStatus:SMC_DEC_STATUS01字2iLineNumberDecoded:012distance1必須考慮下列限制:如果外輪廓和磨削半徑是按如下SMCToolCorr要一個一個地檢查npu-OUTQUEUE結構中的所有SMC_GEOINFO對象。如果某個對象中nern_Mrk(2右Moey=10。如ner_rk的0(0被置位SMC_NCDecoderG41/G42/G4041和40,指令G42和40dToolRadius:LREALb_Done:bError:此變量指向一個對SMC_OUTQUEUE進行的SMC_OUTQUEUE結構0124SMCAvoidLoopinput-SMC_OUTQUEUESMC_GEOINFO對象。如果發(fā)現(xiàn)其中一個對象的Intern_MarkBit7avoid-loopIntern_MarkBit6SMC_GEOINFOSMC_GEOINFO對象中是否Intern_Mark變量的Bit6avoid-loop功能。若沒有發(fā)現(xiàn)交叉點,對交叉點之間的SMC_GEOINFO對象會被移除,并且新軌跡會從第二個交叉對象開始繼續(xù)。SMC_NCDecoderIntern_MarkBit6Bit7位來作為對G61/G60指令的反應。對象數(shù)大于SMC_OUTQUEUE的量,回環(huán)將不會檢測到!若此輸入為FALSE,DataOutQueue會在每次重置時被清空。若為TRUE,新輸入的屬于據(jù)會DataOutQueue的末nSizeOutQueue:UDINTDataIn處理結束了,此變量將被設置成TRUE。此后,在重置之前,SMC_NCDecoder不bError:此變量指向一個對SMC_GEOINFO進行無回環(huán)處理的SMC_OUTQUEUE結構012angles)變得圓滑,從而生成一個圓滑的軌跡(slurpath)。它用于對軌(surring變量Bit3被置位SMC_GEOINFO對象。SMC_NCDecoder會設Intern_MarkBit4Bit3位來作為對G51/G50指令的反應。也就是說:對所有處于G51和G50指令之間的對象都將進行Smooth-Path處理。若此輸入為FALSE,DataOutQueue會在每次重置時被清空。若為TRUE,新輸入的屬于據(jù)會DataOutQueue的末尾通過將此變量設置成TRUE,模塊會被重置成開始狀態(tài)。從而SMC_OUTQUEUE結構DataOut將被除。并且在bReset被重置成FALSE(缺省值)前,模塊將不會nSizeOutQueue:UDINTDataIn處理結束了,此變量將被設置成TRUE。此后,在重置之前,SMC_NCDecoder不bError:此變量指向一個對SMC_GEOINFO進行軌跡圓滑處理的SMC_OUTQUEUE結構SMC_RoundPath功能塊與SMC_SmoothPath模塊非常相似它通 的長短由第一個需要進行圓滑的SMC_GEOINFO結構和其中一個輸 變量dRadius決定. 定義的值大于兩個SMC_GEOINFO對象中一個長度的二分之一,將 取二分之一作為dRadius的值。Intern_Mark變量Bit5.被置位了,那么圓角功能將被激活,直到出Intern_Mark變量Bit3被置位SMC_GEOINFO對象。SMC_NCDecoder會設置Intern_Mark的Bit5和Bit3位來作為對G52/G50指令的反應。也就是說:對所有處于G52和G50Smooth-Path處理。若此輸入為FALSE,DataOutQueue會在每次重置時被清空。若為TRUE,新輸入的屬于據(jù)會DataOutQueue的末離,在這個距離的位置上對象將被剪切,并替換成一段樣條曲線。這個值可以修改。因此可以DataIn處理結束了,此變量將被設置成TRUE。此后,在重置之前,SMC_NCDecoder不bError:此變量指向一個對SMC_GEOINFO進行軌跡圓滑處理的SMC_OUTQUEUE此模塊檢測特定軌的速度。若使用了SMC_NCDecoder就必須調用該模塊。因為模塊(例bError:SMC_InterpolatorSMC_GEOINFO對象描述的連續(xù)軌跡轉換成bEmergency_Stop:bWaitAtNextStop:(byel_Mode=0:S形速度圖實例(byel_Mode=1:與梯形相比,S形曲線的優(yōu)點是關聯(lián)的加速度是連續(xù)的,因此減輕了重型機器的負擔。但它同時會S速度曲線(藍色)改變成梯形曲線(紅色)不會使通過整條軌跡的時間變長,在起始和結象中編程指定的最大加速度或度最多將會被超過п/2。就如同在DOverride中描述的那樣,只有在當前沒有加速或的情況下才會將修改值應用到實際為了對附加軸進行S形(藍色,見下圖)插補而不是線性插補(紅色必須使當前對象的piStartPos的wSProfile變量的相應位置位。這將使附加軸不是根據(jù)X,Y,Z空間中的軌跡長度來進行線性插補,而是根據(jù)軌跡長度進行多項式插補,因此會得到S形軸位置輪廓,并且在軌的起始端和結束端的速度和加速度均為0。(popDataIn)處理結束了,此變量將被設置成TRUE。此后,在重置之前,bError:BOOLSMC_nerpoar一個點。一旦當前的EONFO對象處理完畢,它會從poqDaanSM_OUTQEUE結構體中清除掉。pePoton:MPFO軌跡上目標點的坐標,還包含附加軸位置。012345GEOINFO列表的處理停止。此后進入DataIn的GEOINFO不會被處理6Emergency_Stop=Slow_Stop=TRUEandVel=Wait_At_Next_Stop=TRUEandVel=如果列表已經(jīng)開始處理了,但還未完成(IPO_ACCEL或IPO_CONSTANT或IPO_DECELIPO_WAIT),此輸出將為TRUE。否則bWorking為FALSEiActObjectSourceNo:當前處理的DataIn隊列中GEOINFO對象的SourceLine_Nr值。如果SMC_Interpolator沒有工(Working=FALSE),值為“-1”dVel:此結構體包含移動到Set_Position位置的有效的軌跡方向。如果Vel=0,vecAct_Tangent的值為0此雙字節(jié)描述1-32所有開關的當前狀態(tài)。DWORD0位代表開關1,第31位代表開關SMC_OUTQUEUE和軌跡預處理模塊將CNC程序傳到一個SMC_OUTQUEUE結構中,或使用 捉完整的軌跡的情況下,才能使用后法。軌跡旋轉和平移的輔助模塊SMC_RotateQueue2和SMC_TranslateQueue3D功能塊用于旋轉和平移在SMC_OUTQUEUE中輸入變量poqDataIn是指向SMCOUTQUEUE的指針,它描述被旋轉或平移bEnableFALSETRUE,然后所有poqDataInGEOINFO對象都會被處理。一旦bEnableFALSE,模塊將不會執(zhí)行任何修改。存在poqDataIn中的數(shù)據(jù)將被根據(jù)所給向量vec平移,向量結構為SMC_VECTOR3DSMC_VECTOR3D)改動只會在SMC_OUTQUEUE為空或重置(bReset)后才會起作用。(XPYP按向量平移到零點,然后旋轉dPhi角度,最后按向量(XP,YP,0)平移到點(XP,YP。通過全局變量進行設置 對“零點”的判斷(見3.6章,設置e值:(SMCNC.lib中的結 SMC_POSINFO,SMC_GEOINFO,SMC_VECTOR3D,SMC_VECTOR6D。SMC_OUTQUEUE結構體管理在指定大小列表中的GEOINFOTYPE變量dX,dY和dZ描述了坐標系統(tǒng)中的位置,dA1,...,dA6描述了附加軸的位置。可在iFrame_Nr中SoftMotion模塊無關的信息。目前沒有使用dA,dB和dCwAuxData用位描述了SMC_Interpolator將對哪些軸進行插補計算。wAuxData初始化為2#111,意思是將對wSProfile以同樣的方式描述了是否用插補模塊對輔助軸(除X,Y軸以外的軸)進行線性(FASLE)或S形iSourceLineNo:1直線運動2358順時針橢圓9逆時針橢圓快速定位位置點此結構描述了對象的精確起始點。(如果Move_Type=INITPOS,它將被忽略dP1,...,dP8:根據(jù)Move_Type(見上),這些變量包含了后續(xù)軌跡的描述信息:無關,因為在Start_Pos和Dest_Pos中已包含完整的dP1:圓心XdP2:圓心YdP3:圓半dT1,dT2:這些變量包含參數(shù)的起始和終止位置。依據(jù)Move_Type,參數(shù)的含義無關,因為在Start_Pos和Dest_Pos中已包含完整的dVel,dVelEnd:dAccel,dDecel:dAccel描述了所允許的最大加速度,dDecel描述了所允許的最大度。兩個變量的預定義值均為“100”byIntern_Mark:Bit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7TYPETYPESMC_OUTQUEUE及其函數(shù)此結構可用于管理指定大小列表的GEOINFOpbyBuffer:POINTERTOBYTE;nSize:UDINT;nReadPos:UDINT;nWritePos:UDINT;bFull:BOOL;此,在到達軌跡末尾時列表會被清空,由于這個原因,就需要用此函數(shù)來重新它們。重新POINTERTOSMC_OUTQUEUESMC_APPENDOBJ(POQ:POINTERTOSMC_OUTQUEUE,PGI:POINTERTOSMC_GEOINFO)此函數(shù)返回SMC_OUTQUEUE列表(POQ)中的對象總數(shù)POINTERTOSMC_GEOINFOGETOBJFROMEND(POQ:POINTERTOSMC_OUTQUEUE,假設POQ被正確初始化并且其中至少有N+1個元素,此函數(shù)返回一個指向列表(POQ)中第NGEOINFO對象(從末尾開始數(shù))的指針;因此若N=0,將返回最后一SoftMoon的SMC_NCDecode,SoohahSMC_oundahSM_AvodLoop和SM_TooorrOUTQUEUE結構體的指針,并會自動初始化該結構體。SMC_SoothathSM_oundahSM_AvodLoop,M_TooorSM_neroarTQUEUE列表的指針來作為輸入。如果此列表被編程了并被手動填充,那么也必須進行手動初始化。為此,前兩個變量(buffer,size)需要被設置。強烈建議使用以上介紹的函數(shù)來操作SMC_OUTQUEUE結構體,并且避免初始化后對其他參數(shù)進行修改。pbyBuffer:POINTERTOnSize:bFull:SM_PLCopen.lib簡“SM_PLCopen.lib”PLCopen說明書“1.0(Functionblocksformotioncontrol,Version1.0)”。完全根據(jù)IEC1131-3標準編程的功能塊可以被分為以下3類:(slaveCAM、電子凸輪、相位平移等功能,可參看第0章的描述。這個庫是基于“Drive_Basic.lib”庫的。它提供了供庫模塊的 結構體PLCopen-說明書“運動控制的功能塊,1.0版建議您最好同時閱讀PLCopen的說明書“運動控制功能塊,版本1.0(Functionblocksformotioncontrol,Version1.0)”。其要點概述如下:MC_ReadParaee(AXIS_REF,被另一個模塊中斷的運動生成模塊(movement-creatingmodules)會通過設置它的輸出單軸運動控制模塊此功能塊將軸狀態(tài)(SMC_AXIS_STATE)由“error_stop”改變?yōu)椤皊tandstill”MC_WriteParameter,參數(shù)號。特殊驅動器庫(×××Drive.lib)的附帶文檔將描述驅動器特殊參數(shù)的代碼。器沒有被(unblocked),或沒有松開剎車,就不能進行運動控制。Enable:BOOL(Default:bRegulatorOnBOOL(DefaultFALSE)bDriveStart:BOOL(Default:Axis:Status:BOOL(Default:表明驅動器調節(jié)器的當前狀態(tài)是TRUE還是FALSEError:BOOL(Default:ErrorID:此功能塊開始一個制造商指定(!)的運動。完畢后“Done”輸出會被設置成TRUEExecute:BOOL(Default:Position:Done:BOOL(Default:Error:BOOL(Default:ErrorID:圖功能塊的輸入/輸出(VARINAxis:Execute:BOOL(Default:Done:BOOL(Default:Error:BOOL(Default:ErrorID:功能塊的輸入/輸出(VARINAxis:Execute:BOOL(Default:Position:Velocity:Acceleration:REALDeceleration:nDirection:MC_Direction(Default:Done:BOOL(Default:若命令被其他運動模塊(MoveSuperImposed除外)取消,該變量變?yōu)門RUEError:BOOL(Default:ErrorID:Distance值將被加到當前正在處理的軸模塊的目標位置。運動將以新的位置為目標。功能塊的輸入/輸出(VARINAxis:Execute:BOOL(Default:Distance:Velocity:Acceleration:REALDeceleration:REALDone:BOOL(Default:若命令被其它運動模塊(MoveSuperImposed除外)取消,該變量變?yōu)門RUEError:BOOL(Default:ErrorID:功能塊的輸入/輸出(VARINAxis:Execute:BOOL(Default:Distance:Velocity:Acceleration:REALDeceleration:REALDone:BOOL(Default:若命令被其它運動模塊(MoveSuperImposed除外)取消,該變量變?yōu)門RUEError:BOOL(Default:ErrorID:基本上激活的模塊不會被MC_MoveSuperImposed中斷。如果激活的模塊被其他模塊中斷功能塊的輸入/輸出(VARINAxis:Execute:BOOL(Default:Distance:Acceleration:REALDeceleration:REALDone:BOOL(Default:BUSY:BOOL(Default:若命令被其它運動模塊(MoveSuperImposed除外)取消,該變量變?yōu)門RUEError:BOOL(Default:ErrorID:功能塊的輸入/輸出(VARINAxis:Execute:BOOL(Default:Velocity:Acceleration:REALDeceleration:REALnDirection:MC_Direction(Default:InVelocity:BOOL(Default:若命令被其他運動模塊(MoveSuperImposed除外)取消,該變量變?yōu)門RUEError:BOOL(Default:ErrorID:MC_TP_REF包含下列0MC_TP包含下0功能塊的輸入/輸出(VARINAxis:Execute:BOOL(Default:ArraySize:ScaleREAL(Default1)Offset:REALTimePositionSMC_TP_REFDone:BOOL(Default:若命令被其它運動模塊(MoveSuperImposed除外)取消,該變量變?yōu)門RUEError:BOOL(Default:ErrorID:SMC_TV_REF包含下列0SMC_TV包含下0SMC_TV_REF包含下列0SMC_TV包含下0在絕對模式下(Mode=FALSE,缺省值),在相對模式下(Mode=TRUE)同步運動控制模塊可以通過對包含MC_CAM_REF類型的結構體對象編程或在CAM編輯器中編程來定義CAM的運動(見文檔“SoftMotionCAM-如果變量Periodic為TRUE,在完整運行一次之后,CAM會重新開始,否則只會運變量Masbsolute和SlaveAbsolute定義了主動軸到從動軸的CAM映射是絕對值(TRUE)還是增量(FALSE)模塊的輸入/輸出(VARINMaster:Slave:CamTable:CAM的描Execute:BOOLDefaultFALSE)Periodic:BOOL(Default:TRUE) CAM使用主動軸絕對/相對位置(在CAMIn中Execute出現(xiàn)上升沿時SlaveAbsolute:BOOL(Default:CAM使用從動軸絕對/相對位置(在CAMIn中Execute出現(xiàn)上升沿時Done:BOOL(Default:Error:BOOL(Default:ErrorID:CAM輸出的描述。作為模塊MC_CamIn中同名輸入變量的輸可以使用此模塊實現(xiàn)一個由模塊MC_CAMTABLESELECT選中的CAM數(shù)過3個。SMC_CAMRegister模塊工作時沒有這些限制。模塊的輸入/輸出(VARINMaster:Slave:ExecuteBOOLDefaultFALSE)MasterOffsetLREALDefault0)SlaveOffset:LREAL(Default:0)CamTableID:MC_CamTableSelect的輸Velocity,AccelerationDecelerationLREALDefault0)TappetHysteresis:LREAL(Default:0)InSync:BOOL(Default:如果運動在CAM上,則為TRUEDone:BOOL(Default:Error:BOOL(Default:ErrorID:EndOfProfile:指示已到CAM末端。在周期性CAM中,此輸出波Tappets:挺桿輸出。挺桿的精確位置最后將由SMC_GetTappetValue模塊算速度和加速度。為此,從動軸必須通過加速或來使速度與主動軸一致。當達到此狀態(tài)后,主動軸將MC_Phasing模塊將保持激活狀態(tài)直到被其它模SMPLCopen.lib的附加元模塊的輸入/輸出(VARINMaster:CamTable:Enable:BOOL(Default:MasterScalingREAL(Default1)TappetHysteresis:REALpensation:Error:BOOL(Default:ErrorID:EndOfProfile:模塊的輸入/輸出(VARINTappets:iID:bTappet:BOOL(Default:SMCNCDiagnostic.lib用 C_REF數(shù)據(jù)分析的功能 用 C_REF數(shù)據(jù)分析的功能SMCShowQueue此模塊以ARRAYOFPOINTERTOSMC_GeoInfo的形式提供OutQueue中的前十個SMC_GeoInfo對SM_Trafo.lib簡 ControlAxis功能塊fSetPosition:LREALfGapVelocityfGapAccelerationfGapDecelerationLREALbError:BOOL(Default:FALSE)iErrorID:SMC_Error(INT) 模塊的工作方式與SMC_ControlAxisByPos相似。不同的是它可以設置模塊的工作方式與SMC_ControlAxisByPos相似。不同的是它不是由位置控制的,而是由速度控制的。變換功能塊龍門系統(tǒng)pi:dx,dy:x和y軸的偏移量。與SMC_TRAFO_Gantry2模塊的相同。minXmaxXminYmaxYLREALDriveX,DriveY:AXIS_REFdx,dy:在GEO坐標系中x,y的位置ratio:pi:dx,dy:x和y軸的偏移量。與SMC_TRAFO_Gantry3模塊的相同。minXmaxXminYmaxYLREALDriveX,DriveY:AXIS_REFdx,dy:在GEO坐標系中x,y的位ratio:在以“SMC_TRAFOV”而不是“SMC_TRAFO_”((dVedvxdvyv)SMC_ControlAxisByPosVel模塊控2關節(jié)Scara系統(tǒng)pi:A軸,B軸的bErrorBOOLA軸,B軸的A軸和B軸的bError:BOOLdxdyGEO坐標系中x,y的位置dAlpha,dBeta:dpx,dpy:dnx,dny:dR1,dR2:關節(jié)Scara系統(tǒng)pi:A軸,B軸,C軸的偏移量。bErrorBOOLA軸,B軸,CA,B,C軸的偏bError:BOOLdx,dy:LREALGEO坐標系中x,y的位置dAlpha,dBeta,dG:dpx,dpy:dppx,dppy:dnx,dny:dR1,dR2,dR3:相對臂長。dR1+dR2+dR3=1.(0...1)(用于可視化SMError.lib功能SMCSMCError枚舉型變號0值值值值值值值值值值CAM中沒有未選取圍SMC_InterpolatorSoftMotion錯誤的時候Queue是空的時候Queue是空保存的CAMSM_FileFBs.lib簡CNC功能 pBuffer:POINTERTObDone:bError:BOOLErrorIDSMC_ERRORiObjectsRead:目前已被讀寫到隊列中的SMC_GeoInfo對象的數(shù)目。此模塊從控制器的文件系統(tǒng)中一個NC-ASCII文件,以便在運行時SMC_NCDecoderNC程序pvl:POINTERTO指向SMC_VARLIST對象的指針。(見下pBuffer:POINTERTObDone:bError:BOOLErrorIDSMC_ERRORbExecuteDecoder:作為觸發(fā)SMC_NCDecoder模塊中Execute的信號 CNC程序。作為隨后SMC_NCDecoder模塊的輸如果這種變量功能用于從文件中CNC程序,在編譯時可以通過“Createprogramvariableoncompile”(見3.7變量功能(見3.2SMC_VARLSTwNuberVarSMC_SngeVarpsvVarLis。SM_SngVrrVarNaeDINT(diVaue)還是EA(fae來使用。在用SMC_ReadNCFile從文件中的NC程序中,有兩個變量gfTestX(實數(shù)型,REAL) N0 mand$asv:ARRAY[0..1]OFSMC_SingleVar vl:SMC_VarList:=(wNumberVars:=2);必須在SMC_VarList與AMC_SingleVar之間進行賦CAM功能此模塊用于在運行時加載CAM編輯器創(chuàng)建的以*.CAM形式保存(見4.4.3章)的CAM,使MC_CamTableSelect和MC_CamIn能此CAM可加載的CAM的大小由全局常量gc_SMC_FILE_MAXCAMEL(元素數(shù)目)gc_SMC_FILE_MAXCAMTAP(CAM開關動作的數(shù)目)來限診斷功能塊bSetPosition,bActPosition,bSetVelocity,bActVelocity,bSetAcceleration,bActAcceleration:bError:BOOLTRUE:模塊正在編程實簡為了用CoDeSys工程和SoftMotion控制一個驅動器硬件,需要考慮以下幾點樣驅動器接口(DriveInterface)可用于與驅動器進行通信。 C或CAM編輯器中,數(shù)據(jù),CAM數(shù)據(jù)),這些數(shù)據(jù)將被IEC程序。見下列的編程實例:驅動器接口:創(chuàng)建PLC配置,第11.2單軸運動控制,第11.3用可視化模板在CFC中進行單軸運動控制,第11.4通過CAM和一個虛擬時間軸來控制驅動器,第11.5改變CAM,第11.6通過CNC編輯器直接控制驅動器,第11.7 1:直接創(chuàng)建隊列,第11.7.1 2:,使用變量,第11.7.2 3:軌跡預處理,第11.7.3動態(tài)SoftMotion編程,第11.8實例:驅動器接口:為驅動器創(chuàng)建PLC配置首先,打開PLC配置(資源)并選擇“附加”“標準配置 it(創(chuàng)建控制驅動器的任務,并按下圖所示配置任務配置( configuration)的屬性直線驅動(pora-re)以在-0何50c之移動。配置們額外移動。于“10-7”“107s”“e”waoTechUnt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度養(yǎng)殖場廢棄物資源化利用技術承包合同范本4篇
- 2022版義務教育階段英語課程標準模擬測試卷
- 2025年度整棟醫(yī)療設施出租經(jīng)營合同4篇
- 2025年度存量房交易資金監(jiān)管服務合同范本2篇
- 2024智能健康監(jiān)測設備研發(fā)與生產(chǎn)合同
- 2025別墅庭院園藝景觀植物租賃與養(yǎng)護合同3篇
- 2025年度新能源汽車動力電池回收利用技術合作合同范本3篇
- 2024美容院員工勞動合同及保密協(xié)議
- 2025年度醫(yī)院兒科病房改造與承包運營協(xié)議4篇
- 2025年度床上用品行業(yè)環(huán)保公益活動合作合同3篇
- 餐飲業(yè)環(huán)境保護管理方案
- 人教版【初中數(shù)學】知識點總結-全面+九年級上冊數(shù)學全冊教案
- 食品安全分享
- 礦山機械設備安全管理制度
- 計算機等級考試二級WPS Office高級應用與設計試題及答案指導(2025年)
- 造價框架協(xié)議合同范例
- 糖尿病肢端壞疽
- 心衰患者的個案護理
- 醫(yī)護人員禮儀培訓
- 無人機飛行安全協(xié)議書
- 2024-2025學年人教版七年級英語上冊各單元重點句子
評論
0/150
提交評論