Started input station

This commit is contained in:
2026-03-04 10:20:36 +01:00
parent 070822e497
commit 64f561b0c5
8 changed files with 519 additions and 134 deletions

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<POU Name="FB_Input" Id="{c744c235-1c8f-4f37-9688-5e65df67766f}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK FB_Input EXTENDS FB_PackMLGeneric
VAR_INPUT
stRecipe : ST_Input_Recipe;
END_VAR
VAR_OUTPUT
END_VAR
VAR
_fbTrayFeeder : FB_TrayFeeder(sIPAddr := '192.168.1.10', udiPort := 5000);
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
<Method Name="FB_init" Id="{bbceb3b3-f8a1-472a-b29a-eebb04390aa6}">
<Declaration><![CDATA[//FB_Init ist immer implizit verfügbar und wird primär für die Initialisierung verwendet.
//Der Rückgabewert wird nicht ausgewertet. Für gezielte Einflussnahme können Sie
//die Methoden explizit deklarieren und darin mit dem Standard-Initialisierungscode
//zusätzlichen Code bereitstellen. Sie können den Rückgabewert auswerten.
METHOD FB_Init: BOOL
VAR_INPUT
bInitRetains: BOOL; // TRUE: Die Retain-Variablen werden initialisiert (Reset warm / Reset kalt)
bInCopyCode: BOOL; // TRUE: Die Instanz wird danach in den Kopiercode kopiert (Online-Change)
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[// Config state machine
_stSMConfig.xAbortingDisabled := TRUE;
_stSMConfig.xStoppingDisabled := TRUE;
_stSMConfig.xStartingDisabled := TRUE;
_stSMConfig.xSuspendingDisabled := TRUE;
_stSMConfig.xSuspededDisabled := TRUE;
_stSMConfig.xUnsuspendingDisabled := TRUE;
_stSMConfig.xHoldingDisabled := TRUE;
_stSMConfig.xUnholdingDisabled := TRUE;
_stSMConfig.xCompletingDisabled := TRUE;
]]></ST>
</Implementation>
</Method>
<Method Name="M_Clearing" Id="{a25e8d48-9658-4773-bf5a-5804033c1e57}">
<Declaration><![CDATA[METHOD PROTECTED M_Clearing
]]></Declaration>
<Implementation>
<ST><![CDATA[CASE _iSSM OF
// Check if there are sub units still in aborting
0:
// IF _fbTrayFeeder.stStatus.eStateCurrent = E_PackMLState.ABORTING THEN
//
// END_IF
// Check if
END_CASE]]></ST>
</Implementation>
</Method>
</POU>
</TcPlcObject>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_Input_Recipe" Id="{353ac92e-9d95-44a0-8ac7-6590259664c1}">
<Declaration><![CDATA[TYPE ST_Input_Recipe :
STRUCT
// Tray type
iTrayIdx : INT := -1;
// Number of parts to make
uiPartsToMake : UINT := 0;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="E_TrayFeeder_JobType" Id="{d6a9a552-c90e-4d94-ad43-94290ba0d53d}">
<Declaration><![CDATA[{attribute 'qualified_only'}
{attribute 'strict'}
{attribute 'to_string'}
TYPE E_TrayFeeder_JobType :
(
ALL := 0,
ONE_TRAY,
NUMBER
);
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_TrayFeeder_Recipe" Id="{7b125673-00fb-47ea-a840-6619678735ac}">
<Declaration><![CDATA[TYPE ST_TrayFeeder_Recipe :
STRUCT
// Tray type index
iTrayIdx : INT := -1;
// How many parts to make
eJobType : E_TrayFeeder_JobType := E_TrayFeeder_JobType.ALL;
// Tray number in tray feeder
iTrayNr : INT := -1;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>