_200_Axis.BoatAxisState ); Buffer(AxisControl:=_200_Axis.BufferControl ,AxisData:=_200_Axis.BufferData ,AxisState=>_200_Axis.BufferAxisState ); CAPS(AxisControl:=_200_Axis.CapControl ,AxisData:=_200_Axis.CapData ,AxisState=>_200_Axis.CapAxisState ); //轴最大转矩设置 _200_Axis.BufferMaxTorque:=_200_Axis.BufferData.MaxTorque:=1000; _200_Axis.BoatMaxTorque:=_200_Axis.BoatData.MaxTorque:=1000; _200_Axis.CapMaxTorque:=_200_Axis.CapData.MaxTorque:=1000; //轴最大速度 _200_Axis.BufferMaxSpeed:=_200_Axis.BufferData.MaxSpeed:=400; _200_Axis.BoatMaxSpeed:=_200_Axis.BoatData.MaxSpeed:=400; _200_Axis.CapMaxSpeed:=_200_Axis.CapData.MaxSpeed:=1000; //轴转矩当前值 _200_Axis.BufferData.ActTorque:=_200_Axis.BufferActTorque; _200_Axis.BoatData.ActTorque:=_200_Axis.BoatActTorque; //--.01 Buffer //Buffer使能 _200_Axis.BufferControl.RobotToAxisEnable:=FBI.I403_15; //Buffer JOG+ _200_Axis.BufferControl.TPToAxisJogForward:=_200_Axis.JogPosEn AND _200_Axis.Run; //Buffer JOG- _200_Axis.BufferControl.TPToAxisJogBackwards:=_200_Axis.JogNegEn AND _200_Axis.Run; //Buffer JOG速度 _200_Axis.BufferData.Vel[31]:=_200_Axis.JogVel; //Buffer 相对定位 _200_Axis.BufferControl.RobotToCmdMoveRelative:=_200_Axis.MoveRelEn AND _200_Axis.Run; //Buffer 绝对定位 _200_Axis.BufferControl.RobotToCmdMoveAbsolute:=_200_Axis.MovAbsEn AND _200_Axis.Run; //原点回归 _200_Axis.BufferControl.RobotToCmdHome:=_200_Axis.HomeEn AND _200_Axis.Run; //A1 位置保存 IF _200_Axis.A1PosSaveEn THEN _200_Axis.A1Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[1]:=_200_Axis.A1Position; ELSE _200_Axis.A1Position:=_200_Axis.BufferData.Pos[1]; END_IF //A2 位置保存 IF _200_Axis.A2PosSaveEn THEN _200_Axis.A2Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[2]:=_200_Axis.A2Position; ELSE _200_Axis.A2Position:=_200_Axis.BufferData.Pos[2]; END_IF //A3 位置保存 IF _200_Axis.A3PosSaveEn THEN _200_Axis.A3Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[3]:=_200_Axis.A3Position; ELSE _200_Axis.A3Position:=_200_Axis.BufferData.Pos[3]; END_IF //A4 位置保存 IF _200_Axis.A4PosSaveEn THEN _200_Axis.A4Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[4]:=_200_Axis.A4Position; ELSE _200_Axis.A4Position:=_200_Axis.BufferData.Pos[4]; END_IF //B1 位置保存 IF _200_Axis.B1PosSaveEn THEN _200_Axis.B1Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[5]:=_200_Axis.B1Position; ELSE _200_Axis.B1Position:=_200_Axis.BufferData.Pos[5]; END_IF //B2 位置保存 IF _200_Axis.B2PosSaveEn THEN _200_Axis.B2Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[6]:=_200_Axis.B2Position; ELSE _200_Axis.B2Position:=_200_Axis.BufferData.Pos[6]; END_IF //B3 位置保存 IF _200_Axis.B3PosSaveEn THEN _200_Axis.B3Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[7]:=_200_Axis.B3Position; ELSE _200_Axis.B3Position:=_200_Axis.BufferData.Pos[7]; END_IF //B4 位置保存 IF _200_Axis.B4PosSaveEn THEN _200_Axis.B4Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[8]:=_200_Axis.B4Position; ELSE _200_Axis.B4Position:=_200_Axis.BufferData.Pos[8]; END_IF //C1 位置保存 IF _200_Axis.C1PosSaveEn THEN _200_Axis.C1Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[9]:=_200_Axis.C1Position; ELSE _200_Axis.C1Position:=_200_Axis.BufferData.Pos[9]; END_IF //C2 位置保存 IF _200_Axis.C2PosSaveEn THEN _200_Axis.C2Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[10]:=_200_Axis.C2Position; ELSE _200_Axis.C2Position:=_200_Axis.BufferData.Pos[10]; END_IF //C3 位置保存 IF _200_Axis.C3PosSaveEn THEN _200_Axis.C3Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[11]:=_200_Axis.C3Position; ELSE _200_Axis.C3Position:=_200_Axis.BufferData.Pos[11]; END_IF //C4 位置保存 IF _200_Axis.C4PosSaveEn THEN _200_Axis.C4Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[12]:=_200_Axis.C4Position; ELSE _200_Axis.C4Position:=_200_Axis.BufferData.Pos[12]; END_IF //D1 位置保存 IF _200_Axis.D1PosSaveEn THEN _200_Axis.D1Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[13]:=_200_Axis.D1Position; ELSE _200_Axis.D1Position:=_200_Axis.BufferData.Pos[13]; END_IF //D2 位置保存 IF _200_Axis.D2PosSaveEn THEN _200_Axis.D2Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[14]:=_200_Axis.D2Position; ELSE _200_Axis.D2Position:=_200_Axis.BufferData.Pos[14]; END_IF //D3 位置保存 IF _200_Axis.D3PosSaveEn THEN _200_Axis.D3Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[15]:=_200_Axis.D3Position; ELSE _200_Axis.D3Position:=_200_Axis.BufferData.Pos[15]; END_IF //D4 位置保存 IF _200_Axis.D4PosSaveEn THEN _200_Axis.D4Position:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[16]:=_200_Axis.D4Position; ELSE _200_Axis.D4Position:=_200_Axis.BufferData.Pos[16]; END_IF //正极限位置保存 IF _200_Axis.PosSoftLimitSaveEN THEN _200_Axis.PosSoftLimit:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[17]:=_200_Axis.PosSoftLimit; ELSE _200_Axis.PosSoftLimit:=_200_Axis.BufferData.Pos[17]; END_IF //负限位置保存 IF _200_Axis.NegSoftLimitSaveEN THEN _200_Axis.NegSoftLimit:=_200_Axis.TPInputPos; _200_Axis.BufferData.Pos[18]:=_200_Axis.NegSoftLimit; ELSE _200_Axis.NegSoftLimit:=_200_Axis.BufferData.Pos[18]; END_IF //点动速度限制 IF _200_Axis.JogVel >10.0 THEN _200_Axis.JogVel:=1; ELSIF _200_Axis.JogVel <0.0 THEN _200_Axis.JogVel:=1; END_IF //A1 在位信号 //A2 在位信号 //A3 在位信号 //A4 在位信号 //B1 在位信号 //B2 在位信号 //B3 在位信号 //B4 在位信号 //C1 在位信号 //C2 在位信号 //C3 在位信号 //C4 在位信号 //D1 在位信号 //D2 在位信号 //D3 在位信号 //D4 在位信号 //位置显示 _200_Axis.ActPos:=_200_Axis.BufferAxisState.Pos; //速度显示 _200_Axis.ActVel:=_200_Axis.BufferAxisState.vel; //转矩显示 _200_Axis.ActTorque:=_200_Axis.BufferActTorque; //使能显示 _200_Axis.TeachServoOn:=_200_Axis.BufferAxisState.Enabled; //运动中 _200_Axis.TeachServoMoving:=_200_Axis.BufferAxisState.Busy; //异常显示 _200_Axis.TeachServoAlarm:=_200_Axis.BufferAxisState.Error; //正极限显示 //负极限显示 //异常ID _200_Axis.ServoCode:=_200_Axis.BufferAxisState.ErrorID; //按钮互锁 IF _200_Axis.HMINo=190 THEN IF _200_Axis.HomeEn THEN _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.JogPosEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.JogNegEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.A1PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.B1PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.C1PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.D1PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.A2PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.B2PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.C2PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.D2PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.A3PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.B3PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.C3PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.D3PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.A4PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.B4PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.C4PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF IF _200_Axis.D4PosSaveEn THEN _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; END_IF ELSE _200_Axis.HomeEn:=0; _200_Axis.JogPosEn:=0; _200_Axis.JogNegEn:=0; _200_Axis.A1PosSaveEn:=0; _200_Axis.B1PosSaveEn:=0; _200_Axis.C1PosSaveEn:=0; _200_Axis.D1PosSaveEn:=0; _200_Axis.A2PosSaveEn:=0; _200_Axis.B2PosSaveEn:=0; _200_Axis.C2PosSaveEn:=0; _200_Axis.D2PosSaveEn:=0; _200_Axis.A3PosSaveEn:=0; _200_Axis.B3PosSaveEn:=0; _200_Axis.C3PosSaveEn:=0; _200_Axis.D3PosSaveEn:=0; _200_Axis.A4PosSaveEn:=0; _200_Axis.B4PosSaveEn:=0; _200_Axis.C4PosSaveEn:=0; _200_Axis.D4PosSaveEn:=0; END_IF //--.02 Boat //Boat使能 _200_Axis.BoatControl.RobotToAxisEnable:=_200_Axis.HMINo=191; //Boat JOG+ _200_Axis.BoatControl.TPToAxisJogBackwards:=_200_Axis.BoatJogUPEn AND _200_Axis.Run1; //Boat JOG- _200_Axis.BoatControl.TPToAxisJogForward:=_200_Axis.BoatJogDownEn AND _200_Axis.Run1; //Boat JOG速度 _200_Axis.BoatData.Vel[31]:=_200_Axis.BoatJogVel; //Boat 相对定位 _200_Axis.BoatControl.RobotToCmdMoveRelative:=_200_Axis.BoatMoveRelEn AND _200_Axis.Run1; //Boat 绝对定位 _200_Axis.BoatControl.RobotToCmdMoveAbsolute:=_200_Axis.BoatMovAbsEn AND _200_Axis.Run1; //原点回归 _200_Axis.BoatControl.RobotToCmdHome:=_200_Axis.BoatHomeEn AND _200_Axis.Run1; //HOME保存 IF _200_Axis.BoatHomePosEN THEN _200_Axis.BoatHomePos:=_200_Axis.BoatTPInputPos; _200_Axis.BoatData.Pos[1]:=_200_Axis.BoatHomePos; ELSE _200_Axis.BoatHomePos:=_200_Axis.BoatData.Pos[1]; END_IF //MID保存 IF _200_Axis.BoatMidPosEN THEN _200_Axis.BoatMidPos:=_200_Axis.BoatTPInputPos; _200_Axis.BoatData.Pos[2]:=_200_Axis.BoatMidPos; ELSE _200_Axis.BoatMidPos:=_200_Axis.BoatData.Pos[2]; END_IF //CAP保存 IF _200_Axis.BoatCapsPosEN THEN _200_Axis.BoatCapsPos:=_200_Axis.BoatTPInputPos; _200_Axis.BoatData.Pos[3]:=_200_Axis.BoatCapsPos; ELSE _200_Axis.BoatCapsPos:=_200_Axis.BoatData.Pos[3]; END_IF //hmoe在位 //mid在位 //CAP在位 //点动速度限制 IF _200_Axis.BoatJogVel >10.0 THEN _200_Axis.BoatJogVel:=1; ELSIF _200_Axis.BoatJogVel <0.0 THEN _200_Axis.BoatJogVel:=1; END_IF //位置显示 _200_Axis.BoatActPos:=_200_Axis.BoatAxisState.Pos; //速度显示 _200_Axis.BoatActVel:=_200_Axis.BoatAxisState.vel; //转矩显示 _200_Axis.TPBoatActTorque:=_200_Axis.BoatActTorque; //使能显示 _200_Axis.BoatServoOn:=_200_Axis.BoatAxisState.Enabled; //运动中 _200_Axis.BoatServoMoving:=_200_Axis.BoatAxisState.Busy; //异常显示 _200_Axis.BoatServoAlarm:=_200_Axis.BoatAxisState.Error; //正极限显示 //负极限显示 //异常ID _200_Axis.BoatServoCode:=_200_Axis.BoatAxisState.ErrorID; //按钮互锁 IF _200_Axis.HMINo=191 THEN IF _200_Axis.BoatHomeEn THEN _200_Axis.BoatJogUPEn:=0; _200_Axis.BoatJogDownEn:=0; _200_Axis.BoatMovAbsEn:=0; _200_Axis.BoatMoveRelEn:=0; _200_Axis.BoatPosSoftLimitSaveEN:=0; _200_Axis.BoatNegSoftLimitSaveEN:=0; _200_Axis.BoatCapsPosEN:=0; _200_Axis.BoatMidPosEN:=0; _200_Axis.BoatHomePosEN:=0; _200_Axis.BoatPosSoftLimitEN:=0; _200_Axis.BoatNegSoftLimitEN:=0; END_IF IF _200_Axis.BoatJogUPEn THEN _200_Axis.BoatHomeEn:=0; _200_Axis.BoatJogDownEn:=0; _200_Axis.BoatMovAbsEn:=0; _200_Axis.BoatMoveRelEn:=0; _200_Axis.BoatPosSoftLimitSaveEN:=0; _200_Axis.BoatNegSoftLimitSaveEN:=0; _200_Axis.BoatCapsPosEN:=0; _200_Axis.BoatMidPosEN:=0; _200_Axis.BoatHomePosEN:=0; _200_Axis.BoatPosSoftLimitEN:=0; _200_Axis.BoatNegSoftLimitEN:=0; END_IF IF _200_Axis.BoatJogDownEn THEN _200_Axis.BoatHomeEn:=0; _200_Axis.BoatJogUPEn:=0; _200_Axis.BoatMovAbsEn:=0; _200_Axis.BoatMoveRelEn:=0; _200_Axis.BoatPosSoftLimitSaveEN:=0; _200_Axis.BoatNegSoftLimitSaveEN:=0; _200_Axis.BoatCapsPosEN:=0; _200_Axis.BoatMidPosEN:=0; _200_Axis.BoatHomePosEN:=0; _200_Axis.BoatPosSoftLimitEN:=0; _200_Axis.BoatNegSoftLimitEN:=0; END_IF IF _200_Axis.BoatMovAbsEn THEN _200_Axis.BoatHomeEn:=0; _200_Axis.BoatJogUPEn:=0; _200_Axis.BoatJogDownEn:=0; _200_Axis.BoatMoveRelEn:=0; _200_Axis.BoatPosSoftLimitSaveEN:=0; _200_Axis.BoatNegSoftLimitSaveEN:=0; _200_Axis.BoatCapsPosEN:=0; _200_Axis.BoatMidPosEN:=0; _200_Axis.BoatHomePosEN:=0; _200_Axis.BoatPosSoftLimitEN:=0; _200_Axis.BoatNegSoftLimitEN:=0; END_IF IF _200_Axis.BoatMoveRelEn THEN _200_Axis.BoatHomeEn:=0; _200_Axis.BoatJogUPEn:=0; _200_Axis.BoatJogDownEn:=0; _200_Axis.BoatMovAbsEn:=0; _200_Axis.BoatPosSoftLimitSaveEN:=0; _200_Axis.BoatNegSoftLimitSaveEN:=0; _200_Axis.BoatCapsPosEN:=0; _200_Axis.BoatMidPosEN:=0; _200_Axis.BoatHomePosEN:=0; _200_Axis.BoatPosSoftLimitEN:=0; _200_Axis.BoatNegSoftLimitEN:=0; END_IF IF _200_Axis.BoatPosSoftLimitSaveEN THEN _200_Axis.BoatHomeEn:=0; _200_Axis.BoatJogUPEn:=0; _200_Axis.BoatJogDownEn:=0; _200_Axis.BoatMovAbsEn:=0; _200_Axis.BoatMoveRelEn:=0; _200_Axis.BoatNegSoftLimitSaveEN:=0; _200_Axis.BoatCapsPosEN:=0; _200_Axis.BoatMidPosEN:=0; _200_Axis.BoatHomePosEN:=0; _200_Axis.BoatPosSoftLimitEN:=0; _200_Axis.BoatNegSoftLimitEN:=0; END_IF IF _200_Axis.BoatNegSoftLimitSaveEN THEN _200_Axis.BoatHomeEn:=0; _200_Axis.BoatJogUPEn:=0; _200_Axis.BoatJogDownEn:=0; _200_Axis.BoatMovAbsEn:=0; _200_Axis.BoatMoveRelEn:=0; _200_Axis.BoatPosSoftLimitSaveEN:=0; _200_Axis.BoatCapsPosEN:=0; _200_Axis.BoatMidPosEN:=0; _200_Axis.BoatHomePosEN:=0; _200_Axis.BoatPosSoftLimitEN:=0; _200_Axis.BoatNegSoftLimitEN:=0; END_IF IF _200_Axis.BoatCapsPosEN THEN _200_Axis.BoatHomeEn:=0; _200_Axis.BoatJogUPEn:=0; _200_Axis.BoatJogDownEn:=0; _200_Axis.BoatMovAbsEn:=0; _200_Axis.BoatMoveRelEn:=0; _200_Axis.BoatPosSoftLimitSaveEN:=0; _200_Axis.BoatNegSoftLimitSaveEN:=0; _200_Axis.BoatMidPosEN:=0; _200_Axis.BoatHomePosEN:=0; _200_Axis.BoatPosSoftLimitEN:=0; _200_Axis.BoatNegSoftLimitEN:=0; END_IF IF _200_Axis.BoatMidPosEN THEN _200_Axis.BoatHomeEn:=0; _200_Axis.BoatJogUPEn:=0; _200_Axis.BoatJogDownEn:=0; _200_Axis.BoatMovAbsEn:=0; _200_Axis.BoatMoveRelEn:=0; _200_Axis.BoatPosSoftLimitSaveEN:=0; _200_Axis.BoatNegSoftLimitSaveEN:=0; _200_Axis.BoatCapsPosEN:=0; _200_Axis.BoatHomePosEN:=0; _200_Axis.BoatPosSoftLimitEN:=0; _200_Axis.BoatNegSoftLimitEN:=0; END_IF IF _200_Axis.BoatHomePosEN THEN _200_Axis.BoatHomeEn:=0; _200_Axis.BoatJogUPEn:=0; _200_Axis.BoatJogDownEn:=0; _200_Axis.BoatMovAbsEn:=0; _200_Axis.BoatMoveRelEn:=0; _200_Axis.BoatPosSoftLimitSaveEN:=0; _200_Axis.BoatNegSoftLimitSaveEN:=0; _200_Axis.BoatCapsPosEN:=0; _200_Axis.BoatMidPosEN:=0; _200_Axis.BoatPosSoftLimitEN:=0; _200_Axis.BoatNegSoftLimitEN:=0; END_IF IF _200_Axis.BoatPosSoftLimitEN THEN _200_Axis.BoatHomeEn:=0; _200_Axis.BoatJogUPEn:=0; _200_Axis.BoatJogDownEn:=0; _200_Axis.BoatMovAbsEn:=0; _200_Axis.BoatMoveRelEn:=0; _200_Axis.BoatPosSoftLimitSaveEN:=0; _200_Axis.BoatNegSoftLimitSaveEN:=0; _200_Axis.BoatCapsPosEN:=0; _200_Axis.BoatMidPosEN:=0; _200_Axis.BoatHomePosEN:=0; _200_Axis.BoatNegSoftLimitEN:=0; END_IF IF _200_Axis.BoatNegSoftLimitEN THEN _200_Axis.BoatHomeEn:=0; _200_Axis.BoatJogUPEn:=0; _200_Axis.BoatJogDownEn:=0; _200_Axis.BoatMovAbsEn:=0; _200_Axis.BoatMoveRelEn:=0; _200_Axis.BoatPosSoftLimitSaveEN:=0; _200_Axis.BoatNegSoftLimitSaveEN:=0; _200_Axis.BoatCapsPosEN:=0; _200_Axis.BoatMidPosEN:=0; _200_Axis.BoatHomePosEN:=0; _200_Axis.BoatPosSoftLimitEN:=0; END_IF ELSE _200_Axis.BoatHomeEn:=0; _200_Axis.BoatJogUPEn:=0; _200_Axis.BoatJogDownEn:=0; _200_Axis.BoatMovAbsEn:=0; _200_Axis.BoatMoveRelEn:=0; _200_Axis.BoatPosSoftLimitSaveEN:=0; _200_Axis.BoatNegSoftLimitSaveEN:=0; _200_Axis.BoatCapsPosEN:=0; _200_Axis.BoatMidPosEN:=0; _200_Axis.BoatHomePosEN:=0; _200_Axis.BoatPosSoftLimitEN:=0; _200_Axis.BoatNegSoftLimitEN:=0; END_IF //--.03 Cap //Cap 使能 _200_Axis.CapControl.RobotToAxisEnable:=_200_Axis.HMINo=191; //Cap JOG+ _200_Axis.CapControl.TPToAxisJogForward:=_200_Axis.CapsJogFEn AND _200_Axis.Run1; //Cap JOG- _200_Axis.CapControl.TPToAxisJogBackwards:=_200_Axis.CapsJogBEn AND _200_Axis.Run1; //Cap JOG速度 _200_Axis.CapData.Vel[31]:=_200_Axis.CapsJogVel; //原点传感器 _200_Axis.CapControl.HomeSW:=NOT LAI.I503_01; //原点回归 _200_Axis.CapControl.RobotToCmdHome:=_200_Axis.CapsHomeEn AND _200_Axis.Run1; //原点在位判断 //位置显示 _200_Axis.CapsActPos:=_200_Axis.CapAxisState.Pos; //速度显示 _200_Axis.CapsActPos:=_200_Axis.CapAxisState.vel; //使能显示 _200_Axis.CapsServoOnOK:=_200_Axis.CapAxisState.Enabled; //运动中 _200_Axis.CapsServoMoving:=_200_Axis.CapAxisState.Busy; //异常显示 _200_Axis.CapsServoAlarm:=_200_Axis.CapAxisState.Error; //正极限显示 //负极限显示 //异常ID _200_Axis.CapsServoCode:=_200_Axis.CapAxisState.ErrorID; //按钮互锁 IF _200_Axis.HMINo=190 THEN IF _200_Axis.CapsHomeEn THEN _200_Axis.CapsJogFEn:=0; _200_Axis.CapsJogBEn:=0; _200_Axis.CapsServoOn:=0; END_IF IF _200_Axis.CapsJogFEn THEN _200_Axis.CapsHomeEn:=0; _200_Axis.CapsJogBEn:=0; _200_Axis.CapsServoOn:=0; END_IF IF _200_Axis.CapsJogBEn THEN _200_Axis.CapsHomeEn:=0; _200_Axis.CapsJogFEn:=0; _200_Axis.CapsServoOn:=0; END_IF IF _200_Axis.CapsServoOn THEN _200_Axis.CapsHomeEn:=0; _200_Axis.CapsJogFEn:=0; _200_Axis.CapsJogBEn:=0; END_IF ELSE _200_Axis.CapsHomeEn:=0; _200_Axis.CapsJogFEn:=0; _200_Axis.CapsJogBEn:=0; _200_Axis.CapsServoOn:=0; END_IF //点动速度限制 IF _200_Axis.CapsJogVel >50.0 THEN _200_Axis.CapsJogVel:=1; ELSIF _200_Axis.CapsJogVel <0.0 THEN _200_Axis.CapsJogVel:=1; END_IF //02.Axis 基础参数设置(PC MODE) //03.Axis Error(轴异常报警) ]]>