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:
@@ -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>
|
||||
Reference in New Issue
Block a user