59
0x7
STOP could not be executed.
#define T5RET_OK 0
#define T5RET_ERROR 1
#define T5RET_BADCODE 2 /* invalid app code - bad header */
#define T5RET_BADCODETARGET 3 /* invalid code - bad target id */
#define T5RET_BADCODEVERSION 4 /* invalid code - bad version */
#define T5RET_EXECSIZE 5 /* exec buffer overflow */
#define T5RET_BADREQUEST 6 /* unknown comm request */
#define T5RET_SERVEREAD 7 /* cannot process read request */
#define T5RET_UNKNOWNTIC 8 /* unknocn tic code */
#define T5RET_DATA8OVERFLOW 9 /* too many DATA8 used */
#define T5RET_DATA16OVERFLOW 10 /* too many DATA16 used */
#define T5RET_DATA32OVERFLOW 11 /* too many DATA32 used */
#define T5RET_DIVZERO 12 /* division by 0 in TIC (32bit) */
#define T5RET_TIMEOVERFLOW 13 /* too many TIME variables */
#define T5RET_CANTACTIME 14 /* active timers not supported */
#define T5RET_SAFETICLOOP 15 /* awful loop in TIC (safe mode) */
#define T5RET_OUTOFTIC 16 /* TIC code ointer out of range */
#define T5RET_UNKNOWNSTF 17 /* not supported std function */
#define T5RET_LDIVZERO 18 /* division by 0 in TIC (64bit) */
#define T5RET_DATA64OVERFLOW 19 /* too many DATA64 used */
#define T5RET_STRINGOVERFLOW 20 /* too many strings */
#define T5RET_SDIVZERO 21 /* division by zero in TIC (8 bit) */
#define T5RET_WDIVZERO 22 /* division by zero in TIC (16 bit) */
#define T5RET_HOTRESOURCES 23 /* HOT restart: system resources used */
#define T5RET_HOTMAP 24 /* invalid var map in hot restart */
#define T5RET_HOTACTIME 25 /* change of active timer map */
#define T5RET_HOTSTAMP 26 /* bad build stamp for hot restart */
#define T5RET_HOTSFC 27 /* SFC changed - no hot restart! */
#define T5RET_HOTRETAIN 28 /* retain def has changed - no hot */
#define T5RET_HOTFORMAT 29 /* bad DB format - no hot restart! */
#define T5RET_CYCLEOVERFLOW 30 /* cycle time overflow */
#define T5RET_RETAINSTORING 31 /* cant store retain variables */
#define T5RET_ARRAYBOUND 32 /* array index out of bounds */
#define T5RET_RECURSE 33 /* recursive call of sub-program */
#define T5RET_XVOVERFLOW 34 /* too many external variables used */
#define T5RET_NOBSAMPLING 35 /* sampling trace not supported */
#define T5RET_TASKOVERFLOW 36 /* too many tasks */
#define T5RET_HOTCALLSTACK 37 /* call stack overflow (hot) */
#define T5RET_STACKOVER 38 /* stack overlow */
#define T5RET_HOTASI 39 /* cannot hot restart ASi */
#define T5RET_TOXC 40 /* OXC limit reached */
#define T5RET_WOXC 41 /* OXC info */
60
straton can be used redundantly and offers the possibility to combine the zenon redundancy with the straton
redundancy.
In this chapter the configuration of the zenon/straton redundancy is described. The
zenon/>CA_PRODUCTNAME< redundancy is referred to as SCADA logic redundancy from here on.
Further terms:
zenon server = dominant zenon server
zenon SB = zenon standby server
Active straton Runtime = straton Runtime instance being executed
Passive straton Runtime = backup system (Standby) of straton Runtime
Redundancy can be used with the following operating systems:
Windows XP
Windows Vista
Windows 7
Windows CE
5.8.1
Requirements
Two PCs are necessary for SCADA logic redundancy. The both PCs are connected via Ethernet TCP/IP
(100 MBit, recommended 1 GBit).
Attention
The SCADA logic redundancy demands that both systems, zenon and straton, are installed
on one PC.
We recommend to set the cycle time of the straton project to twice the cycle time of a single project, but
at least to 50 ms.
61
Since SCADA logic implies that straton and zenon communicate with each other using the shared
memory driver (straton to zenonRT connection), it must be guaranteed that the zenon
server and the
active straton Runtime run on the same PC.
In order to prevent a one-sided switching from straton or zenon, a synchronization between the straton
Runtime and the zenon Runtime must be engineered. For this a watchdog is used.
The status of the zenon project (stand alone/server/standby server/client) is transferred via the shared
memory command area and is evaluated by the redundancy function block. It has a freely definable time
out value as input. As output binary values for redundancy switch and active, passive and failed
Runtimes etc. are output. They determine the reaction of the straton Runtime.
To make it clear from which zenon project the watchdog or the status originates,
the zenon Runtime driver or the shared memory area must have the zenon
project GUID
the zenon Runtime driver or the shared memory area must have the straton project name
A watchdog generated by the zenon Runtime driver is transferred via the shared memory command area
and evaluated in zenon. This evaluation takes place in accordance with the settings of properties Failure
recognition after [s] and Function for failure recognition. They define a time out time and a
function (normally Exit Runtime).
In order for the correct watchdog to be evaluated, it must be clear for several active straton projects
from which straton project the watchdog originated. For this: