Difference between revisions of "MC-Basic:ONSYSTEMERROR"
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Languages|MC-Basic:ONSYSTEMERROR}} | ||
{{MC-Basic | {{MC-Basic | ||
|SHORT FORM= | |SHORT FORM= | ||
Line 12: | Line 13: | ||
{catch <error number Y> | {catch <error number Y> | ||
<code to execute when error Y occurs>} | <code to execute when error Y occurs>} | ||
− | {else | + | {catch else |
<code to execute for all other errors>} | <code to execute for all other errors>} | ||
End OnSystemError 'End of OnSystemError block<br> | End OnSystemError 'End of OnSystemError block<br> | ||
Line 72: | Line 73: | ||
|SEE ALSO= | |SEE ALSO= | ||
− | * [[ | + | * [[MC-Basic:ONERROR|ONERROR]] |
− | * [[ | + | * [[MC-Basic:TRY ... END TRY|TRY ... END TRY]] |
− | [[Category | + | [[Category:MC-Basic:Error Handling|ONSYSTEMERROR]] |
}} | }} |
Latest revision as of 02:54, 25 April 2017
Language: | English • 中文(简体) |
---|
The ONSYSTEMERROR statement is used to trap and process errors in the system. It is the upper level of the hierarchical error processing structure formed by the combination of TRY, ONERROR and ONSYSTEMERROR.
ONSYSTEMERROR is written in the body of a task, but only one instance may exist in the system at any time. It is used to trap both synchronous and asynchronous errors in all tasks, as well as errors that occur within the context of the system.
Synchronous errors are caused by the user task and detected by the interpreter, while an asynchronous errors are not associated with a specific line of program code. Examples include position following errors.
A system error is not associated with a specific task. An example of a system error is a position following error that occurs due to some external force being applied to an axis not attached to a task.
When an error is trapped, the specified error processing code is executed and the task is stopped. The task is in state 4. Task execution is resumed by explicitly entering the CONTINUETASK command within the error processing code.
ONSYSTEMERROR is used to trap errors not specifically trapped by TRY or ONERROR. It is then either used to execute an orderly shutdown of the system, or an orderly recovery procedure.
NOTE | |
SYNCHRONOUS errors stop a task that catches them by means of "onerror" so that a "continuetask" is needed. ASYNCHRONOUS errors do not stop a task even if caught from "onsystemerror" so the task is automatically continueing. |
Syntax
Program 'Beginning of program <Code> OnSystemError 'Start of OnSystemError block {catch <error number X> <code to execute when error X occurs>} {catch <error number Y> <code to execute when error Y occurs>} {catch else <code to execute for all other errors>} End OnSystemError 'End of OnSystemError block<br> <Code> End Program 'End of program
Availability
All versions
Scope
Task
Limitations
Only one instance of ONSYSTEMERROR can appear in the system
Examples
OnSystemError catch 12055 'catch Missing SERCOS telegram error Print "Missing telegram(s): communication interrupted" End OnSystemError