Hello,
Personally I’m using a different approach:
First I’ve declared this event:
![]()
Which call this function:
FUNCTION FuSystemResetDone : DWORD
VAR_IN_OUT
{attribute 'analysis' := '-33'}
EventPrm: CmpApp.EVTPARAM_CmpAppReset;
{attribute 'analysis' := '+33'}
END_VAR
VAR
END_VAR
-----------------------------------------------------------------------------
GVL_SYSTEM.oWagoAppCtrl.AttachToApplication(''); // attach to own application
IF GVL_SYSTEM.oWagoAppCtrl.xIsAttached THEN
GVL_SYSTEM.oWagoAppCtrl.StartApplication();
END_IF;
The Reset itself is done by this program:
PROGRAM prgSystemReset
VAR
_xInitialized : BOOL;
_sAppName : STRING;
END_VAR
---------------------------------------------------------------------------------
GVL_SYSTEM.oWagoAppCtrl(); // cyclic operation for updating outputs
IF NOT(_xInitialized) THEN
GVL_SYSTEM.oWagoAppCtrl.AttachToApplication(''); // attach to own application
IF GVL_SYSTEM.oWagoAppCtrl.xIsAttached THEN
_xInitialized := TRUE;
END_IF;
ELSE
_sAppName := GVL_SYSTEM.oWagoAppCtrl.getAppName(); // find out your own name
IF GVL_SYSTEM.xReset THEN
IF GVL_SYSTEM.xFactory_Reset_Cold THEN
GVL_SYSTEM.oWagoAppCtrl.ResetApplicationCold();
ELSE
GVL_SYSTEM.oWagoAppCtrl.ResetApplicationWarm();
END_IF;
END_IF;
END_IF;
Edit: Add the GVL_SYSTEM list
{attribute 'qualified_only'}
VAR_GLOBAL
oWagoAppCtrl : WagoAppControl.FbWagoApplicationControl;
xReset : BOOL;
xFactory_Reset_Cold : BOOL;
END_VAR


