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

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="E_Isa88_Cmd" Id="{697f242d-4f68-49dd-b08e-e24e192406b6}">
<Declaration><![CDATA[{attribute 'qualified_only'}
{attribute 'strict'}
{attribute 'to_string'}
TYPE E_Isa88_Cmd :
(
RESET := 0,
START,
PAUSE,
RESUME,
STOP,
HOLD,
RESTART,
ABORT
);
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="E_Isa88_State" Id="{67b9298d-6884-4e53-b893-d852614b96d4}">
<Declaration><![CDATA[{attribute 'qualified_only'}
{attribute 'strict'}
{attribute 'to_string'}
TYPE E_Isa88_State :
(
IDLE := 0,
RUNNING,
COMPLETE,
PAUSING,
PAUSED,
HOLDING,
HELD,
RESTARTING,
STOPPING,
STOPPED,
ABORTING,
ABORTED
);
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,177 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<POU Name="FB_Isa88_SM" Id="{29def7dc-7eb7-4788-94bf-20badd909417}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK FB_Isa88_SM IMPLEMENTS I_Isa88_SM
VAR_INPUT
xExecute : BOOL;
eCMD : E_Isa88_Cmd;
END_VAR
VAR_OUTPUT
eCurrentState : E_Isa88_State;
eCurrentCMD : E_Isa88_Cmd;
END_VAR
VAR
_eState : E_Isa88_State;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[CASE _eState OF
E_Isa88_State.IDLE:
M_StateIdle();
E_Isa88_State.RUNNING:
M_StateRunning();
E_Isa88_State.COMPLETE:
M_StateComplete();
E_Isa88_State.PAUSING:
IF M_StatePausing() THEN
_eState := E_Isa88_State.PAUSED;
END_IF
E_Isa88_State.PAUSED:
M_StatePaused();
E_Isa88_State.HOLDING:
IF M_StateHolding() THEN
_eState := E_Isa88_State.HELD;
END_IF
E_Isa88_State.HELD:
M_StateHeld();
E_Isa88_State.RESTARTING:
IF M_StateRestarting() THEN
_eState := E_Isa88_State.RUNNING;
END_IF
E_Isa88_State.STOPPING:
IF M_StateStopping() THEN
_eState := E_Isa88_State.STOPPED;
END_IF
E_Isa88_State.STOPPED:
M_StateStopped();
E_Isa88_State.ABORTING:
IF M_StateAborting() THEN
_eState := E_Isa88_State.ABORTED;
END_IF
E_Isa88_State.ABORTED:
M_StateAborted();
ELSE
;
END_CASE]]></ST>
</Implementation>
<Method Name="M_StateAborted" Id="{7d3ae447-cd1c-41c4-ac16-4adbba3ca9d2}">
<Declaration><![CDATA[METHOD M_StateAborted
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
<Method Name="M_StateAborting" Id="{65c188ca-e49a-469e-8acf-15108e45afc4}">
<Declaration><![CDATA[METHOD M_StateAborting : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
<Method Name="M_StateComplete" Id="{c6f588b5-faa7-4cdb-8ef7-15b60b1b3437}">
<Declaration><![CDATA[METHOD M_StateComplete
VAR_INPUT
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
<Method Name="M_StateHeld" Id="{d3017117-19ee-4be8-a004-3bf1cb3e986c}">
<Declaration><![CDATA[METHOD M_StateHeld
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
<Method Name="M_StateHolding" Id="{aa747568-2f98-4853-8a09-082a8e71cb49}">
<Declaration><![CDATA[METHOD M_StateHolding : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
<Method Name="M_StateIdle" Id="{a1e6fb67-08b4-4452-a103-1e87b93b70df}">
<Declaration><![CDATA[METHOD M_StateIdle
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
<Method Name="M_StatePaused" Id="{e2e36464-c119-471f-8bba-3290f653d282}">
<Declaration><![CDATA[METHOD M_StatePaused
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
<Method Name="M_StatePausing" Id="{02b59ba7-54b7-4ccd-88ad-9fc49284626e}">
<Declaration><![CDATA[METHOD M_StatePausing : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
<Method Name="M_StateRestarting" Id="{b6ffa7ab-5439-47ef-8993-798aa3ec7e01}">
<Declaration><![CDATA[METHOD M_StateRestarting : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
<Method Name="M_StateRunning" Id="{e61c2773-08f6-421e-88fd-c87d0d7d7581}">
<Declaration><![CDATA[METHOD M_StateRunning
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
<Method Name="M_StateStopped" Id="{0455a3a5-4745-4cf5-8c40-69d001c1d9aa}">
<Declaration><![CDATA[METHOD M_StateStopped
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
<Method Name="M_StateStopping" Id="{e88bc558-0424-4a5f-99cd-f9d787839b47}">
<Declaration><![CDATA[METHOD M_StateStopping : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</Method>
</POU>
</TcPlcObject>

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<Itf Name="I_Isa88_SM" Id="{40882424-4ec1-4664-8b86-b7a6af5bbb74}">
<Declaration><![CDATA[INTERFACE I_Isa88_SM
]]></Declaration>
<Method Name="M_StateAborted" Id="{e67083c3-128e-45d9-b1cc-0a35d94ac3bc}">
<Declaration><![CDATA[METHOD M_StateAborted
VAR_INPUT
END_VAR
]]></Declaration>
</Method>
<Method Name="M_StateAborting" Id="{d3e0a947-0574-444f-878b-6e216d4fca0c}">
<Declaration><![CDATA[METHOD M_StateAborting : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
</Method>
<Method Name="M_StateComplete" Id="{bef858dc-1667-4bca-9f0f-99332f97e6e2}">
<Declaration><![CDATA[METHOD M_StateComplete
VAR_INPUT
END_VAR]]></Declaration>
</Method>
<Method Name="M_StateHeld" Id="{44494e88-dd2e-4465-9ead-95d76f1444b6}">
<Declaration><![CDATA[METHOD M_StateHeld
VAR_INPUT
END_VAR
]]></Declaration>
</Method>
<Method Name="M_StateHolding" Id="{2b2a3d8f-01ad-4938-b464-ceb50de62ddf}">
<Declaration><![CDATA[METHOD M_StateHolding : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
</Method>
<Method Name="M_StateIdle" Id="{4ceced48-4f87-482f-a69a-e97b69ac8963}">
<Declaration><![CDATA[METHOD M_StateIdle
VAR_INPUT
END_VAR
]]></Declaration>
</Method>
<Method Name="M_StatePaused" Id="{fc81aaa6-18b7-4113-914d-8d5cd632e976}">
<Declaration><![CDATA[METHOD M_StatePaused
VAR_INPUT
END_VAR
]]></Declaration>
</Method>
<Method Name="M_StatePausing" Id="{48a7510c-d8b6-42c2-a5e4-f4ebcb66eb3b}">
<Declaration><![CDATA[METHOD M_StatePausing : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
</Method>
<Method Name="M_StateRestarting" Id="{12cefe9f-48b4-4752-b95c-8ffb5612b7c4}">
<Declaration><![CDATA[METHOD M_StateRestarting : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
</Method>
<Method Name="M_StateRunning" Id="{90fa6b25-1c31-4d7c-a91d-56a908196ed4}">
<Declaration><![CDATA[METHOD M_StateRunning
VAR_INPUT
END_VAR
]]></Declaration>
</Method>
<Method Name="M_StateStopped" Id="{62d558ef-79a2-484a-a156-d8057fe6d97a}">
<Declaration><![CDATA[METHOD M_StateStopped
VAR_INPUT
END_VAR
]]></Declaration>
</Method>
<Method Name="M_StateStopping" Id="{7ecd335a-ebd9-4170-b5b7-2f9add02b49d}">
<Declaration><![CDATA[METHOD M_StateStopping : BOOL
VAR_INPUT
END_VAR
]]></Declaration>
</Method>
</Itf>
</TcPlcObject>