Added minimal functionality for Robot teaching

- Added minimal HMI
- Added possibility to open and close all chamber doors
This commit is contained in:
2026-01-17 09:20:39 +01:00
parent 9f058db2a3
commit 2d11c43579
2274 changed files with 912690 additions and 162 deletions

View File

@@ -556,6 +556,9 @@
<Image Id="1" AddrType="9" ImageType="3">
<Name>Image</Name>
</Image>
<Image Id="5" AddrType="10" ImageType="3">
<Name>Prozessabbild-2</Name>
</Image>
<Box Id="24" BoxType="9099">
<Name>Etcher1ChuckPresent (EP1018-0001)</Name>
<ImageId>1000</ImageId>
@@ -849,37 +852,37 @@
</Entry>
</Pdo>
<Pdo Name="StandardOutputs" Index="#x17f0" InOut="1" Flags="#x2011" SyncMan="2">
<Entry Name="Standard In Var 1" Index="#x6000" Sub="#x01">
<Entry Name="Standard In Var 9" Index="#x6000" Sub="#x01">
<Type>BIT</Type>
</Entry>
<Entry Name="Standard In Var 9" Index="#x6000" Sub="#x02">
<Entry Name="Standard In Var 192" Index="#x6000" Sub="#x02">
<Type>BIT</Type>
</Entry>
<Entry Name="Standard In Var 192" Index="#x6000" Sub="#x03">
<Entry Name="Standard In Var 199" Index="#x6000" Sub="#x03">
<Type>BIT</Type>
</Entry>
<Entry Name="Standard In Var 199" Index="#x6000" Sub="#x04">
<Entry Name="Standard In Var 201" Index="#x6000" Sub="#x04">
<Type>BIT</Type>
</Entry>
<Entry Name="Standard In Var 201" Index="#x6000" Sub="#x05">
<Entry Name="Standard In Var 202" Index="#x6000" Sub="#x05">
<Type>BIT</Type>
</Entry>
<Entry Name="Standard In Var 202" Index="#x6000" Sub="#x06">
<Entry Name="Standard In Var 203" Index="#x6000" Sub="#x06">
<Type>BIT</Type>
</Entry>
<Entry Name="Standard In Var 203" Index="#x6000" Sub="#x07">
<Entry Name="Standard In Var 204" Index="#x6000" Sub="#x07">
<Type>BIT</Type>
</Entry>
<Entry Name="Standard In Var 204" Index="#x6000" Sub="#x08">
<Entry Name="Standard In Var 207" Index="#x6000" Sub="#x08">
<Type>BIT</Type>
</Entry>
<Entry Name="Standard In Var 207" Index="#x6000" Sub="#x09">
<Entry Name="Standard In Var 208" Index="#x6000" Sub="#x09">
<Type>BIT</Type>
</Entry>
<Entry Name="Standard In Var 208" Index="#x6000" Sub="#x0a">
<Entry Name="Standard In Var 209" Index="#x6000" Sub="#x0a">
<Type>BIT</Type>
</Entry>
<Entry Name="Standard In Var 209" Index="#x6000" Sub="#x0b">
<Entry Name="Standard In Var 212" Index="#x6000" Sub="#x0b">
<Type>BIT</Type>
</Entry>
<Entry>
@@ -25699,8 +25702,8 @@ Bit 8 - 15 : reserved]]></Comment>
<DcMode>446353796e633132350000000000000053796e63206379636c652074696d653a20313235c2b57300000000000000000048e801000000000000000000ffff30070000000000000000000000000000000000000000000000000000000000000000</DcMode>
<MBoxUserCmdData>00400500100000000d000000000000000000000000000000000000000000000003400a8000000000fffff903000000004665617475726520666c61677300</MBoxUserCmdData>
<MBoxUserCmdData>00400500100000000d000000000000000000000000000000000000000000000023400a8000000000fffff903000000004665617475726520666c61677300</MBoxUserCmdData>
<MBoxUserCmdData>020005000a00000015000000000000000000000000000000000000000000000003400100000000001027546e637963202d204e43206379636c652074696d6500</MBoxUserCmdData>
<MBoxUserCmdData>020005000a000000170000000000000000000000000000000000000000000000034002000000000010275473637963202d20436f6d6d206379636c652074696d6500</MBoxUserCmdData>
<MBoxUserCmdData>020005000a0000001500000000000000000000000000000000000000000000000340010000000000d007546e637963202d204e43206379636c652074696d6500</MBoxUserCmdData>
<MBoxUserCmdData>020005000a0000001700000000000000000000000000000000000000000000000340020000000000d0075473637963202d20436f6d6d206379636c652074696d6500</MBoxUserCmdData>
<MBoxUserCmdData>020005000a0000000e000000000000000000000000000000000000000000000003402000000000000b004f7065726174696f6e206d6f646500</MBoxUserCmdData>
<MBoxUserCmdData>020005000a0000000e000000000000000000000000000000000000000000000023402000000000000b004f7065726174696f6e206d6f646500</MBoxUserCmdData>
<MBoxUserCmdData>004005000a0000001e0000000000000000000000000000000000000000000000034030810000000001005265706f727420646961676e6f737469637320696e666f726d6174696f6e00</MBoxUserCmdData>
@@ -34886,34 +34889,34 @@ Bit 8 - 15 : reserved]]></Comment>
</Entry>
</Pdo>
<Pdo Name="Std. In (64 Bytes)" Index="#x1a14" Flags="#x0090" SyncMan="3">
<Entry Name="Input DWORD 0" BitLen="32" Index="#x6010" Sub="#x01">
<Entry Name="Input DWORD 0 (Status)" BitLen="32" Index="#x6010" Sub="#x01">
<Type>UDINT</Type>
</Entry>
<Entry Name="Input DWORD 1" BitLen="32" Index="#x6010" Sub="#x02">
<Entry Name="Input DWORD 1 (Errorbits)" BitLen="32" Index="#x6010" Sub="#x02">
<Type>UDINT</Type>
</Entry>
<Entry Name="Input DWORD 2" BitLen="32" Index="#x6010" Sub="#x03">
<Entry Name="Input DWORD 2 (JobAktiv/JobEnde)" BitLen="32" Index="#x6010" Sub="#x03">
<Type>UDINT</Type>
</Entry>
<Entry Name="Input DWORD 3" BitLen="32" Index="#x6010" Sub="#x04">
<Entry Name="Input DWORD 3 (JobForPLC)" BitLen="32" Index="#x6010" Sub="#x04">
<Type>UDINT</Type>
</Entry>
<Entry Name="Input DWORD 4" BitLen="32" Index="#x6010" Sub="#x05">
<Entry Name="Input DWORD 4 (Greifer/Drehteller/Positionen)" BitLen="32" Index="#x6010" Sub="#x05">
<Type>UDINT</Type>
</Entry>
<Entry Name="Input DWORD 5" BitLen="32" Index="#x6010" Sub="#x06">
<Entry Name="Input DWORD 5 (Offset X)" BitLen="32" Index="#x6010" Sub="#x06">
<Type>UDINT</Type>
</Entry>
<Entry Name="Input DWORD 6" BitLen="32" Index="#x6010" Sub="#x07">
<Entry Name="Input DWORD 6 (Offset Y)" BitLen="32" Index="#x6010" Sub="#x07">
<Type>UDINT</Type>
</Entry>
<Entry Name="Input DWORD 7" BitLen="32" Index="#x6010" Sub="#x08">
<Entry Name="Input DWORD 7 (Thickness)" BitLen="32" Index="#x6010" Sub="#x08">
<Type>UDINT</Type>
</Entry>
<Entry Name="Input DWORD 8" BitLen="32" Index="#x6010" Sub="#x09">
<Entry Name="Input DWORD 8 (Motor Temp)" BitLen="32" Index="#x6010" Sub="#x09">
<Type>UDINT</Type>
</Entry>
<Entry Name="Input DWORD 9" BitLen="32" Index="#x6010" Sub="#x0a">
<Entry Name="Input DWORD 9 (Motor Temp)" BitLen="32" Index="#x6010" Sub="#x0a">
<Type>UDINT</Type>
</Entry>
<Entry Name="Input DWORD 10" BitLen="32" Index="#x6010" Sub="#x0b">
@@ -34936,22 +34939,22 @@ Bit 8 - 15 : reserved]]></Comment>
</Entry>
</Pdo>
<Pdo Name="Std. Out (64 Bytes)" Index="#x1614" InOut="1" Flags="#x0090" SyncMan="2">
<Entry Name="Output DWORD 0" BitLen="32" Index="#x7010" Sub="#x01">
<Entry Name="Output DWORD 0 (CMDs)" BitLen="32" Index="#x7010" Sub="#x01">
<Type>UDINT</Type>
</Entry>
<Entry Name="Output DWORD 1" BitLen="32" Index="#x7010" Sub="#x02">
<Entry Name="Output DWORD 1 (JobNr/PLCJobNr)" BitLen="32" Index="#x7010" Sub="#x02">
<Type>UDINT</Type>
</Entry>
<Entry Name="Output DWORD 2" BitLen="32" Index="#x7010" Sub="#x03">
<Entry Name="Output DWORD 2 (Greifer/Drehteller/Positionen)" BitLen="32" Index="#x7010" Sub="#x03">
<Type>UDINT</Type>
</Entry>
<Entry Name="Output DWORD 3" BitLen="32" Index="#x7010" Sub="#x04">
<Entry Name="Output DWORD 3 (Offset X)" BitLen="32" Index="#x7010" Sub="#x04">
<Type>UDINT</Type>
</Entry>
<Entry Name="Output DWORD 4" BitLen="32" Index="#x7010" Sub="#x05">
<Entry Name="Output DWORD 4 (Offset Y)" BitLen="32" Index="#x7010" Sub="#x05">
<Type>UDINT</Type>
</Entry>
<Entry Name="Output DWORD 5" BitLen="32" Index="#x7010" Sub="#x06">
<Entry Name=" Output DWORD 5 (Thickness)" BitLen="32" Index="#x7010" Sub="#x06">
<Type>UDINT</Type>
</Entry>
<Entry Name="Output DWORD 6" BitLen="32" Index="#x7010" Sub="#x07">
@@ -35037,19 +35040,19 @@ Bit 8 - 15 : reserved]]></Comment>
<Var>
<Name>HEAD</Name>
<Type GUID="{D46F6451-58CF-4853-A5DB-DA36D1D59A28}" Namespace="IO">ECAT_HEAD</Type>
<BitOffs>12416</BitOffs>
<BitOffs>1184</BitOffs>
</Var>
<Var>
<Name>DATA</Name>
<Type GUID="{18071995-0000-0000-0000-001300000200}">ARRAY [0..511] OF BYTE</Type>
<BitOffs>12496</BitOffs>
<BitOffs>1264</BitOffs>
</Var>
<Var>
<Name>CNT</Name>
<Comment><![CDATA[Working counter
After receiving]]></Comment>
<Type>UINT</Type>
<BitOffs>16592</BitOffs>
<BitOffs>5360</BitOffs>
</Var>
</Vars>
<Vars VarGrpType="2">
@@ -35057,19 +35060,19 @@ After receiving]]></Comment>
<Var>
<Name>HEAD</Name>
<Type GUID="{D46F6451-58CF-4853-A5DB-DA36D1D59A28}" Namespace="IO">ECAT_HEAD</Type>
<BitOffs>12416</BitOffs>
<BitOffs>1184</BitOffs>
</Var>
<Var>
<Name>DATA</Name>
<Type GUID="{18071995-0000-0000-0000-001300000200}">ARRAY [0..511] OF BYTE</Type>
<BitOffs>12496</BitOffs>
<BitOffs>1264</BitOffs>
</Var>
<Var>
<Name>CNT</Name>
<Comment><![CDATA[Working counter
Before sending]]></Comment>
<Type>UINT</Type>
<BitOffs>16592</BitOffs>
<BitOffs>5360</BitOffs>
</Var>
</Vars>
</EtherCATCmd>

View File

@@ -27,19 +27,6 @@
<ImageId>276</ImageId>
<Vars VarGrpType="8">
<Name>Retains</Name>
<Var NotLinkable="true">
<Name>Robot_GVL.ROBOT_MAIN.CumulativePassCounter_[851]</Name>
<Type>UDINT</Type>
<InOut>7</InOut>
<UserHandle>33620016</UserHandle>
</Var>
<Var NotLinkable="true">
<Name>Robot_GVL.ROBOT_MAIN.CumulativeFailCounter_[851]</Name>
<Type>UDINT</Type>
<BitOffs>32</BitOffs>
<InOut>7</InOut>
<UserHandle>33620016</UserHandle>
</Var>
</Vars>
<Retain AreaSize="131072" DataSize="65504" ContextCnt="4"/>
</Box>

View File

@@ -1060,7 +1060,7 @@
</SubItem>
</DataType>
</DataTypes>
<Device Id="2" DevType="113" AmsPort="28674" AmsNetId="0.0.0.0.3.1" RemoteName="Device 2 (Profinet Controller)">
<Device Id="2" Disabled="true" DevType="113" AmsPort="28674" AmsNetId="0.0.0.0.3.1" RemoteName="Device 2 (Profinet Controller)">
<Name>__FILENAME__</Name>
<AddressInfo>
<Pnp>
@@ -1069,7 +1069,7 @@
<DeviceData>000105867b29</DeviceData>
</Pnp>
</AddressInfo>
<Image Id="4" AddrType="1" ImageType="3" SizeIn="304" SizeOut="326">
<Image Id="4" AddrType="1" ImageType="3" SizeIn="2" SizeOut="6">
<Name>Image</Name>
</Image>
<Box Id="4" BoxType="9121">

View File

@@ -68,7 +68,7 @@
<ImageDatas>
<ImageData Id="1000">424de6000000000000007600000028000000100000000e000000010004000000000070000000c21e0000c21e000000000000000000006865630089786200c18c5600c89a64009f918300a9a7a600d7b69400e2d1bf00e2e2e200f4e9db00f7efe700f3efef00f7f7ef00f7f7f700fff7f700ffffff00ffffffffffffffffffffffffffffffff63fffff66fffff44327fffb639fff704723fff4626fff407f329f80522af800df726f505626f505ffc22a00ba22a00bfff62604ff62605ffff92358ff92358fffff337ffff337ffffff969ffff769fffffffffffffffffffffffffffffffffff</ImageData>
</ImageDatas>
<Device Id="5" DevType="111" DevFlags="#x0003" AmsPort="28677" AmsNetId="5.127.104.206.6.1" RemoteName="Device 5 (EtherCAT)" InfoImageId="10">
<Device Id="5" Disabled="true" DevType="111" DevFlags="#x0003" AmsPort="28677" AmsNetId="5.127.104.206.6.1" RemoteName="Device 5 (EtherCAT)" InfoImageId="10">
<Name>__FILENAME__</Name>
<AddressInfo>
<Pnp>

View File

@@ -68,7 +68,7 @@
<ImageDatas>
<ImageData Id="1000">424de6000000000000007600000028000000100000000e000000010004000000000070000000c21e0000c21e000000000000000000006865630089786200c18c5600c89a64009f918300a9a7a600d7b69400e2d1bf00e2e2e200f4e9db00f7efe700f3efef00f7f7ef00f7f7f700fff7f700ffffff00ffffffffffffffffffffffffffffffff63fffff66fffff44327fffb639fff704723fff4626fff407f329f80522af800df726f505626f505ffc22a00ba22a00bfff62604ff62605ffff92358ff92358fffff337ffff337ffffff969ffff769fffffffffffffffffffffffffffffffffff</ImageData>
</ImageDatas>
<Device Id="7" DevType="111" DevFlags="#x0003" AmsPort="28679" AmsNetId="5.127.104.206.8.1" RemoteName="Device 7 (EtherCAT)" InfoImageId="12">
<Device Id="7" Disabled="true" DevType="111" DevFlags="#x0003" AmsPort="28679" AmsNetId="5.127.104.206.8.1" RemoteName="Device 7 (EtherCAT)" InfoImageId="12">
<Name>__FILENAME__</Name>
<AddressInfo>
<Pnp>

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.19" ClassName="CTComPlcObjDef">
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" XtvPath="PLC\PLC Instance.xtv">
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" XtvPath="PLC\PLC Instance.xtv" TmcPath="PLC\PLC.tmc">
<Name>__FILENAME__</Name>
<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
<Contexts>
@@ -20,9 +20,53 @@
</Instance>
<Mappings>
<OwnerA>
<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)^HV_K01_KL01^HV_K01_KL07 (EL2008)">
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xCloseChamber1" VarB="Channel 6^HV Hot_CloseChamber" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xCloseChamber2" VarB="Channel 3^HV Cold_CloseChamber" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xOpenChamber1" VarB="Channel 5^HV Hot_OpenChamber" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xOpenChamber2" VarB="Channel 2^HV Cold_OpenChamber" Size="1"/>
</OwnerB>
<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)^K20_QM01 (EX260-SEC1)">
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._xCloseDoor" VarB="Byte 0^Output[1]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._xOpenDoor" VarB="Byte 0^Output[0]" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^K21_QM01 (EX260-SEC1)">
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._xCloseDoor" VarB="Byte 0^Output[1]" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._xOpenDoor" VarB="Byte 0^Output[0]" 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"/>
<Link VarA="PlcTask Outputs^PRG_Safety._xErrorAck" VarB="StandardOutputs^Standard In Var 212" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Safety._xLockDoor" VarB="StandardOutputs^Standard In Var 192" Size="1"/>
<Link VarA="PlcTask Outputs^PRG_Safety._xRun" VarB="StandardOutputs^Standard In Var 9" Size="1"/>
</OwnerB>
<OwnerB Name="TIID^Device 1 (EtherCAT)^RobotMain">
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._abMirrorToolsAndPositions" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 4 (Greifer/Drehteller/Positionen)"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._asiMotorTemps1To4" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 8 (Motor Temp)"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._asiMotorTemps5To8" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 9 (Motor Temp)"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._awJobStatesFromRobot" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 2 (JobAktiv/JobEnde)"/>
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._diMirrorOffsetPosX" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 5 (Offset X)"/>
<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._uState^dwState" 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)"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._diOffsetPosY" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 4 (Offset Y)"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._diThickness" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^ Output DWORD 5 (Thickness)"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._uCtrl^dwCtrl" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 0 (CMDs)"/>
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._uJobs^dwJobs" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 1 (JobNr/PLCJobNr)"/>
</OwnerB>
</OwnerA>
</Mappings>
</TcSmItem>

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.19" ClassName="CNestedPlcProjDef">
<Project GUID="{384A40E7-3107-4D80-8361-04B00829260A}" Name="PLC" PrjFilePath="..\..\PLC\PLC.plcproj" TmcFilePath="..\..\PLC\PLC.tmc" ReloadTmc="true" AmsPort="851" FileArchiveSettings="#x000e" SymbolicMapping="true">
<Project GUID="{384A40E7-3107-4D80-8361-04B00829260A}" Name="PLC" PrjFilePath="..\..\PLC\PLC.plcproj" TmcFilePath="..\..\PLC\PLC.tmc" ReloadTmc="true" AmsPort="851" FileArchiveSettings="#x000e" CopyTmcToTarget="true" CopyTpyToTarget="false" SymbolicMapping="true">
<Instance File="PLC Instance.xti"/>
</Project>
</TcSmItem>