IO data for the MceRunInformJob function.
Version history
0.1.0
Changes
- initial release
Overview
| name | type | default | comment |
|---|---|---|---|
| bExternalConditionsOk | BOOL | 1 | input: external conditions for running INFORM jobs |
| bEnable | BOOL | 0 | input: start INFORM job. Abort job when FALSE |
| bHoldRestart | BOOL | 0 | input: hold/restart (uses rising edge) |
| nJobNumber | USINT | 0 | input: job number (0-15), used for switch-case in INFORM job |
| bIdle | BOOL | output: state machine: idle | |
| bHoldActive | BOOL | output: state machine: held. INFORM job is paused | |
| bRunning | BOOL | output: state machine: running. INFORM job is active but might be paused | |
| bBusy | BOOL | output: state machine: busy | |
| bDone | BOOL | output: state machine: done | |
| nSmRunInform | UINT | 0 | in/out: state machine 1: run INFORM job |
| nSmHold | UINT | 0 | in/out: state machine 2: handle hold/restart/abort |
Details
bExternalConditionsOk
BOOLUsed as input
Chain all required external conditions for running INFORM jobs to this input. Typical conditions are:
- Machine operating mode
- Safety circuit OK (fence/light curtains etc.)
Note: internal conditions (e.g. communication ok or pendant keyswitch) are already handled in the function and do not need to be connected here.
bEnable
BOOLUsed as input
Run the INFORM job.
In a normal scenario, bEnable needs to stay TRUE until the job has completed (
bDone
).
Setting bEnable to FALSE will reset the job:
- Motion is stopped by a job hold command.
- A restart is only possible from the beginning of the job.
For pausing the INFORM job, use
bHoldRestart
.
bHoldRestart
BOOLUsed as input
A rising edge of this input will hold/restart the INFORM job.
- If the INFORM job is active, a rising edge on this signal will hold it.
- If the INFORM job is held (
bHoldActiveisTRUE), a rising edge will resume it.
This input can be connected to an HMI momentary button.
Besides this bHoldRestart input, you can also use the green and white
button on the classic pendant to hold/restart the INFORM job.
nJobNumber
USINTUsed as input
Job number (range: 0-15), used for switch-case instruction in INFORM job.
bIdle
BOOLUsed as output
State machine is in idle state.
bHoldActive
BOOLUsed as output
State machine is in held state. INFORM job is paused.
bRunning
BOOLUsed as output
State machine is in running state. INFORM job is active, but might be paused due to a hold.
bBusy
BOOLUsed as input output in/out
State machine is in busy state.
bDone
BOOLUsed as output
The INFORM job has completed.
Stays TRUE until MceRunInformJob is reset by switching
bEnable
to FALSE.
nSmRunInform
UINTUsed as in/out
State machine 1: run INFORM job.
| value | explanation |
|---|---|
| 0 | idle, not ready for start |
| 1 | ready for start |
| 10 | reset MASTER job (cursor to top) |
| 20 | start MASTER job |
| 30 | running MASTER job |
| 40 | wait until no longer busy |
| 50 | done |
nSmHold
UINTUsed as in/out
State machine 2: handle hold/restart/abort.
| value | explanation |
|---|---|
| 0 | idle |
| 10 | issue hold command |
| 20 | hold active |
| 30 | resume |
Source code
Declarations
(*IO data for the MceRunInformJob function*)
TYPE MceRunInformJobIO :
(*
* -----------------------------------------------------------------------------
* Name : MceRunInformJobIO
* Version : 0.1.0
* Date : 2026-02-23
* Author : deGroot
* Family : YaskawaMce
* Organisation : github.com/YaskawaEurope/mlx-examples
*
* -----------------------------------------------------------------------------
* IO data for the MceRunInformJob function
* -----------------------------------------------------------------------------
*)
STRUCT
bExternalConditionsOk : BOOL := 1; (*input: external conditions for running INFORM jobs*)
bEnable : BOOL := 0; (*input: start INFORM job. Abort job when FALSE*)
bHoldRestart : BOOL := 0; (*input: hold/restart (uses rising edge)*)
nJobNumber : USINT := 0; (*input: job number (0-15), used for switch-case in INFORM job*)
bIdle : BOOL; (*output: state machine: idle*)
bHoldActive : BOOL; (*output: state machine: held. INFORM job is paused*)
bRunning : BOOL; (*output: state machine: running. INFORM job is active but might be paused*)
bBusy : BOOL; (*output: state machine: busy*)
bDone : BOOL; (*output: state machine: done*)
nSmRunInform : UINT := 0; (*in/out: state machine 1: run INFORM job*)
nSmHold : UINT := 0; (*in/out: state machine 2: handle hold/restart/abort*)
END_STRUCT
END_TYPE