More Meca implementation

This commit is contained in:
2026-03-02 10:14:52 +01:00
parent 13444a149c
commit dbfa6fc7cc
26 changed files with 3994 additions and 105 deletions

View File

@@ -76,6 +76,8 @@ VAR
// Actuators
// =========
_fbRobot : FB_Mecademics;
xDisableVacuum AT %Q* : BOOL;
END_VAR
]]></Declaration>
@@ -132,6 +134,8 @@ _fbEjectBack(
xDisableVacuum := (NOT xEnableVacuum);
_fbRobot(stPackMLHMIInterface := stHMIInterface.stMecaCmds);
// Call base sm
SUPER^(stPackMLHMIInterface := stHMIInterface.stStationCmds);

View File

@@ -2,7 +2,7 @@
<TcPlcObject Version="1.1.0.1">
<GVL Name="GVL_ETCHER" Id="{ef1ba925-5452-40f1-b847-57ee34065909}">
<Declaration><![CDATA[{attribute 'qualified_only'}
VAR_GLOBAL
VAR_GLOBAL CONSTANT
MAX_ROBOT_POS : UINT := 10;
END_VAR]]></Declaration>
</GVL>

View File

@@ -53,7 +53,7 @@ TYPE E_Meca_Cmds :
SET_TOOL_SPHERE := 155,
SET_CALIBRATION_CFG := 156,
REBOOT_ROBOT := 200
);
)UDINT := NO_MOVEMENT;
END_TYPE
]]></Declaration>
</DUT>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_Meca_Configurations" Id="{d428df95-5825-4c78-9c82-db07b6f06b2a}">
<Declaration><![CDATA[TYPE ST_Meca_Configurations :
STRUCT
siShoulder : SINT;
siElbow : SINT;
siWrist : SINT;
siTurn : SINT;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_Meca_DynamicData" Id="{eb440853-1144-466e-801d-c83f27997752}">
<Declaration><![CDATA[TYPE ST_Meca_DynamicData :
STRUCT
udiDynamic_Type : UDINT;
rValue_0 : REAL;
rValue_1 : REAL;
rValue_2 : REAL;
rValue_3 : REAL;
rValue_4 : REAL;
rValue_5 : REAL;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_Meca_EndEffectorPose" Id="{550369ad-a02a-4994-845f-0e5bcd8c28d2}">
<Declaration><![CDATA[TYPE ST_Meca_EndEffectorPose :
STRUCT
rSubIndex_001 : REAL;
rSubIndex_002 : REAL;
rSubIndex_003 : REAL;
rSubIndex_004 : REAL;
rSubIndex_005 : REAL;
rSubIndex_006 : REAL;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_Meca_RobotTimestamp" Id="{8c6943a9-eb48-4002-9676-3b975565fe21}">
<Declaration><![CDATA[TYPE ST_Meca_RobotTimestamp :
STRUCT
udiTimestamp_Seconds : UDINT;
udiTimestamp_Microseconds : UDINT;
udiDynamic_Data_Cycles : UDINT;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_Meca_SafetyStatus" Id="{87f1a6a3-00a5-4cfe-890e-38e5886ffb63}">
<Declaration><![CDATA[TYPE ST_Meca_SafetyStatus :
STRUCT
bEstop : BIT;
bUnused2 : BIT;
bPStop2 : BIT;
bUnused4 : BIT;
bUnused5 : BIT;
bUnused6 : BIT;
bUnused7 : BIT;
bReboot : BIT;
bUnused9 : BIT;
bUnused10 : BIT;
bConnection_Dropped : BIT;
bUnused12 : BIT;
bUnused13 : BIT;
bUnused14 : BIT;
bUnused15 : BIT;
bUnused16 : BIT;
bUnused17 : BIT;
bUnused18 : BIT;
bUnused19 : BIT;
bUnused20 : BIT;
bUnused21 : BIT;
bUnused22 : BIT;
bUnused23 : BIT;
bUnused24 : BIT;
bUnused25 : BIT;
bUnused26 : BIT;
bUnused27 : BIT;
bUnused28 : BIT;
bUnused29 : BIT;
bUnused30 : BIT;
bUnused31 : BIT;
bUnused32 : BIT;
bEstop_Resettable : BIT;
bUnused34 : BIT;
bPStop2_Resettable : BIT;
bUnused36 : BIT;
bUnused37 : BIT;
bUnused38 : BIT;
bUnused39 : BIT;
bReboot_Resettable : BIT;
bUnused41 : BIT;
bUnused42 : BIT;
bConnection_Dropped_Resettable : BIT;
bUnused44 : BIT;
bUnused45 : BIT;
bUnused46 : BIT;
bUnused47 : BIT;
bUnused48 : BIT;
bUnused49 : BIT;
bUnused50 : BIT;
bUnused51 : BIT;
bUnused52 : BIT;
bUnused53 : BIT;
bUnused54 : BIT;
bUnused55 : BIT;
bUnused56 : BIT;
bUnused57 : BIT;
bUnused58 : BIT;
bUnused59 : BIT;
bUnused60 : BIT;
bUnused61 : BIT;
bUnused62 : BIT;
bUnused63 : BIT;
bUnused64 : BIT;
bUnused65 : USINT;
bReset_Ready : BIT;
bVmotor_on : BIT;
bUnused68 : BIT;
bUnused69 : BIT;
bUnused70 : BIT;
bUnused71 : BIT;
bUnused72 : BIT;
bUnused73 : BIT;
bUnused74 : BIT;
bUnused75 : BIT;
bUnused76 : BIT;
bUnused77 : BIT;
bUnused78 : BIT;
bUnused79 : BIT;
{attribute 'hide'}
breserved1 : BIT;
{attribute 'hide'}
breserved2 : BIT;
{attribute 'hide'}
breserved3 : USINT;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_Meca_JointSet" Id="{11c9caa0-793d-42a4-a6d6-9b5ea59d2923}">
<DUT Name="ST_Meca_SubIndex" Id="{11c9caa0-793d-42a4-a6d6-9b5ea59d2923}">
<Declaration><![CDATA[{attribute 'pack_mode' := '1'}
TYPE ST_Meca_JointSet :
TYPE ST_Meca_SubIndex :
STRUCT
rSubIndex001 : REAL;
rSubIndex002 : REAL;

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_Meca_BreaksControl" Id="{d002e7e2-c385-4270-8e84-4eabb3a35679}">
<Declaration><![CDATA[TYPE ST_Meca_BreaksControl :
STRUCT
bBrakesControlAllowed : BIT;
bBrakesEngaged : BIT;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_Meca_MotionControl" Id="{74b560dc-7b24-4a46-bcf7-f3928a356b76}">
<Declaration><![CDATA[TYPE ST_Meca_MotionControl :
STRUCT
Move_ID : UINT;
SetPoint : BIT;
Pause : BIT;
Clear_Move : BIT;
Resume_Motion : BIT;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_Meca_Move" Id="{fb9f8b41-eddc-4ca4-9e77-c3d7e9282c37}">
<Declaration><![CDATA[TYPE ST_Meca_Move :
STRUCT
udiMove_Command : UDINT;
rSubIndex_001 : REAL;
rSubIndex_002 : REAL;
rSubIndex_003 : REAL;
rSubIndex_004 : REAL;
rSubIndex_005 : REAL;
rSubIndex_006 : REAL;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_Meca_RobotControl" Id="{b7dca174-83b7-4e16-8fce-bddd2eb93964}">
<Declaration><![CDATA[TYPE ST_Meca_RobotControl :
STRUCT
bDeactivate : BIT;
bActivate : BIT;
bHome : BIT;
bReset_Error : BIT;
bSim_Mode : BIT;
bRecovery_Mode : BIT;
bDisableEtherCAT : BIT;
{attribute 'hide'}
_reserved1 : BIT;
{attribute 'hide'}
_reserved2 : ARRAY [1..3] OF USINT;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_Meca_Inputs" Id="{aee4d747-0300-4e1c-963b-4297e692d221}">
<Declaration><![CDATA[TYPE ST_Meca_Inputs :
STRUCT
stRobotStatus : ST_Meca_RobotStatus;
stMotionStatus : ST_Meca_MotionStatus;
stJointSet : ST_Meca_SubIndex;
stEndEffectorPose : ST_Meca_EndEffectorPose;
stConfigurations : ST_Meca_Configurations;
stWRF : ST_Meca_SubIndex;
stTRF : ST_Meca_SubIndex;
stRobotTimestamp : ST_Meca_RobotTimestamp;
stSafetyStatus : ST_Meca_SafetyStatus;
stDynamicData0 : ST_Meca_DynamicData;
stDynamicData1 : ST_Meca_DynamicData;
stDynamicData2 : ST_Meca_DynamicData;
stDynamicData3 : ST_Meca_DynamicData;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<DUT Name="ST_Meca_Outputs" Id="{4c92256b-96a9-4346-9b9b-5d7a337cd273}">
<Declaration><![CDATA[TYPE ST_Meca_Outputs :
STRUCT
stRobotControl : ST_Meca_RobotControl;
stMotionControl : ST_Meca_MotionControl;
stMove : ST_Meca_Move;
udiHostTime : UDINT;
stBrakesControl : ST_Meca_BreaksControl;
udiDynamicDataCfg0 : UDINT;
udiDynamicDataCfg1 : UDINT;
udiDynamicDataCfg2 : UDINT;
udiDynamicDataCfg3 : UDINT;
END_STRUCT
END_TYPE
]]></Declaration>
</DUT>
</TcPlcObject>

View File

@@ -1,16 +1,303 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<POU Name="FB_Mecademics" Id="{c81cf0ae-3f01-4427-918b-0d3e1c93ae01}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK FB_Mecademics
<Declaration><![CDATA[FUNCTION_BLOCK FB_Mecademics EXTENDS FB_PackMLGeneric
VAR_INPUT
END_VAR
VAR_OUTPUT
xBusy : BOOL;
xDone : BOOL;
xError : BOOL;
END_VAR
VAR
stRobotInputs AT %I* : ST_Meca_Inputs;
stRobotOutputs AT %Q* : ST_Meca_Outputs;
// Safety reset output
xReset AT %Q* : BOOL;
_fbResetPulse : TP;
// Current move id
_uiMoveId : UINT := 1;
// Debug
_xTest : BOOL;
_xDone : BOOL;
_xError : BOOL;
_iDS : INT;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
<ST><![CDATA[SUPER^(stPackMLHMIInterface := stPackMLHMIInterface);
CASE _iDS OF
0:
IF _xTest THEN
_xTest := FALSE;
_iDS := 10;
END_IF
10:
M_ExecuteCmd(
eCmd:= E_Meca_Cmds.MOVE_LIN,
rSI1:= 80,
rSI2:= 80,
rSI3:= 10,
rSI4:= 0,
rSI5:= 0,
rSI6:= 0,
xDone=> _xDone,
xError=> _xError);
IF _xDone OR _xError THEN
_iDS := 0;
END_IF
END_CASE]]></ST>
</Implementation>
<Method Name="FB_init" Id="{b39b41a5-5e30-4480-88f3-9748b615d950}">
<Declaration><![CDATA[//FB_Init is always available implicitly and it is used primarily for initialization.
//The return value is not evaluated. For a specific influence, you can also declare the
//methods explicitly and provide additional code there with the standard initialization
//code. You can evaluate the return value.
METHOD FB_Init: BOOL
VAR_INPUT
bInitRetains: BOOL; // TRUE: the retain variables are initialized (reset warm / reset cold)
bInCopyCode: BOOL; // TRUE: the instance will be copied to the copy code afterward (online change)
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[_stSMConfig.xSuspededDisabled := TRUE;
_stSMConfig.xHeldDisabled := TRUE;
_stSMConfig.xCompletedDisabled := TRUE;
_stSMConfig.xClearingDisabled := TRUE;
]]></ST>
</Implementation>
</Method>
<Method Name="M_ClearCmd" Id="{3363b63b-d0d9-4750-b0b8-c2b0abdc2690}">
<Declaration><![CDATA[METHOD PRIVATE M_ClearCmd
VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[stRobotOutputs.stMove.udiMove_Command := E_Meca_Cmds.NO_MOVEMENT;
stRobotOutputs.stMove.rSubIndex_001 := 0;
stRobotOutputs.stMove.rSubIndex_002 := 0;
stRobotOutputs.stMove.rSubIndex_003 := 0;
stRobotOutputs.stMove.rSubIndex_004 := 0;
stRobotOutputs.stMove.rSubIndex_005 := 0;
stRobotOutputs.stMove.rSubIndex_006 := 0;
stRobotOutputs.stMotionControl.Move_ID := 0;
stRobotOutputs.stMotionControl.SetPoint := 0;]]></ST>
</Implementation>
</Method>
<Method Name="M_Execute" Id="{b1f00bfa-a0a0-4a86-98a4-0a9242f7788f}">
<Declaration><![CDATA[METHOD PROTECTED M_Execute
]]></Declaration>
<Implementation>
<ST><![CDATA[CASE _iSSM OF
// Idle no command
0:
// Wait for robot command execute trigger
END_CASE]]></ST>
</Implementation>
</Method>
<Method Name="M_ExecuteCmd" Id="{5a17ad67-b9f0-443e-b4f3-cbcd71a5ce3e}">
<Declaration><![CDATA[METHOD PRIVATE M_ExecuteCmd
VAR_INPUT
eCmd : E_Meca_Cmds;
rSI1 : REAL := 0;
rSI2 : REAL := 0;
rSI3 : REAL := 0;
rSI4 : REAL := 0;
rSI5 : REAL := 0;
rSI6 : REAL := 0;
END_VAR
VAR_OUTPUT
xDone : BOOL;
xError : BOOL;
END_VAR
VAR_INST
_iState : INT;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[CASE _iState OF
0:
stRobotOutputs.stMove.udiMove_Command := eCmd;
stRobotOutputs.stMove.rSubIndex_001 := rSI1;
stRobotOutputs.stMove.rSubIndex_002 := rSI2;
stRobotOutputs.stMove.rSubIndex_003 := rSI3;
stRobotOutputs.stMove.rSubIndex_004 := rSI4;
stRobotOutputs.stMove.rSubIndex_005 := rSI5;
stRobotOutputs.stMove.rSubIndex_006 := rSI6;
stRobotOutputs.stMotionControl.Move_ID := _uiMoveId;
stRobotOutputs.stMotionControl.SetPoint := 1;
xDone := FALSE;
xError := FALSE;
_iState := 10;
10:
IF stRobotInputs.stMotionStatus.uiMoveID = _uiMoveId THEN
_uiMoveId := _uiMoveId + 1;
M_ClearCmd();
xDone := TRUE;
_iState := 0;
END_IF
IF stRobotInputs.stRobotStatus.uiError <> 0 THEN
_uiMoveId := _uiMoveId + 1;
M_ClearCmd();
xError := TRUE;
_iState := 0;
END_IF
END_CASE]]></ST>
</Implementation>
</Method>
<Method Name="M_Resetting" Id="{807f1e42-2b9f-4d36-82a0-1e9f3b86646a}">
<Declaration><![CDATA[METHOD PROTECTED M_Resetting
VAR_INST
_tonTimer : TON;
xExecDone : BOOL;
xExecError : BOOL;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[CASE _iSSM OF
0:
// Reset E-Stop if required
IF stRobotInputs.stSafetyStatus.bEstop THEN
// Can we reset the estop?
IF stRobotInputs.stSafetyStatus.bEstop_Resettable THEN
_iSSM := 10;
ELSE
_eCmd := E_PackMLCmd.ABORT;
END_IF
ELSE
// Go to activate state
_iSSM := 20;
END_IF
// Reset E-Stop
10:
xReset := TRUE;
_tonTimer(IN := TRUE, PT := T#250MS);
IF _tonTimer.Q THEN
_tonTimer(IN := FALSE);
xReset := FALSE;
_iSSM := 15;
END_IF
// Check if E-Stop was resetted
15:
// Timeout safety reset
_tonTimer(IN := TRUE, PT := T#10S);
IF _tonTimer.Q THEN
_tonTimer(IN := FALSE);
// TODO trigger error message
_eCmd := E_PackMLCmd.ABORT;
END_IF
IF (NOT stRobotInputs.stSafetyStatus.bEstop) THEN
_iSSM := 20;
END_IF
// Activate robot if needed
20:
IF (NOT stRobotInputs.stRobotStatus.bActivated) THEN
_iSSM := 21;
ELSE
_iSSM := 30;
END_IF
// Activate robot
21:
stRobotOutputs.stRobotControl.bActivate := TRUE;
IF stRobotInputs.stRobotStatus.bActivated THEN
stRobotOutputs.stRobotControl.bActivate := FALSE;
_iSSM := 30;
END_IF
// Timeout
_tonTimer(IN := TRUE, PT := T#10S);
IF _tonTimer.Q THEN
_tonTimer(IN := FALSE);
stRobotOutputs.stRobotControl.bActivate := FALSE;
// TODO trigger error message
_eCmd := E_PackMLCmd.ABORT;
END_IF
// Check homing
30:
IF (NOT stRobotInputs.stRobotStatus.bHomed) THEN
_iSSM := 31;
ELSE
_iSSM := 40;
END_IF
// Home robot
31:
stRobotOutputs.stRobotControl.bHome := TRUE;
IF stRobotInputs.stRobotStatus.bHomed THEN
stRobotOutputs.stRobotControl.bHome := FALSE;
_iSSM := 40;
END_IF
// Timeout
_tonTimer(IN := TRUE, PT := T#20S);
IF _tonTimer.Q THEN
_tonTimer(IN := FALSE);
stRobotOutputs.stRobotControl.bHome := FALSE;
// TODO trigger error message
_eCmd := E_PackMLCmd.ABORT;
END_IF
// Set wrf
32:
M_ExecuteCmd(E_Meca_Cmds.SET_WRF, 163.5, -34.79, 465, -180, 0, 180, xDone => xExecDone, xError => xExecError);
IF xExecDone THEN
_iSSM := 33;
END_IF
IF xExecError THEN
_eCmd := E_PackMLCmd.ABORT;
END_IF
// Set trf
33:
M_ExecuteCmd(E_Meca_Cmds.SET_TRF, 0, 0, 92, 0, 180, 90, xDone => xExecDone, xError => xExecError);
IF xExecDone THEN
_iSSM := 34;
END_IF
IF xExecError THEN
_eCmd := E_PackMLCmd.ABORT;
END_IF
// Move to save position
34:
M_ExecuteCmd(E_Meca_Cmds.MOVE_LIN, 0, 0, 10, 0, 0, 0, xDone => xExecDone, xError => xExecError);
IF xExecDone THEN
_iSSM := 40;
END_IF
IF xExecError THEN
_eCmd := E_PackMLCmd.ABORT;
END_IF
// Robot ready
40:
M_StateComplete();
END_CASE]]></ST>
</Implementation>
</Method>
</POU>
</TcPlcObject>

View File

@@ -5,6 +5,8 @@
STRUCT
stStationCmds : ST_HMI_PackML;
stMecaCmds : ST_HMI_PackML;
// Vacuum valve
stVacuumValve : ST_HMI_VALVE_DATA;

File diff suppressed because it is too large Load Diff

39
PLC/GlobalTextList.TcGTLO Normal file
View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<GlobalTextList Name="GlobalTextList" Id="{e60dd1d6-8d51-4ae9-ba5d-cc349a8d1933}">
<XmlArchive>
<Data>
<o xml:space="preserve" t="GlobalTextListObject">
<l n="TextList" t="ArrayList" cet="TextListRow">
<o>
<v n="TextID">"930"</v>
<v n="TextDefault">"Abort"</v>
<l n="LanguageTexts" t="ArrayList" />
</o>
<o>
<v n="TextID">"612"</v>
<v n="TextDefault">"Clear"</v>
<l n="LanguageTexts" t="ArrayList" />
</o>
<o>
<v n="TextID">"693"</v>
<v n="TextDefault">"Reset"</v>
<l n="LanguageTexts" t="ArrayList" />
</o>
</l>
<l n="Languages" t="ArrayList" />
<v n="GuidInit">{b012a327-a2e9-40f6-a9ac-a558f04e2f3f}</v>
<v n="GuidReInit">{4365fb23-3b15-4428-9d09-72ef62da5c17}</v>
<v n="GuidExitX">{632d5581-5da5-45c9-a1ef-c89a6839e11d}</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>

View File

@@ -68,13 +68,46 @@
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\E_Meca_Cmds.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\ST_Meca_JointSet.TcDUT">
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Inpus\ST_Meca_Configurations.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\ST_Meca_MotionStatus.TcDUT">
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Inpus\ST_Meca_DynamicData.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\ST_Meca_RobotStatus.TcDUT">
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Inpus\ST_Meca_EndEffectorPose.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Inpus\ST_Meca_MotionStatus.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Inpus\ST_Meca_RobotStatus.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Inpus\ST_Meca_RobotTimestamp.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Inpus\ST_Meca_SafetyStatus.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Inpus\ST_Meca_SubIndex.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Outputs\ST_Meca_BreaksControl.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Outputs\ST_Meca_MotionControl.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Outputs\ST_Meca_Move.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Outputs\ST_Meca_RobotControl.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\ST_Meca_Inputs.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\DUTs\ST_Meca_Outputs.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="01_Stationen\Etcher\Mecademics\FB_Mecademics.TcPOU">
@@ -170,6 +203,13 @@
<Compile Include="01_Stationen\TrayFeeder\ST_TrayFeederStatus.TcDUT">
<SubType>Code</SubType>
</Compile>
<Compile Include="Debug_Visu\Visualization.TcVIS">
<SubType>Code</SubType>
<DependentUpon>Visualization Manager.TcVMO</DependentUpon>
</Compile>
<Compile Include="GlobalTextList.TcGTLO">
<SubType>Code</SubType>
</Compile>
<Compile Include="GVLs\GVL_SCADA.TcGVL">
<SubType>Code</SubType>
<LinkAlways>true</LinkAlways>
@@ -288,12 +328,17 @@
<Compile Include="PlcTask.TcTTO">
<SubType>Code</SubType>
</Compile>
<Compile Include="Visualization Manager.TcVMO">
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<Folder Include="01_Stationen\Coolplate\DUTs" />
<Folder Include="01_Stationen\Coolplate\POUs" />
<Folder Include="01_Stationen\Etcher\Mecademics" />
<Folder Include="01_Stationen\Etcher\Mecademics\DUTs" />
<Folder Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Inpus" />
<Folder Include="01_Stationen\Etcher\Mecademics\DUTs\Meca500_Outputs" />
<Folder Include="01_Stationen\Hotplate\DUTs" />
<Folder Include="01_Stationen\Hotplate\POUs" />
<Folder Include="01_Stationen\HVTester\DUTs" />
@@ -323,12 +368,55 @@
<Folder Include="LibraryCandidates\Unittests" />
<Folder Include="LibraryCandidates\PackML" />
<Folder Include="LibraryCandidates\PackML\ITFs" />
<Folder Include="Debug_Visu" />
</ItemGroup>
<ItemGroup>
<PlaceholderReference Include="BaseComponents">
<DefaultResolution>BaseComponents, * (Heisig GmbH)</DefaultResolution>
<Namespace>BC</Namespace>
</PlaceholderReference>
<PlaceholderReference Include="System_VisuElemMeter">
<DefaultResolution>VisuElemMeter, 4.7.0.0 (System)</DefaultResolution>
<Namespace>VisuElemMeter</Namespace>
<SystemLibrary>true</SystemLibrary>
<ResolverGuid>2717eb6a-dd07-4c66-8d8d-cacebd7b18ae</ResolverGuid>
</PlaceholderReference>
<PlaceholderReference Include="System_VisuElems">
<DefaultResolution>VisuElems, 4.8.0.0 (System)</DefaultResolution>
<Namespace>VisuElems</Namespace>
<SystemLibrary>true</SystemLibrary>
<ResolverGuid>2717eb6a-dd07-4c66-8d8d-cacebd7b18ae</ResolverGuid>
</PlaceholderReference>
<PlaceholderReference Include="System_VisuElemsSpecialControls">
<DefaultResolution>VisuElemsSpecialControls, 4.7.0.0 (System)</DefaultResolution>
<Namespace>VisuElemsSpecialControls</Namespace>
<SystemLibrary>true</SystemLibrary>
<ResolverGuid>2717eb6a-dd07-4c66-8d8d-cacebd7b18ae</ResolverGuid>
</PlaceholderReference>
<PlaceholderReference Include="System_VisuElemsWinControls">
<DefaultResolution>VisuElemsWinControls, 4.8.0.0 (System)</DefaultResolution>
<Namespace>VisuElemsWinControls</Namespace>
<SystemLibrary>true</SystemLibrary>
<ResolverGuid>2717eb6a-dd07-4c66-8d8d-cacebd7b18ae</ResolverGuid>
</PlaceholderReference>
<PlaceholderReference Include="System_VisuElemTextEditor">
<DefaultResolution>VisuElemTextEditor, 4.8.0.0 (System)</DefaultResolution>
<Namespace>VisuElemTextEditor</Namespace>
<SystemLibrary>true</SystemLibrary>
<ResolverGuid>2717eb6a-dd07-4c66-8d8d-cacebd7b18ae</ResolverGuid>
</PlaceholderReference>
<PlaceholderReference Include="System_VisuInputs">
<DefaultResolution>VisuInputs, 4.7.0.0 (System)</DefaultResolution>
<Namespace>VisuInputs</Namespace>
<SystemLibrary>true</SystemLibrary>
<ResolverGuid>2717eb6a-dd07-4c66-8d8d-cacebd7b18ae</ResolverGuid>
</PlaceholderReference>
<PlaceholderReference Include="System_VisuNativeControl">
<DefaultResolution>VisuNativeControl, 4.8.0.0 (System)</DefaultResolution>
<Namespace>VisuNativeControl</Namespace>
<SystemLibrary>true</SystemLibrary>
<ResolverGuid>2717eb6a-dd07-4c66-8d8d-cacebd7b18ae</ResolverGuid>
</PlaceholderReference>
<PlaceholderReference Include="Tc2_Standard">
<DefaultResolution>Tc2_Standard, * (Beckhoff Automation GmbH)</DefaultResolution>
<Namespace>Tc2_Standard</Namespace>
@@ -354,6 +442,10 @@
<DefaultResolution>TcUnit, * (www.tcunit.org)</DefaultResolution>
<Namespace>TcUnit</Namespace>
</PlaceholderReference>
<PlaceholderReference Include="VisuDialogs">
<DefaultResolution>VisuDialogs, * (System)</DefaultResolution>
<Namespace>VisuDialogs</Namespace>
</PlaceholderReference>
</ItemGroup>
<ItemGroup>
<None Include="PLC.tmc">
@@ -393,6 +485,12 @@
<o>
<v n="Name">"{29BD8D0C-3586-4548-BB48-497B9A01693F}"</v>
<d n="SubKeys" t="Hashtable" ckt="String" cvt="OptionKey">
<v>NamingConventions</v>
<o>
<v n="Name">"NamingConventions"</v>
<d n="SubKeys" t="Hashtable" />
<d n="Values" t="Hashtable" />
</o>
<v>Rules</v>
<o>
<v n="Name">"Rules"</v>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,587 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<VisuManager Name="Visualization Manager" Id="{0419276f-2100-4c11-bc47-ef128dfa5c0e}">
<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>
<n n="GlobalOpenNumpadKeypadSettings" />
<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">false</v>
</o>
<o n="RegisterDesc" t="GenericFbDescription">
<d n="FbMethods" t="CaseInsensitiveHashtable" ckt="String" cvt="Guid">
<v>FB_Exit</v>
<v>48334f63-9579-4549-8e3b-b1d93755b2ac</v>
<v>FB_Init</v>
<v>bb8a0df7-9042-44c1-b571-932eb4caf1ba</v>
<v>FB_Reinit</v>
<v>469f0cd7-b348-40a7-b44c-651c4498a2db</v>
</d>
<d n="FbProperties" t="CaseInsensitiveHashtable" />
<v n="FbName">"NotImportant"</v>
<v n="FbGuid">{d535eea1-7362-4b95-ab0a-5ee8db379f0c}</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.9"</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>b3d08a5c-8b08-41f4-bfb1-38b604e777c5</v>
<v>ExecuteDialogClosed</v>
<v>30e9a87e-be52-4d3b-816b-46b44407f24e</v>
<v>ExecuteKeyDown</v>
<v>f5fa304a-334b-4b78-96fb-5142817880c1</v>
<v>ExecuteKeyUp</v>
<v>489255bc-d58f-4b59-aeb6-eb0f0f76b726</v>
<v>ExecuteLooseCapture</v>
<v>839ba222-dfb7-45e3-b36d-06dec414eb2b</v>
<v>ExecuteMouseClick</v>
<v>e0101b46-4e18-4f66-b460-4c9925207dba</v>
<v>ExecuteMouseDblClick</v>
<v>79adf297-294e-4696-9a51-2c37bc6e0f13</v>
<v>ExecuteMouseDown</v>
<v>5af6fa10-8965-44fe-b025-3b78eadaa3b9</v>
<v>ExecuteMouseEnter</v>
<v>d8d4c727-e51f-4749-80f7-8c491f67591f</v>
<v>ExecuteMouseLeave</v>
<v>70c2f2d3-def1-43c7-a96e-065c98930316</v>
<v>ExecuteMouseMove</v>
<v>46d59831-8fb8-40dd-a5a6-a5443fc060c8</v>
<v>ExecuteMouseUp</v>
<v>968b3edb-7ab6-45e4-a356-0df9fc0b1c64</v>
<v>ExecuteValueChanged</v>
<v>87680bd7-388f-4d0d-8bd7-dc1f2df427d8</v>
<v>FB_Exit</v>
<v>a0514203-55ff-4533-95e7-e8c1d1ed68fa</v>
<v>FB_Init</v>
<v>8cf8813c-92ae-4b89-9e3b-e103042801e2</v>
<v>FB_Reinit</v>
<v>910a0ccd-4eaa-471c-bfe3-ef96dd6b36ed</v>
<v>GetElementInfo</v>
<v>ce872c1e-2cf3-429d-b34a-09673af9c80a</v>
<v>Init</v>
<v>fc607a16-019c-4282-a9ff-653f5848a3e1</v>
<v>Initialize</v>
<v>102ff2a8-eecf-4d11-a4a2-8741acbc9b1a</v>
</d>
<d n="FbProperties" t="CaseInsensitiveHashtable" />
<v n="FbName">"NotImportant"</v>
<v n="FbGuid">{561f33cf-05ab-4b74-91f4-d5038bf6c17b}</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">{01aa8356-5435-4bd5-9497-7555a85e7c2e}</v>
<v n="GuidVisuSettingsPouInit">{235bf19a-0f8a-412a-b2a7-35673ed10a8c}</v>
<v n="GuidVisuSettingsPouReInit">{f03fcfa4-4cb3-4106-8285-054ddaaaff2f}</v>
<v n="GuidVisuSettingsPouBoolMethod">{8ff256ad-537e-4ea6-aaff-51d67d6a6760}</v>
<v n="GuidVisuSettingsPouDIntMethod">{d4ee9633-b545-4fc4-b4ef-c18cdb48acce}</v>
<v n="GuidVisuSettingsPouStringMethod">{0ed0da21-c049-4d32-ab8f-61fb849fb2e9}</v>
<v n="GuidVisuSettingsPouReservedMethod">{38a1316b-712f-4c0a-bfdb-436fa63963e8}</v>
<v n="GuidMemManInitPou">{1ffdd871-2940-443f-943c-722476235f3e}</v>
<v n="GuidMemManInitPouInit">{c258055b-1ec4-481b-ac7c-72e65dcef4eb}</v>
<v n="GuidMemManInitPouReInit">{9711ab64-61fe-4d9f-af9b-2283d2f97831}</v>
<v n="GuidStartVisuInitPou">{436d87ac-a5cd-4e01-9c1b-b674da962bf1}</v>
<v n="GuidStartVisuInitPouInit">{c0c17a5b-b48b-49a0-a22d-4873f20c2281}</v>
<v n="GuidStartVisuInitPouReInit">{59923462-48ed-4683-96c5-9e493a00f86f}</v>
<v n="GuidVisuGVL0">{c86a8ec3-ebc4-45a7-b813-93192e387651}</v>
<v n="GuidVisuGVL1">{f13d8114-4b51-4aff-b484-d57cab58cc73}</v>
<v n="GuidVisuGVL2">{4d87f86a-fad3-4644-958e-cb5a6b2ee792}</v>
<v n="GuidVisuGVL_3">{ea28f9cf-fb0b-41ee-a3b8-766f9332d8aa}</v>
<v n="GuidReservedPou">{d3b33740-87f9-45ed-aef6-96dbfe905694}</v>
<v n="GuidVisuGVL3">{6027f589-e862-4e70-8bda-b1f6dcc88244}</v>
<v n="GuidReservedPouInit">{1b24f182-395f-4ea6-a7af-a641e50c9369}</v>
<v n="GuidVisuGVL4">{936d864a-4e86-4cca-a278-9f184c70c713}</v>
<v n="GuidVisuGVL5">{efb3ce8f-5578-4c06-941f-d865b3bd4278}</v>
<v n="GuidLicenseGVL">{61ed01e0-c65d-4885-a6ec-1080f19366e4}</v>
<v n="GuidGlobalClientManagerGVL">{51f5291b-4d21-4500-8be2-ffa5b7eb3732}</v>
<v n="GuidVisuUserMgmtInitPou">{663b8360-f37f-41f1-b134-10b3d81ec558}</v>
<v n="GuidVisuUserMgmtInitPouInit">{ae4df67a-2450-4349-8566-64f336ffc50c}</v>
<v n="GuidBeforeCompileCommonGVL">{708a4250-04ba-4d8e-ba9c-5bf0805a22e3}</v>
<v n="GuidVisuGVL6">{100dd71a-7acf-4d8e-bcbe-6a73d96b5e03}</v>
<v n="GuidReservedPouMethod1">{314fab2d-76b1-40e4-a535-bb6aa30afe32}</v>
<v n="GuidReservedPouReInit">{9ef62e4a-1eab-4fe5-b3eb-b679d26630f0}</v>
<v n="GuidReservedPouMethod0">{af20bfc0-5c03-4702-878f-6c76e22ed779}</v>
<v n="GuidReservedPouMethod2">{381aba7e-1371-4431-87bf-d8db5b4b9d80}</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="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="VisualManagerObject">{4d3fdb8f-ab50-4c35-9d3a-d4bb9bb9a628}</Type>
<Type n="VisualManagerViewSettings">{ec9b2ec6-92a2-4856-be72-7866fb274c64}</Type>
</TypeList>
</XmlArchive>
</VisuManager>
</TcPlcObject>