Started kuka robot integration with hardware
- Modified PackML state machine to be able to disable unused states - Added PackTag datatypes for recipe handling - Started recipe parameter description in json file - Added schema file for recipe json - Added state machine drawing for packml
This commit is contained in:
5
.gitignore
vendored
5
.gitignore
vendored
@@ -17,7 +17,7 @@ LineIDs.dbg.bak
|
||||
# TwinCAT C++ and shared types
|
||||
# ignoring the TMC file is only useful for plain PLC programming
|
||||
# as soon as shared data types (via tmc), C++ or in general TcCom-Module are used, the TMC file has to be part of the repository
|
||||
*.tmc
|
||||
#*.tmc
|
||||
*.tmcRefac
|
||||
|
||||
# TwinCAT project files
|
||||
@@ -57,4 +57,5 @@ commit.txt
|
||||
*.xlsx
|
||||
# TwinCAT HMI, filter downloaded JSON schema files
|
||||
json-schema.org
|
||||
|
||||
# Drawio backup file
|
||||
*.bkp
|
||||
|
||||
@@ -148,7 +148,6 @@ Global
|
||||
{16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT OS (ARMV8-A).ActiveCfg = Release|TwinCAT OS (ARMV8-A)
|
||||
{16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT OS (ARMV8-A).Build.0 = Release|TwinCAT OS (ARMV8-A)
|
||||
{16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT OS (x64).ActiveCfg = Release|TwinCAT OS (x64)
|
||||
{16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT OS (x64).Build.0 = Release|TwinCAT OS (x64)
|
||||
{16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT OS (x64-E).ActiveCfg = Release|TwinCAT OS (x64-E)
|
||||
{16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT OS (x64-E).Build.0 = Release|TwinCAT OS (x64-E)
|
||||
{16E7B360-DCD5-431E-9380-EF0E96A38071}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
|
||||
|
||||
43
Infineon.tmc
Normal file
43
Infineon.tmc
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0"?>
|
||||
<TcModuleClass>
|
||||
<DataTypes>
|
||||
<DataType>
|
||||
<Name GUID="{339BB0B6-ADBA-4B47-8EE3-13A207970890}">KukaRobot</Name>
|
||||
<DisplayName TxtId=""><![CDATA[NewEventClass_DisplayText]]></DisplayName>
|
||||
<EventId>
|
||||
<Name Id="1">NotInExtMode</Name>
|
||||
<DisplayName TxtId=""><![CDATA[Robot not in external control mode]]></DisplayName>
|
||||
<Severity>Error</Severity>
|
||||
</EventId>
|
||||
<EventId>
|
||||
<Name Id="2">EStopActive</Name>
|
||||
<DisplayName TxtId=""><![CDATA[Robot E-Stop active]]></DisplayName>
|
||||
<Severity>Error</Severity>
|
||||
</EventId>
|
||||
<EventId>
|
||||
<Name Id="3">OperatorSafetyNotOk</Name>
|
||||
<DisplayName TxtId=""><![CDATA[Robot operator safety circuit not ok]]></DisplayName>
|
||||
<Severity>Error</Severity>
|
||||
</EventId>
|
||||
<EventId>
|
||||
<Name Id="4">ErrorResetTimeout</Name>
|
||||
<DisplayName TxtId=""><![CDATA[Could not clear robot errors]]></DisplayName>
|
||||
<Severity>Error</Severity>
|
||||
</EventId>
|
||||
<EventId>
|
||||
<Name Id="5">DrivesEnableTimeout</Name>
|
||||
<DisplayName TxtId=""><![CDATA[Robot drives enable timeout]]></DisplayName>
|
||||
<Severity>Error</Severity>
|
||||
</EventId>
|
||||
<Hides>
|
||||
<Hide GUID="{456A0777-3241-483C-B513-164C5A2791FC}"/>
|
||||
<Hide GUID="{8667E78C-B458-4844-A8FF-6F6F9FAB3AD8}"/>
|
||||
<Hide GUID="{19AD4B51-9848-4D2F-B3C6-0B9D73C65FC8}"/>
|
||||
<Hide GUID="{AB2C3294-2622-41B3-900A-1D65C96AB69A}"/>
|
||||
<Hide GUID="{F663CA49-4C12-4553-8D89-6771B31CACAF}"/>
|
||||
<Hide GUID="{50756BBB-BCBF-4D48-B02D-A67D3118B1C3}"/>
|
||||
<Hide GUID="{BDB0FE5C-F185-4694-A82E-41F8D3A78B4B}"/>
|
||||
</Hides>
|
||||
</DataType>
|
||||
</DataTypes>
|
||||
</TcModuleClass>
|
||||
@@ -1,7 +1,10 @@
|
||||
<?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">
|
||||
<Project ProjectGUID="{CB97A0B0-7E22-470D-8550-AA318EA46E50}" TargetNetId="5.167.199.178.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>
|
||||
<Settings MaxCpus="4" NonWinCpus="2">
|
||||
<Cpu CpuId="2"/>
|
||||
</Settings>
|
||||
<Licenses>
|
||||
<Target>
|
||||
<ManualSelect>{2752D285-16AD-4E89-AE6C-80E72784D264}</ManualSelect>
|
||||
@@ -39,4 +42,7 @@
|
||||
<Device File="Device 5 (EtherCAT).xti" Id="5"/>
|
||||
</Io>
|
||||
</Project>
|
||||
<Mappings>
|
||||
<MappingInfo Identifier="{00000000-0010-0304-1000-040310000403}" Id="#x02030010"/>
|
||||
</Mappings>
|
||||
</TcSmProject>
|
||||
|
||||
@@ -8,8 +8,23 @@ VAR
|
||||
_fbEtcher1 : FB_Etcher;
|
||||
_fbEtcher2 : FB_Etcher;
|
||||
|
||||
_stRobotCmd : ST_PMLc;
|
||||
|
||||
_xConfirmAlarms : BOOL;
|
||||
|
||||
_xClear : BOOL;
|
||||
_xReset : BOOL;
|
||||
_xStart : BOOL;
|
||||
|
||||
_stRobotStatus : ST_PMLs;
|
||||
_stRobotAdmin : ST_PMLa;
|
||||
|
||||
_xFirstCycle : BOOL := TRUE;
|
||||
|
||||
_stRecipeGripperChange : ST_PackMLRecipe := (
|
||||
diID := 0,
|
||||
sName := 'Change gripper'
|
||||
);
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
@@ -17,18 +32,52 @@ END_VAR
|
||||
_xFirstCycle := FALSE;
|
||||
END_IF
|
||||
|
||||
_fbRobot(xExecute:= , eCMD:= , eCurrentState=> , eCurrentCMD=> );
|
||||
IF _xClear THEN
|
||||
_xClear := FALSE;
|
||||
_stRobotCmd.eCntrlCmd := E_PackMLCmd.CLEAR;
|
||||
_stRobotCmd.xCmdChangeRequest := TRUE;
|
||||
END_IF
|
||||
|
||||
IF _xReset THEN
|
||||
_xReset := FALSE;
|
||||
_stRobotCmd.eCntrlCmd := E_PackMLCmd.RESET;
|
||||
_stRobotCmd.xCmdChangeRequest := TRUE;
|
||||
END_IF
|
||||
|
||||
IF _xStart THEN
|
||||
_xStart := FALSE;
|
||||
_stRobotCmd.eCntrlCmd := E_PackMLCmd.START;
|
||||
_stRobotCmd.xCmdChangeRequest := TRUE;
|
||||
END_IF
|
||||
|
||||
_fbRobot(
|
||||
stCommand:= _stRobotCmd,
|
||||
xReleaseAlarms:= TRUE,
|
||||
xConfirmAlarms:= _xConfirmAlarms,
|
||||
stStatus => _stRobotStatus,
|
||||
stAdmin => _stRobotAdmin,
|
||||
xReady=> ,
|
||||
xError=> );
|
||||
|
||||
IF _stRobotCmd.xCmdChangeRequest THEN
|
||||
_stRobotCmd.xCmdChangeRequest := FALSE;
|
||||
END_IF
|
||||
|
||||
_fbHVTester(xOpenChambers:= GVL_SCADA.xOpenAllChambers);
|
||||
|
||||
_fbEtcher1(xOpenDoor:= GVL_SCADA.xOpenAllChambers);
|
||||
_fbEtcher2(xOpenDoor:= GVL_SCADA.xOpenAllChambers);
|
||||
|
||||
|
||||
// Call safety program
|
||||
PRG_Safety(xConfirmAlarms := GVL_SCADA.xErrAck);
|
||||
|
||||
// Reset alarm reset request
|
||||
GVL_SCADA.xErrAck := FALSE;]]></ST>
|
||||
GVL_SCADA.xErrAck := FALSE;
|
||||
|
||||
IF _xConfirmAlarms THEN
|
||||
_xConfirmAlarms := FALSE;
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
@@ -59,7 +59,9 @@ TYPE E_KukaRobot_JobNumberRobot :
|
||||
PUT_CHUCK_ETCHER1 := 62,
|
||||
PUT_CHUCK_ETCHER2 := 63,
|
||||
PUT_CHUCK_INTO_MAGAZINE := 64,
|
||||
GET_CHUCK_FROM_MAGAZINE := 65
|
||||
GET_CHUCK_FROM_MAGAZINE := 65,
|
||||
|
||||
WARMUP := 80
|
||||
) WORD := NO_JOB;
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
<Declaration><![CDATA[// Positionen in um <=> 0.001mm
|
||||
FUNCTION_BLOCK FINAL FB_KukaRobot EXTENDS FB_PackMLGeneric
|
||||
VAR_INPUT
|
||||
eRobotJob : E_KukaRobot_JobNumberRobot;
|
||||
|
||||
xReleaseAlarms : BOOL;
|
||||
xConfirmAlarms : BOOL;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
@@ -56,13 +59,16 @@ VAR
|
||||
|
||||
_xError : BOOL;
|
||||
|
||||
|
||||
// ======
|
||||
// Alarms
|
||||
// ======
|
||||
|
||||
_fbAlarmNotInExtMode : FB_AlarmMessage(stEventEntry := TC_EVENTS.RobotEvents.RobotNotInExtMode, xWithConfirmation := FALSE);
|
||||
_fbAlarmEStopActive : FB_AlarmMessage(stEventEntry := TC_EVENTS.RobotEvents.RobotEStopActive, xWithConfirmation := FALSE);
|
||||
_fbAlarmOperatorSafetyNotOk : FB_AlarmMessage(stEventEntry := TC_EVENTS.RobotEvents.OperatorSafetyNotOk, xWithConfirmation := FALSE);
|
||||
_fbAlarmNotInExtMode : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.NotInExtMode, xWithConfirmation := FALSE);
|
||||
_fbAlarmEStopActive : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.EStopActive, xWithConfirmation := FALSE);
|
||||
_fbAlarmOperatorSafetyNotOk : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.OperatorSafetyNotOk, xWithConfirmation := FALSE);
|
||||
_fbAlarmRobotErrorResetTimeout : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.ErrorResetTimeout, xWithConfirmation := TRUE);
|
||||
_fbAlarmDrivesEnableTimeout : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.DrivesEnableTimeout, xWithConfirmation := TRUE);
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
@@ -91,12 +97,22 @@ _fbAlarmOperatorSafetyNotOk(
|
||||
timOnDelay:= T#0S,
|
||||
timOffDelay:= T#0S);
|
||||
|
||||
// Handled by M_Resetting
|
||||
_fbAlarmDrivesEnableTimeout(
|
||||
xRelease:= xReleaseAlarms,
|
||||
xAcknowledge:= xConfirmAlarms);
|
||||
|
||||
// Handled by M_Resetting
|
||||
_fbAlarmRobotErrorResetTimeout(
|
||||
xRelease:= xReleaseAlarms,
|
||||
xAcknowledge:= xConfirmAlarms);
|
||||
|
||||
|
||||
// =======================
|
||||
// Check if robot is ready
|
||||
// =======================
|
||||
|
||||
_xRobotReady := _uState.stState.bExt
|
||||
_xRobotReady := _uState.stState.bExt
|
||||
AND _uState.stState.bAlarmStop
|
||||
AND _uState.stState.bUserSAF
|
||||
AND _uState.stState.bPeriRdy
|
||||
@@ -118,9 +134,7 @@ SUPER^();
|
||||
_uCtrl.stCtrl.bNotDisableAxes := 1;
|
||||
|
||||
// Disable move if in T2 for safety reasons
|
||||
IF (NOT _uState.stState.bT2) THEN
|
||||
_uCtrl.stCtrl.bEnableMove := 1;
|
||||
ELSE
|
||||
IF _uState.stState.bT2 THEN
|
||||
_uCtrl.stCtrl.bEnableMove := 0;
|
||||
END_IF
|
||||
|
||||
@@ -129,8 +143,8 @@ END_IF
|
||||
// Write job outputs
|
||||
// ==================
|
||||
|
||||
_uJobs.stJobs.wJobNrForRobot := _eRobotJob;
|
||||
_uJobs.stJobs.wFinishedJobNrFromPlc := _ePlcJob;
|
||||
//_uJobs.stJobs.wJobNrForRobot := _eRobotJob;
|
||||
//_uJobs.stJobs.wFinishedJobNrFromPlc := _ePlcJob;
|
||||
|
||||
|
||||
// =================
|
||||
@@ -140,15 +154,225 @@ _uJobs.stJobs.wFinishedJobNrFromPlc := _ePlcJob;
|
||||
xReady := _xRobotReady;
|
||||
xError := _xError;]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="FB_Init" Id="{71a3f6f0-d3bb-4348-acc7-be533d7488d2}">
|
||||
<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[_stSMConfig.xStoppingDisabled := TRUE;
|
||||
|
||||
_stSMConfig.xCompletingDisabled := TRUE;
|
||||
_stSMConfig.xCompletedDisabled := TRUE;
|
||||
|
||||
_stSMConfig.xAbortingDisabled := TRUE;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Aborted" Id="{0c0c17ce-5c1c-4640-9d39-f25b22309d5d}">
|
||||
<Declaration><![CDATA[METHOD M_Aborted
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Reset all relevant robot control signals
|
||||
_uCtrl.stCtrl.bConfMess := 0;
|
||||
_uCtrl.stCtrl.bExtStart := 0;
|
||||
_uCtrl.stCtrl.bEnableAxes := 0;
|
||||
_uCtrl.stCtrl.bEnableMove := 0;
|
||||
_uCtrl.stCtrl.bNotDisableAxes := 1;
|
||||
_uCtrl.stCtrl.bAbortJob := 1;
|
||||
|
||||
// Reset robot program and plc job number
|
||||
_uJobs.stJobs.wJobNrForRobot := E_KukaRobot_JobNumberRobot.NO_JOB;
|
||||
_uJobs.stJobs.wFinishedJobNrFromPlc := E_KukaRobot_JobNumerPLC.NO_JOB;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Clearing" Id="{e6152288-8c7d-4b38-bfbc-4f861d76ccc5}">
|
||||
<Declaration><![CDATA[METHOD M_Clearing
|
||||
VAR_INST
|
||||
_tonWait : TON;
|
||||
END_VAR]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[_tonWait(IN := TRUE, PT := T#1S);
|
||||
_uCtrl.stCtrl.bEnableMove := 1;
|
||||
_uCtrl.stCtrl.bAbortJob := 0;
|
||||
|
||||
IF _tonWait.Q THEN
|
||||
_tonWait(IN := FALSE, PT := T#1S);
|
||||
M_StateComplete();
|
||||
END_IF
|
||||
|
||||
]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Execute" Id="{bc86876c-a8db-4285-b95c-7c6858a2ca66}">
|
||||
<Declaration><![CDATA[METHOD M_Execute
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Wait for robot to be done
|
||||
IF _awJobStatesFromRobot[0] = 0 THEN
|
||||
_eCmd := E_PackMLCmd.COMPLETE;
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Held" Id="{22ddbad0-0b66-427e-a2aa-f177f8adbc94}">
|
||||
<Declaration><![CDATA[METHOD M_Held
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Holding" Id="{ff8c2c8e-1fe0-4c63-ad7b-790d72bd9217}">
|
||||
<Declaration><![CDATA[METHOD M_Holding
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Idle" Id="{025437ab-beb0-4ad6-bdc3-468dec599ff4}">
|
||||
<Declaration><![CDATA[METHOD M_Idle
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[
|
||||
]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Resetting" Id="{dfe4d36a-80aa-4364-bfd8-6ddd41636d59}">
|
||||
<Declaration><![CDATA[METHOD M_Resetting
|
||||
VAR_INST
|
||||
_tonTimeout : TON;
|
||||
END_VAR]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[_tonTimeout(PT := T#10S);
|
||||
|
||||
CASE _iSSM OF
|
||||
0:
|
||||
_uCtrl.stCtrl.bEnableAxes := 1;
|
||||
_tonTimeout.IN := TRUE;
|
||||
|
||||
// Wait for drives to be ready
|
||||
IF _uState.stState.bPeriRdy THEN
|
||||
_uCtrl.stCtrl.bEnableAxes := 0;
|
||||
_tonTimeout(IN := FALSE);
|
||||
_iSSM := 10;
|
||||
END_IF
|
||||
|
||||
// Timeout drives ready
|
||||
IF _tonTimeout.Q THEN
|
||||
_uCtrl.stCtrl.bEnableAxes := 0;
|
||||
_fbAlarmDrivesEnableTimeout.xRelease := TRUE;
|
||||
_tonTimeout(IN := FALSE);
|
||||
_eCmd := E_PackMLCmd.ABORT;
|
||||
END_IF
|
||||
|
||||
10:
|
||||
_uCtrl.stCtrl.bConfMess := 1;
|
||||
|
||||
_tonTimeout.IN := TRUE;
|
||||
|
||||
// Wait for errors to be reset
|
||||
IF (NOT _uState.stState.bStopMess) THEN
|
||||
_uCtrl.stCtrl.bConfMess := 0;
|
||||
_tonTimeout(IN := FALSE);
|
||||
_iSSM := 20;
|
||||
END_IF
|
||||
|
||||
// Timeout reset errors
|
||||
IF _tonTimeout.Q THEN
|
||||
_fbAlarmRobotErrorResetTimeout.xRelease := TRUE;
|
||||
_tonTimeout(IN := FALSE);
|
||||
_eCmd := E_PackMLCmd.ABORT;
|
||||
END_IF
|
||||
|
||||
20:
|
||||
// Start main program
|
||||
_uCtrl.stCtrl.bExtStart := 1;
|
||||
|
||||
_tonTimeout.IN := TRUE;
|
||||
|
||||
IF _tonTimeout.Q THEN
|
||||
_tonTimeout(IN := FALSE);
|
||||
_eCmd := E_PackMLCmd.ABORT;
|
||||
END_IF
|
||||
|
||||
IF _uState.stState.bProAct THEN
|
||||
_uCtrl.stCtrl.bExtStart := 0;
|
||||
_tonTimeout(IN := FALSE);
|
||||
M_StateComplete();
|
||||
END_IF
|
||||
|
||||
END_CASE]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Starting" Id="{011f85d8-1225-4288-876f-918df6e4f235}">
|
||||
<Declaration><![CDATA[METHOD M_Starting
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Write robot job number
|
||||
_uJobs.stJobs.wJobNrForRobot := DINT_TO_WORD(_stRecipe.stProcessVariables.astParameterDInt[0].Value);
|
||||
|
||||
// Gripper number
|
||||
_abToolsAndPositions[0] := DINT_TO_BYTE(_stRecipe.stProcessVariables.astParameterDInt[1].Value);
|
||||
|
||||
// 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
|
||||
// IF _awJobStatesFromRobot[0] <> 0 AND _awJobStatesFromRobot[0] <> E_KukaRobot_JobNumberRobot.WARMUP THEN
|
||||
// _eCmd := E_PackMLCmd.ABORT;
|
||||
// END_IF
|
||||
//
|
||||
// // Robot has error
|
||||
// IF _dwErrorBits <> 0 THEN
|
||||
// _eCmd := E_PackMLCmd.ABORT;
|
||||
// END_IF]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Stopped" Id="{50813767-4bd7-4147-b5dc-1bbd18ae1555}">
|
||||
<Declaration><![CDATA[METHOD M_Stopped
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[_uCtrl.stCtrl.bConfMess := 0;
|
||||
_uCtrl.stCtrl.bEnableAxes := 0;
|
||||
_uCtrl.stCtrl.bNotDisableAxes := 1;
|
||||
_uCtrl.stCtrl.bExtStart := 0;
|
||||
|
||||
_eRobotJob := E_KukaRobot_JobNumberRobot.NO_JOB;
|
||||
_ePlcJob := E_KukaRobot_JobNumerPLC.NO_JOB;
|
||||
]]></ST>
|
||||
_ePlcJob := E_KukaRobot_JobNumerPLC.NO_JOB;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Suspended" Id="{c2db015c-1cd0-491a-8ce6-6c0bffba7631}">
|
||||
<Declaration><![CDATA[METHOD M_Suspended
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Suspending" Id="{5b0e5227-d5bb-40c6-a1b8-8e81b852b9b9}">
|
||||
<Declaration><![CDATA[METHOD M_Suspending
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Unholding" Id="{786f4949-9630-4ace-9e30-65bea4e87cb2}">
|
||||
<Declaration><![CDATA[METHOD M_Unholding
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Unsuspending" Id="{d7ce33fd-cd94-44f1-9289-25a3ab3829eb}">
|
||||
<Declaration><![CDATA[METHOD M_Unsuspending
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
</POU>
|
||||
|
||||
@@ -13,8 +13,21 @@ STRUCT
|
||||
// MOVE_ENABLE
|
||||
bEnableMove : BIT;
|
||||
|
||||
// EXT_START
|
||||
bExtStart : BIT;
|
||||
|
||||
// CONF_MESS
|
||||
bConfMess : BIT;
|
||||
|
||||
// Dummy bits
|
||||
bDummy1 : BIT;
|
||||
bDummy2 : BIT;
|
||||
bDummy3 : BIT;
|
||||
bDummy4 : BIT;
|
||||
|
||||
// Abort job with rising edge
|
||||
bAbortJob : BIT;
|
||||
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<GlobalTextList Name="GlobalTextList" Id="{71e616d8-9f28-44f9-85e4-c09f140a97bd}">
|
||||
<XmlArchive>
|
||||
<Data>
|
||||
<o xml:space="preserve" t="GlobalTextListObject">
|
||||
<l n="TextList" t="ArrayList" cet="TextListRow">
|
||||
<o>
|
||||
<v n="TextID">"134"</v>
|
||||
<v n="TextDefault">"Rest"</v>
|
||||
<l n="LanguageTexts" t="ArrayList" />
|
||||
</o>
|
||||
</l>
|
||||
<l n="Languages" t="ArrayList" />
|
||||
<v n="GuidInit">{70dbd3f8-6154-4749-9cca-681da551cf9b}</v>
|
||||
<v n="GuidReInit">{7f241e67-9115-442d-b41b-9dac33ba1617}</v>
|
||||
<v n="GuidExitX">{db2ea5fe-8596-4215-8845-f46ef9e4d4dc}</v>
|
||||
</o>
|
||||
</Data>
|
||||
<TypeList>
|
||||
<Type n="ArrayList">System.Collections.ArrayList</Type>
|
||||
<Type n="GlobalTextListObject">{63784cbb-9ba0-45e6-9d69-babf3f040511}</Type>
|
||||
<Type n="Guid">System.Guid</Type>
|
||||
<Type n="String">System.String</Type>
|
||||
<Type n="TextListRow">{53da1be7-ad25-47c3-b0e8-e26286dad2e0}</Type>
|
||||
</TypeList>
|
||||
</XmlArchive>
|
||||
</GlobalTextList>
|
||||
</TcPlcObject>
|
||||
@@ -23,7 +23,7 @@ TYPE E_PackMLState :
|
||||
UNSUSPENDING := 14,
|
||||
RESETTING := 15,
|
||||
COMPLETING := 16,
|
||||
COMPLETE := 17
|
||||
COMPLETED := 17
|
||||
) DINT := STOPPED;
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
12
PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLa.TcDUT
Normal file
12
PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLa.TcDUT
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_PMLa" Id="{16746b45-38ff-4f58-95c8-eb6734adb976}">
|
||||
<Declaration><![CDATA[TYPE ST_PMLa :
|
||||
STRUCT
|
||||
astProductData : ARRAY[0..(GVL_PackML_Conf.MAX_PRODUCT_DATA-1)] OF ST_PackML_ProductData;
|
||||
diStopReason : DINT;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
26
PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLc.TcDUT
Normal file
26
PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLc.TcDUT
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_PMLc" Id="{5cf4c850-57ba-42f8-9986-b146207e1b2f}">
|
||||
<Declaration><![CDATA[TYPE ST_PMLc :
|
||||
STRUCT
|
||||
eUnitMode : E_PackMLUnitMode;
|
||||
xUnitModeChangeRequest : BOOL;
|
||||
rMachSpeed : REAL;
|
||||
eCntrlCmd : E_PackMLCmd;
|
||||
xCmdChangeRequest : BOOL;
|
||||
|
||||
// Parameters
|
||||
astParameterReal : ARRAY[0..(GVL_PackML_Conf.MAX_PARAMS-1)] OF ST_PackMLParamREAL;
|
||||
astParameterString : ARRAY[0..(GVL_PackML_Conf.MAX_PARAMS-1)] OF ST_PackMLParamSTRING;
|
||||
astParameterLReal : ARRAY[0..(GVL_PackML_Conf.MAX_PARAMS-1)] OF ST_PackMLParamLREAL;
|
||||
astParameterDInt : ARRAY[0..(GVL_PackML_Conf.MAX_PARAMS-1)] OF ST_PackMLParamDINT;
|
||||
|
||||
// Recipe data
|
||||
diSelectedRecipe : DINT;
|
||||
xRecipeChangeRequest : BOOL;
|
||||
astRecipe : ARRAY[0..(GVL_PackML_Conf.MAX_RECIPES_PER_UNIT - 1)] OF ST_PackMLRecipe;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
14
PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLs.TcDUT
Normal file
14
PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PMLs.TcDUT
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_PMLs" Id="{dace328e-4599-42b5-ac3b-2a705ec8e2f3}">
|
||||
<Declaration><![CDATA[TYPE ST_PMLs :
|
||||
STRUCT
|
||||
eUnitModeCurrent : E_PackMLUnitMode;
|
||||
eStateCurrent : E_PackMLState;
|
||||
rMachSpeed : REAL;
|
||||
rCurMachSpeed : REAL;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
14
PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLPI.TcDUT
Normal file
14
PLC/LibraryCandidates/PackML/DUTs/PackTags/ST_PackMLPI.TcDUT
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_PackMLPI" Id="{e7198eb6-2cd3-41c0-be59-e7dbcf10a569}">
|
||||
<Declaration><![CDATA[TYPE ST_PackMLPI :
|
||||
STRUCT
|
||||
astParameterReal : ARRAY[0..(GVL_PackML_Conf.MAX_PARAMS-1)] OF ST_PackMLParamREAL;
|
||||
astParameterString : ARRAY[0..(GVL_PackML_Conf.MAX_PARAMS-1)] OF ST_PackMLParamSTRING;
|
||||
astParameterLReal : ARRAY[0..(GVL_PackML_Conf.MAX_PARAMS-1)] OF ST_PackMLParamLREAL;
|
||||
astParameterDInt : ARRAY[0..(GVL_PackML_Conf.MAX_PARAMS-1)] OF ST_PackMLParamDINT;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_PackMLParamDINT" Id="{f9801bf5-a73d-450f-b9fc-a5d8229e4946}">
|
||||
<Declaration><![CDATA[TYPE ST_PackMLParamDINT :
|
||||
STRUCT
|
||||
diID : DINT;
|
||||
sName : STRING;
|
||||
sUnit : STRING(6);
|
||||
Value : DINT;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_PackMLParamLREAL" Id="{195fabe8-44c0-43ec-8434-75e38b68efb7}">
|
||||
<Declaration><![CDATA[TYPE ST_PackMLParamLREAL :
|
||||
STRUCT
|
||||
diID : DINT;
|
||||
sName : STRING;
|
||||
sUnit : STRING(6);
|
||||
Value : LREAL;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_PackMLParamREAL" Id="{373303ba-9979-4979-a439-c899a36baa12}">
|
||||
<Declaration><![CDATA[TYPE ST_PackMLParamREAL :
|
||||
STRUCT
|
||||
diID : DINT;
|
||||
sName : STRING;
|
||||
sUnit : STRING(6);
|
||||
Value : REAL;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_PackMLParamSTRING" Id="{85353d3e-e4c9-4e83-857e-8ce7ed43abaf}">
|
||||
<Declaration><![CDATA[TYPE ST_PackMLParamSTRING :
|
||||
STRUCT
|
||||
diID : DINT;
|
||||
sName : STRING;
|
||||
sUnit : STRING(6);
|
||||
Value : STRING;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_PackMLRecipe" Id="{b453a4b5-bb40-4669-97f2-8d8ab8d3dc26}">
|
||||
<Declaration><![CDATA[TYPE ST_PackMLRecipe :
|
||||
STRUCT
|
||||
diID : DINT;
|
||||
sName : STRING;
|
||||
rPrimaryQty : REAL;
|
||||
stProcessVariables : ST_PackMLPI;
|
||||
stIngredients : ST_PackMLPI;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_PackML_ProductData" Id="{2af30e31-0927-41d2-9df4-7ed222070c13}">
|
||||
<Declaration><![CDATA[TYPE ST_PackML_ProductData :
|
||||
STRUCT
|
||||
diProcessedCount : DINT;
|
||||
diDefectiveCount : DINT;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_PackMLStateMachineConfig" Id="{ced5a276-0ad8-4ce9-8d27-4b268a010876}">
|
||||
<Declaration><![CDATA[TYPE ST_PackMLStateMachineConfig :
|
||||
STRUCT
|
||||
xClearingDisabled : BOOL;
|
||||
// xStoppedDisabled : BOOL;
|
||||
xStartingDisabled : BOOL;
|
||||
// xIdleDisabled : BOOL;
|
||||
xSuspededDisabled : BOOL;
|
||||
// xExecuteDisabled : BOOL;
|
||||
xStoppingDisabled : BOOL;
|
||||
xAbortingDisabled : BOOL;
|
||||
// xAbortedDisabled : BOOL;
|
||||
xHoldingDisabled : BOOL;
|
||||
xHeldDisabled : BOOL;
|
||||
xUnholdingDisabled : BOOL;
|
||||
xSuspendingDisabled : BOOL;
|
||||
xUnsuspendingDisabled : BOOL;
|
||||
xResettingDisabled : BOOL;
|
||||
xCompletingDisabled : BOOL;
|
||||
xCompletedDisabled : BOOL;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -1,244 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_PackMLStateMachine" Id="{784ceb84-1721-424f-89d1-422a24198e57}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_PackMLStateMachine
|
||||
VAR_INPUT
|
||||
eMode : E_PackMLUnitMode;
|
||||
eCmd : E_PackMLCmd;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
eState : E_PackMLState;
|
||||
eCurrentMode : E_PackMLUnitMode;
|
||||
xError : BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
// Internal mode
|
||||
_eMode : E_PackMLUnitMode;
|
||||
|
||||
// Internal state
|
||||
_eState : E_PackMLState;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Check for mode switch
|
||||
IF eMode <> _eMode THEN
|
||||
// Only allow mode switch in stopped state
|
||||
// or in aborted state when target mode ist manual mode
|
||||
IF (_eState = E_PackMLState.STOPPED) OR (_eState = E_PackMLState.ABORTED AND eMode = E_PackMLUnitMode.MANUAL) THEN
|
||||
_eMode := eMode;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
|
||||
// Base state machine
|
||||
CASE _eState OF
|
||||
E_PackMLState.STOPPING:
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.STOPPED:
|
||||
IF eCmd = E_PackMLCmd.RESET THEN
|
||||
_eState := E_PackMLState.RESETTING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.RESETTING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.IDLE:
|
||||
IF eCmd = E_PackMLCmd.START THEN
|
||||
_eState := E_PackMLState.STARTING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.STARTING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.EXECUTE:
|
||||
IF eCmd = E_PackMLCmd.SUSPEND THEN
|
||||
_eState := E_PackMLState.SUSPENDING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.HOLD THEN
|
||||
_eState := E_PackMLState.HOLDING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.SUSPENDING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.SUSPENDED:
|
||||
IF eCmd = E_PackMLCmd.UNSUSPEND THEN
|
||||
_eState := E_PackMLState.UNSUSPENDING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.UNSUSPENDING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.HOLDING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.HELD:
|
||||
IF eCmd = E_PackMLCmd.UNHOLD THEN
|
||||
_eState := E_PackMLState.UNHOLDING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.UNHOLDING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.COMPLETING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.COMPLETE:
|
||||
IF eCmd = E_PackMLCmd.RESET THEN
|
||||
_eState := E_PackMLState.RESETTING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.ABORTED:
|
||||
IF eCmd = E_PackMLCmd.CLEAR THEN
|
||||
_eState := E_PackMLState.CLEARING;
|
||||
END_IF
|
||||
|
||||
E_PackMLState.CLEARING:
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
END_IF
|
||||
|
||||
ELSE
|
||||
;
|
||||
END_CASE
|
||||
|
||||
// Copy internal state value to fb output
|
||||
eState := _eState;
|
||||
eCurrentMode := _eMode;]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="M_StateComplete" Id="{e2f1bae5-5059-4baa-8ba2-8dfa58d439e5}">
|
||||
<Declaration><![CDATA[METHOD M_StateComplete
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[CASE _eState OF
|
||||
E_PackMLState.STOPPING:
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
|
||||
E_PackMLState.RESETTING:
|
||||
_eState := E_PackMLState.IDLE;
|
||||
|
||||
E_PackMLState.STARTING:
|
||||
_eState := E_PackMLState.EXECUTE;
|
||||
|
||||
E_PackMLState.EXECUTE:
|
||||
_eState := E_PackMLState.COMPLETING;
|
||||
|
||||
E_PackMLState.SUSPENDING:
|
||||
_eState := E_PackMLState.SUSPENDED;
|
||||
|
||||
E_PackMLState.UNSUSPENDING:
|
||||
_eState := E_PackMLState.EXECUTE;
|
||||
|
||||
E_PackMLState.HOLDING:
|
||||
_eState := E_PackMLState.HELD;
|
||||
|
||||
E_PackMLState.UNHOLDING:
|
||||
_eState := E_PackMLState.EXECUTE;
|
||||
|
||||
E_PackMLState.COMPLETING:
|
||||
_eState := E_PackMLState.COMPLETE;
|
||||
|
||||
E_PackMLState.ABORTING:
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
|
||||
E_PackMLState.CLEARING:
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_CASE
|
||||
|
||||
eState := _eState;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
11
PLC/LibraryCandidates/PackML/GVL_PackML_Conf.TcGVL
Normal file
11
PLC/LibraryCandidates/PackML/GVL_PackML_Conf.TcGVL
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<GVL Name="GVL_PackML_Conf" Id="{b46d8e14-5a19-467d-bb78-56321e43ef47}">
|
||||
<Declaration><![CDATA[{attribute 'qualified_only'}
|
||||
VAR_GLOBAL CONSTANT
|
||||
MAX_PARAMS : UINT := 10;
|
||||
MAX_PRODUCT_DATA : UINT := 10;
|
||||
MAX_RECIPES_PER_UNIT : UINT := 5;
|
||||
END_VAR]]></Declaration>
|
||||
</GVL>
|
||||
</TcPlcObject>
|
||||
@@ -3,39 +3,90 @@
|
||||
<POU Name="FB_PackMLGeneric" Id="{f562a10e-01bc-407d-9fc0-2837d13c10b1}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_PackMLGeneric IMPLEMENTS I_UnitState
|
||||
VAR_INPUT
|
||||
// Mode from superior unit
|
||||
eModeCmd : E_PackMLUnitMode;
|
||||
|
||||
// Command for new state from superior unit
|
||||
eCmd : E_PackMLCmd;
|
||||
stCommand : ST_PMLc;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
// Current mode of unit
|
||||
eMode : E_PackMLUnitMode;
|
||||
// Unit status
|
||||
stStatus : ST_PMLs;
|
||||
|
||||
// Current state of unit
|
||||
eState : E_PackMLState;
|
||||
|
||||
// xInvalidModeCmd : BOOL;
|
||||
// Admin data
|
||||
stAdmin : ST_PMLa;
|
||||
END_VAR
|
||||
VAR
|
||||
// State machine handler
|
||||
_fbStateMachine : FB_PackMLStateMachine;
|
||||
_fbStateMachine : FB_PackMLStateMachine;
|
||||
|
||||
// State machine config
|
||||
_stSMConfig : ST_PackMLStateMachineConfig;
|
||||
|
||||
// Internal unit command
|
||||
_eCmd : E_PackMLCmd;
|
||||
|
||||
// Internal unit mode
|
||||
_eMode : E_PackMLUnitMode;
|
||||
|
||||
// Internal unit state
|
||||
_eState : E_PackMLState;
|
||||
|
||||
// Last state
|
||||
_eLastState : E_PackMLState;
|
||||
|
||||
// Current recipe
|
||||
_stRecipe : ST_PackMLRecipe;
|
||||
|
||||
// Trigger for new command
|
||||
_rtChangeCmdRequest : R_TRIG;
|
||||
|
||||
// Trigger for new mode
|
||||
_rtChangeModeRequest : R_TRIG;
|
||||
|
||||
// Trigger change recipe
|
||||
_rtChangeRecipeRequest : R_TRIG;
|
||||
|
||||
// State state machine variable
|
||||
_iSSM : INT := 0;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[_fbStateMachine(
|
||||
eMode:= eMode,
|
||||
eCmd:= eCmd,
|
||||
eState=> _eState,
|
||||
<ST><![CDATA[// Handle command change request
|
||||
_rtChangeCmdRequest(CLK:= stCommand.xCmdChangeRequest);
|
||||
|
||||
IF _rtChangeCmdRequest.Q THEN
|
||||
_eCmd := stCommand.eCntrlCmd;
|
||||
END_IF
|
||||
|
||||
// Hande mode change request
|
||||
_rtChangeModeRequest(CLK := stCommand.xUnitModeChangeRequest);
|
||||
|
||||
IF _rtChangeModeRequest.Q THEN
|
||||
_eMode := stCommand.eUnitMode;
|
||||
END_IF
|
||||
|
||||
// Handle recipe change rewuest
|
||||
_rtChangeRecipeRequest(CLK := stCommand.xRecipeChangeRequest);
|
||||
|
||||
IF _rtChangeRecipeRequest.Q THEN
|
||||
_stRecipe := stCommand.astRecipe[stCommand.diSelectedRecipe];
|
||||
END_IF
|
||||
|
||||
// Call PackML state machine handler
|
||||
_fbStateMachine(
|
||||
eMode:= _eMode,
|
||||
eCmd:= _eCmd,
|
||||
stConfig := _stSMConfig,
|
||||
eState=> stStatus.eStateCurrent,
|
||||
eCurrentMode => stStatus.eUnitModeCurrent,
|
||||
xError=> );
|
||||
|
||||
// Reset state state machine
|
||||
IF _eLastState <> stStatus.eStateCurrent THEN
|
||||
_iSSM := 0;
|
||||
_eLastState := stStatus.eStateCurrent;
|
||||
END_IF
|
||||
|
||||
|
||||
// Call state method according to current state
|
||||
CASE _eState OF
|
||||
CASE stStatus.eStateCurrent OF
|
||||
E_PackMLState.CLEARING:
|
||||
M_Clearing();
|
||||
|
||||
@@ -84,16 +135,13 @@ CASE _eState OF
|
||||
E_PackMLState.COMPLETING:
|
||||
M_Completing();
|
||||
|
||||
E_PackMLState.COMPLETE:
|
||||
E_PackMLState.COMPLETED:
|
||||
M_Complete();
|
||||
|
||||
ELSE
|
||||
|
||||
;
|
||||
END_CASE
|
||||
|
||||
// Copy internal flags to output
|
||||
eState := _eState;]]></ST>
|
||||
END_CASE]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="M_Aborted" Id="{db1a684f-e4e1-4d89-a3aa-9b9dfde0508c}">
|
||||
<Declaration><![CDATA[METHOD M_Aborted
|
||||
@@ -176,7 +224,11 @@ eState := _eState;]]></ST>
|
||||
<Declaration><![CDATA[METHOD M_StateComplete
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[_fbStateMachine.M_StateComplete();]]></ST>
|
||||
<ST><![CDATA[// Reset state state machine
|
||||
_iSSM := 0;
|
||||
|
||||
// Call state change in PackML state manager
|
||||
_fbStateMachine.M_StateComplete();]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Stopped" Id="{9f8a09cf-f3be-4d60-b5e4-cd9572fae88c}">
|
||||
428
PLC/LibraryCandidates/PackML/POUs/FB_PackMLStateMachine.TcPOU
Normal file
428
PLC/LibraryCandidates/PackML/POUs/FB_PackMLStateMachine.TcPOU
Normal file
@@ -0,0 +1,428 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_PackMLStateMachine" Id="{784ceb84-1721-424f-89d1-422a24198e57}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_PackMLStateMachine
|
||||
VAR_INPUT
|
||||
eMode : E_PackMLUnitMode;
|
||||
eCmd : E_PackMLCmd;
|
||||
|
||||
stConfig : ST_PackMLStateMachineConfig;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
eState : E_PackMLState;
|
||||
eCurrentMode : E_PackMLUnitMode;
|
||||
xError : BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
// Internal mode
|
||||
_eMode : E_PackMLUnitMode;
|
||||
|
||||
// Internal state
|
||||
_eState : E_PackMLState;
|
||||
|
||||
// Rerun state machine
|
||||
_xRerunSM : BOOL;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Check for mode switch
|
||||
IF eMode <> _eMode THEN
|
||||
// Only allow mode switch in stopped state
|
||||
// or in aborted state when target mode ist manual mode
|
||||
IF (_eState = E_PackMLState.STOPPED) OR (_eState = E_PackMLState.ABORTED AND eMode = E_PackMLUnitMode.MANUAL) THEN
|
||||
_eMode := eMode;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
REPEAT
|
||||
_xRerunSM := FALSE;
|
||||
|
||||
// Base state machine
|
||||
CASE _eState OF
|
||||
E_PackMLState.STOPPING:
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.STOPPED:
|
||||
IF eCmd = E_PackMLCmd.RESET THEN
|
||||
IF (NOT stConfig.xResettingDisabled)THEN
|
||||
_eState := E_PackMLState.RESETTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.IDLE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.RESETTING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
IF (NOT stConfig.xStoppingDisabled) THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
|
||||
E_PackMLState.IDLE:
|
||||
IF eCmd = E_PackMLCmd.START THEN
|
||||
IF (NOT stConfig.xStartingDisabled) THEN
|
||||
_eState := E_PackMLState.STARTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.EXECUTE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
IF (NOT stConfig.xStoppingDisabled) THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.STARTING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
IF (NOT stConfig.xStoppingDisabled) THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
|
||||
E_PackMLState.EXECUTE:
|
||||
IF eCmd = E_PackMLCmd.SUSPEND AND (NOT stConfig.xSuspededDisabled) THEN
|
||||
IF (NOT stConfig.xSuspendingDisabled) THEN
|
||||
_eState := E_PackMLState.SUSPENDING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.SUSPENDED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.HOLD AND (NOT stConfig.xHeldDisabled) THEN
|
||||
IF (NOT stConfig.xHoldingDisabled) THEN
|
||||
_eState := E_PackMLState.HOLDING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.HELD;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
IF (NOT stConfig.xStoppingDisabled) THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.COMPLETE THEN
|
||||
IF (NOT stConfig.xCompletedDisabled)THEN
|
||||
IF (NOT stConfig.xCompletingDisabled) THEN
|
||||
_eState := E_PackMLState.COMPLETING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.COMPLETED;
|
||||
END_IF
|
||||
ELSE
|
||||
IF (NOT stConfig.xResettingDisabled) THEN
|
||||
_eState := E_PackMLState.RESETTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.IDLE;
|
||||
END_IF
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.SUSPENDING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
IF (NOT stConfig.xStoppingDisabled) THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.SUSPENDED:
|
||||
IF eCmd = E_PackMLCmd.UNSUSPEND THEN
|
||||
IF (NOT stConfig.xUnsuspendingDisabled) THEN
|
||||
_eState := E_PackMLState.UNSUSPENDING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.EXECUTE;
|
||||
END_IF
|
||||
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.HOLD AND (NOT stConfig.xHeldDisabled) THEN
|
||||
IF (NOT stConfig.xHoldingDisabled) THEN
|
||||
_eState := E_PackMLState.HOLDING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.HELD;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
IF (NOT stConfig.xStoppingDisabled) THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.UNSUSPENDING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
IF (NOT stConfig.xStoppingDisabled) THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.HOLDING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
IF (NOT stConfig.xStoppingDisabled) THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.HELD:
|
||||
IF eCmd = E_PackMLCmd.UNHOLD THEN
|
||||
IF (NOT stConfig.xUnholdingDisabled) THEN
|
||||
_eState := E_PackMLState.UNHOLDING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.EXECUTE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
IF (NOT stConfig.xStoppingDisabled) THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.UNHOLDING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
IF (NOT stConfig.xStoppingDisabled) THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.COMPLETING:
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
IF (NOT stConfig.xStoppingDisabled) THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.COMPLETED:
|
||||
IF eCmd = E_PackMLCmd.RESET THEN
|
||||
IF (NOT stConfig.xResettingDisabled)THEN
|
||||
_eState := E_PackMLState.RESETTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.IDLE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.STOP THEN
|
||||
IF (NOT stConfig.xStoppingDisabled) THEN
|
||||
_eState := E_PackMLState.STOPPING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.ABORTED:
|
||||
IF eCmd = E_PackMLCmd.CLEAR THEN
|
||||
IF (NOT stConfig.xClearingDisabled) THEN
|
||||
_eState := E_PackMLState.CLEARING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.CLEARING:
|
||||
IF eCmd = E_PackMLCmd.ABORT THEN
|
||||
IF (NOT stConfig.xAbortingDisabled) THEN
|
||||
_eState := E_PackMLState.ABORTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
ELSE
|
||||
;
|
||||
END_CASE
|
||||
|
||||
UNTIL (NOT _xRerunSM)
|
||||
END_REPEAT
|
||||
|
||||
|
||||
|
||||
// Copy internal state value to fb output
|
||||
eState := _eState;
|
||||
eCurrentMode := _eMode;]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="M_StateComplete" Id="{e2f1bae5-5059-4baa-8ba2-8dfa58d439e5}">
|
||||
<Declaration><![CDATA[METHOD M_StateComplete
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[CASE _eState OF
|
||||
E_PackMLState.STOPPING:
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
|
||||
E_PackMLState.RESETTING:
|
||||
_eState := E_PackMLState.IDLE;
|
||||
|
||||
E_PackMLState.STARTING:
|
||||
_eState := E_PackMLState.EXECUTE;
|
||||
|
||||
E_PackMLState.SUSPENDING:
|
||||
_eState := E_PackMLState.SUSPENDED;
|
||||
|
||||
E_PackMLState.UNSUSPENDING:
|
||||
_eState := E_PackMLState.EXECUTE;
|
||||
|
||||
E_PackMLState.HOLDING:
|
||||
_eState := E_PackMLState.HELD;
|
||||
|
||||
E_PackMLState.UNHOLDING:
|
||||
_eState := E_PackMLState.EXECUTE;
|
||||
|
||||
E_PackMLState.COMPLETING:
|
||||
IF (NOT stConfig.xCompletedDisabled)THEN
|
||||
_eState := E_PackMLState.COMPLETED;
|
||||
ELSE
|
||||
IF (NOT stConfig.xResettingDisabled) THEN
|
||||
_eState := E_PackMLState.RESETTING;
|
||||
ELSE
|
||||
_eState := E_PackMLState.IDLE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
E_PackMLState.ABORTING:
|
||||
_eState := E_PackMLState.ABORTED;
|
||||
|
||||
E_PackMLState.CLEARING:
|
||||
_eState := E_PackMLState.STOPPED;
|
||||
END_CASE
|
||||
|
||||
eState := _eState;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
@@ -194,7 +194,7 @@ fbPackML.M_StateComplete();
|
||||
AssertEquals_DINT(E_PackMLState.COMPLETING, fbPackML.eState, 'Should transition to COMPLETING');
|
||||
|
||||
fbPackML.M_StateComplete();
|
||||
AssertEquals_DINT(E_PackMLState.COMPLETE, fbPackML.eState, 'Should transition to COMPLETE');
|
||||
AssertEquals_DINT(E_PackMLState.COMPLETED, fbPackML.eState, 'Should transition to COMPLETE');
|
||||
|
||||
TEST_FINISHED();]]></ST>
|
||||
</Implementation>
|
||||
@@ -221,7 +221,7 @@ AssertEquals_DINT(E_PackMLState.EXECUTE, fbPackML.eState, 'Should reach EXECUTE'
|
||||
// EXECUTE -> COMPLETING -> COMPLETE
|
||||
fbPackML.M_StateComplete();
|
||||
fbPackML.M_StateComplete();
|
||||
AssertEquals_DINT(E_PackMLState.COMPLETE, fbPackML.eState, 'Should reach COMPLETE');
|
||||
AssertEquals_DINT(E_PackMLState.COMPLETED, fbPackML.eState, 'Should reach COMPLETE');
|
||||
|
||||
// COMPLETE -> RESETTING -> IDLE
|
||||
fbPackML(eCmd := E_PackMLCmd.RESET);
|
||||
@@ -425,7 +425,7 @@ fbPackML(eCmd := E_PackMLCmd.START);
|
||||
fbPackML.M_StateComplete();
|
||||
fbPackML.M_StateComplete();
|
||||
fbPackML.M_StateComplete();
|
||||
AssertEquals_DINT(E_PackMLState.COMPLETE, fbPackML.eState, 'Setup: Should be COMPLETE');
|
||||
AssertEquals_DINT(E_PackMLState.COMPLETED, fbPackML.eState, 'Setup: Should be COMPLETE');
|
||||
|
||||
// Test RESET from COMPLETE
|
||||
fbPackML(eCmd := E_PackMLCmd.RESET);
|
||||
@@ -452,7 +452,7 @@ fbPackML(eCmd := E_PackMLCmd.START);
|
||||
fbPackML.M_StateComplete();
|
||||
fbPackML.M_StateComplete();
|
||||
fbPackML.M_StateComplete();
|
||||
AssertEquals_DINT(E_PackMLState.COMPLETE, fbPackML.eState, 'Setup: Should be COMPLETE');
|
||||
AssertEquals_DINT(E_PackMLState.COMPLETED, fbPackML.eState, 'Setup: Should be COMPLETE');
|
||||
|
||||
// Test STOP from COMPLETE
|
||||
fbPackML(eCmd := E_PackMLCmd.STOP);
|
||||
|
||||
@@ -63,28 +63,56 @@
|
||||
<Compile Include="01_Stationen\TrayFeeder\FB_TrayFeeder.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="GlobalTextList.TcGTLO">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="GVLs\GVL_SCADA.TcGVL">
|
||||
<SubType>Code</SubType>
|
||||
<LinkAlways>true</LinkAlways>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\E_PackMLCmd.TcDUT">
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\E_PackMLCmd.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\E_PackMLState.TcDUT">
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\E_PackMLState.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\E_PackMLUnitMode.TcDUT">
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\E_PackMLUnitMode.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\FB_PackMLGeneric.TcPOU">
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\PackTags\ST_PackMLParamDINT.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\FB_PackMLStateMachine.TcPOU">
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\PackTags\ST_PackMLParamLREAL.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\PackTags\ST_PackMLParamREAL.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\PackTags\ST_PackMLParamSTRING.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\PackTags\ST_PackMLPI.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\PackTags\ST_PackMLRecipe.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\PackTags\ST_PackML_ProductData.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\PackTags\ST_PMLa.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\PackTags\ST_PMLc.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\PackTags\ST_PMLs.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\DUTs\ST_PackMLStateMachineConfig.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\GVL_PackML_Conf.TcGVL">
|
||||
<SubType>Code</SubType>
|
||||
<LinkAlways>true</LinkAlways>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\ITFs\I_UnitState.TcIO">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
@@ -94,6 +122,12 @@
|
||||
<Compile Include="LibraryCandidates\PackML\ITFs\I_UnitStateWaiting.TcIO">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\POUs\FB_PackMLGeneric.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\PackML\POUs\FB_PackMLStateMachine.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LibraryCandidates\Unittests\FB_PackMLStateMachine_Test.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
@@ -103,13 +137,6 @@
|
||||
<Compile Include="PlcTask.TcTTO">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Visualization Manager.TcVMO">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Visu\Visualization.TcVIS">
|
||||
<SubType>Code</SubType>
|
||||
<DependentUpon>Visualization Manager.TcVMO</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="01_Stationen\Kuka_Robot" />
|
||||
@@ -122,10 +149,12 @@
|
||||
<Folder Include="00_Main" />
|
||||
<Folder Include="LibraryCandidates" />
|
||||
<Folder Include="GVLs" />
|
||||
<Folder Include="LibraryCandidates\PackML\DUTs" />
|
||||
<Folder Include="LibraryCandidates\PackML\DUTs\PackTags" />
|
||||
<Folder Include="LibraryCandidates\PackML\POUs" />
|
||||
<Folder Include="LibraryCandidates\Unittests" />
|
||||
<Folder Include="LibraryCandidates\PackML" />
|
||||
<Folder Include="LibraryCandidates\PackML\ITFs" />
|
||||
<Folder Include="Visu" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PlaceholderReference Include="BaseComponents">
|
||||
|
||||
392
PLC/PLC.tmc
Normal file
392
PLC/PLC.tmc
Normal file
File diff suppressed because one or more lines are too long
@@ -5,7 +5,7 @@
|
||||
<CycleTime>10000</CycleTime>
|
||||
<Priority>20</Priority>
|
||||
<PouCall>
|
||||
<Name>PRG_Test</Name>
|
||||
<Name>PRG_Main</Name>
|
||||
</PouCall>
|
||||
<TaskFBGuid>{40eb18ee-d47c-458f-bba5-88b899fc1567}</TaskFBGuid>
|
||||
<Fb_init>{6e3535be-c313-4e44-9f98-4268a560c4bf}</Fb_init>
|
||||
|
||||
@@ -1,397 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<Visu Name="Visualization" Id="{c7f813ad-d496-46cf-913b-a7293dcf426c}">
|
||||
<XmlArchive>
|
||||
<Data>
|
||||
<o xml:space="preserve" t="VisualObject">
|
||||
<n n="LastVisuLanguageModelEntry" />
|
||||
<v n="UniqueIdGenerator">"12"</v>
|
||||
<o n="VisualElemList" t="VisualElemList">
|
||||
<l n="VisualElementList" t="VisualElemCollection" cet="GenericVisualElem">
|
||||
<o>
|
||||
<a n="ConfiguredComplexInputs" et="ComplexInput" />
|
||||
<l n="Elements" t="ArrayList" />
|
||||
<n n="VisualElementDescription" />
|
||||
<o n="VisualElemMemberList" t="VisualElemMemberList">
|
||||
<l n="VisualElemMemberList" t="VisualElemMemberCollection" cet="VisualElemMember">
|
||||
<o>
|
||||
<v n="Id">571893170L</v>
|
||||
<v n="Value">"Rest"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">1931512087L</v>
|
||||
<v n="Value">"TOGGLE"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">300685745L</v>
|
||||
<v n="Value">false</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">2812299069L</v>
|
||||
<v n="Value">4294967295U</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">494569607L</v>
|
||||
<v n="Value">4278190080U</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">3719097617L</v>
|
||||
<v n="Value">0</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">1649127785L</v>
|
||||
<v n="Value">134</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">357335551L</v>
|
||||
<v n="Value">150</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">2422045748L</v>
|
||||
<v n="Value">229</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">2134141914L</v>
|
||||
<v n="Value">177</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">4062784938L</v>
|
||||
<v n="Value">"Element-Switch-PushSwitch-Gray"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">550940142L</v>
|
||||
<v n="Value">248</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">1473355128L</v>
|
||||
<v n="Value">238</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">493260384L</v>
|
||||
<v n="Value">4294967295U</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">135947015L</v>
|
||||
<v n="Value">4278190080U</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">2678395525L</v>
|
||||
<v n="Value">1U</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">2340015797L</v>
|
||||
<v n="Value">"HCENTER"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">2565699834L</v>
|
||||
<v n="Value">"VCENTER"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">296037572L</v>
|
||||
<v n="Value">""</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">390574330L</v>
|
||||
<v n="Value">""</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">2597686782L</v>
|
||||
<v n="Value">false</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">743958181L</v>
|
||||
<v n="Value">"GVL_SCADA.xErrAck"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="Id">3438453433L</v>
|
||||
<v n="Value">"134"</v>
|
||||
</o>
|
||||
</l>
|
||||
</o>
|
||||
<v n="VisualElementName">"PushSwitch"</v>
|
||||
<v n="VisualElementTypeName">"VisuFbElemPushSwitch"</v>
|
||||
<v n="VisualElementIsRectangle">true</v>
|
||||
<v n="VisualElementIdentifier">"GenElemInst_1"</v>
|
||||
<n n="VisualElementOfflinePaintCommands" />
|
||||
<n n="VisualElementFrameInformation" />
|
||||
<d n="VisualElementInputActions" t="Hashtable" />
|
||||
<v n="VisualElementIdentification">{a9fe58e2-2923-486b-83ae-c30f51fc53bc}</v>
|
||||
<v n="VisualElementOwningObjectGuid">{c7f813ad-d496-46cf-913b-a7293dcf426c}</v>
|
||||
<a n="LMGuids" et="Guid" />
|
||||
<d n="SubElements" t="Hashtable" />
|
||||
<v n="VisualElementId">0</v>
|
||||
<l n="UserManagementAccessRights" t="ArrayList" />
|
||||
<v n="AnimationDuration">"0"</v>
|
||||
<v n="BringToForeground">""</v>
|
||||
<v n="ElementVersion" t="Byte">1</v>
|
||||
<n n="TabOrder" />
|
||||
</o>
|
||||
</l>
|
||||
<v n="BackgroundBitmapId">""</v>
|
||||
<v n="BackgroundColor">16777215</v>
|
||||
<o n="Background" t="BackgroundSettings">
|
||||
<n n="BgGradient" />
|
||||
<n n="BgNamedColor" />
|
||||
<v n="BgBmpId">""</v>
|
||||
<v n="BgUseBmp">false</v>
|
||||
<v n="BgColor">false</v>
|
||||
<v n="BgUseColor">16777215</v>
|
||||
<v n="BgUseGradient">false</v>
|
||||
</o>
|
||||
<v n="AllElementsHaveDynamicVisibility">false</v>
|
||||
</o>
|
||||
<o n="GeneratedLMMDescriptions" t="GeneratedLanguageModelEntriesData">
|
||||
<o n="GeneratedVisuFbDescription" t="GenericFbDescription">
|
||||
<d n="FbMethods" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
|
||||
<v>AreAllElementsHidden</v>
|
||||
<v>a725eb54-6600-588a-9f13-869630ee3e7e</v>
|
||||
<v>ContainsPoint</v>
|
||||
<v>ab15b219-793c-4da0-bd07-15f4b9559413</v>
|
||||
<v>Destruct</v>
|
||||
<v>3ba10444-2f83-4df5-aa26-6b77c6d0abf6</v>
|
||||
<v>ElementInfo</v>
|
||||
<v>4fc818ce-9e66-4929-a86a-b286e246a68d</v>
|
||||
<v>FB_Exit</v>
|
||||
<v>77528b4c-c8c4-4f11-a991-6b9fe9e1a3d3</v>
|
||||
<v>FB_Reinit</v>
|
||||
<v>1d8a778c-cc51-47a7-a51d-3d9eb8125008</v>
|
||||
<v>GetCallerNamespace</v>
|
||||
<v>43a88302-5fea-54cf-b14f-4c85099970ea</v>
|
||||
<v>GetClientData</v>
|
||||
<v>cadc6a04-3260-4217-ae88-86a7d1978d67</v>
|
||||
<v>GetDialogInterface</v>
|
||||
<v>061c17d4-c1fd-4666-8fbf-29cb1f99ec8e</v>
|
||||
<v>GetDialogInterfaceSize</v>
|
||||
<v>e770c9e8-0fe5-4727-bbf9-e82c4cdde02f</v>
|
||||
<v>GetElementArray</v>
|
||||
<v>3453a92d-9e41-45ae-b333-a6fd05ecc05f</v>
|
||||
<v>GetElementIdArray</v>
|
||||
<v>01969ee2-370e-4639-8b9e-fcc1b5861ed4</v>
|
||||
<v>GetElementName</v>
|
||||
<v>5549a8ef-993d-5c8c-a19e-92b606693b43</v>
|
||||
<v>GetInitializeVersion</v>
|
||||
<v>87415d8b-3769-4476-ba47-778b9c7d9830</v>
|
||||
<v>GetInstance</v>
|
||||
<v>cb71613d-a9c0-4c65-af5b-0bf0cc1cc4a2</v>
|
||||
<v>GetLocalUsergroup</v>
|
||||
<v>a16842f4-6e61-487d-a546-e447ff985552</v>
|
||||
<v>GetName</v>
|
||||
<v>d299c55d-4dc9-4b9e-b9d7-81bcb628be24</v>
|
||||
<v>GetNamespace</v>
|
||||
<v>a00a8d02-710d-4837-b03e-8ac7f3cea203</v>
|
||||
<v>GetResult</v>
|
||||
<v>dd0c5ce2-d1c3-42c0-9d55-94b7f2ebfe7f</v>
|
||||
<v>GetSize</v>
|
||||
<v>aa96c3a1-2662-437e-b163-bed0cd701cbc</v>
|
||||
<v>GetSurroundingRect</v>
|
||||
<v>8a93fd36-40b4-408c-a8fa-f2094bc31dc1</v>
|
||||
<v>GetTabOrderIdArray</v>
|
||||
<v>22aa349f-aa1a-5a1e-b8d1-fa8b274978fc</v>
|
||||
<v>GetText</v>
|
||||
<v>26faf652-11c0-4434-b399-bdd6c186874b</v>
|
||||
<v>GetTextProperties</v>
|
||||
<v>76184248-eb5e-40ac-82e0-1b69e783afd2</v>
|
||||
<v>GetTooltip</v>
|
||||
<v>a0e4cc76-8d43-462d-b328-fda892a64d2d</v>
|
||||
<v>GetTranslator</v>
|
||||
<v>409c1071-0ab9-46d9-9cb0-f29de52cf28e</v>
|
||||
<v>GetUpdateRects</v>
|
||||
<v>df55534a-e997-42c4-9622-83f8a02d6684</v>
|
||||
<v>HandleInput</v>
|
||||
<v>0612a83a-5c13-462f-b5b0-94227cd1d4b4</v>
|
||||
<v>HasInputAccess</v>
|
||||
<v>27cfb0a9-611b-41e2-a755-37c98bd69211</v>
|
||||
<v>HasInputAccessIntern</v>
|
||||
<v>63cc92a5-408f-57e0-87e9-b2033b2b12ef</v>
|
||||
<v>HasVisibilityAccess</v>
|
||||
<v>f11fc703-d33e-412b-9764-588a000bede4</v>
|
||||
<v>HasVisibilityAccessIntern</v>
|
||||
<v>12b8a5d1-0920-5c63-846f-df1f593d4075</v>
|
||||
<v>Initialize</v>
|
||||
<v>28e2b0d4-7ee2-4256-bcf3-9b3d048989d7</v>
|
||||
<v>IsAntialiasingInactive</v>
|
||||
<v>2a637b19-2d31-4c64-a5a2-a50b98a54f46</v>
|
||||
<v>Paint</v>
|
||||
<v>359a8f28-6be2-40a9-b444-a14b59912a36</v>
|
||||
<v>SetClientData</v>
|
||||
<v>84598ba9-869d-4d41-af71-685b89f2e17f</v>
|
||||
<v>SetContainerSize</v>
|
||||
<v>d54f5458-6e96-5c6d-9516-413a21c534b5</v>
|
||||
<v>SetDialogInterface</v>
|
||||
<v>f991bc46-9bfd-4b50-87ce-4a160df90f4e</v>
|
||||
<v>SetResult</v>
|
||||
<v>31cc2a76-5ca2-40be-9c81-4ce91ffc8ceb</v>
|
||||
<v>SetStaticState</v>
|
||||
<v>a71f3a37-1f69-40b3-8810-7fbb9613ce2e</v>
|
||||
<v>SetVisuFlagsInternal</v>
|
||||
<v>c86bc3f1-839c-44f7-a86e-8c31b378e47d</v>
|
||||
<v>Update</v>
|
||||
<v>86c23628-283c-4cd6-9a8e-4fe213a72b01</v>
|
||||
</d>
|
||||
<d n="FbProperties" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
|
||||
<v>__getContainer</v>
|
||||
<v>acc951a7-0e09-4639-b624-f1acf9de535a</v>
|
||||
<v>__getVisu</v>
|
||||
<v>699a8058-a362-4d94-b2bf-8d83cc15d117</v>
|
||||
</d>
|
||||
<v n="FbName">"NotImportant"</v>
|
||||
<v n="FbGuid">{c7f813ad-d496-46cf-913b-a7293dcf426c}</v>
|
||||
</o>
|
||||
<v n="GeneratedGlobalVisuVarsGuid">{c3710736-16ea-4749-a94b-9a7cef0d94d9}</v>
|
||||
<v n="GeneratedGlobalTheVisuVarlistGuid">{848dba92-ad40-4262-a0e6-c897149b4673}</v>
|
||||
<v n="GeneratedGlobalVisuConstants">{4542b91b-c173-423b-a2e4-55fe1dcd4438}</v>
|
||||
<d n="GeneratedAllElementsEntries" t="Hashtable" />
|
||||
<o n="VisuRegDesc" t="GenericFbDescription">
|
||||
<d n="FbMethods" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
|
||||
<v>FB_Exit</v>
|
||||
<v>d076fe0e-7df0-431f-b3a9-736edf093162</v>
|
||||
<v>FB_Init</v>
|
||||
<v>28fb6bb3-47cc-457f-82ec-a2ee72ded81b</v>
|
||||
<v>FB_Reinit</v>
|
||||
<v>ee89efe4-78d3-4256-a7b0-564fc198a1d2</v>
|
||||
</d>
|
||||
<d n="FbProperties" t="CaseInsensitiveHashtable" />
|
||||
<v n="FbName">"NotImportant"</v>
|
||||
<v n="FbGuid">{cb986f24-4b1d-4e53-8e13-066c36701683}</v>
|
||||
</o>
|
||||
<v n="VisuRegisterGvl">{833946e1-5ee1-443a-a77a-490182229e46}</v>
|
||||
<n n="SettingsPou" />
|
||||
<n n="MemManPou" />
|
||||
<o n="InputsPou" t="GenericFbDescription">
|
||||
<d n="FbMethods" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
|
||||
<v>abstrGetDefaultCursor</v>
|
||||
<v>f71cf66f-d4e9-4025-b35a-6cbbe1d389fb</v>
|
||||
<v>ExecuteDialogClosed</v>
|
||||
<v>e1501d0a-e558-483c-a9a5-a357640775bf</v>
|
||||
<v>ExecuteKeyDown</v>
|
||||
<v>4950c656-5a4e-4a24-a04d-c68e5fa80bc4</v>
|
||||
<v>ExecuteKeyUp</v>
|
||||
<v>cf6a31c1-32e2-4079-9359-06f71f51ac03</v>
|
||||
<v>ExecuteLooseCapture</v>
|
||||
<v>81003bd8-702b-46c6-8576-55b4cb3d6508</v>
|
||||
<v>ExecuteMouseClick</v>
|
||||
<v>38ba0b28-4b12-4493-9592-7295d83cee3f</v>
|
||||
<v>ExecuteMouseDblClick</v>
|
||||
<v>d096b23e-54a3-422f-b2ad-5cab7f415d68</v>
|
||||
<v>ExecuteMouseDown</v>
|
||||
<v>fd2a0ed4-cfa0-4c81-ac3a-154c476085bf</v>
|
||||
<v>ExecuteMouseEnter</v>
|
||||
<v>3eb196da-dbad-4a33-b599-c92ac619c961</v>
|
||||
<v>ExecuteMouseLeave</v>
|
||||
<v>4d127b58-1b2d-4421-a7a2-590f2ab04eb8</v>
|
||||
<v>ExecuteMouseMove</v>
|
||||
<v>ecfc61c4-6132-4304-b084-52c22b62b091</v>
|
||||
<v>ExecuteMouseUp</v>
|
||||
<v>97842947-afb6-4377-a1e0-497a4fad1b3a</v>
|
||||
<v>ExecuteValueChanged</v>
|
||||
<v>5134f3a0-6cfd-4802-91ba-4bc2ef3ec14f</v>
|
||||
<v>GetElementInfo</v>
|
||||
<v>18b304d4-0e71-4837-a644-83684312ccc5</v>
|
||||
<v>Initialize</v>
|
||||
<v>8f927b74-8f36-4a18-b313-e9657129d589</v>
|
||||
</d>
|
||||
<d n="FbProperties" t="CaseInsensitiveHashtable" />
|
||||
<v n="FbName">"NotImportant"</v>
|
||||
<v n="FbGuid">{c5c7227b-e260-46ca-81aa-66e288af04d0}</v>
|
||||
</o>
|
||||
<v n="DialogDut">{f68c5176-54d2-4538-b87e-5801589c0396}</v>
|
||||
</o>
|
||||
<v n="LastUsedIdForIdentifier">3</v>
|
||||
<o n="TextDocument" t="TextDocument">
|
||||
<v n="TextBlobForSerialisation">"VAR_IN_OUT
|
||||
|
||||
END_VAR"</v>
|
||||
<n n="LineInfoPersistence" />
|
||||
</o>
|
||||
<v n="GvlCreated">false</v>
|
||||
<n n="LMEntry" />
|
||||
<v n="ProfileCompatibilityId">4140216668L</v>
|
||||
<v n="LMVerMinor">0</v>
|
||||
<v n="LMVerMajor">1</v>
|
||||
<o n="Hotkeys" t="HotkeyConfiguration">
|
||||
<v n="IdMin">481037385728L</v>
|
||||
<v n="IdMax">549755813887L</v>
|
||||
<v n="Id">481037385728L</v>
|
||||
<v n="IdMask">549754765312L</v>
|
||||
<v n="IdStep">1048576L</v>
|
||||
<l2 n="Inputs" />
|
||||
</o>
|
||||
<o n="VisuSizeManager" t="VisualObjectSizeManager">
|
||||
<d2 n="Size" ckt="Int32" cvt="VisualObjectSize">
|
||||
<v>0</v>
|
||||
<o>
|
||||
<v n="Width">363</v>
|
||||
<v n="Height">327</v>
|
||||
</o>
|
||||
<v>1</v>
|
||||
<o>
|
||||
<v n="Width">363</v>
|
||||
<v n="Height">327</v>
|
||||
</o>
|
||||
<v>2</v>
|
||||
<o>
|
||||
<v n="Width">363</v>
|
||||
<v n="Height">327</v>
|
||||
</o>
|
||||
</d2>
|
||||
<v n="Version">2</v>
|
||||
</o>
|
||||
<n n="FrameInterfaceDataModel" />
|
||||
</o>
|
||||
</Data>
|
||||
<TypeList>
|
||||
<Type n="ArrayList">System.Collections.ArrayList</Type>
|
||||
<Type n="BackgroundSettings">{1038f12c-dd4b-4f96-87a3-a350fe8f3552}</Type>
|
||||
<Type n="Boolean">System.Boolean</Type>
|
||||
<Type n="Byte">System.Byte</Type>
|
||||
<Type n="CaseInsensitiveHashtable">{7df88604-7ac5-4e36-91c4-55e4fdad3e68}</Type>
|
||||
<Type n="ComplexInput">{1de566f6-72a7-494c-9353-9a418172c96e}</Type>
|
||||
<Type n="GeneratedLanguageModelEntriesData">{703465dc-4679-4ff2-bcc3-c57d0a204da3}</Type>
|
||||
<Type n="GenericFbDescription">{40d6dd8d-dfd0-493a-8e29-c9a35e1e6539}</Type>
|
||||
<Type n="GenericVisualElem">{f86c2928-8614-4cca-824b-e819ac4d58c4}</Type>
|
||||
<Type n="Guid">System.Guid</Type>
|
||||
<Type n="Hashtable">System.Collections.Hashtable</Type>
|
||||
<Type n="HotkeyConfiguration">{6b108d46-58af-4e41-a3f4-174d8f160cc4}</Type>
|
||||
<Type n="Int32">System.Int32</Type>
|
||||
<Type n="Int64">System.Int64</Type>
|
||||
<Type n="String">System.String</Type>
|
||||
<Type n="TextDocument">{f3878285-8e4f-490b-bb1b-9acbb7eb04db}</Type>
|
||||
<Type n="UInt32">System.UInt32</Type>
|
||||
<Type n="VisualElemCollection">{ef9d0b20-c96e-48db-b361-2ded4063150e}</Type>
|
||||
<Type n="VisualElemList">{f285c9a3-7019-446b-b98c-ccec3a0af8fa}</Type>
|
||||
<Type n="VisualElemMember">{c694e3a2-5c0b-4177-ab35-cb06bd5a6a02}</Type>
|
||||
<Type n="VisualElemMemberCollection">{a4b83bea-3742-489c-9fe8-d96d68dba7ab}</Type>
|
||||
<Type n="VisualElemMemberList">{17e26cd1-bb9b-47fe-a3d5-18fcd63b9c96}</Type>
|
||||
<Type n="VisualObject">{f18bec89-9fef-401d-9953-2f11739a6808}</Type>
|
||||
<Type n="VisualObjectSize">{6ad3e88f-aee2-4766-a7ea-a8790037ef51}</Type>
|
||||
<Type n="VisualObjectSizeManager">{5f612b0e-b404-455f-8177-27864e9f5332}</Type>
|
||||
</TypeList>
|
||||
</XmlArchive>
|
||||
<ObjectProperties>
|
||||
<XmlArchive>
|
||||
<Data>
|
||||
<o xml:space="preserve" t="VisualProperty">
|
||||
<v n="VisuUsageType">0</v>
|
||||
<v n="SizeX">1024</v>
|
||||
<v n="SizeY">768</v>
|
||||
<v n="IsStartVisu">false</v>
|
||||
<v n="VisuSizeMode" t="VisualVisuSizeMode">AutoDetect</v>
|
||||
<v n="Internal">false</v>
|
||||
<v n="DialogIsOpaque">false</v>
|
||||
<v n="DialogIsOpaqueIsSet">false</v>
|
||||
<v n="UseParentSizeProperties">true</v>
|
||||
<n n="ToolboxCategory" />
|
||||
<n n="ToolboxImageId" />
|
||||
<v n="IsCustomCategory">false</v>
|
||||
</o>
|
||||
</Data>
|
||||
<TypeList>
|
||||
<Type n="Boolean">System.Boolean</Type>
|
||||
<Type n="Int32">System.Int32</Type>
|
||||
<Type n="VisualProperty">{477d844b-9b2a-407e-90a4-d36fd6dde2fc}</Type>
|
||||
<Type n="VisualVisuSizeMode">{34718b76-91f6-43de-8c65-b77e0b1ee621}</Type>
|
||||
</TypeList>
|
||||
</XmlArchive>
|
||||
</ObjectProperties>
|
||||
</Visu>
|
||||
</TcPlcObject>
|
||||
@@ -1,593 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<VisuManager Name="Visualization Manager" Id="{99e7ae05-3563-4b1c-a1fe-76e9619e2955}">
|
||||
<XmlArchive>
|
||||
<Data>
|
||||
<o xml:space="preserve" t="VisualManagerObject">
|
||||
<v n="UseUnicodeStrings" t="UnicodeSupport">Undefined</v>
|
||||
<v n="UseOverlay" t="OverlaySupport">Undefined</v>
|
||||
<o n="ViewSettings" t="VisualManagerViewSettings">
|
||||
<n n="StartVisu" />
|
||||
<v n="StartVisu33">"Visualization"</v>
|
||||
<v n="OpenTargetvisu">false</v>
|
||||
<v n="BestFit">false</v>
|
||||
<v n="ClientSizeMode" t="VisualClientSizeMode">AutoDetect</v>
|
||||
<v n="ClientSizeX">2000</v>
|
||||
<v n="ClientSizeY">2000</v>
|
||||
<v n="ExtendedSettings">false</v>
|
||||
<v n="PaintBufferSize">50000</v>
|
||||
<v n="MemorybufferSize">400000</v>
|
||||
<v n="VisuInternal">false</v>
|
||||
<v n="CurrentVisuGlobal">false</v>
|
||||
<v n="FileTransferMode">true</v>
|
||||
<v n="VisuStyle">"Default, 3.1.9.0 (Beckhoff Automation GmbH)"</v>
|
||||
<v n="MaxNumOfClients">100</v>
|
||||
<n n="Language" />
|
||||
<v n="NumpadDialog">"VisuDialogs.Numpad"</v>
|
||||
<v n="KeypadDialog">"VisuDialogs.Keypad"</v>
|
||||
<v n="InputWithLimitsDialog">"VisuDialogs.TextinputWithLimits"</v>
|
||||
<v n="UseInputWithLimits">false</v>
|
||||
<v n="TouchHandlingActive">false</v>
|
||||
<v n="TouchScrollbarsActive">false</v>
|
||||
<v n="SemiTransparentDrawingActive">true</v>
|
||||
<v n="UpdateColorvariablesAfterActivationDone">true</v>
|
||||
<v n="TransferSvgAndConvertedImages">false</v>
|
||||
<v n="LoginDialog">"VisuUserManagement.VUM_Login"</v>
|
||||
<v n="ChangePasswordDialog">"VisuUserManagement.VUM_ChangePassword"</v>
|
||||
<v n="ChangeConfigDialog">"VisuUserManagement.VUM_UserManagementWide"</v>
|
||||
<v n="GuidShowChangePasswordDialogFunction">{00000000-0000-0000-0000-000000000000}</v>
|
||||
<v n="GuidShowChangeConfigDialogFunction">{00000000-0000-0000-0000-000000000000}</v>
|
||||
<v n="UseStandardKeyboardHandling">true</v>
|
||||
<v n="PaintDeactiveElementsGrayedOut">true</v>
|
||||
<o n="GlobalOpenNumpadKeypadSettings" t="VisualManagerGlobalOpenNumpadKeypadSettings">
|
||||
<v n="GlobalOpenNumpadKeypadType" t="GlobalOpenNumpadKeypadType">OpenCentered</v>
|
||||
<n n="PositionX" />
|
||||
<n n="PositionY" />
|
||||
</o>
|
||||
<v n="UseBackgroundForModalDialog">true</v>
|
||||
<v n="AnimationDuration">200</v>
|
||||
<v n="ConvertImages">false</v>
|
||||
<v n="ConversionType">""</v>
|
||||
<v n="BackImage">""</v>
|
||||
<v n="BackImageTop">0</v>
|
||||
<v n="BackImageLeft">0</v>
|
||||
<v n="BackImageBot">0</v>
|
||||
<v n="BackImageRight">0</v>
|
||||
<v n="BackImageWarning">true</v>
|
||||
<v n="BackImageLimit">true</v>
|
||||
<v n="ResponsiveVisualizationSize">true</v>
|
||||
</o>
|
||||
<o n="RegisterDesc" t="GenericFbDescription">
|
||||
<d n="FbMethods" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
|
||||
<v>FB_Exit</v>
|
||||
<v>3b10f3d4-3918-46ea-8c63-adbf43a8a336</v>
|
||||
<v>FB_Init</v>
|
||||
<v>9df8d017-b198-465e-8e55-f69841ae986f</v>
|
||||
<v>FB_Reinit</v>
|
||||
<v>359af835-44f2-492f-a13c-f66f07fb0cd2</v>
|
||||
</d>
|
||||
<d n="FbProperties" t="CaseInsensitiveHashtable" />
|
||||
<v n="FbName">"NotImportant"</v>
|
||||
<v n="FbGuid">{f71ed0ce-2435-440b-9610-dc8f551135be}</v>
|
||||
</o>
|
||||
<o n="TargetProperties" t="VisualizationTargetProperties">
|
||||
<o n="AvailableKeys" t="DeviceBasedHotkeysProvider">
|
||||
<v n="Modifiers">7</v>
|
||||
<v n="DevType">4096</v>
|
||||
<v n="DevId">"1002 0004"</v>
|
||||
<v n="DevVersion">"1.0.0.8"</v>
|
||||
<v n="BaseProvider">{cb73a13e-6ccc-4bc6-8859-f5aa98bb116b}</v>
|
||||
<l n="Keys" t="ArrayList" cet="DeviceBasedHotkeyItem">
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">48</v>
|
||||
<v n="CanonicalName">"0"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">49</v>
|
||||
<v n="CanonicalName">"1"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">50</v>
|
||||
<v n="CanonicalName">"2"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">51</v>
|
||||
<v n="CanonicalName">"3"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">52</v>
|
||||
<v n="CanonicalName">"4"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">53</v>
|
||||
<v n="CanonicalName">"5"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">54</v>
|
||||
<v n="CanonicalName">"6"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">55</v>
|
||||
<v n="CanonicalName">"7"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">56</v>
|
||||
<v n="CanonicalName">"8"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">57</v>
|
||||
<v n="CanonicalName">"9"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">65</v>
|
||||
<v n="CanonicalName">"A"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">107</v>
|
||||
<v n="CanonicalName">"ADDITION"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">66</v>
|
||||
<v n="CanonicalName">"B"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">8</v>
|
||||
<v n="CanonicalName">"BACKSPACE"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">67</v>
|
||||
<v n="CanonicalName">"C"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">110</v>
|
||||
<v n="CanonicalName">"COMMA"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">68</v>
|
||||
<v n="CanonicalName">"D"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">46</v>
|
||||
<v n="CanonicalName">"DELETE"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">111</v>
|
||||
<v n="CanonicalName">"DIVIDE"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">40</v>
|
||||
<v n="CanonicalName">"DOWN"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">69</v>
|
||||
<v n="CanonicalName">"E"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">35</v>
|
||||
<v n="CanonicalName">"END"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">27</v>
|
||||
<v n="CanonicalName">"ESCAPE"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">70</v>
|
||||
<v n="CanonicalName">"F"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">112</v>
|
||||
<v n="CanonicalName">"F1"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">121</v>
|
||||
<v n="CanonicalName">"F10"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">122</v>
|
||||
<v n="CanonicalName">"F11"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">123</v>
|
||||
<v n="CanonicalName">"F12"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">113</v>
|
||||
<v n="CanonicalName">"F2"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">114</v>
|
||||
<v n="CanonicalName">"F3"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">115</v>
|
||||
<v n="CanonicalName">"F4"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">116</v>
|
||||
<v n="CanonicalName">"F5"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">117</v>
|
||||
<v n="CanonicalName">"F6"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">118</v>
|
||||
<v n="CanonicalName">"F7"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">119</v>
|
||||
<v n="CanonicalName">"F8"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">120</v>
|
||||
<v n="CanonicalName">"F9"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">71</v>
|
||||
<v n="CanonicalName">"G"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">72</v>
|
||||
<v n="CanonicalName">"H"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">36</v>
|
||||
<v n="CanonicalName">"HOME"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">73</v>
|
||||
<v n="CanonicalName">"I"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">45</v>
|
||||
<v n="CanonicalName">"INSERT"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">74</v>
|
||||
<v n="CanonicalName">"J"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">75</v>
|
||||
<v n="CanonicalName">"K"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">76</v>
|
||||
<v n="CanonicalName">"L"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">37</v>
|
||||
<v n="CanonicalName">"LEFT"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">77</v>
|
||||
<v n="CanonicalName">"M"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">106</v>
|
||||
<v n="CanonicalName">"MULTIPLY"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">78</v>
|
||||
<v n="CanonicalName">"N"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">96</v>
|
||||
<v n="CanonicalName">"NUM0"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">97</v>
|
||||
<v n="CanonicalName">"NUM1"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">98</v>
|
||||
<v n="CanonicalName">"NUM2"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">99</v>
|
||||
<v n="CanonicalName">"NUM3"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">100</v>
|
||||
<v n="CanonicalName">"NUM4"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">101</v>
|
||||
<v n="CanonicalName">"NUM5"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">102</v>
|
||||
<v n="CanonicalName">"NUM6"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">103</v>
|
||||
<v n="CanonicalName">"NUM7"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">104</v>
|
||||
<v n="CanonicalName">"NUM8"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">105</v>
|
||||
<v n="CanonicalName">"NUM9"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">79</v>
|
||||
<v n="CanonicalName">"O"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">80</v>
|
||||
<v n="CanonicalName">"P"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">19</v>
|
||||
<v n="CanonicalName">"PAUSE"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">42</v>
|
||||
<v n="CanonicalName">"PRINT"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">81</v>
|
||||
<v n="CanonicalName">"Q"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">82</v>
|
||||
<v n="CanonicalName">"R"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">13</v>
|
||||
<v n="CanonicalName">"RETURN_KEY"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">39</v>
|
||||
<v n="CanonicalName">"RIGHT"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">83</v>
|
||||
<v n="CanonicalName">"S"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">32</v>
|
||||
<v n="CanonicalName">"SPACE"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">109</v>
|
||||
<v n="CanonicalName">"SUBTRACT"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">84</v>
|
||||
<v n="CanonicalName">"T"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">9</v>
|
||||
<v n="CanonicalName">"TAB"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">85</v>
|
||||
<v n="CanonicalName">"U"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">38</v>
|
||||
<v n="CanonicalName">"UP"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">86</v>
|
||||
<v n="CanonicalName">"V"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">87</v>
|
||||
<v n="CanonicalName">"W"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">88</v>
|
||||
<v n="CanonicalName">"X"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">89</v>
|
||||
<v n="CanonicalName">"Y"</v>
|
||||
</o>
|
||||
<o>
|
||||
<v n="FromBase">true</v>
|
||||
<v n="KeyCode">90</v>
|
||||
<v n="CanonicalName">"Z"</v>
|
||||
</o>
|
||||
</l>
|
||||
</o>
|
||||
</o>
|
||||
<o n="ConfiguredHotkeys" t="HotkeyConfiguration">
|
||||
<v n="IdMin">481037385728L</v>
|
||||
<v n="IdMax">549755813887L</v>
|
||||
<v n="Id">481037385728L</v>
|
||||
<v n="IdMask">549754765312L</v>
|
||||
<v n="IdStep">1048576L</v>
|
||||
<l2 n="Inputs" />
|
||||
</o>
|
||||
<o n="DefInpHandlerGuids" t="GenericFbDescription">
|
||||
<d n="FbMethods" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
|
||||
<v>abstrGetDefaultCursor</v>
|
||||
<v>cc321d7f-2f37-4b53-bce2-a9bd974a8681</v>
|
||||
<v>ExecuteDialogClosed</v>
|
||||
<v>3bcbc0ce-81cd-4911-8914-44188c177411</v>
|
||||
<v>ExecuteKeyDown</v>
|
||||
<v>fc479f4f-e138-4aaa-b6d6-697590969705</v>
|
||||
<v>ExecuteKeyUp</v>
|
||||
<v>156daac4-6443-4540-9838-4cc30c6e8821</v>
|
||||
<v>ExecuteLooseCapture</v>
|
||||
<v>0626945c-155a-452e-99e1-bc92ccdce784</v>
|
||||
<v>ExecuteMouseClick</v>
|
||||
<v>1b7b169c-830d-4535-a164-ba6f8d1bf165</v>
|
||||
<v>ExecuteMouseDblClick</v>
|
||||
<v>b1f03962-2989-414f-a5bb-812a75d56c3b</v>
|
||||
<v>ExecuteMouseDown</v>
|
||||
<v>028a586e-2455-441f-8a8d-00d127345483</v>
|
||||
<v>ExecuteMouseEnter</v>
|
||||
<v>e2b598c7-7a39-486e-9017-323dac257c30</v>
|
||||
<v>ExecuteMouseLeave</v>
|
||||
<v>4718b2dc-1651-40fd-9361-ef7d890a938b</v>
|
||||
<v>ExecuteMouseMove</v>
|
||||
<v>03e1fd3f-3a59-4354-a91c-81e5a0428954</v>
|
||||
<v>ExecuteMouseUp</v>
|
||||
<v>047888b5-4c63-4490-9a8c-d7184e3c26ce</v>
|
||||
<v>ExecuteValueChanged</v>
|
||||
<v>d7dc51a1-595c-4e58-86b1-6d8e24a5fb22</v>
|
||||
<v>FB_Exit</v>
|
||||
<v>e93ac5c5-9b6e-4ca7-8d80-5d9bcb7edb63</v>
|
||||
<v>FB_Init</v>
|
||||
<v>fbbfef41-6677-40ae-8e1d-435b00930c8d</v>
|
||||
<v>FB_Reinit</v>
|
||||
<v>341a7933-16e7-4fa3-a7a8-6e3d2f3c148c</v>
|
||||
<v>GetElementInfo</v>
|
||||
<v>0ca14ef6-3126-4c73-9f23-beb3d2c12e33</v>
|
||||
<v>Init</v>
|
||||
<v>ebbdcf07-6ef1-440f-91b4-94e62b85242c</v>
|
||||
<v>Initialize</v>
|
||||
<v>d51c9946-c924-4a41-9a42-6e79c7023378</v>
|
||||
</d>
|
||||
<d n="FbProperties" t="CaseInsensitiveHashtable" />
|
||||
<v n="FbName">"NotImportant"</v>
|
||||
<v n="FbGuid">{5b10dcd0-a6a2-4394-8d7e-fc1a897d49c8}</v>
|
||||
</o>
|
||||
<n n="InstantiationStorage" />
|
||||
<n n="VisuUserManagement" />
|
||||
<v n="UseLocalUserMgmt">true</v>
|
||||
<v n="UseUserMgmtInPlc">true</v>
|
||||
<n n="RemoteUserMgmtPath" />
|
||||
<n n="FontsConfig" />
|
||||
<n n="FontDownloadConfig" />
|
||||
<n n="VisuInitializationCode" />
|
||||
<n n="FontSettings" />
|
||||
<v n="GuidVisuSettingsPou">{7b398c37-b8f2-44fa-92e6-cd0ac4432e05}</v>
|
||||
<v n="GuidVisuSettingsPouInit">{b7af0301-7d32-4dec-821a-a12a7de2afe2}</v>
|
||||
<v n="GuidVisuSettingsPouReInit">{b114b7fc-7845-4db6-b717-6ef08132d0b3}</v>
|
||||
<v n="GuidVisuSettingsPouBoolMethod">{f6e93e7a-f026-47f1-9ad6-9ad85a537957}</v>
|
||||
<v n="GuidVisuSettingsPouDIntMethod">{05d2daea-b06a-4275-855d-b7edf1e9a29d}</v>
|
||||
<v n="GuidVisuSettingsPouStringMethod">{699620e8-1df5-45c4-8a2d-7f8ef1544fd5}</v>
|
||||
<v n="GuidVisuSettingsPouReservedMethod">{db37476f-f0fb-4fa9-8a33-33f55c6ee3e6}</v>
|
||||
<v n="GuidMemManInitPou">{37f8aba3-8d02-4b60-b71d-909d434464e0}</v>
|
||||
<v n="GuidMemManInitPouInit">{db09399b-72ff-43d1-8c3a-e078e68c9297}</v>
|
||||
<v n="GuidMemManInitPouReInit">{6864ac69-a0df-43f7-bcd5-4b9c7dc64b57}</v>
|
||||
<v n="GuidStartVisuInitPou">{406a9ed5-2529-4fd5-9ad9-3ae887dda070}</v>
|
||||
<v n="GuidStartVisuInitPouInit">{a4b8d7f7-933b-40f3-9d72-9fe1ba44d7ed}</v>
|
||||
<v n="GuidStartVisuInitPouReInit">{129b0553-f73f-4a63-a791-589dde777670}</v>
|
||||
<v n="GuidVisuGVL0">{9003aa7f-2db3-4a80-9478-ff56da7ce674}</v>
|
||||
<v n="GuidVisuGVL1">{c5aeb04a-4e37-466e-adb7-6e1defc764ae}</v>
|
||||
<v n="GuidVisuGVL2">{94a93fd8-eed7-425b-b4e7-d49ab50e79cc}</v>
|
||||
<v n="GuidVisuGVL_3">{bdccb31c-de80-4c34-8469-8d8f1b48172b}</v>
|
||||
<v n="GuidReservedPou">{b8e3eef6-1f94-489e-bb87-7da6cde40255}</v>
|
||||
<v n="GuidVisuGVL3">{ac528ee4-49b0-4bb2-8b8d-0881d5ce92e3}</v>
|
||||
<v n="GuidReservedPouInit">{cb123efe-50d6-4c66-b719-5a9abc7b78be}</v>
|
||||
<v n="GuidVisuGVL4">{925e8f6d-a925-4ccb-9007-f4aa925f657b}</v>
|
||||
<v n="GuidVisuGVL5">{0e5d2904-0f49-4ca0-873b-e30003524293}</v>
|
||||
<v n="GuidLicenseGVL">{469f8113-0911-47c3-8ac7-302e738f100d}</v>
|
||||
<v n="GuidGlobalClientManagerGVL">{c8fed093-737d-41c7-b196-fe237ae7ae11}</v>
|
||||
<v n="GuidVisuUserMgmtInitPou">{be83b5db-04d7-49b4-95f4-135b529cdb8c}</v>
|
||||
<v n="GuidVisuUserMgmtInitPouInit">{63abefd0-8bc2-4603-9bff-e90b8c47d6fe}</v>
|
||||
<v n="GuidBeforeCompileCommonGVL">{c256e1fd-f3b9-4401-8b5a-a0bb6db81a94}</v>
|
||||
<v n="GuidVisuGVL6">{14dbfc96-fd74-4e8a-afb4-01575aa81bde}</v>
|
||||
<v n="GuidReservedPouMethod1">{e291df9c-0ae4-40f9-aaf6-c7479d74a4b2}</v>
|
||||
<v n="GuidReservedPouReInit">{d9548cb4-7280-404a-a145-5a8f38a9e691}</v>
|
||||
<v n="GuidReservedPouMethod0">{d5955983-4cbf-4785-9324-6a3ae3b62362}</v>
|
||||
<v n="GuidReservedPouMethod2">{b155374e-21a8-4e99-83be-933da117fdc3}</v>
|
||||
</o>
|
||||
</Data>
|
||||
<TypeList>
|
||||
<Type n="ArrayList">System.Collections.ArrayList</Type>
|
||||
<Type n="Boolean">System.Boolean</Type>
|
||||
<Type n="CaseInsensitiveHashtable">{7df88604-7ac5-4e36-91c4-55e4fdad3e68}</Type>
|
||||
<Type n="DeviceBasedHotkeyItem">{11a86981-4b02-4f98-b432-96e385cb41b7}</Type>
|
||||
<Type n="DeviceBasedHotkeysProvider">{c91fc5aa-1e38-43b2-9a05-c52cc5d7f5b6}</Type>
|
||||
<Type n="GenericFbDescription">{40d6dd8d-dfd0-493a-8e29-c9a35e1e6539}</Type>
|
||||
<Type n="GlobalOpenNumpadKeypadType">{550f8ee0-c42e-42f0-b253-4fadf0c12bdf}</Type>
|
||||
<Type n="Guid">System.Guid</Type>
|
||||
<Type n="HotkeyConfiguration">{6b108d46-58af-4e41-a3f4-174d8f160cc4}</Type>
|
||||
<Type n="Int32">System.Int32</Type>
|
||||
<Type n="Int64">System.Int64</Type>
|
||||
<Type n="OverlaySupport">{05125339-dc8c-4673-b403-e21bec548370}</Type>
|
||||
<Type n="String">System.String</Type>
|
||||
<Type n="UnicodeSupport">{19611221-ebd3-4607-86d2-9822fbe84c30}</Type>
|
||||
<Type n="VisualClientSizeMode">{c37fe731-4f69-4d98-82fe-4f9aefbe200d}</Type>
|
||||
<Type n="VisualizationTargetProperties">{997fedbb-1888-4256-b61c-2933d8056bfd}</Type>
|
||||
<Type n="VisualManagerGlobalOpenNumpadKeypadSettings">{422ed780-41e9-4352-8132-b322b16154c1}</Type>
|
||||
<Type n="VisualManagerObject">{4d3fdb8f-ab50-4c35-9d3a-d4bb9bb9a628}</Type>
|
||||
<Type n="VisualManagerViewSettings">{ec9b2ec6-92a2-4856-be72-7866fb274c64}</Type>
|
||||
</TypeList>
|
||||
</XmlArchive>
|
||||
</VisuManager>
|
||||
</TcPlcObject>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<GlobalVariables Crc="1014630079" Id="ea7909c7-35b4-4cd7-83db-e07b116fca76" FileFormatVersion="1.0">
|
||||
<GlobalVariables Crc="2932312680" Id="ea7909c7-35b4-4cd7-83db-e07b116fca76" FileFormatVersion="1.0">
|
||||
<Variable Id="4cc646d4-cb75-49c7-affe-9611956ba512">
|
||||
<Name>Com_Err</Name>
|
||||
<SourceUsages>
|
||||
@@ -45,21 +45,6 @@
|
||||
</AliasDeviceIoUsage>
|
||||
</TargetUsages>
|
||||
</Variable>
|
||||
<Variable Id="51cff873-4be8-4461-826b-418c7d5907f1">
|
||||
<Name>RunStop</Name>
|
||||
<SourceUsages>
|
||||
<AliasDeviceIoUsage Id="1d3adfbf-3b45-404e-81aa-79d0123e6c7b">
|
||||
<SdsId>9</SdsId>
|
||||
<ChannelId>1</ChannelId>
|
||||
<FunctionId>1131179973</FunctionId>
|
||||
</AliasDeviceIoUsage>
|
||||
</SourceUsages>
|
||||
<TargetUsages>
|
||||
<GroupPortUsage Id="45552e43-5e15-423e-bd90-16ab4175610f">
|
||||
<ModelElementId>08fab2e8-8d41-4915-ba0f-0c17dc36ad64</ModelElementId>
|
||||
</GroupPortUsage>
|
||||
</TargetUsages>
|
||||
</Variable>
|
||||
<Variable Id="f6bf5921-0b9a-4305-9be1-483ad63e057f">
|
||||
<Name>ComStartUp</Name>
|
||||
<SourceUsages>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TargetSystemConfig Crc="3657269247" Version="1.5">
|
||||
<TargetSystemConfig Crc="3821398253" Version="1.5">
|
||||
<TargetSystemType>HSafetyPLC</TargetSystemType>
|
||||
<TargetSystemSubType>EL1918</TargetSystemSubType>
|
||||
<IsExternalDevice>false</IsExternalDevice>
|
||||
@@ -7,7 +7,7 @@
|
||||
<TargetSystemObjectName>PC_K01_KL02 (EL1918)</TargetSystemObjectName>
|
||||
<SoftwareVersion>02 (V01.08) </SoftwareVersion>
|
||||
<SerialNumber>3885647</SerialNumber>
|
||||
<ProjectCRC>12630</ProjectCRC>
|
||||
<ProjectCRC>32969</ProjectCRC>
|
||||
<MapProjectCRC>false</MapProjectCRC>
|
||||
<MapSerialNumber>false</MapSerialNumber>
|
||||
<VersionNumber>1</VersionNumber>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<safetyApplication Crc="3250625055" xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.5.0.0" Id="d197abde-1e46-4da1-af49-0c5e8acb0bf2" name="" mapState="false" mapDiag="false" groupOrderId="0" passificationAllowed="false" temporaryDeactivationAllowed="false" permamentDeactivationAllowed="false" xmlid="0" analogFBOutputReplacementValues="Zero" verifyAnalogFBInputsIfStart="false" userFbId="00000000-0000-0000-0000-000000000000" xmlns="http://schemas.microsoft.com/dsltools/SafetyApplicationLanguage">
|
||||
<safetyApplication Crc="1147292257" xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.5.0.0" Id="d197abde-1e46-4da1-af49-0c5e8acb0bf2" name="" mapState="false" mapDiag="false" groupOrderId="0" passificationAllowed="false" temporaryDeactivationAllowed="false" permamentDeactivationAllowed="false" xmlid="0" analogFBOutputReplacementValues="Zero" verifyAnalogFBInputsIfStart="false" userFbId="00000000-0000-0000-0000-000000000000" xmlns="http://schemas.microsoft.com/dsltools/SafetyApplicationLanguage">
|
||||
<networks>
|
||||
<safetyApplicationHasNetworks Id="980a2a23-c4cd-4476-8c84-c716c4cfd6d9">
|
||||
<Network Id="cf310e0f-e61c-4ed8-80c0-d6a8048dade1" name="Network8" networkName="Network8" intId="72" networkOrderId="0">
|
||||
@@ -1409,13 +1409,7 @@
|
||||
<twinSAFEGroupAliasPort Id="42bc74d9-b76c-4dae-9237-ba96960c8144" name="ErrAck" sdsId="0" channelId="0" portName="ErrAck" functionId="0" />
|
||||
</safetyApplicationHasTwinSAFEGroupAliasPort>
|
||||
<safetyApplicationHasTwinSAFEGroupAliasPort Id="2c1cb575-ba65-4f0b-a20f-8685362b0eb8">
|
||||
<twinSAFEGroupAliasPort Id="08fab2e8-8d41-4915-ba0f-0c17dc36ad64" name="RunStop" sdsId="0" channelId="0" portName="RunStop" functionId="0">
|
||||
<groupPortGlobalVariableReferences>
|
||||
<twinSAFEGroupAliasPortHasGroupPortGlobalVariableReferences Id="3bedaf7f-6ed2-4c00-b2a0-8476c3bf14c7">
|
||||
<groupPortGlobalVariableReference Id="5b97f5d6-fc75-4113-9fdd-1520d015ba69" variableId="51cff873-4be8-4461-826b-418c7d5907f1" lastKnownPath="GVL1.RunStop" />
|
||||
</twinSAFEGroupAliasPortHasGroupPortGlobalVariableReferences>
|
||||
</groupPortGlobalVariableReferences>
|
||||
</twinSAFEGroupAliasPort>
|
||||
<twinSAFEGroupAliasPort Id="08fab2e8-8d41-4915-ba0f-0c17dc36ad64" name="RunStop" sdsId="0" channelId="0" portName="RunStop" functionId="0" />
|
||||
</safetyApplicationHasTwinSAFEGroupAliasPort>
|
||||
<safetyApplicationHasTwinSAFEGroupAliasPort Id="4a8ce6af-8cd3-4ff1-a9f4-1f5b7f79ad2f">
|
||||
<twinSAFEGroupAliasPort Id="198acedc-3e31-43e2-8caa-29478a13a987" name="ModuleFault" sdsId="0" channelId="0" portName="ModuleFault" functionId="0" />
|
||||
|
||||
@@ -544,7 +544,7 @@
|
||||
<ImageData Id="1020">424de6000000000000007600000028000000100000000e000000010004000000000070000000000000000000000010000000000000001c120800244aa500203262002462ee001c273f00245ad500243a7c001c222b001c1a1e002472fc00244fb7001c2a4d00243a7100246afc0024428d001c1a1300d5bbbbbbedddddddddb8777fcdd9dd9dd580ffffcddddddd9e7780f47b5dd9ddd3d35cb700e9ddd9ddd9d9de88a9ddddd9dddd9abb3dddddddddd99e04d9dd9dddddddd20adddddd9dd9d958b9ddd9ddddddd18cddddddd9dd5554e99d999d1dd9b07b2ee111e1add5bb777774bb6add</ImageData>
|
||||
<ImageData Id="1021">424de6000000000000007600000028000000100000000e000000010004000000000070000000000000000000000000000000000000000000000000008000008000000080800080000000800080008080000080808000c0c0c0000000ff0000ff000000ffff00ff000000ff00ff00ffff0000ffffff00bb1111113bbbbbbbbb1000001bbbbbbbbb0000001bbbbbbbb300000001bbbbbbbbbbb110003bbbbbbbbbbbb3003bbbbbbbbbbbb311bbbbbbbbbbbbb300bbbbbbbbbbbbb103bbbbbbbbbbbbb01bbbbbbbbbbbb301bbbbbbbbbbbbb03bbbbbbb3bbb1001133333333bb3110000001113bb</ImageData>
|
||||
</ImageDatas>
|
||||
<Device Id="1" Disabled="true" DevType="111" DevFlags="#x0003" AmsPort="28673" AmsNetId="0.0.0.0.2.1" RemoteName="Device 1 (EtherCAT)" InfoImageId="2">
|
||||
<Device Id="1" DevType="111" DevFlags="#x0003" AmsPort="28673" AmsNetId="0.0.0.0.2.1" RemoteName="Device 1 (EtherCAT)" InfoImageId="2">
|
||||
<Name>__FILENAME__</Name>
|
||||
<AddressInfo>
|
||||
<Pnp>
|
||||
@@ -556,6 +556,9 @@
|
||||
<Image Id="1" AddrType="9" ImageType="3">
|
||||
<Name>Image</Name>
|
||||
</Image>
|
||||
<Image Id="5" AddrType="10" ImageType="3">
|
||||
<Name>Prozessabbild-2</Name>
|
||||
</Image>
|
||||
<Box Id="24" BoxType="9099">
|
||||
<Name>Etcher1ChuckPresent (EP1018-0001)</Name>
|
||||
<ImageId>1000</ImageId>
|
||||
@@ -35037,19 +35040,19 @@ Bit 8 - 15 : reserved]]></Comment>
|
||||
<Var>
|
||||
<Name>HEAD</Name>
|
||||
<Type GUID="{D46F6451-58CF-4853-A5DB-DA36D1D59A28}" Namespace="IO">ECAT_HEAD</Type>
|
||||
<BitOffs>12416</BitOffs>
|
||||
<BitOffs>1184</BitOffs>
|
||||
</Var>
|
||||
<Var>
|
||||
<Name>DATA</Name>
|
||||
<Type GUID="{18071995-0000-0000-0000-001300000200}">ARRAY [0..511] OF BYTE</Type>
|
||||
<BitOffs>12496</BitOffs>
|
||||
<BitOffs>1264</BitOffs>
|
||||
</Var>
|
||||
<Var>
|
||||
<Name>CNT</Name>
|
||||
<Comment><![CDATA[Working counter
|
||||
After receiving]]></Comment>
|
||||
<Type>UINT</Type>
|
||||
<BitOffs>16592</BitOffs>
|
||||
<BitOffs>5360</BitOffs>
|
||||
</Var>
|
||||
</Vars>
|
||||
<Vars VarGrpType="2">
|
||||
@@ -35057,19 +35060,19 @@ After receiving]]></Comment>
|
||||
<Var>
|
||||
<Name>HEAD</Name>
|
||||
<Type GUID="{D46F6451-58CF-4853-A5DB-DA36D1D59A28}" Namespace="IO">ECAT_HEAD</Type>
|
||||
<BitOffs>12416</BitOffs>
|
||||
<BitOffs>1184</BitOffs>
|
||||
</Var>
|
||||
<Var>
|
||||
<Name>DATA</Name>
|
||||
<Type GUID="{18071995-0000-0000-0000-001300000200}">ARRAY [0..511] OF BYTE</Type>
|
||||
<BitOffs>12496</BitOffs>
|
||||
<BitOffs>1264</BitOffs>
|
||||
</Var>
|
||||
<Var>
|
||||
<Name>CNT</Name>
|
||||
<Comment><![CDATA[Working counter
|
||||
Before sending]]></Comment>
|
||||
<Type>UINT</Type>
|
||||
<BitOffs>16592</BitOffs>
|
||||
<BitOffs>5360</BitOffs>
|
||||
</Var>
|
||||
</Vars>
|
||||
</EtherCATCmd>
|
||||
|
||||
@@ -1440,7 +1440,7 @@ External Setpoint Generation:
|
||||
<SvbTask Priority="8" CycleTime="100000" AmsPort="511">
|
||||
<Name>NC-Task 1 SVB</Name>
|
||||
</SvbTask>
|
||||
<Axis Id="1" CreateSymbols="true" AxisType="1">
|
||||
<Axis Id="1" CreateSymbols="true" AxisType="1" SimulationMode="true">
|
||||
<Name>Etcher1Chuck</Name>
|
||||
<AxisPara>
|
||||
<General UnitName="°" UnitFlags="#x00000004"/>
|
||||
@@ -1585,7 +1585,7 @@ External Setpoint Generation:
|
||||
</Var>
|
||||
</Vars>
|
||||
</Axis>
|
||||
<Axis Id="3" CreateSymbols="true" AxisType="1" GroupId="2">
|
||||
<Axis Id="3" CreateSymbols="true" AxisType="1" SimulationMode="true" GroupId="2">
|
||||
<Name>Etcher1BSR</Name>
|
||||
<AxisPara>
|
||||
<General UnitName="°"/>
|
||||
@@ -1729,7 +1729,7 @@ External Setpoint Generation:
|
||||
</Var>
|
||||
</Vars>
|
||||
</Axis>
|
||||
<Axis Id="2" CreateSymbols="true" AxisType="1" GroupId="3">
|
||||
<Axis Id="2" CreateSymbols="true" AxisType="1" SimulationMode="true" GroupId="3">
|
||||
<Name>Etcher2Chuck</Name>
|
||||
<AxisPara>
|
||||
<General UnitName="°" UnitFlags="#x00000004"/>
|
||||
@@ -1874,7 +1874,7 @@ External Setpoint Generation:
|
||||
</Var>
|
||||
</Vars>
|
||||
</Axis>
|
||||
<Axis Id="4" CreateSymbols="true" AxisType="1">
|
||||
<Axis Id="4" CreateSymbols="true" AxisType="1" SimulationMode="true">
|
||||
<Name>Etcher2BSR</Name>
|
||||
<AxisPara>
|
||||
<General UnitName="°"/>
|
||||
@@ -2018,7 +2018,7 @@ External Setpoint Generation:
|
||||
</Var>
|
||||
</Vars>
|
||||
</Axis>
|
||||
<Axis Id="5" CreateSymbols="true" AxisType="1">
|
||||
<Axis Id="5" CreateSymbols="true" AxisType="1" SimulationMode="true">
|
||||
<Name>AlignerXAxis</Name>
|
||||
<AxisPara>
|
||||
<Dynamic Acceleration="15" Deceleration="15" Jerk="45"/>
|
||||
@@ -2177,7 +2177,7 @@ External Setpoint Generation:
|
||||
</Var>
|
||||
</Vars>
|
||||
</Axis>
|
||||
<Axis Id="6" CreateSymbols="true" AxisType="1">
|
||||
<Axis Id="6" CreateSymbols="true" AxisType="1" SimulationMode="true">
|
||||
<Name>AlignerYAxis</Name>
|
||||
<AxisPara>
|
||||
<Dynamic Acceleration="15" Deceleration="15" Jerk="45"/>
|
||||
|
||||
@@ -18,4 +18,55 @@
|
||||
<TaskPouOid Prio="20" OTCID="#x08502001"/>
|
||||
</TaskPouOids>
|
||||
</Instance>
|
||||
<Mappings>
|
||||
<OwnerA>
|
||||
<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 Outputs^PRG_Safety._xErrorAck" VarB="StandardOutputs^Standard In Var 212" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Safety._xLockDoor" VarB="StandardOutputs^Standard In Var 192" Size="1"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Safety._xRun" VarB="StandardOutputs^Standard In Var 9" Size="1"/>
|
||||
</OwnerB>
|
||||
<OwnerB Name="TIID^Device 1 (EtherCAT)^RobotMain">
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._abMirrorToolsAndPositions" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 4 (Greifer/Drehteller/Positionen)"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._asiMotorTemps1To4" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 8 (Motor Temp)"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._asiMotorTemps5To8" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 9 (Motor Temp)"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._awJobStatesFromRobot" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 2 (JobAktiv/JobEnde)"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._diMirrorOffsetPosX" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 5 (Offset X)"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._diMirrorOffsetPosY" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 6 (Offset Y)"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._diMirrorThickness" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 7 (Thickness)"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._dwErrorBits" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 1 (Errorbits)"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._dwJobForPLC" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 3 (JobForPLC)"/>
|
||||
<Link VarA="PlcTask Inputs^PRG_Main._fbRobot._uState" VarB="Module 3 (Default IO)^Std. In (64 Bytes)^Input DWORD 0 (Status)"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._abToolsAndPositions" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 2 (Greifer/Drehteller/Positionen)"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._diOffsetPosX" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 3 (Offset X)"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._diOffsetPosY" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^Output DWORD 4 (Offset Y)"/>
|
||||
<Link VarA="PlcTask Outputs^PRG_Main._fbRobot._diThickness" VarB="Module 3 (Default IO)^Std. Out (64 Bytes)^ Output DWORD 5 (Thickness)"/>
|
||||
<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)"/>
|
||||
</OwnerB>
|
||||
<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>
|
||||
</OwnerA>
|
||||
</Mappings>
|
||||
</TcSmItem>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?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="CSafetyPlcProjDef">
|
||||
<Project GUID="{16E7B360-DCD5-431E-9380-EF0E96A38071}" Name="TwinSAFE" PrjFilePath="..\..\TwinSAFE\TwinSAFE.splcproj" TmcFilePath="..\..\TwinSAFE\TwinSAFE.tmc" GeneralArchiveSettings="#x000f" TargetArchiveSettings="#x0007" FileArchiveSettings="#x000e">
|
||||
<Project Disabled="true" GUID="{16E7B360-DCD5-431E-9380-EF0E96A38071}" Name="TwinSAFE" PrjFilePath="..\..\TwinSAFE\TwinSAFE.splcproj" TmcFilePath="..\..\TwinSAFE\TwinSAFE.tmc" GeneralArchiveSettings="#x000f" TargetArchiveSettings="#x0007" FileArchiveSettings="#x000e">
|
||||
<Instance File="TwinSAFE Instance.xti"/>
|
||||
</Project>
|
||||
</TcSmItem>
|
||||
|
||||
10
doc/.vscode/settings.json
vendored
Normal file
10
doc/.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"json.schemas": [
|
||||
{
|
||||
"fileMatch": [
|
||||
"./recipe_data.json"
|
||||
],
|
||||
"url": "./recipe_data_schema.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
285
doc/StateMachines.drawio
Normal file
285
doc/StateMachines.drawio
Normal file
@@ -0,0 +1,285 @@
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.3.0 Chrome/140.0.7339.249 Electron/38.7.2 Safari/537.36" version="29.3.0" pages="2">
|
||||
<diagram name="Complete_SM" id="ftpb_kXLDtCrtDVQ6dMH">
|
||||
<mxGraphModel dx="1301" dy="896" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--59" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" value="" vertex="1">
|
||||
<mxGeometry height="400" width="800" x="40" y="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--41" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--40">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--4" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Stopped" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="80" y="520" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--56" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--55">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--5" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Stopping" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="240" y="520" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--16" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--4">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--15" parent="1" style="ellipse;fillColor=strokeColor;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="30" width="30" x="105" y="670" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--58" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--50" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--55">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="440" y="580" />
|
||||
<mxPoint x="200" y="580" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--50" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Clearing" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="400" y="520" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--53" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="MSPdzodM52y7OSiT-G8--52">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--51" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Aborting" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="680" y="520" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--54" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="MSPdzodM52y7OSiT-G8--50">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--52" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Aborted" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="560" y="520" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--57" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--55" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--4">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--55" parent="1" style="ellipse;fillColor=strokeColor;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="190" y="530" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--60" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.3;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;" target="MSPdzodM52y7OSiT-G8--5">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--49" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--48" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.981;exitY=0.298;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitPerimeter=0;" target="MSPdzodM52y7OSiT-G8--36">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--48" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="200" width="160" x="340" y="200" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--47" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1.008;exitY=0.098;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitPerimeter=0;" target="MSPdzodM52y7OSiT-G8--32">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--44" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" value="" vertex="1">
|
||||
<mxGeometry height="160" width="120" x="360" y="220" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--11" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--9">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--2" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Idle" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="80" y="240" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--8" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--2">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--7" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Resetting" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="80" y="320" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--23" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--22">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--9" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Starting" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="200" y="240" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--21" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="MSPdzodM52y7OSiT-G8--18">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--3" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Execute" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="380" y="240" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--25" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--24">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--14" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Suspended" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="380" y="320" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--19" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--14">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--18" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Suspending" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="520" y="320" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--28" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--3">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--22" parent="1" style="ellipse;fillColor=strokeColor;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="310" y="250" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--27" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--22">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--24" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Unsuspending" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="240" y="320" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--29" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--33">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--30" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Held" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="380" y="120" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--31" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--30">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--32" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Holding" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="520" y="120" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--34" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--22">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--33" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Unholding" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="240" y="120" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--39" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--38">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--36" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Completing" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="600" y="240" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--43" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--40">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="760" y="440" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--38" parent="1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Completed" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="720" y="240" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--42" edge="1" parent="1" source="MSPdzodM52y7OSiT-G8--40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="MSPdzodM52y7OSiT-G8--7">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="MSPdzodM52y7OSiT-G8--40" parent="1" style="ellipse;fillColor=strokeColor;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="110" y="430" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
<diagram name="Kuka_Robot" id="H1vC8POeMy0M4dT3gOif">
|
||||
<mxGraphModel dx="1106" dy="762" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-0" />
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-1" parent="Z4hdVuXi7llSv1JNwN2g-0" />
|
||||
<mxCell id="kZ-qJAZda7UxfiRZ7m-w-1" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-13">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-17" parent="Z4hdVuXi7llSv1JNwN2g-1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" value="" vertex="1">
|
||||
<mxGeometry height="400" width="800" x="40" y="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-2" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-49">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-3" parent="Z4hdVuXi7llSv1JNwN2g-1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Stopped" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="80" y="520" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-6" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-3">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-7" parent="Z4hdVuXi7llSv1JNwN2g-1" style="ellipse;fillColor=strokeColor;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="30" width="30" x="105" y="670" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="kZ-qJAZda7UxfiRZ7m-w-0" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="280" y="540" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-13" parent="Z4hdVuXi7llSv1JNwN2g-1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Aborted" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="560" y="520" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-16" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.3;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-3">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="280" y="520" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-19" parent="Z4hdVuXi7llSv1JNwN2g-1" style="rounded=1;whiteSpace=wrap;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="200" width="160" x="340" y="200" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-20" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1.008;exitY=0.098;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitPerimeter=0;" target="Z4hdVuXi7llSv1JNwN2g-41">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-21" parent="Z4hdVuXi7llSv1JNwN2g-1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" value="" vertex="1">
|
||||
<mxGeometry height="160" width="120" x="360" y="220" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-22" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-27">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-23" parent="Z4hdVuXi7llSv1JNwN2g-1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Idle" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="80" y="240" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-24" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-23">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-25" parent="Z4hdVuXi7llSv1JNwN2g-1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Resetting" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="80" y="320" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-26" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-35">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-27" parent="Z4hdVuXi7llSv1JNwN2g-1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Starting" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="200" y="240" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-28" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="Z4hdVuXi7llSv1JNwN2g-33">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-29" parent="Z4hdVuXi7llSv1JNwN2g-1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Execute" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="380" y="240" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-30" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-37">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-31" parent="Z4hdVuXi7llSv1JNwN2g-1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Suspended" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="380" y="320" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-32" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-31">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-33" parent="Z4hdVuXi7llSv1JNwN2g-1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Suspending" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="520" y="320" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-34" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-29">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-35" parent="Z4hdVuXi7llSv1JNwN2g-1" style="ellipse;fillColor=strokeColor;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="310" y="250" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-36" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-35">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-37" parent="Z4hdVuXi7llSv1JNwN2g-1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Unsuspending" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="240" y="320" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-38" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-43">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-39" parent="Z4hdVuXi7llSv1JNwN2g-1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Held" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="380" y="120" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-40" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-39">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-41" parent="Z4hdVuXi7llSv1JNwN2g-1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Holding" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="520" y="120" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-42" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-35">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-43" parent="Z4hdVuXi7llSv1JNwN2g-1" style="html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;whiteSpace=wrap;" value="Unholding" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="240" y="120" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-48" edge="1" parent="Z4hdVuXi7llSv1JNwN2g-1" source="Z4hdVuXi7llSv1JNwN2g-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="Z4hdVuXi7llSv1JNwN2g-25">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Z4hdVuXi7llSv1JNwN2g-49" parent="Z4hdVuXi7llSv1JNwN2g-1" style="ellipse;fillColor=strokeColor;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="110" y="430" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
63
doc/recipe_data.json
Normal file
63
doc/recipe_data.json
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"metadata": {
|
||||
"version": "1.0",
|
||||
"description": "Beschreibung der Rezeptparameter",
|
||||
"maxParams": 5
|
||||
},
|
||||
"processVariables": {
|
||||
"real": [
|
||||
{
|
||||
"index": 0,
|
||||
"id": 1,
|
||||
"name": "Temperatur",
|
||||
"unit": "degC",
|
||||
"min": 0.0,
|
||||
"max": 60.5
|
||||
},
|
||||
{
|
||||
"index": 1,
|
||||
"id": 2,
|
||||
"name": "Dummy 1",
|
||||
"unit": "mm",
|
||||
"min": 0.0,
|
||||
"max": 100.0
|
||||
}
|
||||
],
|
||||
"string": [
|
||||
{
|
||||
"index": "0",
|
||||
"id": 4,
|
||||
"name": "Dummy string",
|
||||
"unit": ""
|
||||
}
|
||||
],
|
||||
"lreal": [
|
||||
{
|
||||
"index": 0,
|
||||
"id": 5,
|
||||
"name": "Test lreal",
|
||||
"unit": "um",
|
||||
"min": -123000.3,
|
||||
"max": 450000.264
|
||||
}
|
||||
],
|
||||
"dint": [
|
||||
{
|
||||
"index": 0,
|
||||
"id": 6,
|
||||
"name": "Greifer Nummer",
|
||||
"unit": "",
|
||||
"min": 1,
|
||||
"max": 3
|
||||
},
|
||||
{
|
||||
"index": 1,
|
||||
"id": 7,
|
||||
"name": "Teller nummer",
|
||||
"unit": "",
|
||||
"min": 1,
|
||||
"max": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
87
doc/recipe_data_schema.json
Normal file
87
doc/recipe_data_schema.json
Normal file
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "PackTagV3ProcessVariablesSSOT",
|
||||
"type": "object",
|
||||
"required": ["metadata", "processVariables"],
|
||||
"properties": {
|
||||
"metadata": {
|
||||
"type": "object",
|
||||
"required": ["version", "description", "maxParams"],
|
||||
"properties": {
|
||||
"version": { "type": "string" },
|
||||
"description": { "type": "string" },
|
||||
"maxParams": { "type": "integer", "minimum": 1 }
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"processVariables": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"real": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["index", "id", "name", "unit", "min", "max"],
|
||||
"properties": {
|
||||
"index": { "type": "integer", "minimum": 0 },
|
||||
"id": { "type": "integer", "minimum": 0 },
|
||||
"name": { "type": "string", "maxLength": 80 },
|
||||
"unit": { "type": "string", "maxLength": 6 },
|
||||
"min": { "type": "number" },
|
||||
"max": { "type": "number" }
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"lreal": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["index", "id", "name", "unit", "min", "max"],
|
||||
"properties": {
|
||||
"index": { "type": "integer", "minimum": 0 },
|
||||
"id": { "type": "integer", "minimum": 0 },
|
||||
"name": { "type": "string", "maxLength": 80 },
|
||||
"unit": { "type": "string", "maxLength": 6 },
|
||||
"min": { "type": "number" },
|
||||
"max": { "type": "number" }
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"dint": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["index", "id", "name", "unit", "min", "max"],
|
||||
"properties": {
|
||||
"index": { "type": "integer", "minimum": 0 },
|
||||
"id": { "type": "integer", "minimum": 0 },
|
||||
"name": { "type": "string", "maxLength": 80 },
|
||||
"unit": { "type": "string", "maxLength": 6 },
|
||||
"min": { "type": "integer" },
|
||||
"max": { "type": "integer" }
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"string": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["index", "id", "name", "unit"],
|
||||
"properties": {
|
||||
"index": { "type": [ "integer", "string" ] },
|
||||
"id": { "type": "integer", "minimum": 0 },
|
||||
"name": { "type": "string", "maxLength": 80 },
|
||||
"unit": { "type": "string", "maxLength": 6 }
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
Reference in New Issue
Block a user