Initial
This commit is contained in:
125
PLC/9 Robot/POUs/ROBOT_IO_FB.TcPOU
Normal file
125
PLC/9 Robot/POUs/ROBOT_IO_FB.TcPOU
Normal 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>
|
||||
Reference in New Issue
Block a user