This commit is contained in:
2026-01-08 11:08:17 +01:00
commit fe882dc444
311 changed files with 511562 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.13">
<DUT Name="sConfigKUKA" Id="{9f003c15-5e04-4639-bd83-944a7103d2ee}">
<Declaration><![CDATA[TYPE sConfigKUKA :
STRUCT
StationsGetJob : ARRAY[FirstCassette..LastRelaxStation] OF USINT;
StationsPutJob : ARRAY[FirstCassette..LastRelaxStation] OF USINT;
StationsMTRJob : ARRAY[FirstCassette..LastRelaxStation] OF USINT;
StationsCoordinate : ARRAY[FirstCassette..LastRelaxStation] OF ARRAY[0..2] OF LREAL;
TrayTeachPositions : ARRAY [1..MaxNumberOfSizes] OF ARRAY[1..MaxNumberOfSubstratesPerTray] OF sPoint;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.11">
<DUT Name="sStationsTrayScan" Id="{56dee3d3-54f7-472b-9226-086bd125d193}">
<Declaration><![CDATA[TYPE sStationsTrayScan :
STRUCT
MaxNumber : SINT;
SizeName : STRING;
Thickness : LREAL;
HeightAtTray : LREAL;
GripperSize : USINT(1..3) := 1;
PositionAtHVHot : ARRAY[0..1] OF LREAL;
PositionAtHVCold : ARRAY[0..1] OF LREAL;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.13">
<DUT Name="sSubstrateInformation" Id="{481f4221-b035-4507-ad02-6da1ed17a4f9}">
<Declaration><![CDATA[TYPE sSubstrateInformation :
STRUCT
MaxNumber : SINT;
SizeName : STRING;
Thickness : LREAL;
HeightAtTray : LREAL;
GripperSize : ePaddleSize;
Diameter : LREAL;
DiameterTolerance : LREAL;
VisuIndex : INT;
PositionAtHVHot : ARRAY[0..1] OF LREAL;
PositionAtHVCold : ARRAY[0..1] OF LREAL;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.11">
<POU Name="ROBOT_IO_FB" Id="{cd7e78dc-a32d-482a-a280-e4c1d405bdfd}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK ROBOT_IO_FB EXTENDS Station_GENERAL_IO_FB
VAR
DoorLock : Lock_FB;
Step : INT;
END_VAR
VAR_INPUT
bOutAllDoorUnlock : BOOL;
END_VAR
VAR_OUTPUT
bInDoorLocked : ARRAY[1..3] OF BOOL;
bInMainDoorUnlock AT %I* : BOOL;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[MediaCheck();
DoorLock();
IF bInMainDoorUnlock THEN
DoorLocK.UnLock();
END_IF
MediaCheck();
AllDoorAreLocked := TRUE;
FOR i := 1 TO 4 DO
IF NOT DoorLock.bInLocked OR NOT DoorLock.bOutLock THEN
AllDoorAreLocked := FALSE;
END_IF
END_FOR
CASE Step OF
0:
IF bOutAllDoorUnlock THEN
Step := 10;
END_IF
10:
DoorLock.UnLock();
Step := 20;
20:
IF NOT bOutAllDoorUnlock THEN
Step := 30;
END_IF
IF AllDoorAreLocked THEN
bOutAllDoorUnlock := FALSE;
Step := 40;
END_IF
30:
DoorLock.Lock();
IF AllDoorAreLocked THEN
Step := 40;
END_IF
40:
//IF LOGOSOL_ROBOT.VST(TRUE) THEN
Step := 0;
//END_IF
END_CASE
iMediaArray[eRobotMedienNamen.AllDoorUnlock].Disable := FALSE;
CASE CMD[GeneralStation] OF
InitCMD:
iMediaArray[eRobotMedienNamen.AllDoorUnlock].Disable := TRUE;
StartCMD:
IF NOT MediaArray[GeneralStation][eMainMedienNamen.Pause].Input THEN
iMediaArray[eRobotMedienNamen.AllDoorUnlock].Disable := TRUE;
END_IF
END_CASE
IF bInStartRobotCleanOut THEN
iMediaArray[eRobotMedienNamen.AllDoorUnlock].Disable := FALSE;
END_IF]]></ST>
</Implementation>
<Method Name="Initialization" Id="{9f1b2fac-4390-45ab-9483-d4ebc1518612}">
<Declaration><![CDATA[METHOD Initialization : BOOL
VAR_INPUT
iStation : INT;
END_VAR
VAR
i : int;
END_VAR
VAR CONSTANT
DoorServiceName : ARRAY[0..NumberOfLanguages] OF T_MaxString := ['Door Lock', 'Door Lock'];
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[iStationStatus REF= StationsStatus[iStation];
iCMD REF= CMD[iStation];
iMediaArray REF= MediaArray[iStation];
iMediaArray[eRobotMedienNamen.Vacuum1].ServiceName[0] := 'Vacuum Ch1';
iMediaArray[eRobotMedienNamen.Vacuum1].bReferenceControl REF= ROBOT_MAIN.RobotControl.bOutRobotVacOff[0];
iMediaArray[eRobotMedienNamen.Vacuum2].ServiceName[0] := 'Vacuum Ch2';
iMediaArray[eRobotMedienNamen.Vacuum2].bReferenceControl REF= ROBOT_MAIN.RobotControl.bOutRobotVacOff[1];
DoorLock.Initialization(
iStation,
eRobotMedienNamen.DoorLock1,
ROBOT_ErrorNr.eDoor1CloseTimeout,
ROBOT_ErrorNr.eDoor1LockTimeout,
DoorServiceName
);
iMediaArray[eRobotMedienNamen.AllDoorUnlock].ServiceName[0] := 'All Door$NUnlock';
iMediaArray[eRobotMedienNamen.AllDoorUnlock].ServiceName[1] := 'All Door$NUnlock';
iMediaArray[eRobotMedienNamen.AllDoorUnlock].bReferenceControl REF= bOutAllDoorUnlock;]]></ST>
</Implementation>
</Method>
<Action Name="MediaCheck" Id="{3c9b52b1-4cdc-40ac-9c3f-4aec786f217f}">
<Implementation>
<ST><![CDATA[DelayTimer(IN := TRUE, PT := T#5S);
IF NOT DelayTimer.Q THEN
RETURN;
END_IF]]></ST>
</Implementation>
</Action>
</POU>
</TcPlcObject>

File diff suppressed because it is too large Load Diff