First bigger step to automation

- Aligned X and Y NC Axis with aligner camera coordination system
- Added robot plc jobs and feedback
- Began Meca500 robot interface
- Changed hotplate control to slow PWM
- PackML statemachine now starts in aborted state
- Fixed StateML start method
This commit is contained in:
2026-02-04 19:31:13 +01:00
parent 677c03d51d
commit c1850f780b
29 changed files with 1249 additions and 374 deletions

View File

@@ -26305,42 +26305,42 @@ Bit 8 - 15 : reserved]]></Comment>
<SyncMan>001001000000010004000000010001000100001000010000</SyncMan>
<Fmmu>0000000000000000001000010100000002000000000000000000000000000000</Fmmu>
<Pdo Name="Channel 1" Index="#x1a00" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture left opened" Index="#x6000" Sub="#x01">
<Entry Name="Clamping fixture unlock left retracted" Index="#x6000" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 2" Index="#x1a01" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture left closed" Index="#x6010" Sub="#x01">
<Entry Name="Clamping fixture unlock left extended" Index="#x6010" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 3" Index="#x1a02" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture right opened" Index="#x6020" Sub="#x01">
<Entry Name="Clamping fixture unlock right retracted" Index="#x6020" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 4" Index="#x1a03" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture right closed" Index="#x6030" Sub="#x01">
<Entry Name="Clamping fixture unlock right extended" Index="#x6030" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 5" Index="#x1a04" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture in front opened" Index="#x6040" Sub="#x01">
<Entry Name="Clamping fixture ejector front retracted" Index="#x6040" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 6" Index="#x1a05" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture in front closed" Index="#x6050" Sub="#x01">
<Entry Name="Clamping fixture ejector front extended" Index="#x6050" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 7" Index="#x1a06" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture back opened" Index="#x6060" Sub="#x01">
<Entry Name="Clamping fixture ejector back retracted" Index="#x6060" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 8" Index="#x1a07" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture back closed" Index="#x6070" Sub="#x01">
<Entry Name="Clamping fixture ejector back extended" Index="#x6070" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
@@ -32104,42 +32104,42 @@ Bit 8 - 15 : reserved]]></Comment>
<SyncMan>001001000000010004000000010001000100001000010000</SyncMan>
<Fmmu>0000000000000000001000010100000002000000000000000000000000000000</Fmmu>
<Pdo Name="Channel 1" Index="#x1a00" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture left opened" Index="#x6000" Sub="#x01">
<Entry Name="Clamping fixture unlock left retracted" Index="#x6000" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 2" Index="#x1a01" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture left closed" Index="#x6010" Sub="#x01">
<Entry Name="Clamping fixture unlock left extended" Index="#x6010" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 3" Index="#x1a02" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture right opened" Index="#x6020" Sub="#x01">
<Entry Name="Clamping fixture unlock right retracted" Index="#x6020" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 4" Index="#x1a03" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture right closed" Index="#x6030" Sub="#x01">
<Entry Name="Clamping fixture unlock right extended" Index="#x6030" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 5" Index="#x1a04" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture in front opened" Index="#x6040" Sub="#x01">
<Entry Name="Clamping fixture ejector front retracted" Index="#x6040" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 6" Index="#x1a05" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture in front closed" Index="#x6050" Sub="#x01">
<Entry Name="Clamping fixture ejector front extended" Index="#x6050" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 7" Index="#x1a06" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture back opened" Index="#x6060" Sub="#x01">
<Entry Name="Clamping fixture ejector back retracted" Index="#x6060" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
<Pdo Name="Channel 8" Index="#x1a07" Flags="#x0011" SyncMan="0">
<Entry Name="Clamping fixture back closed" Index="#x6070" Sub="#x01">
<Entry Name="Clamping fixture ejector back extended" Index="#x6070" Sub="#x01">
<Type>BIT</Type>
</Entry>
</Pdo>
@@ -32225,10 +32225,10 @@ Bit 8 - 15 : reserved]]></Comment>
<Entry Name="Channel 1" Index="#x7000" Sub="#x02" Flags="#x00001000">
<Type>BIT</Type>
</Entry>
<Entry Name="Channel 2" Index="#x7000" Sub="#x03" Flags="#x00001000">
<Entry Name="Aligner enable vacuum" Index="#x7000" Sub="#x03" Flags="#x00001000">
<Type>BIT</Type>
</Entry>
<Entry Name="Channel 3" Index="#x7000" Sub="#x04" Flags="#x00001000">
<Entry Name="Aligner disable vacuum" Index="#x7000" Sub="#x04" Flags="#x00001000">
<Type>BIT</Type>
</Entry>
<Entry Name="Channel 4" Index="#x7000" Sub="#x05" Flags="#x00001000">
@@ -34991,7 +34991,7 @@ Bit 8 - 15 : reserved]]></Comment>
<ModuleIdent>640</ModuleIdent>
<Module Id="#x03090055" Type="Sync Inputs" Class="">
<Name>Module 1 (Sync Inputs)</Name>
<ImageId>564</ImageId>
<ImageId>565</ImageId>
<ModuleData>c860000080020000000004000000000000000000000000000000000000000000</ModuleData>
<PdoIndex>6657</PdoIndex>
</Module>
@@ -35020,7 +35020,7 @@ Bit 8 - 15 : reserved]]></Comment>
<ModuleIdent>519</ModuleIdent>
<Module Id="#x0309000d" Type="Default IO" Class="">
<Name>Module 3 (Default IO)</Name>
<ImageId>564</ImageId>
<ImageId>565</ImageId>
<ModuleData>c860000004020000000004000000000000000000000000000000000000000000</ModuleData>
<PdoIndex>6676</PdoIndex>
<PdoIndex>5652</PdoIndex>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.20" ClassName="CDevDpRamDef" SubType="121">
<Device Id="11" Disabled="true" DevType="121">
<Device Id="11" DevType="121">
<Name>__FILENAME__</Name>
<AddressInfo>
<Pci>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0"?>
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.19" ClassName="CDevEtherCATDef" SubType="111">
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.20" ClassName="CDevEtherCATDef" SubType="111">
<DataTypes>
<DataType>
<Name GUID="{18071995-0000-0000-0000-002000000007}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..6] OF BIT</Name>
<Name GUID="{18071995-0000-0000-0000-002000000007}" IecBaseType="true" BitType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..6] OF BIT</Name>
<BitSize>7</BitSize>
<BaseType GUID="{18071995-0000-0000-0000-000000000010}">BIT</BaseType>
<ArrayInfo>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0"?>
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.19" ClassName="CDevEtherCATDef" SubType="111">
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.20" ClassName="CDevEtherCATDef" SubType="111">
<DataTypes>
<DataType>
<Name GUID="{18071995-0000-0000-0000-002000000007}" IecBaseType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..6] OF BIT</Name>
<Name GUID="{18071995-0000-0000-0000-002000000007}" IecBaseType="true" BitType="true" AutoDeleteType="true" HideSubItems="true">ARRAY [0..6] OF BIT</Name>
<BitSize>7</BitSize>
<BaseType GUID="{18071995-0000-0000-0000-000000000010}">BIT</BaseType>
<ArrayInfo>

View File

@@ -1449,7 +1449,7 @@ External Setpoint Generation:
<OtherSettings AllowMotionCmdToSlave="true"/>
</AxisPara>
<Encoder Name="Enc" EncType="8">
<EncPara ScaleFactorNumerator="360" ScaleFactorDenominator="1048576" Offset="28.5" MaxCount="#xffffffff" ReferenceSystem="4">
<EncPara ScaleFactorNumerator="360" ScaleFactorDenominator="1048576" Offset="28.5" MaxCount="#xffffffff" ReferenceSystem="1">
<FilterTime TVelo="0.2"/>
</EncPara>
<Vars VarGrpType="1">
@@ -1509,7 +1509,7 @@ External Setpoint Generation:
</Vars>
</Encoder>
<Drive Name="Drive" DrvType="9">
<DrvPara MaxCount="#xffffffff" DriveControlDWord="#x00000100">
<DrvPara MaxCount="#xffffffff" DriveControlDWord="#x00030100">
<Analog VeloReferenz="35031.3336914063" VeloScale="1.02400649589962" TorqueSetpointScale="10" ScaleFactorActTorque="0.1"/>
<TimeComp TaskDelayCycles="1"/>
</DrvPara>
@@ -1798,7 +1798,7 @@ External Setpoint Generation:
</Vars>
</Encoder>
<Drive Name="Drive" DrvType="9">
<DrvPara MaxCount="#xffffffff" DriveControlDWord="#x00000100">
<DrvPara MaxCount="#xffffffff" DriveControlDWord="#x00030100">
<Analog VeloReferenz="35031.3336914063" VeloScale="1.02400649589962" TorqueSetpointScale="10" ScaleFactorActTorque="0.1"/>
<TimeComp TaskDelayCycles="1"/>
</DrvPara>
@@ -2018,16 +2018,16 @@ External Setpoint Generation:
</Var>
</Vars>
</Axis>
<Axis Id="5" CreateSymbols="true" AxisType="1" SimulationMode="true">
<Axis Id="5" CreateSymbols="true" AxisType="1">
<Name>AlignerXAxis</Name>
<AxisPara>
<Dynamic Acceleration="15" Deceleration="15" Jerk="45"/>
<Velo RefSearch="5" RefSync="0.5" SlowManual="1" FastManual="5" Fast="12.834" Maximum="10"/>
<Dynamic AccelerationMaximum="2000" DecelerationMaximum="2000" Acceleration="2" Deceleration="2" Jerk="2"/>
<Velo RefSearch="1.5" RefSync="0.5" SlowManual="1" FastManual="5" Fast="12.834" Maximum="5"/>
<OtherSettings AllowMotionCmdToSlave="true"/>
</AxisPara>
<Encoder Name="Enc" EncType="4">
<EncPara ScaleFactorNumerator="1" ScaleFactorDenominator="12800" MaxCount="#xffffffff">
<Inc RefSearchInverse="true" RefSyncInverse="false" RefPosition="-14.2" RefMode="1" RefSoftSyncMask="#x0000ffff" HomingSensorSource="2"/>
<Inc RefSearchInverse="true" RefSyncInverse="false" RefPosition="-34.47" RefMode="1" RefSoftSyncMask="#x0000ffff" HomingSensorSource="2"/>
</EncPara>
<Vars VarGrpType="1">
<Name>Inputs</Name>
@@ -2177,16 +2177,16 @@ External Setpoint Generation:
</Var>
</Vars>
</Axis>
<Axis Id="6" CreateSymbols="true" AxisType="1" SimulationMode="true">
<Axis Id="6" CreateSymbols="true" AxisType="1">
<Name>AlignerYAxis</Name>
<AxisPara>
<Dynamic Acceleration="15" Deceleration="15" Jerk="45"/>
<Velo RefSearch="5" RefSync="0.5" SlowManual="1" FastManual="5" Fast="12.834" Maximum="10"/>
<Dynamic AccelerationMaximum="2000" DecelerationMaximum="2000" Acceleration="1.99999914163127" Deceleration="1.99999914163127" Jerk="22.4999806867077"/>
<Velo RefSearch="1.5" RefSync="0.5" SlowManual="1" FastManual="5" Fast="12.834" Maximum="5"/>
<OtherSettings AllowMotionCmdToSlave="true"/>
</AxisPara>
<Encoder Name="Enc" EncType="4">
<EncPara ScaleFactorNumerator="1" ScaleFactorDenominator="12800" MaxCount="#xffffffff">
<Inc RefSearchInverse="true" RefSyncInverse="false" RefPosition="-34.46" RefMode="1" RefSoftSyncMask="#x0000ffff" HomingSensorSource="2"/>
<Inc RefSearchInverse="true" RefSyncInverse="false" RefPosition="-11.67" RefMode="1" RefSoftSyncMask="#x0000ffff" HomingSensorSource="2"/>
</EncPara>
<Vars VarGrpType="1">
<Name>Inputs</Name>
@@ -2339,7 +2339,7 @@ External Setpoint Generation:
</NC>
<Mappings>
<OwnerA Name="Axes^AlignerXAxis">
<OwnerB Name="TIID^Device 1 (EtherCAT)^K12_KL01 (EK1100)^K12_KL07 (EL7037)">
<OwnerB Name="TIID^Device 1 (EtherCAT)^K12_KL01 (EK1100)^K12_KL08 (EL7037)">
<Link VarA="Drive^Inputs^In^nState1" VarB="STM Status^Status^Error" Size="1" OffsA="3"/>
<Link VarA="Drive^Inputs^In^nState1" VarB="STM Status^Status^Motor stall" Size="1" OffsA="7"/>
<Link VarA="Drive^Inputs^In^nState1" VarB="STM Status^Status^Moving negative" Size="1" OffsA="5"/>
@@ -2383,7 +2383,7 @@ External Setpoint Generation:
</OwnerB>
</OwnerA>
<OwnerA Name="Axes^AlignerYAxis">
<OwnerB Name="TIID^Device 1 (EtherCAT)^K12_KL01 (EK1100)^K12_KL08 (EL7037)">
<OwnerB Name="TIID^Device 1 (EtherCAT)^K12_KL01 (EK1100)^K12_KL07 (EL7037)">
<Link VarA="Drive^Inputs^In^nState1" VarB="STM Status^Status^Error" Size="1" OffsA="3"/>
<Link VarA="Drive^Inputs^In^nState1" VarB="STM Status^Status^Motor stall" Size="1" OffsA="7"/>
<Link VarA="Drive^Inputs^In^nState1" VarB="STM Status^Status^Moving negative" Size="1" OffsA="5"/>

View File

@@ -11,6 +11,14 @@
</OwnerB>
</OwnerA>
</UnrestoredVarLinks>
<UnrestoredVarLinks ImportTime="2026-02-04T18:53:56">
<OwnerA Name="InputDst" Prefix="TIPC^PLC^PLC Instance" Type="1">
<OwnerB Name="TIID^Device 1 (EtherCAT)^Box 26 (TM-X5K_CB-NEC20E)">
<Link VarA="PRG_Main._fbAligner._rXOffset" TypeA="REAL" InOutA="0" GuidA="{18071995-0000-0000-0000-00000000000D}" VarB="Module 1 (Result Data 128Byte)^Result Data 128Byte^Result Data7" RestoreInfo="ANotFound"/>
<Link VarA="PRG_Main._fbAligner._rYOffset" TypeA="REAL" InOutA="0" GuidA="{18071995-0000-0000-0000-00000000000D}" VarB="Module 1 (Result Data 128Byte)^Result Data 128Byte^Result Data8" RestoreInfo="ANotFound"/>
</OwnerB>
</OwnerA>
</UnrestoredVarLinks>
<Contexts>
<Context>
<Id>0</Id>
@@ -28,12 +36,20 @@
</Instance>
<Mappings>
<OwnerA>
<OwnerB Name="TIID^Device 1 (EtherCAT)^Box 26 (TM-X5K_CB-NEC20E)">
<Link VarA="PlcTask Inputs^PRG_Main._fbAligner._udiXOffset" VarB="Module 1 (Result Data 128Byte)^Result Data 128Byte^Result Data7"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbAligner._udiYOffset" VarB="Module 1 (Result Data 128Byte)^Result Data 128Byte^Result Data8"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^Box 44 (EX260-SEC1)">
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xCloseDoor1" VarB="Byte 0^Output[3]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xCloseDoor2" VarB="Byte 0^Output[1]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xOpenDoor1" VarB="Byte 0^Output[2]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xOpenDoor2" VarB="Byte 0^Output[0]" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^Box 7 (EX600-SEC#)">
<Link VarA="PlcTask Outputs^PRG_Main._fbAligner._xDisableVacuum" VarB="Module 1 (EX600-SEC#, 32 Valves)^Valve Outputs^Aligner disable vacuum" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbAligner._xEnableVacuum" VarB="Module 1 (EX600-SEC#, 32 Valves)^Valve Outputs^Aligner enable vacuum" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^HP (EK1100)^Term 47 (EL2004)">
<Link VarA="PlcTask Outputs^PRG_Main._fbHeatCoolPlates._fbHeatingPlate._xEnableHotplate" VarB="Channel 1^HotplateControl" Size="1"/>
</OwnerB>
@@ -97,39 +113,64 @@
<OwnerB Name="TIID^Device 1 (EtherCAT)^K01_KL01 (EK1100)^K01_KL02 (EL1018)">
<Link VarA="PlcTask Inputs^PRG_Safety._xRequestOpenDoor" VarB="Channel 4^MainDoorUnlock" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K12_KL01 (EK1100)^K12_KL04 (EL1018)">
<Link VarA="PlcTask Inputs^PRG_Main._fbAligner._xVacuumOk" VarB="Channel 7^Input" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K20_A1 (EP1018-0001)">
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher2._fbValveDoor.xCloseFeedback" VarB="Channel 3^ShutterClosed" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher2._fbValveDoor.xOpenFeedback" VarB="Channel 2^ShutterOpened" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K20_QM01 (EX260-SEC1)">
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbClampingBack.xCloseValve" VarB="Byte 0^Output[7]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbClampingBack.xOpenValve" VarB="Byte 0^Output[6]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbClampingFront.xCloseValve" VarB="Byte 0^Output[5]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbClampingFront.xOpenValve" VarB="Byte 0^Output[4]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbClampingLeft.xCloseValve" VarB="Byte 1^Output[1]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbClampingLeft.xOpenValve" VarB="Byte 1^Output[0]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbClampingRight.xCloseValve" VarB="Byte 1^Output[3]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbClampingRight.xOpenValve" VarB="Byte 1^Output[2]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbValveDoor.xCloseValve" VarB="Byte 0^Output[1]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbValveDoor.xOpenValve" VarB="Byte 0^Output[0]" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K21_A1 (EP1018-0001)">
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbValveDoor.xCloseFeedback" VarB="Channel 3^ShutterClosed" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbValveDoor.xOpenFeedback" VarB="Channel 2^ShutterOpened" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._xVacuumOk" VarB="Channel 1^ChuckVacuumOn" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K21_A2 (EP1018-0001)">
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbClampingBack.xCloseFeedback" VarB="Channel 8^Clamping fixture back closed" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbClampingBack.xOpenFeedback" VarB="Channel 7^Clamping fixture back opened" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbClampingFront.xCloseFeedback" VarB="Channel 6^Clamping fixture in front closed" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbClampingFront.xOpenFeedback" VarB="Channel 5^Clamping fixture in front opened" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbClampingLeft.xCloseFeedback" VarB="Channel 2^Clamping fixture left closed" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbClampingLeft.xOpenFeedback" VarB="Channel 1^Clamping fixture left opened" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbClampingRight.xCloseFeedback" VarB="Channel 4^Clamping fixture right closed" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbClampingRight.xOpenFeedback" VarB="Channel 3^Clamping fixture right opened" Size="1"/>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K20_A2 (EP1018-0001)">
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbEjectBack.xCloseFeedback" VarB="Channel 7^Clamping fixture ejector back retracted" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbEjectBack.xOpenFeedback" VarB="Channel 8^Clamping fixture ejector back extended" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbEjectFront.xCloseFeedback" VarB="Channel 5^Clamping fixture ejector front retracted" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbEjectFront.xOpenFeedback" VarB="Channel 6^Clamping fixture ejector front extended" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbUnlockLeft.xCloseFeedback" VarB="Channel 1^Clamping fixture unlock left retracted" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbUnlockLeft.xOpenFeedback" VarB="Channel 2^Clamping fixture unlock left extended" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbUnlockRight.xCloseFeedback" VarB="Channel 3^Clamping fixture unlock right retracted" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher1._fbUnlockRight.xOpenFeedback" VarB="Channel 4^Clamping fixture unlock right extended" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K21_QM01 (EX260-SEC1)">
<OwnerB Name="TIID^Device 1 (EtherCAT)^K20_QM01 (EX260-SEC1)">
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbEjectBack.xCloseValve" VarB="Byte 0^Output[7]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbEjectBack.xOpenValve" VarB="Byte 0^Output[6]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbEjectFront.xCloseValve" VarB="Byte 0^Output[5]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbEjectFront.xOpenValve" VarB="Byte 0^Output[4]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbUnlockLeft.xCloseValve" VarB="Byte 1^Output[1]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbUnlockLeft.xOpenValve" VarB="Byte 1^Output[0]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbUnlockRight.xCloseValve" VarB="Byte 1^Output[3]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbUnlockRight.xOpenValve" VarB="Byte 1^Output[2]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbValveDoor.xCloseValve" VarB="Byte 0^Output[1]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._fbValveDoor.xOpenValve" VarB="Byte 0^Output[0]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._xDisableVacuum" VarB="Byte 0^Output[2]" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K21_A1 (EP1018-0001)">
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher2._fbValveDoor.xCloseFeedback" VarB="Channel 3^ShutterClosed" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher2._fbValveDoor.xOpenFeedback" VarB="Channel 2^ShutterOpened" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher2._xVacuumOk" VarB="Channel 1^ChuckVacuumOn" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K21_A2 (EP1018-0001)">
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher2._fbEjectBack.xCloseFeedback" VarB="Channel 7^Clamping fixture ejector back retracted" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher2._fbEjectBack.xOpenFeedback" VarB="Channel 8^Clamping fixture ejector back extended" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher2._fbEjectFront.xCloseFeedback" VarB="Channel 5^Clamping fixture ejector front retracted" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher2._fbEjectFront.xOpenFeedback" VarB="Channel 6^Clamping fixture ejector front extended" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher2._fbUnlockLeft.xCloseFeedback" VarB="Channel 1^Clamping fixture unlock left retracted" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher2._fbUnlockLeft.xOpenFeedback" VarB="Channel 2^Clamping fixture unlock left extended" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher2._fbUnlockRight.xCloseFeedback" VarB="Channel 3^Clamping fixture unlock right retracted" Size="1"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbEtcher2._fbUnlockRight.xOpenFeedback" VarB="Channel 4^Clamping fixture unlock right extended" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K21_QM01 (EX260-SEC1)">
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbEjectBack.xCloseValve" VarB="Byte 0^Output[7]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbEjectBack.xOpenValve" VarB="Byte 0^Output[6]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbEjectFront.xCloseValve" VarB="Byte 0^Output[5]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbEjectFront.xOpenValve" VarB="Byte 0^Output[4]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbUnlockLeft.xCloseValve" VarB="Byte 1^Output[1]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbUnlockLeft.xOpenValve" VarB="Byte 1^Output[0]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbUnlockRight.xCloseValve" VarB="Byte 1^Output[3]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbUnlockRight.xOpenValve" VarB="Byte 1^Output[2]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbValveDoor.xCloseValve" VarB="Byte 0^Output[1]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._fbValveDoor.xOpenValve" VarB="Byte 0^Output[0]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._xDisableVacuum" VarB="Byte 0^Output[2]" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^PC_K01_KL01 (EK1100)^PC_K01_KL02 (EL1918)">
<Link VarA="PlcTask Inputs^PRG_Safety._xComStartup" VarB="StandardInputs^Standard Out Var 12" Size="1"/>
@@ -145,7 +186,7 @@
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._diMirrorOffsetPosY" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 6 (Offset Y)"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._diMirrorThickness" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 7 (Thickness)"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._dwErrorBits" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 1 (Errorbits)"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._dwJobForPLC" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 3 (JobForPLC)"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._eJobForPLC" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 3 (JobForPLC)" Size="16"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._uState" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 0 (Status)"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._abToolsAndPositions" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 2 (Greifer/Drehteller/Positionen)"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._diOffsetPosX" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 3 (Offset X)"/>
@@ -158,6 +199,14 @@
<Link VarA="PlcTask Inputs^PRG_Main._stCamResult" VarB="API^Term 4 (Result Data 128Byte)^Subterm 6 (Result Data 128Byte)^Inputs^Result Data" Size="264" OffsB="224"/>
<Link VarA="PlcTask Outputs^PRG_Main._xTriggerCamera" VarB="API^Term 10 (Control)^Subterm 12 (Control)^Outputs^Control Register[0]^Trigger" Size="1"/>
</OwnerB>
<OwnerB Name="TINC^NC-Task 1 SAF^Axes^AlignerXAxis">
<Link VarA="PlcTask Inputs^PRG_Main._fbAligner._fbXAxis._fbAxis.NcToPlc" VarB="Outputs^ToPlc"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbAligner._fbXAxis._fbAxis.PlcToNc" VarB="Inputs^FromPlc"/>
</OwnerB>
<OwnerB Name="TINC^NC-Task 1 SAF^Axes^AlignerYAxis">
<Link VarA="PlcTask Inputs^PRG_Main._fbAligner._fbYAxis._fbAxis.NcToPlc" VarB="Outputs^ToPlc"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbAligner._fbYAxis._fbAxis.PlcToNc" VarB="Inputs^FromPlc"/>
</OwnerB>
</OwnerA>
</Mappings>
</TcSmItem>