TwinCATCNC入门教程CNC轴Dynamics参数设置功能介绍:轴的动态特性(Dynamics)其实主要就是值的轴的加减速。在NC中也有类似的设计界面,在轴的Dynamics界面里。在Beckhoff的NC中加速度曲线的类型是7段最优化,这个是不能选择的。而CNC中加速度曲线的类型是可以选择的,常用的是阶跃,梯形或者S型。CNC中轴的Dynamics主要由两个部分组成,加速度和加速的上升时间(达到加速需要的时间)。下面我们主要最常用的介绍梯形和S型加速度曲线,阶跃响应加速度曲线具有无限大的Jerk,对机械冲击比较大,一般不使用。有一个需要指明梯形和S型加速度曲线除了P-CHAN-00071参数设置的不一样外,其他的完全一致。S型加速度曲线是对梯形加速曲线的一个自动优化。CNC的配置参数说明:0.注意:单位的说明速度:[um/s]位置或距离:[0.1um]加速度:[mm/s2]百分比:[0.1%]时间:[us]1.ScalingFactor的计算:与NC中scallingfactor只有一个小数组成不同,CNC中是两个数的比值,一个是脉冲数,一个就是实际的运动距离。 参数号参数名值说明P-Axis-00234getriebe[0].wegaufz1048576脉冲数P-Axis-00233getriebe[0].wegaufn10000实际运动距离[0.1um]2.(Channel参数)默认的加减速profile的选择 参数号参数名值说明P-CHAN-00071prog_start.slope.profile20直线,1梯形,2,sinequadratic3.梯形和S型曲线加减速调整参数下面的这组参数是给G01-03使用的。 参数号参数名值x说明P-AXIS-00001getriebe[0].slope_profil.a_beschl1000加速度值(G01-03) [mm/s2]P-AXIS-00002getriebe[0].slope_profil.a_brems1000 减速度值(G01-03) [mm/s2]P-AXIS-00201getriebe[0].slope_profil.tr_min30000 最小上升时间 [us]P-AXIS-00196getriebe[0].slope_profil.tr_beschl_zu30000 加速度上升时间[us]P-AXIS-00195getriebe[0].slope_profil.tr_beschl_ab30000 加速度下降时间[us]P-AXIS-00198getriebe[0].slope_profil.tr_brems_zu30000 减速度上升阶段[us]P-AXIS-00197getriebe[0].slope_profil.tr_brems_ab30000 减速度下降阶段[us]4.G00加减速使用自己独立的加减速参数,跟G01-03的不同 参数号参数名值说明P-AXIS-00004getriebe[0].slope_profil.a_grenz1000G00加速度P-AXIS-00200getriebe[0].slope_profil.tr_grenz30000 G00加减速时间5.进给保持加速度注意:进给保持的加速度如果设置的没有比G00大,那么就会用G00的加速度。 P-AXIS-00053getriebe[0].slope_profil.a_feedh1000进给保持加速度,默认与G00一致P-AXIS-00081getriebe[0].slope_profil.tr_feedh30000 进给保持上升时间,默认与G00一致6.回参的速度值 参数号参数名值说明P-AXIS-0021getriebe[0].vb_reflow20000回参慢速 [um/s]P-AXIS-00219getriebe[0].vb_refmax200000回参快速 [um/s]P-AXIS-00152getriebe[0].pos_refpkt0回参后位置 [0.1um]7.回参加速度 参数号参数名值说明P-AXIS-00270getriebe[0].slope_type2回参时采用的profile0直线,1梯形,2,sinequadraticP-AXIS-00286getriebe[0].tr_refP-AXIS-00286回参时上升时间,默认同最小上升P-AXIS-00201P-AXIS-00285getriebe[0].a_refP-AXIS-00285 回参加速度,默认与阶跃型的加速度一致8.CNC轴加减速调整最大值最小值 参数号参数名值说明P-AXIS-00212getriebe[0].dynamic.vb_max100000轴的最大速度[um/s]P-AXIS-00209getriebe[0].vb_eilgang100000G00速度[um/s]P-AXIS-00008getriebe[0].dynamic.a_max1000最大加/减速[mm/s2]P-AXIS-00201getriebe[0].dynamic.tr_min5000最小上升时间AxisOverride(0.1%)Kenngr.max_vb_override1000轴进给倍率P-AXIS-00003getriebe[0].dynamik.a_emergency100000急停减速度 9.手动模式加减速调整参数具体的参数配置请见,手动功能一节。 参数号参数名值说明P-AXIS-00213handbetrieb.hb.vb_max100000手动最大速度P-AXIS-00009handbetrieb.hb.a_max1000手动最大加速度P-AXIS-00359handbetrieb.hr.tr 5000手动上升时间P-AXIS-00360handbetrieb.hr.tr_feedh5000手动进给保持上升时间 PLC的设置:这个功能PLC不需要做任何设置典型的配置文件: getriebe[0].slope_profil.a_beschl 7550 #[mm/s2]加速度 getriebe[0].slope_profil.a_brems 7550 #[mm/s2] 减速度 getriebe[0].slope_profil.a_grenz 7550 #[mm/s2]G00时加减速 getriebe[0].slope_profil.tr_beschl_zu 67500 #[us] 加速过程上升时间 getriebe[0].slope_profil.tr_beschl_ab 67500 #[us] 加速过程下降时间 getriebe[0].slope_profil.tr_brems_zu 67500 #[us] 减速过程上升时间 getriebe[0].slope_profil.tr_brems_ab 67500 #[us] 减速过程下降时间 getriebe[0].slope_profil.tr_grenz 67500 #[us]G00时上升下降时间 getriebe[0].dynamik.tr_min 5000 #[us] 最小的上升时间 getriebe[0].dynamik.tr_geom 5000 #[us] 最小的permissiblegeometricramptimeBeckhoffCNCM函数使用说明Beckhoff 的无论是CNC系统还是NCI,但凡用到G代码的地方总是要用到M函数。Beckhoff的CNC中M函数的种类总共有十种,下面给大家具体介绍,以自定义的M25解释:一.NO_SYNCH, 对应的值是0X00000000。这种M函数不会向PLC输出,也就是说你的G代码写:N0001G90G00X100M25或者N0001G90G00X100M25运行后,在PLC这边不知道这个M函数运行了。这样的M函数基本上用不到。二.MOS,对应的值是0X00000001。这种M函数向PLC输出,但是G代码的运行不需要跟PLC同步。N0002F240.0G90N0010G01 X0Y0N0020G01 X1000 Y1000 M25在这种情况下,CNC执行完N0010这一行后,当执行到N0020的时候,M25马上就向PLC输出了,CNCSystem.Channel[1].M[25]就变为TRUE,同时轴也继续向(1000,1000)运动。三.MVS_SVS,对应的值是0X00000002。这种M函数在轴运动之前运行,等PLC完成后,CNC继续运动轴。N0002F240.0G90N0010G01 X0Y0N0020G01 X1000 Y1000 M25在这种情况下,CNC执行完N0010这一行后,当执行到N0020的时候,M25马上就向PLC输出了,CNCSystem.Channel[1].M[25]就变为TRUE,只有PLC把CNCSystem.Channel[1].M[25]变为FALSE后,轴才继续向(1000,1000)运动。四.MVS_SNS,对应的值是0X00000004。这种M函数在轴运动之前运行,如果M75很快就运行完了,那么CNC会继续运行下一行,否则速度减为零,等M75完成后,CNC继续运动轴。N0002F240.0G90N0010G01 X0Y0N0020G01 X1000 Y1000 M25五.MNS_SNS,对应的值是0X00000008。这种M函数在轴运动之后运行,等M25完成后,CNC继续运动轴。N0002F240.0G90N0010G01 X0Y0N0020G01 X1000 Y1000 M25剩下的M函数很少用到,这里不做具体介绍了,需要的可以看Beckhoff的文档了。AX5000如何在TwinCATCNC下回参 功能介绍CNC
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
回参主要分为三个部分1.快速向参考点移动,检测到参考点上升沿后减速停止2.反向移动,检测到参考点下降沿加速停止3.再向参考点慢速移动,检测到上升沿后,再收到零脉冲建立坐标系,减速停止。CNC的配置参数说明: 参数号参数全名值说明P-AXIS-00299kenngr.homing_typeCNC_CONTROLLED回参类型的选择CNC_CONTROLLEDP-AXIS-00156kenngr.ref_ohne_nocken0回参过程需要参考点为0,否则为1P-AXIS-00157kenngr.ref_ohne_rev0这个值默认为0。如果设置成1,那么回参的过程就只有一个阶段了。回参开始后轴以慢速运动,一旦检测到参考点的上升沿,回参过程就结束了。默认值0,对应的我们标准回参过程的三个阶段。 P-AXIS-00152 getriebe.pos_refpkt0回参后的位置P-AXIS-00158kenngr.ref_richt1回参时找参考点的方向,0为正方向,1为负方向P-AXIS-00219getriebe[0].vb_refmax666667 回参快速[um/s]P-AXIS-00218getriebe[0].vb_reflow20000回参慢速[um/s]P-AXIS-00064kenngr.fast_from_cam0离开参考点时使用快速还是慢速 1=快速,0= 慢速典型的配置-编码器不需要找编码器溢出的 #---------------------------------------------------CNC 控制的回参 kenngr.ref_richt 1 #回参时找参考点的轴运动方向 kenngr.homing_without_zero_pulse 1 kenngr.fast_from_cam 1 kenngr.ref_ohne_nocken 0 #Homingwithoutcam,回参过程中不使用参考点。通常为0,一般回参过程中都使用参考点。 kenngr.vorz_richtung 0 #1限制旋转轴的运动方向,通常为0. kenngr.beweg_richt 0 # 同上,旋转的方向限制,1=Positiv,0=Negativ kenngr.ref_ohne_rev 0 #Homingwithout reverting,回参过程中不反向。 kenngr.homing_overflow_evaluation 0 # 回参结束后是否找编码器溢出,在增量式编码器中,不能使用该值 antr.encoder_bit_range 20 # 编码器的位数,AX5000统一为20位,该参数与homing_overflow_evaluation为1和homing_without_zero_pulse为0时同时使用 kenngr.homing_type CNC_CONTROLLED# 回参模式为CNC控制回参,AX5000自己不能回参 getriebe[0].pos_refpkt 8970000 #[0.1um]回参后位置典型的配置AX5000找编码器溢出的如果是NC-controlled的AX5000回参的话找Encoderoverflow,下面几个参数很重要:Kenngr.homing_overflow_evaluation 1antr.encoder_bit_range 20kenngr.homing_without_zero_pulse 0 kenngr.homing_type CNC_CONTROLLED典型配置: #---------------------------------------------------CNC 控制的回参 kenngr.ref_richt 1 #回参时找参考点的轴运动方向 kenngr.homing_without_zero_pulse 0#0回参找零脉冲1回参后不需要找 kenngr.fast_from_cam 1 kenngr.ref_ohne_nocken 0 #Homingwithoutcam,回参过程中不使用参考点。通常为0,一般回参过程中都使用参考点。 kenngr.vorz_richtung 0 #1限制旋转轴的运动方向,通常为0. kenngr.beweg_richt 0 # 同上,旋转的方向限制, 1=Positiv,0=Negativ kenngr.ref_ohne_rev 0 #Homingwithout reverting,回参过程中不反向。 kenngr.homing_overflow_evaluation 1 # 回参结束后是否找编码器溢出,在增量式编码器中,不能使用该值 antr.encoder_bit_range 20 # 编码器的位数,AX5000统一为20位,该参数与homing_overflow_evaluation为1和homing_without_zero_pulse为0时同时使用 kenngr.homing_type CNC_CONTROLLED# 回参模式为CNC控制回参,AX5000自己不能回参 getriebe[0].pos_refpkt 8970000 #[0.1um]回参后位置HLIinterfacePLC代码为首先要使能参考的点: HLI_SetAxisControlToPlc:pAC[idx]^.addr^.McControlLr_Data.MCControlBoolUnit_ReferenceCam.X_Enable:=TRUE;在PLC的代码中通过HLI传给CNC:HLI_SetAxisReferenceCam(Axis:=1,bReferenceCam:=bReferenceCam1);HLI_SetAxisReferenceCam(Axis:=2,bReferenceCam:=bReferenceCam2);HLI_SetAxisReferenceCam(Axis:=3,bReferenceCam:=bReferenceCam3);布尔变量 bReferenceCam123 连接到现场参考点接近开关。CNC的绝对值编码器:AX5000多圈绝对值编码器,不需要回参的情况,主要由三个参数决定:#kenngr.abs_pos_gueltig 0 #编码器类型为0,需要回参的也为0,这点特别重要,跟说明书上描述的不一致#kenngr.set_refpos_mode OFFSET # 回参设定数值类型#kenngr.set_refpos_offset -80611077 #[0.1um]编码器的位置和实际位置的偏差,注意getriebe[0].pos_refpkt也必须设置为0,否则pos_refpkt也为叠加到offset里典型配置: #AX5000绝对值编码器,不需要回参的情况: # ---------------------------------------------------- CNC 绝对编码器,不需要回参, kenngr.abs_pos_gueltig 0 #IDforabsoluteencodersystem 绝对值编码器 kenngr.durchm_prog_abs 0 #Absolutediameter programming(G51)imG90-Modeaktiv kenngr.durchm_prog_rel 0 #Relativediameter programming(G51)imG91-Modeaktiv kenngr.no_stop_by_channel_reset 0 #Spindleaxisdoesnotstopat ChannelReset kenngr.set_refpos_mode OFFSET # 回参设定数值类型 kenngr.set_refpos_offset -80611077 #[0.1um]编码器的位置和实际位置的偏差,注意getriebe[0].pos_refpkt也必须设置为0,否则pos_refpkt也会叠加到offset里PLC程序需要给轴做一些处理:pAc[1]^.addr^.McControlLr_Data.MCControlBoolUnit_SetReferencePosition.X_Enable:=TRUE;IFNOTpAc[1]^.addr^.McControlLr_Data.MCControlBoolUnit_SetReferencePosition.X_StateTHEN pAc[1]^.addr^.McControlLr_Data.MCControlBoolUnit_SetReferencePosition.X_Command:=TRUE;END_IFCNC轴手动动作配置手动动作功能介绍:CNC的手动动作是数控机床的一个重要的动作。手动动作从使用者的角度上来看主要包含两种类型的操作方式,一种是+X,-X这种的,有两排按钮组成。另一种是先选择轴X,在按+,-按钮在移动轴的。倍福的CNC对两种类型的操作在PLC中都预留了借口,使用起来非常方便CNC的配置参数说明:参数号参数名值说明P-AXIS-00213handbetrieb.hb.vb_max100000手动最大速度P-AXIS-00009handbetrieb.hb.a_max1000手动最大加速度P-AXIS-00359handbetrieb.hr.tr 5000手动上升时间P-AXIS-00360handbetrieb.hr.tr_feedh5000手动进给保持上升时间注:手动运动的速度及寸动(点动)的距离由PLC来设定,不建议在CNC中设定。PLC的设置:为了简单好用,我做了几个范例程序。范例1: 4根轴,两排按钮,连续运动。IFNOTINITTHEN PLCMachineMode[1].Manual:=TRUE; INIT :=TRUE; END_IF IFCNCSystem.Channel[1].ActMode=4THEN stManualModeParameter[1].stChannelParameter.nChan :=1; stManualModeParameter[1].stChannelParameter.nManualTyp :=2; stManualModeParameter[1].stAxisParameter.stControlUnit[1].nLogAxisNumber :=1; stManualModeParameter[1].stAxisParameter.stControlUnit[2].nLogAxisNumber :=2; stManualModeParameter[1].stAxisParameter.stControlUnit[3].nLogAxisNumber :=3; stManualModeParameter[1].stAxisParameter.stControlUnit[4].nLogAxisNumber :=4; GD_VisuSpeed:=600; stManualModeParameter[1].stAxisParameter.stControlUnit[1].nSpeed :=GD_VisuSpeed*1000/60; (**1us /s****) stManualModeParameter[1].stAxisParameter.stControlUnit[2].nSpeed :=GD_VisuSpeed*1000/60; stManualModeParameter[1].stAxisParameter.stControlUnit[3].nSpeed :=GD_VisuSpeed*1000/60; stManualModeParameter[1].stAxisParameter.stControlUnit[4].nSpeed :=GD_VisuSpeed*1000/60; (**********Mode 2,X YZCA PlusorMinusKeymanipulatethemovement directly**************************************************) stManualModeControlElements[1].stControlKeys[1].bKeyNeg :=GX_KeyUnit1_Minus; (*TasteMinus *) stManualModeControlElements[1].stControlKeys[1].bKeyPos :=GX_KeyUnit1_Plus; (*TastePlus*) stManualModeControlElements[1].stControlKeys[1].bKeyRapid :=GX_KeyRapid; (*TasteEilgang*) stManualModeControlElements[1].stControlKeys[2].bKeyNeg :=GX_KeyUnit2_Minus; (*TasteMinus *) stManualModeControlElements[1].stControlKeys[2].bKeyPos :=GX_KeyUnit2_Plus; (*TastePlus*) stManualModeControlElements[1].stControlKeys[2].bKeyRapid :=GX_KeyRapid; (*TasteEilgang*) stManualModeControlElements[1].stControlKeys[3].bKeyNeg :=GX_KeyUnit3_Minus; (*TasteMinus *) stManualModeControlElements[1].stControlKeys[3].bKeyPos :=GX_KeyUnit3_Plus; (*TastePlus*) stManualModeControlElements[1].stControlKeys[3].bKeyRapid :=GX_KeyRapid; (*TasteEilgang*) stManualModeControlElements[1].stControlKeys[4].bKeyNeg :=GX_KeyUnit4_Minus; (*TasteMinus *) stManualModeControlElements[1].stControlKeys[4].bKeyPos :=GX_KeyUnit4_Plus; (*TastePlus*) stManualModeControlElements[1].stControlKeys[4].bKeyRapid :=GX_KeyRapid; (*TasteEilgang*) (********************************************************************************) END_IF ChannelModeManual( stManualModeParameter :=stManualModeParameter[1], stManualModeControlElements:= stManualModeControlElements[1], bReset :=FALSE, stManualModeState=>stManualModeState[1] );范例2: 4根轴,先选轴,再按加减按钮,连续运动。IFNOTINITTHEN PLCMachineMode[1].Manual:=TRUE; INIT :=TRUE; END_IF IFCNCSystem.Channel[1].ActMode=4THEN stManualModeParameter[1].stChannelParameter.nChan :=1; stManualModeParameter[1].stChannelParameter.nManualTyp :=2; IF GD_VisuAxisNumber>0THEN stManualModeParameter[1].stAxisParameter.stControlUnit[1].nLogAxisNumber :=GD_VisuAxisNumber; stManualModeParameter[1].stAxisParameter.stControlUnit[2].nLogAxisNumber :=0; stManualModeParameter[1].stAxisParameter.stControlUnit[3].nLogAxisNumber :=0; stManualModeParameter[1].stAxisParameter.stControlUnit[4].nLogAxisNumber :=0; END_IF GD_VisuSpeed:=600; stManualModeParameter[1].stAxisParameter.stControlUnit[1].nSpeed :=GD_VisuSpeed*1000/60; (**1us /s****) stManualModeParameter[1].stAxisParameter.stControlUnit[2].nSpeed :=GD_VisuSpeed*1000/60; stManualModeParameter[1].stAxisParameter.stControlUnit[3].nSpeed :=GD_VisuSpeed*1000/60; stManualModeParameter[1].stAxisParameter.stControlUnit[4].nSpeed :=GD_VisuSpeed*1000/60; (**** Mode1, firstselecttheaxisnumber throughGD_VisuAxisNumber, Plusor MinusKey manipulates the movement*****) stManualModeControlElements[1].stControlKeys[1].bKeyNeg :=GX_VisuAxisMinus; (*TasteMinus *) stManualModeControlElements[1].stControlKeys[1].bKeyPos :=GX_VisuAxisPlus; (*TastePlus*) stManualModeControlElements[1].stControlKeys[1].bKeyRapid :=GX_KeyRapid; (*TasteEilgang*) (**********************************************************************************************) END_IF ChannelModeManual( stManualModeParameter :=stManualModeParameter[1], stManualModeControlElements:= stManualModeControlElements[1], bReset :=FALSE, stManualModeState=>stManualModeState[1] );范例3:4根轴,两排按钮,寸动运动。IFNOTINITTHEN PLCMachineMode[1].Manual:=TRUE; INIT :=TRUE; END_IF IFCNCSystem.Channel[1].ActMode=4THEN stManualModeParameter[1].stChannelParameter.nChan :=1; stManualModeParameter[1].stChannelParameter.nManualTyp :=3; stManualModeParameter[1].stAxisParameter.stControlUnit[1].nLogAxisNumber :=1; stManualModeParameter[1].stAxisParameter.stControlUnit[2].nLogAxisNumber :=2; stManualModeParameter[1].stAxisParameter.stControlUnit[3].nLogAxisNumber :=3; stManualModeParameter[1].stAxisParameter.stControlUnit[4].nLogAxisNumber :=4; GD_VisuSpeed:=600; stManualModeParameter[1].stAxisParameter.stControlUnit[1].nSpeed :=GD_VisuSpeed*1000/60; (**1us /s****) stManualModeParameter[1].stAxisParameter.stControlUnit[2].nSpeed :=GD_VisuSpeed*1000/60; stManualModeParameter[1].stAxisParameter.stControlUnit[3].nSpeed :=GD_VisuSpeed*1000/60; stManualModeParameter[1].stAxisParameter.stControlUnit[4].nSpeed :=GD_VisuSpeed*1000/60; IF GX_VisuIncrements1THEN stManualModeParameter[1].stChannelParameter.nInc :=10; (****0.1us**) ELSIF GX_VisuIncrements2THEN stManualModeParameter[1].stChannelParameter.nInc :=100; ELSIF GX_VisuIncrements3THEN stManualModeParameter[1].stChannelParameter.nInc :=1000; ELSIF GX_VisuIncrements4THEN stManualModeParameter[1].stChannelParameter.nInc :=10000; ELSIF GX_VisuVarTHEN stManualModeParameter[1].stChannelParameter.nInc :=GD_VisuVar*10; END_IF (**********Mode 2,X YZCA PlusorMinusKeymanipulatethemovement directly**************************************************) stManualModeControlElements[1].stControlKeys[1].bKeyNeg :=GX_KeyUnit1_Minus; (*TasteMinus *) stManualModeControlElements[1].stControlKeys[1].bKeyPos :=GX_KeyUnit1_Plus; (*TastePlus*) stManualModeControlElements[1].stControlKeys[1].bKeyRapid :=GX_KeyRapid; (*TasteEilgang*) stManualModeControlElements[1].stControlKeys[2].bKeyNeg :=GX_KeyUnit2_Minus; (*TasteMinus *) stManualModeControlElements[1].stControlKeys[2].bKeyPos :=GX_KeyUnit2_Plus; (*TastePlus*) stManualModeControlElements[1].stControlKeys[2].bKeyRapid :=GX_KeyRapid; (*TasteEilgang*) stManualModeControlElements[1].stControlKeys[3].bKeyNeg :=GX_KeyUnit3_Minus; (*TasteMinus *) stManualModeControlElements[1].stControlKeys[3].bKeyPos :=GX_KeyUnit3_Plus; (*TastePlus*) stManualModeControlElements[1].stControlKeys[3].bKeyRapid :=GX_KeyRapid; (*TasteEilgang*) stManualModeControlElements[1].stControlKeys[4].bKeyNeg :=GX_KeyUnit4_Minus; (*TasteMinus *) stManualModeControlElements[1].stControlKeys[4].bKeyPos :=GX_KeyUnit4_Plus; (*TastePlus*) stManualModeControlElements[1].stControlKeys[4].bKeyRapid :=GX_KeyRapid; (*TasteEilgang*) (********************************************************************************) END_IF ChannelModeManual( stManualModeParameter :=stManualModeParameter[1], stManualModeControlElements:= stManualModeControlElements[1], bReset :=FALSE, stManualModeState=>stManualModeState[1] );范例4: 4根轴,先选轴,再按加减按钮,寸动运动。IFNOTINITTHEN PLCMachineMode[1].Manual:=TRUE; INIT :=TRUE; END_IF IFCNCSystem.Channel[1].ActMode=4THEN stManualModeParameter[1].stChannelParameter.nChan :=1; stManualModeParameter[1].stChannelParameter.nManualTyp :=3; IF GD_VisuAxisNumber>0THEN stManualModeParameter[1].stAxisParameter.stControlUnit[1].nLogAxisNumber :=GD_VisuAxisNumber; stManualModeParameter[1].stAxisParameter.stControlUnit[2].nLogAxisNumber :=0; stManualModeParameter[1].stAxisParameter.stControlUnit[3].nLogAxisNumber :=0; stManualModeParameter[1].stAxisParameter.stControlUnit[4].nLogAxisNumber :=0; END_IF GD_VisuSpeed:=600; stManualModeParameter[1].stAxisParameter.stControlUnit[1].nSpeed :=GD_VisuSpeed*1000/60; (**1us /s****) stManualModeParameter[1].stAxisParameter.stControlUnit[2].nSpeed :=GD_VisuSpeed*1000/60; stManualModeParameter[1].stAxisParameter.stControlUnit[3].nSpeed :=GD_VisuSpeed*1000/60; stManualModeParameter[1].stAxisParameter.stControlUnit[4].nSpeed :=GD_VisuSpeed*1000/60; IF GX_VisuIncrements1THEN stManualModeParameter[1].stChannelParameter.nIn