125 lines
3.2 KiB
XML
125 lines
3.2 KiB
XML
<?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> |