Commit before reloading Keyence camera on Profinet
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.19">
|
<TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.20">
|
||||||
<Project ProjectGUID="{CB97A0B0-7E22-470D-8550-AA318EA46E50}" TargetNetId="5.127.104.206.1.1" Target64Bit="true" ShowHideConfigurations="#x6">
|
<Project ProjectGUID="{CB97A0B0-7E22-470D-8550-AA318EA46E50}" TargetNetId="5.127.104.206.1.1" Target64Bit="true" ShowHideConfigurations="#x6">
|
||||||
<System>
|
<System>
|
||||||
<Settings MaxCpus="4" NonWinCpus="2">
|
<Settings MaxCpus="4" NonWinCpus="2">
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
</Target>
|
</Target>
|
||||||
</Licenses>
|
</Licenses>
|
||||||
<Tasks>
|
<Tasks>
|
||||||
<Task Id="3" Priority="20" CycleTime="100000" AmsPort="350" AdtTasks="true">
|
<Task Id="3" Priority="20" CycleTime="80000" AmsPort="350" AdtTasks="true">
|
||||||
<Name>PlcTask</Name>
|
<Name>PlcTask</Name>
|
||||||
</Task>
|
</Task>
|
||||||
</Tasks>
|
</Tasks>
|
||||||
@@ -43,6 +43,7 @@
|
|||||||
</Io>
|
</Io>
|
||||||
</Project>
|
</Project>
|
||||||
<Mappings>
|
<Mappings>
|
||||||
|
<MappingInfo Identifier="{00000000-2001-0850-0020-500840000403}" Id="#x02030030"/>
|
||||||
<MappingInfo Identifier="{00000000-2001-0850-0020-500851000403}" Id="#x02030020"/>
|
<MappingInfo Identifier="{00000000-2001-0850-0020-500851000403}" Id="#x02030020"/>
|
||||||
<MappingInfo Identifier="{03040050-0050-0304-5000-040350000403}" Id="#x02030010" Watchdog="04000000040000000400000004000000"/>
|
<MappingInfo Identifier="{03040050-0050-0304-5000-040350000403}" Id="#x02030010" Watchdog="04000000040000000400000004000000"/>
|
||||||
</Mappings>
|
</Mappings>
|
||||||
|
|||||||
@@ -8,31 +8,27 @@ VAR
|
|||||||
_fbEtcher1 : FB_Etcher;
|
_fbEtcher1 : FB_Etcher;
|
||||||
_fbEtcher2 : FB_Etcher;
|
_fbEtcher2 : FB_Etcher;
|
||||||
|
|
||||||
_stRobotCmd : ST_PMLc;
|
|
||||||
|
|
||||||
_xConfirmAlarms : BOOL;
|
_xConfirmAlarms : BOOL;
|
||||||
|
|
||||||
|
_stRobotCmd : ST_PMLc;
|
||||||
|
_stRobotStatus : ST_PMLs;
|
||||||
|
_stRobotAdmin : ST_PMLa;
|
||||||
|
|
||||||
|
_stRobotJobParams : ST_KukaRobot_JobParams;
|
||||||
|
|
||||||
|
|
||||||
|
// DEBUG commands
|
||||||
_xClear : BOOL;
|
_xClear : BOOL;
|
||||||
_xReset : BOOL;
|
_xReset : BOOL;
|
||||||
_xStart : BOOL;
|
_xStart : BOOL;
|
||||||
|
|
||||||
_stRobotStatus : ST_PMLs;
|
_xStartTrigger : BOOL;
|
||||||
_stRobotAdmin : ST_PMLa;
|
_tofTriggerTime : TOF := (PT := T#1S);
|
||||||
|
_xTriggerCamera AT %Q* : BOOL;
|
||||||
_xFirstCycle : BOOL := TRUE;
|
|
||||||
|
|
||||||
_stRecipeGripperChange : ST_PackMLRecipe := (
|
|
||||||
diID := 0,
|
|
||||||
sName := 'Change gripper'
|
|
||||||
);
|
|
||||||
END_VAR
|
END_VAR
|
||||||
]]></Declaration>
|
]]></Declaration>
|
||||||
<Implementation>
|
<Implementation>
|
||||||
<ST><![CDATA[IF _xFirstCycle THEN
|
<ST><![CDATA[IF _xClear THEN
|
||||||
_xFirstCycle := FALSE;
|
|
||||||
END_IF
|
|
||||||
|
|
||||||
IF _xClear THEN
|
|
||||||
_xClear := FALSE;
|
_xClear := FALSE;
|
||||||
_stRobotCmd.eCntrlCmd := E_PackMLCmd.CLEAR;
|
_stRobotCmd.eCntrlCmd := E_PackMLCmd.CLEAR;
|
||||||
_stRobotCmd.xCmdChangeRequest := TRUE;
|
_stRobotCmd.xCmdChangeRequest := TRUE;
|
||||||
@@ -52,6 +48,7 @@ END_IF
|
|||||||
|
|
||||||
_fbRobot(
|
_fbRobot(
|
||||||
stCommand:= _stRobotCmd,
|
stCommand:= _stRobotCmd,
|
||||||
|
stJobParams := _stRobotJobParams,
|
||||||
xReleaseAlarms:= TRUE,
|
xReleaseAlarms:= TRUE,
|
||||||
xConfirmAlarms:= _xConfirmAlarms,
|
xConfirmAlarms:= _xConfirmAlarms,
|
||||||
stStatus => _stRobotStatus,
|
stStatus => _stRobotStatus,
|
||||||
@@ -72,6 +69,16 @@ _fbEtcher2(xOpenDoor:= GVL_SCADA.xOpenAllChambers);
|
|||||||
// Call safety program
|
// Call safety program
|
||||||
PRG_Safety(xConfirmAlarms := GVL_SCADA.xErrAck);
|
PRG_Safety(xConfirmAlarms := GVL_SCADA.xErrAck);
|
||||||
|
|
||||||
|
// =====
|
||||||
|
// DEBUG
|
||||||
|
// =====
|
||||||
|
|
||||||
|
_tofTriggerTime(IN := _xStartTrigger);
|
||||||
|
IF _xStartTrigger THEN
|
||||||
|
_xStartTrigger := FALSE;
|
||||||
|
END_IF
|
||||||
|
_xTriggerCamera := _tofTriggerTime.Q;
|
||||||
|
|
||||||
// Reset alarm reset request
|
// Reset alarm reset request
|
||||||
GVL_SCADA.xErrAck := FALSE;
|
GVL_SCADA.xErrAck := FALSE;
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,11 @@
|
|||||||
<Declaration><![CDATA[// Positionen in um <=> 0.001mm
|
<Declaration><![CDATA[// Positionen in um <=> 0.001mm
|
||||||
FUNCTION_BLOCK FINAL FB_KukaRobot EXTENDS FB_PackMLGeneric
|
FUNCTION_BLOCK FINAL FB_KukaRobot EXTENDS FB_PackMLGeneric
|
||||||
VAR_INPUT
|
VAR_INPUT
|
||||||
eRobotJob : E_KukaRobot_JobNumberRobot;
|
stJobParams : ST_KukaRobot_JobParams;
|
||||||
|
|
||||||
|
// Feedbacks from other units
|
||||||
|
// like if a door is open and such things
|
||||||
|
stUnitFeedbacks : ST_KukaRobot_UnitFeedbacks;
|
||||||
|
|
||||||
xReleaseAlarms : BOOL;
|
xReleaseAlarms : BOOL;
|
||||||
xConfirmAlarms : BOOL;
|
xConfirmAlarms : BOOL;
|
||||||
@@ -52,13 +56,15 @@ VAR
|
|||||||
_asiMotorTemps1To4 AT %I* : ARRAY[0..3] OF SINT;
|
_asiMotorTemps1To4 AT %I* : ARRAY[0..3] OF SINT;
|
||||||
_asiMotorTemps5To8 AT %I* : ARRAY[0..3] OF SINT;
|
_asiMotorTemps5To8 AT %I* : ARRAY[0..3] OF SINT;
|
||||||
|
|
||||||
_eRobotJob : E_KukaRobot_JobNumberRobot;
|
|
||||||
_ePlcJob :E_KukaRobot_JobNumerPLC;
|
_ePlcJob :E_KukaRobot_JobNumerPLC;
|
||||||
|
|
||||||
_xRobotReady : BOOL;
|
_xRobotReady : BOOL;
|
||||||
|
|
||||||
_xError : BOOL;
|
_xError : BOOL;
|
||||||
|
|
||||||
|
// Internal job params will be copied from input
|
||||||
|
// only from IDLE -> STARTING
|
||||||
|
_stJobParams : ST_KukaRobot_JobParams;
|
||||||
|
|
||||||
// ======
|
// ======
|
||||||
// Alarms
|
// Alarms
|
||||||
@@ -139,12 +145,11 @@ IF _uState.stState.bT2 THEN
|
|||||||
END_IF
|
END_IF
|
||||||
|
|
||||||
|
|
||||||
// ==================
|
// ============================
|
||||||
// Write job outputs
|
// Write unit feedbacks outputs
|
||||||
// ==================
|
// ============================
|
||||||
|
|
||||||
|
|
||||||
//_uJobs.stJobs.wJobNrForRobot := _eRobotJob;
|
|
||||||
//_uJobs.stJobs.wFinishedJobNrFromPlc := _ePlcJob;
|
|
||||||
|
|
||||||
|
|
||||||
// =================
|
// =================
|
||||||
@@ -236,8 +241,7 @@ END_IF]]></ST>
|
|||||||
<Declaration><![CDATA[METHOD M_Idle
|
<Declaration><![CDATA[METHOD M_Idle
|
||||||
]]></Declaration>
|
]]></Declaration>
|
||||||
<Implementation>
|
<Implementation>
|
||||||
<ST><![CDATA[
|
<ST><![CDATA[_stJobParams := stJobParams;]]></ST>
|
||||||
]]></ST>
|
|
||||||
</Implementation>
|
</Implementation>
|
||||||
</Method>
|
</Method>
|
||||||
<Method Name="M_Resetting" Id="{dfe4d36a-80aa-4364-bfd8-6ddd41636d59}">
|
<Method Name="M_Resetting" Id="{dfe4d36a-80aa-4364-bfd8-6ddd41636d59}">
|
||||||
@@ -309,29 +313,103 @@ END_CASE]]></ST>
|
|||||||
</Method>
|
</Method>
|
||||||
<Method Name="M_Starting" Id="{011f85d8-1225-4288-876f-918df6e4f235}">
|
<Method Name="M_Starting" Id="{011f85d8-1225-4288-876f-918df6e4f235}">
|
||||||
<Declaration><![CDATA[METHOD M_Starting
|
<Declaration><![CDATA[METHOD M_Starting
|
||||||
]]></Declaration>
|
VAR_INST
|
||||||
|
_tonTimeout : TON;
|
||||||
|
END_VAR]]></Declaration>
|
||||||
<Implementation>
|
<Implementation>
|
||||||
<ST><![CDATA[// Write robot job number
|
<ST><![CDATA[CASE _iSSM OF
|
||||||
_uJobs.stJobs.wJobNrForRobot := DINT_TO_WORD(_stRecipe.stProcessVariables.astParameterDInt[0].Value);
|
// Check job parameters
|
||||||
|
0:
|
||||||
|
IF (_stJobParams.byGripperNumber < 0) OR (_stJobParams.byGripperNumber > 3) // Wrong gripper number
|
||||||
|
OR (_stJobParams.byChuckNumber < 1) OR (_stJobParams.byChuckNumber > 6) // Wrong chuck number
|
||||||
|
OR (_stJobParams.byGripperSide < 1) OR (_stJobParams.byGripperSide > 2) // Wrong gripper side
|
||||||
|
THEN
|
||||||
|
_eCmd := E_PackMLCmd.ABORT;
|
||||||
|
ELSE
|
||||||
|
_iSSM := 10;
|
||||||
|
END_IF
|
||||||
|
|
||||||
// Gripper number
|
// Transfer job data to robot
|
||||||
_abToolsAndPositions[0] := DINT_TO_BYTE(_stRecipe.stProcessVariables.astParameterDInt[1].Value);
|
10:
|
||||||
|
// Pos x in um
|
||||||
|
_diOffsetPosX := REAL_TO_DINT(_stJobParams.rPosX * 1000);
|
||||||
|
|
||||||
|
// Pos y in um
|
||||||
|
_diOffsetPosY := REAL_TO_DINT(_stJobParams.rPosY * 1000);
|
||||||
|
|
||||||
|
// Thickness
|
||||||
|
_diThickness := REAL_TO_DINT(_stJobParams.rThickness * 1000);
|
||||||
|
|
||||||
|
// Gripper side
|
||||||
|
IF _stJobParams.byGripperSide = 1 THEN
|
||||||
|
_uCtrl.stCtrl.bGripperSide1 := 1;
|
||||||
|
_uCtrl.stCtrl.bGripperSide2 := 0;
|
||||||
|
ELSIF _stJobParams.byGripperSide = 2 THEN
|
||||||
|
_uCtrl.stCtrl.bGripperSide1 := 0;
|
||||||
|
_uCtrl.stCtrl.bGripperSide2 := 1;
|
||||||
|
ELSE
|
||||||
|
_uCtrl.stCtrl.bGripperSide1 := 0;
|
||||||
|
_uCtrl.stCtrl.bGripperSide2 := 0;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Scan QR code
|
||||||
|
IF stJobParams.xScanQRCode THEN
|
||||||
|
_uCtrl.stCtrl.bScanQRCode := 1;
|
||||||
|
ELSE
|
||||||
|
_uCtrl.stCtrl.bScanQRCode := 0;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Position on hotplate
|
||||||
|
_abToolsAndPositions[2] := stJobParams.byPlaceOnHotplate;
|
||||||
|
|
||||||
|
// Position on coolplate
|
||||||
|
_abToolsAndPositions[3] := stJobParams.byPlaceOnCoolPlate;
|
||||||
|
|
||||||
|
// Gripper number
|
||||||
|
_abToolsAndPositions[0] := stJobParams.byGripperNumber;
|
||||||
|
|
||||||
|
// Chuck for etcher to load
|
||||||
|
_abToolsAndPositions[1] := stJobParams.byChuckNumber;
|
||||||
|
|
||||||
|
// Write robot job number
|
||||||
|
_uJobs.stJobs.wJobNrForRobot := DINT_TO_WORD(_stJobParams.eJob);
|
||||||
|
|
||||||
|
// Safety reset timout fb
|
||||||
|
_tonTimeout(IN := FALSE);
|
||||||
|
|
||||||
|
_iSSM := 20;
|
||||||
|
|
||||||
|
// Wait for robot program start
|
||||||
|
20:
|
||||||
|
_tonTimeout(IN := TRUE, PT := T#5S);
|
||||||
|
|
||||||
|
// If job number is read back correct, go to next state
|
||||||
|
IF _awJobStatesFromRobot[0] = _uJobs.stJobs.wJobNrForRobot THEN
|
||||||
|
_uJobs.stJobs.wJobNrForRobot := E_KukaRobot_JobNumberRobot.NO_JOB;
|
||||||
|
_tonTimeout(IN := FALSE);
|
||||||
|
M_StateComplete();
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Timeout occured
|
||||||
|
IF _tonTimeout.Q THEN
|
||||||
|
_tonTimeout(IN := FALSE);
|
||||||
|
_eCmd := E_PackMLCmd.ABORT;
|
||||||
|
END_IF
|
||||||
|
|
||||||
|
// Robot has error
|
||||||
|
IF _dwErrorBits <> 0 THEN
|
||||||
|
_tonTimeout(IN := FALSE);
|
||||||
|
_eCmd := E_PackMLCmd.ABORT;
|
||||||
|
END_IF
|
||||||
|
END_CASE
|
||||||
|
|
||||||
// If job number is read back correct, go to next state
|
|
||||||
IF _awJobStatesFromRobot[0] = _uJobs.stJobs.wJobNrForRobot THEN
|
|
||||||
_uJobs.stJobs.wJobNrForRobot := E_KukaRobot_JobNumberRobot.NO_JOB;
|
|
||||||
M_StateComplete();
|
|
||||||
END_IF
|
|
||||||
|
|
||||||
// Wrong job read back from robot -> Abort
|
// Wrong job read back from robot -> Abort
|
||||||
// IF _awJobStatesFromRobot[0] <> 0 AND _awJobStatesFromRobot[0] <> E_KukaRobot_JobNumberRobot.WARMUP THEN
|
// IF _awJobStatesFromRobot[0] <> 0 AND _awJobStatesFromRobot[0] <> E_KukaRobot_JobNumberRobot.WARMUP THEN
|
||||||
// _eCmd := E_PackMLCmd.ABORT;
|
// _eCmd := E_PackMLCmd.ABORT;
|
||||||
// END_IF
|
// END_IF
|
||||||
//
|
//
|
||||||
// // Robot has error
|
]]></ST>
|
||||||
// IF _dwErrorBits <> 0 THEN
|
|
||||||
// _eCmd := E_PackMLCmd.ABORT;
|
|
||||||
// END_IF]]></ST>
|
|
||||||
</Implementation>
|
</Implementation>
|
||||||
</Method>
|
</Method>
|
||||||
<Method Name="M_Stopped" Id="{50813767-4bd7-4147-b5dc-1bbd18ae1555}">
|
<Method Name="M_Stopped" Id="{50813767-4bd7-4147-b5dc-1bbd18ae1555}">
|
||||||
@@ -343,7 +421,7 @@ _uCtrl.stCtrl.bEnableAxes := 0;
|
|||||||
_uCtrl.stCtrl.bNotDisableAxes := 1;
|
_uCtrl.stCtrl.bNotDisableAxes := 1;
|
||||||
_uCtrl.stCtrl.bExtStart := 0;
|
_uCtrl.stCtrl.bExtStart := 0;
|
||||||
|
|
||||||
_eRobotJob := E_KukaRobot_JobNumberRobot.NO_JOB;
|
_uJobs.stJobs.wJobNrForRobot := E_KukaRobot_JobNumberRobot.NO_JOB;
|
||||||
_ePlcJob := E_KukaRobot_JobNumerPLC.NO_JOB;]]></ST>
|
_ePlcJob := E_KukaRobot_JobNumerPLC.NO_JOB;]]></ST>
|
||||||
</Implementation>
|
</Implementation>
|
||||||
</Method>
|
</Method>
|
||||||
|
|||||||
@@ -28,6 +28,25 @@ STRUCT
|
|||||||
// Abort job with rising edge
|
// Abort job with rising edge
|
||||||
bAbortJob : BIT;
|
bAbortJob : BIT;
|
||||||
|
|
||||||
|
// Scan qr code
|
||||||
|
bScanQRCode : BIT;
|
||||||
|
|
||||||
|
// Dummy bits
|
||||||
|
bDummy5 : BIT;
|
||||||
|
bDummy6 : BIT;
|
||||||
|
bDummy7 : BIT;
|
||||||
|
bDummy8 : BIT;
|
||||||
|
bDummy9 : BIT;
|
||||||
|
|
||||||
|
bGripperSide1 : BIT;
|
||||||
|
bGripperSide2 : BIT;
|
||||||
|
|
||||||
|
bDummy10 : BIT;
|
||||||
|
|
||||||
|
bDoorEtcher1Open : BIT;
|
||||||
|
bDoorEtcher2Open : BIT;
|
||||||
|
bDoorHVTestHotOpen : BIT;
|
||||||
|
bDoorHVTestColdOpen : BIT;
|
||||||
END_STRUCT
|
END_STRUCT
|
||||||
END_TYPE
|
END_TYPE
|
||||||
]]></Declaration>
|
]]></Declaration>
|
||||||
|
|||||||
39
PLC/01_Stationen/Kuka_Robot/ST_KukaRobot_JobParams.TcDUT
Normal file
39
PLC/01_Stationen/Kuka_Robot/ST_KukaRobot_JobParams.TcDUT
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1">
|
||||||
|
<DUT Name="ST_KukaRobot_JobParams" Id="{2332c64b-5fcf-4fc7-9272-3ad3ef2767d3}">
|
||||||
|
<Declaration><![CDATA[TYPE ST_KukaRobot_JobParams :
|
||||||
|
STRUCT
|
||||||
|
// Robot job number
|
||||||
|
eJob : E_KukaRobot_JobNumberRobot;
|
||||||
|
|
||||||
|
// Position in x in mm
|
||||||
|
rPosX : REAL;
|
||||||
|
|
||||||
|
// Position in y in mm
|
||||||
|
rPosY : REAL;
|
||||||
|
|
||||||
|
// Substrate thickness in mm
|
||||||
|
rThickness : REAL;
|
||||||
|
|
||||||
|
// Gripper side (1 or 2)
|
||||||
|
byGripperSide : BYTE;
|
||||||
|
|
||||||
|
// Scan QR Code during pickup from loading station
|
||||||
|
xScanQRCode : BOOL;
|
||||||
|
|
||||||
|
// Position on hotplate (1-9)
|
||||||
|
byPlaceOnHotplate : BYTE;
|
||||||
|
|
||||||
|
// Position on coolplate (1-9)
|
||||||
|
byPlaceOnCoolPlate : BYTE;
|
||||||
|
|
||||||
|
// Gripper tool number (0-3)
|
||||||
|
byGripperNumber : BYTE;
|
||||||
|
|
||||||
|
// Chuck for etcher to load (1-6)
|
||||||
|
byChuckNumber : BYTE;
|
||||||
|
END_STRUCT
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
14
PLC/01_Stationen/Kuka_Robot/ST_KukaRobot_UnitFeedbacks.TcDUT
Normal file
14
PLC/01_Stationen/Kuka_Robot/ST_KukaRobot_UnitFeedbacks.TcDUT
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TcPlcObject Version="1.1.0.1">
|
||||||
|
<DUT Name="ST_KukaRobot_UnitFeedbacks" Id="{d247890a-fdb7-498e-85a5-2423833e65fc}">
|
||||||
|
<Declaration><![CDATA[TYPE ST_KukaRobot_UnitFeedbacks :
|
||||||
|
STRUCT
|
||||||
|
xDoorEthcher1Open : BOOL;
|
||||||
|
xDoorEther2Open : BOOL;
|
||||||
|
xDoorHVTestHotOpen : BOOL;
|
||||||
|
xDoorHVTestColdOpen : BOOL;
|
||||||
|
END_STRUCT
|
||||||
|
END_TYPE
|
||||||
|
]]></Declaration>
|
||||||
|
</DUT>
|
||||||
|
</TcPlcObject>
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
<WriteProductVersion>false</WriteProductVersion>
|
<WriteProductVersion>false</WriteProductVersion>
|
||||||
<GenerateTpy>false</GenerateTpy>
|
<GenerateTpy>false</GenerateTpy>
|
||||||
<Name>PLC</Name>
|
<Name>PLC</Name>
|
||||||
<ProgramVersion>3.1.4026.19</ProgramVersion>
|
<ProgramVersion>3.1.4026.20</ProgramVersion>
|
||||||
<WriteBookmarksToFile>true</WriteBookmarksToFile>
|
<WriteBookmarksToFile>true</WriteBookmarksToFile>
|
||||||
<Application>{504e694b-aca9-4a4a-af71-0bcb7e8cc6f1}</Application>
|
<Application>{504e694b-aca9-4a4a-af71-0bcb7e8cc6f1}</Application>
|
||||||
<TypeSystem>{ca7afa57-b1d9-4c28-bd68-15ebf02c76f4}</TypeSystem>
|
<TypeSystem>{ca7afa57-b1d9-4c28-bd68-15ebf02c76f4}</TypeSystem>
|
||||||
@@ -60,6 +60,12 @@
|
|||||||
<Compile Include="01_Stationen\Kuka_Robot\InterfaceUnions\U_KukaRobot_Ctrl.TcDUT">
|
<Compile Include="01_Stationen\Kuka_Robot\InterfaceUnions\U_KukaRobot_Ctrl.TcDUT">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="01_Stationen\Kuka_Robot\ST_KukaRobot_JobParams.TcDUT">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="01_Stationen\Kuka_Robot\ST_KukaRobot_UnitFeedbacks.TcDUT">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="01_Stationen\TrayFeeder\FB_TrayFeeder.TcPOU">
|
<Compile Include="01_Stationen\TrayFeeder\FB_TrayFeeder.TcPOU">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -297,6 +303,12 @@
|
|||||||
<v>410,5410</v>
|
<v>410,5410</v>
|
||||||
</d>
|
</d>
|
||||||
</o>
|
</o>
|
||||||
|
<v>{eeeeeeee-3909-4298-8022-501ac3238667}</v>
|
||||||
|
<o>
|
||||||
|
<v n="Name">"{eeeeeeee-3909-4298-8022-501ac3238667}"</v>
|
||||||
|
<d n="SubKeys" t="Hashtable" />
|
||||||
|
<d n="Values" t="Hashtable" />
|
||||||
|
</o>
|
||||||
<v>{F66C7017-BDD8-4114-926C-81D6D687E35F}</v>
|
<v>{F66C7017-BDD8-4114-926C-81D6D687E35F}</v>
|
||||||
<o>
|
<o>
|
||||||
<v n="Name">"{F66C7017-BDD8-4114-926C-81D6D687E35F}"</v>
|
<v n="Name">"{F66C7017-BDD8-4114-926C-81D6D687E35F}"</v>
|
||||||
|
|||||||
36
PLC/PLC.tmc
36
PLC/PLC.tmc
File diff suppressed because one or more lines are too long
@@ -2,7 +2,7 @@
|
|||||||
<TcPlcObject Version="1.1.0.1">
|
<TcPlcObject Version="1.1.0.1">
|
||||||
<Task Name="PlcTask" Id="{023d9255-c87e-4da8-8cda-8bd3501e3aa4}">
|
<Task Name="PlcTask" Id="{023d9255-c87e-4da8-8cda-8bd3501e3aa4}">
|
||||||
<!--CycleTime in micro seconds.-->
|
<!--CycleTime in micro seconds.-->
|
||||||
<CycleTime>10000</CycleTime>
|
<CycleTime>8000</CycleTime>
|
||||||
<Priority>20</Priority>
|
<Priority>20</Priority>
|
||||||
<PouCall>
|
<PouCall>
|
||||||
<Name>PRG_Main</Name>
|
<Name>PRG_Main</Name>
|
||||||
|
|||||||
BIN
Screenshot 2026-01-30 120949.png
Normal file
BIN
Screenshot 2026-01-30 120949.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.19" ClassName="CDevDpRamDef" SubType="121">
|
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.20" ClassName="CDevDpRamDef" SubType="121">
|
||||||
<Device Id="11" Disabled="true" DevType="121">
|
<Device Id="11" Disabled="true" DevType="121">
|
||||||
<Name>__FILENAME__</Name>
|
<Name>__FILENAME__</Name>
|
||||||
<AddressInfo>
|
<AddressInfo>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.19" ClassName="CDevEthernetProtocolPnMasterDef" SubType="113">
|
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.20" ClassName="CDevEthernetProtocolPnMasterDef" SubType="113">
|
||||||
<DataTypes>
|
<DataTypes>
|
||||||
<DataType>
|
<DataType>
|
||||||
<Name GUID="{E8444853-3BAA-51A1-0E64-2996EF2FA842}">PN_Status_Register_0__6D643818</Name>
|
<Name GUID="{E8444853-3BAA-51A1-0E64-2996EF2FA842}">PN_Status_Register_0__6D643818</Name>
|
||||||
@@ -1060,7 +1060,7 @@
|
|||||||
</SubItem>
|
</SubItem>
|
||||||
</DataType>
|
</DataType>
|
||||||
</DataTypes>
|
</DataTypes>
|
||||||
<Device Id="2" Disabled="true" DevType="113" AmsPort="28674" AmsNetId="0.0.0.0.3.1" RemoteName="Device 2 (Profinet Controller)">
|
<Device Id="2" DevType="113" AmsPort="28674" AmsNetId="0.0.0.0.3.1" RemoteName="Device 2 (Profinet Controller)">
|
||||||
<Name>__FILENAME__</Name>
|
<Name>__FILENAME__</Name>
|
||||||
<AddressInfo>
|
<AddressInfo>
|
||||||
<Pnp>
|
<Pnp>
|
||||||
@@ -1072,12 +1072,9 @@
|
|||||||
<Image Id="4" AddrType="1" ImageType="3" SizeIn="2" SizeOut="6">
|
<Image Id="4" AddrType="1" ImageType="3" SizeIn="2" SizeOut="6">
|
||||||
<Name>Image</Name>
|
<Name>Image</Name>
|
||||||
</Image>
|
</Image>
|
||||||
<Box Id="4" BoxType="9121">
|
<Box Id="4" Disabled="true" BoxType="9121">
|
||||||
<Name>vs-0001</Name>
|
<Name>vs-0001</Name>
|
||||||
<Comment><![CDATA[
|
<Comment><![CDATA[GSDML Name: GSDML-V2.42-Keyence-VS-XXXX-20230509.xml
|
||||||
The GSDML is not available!
|
|
||||||
|
|
||||||
GSDML Name: GSDML-V2.42-Keyence-VS-XXXX-20230509.xml
|
|
||||||
Path: $(TWINCAT3DIR)Config\Io\Profinet\
|
Path: $(TWINCAT3DIR)Config\Io\Profinet\
|
||||||
VendorName: Keyence
|
VendorName: Keyence
|
||||||
OrderNumber: VS-XXXX
|
OrderNumber: VS-XXXX
|
||||||
@@ -1135,7 +1132,7 @@ SW Release Version: 1.0]]></Comment>
|
|||||||
<Type>UINT</Type>
|
<Type>UINT</Type>
|
||||||
</Var>
|
</Var>
|
||||||
</Vars>
|
</Vars>
|
||||||
<Profinet DeviceId="5013" VendorId="509" FrameOffset="32768" Flags="16" IPAdd="c0a80102" ProtocolType="3" BoxOnDeviceTyp="113" MaxPhysSlotNr="16" AvailableSlots="0..16" InstanceServerPort="61000" InstanceClientPort="60000" InstanceId="1" InstanceNumberOfARs="1" InstanceNumberOfAPIs="1" MinDeviceInterval="32" SavePnIoBoxValues="0100" MultipleWriteSupported="true" Phase="1" WatchdogFaktor="3" ReductionRatio="1" SendClockFaktor="32" MaxInputLen="1440" MaxOutputLen="1440" SendClockFactorData="200040008000" RedRatio="0100020004000800100020004000800000010002" BoxTypeInfo="VS-XXXX Series Machine Vision System" MacAdd5="176" GSDMLPath="$(TWINCAT3DIR)Config\Io\Profinet\GSDML-V2.42-Keyence-VS-XXXX-20230509.xml" ImagePath="C:\TwinCAT\3.1\Config\Io\Profinet\GSDML-01FD-1395-VS-XXXX.bmp" MainFamily="Sensors" ProductFamily="Keyence Machine Vision System" OrderNr="VS-XXXX" DefaultDNSName="vs-xxxx" VendorName="Keyence" FamDescription="VS Series Machine Vision System" GraphicFile="GSDML-01FD-1395-VS-XXXX" SWVersion="1.0" HWVersion="1.0" AltLanguage="7">
|
<Profinet DeviceId="5013" VendorId="509" FrameOffset="32768" Flags="16" IPAdd="c0a80102" ProtocolType="3" BoxOnDeviceTyp="113" MaxPhysSlotNr="16" AvailableSlots="0..16" InstanceServerPort="61000" InstanceClientPort="60000" InstanceId="1" InstanceNumberOfARs="1" InstanceNumberOfAPIs="1" MinDeviceInterval="32" SavePnIoBoxValues="0100" MultipleWriteSupported="true" Phase="1" WatchdogFaktor="3" ReductionRatio="4" SendClockFaktor="32" MaxInputLen="1440" MaxOutputLen="1440" SendClockFactorData="200040008000" RedRatio="0100020004000800100020004000800000010002" BoxTypeInfo="VS-XXXX Series Machine Vision System" MacAdd5="176" GSDMLPath="$(TWINCAT3DIR)Config\Io\Profinet\GSDML-V2.42-Keyence-VS-XXXX-20230509.xml" ImagePath="C:\TwinCAT\3.1\Config\Io\Profinet\GSDML-01FD-1395-VS-XXXX.bmp" MainFamily="Sensors" ProductFamily="Keyence Machine Vision System" OrderNr="VS-XXXX" DefaultDNSName="vs-xxxx" VendorName="Keyence" FamDescription="VS Series Machine Vision System" GraphicFile="GSDML-01FD-1395-VS-XXXX" SWVersion="1.0" HWVersion="1.0" AltLanguage="7">
|
||||||
<UsedGsdmlModule ModuleIdentNumber="1" ModuleName="DAP Module" InfoText="VS-XXXX Series Machine Vision System" OrderNumber="VS-XXXX">
|
<UsedGsdmlModule ModuleIdentNumber="1" ModuleName="DAP Module" InfoText="VS-XXXX Series Machine Vision System" OrderNumber="VS-XXXX">
|
||||||
<Slot>0</Slot>
|
<Slot>0</Slot>
|
||||||
</UsedGsdmlModule>
|
</UsedGsdmlModule>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.19" ClassName="CTComPlcObjDef">
|
<TcSmItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.20" ClassName="CTComPlcObjDef">
|
||||||
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" XtvPath="PLC\PLC Instance.xtv" TmcPath="PLC\PLC.tmc">
|
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" XtvPath="PLC\PLC Instance.xtv" TmcPath="PLC\PLC.tmc">
|
||||||
<Name>__FILENAME__</Name>
|
<Name>__FILENAME__</Name>
|
||||||
<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
|
<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
<OTCID>#x02010030</OTCID>
|
<OTCID>#x02010030</OTCID>
|
||||||
</ManualConfig>
|
</ManualConfig>
|
||||||
<Priority>20</Priority>
|
<Priority>20</Priority>
|
||||||
<CycleTime>10000000</CycleTime>
|
<CycleTime>8000000</CycleTime>
|
||||||
</Context>
|
</Context>
|
||||||
</Contexts>
|
</Contexts>
|
||||||
<TaskPouOids>
|
<TaskPouOids>
|
||||||
@@ -20,6 +20,29 @@
|
|||||||
</Instance>
|
</Instance>
|
||||||
<Mappings>
|
<Mappings>
|
||||||
<OwnerA>
|
<OwnerA>
|
||||||
|
<OwnerB Name="TIID^Device 1 (EtherCAT)^Box 44 (EX260-SEC1)">
|
||||||
|
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xCloseDoor1" VarB="Byte 0^Output[3]" Size="1"/>
|
||||||
|
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xCloseDoor2" VarB="Byte 0^Output[1]" Size="1"/>
|
||||||
|
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xOpenDoor1" VarB="Byte 0^Output[2]" Size="1"/>
|
||||||
|
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xOpenDoor2" VarB="Byte 0^Output[0]" Size="1"/>
|
||||||
|
</OwnerB>
|
||||||
|
<OwnerB Name="TIID^Device 1 (EtherCAT)^HV_K01_KL01^HV_K01_KL07 (EL2008)">
|
||||||
|
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xCloseChamber1" VarB="Channel 6^HV Hot_CloseChamber" Size="1"/>
|
||||||
|
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xCloseChamber2" VarB="Channel 3^HV Cold_CloseChamber" Size="1"/>
|
||||||
|
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xOpenChamber1" VarB="Channel 5^HV Hot_OpenChamber" Size="1"/>
|
||||||
|
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xOpenChamber2" VarB="Channel 2^HV Cold_OpenChamber" Size="1"/>
|
||||||
|
</OwnerB>
|
||||||
|
<OwnerB Name="TIID^Device 1 (EtherCAT)^K01_KL01 (EK1100)^K01_KL02 (EL1018)">
|
||||||
|
<Link VarA="PlcTask Inputs^PRG_Safety._xRequestOpenDoor" VarB="Channel 4^MainDoorUnlock" Size="1"/>
|
||||||
|
</OwnerB>
|
||||||
|
<OwnerB Name="TIID^Device 1 (EtherCAT)^K20_QM01 (EX260-SEC1)">
|
||||||
|
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._xCloseDoor" VarB="Byte 0^Output[1]" Size="1"/>
|
||||||
|
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._xOpenDoor" VarB="Byte 0^Output[0]" Size="1"/>
|
||||||
|
</OwnerB>
|
||||||
|
<OwnerB Name="TIID^Device 1 (EtherCAT)^K21_QM01 (EX260-SEC1)">
|
||||||
|
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._xCloseDoor" VarB="Byte 0^Output[1]" Size="1"/>
|
||||||
|
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._xOpenDoor" VarB="Byte 0^Output[0]" Size="1"/>
|
||||||
|
</OwnerB>
|
||||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^PC_K01_KL01 (EK1100)^PC_K01_KL02 (EL1918)">
|
<OwnerB Name="TIID^Device 1 (EtherCAT)^PC_K01_KL01 (EK1100)^PC_K01_KL02 (EL1918)">
|
||||||
<Link VarA="PlcTask Inputs^PRG_Safety._xComStartup" VarB="StandardInputs^Standard Out Var 12" Size="1"/>
|
<Link VarA="PlcTask Inputs^PRG_Safety._xComStartup" VarB="StandardInputs^Standard Out Var 12" Size="1"/>
|
||||||
<Link VarA="PlcTask Outputs^PRG_Safety._xErrorAck" VarB="StandardOutputs^Standard In Var 212" Size="1"/>
|
<Link VarA="PlcTask Outputs^PRG_Safety._xErrorAck" VarB="StandardOutputs^Standard In Var 212" Size="1"/>
|
||||||
@@ -44,28 +67,8 @@
|
|||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._uCtrl" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 0 (CMDs)"/>
|
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._uCtrl" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 0 (CMDs)"/>
|
||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._uJobs" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 1 (JobNr/PLCJobNr)"/>
|
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._uJobs" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 1 (JobNr/PLCJobNr)"/>
|
||||||
</OwnerB>
|
</OwnerB>
|
||||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^Box 44 (EX260-SEC1)">
|
<OwnerB Name="TIID^Device 2 (Profinet Controller)^vs-0001">
|
||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xCloseDoor1" VarB="Byte 0^Output[3]" Size="1"/>
|
<Link VarA="PlcTask Outputs^PRG_Main._xTriggerCamera" VarB="API^Term 10 (Control)^Subterm 12 (Control)^Outputs^Control Register[0]^Trigger" Size="1"/>
|
||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xCloseDoor2" VarB="Byte 0^Output[1]" Size="1"/>
|
|
||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xOpenDoor1" VarB="Byte 0^Output[2]" Size="1"/>
|
|
||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xOpenDoor2" VarB="Byte 0^Output[0]" Size="1"/>
|
|
||||||
</OwnerB>
|
|
||||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^HV_K01_KL01^HV_K01_KL07 (EL2008)">
|
|
||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xCloseChamber1" VarB="Channel 6^HV Hot_CloseChamber" Size="1"/>
|
|
||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xCloseChamber2" VarB="Channel 3^HV Cold_CloseChamber" Size="1"/>
|
|
||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xOpenChamber1" VarB="Channel 5^HV Hot_OpenChamber" Size="1"/>
|
|
||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbHVTester._xOpenChamber2" VarB="Channel 2^HV Cold_OpenChamber" Size="1"/>
|
|
||||||
</OwnerB>
|
|
||||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^K01_KL01 (EK1100)^K01_KL02 (EL1018)">
|
|
||||||
<Link VarA="PlcTask Inputs^PRG_Safety._xRequestOpenDoor" VarB="Channel 4^MainDoorUnlock" Size="1"/>
|
|
||||||
</OwnerB>
|
|
||||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^K20_QM01 (EX260-SEC1)">
|
|
||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._xCloseDoor" VarB="Byte 0^Output[1]" Size="1"/>
|
|
||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher2._xOpenDoor" VarB="Byte 0^Output[0]" Size="1"/>
|
|
||||||
</OwnerB>
|
|
||||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^K21_QM01 (EX260-SEC1)">
|
|
||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._xCloseDoor" VarB="Byte 0^Output[1]" Size="1"/>
|
|
||||||
<Link VarA="PlcTask Outputs^PRG_Main._fbEtcher1._xOpenDoor" VarB="Byte 0^Output[0]" Size="1"/>
|
|
||||||
</OwnerB>
|
</OwnerB>
|
||||||
</OwnerA>
|
</OwnerA>
|
||||||
</Mappings>
|
</Mappings>
|
||||||
|
|||||||
@@ -1,50 +1,33 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"description": "Beschreibung der Rezeptparameter",
|
"description": "Description of the etcher recipe parameters",
|
||||||
"maxParams": 5
|
"maxParams": 5
|
||||||
},
|
},
|
||||||
"processVariables": {
|
"processVariables": {
|
||||||
"real": [
|
"real": [
|
||||||
{
|
{
|
||||||
"index": 0,
|
"index": 0,
|
||||||
"id": 1,
|
"name": "Temperature hot plate",
|
||||||
"name": "Temperatur",
|
|
||||||
"unit": "degC",
|
"unit": "degC",
|
||||||
"min": 0.0,
|
"min": 0.0,
|
||||||
"max": 60.5
|
"max": 60.0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index": 1,
|
"index": 1,
|
||||||
"id": 2,
|
"name": "Temperature cold plate",
|
||||||
"name": "Dummy 1",
|
"unit": "degC",
|
||||||
"unit": "mm",
|
|
||||||
"min": 0.0,
|
"min": 0.0,
|
||||||
"max": 100.0
|
"max": 60.0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"string": [
|
"string": [
|
||||||
{
|
|
||||||
"index": "0",
|
|
||||||
"id": 4,
|
|
||||||
"name": "Dummy string",
|
|
||||||
"unit": ""
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"lreal": [
|
"lreal": [
|
||||||
{
|
|
||||||
"index": 0,
|
|
||||||
"id": 5,
|
|
||||||
"name": "Test lreal",
|
|
||||||
"unit": "um",
|
|
||||||
"min": -123000.3,
|
|
||||||
"max": 450000.264
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"dint": [
|
"dint": [
|
||||||
{
|
{
|
||||||
"index": 0,
|
"index": 0,
|
||||||
"id": 6,
|
|
||||||
"name": "Greifer Nummer",
|
"name": "Greifer Nummer",
|
||||||
"unit": "",
|
"unit": "",
|
||||||
"min": 1,
|
"min": 1,
|
||||||
@@ -52,7 +35,6 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index": 1,
|
"index": 1,
|
||||||
"id": 7,
|
|
||||||
"name": "Teller nummer",
|
"name": "Teller nummer",
|
||||||
"unit": "",
|
"unit": "",
|
||||||
"min": 1,
|
"min": 1,
|
||||||
66
doc/main_recipe_data.json
Normal file
66
doc/main_recipe_data.json
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"version": "1.0",
|
||||||
|
"description": "Description of the main recipe parameters",
|
||||||
|
"maxParams": 5
|
||||||
|
},
|
||||||
|
"processVariables": {
|
||||||
|
"real": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Durchmesser der Scheibe",
|
||||||
|
"unit": "mm",
|
||||||
|
"min": 0,
|
||||||
|
"max": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Dicke der Scheibe",
|
||||||
|
"unit": "mm",
|
||||||
|
"min": 0,
|
||||||
|
"max": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Temperature hot plate",
|
||||||
|
"unit": "degC",
|
||||||
|
"min": 0.0,
|
||||||
|
"max": 60.0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Temperature cold plate",
|
||||||
|
"unit": "degC",
|
||||||
|
"min": 0.0,
|
||||||
|
"max": 60.0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"string": [
|
||||||
|
],
|
||||||
|
"lreal": [
|
||||||
|
],
|
||||||
|
"dint": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Greifer Nummer",
|
||||||
|
"unit": "",
|
||||||
|
"min": 1,
|
||||||
|
"max": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Teller nummer",
|
||||||
|
"unit": "",
|
||||||
|
"min": 1,
|
||||||
|
"max": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Aetzer rezept",
|
||||||
|
"unit": "",
|
||||||
|
"min": 1,
|
||||||
|
"max": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,10 +21,9 @@
|
|||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": ["index", "id", "name", "unit", "min", "max"],
|
"required": ["index", "name", "unit", "min", "max"],
|
||||||
"properties": {
|
"properties": {
|
||||||
"index": { "type": "integer", "minimum": 0 },
|
"index": { "type": "integer", "minimum": 0 },
|
||||||
"id": { "type": "integer", "minimum": 0 },
|
|
||||||
"name": { "type": "string", "maxLength": 80 },
|
"name": { "type": "string", "maxLength": 80 },
|
||||||
"unit": { "type": "string", "maxLength": 6 },
|
"unit": { "type": "string", "maxLength": 6 },
|
||||||
"min": { "type": "number" },
|
"min": { "type": "number" },
|
||||||
@@ -37,10 +36,9 @@
|
|||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": ["index", "id", "name", "unit", "min", "max"],
|
"required": ["index", "name", "unit", "min", "max"],
|
||||||
"properties": {
|
"properties": {
|
||||||
"index": { "type": "integer", "minimum": 0 },
|
"index": { "type": "integer", "minimum": 0 },
|
||||||
"id": { "type": "integer", "minimum": 0 },
|
|
||||||
"name": { "type": "string", "maxLength": 80 },
|
"name": { "type": "string", "maxLength": 80 },
|
||||||
"unit": { "type": "string", "maxLength": 6 },
|
"unit": { "type": "string", "maxLength": 6 },
|
||||||
"min": { "type": "number" },
|
"min": { "type": "number" },
|
||||||
@@ -53,10 +51,9 @@
|
|||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": ["index", "id", "name", "unit", "min", "max"],
|
"required": ["index", "name", "unit", "min", "max"],
|
||||||
"properties": {
|
"properties": {
|
||||||
"index": { "type": "integer", "minimum": 0 },
|
"index": { "type": "integer", "minimum": 0 },
|
||||||
"id": { "type": "integer", "minimum": 0 },
|
|
||||||
"name": { "type": "string", "maxLength": 80 },
|
"name": { "type": "string", "maxLength": 80 },
|
||||||
"unit": { "type": "string", "maxLength": 6 },
|
"unit": { "type": "string", "maxLength": 6 },
|
||||||
"min": { "type": "integer" },
|
"min": { "type": "integer" },
|
||||||
@@ -69,10 +66,9 @@
|
|||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": ["index", "id", "name", "unit"],
|
"required": ["index", "name", "unit"],
|
||||||
"properties": {
|
"properties": {
|
||||||
"index": { "type": [ "integer", "string" ] },
|
"index": { "type": [ "integer", "string" ] },
|
||||||
"id": { "type": "integer", "minimum": 0 },
|
|
||||||
"name": { "type": "string", "maxLength": 80 },
|
"name": { "type": "string", "maxLength": 80 },
|
||||||
"unit": { "type": "string", "maxLength": 6 }
|
"unit": { "type": "string", "maxLength": 6 }
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user