First working implementation

- Currently only with one sided gripper
This commit is contained in:
2026-02-19 15:42:54 +01:00
parent 7126a7dd7e
commit 92276e4f4b
32 changed files with 1041 additions and 378 deletions

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<Itf Name="I_FlowRecHandler" Id="{6edbf032-1748-4bdd-83cb-a3d71babaa22}">
<Declaration><![CDATA[INTERFACE I_FlowRecHandler
]]></Declaration>
<Method Name="M_AddFlowRec" Id="{99764a4e-e4e8-4559-8137-ead050289c2f}">
<Declaration><![CDATA[METHOD M_AddFlowRec : INT
VAR_INPUT
stFlowRecipe : ST_FlowRecipe;
END_VAR]]></Declaration>
</Method>
<Method Name="M_GetFlowRec" Id="{acfd7fa8-d012-4f06-a247-ab699d1b3413}">
<Declaration><![CDATA[METHOD M_GetFlowRec : REFERENCE TO ST_FlowRecipe
VAR_INPUT
iIdx : INT;
END_VAR
]]></Declaration>
</Method>
<Method Name="M_GetNextProcReq" Id="{b0952230-f0ad-4f72-b4ae-f75c72b5379f}">
<Declaration><![CDATA[METHOD M_GetNextProcReq : BOOL
VAR_INPUT
// Flow recipe pool index
iIdx : INT;
END_VAR
VAR_OUTPUT
// Process requirements bitmask
dwProcReq : DWORD;
END_VAR
]]></Declaration>
</Method>
<Method Name="M_RemFlowRec" Id="{24769a0f-680b-4bee-aa98-9f548ec7f78c}">
<Declaration><![CDATA[METHOD M_RemFlowRec : BOOL
VAR_INPUT
iIdx : INT;
END_VAR
]]></Declaration>
</Method>
<Method Name="M_ReportResult" Id="{4c4a5c8e-bf65-4842-9e43-a2f8387979e2}">
<Declaration><![CDATA[METHOD M_ReportResult : BOOL
VAR_INPUT
iIdx : INT;
xResult : BOOL;
END_VAR
]]></Declaration>
</Method>
</Itf>
</TcPlcObject>

View File

@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<Itf Name="I_Product" Id="{78dffc1b-aed6-4622-8b64-e060477179c6}">
<Declaration><![CDATA[{attribute 'no_explicit_call' := 'do not call this POU directly'}
INTERFACE I_Product
]]></Declaration>
<Method Name="M_SetCurrProcRes" Id="{afd48187-6008-4813-8fe5-04c632483cf0}">
<Declaration><![CDATA[METHOD M_SetCurrProcRes
VAR_INPUT
xSuccess : BOOL;
END_VAR
]]></Declaration>
</Method>
<Property Name="P_CurrNodeID" Id="{2408303a-b81e-4623-9557-4af29ff08776}">
<Declaration><![CDATA[PROPERTY P_CurrNodeID : UINT]]></Declaration>
<Get Name="Get" Id="{c7773936-77b0-42da-86b5-ef706272183a}">
<Declaration><![CDATA[]]></Declaration>
</Get>
<Set Name="Set" Id="{1ecab2de-a6ae-4a48-a0d3-c65c8bfe8a22}">
<Declaration><![CDATA[]]></Declaration>
</Set>
</Property>
<Property Name="P_NextReqCap" Id="{ea007dca-197b-4284-b65b-0f7c1a14e1fa}">
<Declaration><![CDATA[PROPERTY P_NextReqCap : DWORD]]></Declaration>
<Get Name="Get" Id="{0abf4eb3-351d-4342-a687-7722bc63fdaa}">
<Declaration><![CDATA[]]></Declaration>
</Get>
</Property>
</Itf>
</TcPlcObject>

View File

@@ -10,26 +10,26 @@ VAR_INPUT
END_VAR
]]></Declaration>
</Method>
<Method Name="M_InsertProduct" Id="{6d808715-3e3b-47f8-9bce-8110ddf0fadc}">
<Method Name="M_InsertProduct" Id="{73df88e2-075f-45f5-90de-892fc737e8cc}">
<Declaration><![CDATA[METHOD M_InsertProduct : BOOL;
VAR_INPUT
fbProduct : I_Product;
iFlowRecIdx : INT;
END_VAR
]]></Declaration>
</Method>
<Method Name="M_Release" Id="{8a898aac-0cc9-477d-9998-62f5f31391c7}">
<Declaration><![CDATA[METHOD M_Release : BOOL
VAR_INPUT
udiHandle : UDINT;
uiHandle : UINT;
END_VAR
]]></Declaration>
</Method>
<Method Name="M_RemoveProduct" Id="{90af1fde-9aed-4c2f-990d-d0ad1af5a705}">
<Declaration><![CDATA[METHOD M_RemoveProduct : I_Product
<Declaration><![CDATA[METHOD M_RemoveProduct : INT
]]></Declaration>
</Method>
<Method Name="M_Reserve" Id="{6c535852-3b02-41fc-a4fc-9b0284412ec7}">
<Declaration><![CDATA[METHOD M_Reserve : UDINT
<Declaration><![CDATA[METHOD M_Reserve : UINT
]]></Declaration>
</Method>
<Property Name="P_Available" Id="{3075cb0b-1920-4207-a4f7-c06c6ad91a05}">
@@ -50,6 +50,12 @@ END_VAR
<Declaration><![CDATA[]]></Declaration>
</Get>
</Property>
<Property Name="P_CurrFlowRecIdx" Id="{5ed2ff40-a91e-4a0c-a811-d777c4479d01}">
<Declaration><![CDATA[PROPERTY P_CurrFlowRecIdx : INT]]></Declaration>
<Get Name="Get" Id="{231435f7-ad8b-4f53-a923-60b6c4b48be9}">
<Declaration><![CDATA[]]></Declaration>
</Get>
</Property>
<Property Name="P_HasError" Id="{9d27caa3-2913-4127-9dc4-3c0085468476}">
<Declaration><![CDATA[PROPERTY P_HasError : BOOL]]></Declaration>
<Get Name="Get" Id="{ce1554ec-8c79-4cec-ba5a-7f52f7858b24}">
@@ -62,23 +68,16 @@ END_VAR
<Declaration><![CDATA[]]></Declaration>
</Get>
</Property>
<Property Name="P_Product" Id="{20f38cff-89b3-4ebd-9f5f-171721cc7f4c}">
<Declaration><![CDATA[PROPERTY P_Product : I_Product]]></Declaration>
<Get Name="Get" Id="{54f46645-3bb5-477e-a037-282c55914608}">
<Declaration><![CDATA[]]></Declaration>
</Get>
</Property>
<Property Name="P_Result" Id="{703e039e-b718-4d79-86bd-e01bd8c2d16b}">
<Declaration><![CDATA[PROPERTY P_Result : UINT]]></Declaration>
<Get Name="Get" Id="{5a6206de-d50c-4c20-be99-7f2f851fee69}">
<Declaration><![CDATA[]]></Declaration>
</Get>
</Property>
<Property Name="P_StationID" Id="{9004f009-99e0-41c2-a1a1-57af78c8e0c6}">
<Declaration><![CDATA[PROPERTY P_StationID : UINT]]></Declaration>
<Get Name="Get" Id="{060c4b1d-c578-4e27-95fc-86c34f0eedd4}">
<Declaration><![CDATA[]]></Declaration>
</Get>
<Set Name="Set" Id="{30ef11e6-3d79-4cf4-bd0d-ecf371cdb56f}">
<Declaration><![CDATA[VAR
END_VAR
]]></Declaration>
</Set>
</Property>
</Itf>
</TcPlcObject>