首页 TwinCAT-CNC-入门教程

TwinCAT-CNC-入门教程

举报
开通vip

TwinCAT-CNC-入门教程TwinCATCNC入门教程CNC轴Dynamics参数设置功能介绍:轴的动态特性(Dynamics)其实主要就是值的轴的加减速。在NC中也有类似的设计界面,在轴的Dynamics界面里。在Beckhoff的NC中加速度曲线的类型是7段最优化,这个是不能选择的。而CNC中加速度曲线的类型是可以选择的,常用的是阶跃,梯形或者S型。CNC中轴的Dynamics主要由两个部分组成,加速度和加速的上升时间(达到加速需要的时间)。下面我们主要最常用的介绍梯形和S型加速度曲线,阶跃响应加速度曲线具有无限大的Jerk,对机械冲击...

TwinCAT-CNC-入门教程
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
本文档为【TwinCAT-CNC-入门教程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
玉玲珑
暂无简介~
格式:doc
大小:859KB
软件:Word
页数:45
分类:
上传时间:2022-09-12
浏览量:5