Add test program for implementing slit set, add hardware for testing slit set implementation. Update solution to point at new tc_mca_Std_lib files

This commit is contained in:
SCooper
2021-07-27 09:22:14 +01:00
parent 4827ed4235
commit 6a79f654f1
6 changed files with 300 additions and 25 deletions
+195 -13
View File
@@ -1360,16 +1360,16 @@ External Setpoint Generation:
<Axis Id="1" CreateSymbols="true" AxisType="1">
<Name>bladeNeg</Name>
<AxisPara>
<Dynamic AccelerationMaximum="500" DecelerationMaximum="500" Acceleration="100" Deceleration="100" Jerk="500" OverrideType="4"/>
<Dynamic AccelerationMaximum="5000" DecelerationMaximum="5000" Acceleration="2000" Deceleration="2000" Jerk="4000" OverrideType="4"/>
<Velo RefSearch="2" RefSync="2" SlowManual="2.5" FastManual="5" Maximum="100"/>
<PositionAreaControl Range="0.05"/>
<TargetPosControl Range="0.05" Time="0.5"/>
<TargetPosControl Range="0.05" Time="1"/>
<OtherSettings AllowMotionCmdToSlave="true" PulseDistancePos="1" PulseDistanceNeg="1"/>
</AxisPara>
<Encoder Name="Enc" EncType="5">
<EncPara ScaleFactorNumerator="60" ScaleFactorDenominator="4096" Offset="245686.8164" Inverse="true" ReferenceSystem="1">
<FilterTime TPos="0.02" TVelo="0.04"/>
<ActPosCorrection Time="0.02"/>
<EncPara ScaleFactorNumerator="60" ScaleFactorDenominator="4096" Offset="491416.844806819" Inverse="true" MaxCount="#x01ffffff" ReferenceSystem="1">
<FilterTime TPos="0.04" TVelo="0.16" TAcc="0.5"/>
<ActPosCorrection Enable="true" Time="0.02"/>
</EncPara>
<Vars VarGrpType="1">
<Name>Inputs</Name>
@@ -1503,10 +1503,10 @@ External Setpoint Generation:
</Var>
</Vars>
</Drive>
<Controller Name="Ctrl" CtrType="3">
<Controller Name="Ctrl" CtrType="1">
<CtrPara PriorControlFactor="1">
<PosDiffControl Enable="false" Range="0.5" Time="0.5"/>
<PID PosKp="10" PosTn="1" PosTv="1" PosTd="1" DeadBandPosition="0.1"/>
<PID PosKp="2" PosTn="1" PosTv="1" PosTd="1" DeadBandPosition="0.1"/>
<Observer BandWidth="20"/>
</CtrPara>
</Controller>
@@ -1528,14 +1528,17 @@ External Setpoint Generation:
<Axis Id="2" CreateSymbols="true" AxisType="1">
<Name>bladePos</Name>
<AxisPara>
<Dynamic AccelerationMaximum="500" DecelerationMaximum="500" Acceleration="384" Deceleration="384" Jerk="1602.78"/>
<Dynamic AccelerationMaximum="5000" DecelerationMaximum="5000" Acceleration="2000" Deceleration="2000" Jerk="4000"/>
<Velo RefSearch="2" RefSync="2" SlowManual="2.5" FastManual="5" Maximum="100"/>
<PositionAreaControl Range="0.2"/>
<TargetPosControl Range="0.2" Time="0.5"/>
<TargetPosControl Range="0.2" Time="1"/>
<OtherSettings AllowMotionCmdToSlave="true" PulseDistancePos="1" PulseDistanceNeg="1"/>
</AxisPara>
<Encoder Name="Enc" EncType="5">
<EncPara ScaleFactorNumerator="60" ScaleFactorDenominator="4096" Offset="-245743.330078125" ReferenceSystem="1"/>
<EncPara ScaleFactorNumerator="60" ScaleFactorDenominator="4096" Offset="-491450.023514721" MaxCount="#x01ffffff" ReferenceSystem="1">
<FilterTime TPos="0.04" TVelo="0.16" TAcc="0.5"/>
<ActPosCorrection Enable="true" Time="0.02"/>
</EncPara>
<Vars VarGrpType="1">
<Name>Inputs</Name>
<Var>
@@ -1671,7 +1674,7 @@ External Setpoint Generation:
<Controller Name="Ctrl" CtrType="1">
<CtrPara PriorControlFactor="1">
<PosDiffControl Range="0.5" Time="0.5"/>
<PID PosKp="10"/>
<PID PosKp="2"/>
<Observer BandWidth="20"/>
</CtrPara>
</Controller>
@@ -1695,9 +1698,16 @@ External Setpoint Generation:
<Axis Id="3" CreateSymbols="true" AxisType="1">
<Name>gapSize</Name>
<AxisPara>
<Velo SlowManual="15" FastManual="30"/>
<PositionAreaControl Range="0.1"/>
<TargetPosControl Range="0.05" Time="0.2"/>
<OtherSettings AllowMotionCmdToSlave="true"/>
</AxisPara>
<Encoder Name="Enc" EncType="1">
<Encoder Name="Enc" EncType="16">
<EncPara ScaleFactorNumerator="1" ScaleFactorDenominator="10000" MaxCount="#x0000ffff">
<FilterTime TPos="0.04" TVelo="0.16" TAcc="0.5"/>
<ActPosCorrection Time="0.2"/>
</EncPara>
<Vars VarGrpType="1">
<Name>Inputs</Name>
<Var>
@@ -1759,6 +1769,7 @@ External Setpoint Generation:
<Drive Name="Drive" DrvType="5">
<DrvPara>
<Analog TorqueSetpointScale="10" ScaleFactorActTorque="0.1"/>
<TimeComp TaskDelayCycles="1"/>
</DrvPara>
<Vars VarGrpType="1">
<Name>Inputs</Name>
@@ -1831,6 +1842,8 @@ External Setpoint Generation:
</Drive>
<Controller Name="Ctrl" CtrType="1">
<CtrPara PriorControlFactor="1">
<PosDiffControl Enable="false"/>
<PID PosKp="10"/>
<Observer BandWidth="20"/>
</CtrPara>
</Controller>
@@ -1854,9 +1867,16 @@ External Setpoint Generation:
<Axis Id="4" CreateSymbols="true" AxisType="1">
<Name>gapCentre</Name>
<AxisPara>
<Velo SlowManual="10" FastManual="15"/>
<PositionAreaControl Range="0.1"/>
<TargetPosControl Range="0.05" Time="0.2"/>
<OtherSettings AllowMotionCmdToSlave="true"/>
</AxisPara>
<Encoder Name="Enc" EncType="1">
<Encoder Name="Enc" EncType="16">
<EncPara ScaleFactorNumerator="1" ScaleFactorDenominator="10000" MaxCount="#x0000ffff">
<FilterTime TPos="0.04" TVelo="0.16" TAcc="0.5"/>
<ActPosCorrection Time="0.2"/>
</EncPara>
<Vars VarGrpType="1">
<Name>Inputs</Name>
<Var>
@@ -1918,6 +1938,7 @@ External Setpoint Generation:
<Drive Name="Drive" DrvType="5">
<DrvPara>
<Analog TorqueSetpointScale="10" ScaleFactorActTorque="0.1"/>
<TimeComp TaskDelayCycles="1"/>
</DrvPara>
<Vars VarGrpType="1">
<Name>Inputs</Name>
@@ -1990,6 +2011,8 @@ External Setpoint Generation:
</Drive>
<Controller Name="Ctrl" CtrType="1">
<CtrPara PriorControlFactor="1">
<PosDiffControl Enable="false"/>
<PID PosKp="10"/>
<Observer BandWidth="20"/>
</CtrPara>
</Controller>
@@ -2010,6 +2033,165 @@ External Setpoint Generation:
</Var>
</Vars>
</Axis>
<Axis Id="5" CreateSymbols="true" AxisType="1">
<Name>Axis 5</Name>
<AxisPara>
<OtherSettings AllowMotionCmdToSlave="true"/>
</AxisPara>
<Encoder Name="Enc" EncType="1">
<Vars VarGrpType="1">
<Name>Inputs</Name>
<Var>
<Name>In</Name>
<Type GUID="{901C2423-655B-45CE-B7E3-21F174F0F99F}" Namespace="MC">NCENCODERSTRUCT_IN2B</Type>
<BitOffs>7680</BitOffs>
<SubVar TypeFormatIndex="2">
<Name>nDataIn1</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataIn2</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataIn3</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataIn4</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataIn5</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataIn6</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataIn7</Name>
<Comment><![CDATA[Drive Velocity Actual Value
]]></Comment>
</SubVar>
</Var>
</Vars>
<Vars VarGrpType="2">
<Name>Outputs</Name>
<Var>
<Name>Out</Name>
<Type GUID="{9CC50AB2-5D79-4869-A3C2-1FA7761BAFEA}" Namespace="MC">NCENCODERSTRUCT_OUT2</Type>
<BitOffs>12800</BitOffs>
<SubVar TypeFormatIndex="2">
<Name>nDataOut1</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataOut2</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataOut3</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataOut4</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataOut5</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataOut6</Name>
</SubVar>
</Var>
</Vars>
</Encoder>
<Drive Name="Drive" DrvType="5">
<DrvPara>
<Analog TorqueSetpointScale="10" ScaleFactorActTorque="0.1"/>
</DrvPara>
<Vars VarGrpType="1">
<Name>Inputs</Name>
<Var>
<Name>In</Name>
<Type GUID="{F95C7C69-0C87-46C4-9559-1285CCA5B23A}" Namespace="MC">NCDRIVESTRUCT_IN2</Type>
<BitOffs>8000</BitOffs>
<SubVar TypeFormatIndex="2">
<Name>nDataIn1</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataIn2</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataIn3</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataIn4</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataIn5</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataIn6</Name>
</SubVar>
</Var>
</Vars>
<Vars VarGrpType="2">
<Name>Outputs</Name>
<Var>
<Name>Out</Name>
<Type GUID="{644DC4BD-3D15-4DCB-94C7-24F3A5D579AA}" Namespace="MC">NCDRIVESTRUCT_OUT2</Type>
<BitOffs>13120</BitOffs>
<SubVar TypeFormatIndex="2">
<Name>nDataOut1</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataOut2</Name>
</SubVar>
<SubVar>
<Name>nCtrl2</Name>
<Comment><![CDATA[Digital Outputs Setpoint Generator:
0x41 (0100 0001) = Minus (0x42 for inverse motor polarity)
0x42 (0100 0010) = Plus (0x41 for inverse motor polarity)
0x80 (1000 0000) = Stop
]]></Comment>
</SubVar>
<SubVar>
<Name>nCtrl3</Name>
<Comment><![CDATA[Digital Outputs (Setpoint Generator + Position Controller):
0x41 (0100 0001) = Minus (0x42 for inverse motor polarity)
0x42 (0100 0010) = Plus (0x41 for inverse motor polarity)
0x80 (1000 0000) = Stop
]]></Comment>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataOut3</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataOut4</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataOut5</Name>
</SubVar>
<SubVar TypeFormatIndex="2">
<Name>nDataOut6</Name>
</SubVar>
</Var>
</Vars>
</Drive>
<Controller Name="Ctrl" CtrType="1">
<CtrPara PriorControlFactor="1">
<Observer BandWidth="20"/>
</CtrPara>
</Controller>
<Vars VarGrpType="1" InsertType="1">
<Name>Inputs</Name>
<Var>
<Name>FromPlc</Name>
<Type GUID="{63A84524-72E3-41C8-BEAB-4CCE44690A13}" Namespace="MC">PLCTONC_AXIS_REF</Type>
<BitOffs>6656</BitOffs>
</Var>
</Vars>
<Vars VarGrpType="2" InsertType="1">
<Name>Outputs</Name>
<Var>
<Name>ToPlc</Name>
<Type GUID="{72F5AAAA-16DF-4ED3-8367-F6C8C3ADAE99}" Namespace="MC">NCTOPLC_AXIS_REF</Type>
<BitOffs>10752</BitOffs>
</Var>
</Vars>
</Axis>
</NC>
<Mappings>
<OwnerA Name="Axes^bladeNeg">
+38
View File
@@ -905,6 +905,10 @@ External Setpoint Generation:
<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
<Vars VarGrpType="1">
<Name>PlcTask Inputs</Name>
<Var>
<Name>MAIN.axisBladeNeg.NcToPlc</Name>
<Type GUID="{72F5AAAA-16DF-4ED3-8367-F6C8C3ADAE99}" Namespace="MC">NCTOPLC_AXIS_REF</Type>
</Var>
<Var>
<Name>GVL.astAxes[1].stInputs.bLimitFwd</Name>
<Type>BOOL</Type>
@@ -973,6 +977,14 @@ External Setpoint Generation:
<Name>GVL.astAxes[4].Axis.NcToPlc</Name>
<Type GUID="{72F5AAAA-16DF-4ED3-8367-F6C8C3ADAE99}" Namespace="MC">NCTOPLC_AXIS_REF</Type>
</Var>
<Var>
<Name>MAIN.axisBladePos.NcToPlc</Name>
<Type GUID="{72F5AAAA-16DF-4ED3-8367-F6C8C3ADAE99}" Namespace="MC">NCTOPLC_AXIS_REF</Type>
</Var>
<Var>
<Name>MAIN.axisGap.NcToPlc</Name>
<Type GUID="{72F5AAAA-16DF-4ED3-8367-F6C8C3ADAE99}" Namespace="MC">NCTOPLC_AXIS_REF</Type>
</Var>
</Vars>
<Vars VarGrpType="2" AreaNo="1">
<Name>PlcTask Outputs</Name>
@@ -997,6 +1009,10 @@ External Setpoint Generation:
<Name>limitsPower.bEnableAxis2Enc</Name>
<Type>BOOL</Type>
</Var>
<Var>
<Name>MAIN.axisBladeNeg.PlcToNc</Name>
<Type GUID="{63A84524-72E3-41C8-BEAB-4CCE44690A13}" Namespace="MC">PLCTONC_AXIS_REF</Type>
</Var>
<Var>
<Name>GVL.astAxes[1].Axis.PlcToNc</Name>
<Type GUID="{63A84524-72E3-41C8-BEAB-4CCE44690A13}" Namespace="MC">PLCTONC_AXIS_REF</Type>
@@ -1013,6 +1029,22 @@ External Setpoint Generation:
<Name>GVL.astAxes[4].Axis.PlcToNc</Name>
<Type GUID="{63A84524-72E3-41C8-BEAB-4CCE44690A13}" Namespace="MC">PLCTONC_AXIS_REF</Type>
</Var>
<Var>
<Name>testProg.myFirstSlits.iGapSizePosition</Name>
<Type>UDINT</Type>
</Var>
<Var>
<Name>testProg.myFirstSlits.iGapCentrePosition</Name>
<Type>UDINT</Type>
</Var>
<Var>
<Name>MAIN.axisBladePos.PlcToNc</Name>
<Type GUID="{63A84524-72E3-41C8-BEAB-4CCE44690A13}" Namespace="MC">PLCTONC_AXIS_REF</Type>
</Var>
<Var>
<Name>MAIN.axisGap.PlcToNc</Name>
<Type GUID="{63A84524-72E3-41C8-BEAB-4CCE44690A13}" Namespace="MC">PLCTONC_AXIS_REF</Type>
</Var>
</Vars>
<Contexts>
<Context>
@@ -1048,6 +1080,10 @@ External Setpoint Generation:
<Link VarA="PlcTask Outputs^limitsPower.bEnableAxis1Enc" VarB="DIG Outputs^Channel 1^Output" Size="1"/>
<Link VarA="PlcTask Outputs^limitsPower.bEnableAxis2Enc" VarB="DIG Outputs^Channel 2^Output" Size="1"/>
</OwnerB>
<OwnerB Name="TINC^NC-Task 1 SAF^Axes^Axis 5">
<Link VarA="PlcTask Inputs^MAIN.axisGap.NcToPlc" VarB="Outputs^ToPlc"/>
<Link VarA="PlcTask Outputs^MAIN.axisGap.PlcToNc" VarB="Inputs^FromPlc"/>
</OwnerB>
<OwnerB Name="TINC^NC-Task 1 SAF^Axes^bladeNeg">
<Link VarA="PlcTask Inputs^GVL.astAxes[1].Axis.NcToPlc" VarB="Outputs^ToPlc"/>
<Link VarA="PlcTask Outputs^GVL.astAxes[1].Axis.PlcToNc" VarB="Inputs^FromPlc"/>
@@ -1059,10 +1095,12 @@ External Setpoint Generation:
<OwnerB Name="TINC^NC-Task 1 SAF^Axes^gapCentre">
<Link VarA="PlcTask Inputs^GVL.astAxes[4].Axis.NcToPlc" VarB="Outputs^ToPlc"/>
<Link VarA="PlcTask Outputs^GVL.astAxes[4].Axis.PlcToNc" VarB="Inputs^FromPlc"/>
<Link VarA="PlcTask Outputs^testProg.myFirstSlits.iGapCentrePosition" VarB="Enc^Inputs^In^nDataIn1"/>
</OwnerB>
<OwnerB Name="TINC^NC-Task 1 SAF^Axes^gapSize">
<Link VarA="PlcTask Inputs^GVL.astAxes[3].Axis.NcToPlc" VarB="Outputs^ToPlc"/>
<Link VarA="PlcTask Outputs^GVL.astAxes[3].Axis.PlcToNc" VarB="Inputs^FromPlc"/>
<Link VarA="PlcTask Outputs^testProg.myFirstSlits.iGapSizePosition" VarB="Enc^Inputs^In^nDataIn1"/>
</OwnerB>
</OwnerA>
</Mappings>
+6 -6
View File
@@ -11,7 +11,7 @@
</ArrayInfo>
</DataType>
<DataType>
<Name GUID="{18071995-0000-0000-0000-002000000009}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..8] OF BIT</Name>
<Name GUID="{18071995-0000-0000-0000-002000000009}" IecBaseType="true" BitType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..8] OF BIT</Name>
<BitSize>9</BitSize>
<BaseType GUID="{18071995-0000-0000-0000-000000000010}">BIT</BaseType>
<ArrayInfo>
@@ -20,7 +20,7 @@
</ArrayInfo>
</DataType>
<DataType>
<Name GUID="{18071995-0000-0000-0000-002000000001}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..0] OF BIT</Name>
<Name GUID="{18071995-0000-0000-0000-002000000001}" IecBaseType="true" BitType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..0] OF BIT</Name>
<BitSize>1</BitSize>
<BaseType GUID="{18071995-0000-0000-0000-000000000010}">BIT</BaseType>
<ArrayInfo>
@@ -29,7 +29,7 @@
</ArrayInfo>
</DataType>
<DataType>
<Name GUID="{18071995-0000-0000-0000-002000000003}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..2] OF BIT</Name>
<Name GUID="{18071995-0000-0000-0000-002000000003}" IecBaseType="true" BitType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..2] OF BIT</Name>
<BitSize>3</BitSize>
<BaseType GUID="{18071995-0000-0000-0000-000000000010}">BIT</BaseType>
<ArrayInfo>
@@ -47,7 +47,7 @@
</ArrayInfo>
</DataType>
<DataType>
<Name GUID="{18071995-0000-0000-0000-002000000005}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..4] OF BIT</Name>
<Name GUID="{18071995-0000-0000-0000-002000000005}" IecBaseType="true" BitType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..4] OF BIT</Name>
<BitSize>5</BitSize>
<BaseType GUID="{18071995-0000-0000-0000-000000000010}">BIT</BaseType>
<ArrayInfo>
@@ -56,7 +56,7 @@
</ArrayInfo>
</DataType>
<DataType>
<Name GUID="{18071995-0000-0000-0000-002000000006}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..5] OF BIT</Name>
<Name GUID="{18071995-0000-0000-0000-002000000006}" IecBaseType="true" BitType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..5] OF BIT</Name>
<BitSize>6</BitSize>
<BaseType GUID="{18071995-0000-0000-0000-000000000010}">BIT</BaseType>
<ArrayInfo>
@@ -65,7 +65,7 @@
</ArrayInfo>
</DataType>
<DataType>
<Name GUID="{18071995-0000-0000-0000-002000000002}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..1] OF BIT</Name>
<Name GUID="{18071995-0000-0000-0000-002000000002}" IecBaseType="true" BitType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..1] OF BIT</Name>
<BitSize>2</BitSize>
<BaseType GUID="{18071995-0000-0000-0000-000000000010}">BIT</BaseType>
<ArrayInfo>
@@ -8,11 +8,12 @@ END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[GVL.astAxes[1].stConfig.eHomeSeq:=E_HomingRoutines.eHomeToRef_Bwd;
GVL.astAxes[1].stConfig.fHomePosition:=30;
GVL.astAxes[1].stConfig.fHomePosition:=-30;
GVL.astAxes[2].stConfig.eHomeSeq:=E_HomingRoutines.eHomeToRef_Fwd;
GVL.astAxes[2].stConfig.fHomePosition:=-30;
GVL.astAxes[2].stConfig.fHomePosition:=30;
myFirstSlits(iBladeNegative:=2,iBladePositive:=1, iGapSize:=3, iGapCentre:=4);]]></ST>
myFirstSlits(iBladeNegative:=1,iBladePositive:=2, iGapSize:=3, iGapCentre:=4);
]]></ST>
</Implementation>
<LineIds Name="testProg">
<LineId Id="10" Count="0" />
@@ -20,6 +21,7 @@ myFirstSlits(iBladeNegative:=2,iBladePositive:=1, iGapSize:=3, iGapCentre:=4);]]
<LineId Id="11" Count="0" />
<LineId Id="13" Count="1" />
<LineId Id="5" Count="0" />
<LineId Id="30" Count="0" />
</LineIds>
</POU>
</TcPlcObject>
+55 -2
View File
@@ -32,11 +32,48 @@ END_VAR
VAR PERSISTENT
bRestoreOnStartup: BOOL;
END_VAR
VAR
//all for testing
axisBladeNeg : AXIS_REF;
axisBladePos : AXIS_REF;
axisGap : AXIS_REF;
powerBladeNeg : MC_POWER;
powerBladePos : MC_POWER;
powerAxisGap : MC_POWER;
mcGearIn : MC_GEARIN;
mcGearInMulti : MC_GEARINMULTIMASTER;
mcGearOut : MC_GEAROUT;
mcMoveAbs : MC_MOVEABSOLUTE;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[POSITION_RECOVERY();
<ST><![CDATA[//POSITION_RECOVERY();
AXES();
PROG();]]></ST>
PROG();
powerBladeNeg.Enable_Negative := GVL.astAxes[1].stInputs.bLimitBwd;
powerBladeNeg.Enable_Positive := GVL.astAxes[1].stInputs.bLimitFwd;
powerBladePos.Enable_Negative := GVL.astAxes[2].stInputs.bLimitBwd;
powerBladePos.Enable_Positive := GVL.astAxes[2].stInputs.bLimitFwd;
powerAxisGap.Enable_Negative:= TRUE;
powerAxisGap.Enable_Positive:= TRUE;
powerBladeNeg(Axis:=axisBladeNeg);
powerBladePos(Axis:=axisBladePos);
powerAxisGap(Axis:=axisGap);
mcGearIn(Slave:= axisBladeNeg, Master:=axisBladePos);
mcGearInMulti(Master1:=axisBladePos,Master2:=axisGap,Slave:=axisBladeNeg);
mcGearOut(Slave:=axisBladeNeg);
mcMoveAbs(Axis:=axisBladeNeg);
]]></ST>
</Implementation>
<Folder Name="POSITION_RECOVERY" Id="{3561f6ef-e145-4ed3-9839-f17334bd2d97}" />
<Action Name="AXES" Id="{7eb32732-9b53-4934-8cd9-20ba971dd8ff}">
@@ -211,6 +248,22 @@ END_FOR]]></ST>
<LineId Id="505" Count="0" />
<LineId Id="81" Count="0" />
<LineId Id="538" Count="0" />
<LineId Id="594" Count="0" />
<LineId Id="592" Count="1" />
<LineId Id="597" Count="0" />
<LineId Id="595" Count="1" />
<LineId Id="609" Count="0" />
<LineId Id="577" Count="0" />
<LineId Id="576" Count="0" />
<LineId Id="588" Count="0" />
<LineId Id="610" Count="0" />
<LineId Id="589" Count="0" />
<LineId Id="608" Count="0" />
<LineId Id="607" Count="0" />
<LineId Id="591" Count="0" />
<LineId Id="602" Count="0" />
<LineId Id="601" Count="0" />
<LineId Id="590" Count="0" />
</LineIds>
<LineIds Name="MAIN.AXES">
<LineId Id="11" Count="1" />