PLC Interface
PLC Interface
MACHINEMATE ®
PLC Interface
MACHINEMATE®
DO NOT ATTEMPT to use any MACHINEMATE INC product until the use
of such product is completely understood. It is the responsibility of the
user to make certain proper operation practices are understood.
MACHINEMATE INC products should be used only by qualified personnel
and for the express purpose for which said products were designed.
MACHINEMATE INC.
Fond du Lac, WI 54937
Phone: 920-907-0001
Fax: 920-907-0181
Contents
1. Tables and data interface 11
1.1. Introduction to the PLC Interface 11
1.2. Tables and data interface for Station 1 15
1.3. Tables and data interface for Station 2 18
1.4. Tables and data interface for Stations 3 to 8 18
1.5. Electrical data – switches, lights, voltages 19
2. Signal interface 23
2.1. General 23
2.1.1. Introduction 23
2.1.2. Signal-interface 24
2.1.3. Interface typography 25
2.1.4. Interface terminology 25
2.2. Signal-interface summary 26
2.2.1. DWORD 1 (INGENERAL1, ONGENERAL1) 27
2.2.2. DWORD 2 (INGENERAL2, ONGENERAL2) 28
2.2.3. DWORD 3 (IN_DRIVEON, ONBCDWORD1) 29
2.2.4. DWORD 4 (IN_DRIVEEN, ONBCDWORD2) 29
2.2.5. DWORD 5 (IN_HOMING, ONINPOS) 30
2.2.6. DWORD 6 (IN_SWLIMIT, ONHOMINGOK) 30
2.2.7. DWORD 7 (IN_STRTPOS, ONPOSAXES) 31
2.2.8. DWORD 8 (IN_CYCLEB, ONCYCBYTE) 31
2.2.9. DWORD 9 (IN_EXTMODE, ONEXTMODE) 32
2.2.10. DWORD 10 (IN_DISABLE, ONREADY) 32
2.2.11. DWORD 11 (IN_SW_AXES, ON_PLCMDONE) 33
2.2.12. DWORD 12 (IN_SPINDLE, ONSPINDLE) 34
2.2.13. DWORD 13 (IN_PARKING, ONCONTROL) 35
2.2.14. DWORD 14 (IN_MIRROR, ONMIRROR) 35
2.2.15. DWORD 15 (IN_OVERRIDE, ONCMND_P) 36
2.2.16. DWORD 16 (IN_IPOMVMT, ONCMND_M) 36
2.2.17. DWORD 17 (IN_HDWHEEL, ONHANDWH) 37
2.2.18. DWORD 18 (IN_FASTIO, ON_CAM1_4) 38
2.2.19. DWORD 19 (IN_FASTSELECT, ON_CAM5_8) 39
2.2.20. DWORD 20 (IN_JPLS, ON_CAM9_12) 40
2.2.21. DWORD 21 (IN_JMNS, ON_CAM13_16) 41
2.2.22. DWORD 22 (free, ON_CAM17_20) 42
2.2.23. DWORD 23 (free, ON_CAM21_24) 43
2.2.24. DWORD 24 (free, ON_CAM25_28) 44
2.2.25. DWORD 25 (free, ON_CAM29_32) 45
2.2.26. DWORD 26 (free, ONPANEL) 46
2.2.27. DWORD 27 (IN_IPR, ON_IPR) 46
2.2.28. DWORD 28 (free, ON_SWAX) 47
2.2.29. DWORD 29 (IN_FASTM_MASK, ON_FASTM) 47
2.2.30. DWORD 30 (IN_TOOL, free) 48
2.2.31. DWORD 31 (IN_TOOLPLACE, ONTOOL) 48
2.2.32. DWORD 32 (IN_TOOLREQ, ON_TOOLPLACE) 49
2.2.33. DWORD 33 (free, ON_TOOLTABLE) 49
2.2.34. DWORD 34 (free, free) 49
2.2.35. DWORD 35 (free, free) 49
6. DDE-interface 270
6.1. DDE – interface of the PLC 270
Index 297
Table of Figures
Figure 1. PLC Interface Diagram ................................................................................................................. 11
Figure 2. Light, switch example in Ladder Diagram .................................................................................... 19
Figure 3. Light, switch example in Structured Text...................................................................................... 20
Figure 4. Analog voltages example in Ladder Diagram............................................................................... 21
Figure 5. Analog voltages example in Structured Text................................................................................ 22
Figure 6. Tool management flow chart ...................................................................................................... 142
Figure 7. BCD Strobe Timing Diagram ...................................................................................................... 175
Data in host PC
Windows NT® : Microsoft® Corporation NT Operating System (or Microsoft Windows 2000 or Linux – the
same architecture applies)
SM – Shared Memory interface (shared memory communication area)
The separate PLC Programming Manual describes the details of a PLC application that are
involved in just the standard PLC code (such as the IEC-1131 programming languages
syntax, standard data types and the standard IEC-1131 operators, functions and function
blocks) rather than issues relevant to the CNC. Please consult that manual for general
information about programming a PLC application.
This document describes the interface between a PLC application and the CNC software
(simply called the ‘PLC interface’ in this document). Much of this PLC interface is
implemented as a very simple bi-directional shared memory interface. In other words, the
CNC will only read certain items and it will only write other items. At the same time, the PLC
will only read certain items (that are write-only for the CNC) and it will only write other items
(that are read-only for the CNC). This shared memory interface allows the two partners in the
interface (i.e., the CNC and the PLC) to operate on the data at different times, supporting
asynchronous communications.
There are a number of data items available in this PLC interface. The diagram above
illustrates the following general groups of data items that exist in this interface.
• Machine IO
The PLC can read inputs from the machine (e.g., switches, voltages) and can write
outputs to the machine (e.g., lights, voltages). These machine IO points are accessed
by the PLC using programmer-defined variable names.
This is also explained in Appendix E of the PLC Programming Manual. The machine
IO programming is part of the PLC application and is not affected by the CNC
software, other than its definition of the input and output byte number assignments.
These byte number assignments are described in section 2 of the Start Up Manual.
• CNC tables
These CNC tables are the tables available to the operator via the DATA mode. They
include:
• Cycle parameters (or P-parameters, for macro and cycle programming)
• D-table (for tool radius or diameter compensation)
• H-table (for tool length compensation)
• Zero offsets table (for the G54-G59 part zero offsets)
The PLC can read and write these CNC tables, just as the operator can access them
using the CNC displays and soft keys. These tables are accessed by the PLC using
defined variable names, as system variables that must not be declared in the POU
declarations.
• CNC data
These CNC data items include a number of axis positions and other items visible on
the AUTOMATIC and INFO displays. They include:
• Axis positions (command and actual)
• Active feed rate (command and actual)
• Active part program information (program number, subprogram number and
block number)
PLC Interface Manual
page 12 / 304
MACHINEMATE®
The PLC can only read these CNC data items. These data items are accessed by the
PLC using defined variable names, as system variables that must not be declared in
the POU declarations.
The CNC will only read these interface signals. These signals are accessed by the
PLC using defined variable names, as system variables that must not be declared in
the POU declarations.
This part of the interface is described thoroughly in chapter 2.3 of this document.
The PLC can only read these interface signals. These signals are accessed by the
PLC using defined variable names, as system variables that must not be declared in
the POU declarations.
This part of the interface is described thoroughly in chapter 2.4 of this document.
The PLC can only read these interface signals. These signals are accessed by the
PLC using defined variable names, as system variables that must not be declared in
the POU declarations.
For convenience, chapter 7 also describes the interface functions that provide the
PLC with access to the time within the host operating system. While not technically
part of the operator interface, these functions are provided in the same library as the
other functions and function blocks described in chapter 7.
This first chapter of the document lists the CNC tables and data that are available to the PLC.
These data items are assigned ‘global’ symbol names for the PLC program to directly read or
write.
As long as the axis has been turned past this initial ‘zero’ position in the
positive direction then these rules apply:
As the encoder moves in the positive direction, ACT_POS counts up until it
reaches 359999 at which time it rolls over to 0 on the next count.
As the encoder moves in the negative direction, ACT_POS counts down until it
reaches 0 at which time it rolls over to 359999 on the next count.
However, once the axis has been turned past this initial ‘zero’ position in the
negative direction then these rules apply:
As the encoder moves in the negative direction, ACT_POS counts down until it
reaches -359999 when it will roll over to 0 on the next count.
As the encoder moves in the positive direction, ACT_POS counts up until it
reaches 0 when it will roll over to -359999 on the next count.
If the axis is turned back and forth across this initial ‘zero’ location, the
ACT_POS value will change from a small positive number to a small negative
number.
If ACT_POS is ever negative then adding 360000 to it results in the correct 0-
to-+360 range of positions.
b) Rotary axis that is closed loop (this is a servo controlled axis):
With a closed loop axis, ACT_POS behaves like described above when it is
moving in the positive direction. If the rotary axis is moved in the negative
direction past the 0 position then it will be a negative value, so moving past 0
one degree is a position of -1000 (with 3 decimal places). However, as soon as
the jogging or moving completes then the CNC automatically corrects the
ACT_POS position back to the 0-to-+360 range, so the -1000 value is
automatically changed to +359000. This automatic conversion of ACT_POS
values does not occur with an open loop axis.
The dresser wheel orientation values in the D-table were added in CNC version
2.0 so they did not exist in earlier versions.
The two feed rate values (FCOMM, FREAL) are the effective feed rates in a
G94 context (inches/min or mm/min in the CNC, but with no decimal point here,
so 100 ipm would be 100000 with 3 decimal places). If the CNC is actually in
G95 mode then the current spindle speed (rpm) has been multiplied by the G95
feed rate (inches/rev or mm/rev) to obtain the effective G94 feed rate provided
in these values. This matches the displayed values in the CNC feed rate box
which always shows the effective feed rates in a G94 context.
The BLOCKNUMBER value is not valid when a part program is not valid. Since
this variable has a value of approximately +1.2e308 when not valid, the PLC
should check for this variable’s value to be less than 999999 (or the
appropriate range given the maximum number of digits for the letter N) before
using it for any further processing (e.g., as an integer).
Some of the CNC data items are defined with variable names only for station 1
(including the cycle parameters and the compensation data tables). These data
items do not have variable names within the other stations. The PLC can
access these CNC data items for other stations using the functions described
in chapter 4.2.
Note that typically all the IO point variables names will be placed in the
Global_Variables segment rather than in any of the PLC POU declarations so
that the CNC Information display shows just the variable name with its IO point
actual state. If an IO point variable is declared within a POU’s variable
declarations then the POU name will be included in the variable name in the
CNC Information display.
Note that there is nothing in the PLC use of input and output points that define
the IO technology. The PLC declaration of variables for inputs and outputs
works with byte numbers. The IO configuration file (defined in the Start Up
Manual) allows the programmer to define the byte number assignments to the
hardware for the respective IO technologies (such as the Modular IO or one of
the field buses) and there can be no duplicate byte numbers (so a byte number
cannot be both an input byte and an output byte nor could a byte number be
used in a Modular IO device and in a fieldbus device). The CNC takes care of
handling the respective IO technologies. The PLC program just has input bytes
and output bytes. There is nothing required in PLC programming to define an
IO technology associated with an input or output byte. In the above example,
the byte 1 for the input switch could be on a Modular IO 2416 module or it
could be on a fieldbus module; its byte number definition is in the IO
configuration file. The PLC program never defines the IO technology that
services the input and output bytes.
Note that each A/D input or each D/A output requires two consecutive bytes. If
the control in the example above had a second pair of A/D and D/A channels in
use after the first pair (i.e., at byte numbers 10 and 110) the second pair would
be at %IB12 and %QB112 respectively, assuming all were on the same
hardware module.
2. Signal interface
2.1. General
2.1.1. Introduction
In a machine tool, the PLC is usually the "boss" of the equipment since it is
responsible for the adjustment of the machine logic to the CNC and for the
observance of certain functional and operational sequences.
For this purpose, the PLC uses interfaces to the machine and to the CNC. Via
these interfaces it can recognize the current state of the machine and can
initiate the necessary action in the CNC and vice versa.
These machine interfaces are realized usually via I/O modules over which the
digital signals or analog signals can be transferred.
On the CNC control, the PLC is already built-in to the controller so no additional
I/O boards are necessary for the PLC to communicate with the CNC. For this
communication an internal interface is provided, called the signal-interface.
The PLC application is run by the CNC in a manner similar to other PLC
products. At the start of the PLC ‘scan’ (or the execution of the PLC
application), all inputs are captured (as well as any forced values). At the end
of the PLC scan, all outputs are updated. Therefore a physical input that
changes its state during the few milliseconds of the PLC scan will not be
detected until the next PLC scan. Any changes in the state of a physical output
by the PLC application will not occur until the end of the PLC scan (so the
placement of output statements within the PLC source code will not affect the
actual timing of any output state changes).
2.1.2. Signal-interface
This interface is a parallel, digital interface. Single-state signals (or “bits”) are
transferred with a direct state or function assignment. These single-state
signals ("bits") are put together in groups of 32 to form "DWORDS" and can be
addressed by the PLC Program individually (as bits) or as a group (as a
DWORD).
Typical applications are:
- the CNC inputs, which the PLC Program POUs can only write
and the CNC can only read;
- the CNC outputs, which the PLC Program POUs can only read
and the CNC can only write.
Some of the signals work statically, others dynamically. In other words, there
are signals at which the respective current value is important, and there are
signals at which mainly the change of their value is important. In the following
descriptions for the signal-interface, for all relevant signals their effects (at CNC
inputs) or their causes (at CNC outputs) at
- the value 0
- the value 1
- the value change of 0 on 1
- the value change of 1 on 0
are given.
In addition, notes and instructions are given which must be observed for the
correct treatment of the signal-interface.
The variable names for the CNC input signals and their corresponding
DWORDs of the first CNC station begin with
IN ( Input to the CNC).
The variable names for the other CNC stations begin with
I2 , I3 , ... I8.
Just as there is a signal named IN_START for the first station, there is a signal
named I2_START for the second station. This manual will describe all the
signals for the interface to the first station. All those explanations apply to the
similarly named interface signal for the other stations.
The variable names for the CNC output signals and their corresponding
DWORDs of the first CNC station begin with
ON ( Output from the CNC).
The variable names for the other CNC stations begin with
O2 , O3 , ... O8.
Just as there is a signal named ON_EMERG for the first station, there is a
signal named O2_EMERG for the second station. This manual will describe all
the signals for the interface to the first station. All those explanations apply to
the similarly named interface signal for the other stations.
Note that while the CNC interface signals are associated with each station the
physical IO points or IO byte assignments (like for analog voltages) are never
associated with a particular CNC station. The PLC logic defines any behaviors
associated with the IO points.
The interface has a fixed layout (i.e., no machine parameters or integrator effort
are required for its definition) so the interface has 128 DWORDS to make all
the features inside the CNC available at the same time. One DWORD contains
32 bits so it can contain up to 32 signals.
The PLC-CNC interface is defined for up to 32 axes on one CNC-station.
The rest of this chapter 2.2 lists the defined signal names for the defined
DWORD names in the interface for the first CNC station. The ‘free’ designation
indicates the particular signal or DWORD is not used at this time.
DW 1 INGENERAL1 ONGENERAL1
Bit NC – Input NC-Output
1 INEMERGENCn ON_CYCLEON
2 IN_START ON_STOPNCn
3 IN_STOPn ON_STARTNC
4 IN_TRANSF ON_AUTO
5 IN_ENABLE ON_SINGLE
6 IN_NO_HDW_RESET ON_MDI
7 Free ON_JOGMODE
8 INPLAYBACK ON_HOMING
9 IN_AFC_EN ON_INC_JOG
10 Free ON_CONT_JOG
11 Free ON_CNC_CHAN_ACT
12 Free ON_EMERG
13 Free ON_PRG_STP
14 Free ON_PRG_END
15 Free ON_RESET
16 Free ON_NO_CNTR
17 Free ON_HOME_OK
18 Free ON_NCERROR
19 Free ON_ADDKEY1
20 IN_BLOCK_DEL ON_ADDKEY2
21 IN_BLOCK_DELn ON_PROGRAM
22 IN_G01_OVER ON_ADMISSN
23 IN_G01_OVERn ON_PANEL
24 IN_FORWARD ON_RETREAT
25 IN_BACKWARD ON_BACKW
26 IN_M1STOP ON_TEACHED
27 IN_M1STOPn ON_BLKCHNG
28 IN_WITH_MOVE ON_M1STOP
29 IN_WITH_MOVEn ON_WITH_MOVE
30 IN_PITCHERR ON_G01_OVER
31 IN_PITCHERRn ON_BLOCK_DEL
32 IN_IGNRMSERR ON_PITCHERR
DW 2 INGENERAL2 ONGENERAL2
Bit NC – Input NC-Output
1 IN_REPEAT ON_STAND
2 IN_INTERVA ON_RAPID
3 IN_INSPECT ON_THREAD
4 IN_BCDSTRB2_FWD ON_HOMEOK
5 IN_BCDSTRB2_BW ON_INTVEND
6 Free ON_INTRET
7 Free ON_INTVHLD
8 Free ON_EGB_ACTIVE
9 IN_MIRR_STROBE ON_EGB_SYNC
10 IN_PLC_NO_RETREAT ON_READ_TO_BLK
11 Free ON_HDW_TICKS_LOST1
12 Free ON_HDW_TICKS_LOST2
13 Free ON_HDW_TICKS_LOST3
14 Free ON_TRANSF
15 Free ON_CYCLE_STOP
16 Free Free
17 IN_DIS_ENABLE ON_AUTOFOCUS
18 Free ON_DIST_CTRL
19 Free Free
20 Free Free
-- Free Free
28 Free Free
29 Free ON_STROBE1
30 Free ON_STROBE2
31 Free ON_STROBE3
32 Free ON_STROBE4
DW 3 IN_DRIVEON ONBCDWORD1
Bit NC – Input NC-Output
1 IN_DRON01 ON_BCD01
2 IN_DRON02 ON_BCD02
3 IN_DRON03 ON_BCD03
4 IN_DRON04 ON_BCD04
5 IN_DRON05 ON_BCD05
6 IN_DRON06 ON_BCD06
7 IN_DRON07 ON_BCD07
8 IN_DRON08 ON_BCD08
9 IN_DRON09 ON_BCD09
--
32 IN_DRON32 ON_BCD32
DW 4 IN_DRIVEEN ONBCDWORD2
Bit NC – Input NC-Output
1 IN_DREN01 ON_BCD33
2 IN_DREN02 ON_BCD34
3 IN_DREN03 ON_BCD35
4 IN_DREN04 ON_BCD36
5 IN_DREN05 ON_BCD37
6 IN_DREN06 ON_BCD38
7 IN_DREN07 ON_BCD39
8 IN_DREN08 ON_BCD40
9 IN_DREN09 ON_BCD41
--
32 IN_DREN32 ON_BCD64
DW 5 IN_HOMING ONINPOS
Bit NC – Input NC-Output
1 IN_HOME01n ON_INP01
2 IN_HOME02n ON_INP02
3 IN_HOME03n ON_INP03
4 IN_HOME04n ON_INP04
5 IN_HOME05n ON_INP05
6 IN_HOME06n ON_INP06
7 IN_HOME07n ON_INP07
8 IN_HOME08n ON_INP08
9 IN_HOME09n ON_INP09
--
32 IN_HOME32n ON_INP32
DW 6 IN_SWLIMIT ONHOMINGOK
Bit NC – Input NC-Output
1 IN_LIMIT01 ON_HOME01
2 IN_LIMIT02 ON_HOME02
3 IN_LIMIT03 ON_HOME03
4 IN_LIMIT04 ON_HOME04
5 IN_LIMIT05 ON_HOME05
6 IN_LIMIT06 ON_HOME06
7 IN_LIMIT07 ON_HOME07
8 IN_LIMIT08 ON_HOME08
9 IN_LIMIT09 ON_HOME09
--
32 IN_LIMIT32 ON_HOME32
DW 7 IN_STRTPOS ONPOSAXES
Bit NC – Input NC-Output
1 IN_POS_01 ON_POS_01
2 IN_POS_02 ON_POS_02
3 IN_POS_03 ON_POS_03
4 IN_POS_04 ON_POS_04
5 IN_POS_05 ON_POS_05
6 IN_POS_06 ON_POS_06
7 IN_POS_07 ON_POS_07
8 IN_POS_08 ON_POS_08
9 IN_POS_09 ON_POS_09
--
32 IN_POS_32 ON_POS_32
DW 8 IN_CYCLEB ONCYCBYTE
Bit NC – Input NC-Output
1 IN_CYCB_01 ON_CYCB01
2 IN_CYCB_02 ON_CYCB02
3 IN_CYCB_03 ON_CYCB03
4 IN_CYCB_04 ON_CYCB04
5 IN_CYCB_05 ON_CYCB05
6 IN_CYCB_06 ON_CYCB06
7 IN_CYCB_07 ON_CYCB07
8 IN_CYCB_08 ON_CYCB08
9 Free Free
-- Free Free
32 Free Free
DW 9 IN_EXTMODE ONEXTMODE
Bit NC – Input NC-Output
1 IN_EXT_01 ON_EXT_01
2 IN_EXT_02 ON_EXT_02
3 IN_EXT_03 ON_EXT_03
4 IN_EXT_04 ON_EXT_04
5 IN_EXT_05 ON_EXT_05
6 IN_EXT_06 ON_EXT_06
7 IN_EXT_07 ON_EXT_07
8 IN_EXT_08 ON_EXT_08
9 IN_EXT_09 ON_EXT_09
--
32 IN_EXT_32 ON_EXT_32
DW 10 IN_DISABLE ONREADY
Bit NC – Input NC-Output
1 IN_DIS_01 ON_READY01
2 IN_DIS_02 ON_READY02
3 IN_DIS_03 ON_READY03
4 IN_DIS_04 ON_READY04
5 IN_DIS_05 ON_READY05
6 IN_DIS_06 ON_READY06
7 IN_DIS_07 ON_READY07
8 IN_DIS_08 ON_READY08
9 IN_DIS_09 ON_READY09
--
32 IN_DIS_32 ON_READY32
DW 11 IN_SW_AXES ON_PLCMDONE
Bit NC – Input NC-Output
1 IN_SWAX01 ON_PLCMDONE01
2 IN_SWAX02 ON_PLCMDONE02
3 IN_SWAX03 ON_PLCMDONE03
4 IN_SWAX04 ON_PLCMDONE04
5 IN_SWAX05 ON_PLCMDONE05
6 IN_SWAX06 ON_PLCMDONE06
7 IN_SWAX07 ON_PLCMDONE07
8 IN_SWAX08 ON_PLCMDONE08
9 IN_SWAX09 ON_PLCMDONE09
10 IN_SWAX10 ON_PLCMDONE10
11 IN_SWAX11 ON_PLCMDONE11
12 IN_SWAX12 ON_PLCMDONE12
13 IN_SWAX13 ON_PLCMDONE13
14 IN_SWAX14 ON_PLCMDONE14
15 IN_SWAX15 ON_PLCMDONE15
16 IN_SWAX16 ON_PLCMDONE16
17 IN_GEAR01 ON_PLCMDONE17
18 IN_GEAR02 ON_PLCMDONE18
19 IN_GEAR03 ON_PLCMDONE19
20 IN_GEAR04 ON_PLCMDONE20
21 IN_GEAR05 ON_PLCMDONE21
22 IN_GEAR06 ON_PLCMDONE22
23 free ON_PLCMDONE23
24 free ON_PLCMDONE24
25 free ON_PLCMDONE25
26 free ON_PLCMDONE26
27 free ON_PLCMDONE27
28 free ON_PLCMDONE28
29 free ON_PLCMDONE29
30 free ON_PLCMDONE30
31 free ON_PLCMDONE31
32 free ON_PLCMDONE32
DW 12 IN_SPINDLE ONSPINDLE
Bit NC – Input NC-Output
1 IN_NULLV01 ON_STAND01
2 IN_NULLV02 ON_STAND02
3 IN_NULLV03 ON_STAND03
4 IN_NULLV04 ON_STAND04
5 IN_NULLV05 ON_STAND05
6 IN_NULLV06 ON_STAND06
7 IN_NULLV07 ON_STAND07
8 IN_NULLV08 ON_STAND08
9 IN_NULLV09 ON_STAND09
10 IN_NULLV10 ON_STAND10
11 IN_NULLV11 ON_STAND11
12 IN_NULLV12 ON_STAND12
13 IN_NULLV13 ON_STAND13
14 IN_NULLV14 ON_STAND14
15 IN_NULLV15 ON_STAND15
16 IN_NULLV16 ON_STAND16
17 IN_REV_01 ON_MOVE01
18 IN_REV_02 ON_MOVE02
19 IN_REV_03 ON_MOVE03
20 IN_REV_04 ON_MOVE04
21 IN_REV_05 ON_MOVE05
22 IN_REV_06 ON_MOVE06
23 IN_REV_07 ON_MOVE07
24 IN_REV_08 ON_MOVE08
25 IN_REV_09 ON_MOVE09
26 IN_REV_10 ON_MOVE10
27 IN_REV_11 ON_MOVE11
28 IN_REV_12 ON_MOVE12
29 IN_REV_13 ON_MOVE13
30 IN_REV_14 ON_MOVE14
31 IN_REV_15 ON_MOVE15
32 IN_REV_16 ON_MOVE16
DW 13 IN_PARKING ONCONTROL
Bit NC – Input NC-Output
1 IN_PARK01 ON_CONTR01
2 IN_PARK02 ON_CONTR02
3 IN_PARK03 ON_CONTR03
4 IN_PARK04 ON_CONTR04
5 IN_PARK05 ON_CONTR05
6 IN_PARK06 ON_CONTR06
7 IN_PARK07 ON_CONTR07
8 IN_PARK08 ON_CONTR08
9 IN_PARK09 ON_CONTR09
--
32 IN_PARK32 ON_CONTR32
DW 14 IN_MIRROR ONMIRROR
Bit NC – Input NC-Output
1 IN_MIRR01 ON_MIRR01
2 IN_MIRR02 ON_MIRR02
3 IN_MIRR03 ON_MIRR03
4 IN_MIRR04 ON_MIRR04
5 IN_MIRR05 ON_MIRR05
6 IN_MIRR06 ON_MIRR06
7 IN_MIRR07 ON_MIRR07
8 IN_MIRR08 ON_MIRR08
9 IN_MIRR09 ON_MIRR09
--
32 IN_MIRR32 ON_MIRR32
DW 15 IN_OVERRIDE ONCMND_P
Bit NC – Input NC-Output
1 IN_OVERR01 ON_CMNDP01
2 IN_OVERR02 ON_CMNDP02
3 IN_OVERR03 ON_CMNDP03
4 IN_OVERR04 ON_CMNDP04
5 IN_OVERR05 ON_CMNDP05
6 IN_OVERR06 ON_CMNDP06
7 IN_OVERR07 ON_CMNDP07
8 IN_OVERR08 ON_CMNDP08
9 IN_OVERR09 ON_CMNDP09
--
32 IN_OVERR32 ON_CMNDP32
DW 16 IN_IPOMVMT ONCMND_M
Bit NC – Input NC-Output
1 IN_IPOMT01 ON_CMNDM01
2 IN_IPOMT02 ON_CMNDM02
3 IN_IPOMT03 ON_CMNDM03
4 IN_IPOMT04 ON_CMNDM04
5 IN_IPOMT05 ON_CMNDM05
6 IN_IPOMT06 ON_CMNDM06
7 IN_IPOMT07 ON_CMNDM07
8 IN_IPOMT08 ON_CMNDM08
9 IN_IPOMT09 ON_CMNDM09
--
32 IN_IPOMT32 ON_CMNDM32
DW 17 IN_HDWHEEL ONHANDWH
Bit NC – Input NC-Output
1 IN_HDAX01 ON_HANDW01
2 IN_HDAX02 ON_HANDW02
3 IN_HDAX03 ON_HANDW03
4 IN_HDAX04 ON_HANDW04
5 IN_HDAX05 ON_HANDW05
6 IN_HDAX06 ON_HANDW06
7 IN_HDAX07 ON_HANDW07
8 IN_HDAX08 ON_HANDW08
9 IN_HDAX09 ON_HANDW09
10 IN_HDAX10 ON_HANDW10
11 IN_HDAX11 ON_HANDW11
12 IN_HDAX12 ON_HANDW12
13 IN_HDAX13 ON_HANDW13
14 IN_HDAX14 ON_HANDW14
15 IN_HDAX15 ON_HANDW15
16 IN_HDAX16 ON_HANDW16
17 IN_HDAX17 ON_HANDW17
18 IN_HDAX18 ON_HANDW18
19 IN_HDAX19 ON_HANDW19
20 IN_HDAX20 ON_HANDW20
21 IN_HDAX21 ON_HANDW21
22 IN_HDAX22 ON_HANDW22
23 IN_HDAX23 ON_HANDW23
24 IN_HDAX24 ON_HANDW24
25 IN_HDAX25 ON_HANDW25
26 IN_HDAX26 ON_HANDW26
27 IN_HDAX27 ON_HANDW27
28 IN_HDAX28 ON_HANDW28
29 IN_HDAX29 ON_HANDW29
30 IN_HDW1_DISABLE ON_HANDW30
31 IN_HDW2_DISABLE ON_HANDW31
32 IN_HDW3_DISABLE ON_HANDW32
DW 18 IN_FASTIO ON_CAM1_4
Bit NC – Input NC-Output
1 INFSIGNAL01 ON_CAM1_01
2 INFSIGNAL02 ON_CAM2_01
3 INFSIGNAL03 ON_CAM3_01
4 INFSIGNAL04 ON_CAM4_01
5 INFSIGNAL05 ON_CAM5_01
6 INFSIGNAL06 ON_CAM6_01
7 INFSIGNAL07 ON_CAM7_01
8 INFSIGNAL08 ON_CAM8_01
9 INFSIGNAL09 ON_CAM1_02
10 INFSIGNAL10 ON_CAM2_02
11 INFSIGNAL11 ON_CAM3_02
12 INFSIGNAL12 ON_CAM4_02
13 INFSIGNAL13 ON_CAM5_02
14 INFSIGNAL14 ON_CAM6_02
15 INFSIGNAL15 ON_CAM7_02
16 INFSIGNAL16 ON_CAM8_02
17 INFMASK01 ON_CAM1_03
18 INFMASK02 ON_CAM2_03
19 INFMASK03 ON_CAM3_03
20 INFMASK04 ON_CAM4_03
21 INFMASK05 ON_CAM5_03
22 INFMASK06 ON_CAM6_03
23 INFMASK07 ON_CAM7_03
24 INFMASK08 ON_CAM8_03
25 INFMASK09 ON_CAM1_04
26 INFMASK10 ON_CAM2_04
27 INFMASK11 ON_CAM3_04
28 INFMASK12 ON_CAM4_04
29 INFMASK13 ON_CAM5_04
30 INFMASK14 ON_CAM6_04
31 INFMASK15 ON_CAM7_04
32 INFMASK16 ON_CAM8_04
DW 19 IN_FASTSELECT ON_CAM5_8
Bit NC – Input NC-Output
1 INFSELECT01 ON_CAM1_05
2 INFSELECT02 ON_CAM2_05
3 INFSELECT03 ON_CAM3_05
4 INFSELECT04 ON_CAM4_05
5 INFSELECT05 ON_CAM5_05
6 INFSELECT06 ON_CAM6_05
7 INFSELECT07 ON_CAM7_05
8 INFSELECT08 ON_CAM8_05
9 INFSELECT09 ON_CAM1_06
10 INFSELECT10 ON_CAM2_06
11 INFSELECT11 ON_CAM3_06
12 INFSELECT12 ON_CAM4_06
13 INFSELECT13 ON_CAM5_06
14 INFSELECT14 ON_CAM6_06
15 INFSELECT15 ON_CAM7_06
16 INFSELECT16 ON_CAM8_06
17 free ON_CAM1_07
18 free ON_CAM2_07
19 free ON_CAM3_07
20 free ON_CAM4_07
21 free ON_CAM5_07
22 free ON_CAM6_07
23 free ON_CAM7_07
24 free ON_CAM8_07
25 free ON_CAM1_08
26 free ON_CAM2_08
27 free ON_CAM3_08
28 free ON_CAM4_08
29 free ON_CAM5_08
30 free ON_CAM6_08
31 free ON_CAM7_08
32 free ON_CAM8_08
DW 20 IN_JPLS ON_CAM9_12
Bit NC – Input NC-Output
1 IN_JPLS_01 ON_CAM1_09
2 IN_JPLS_02 ON_CAM2_09
3 IN_JPLS_03 ON_CAM3_09
4 IN_JPLS_04 ON_CAM4_09
5 IN_JPLS_05 ON_CAM5_09
6 IN_JPLS_06 ON_CAM6_09
7 IN_JPLS_07 ON_CAM7_09
8 IN_JPLS_08 ON_CAM8_09
9 IN_JPLS_09 ON_CAM1_10
10 IN_JPLS_10 ON_CAM2_10
11 IN_JPLS_11 ON_CAM3_10
12 IN_JPLS_12 ON_CAM4_10
13 IN_JPLS_13 ON_CAM5_10
14 IN_JPLS_14 ON_CAM6_10
15 IN_JPLS_15 ON_CAM7_10
16 IN_JPLS_16 ON_CAM8_10
17 IN_JPLS_17 ON_CAM1_11
18 IN_JPLS_18 ON_CAM2_11
19 IN_JPLS_19 ON_CAM3_11
20 IN_JPLS_20 ON_CAM4_11
21 IN_JPLS_21 ON_CAM5_11
22 IN_JPLS_22 ON_CAM6_11
23 IN_JPLS_23 ON_CAM7_11
24 IN_JPLS_24 ON_CAM8_11
25 IN_JPLS_25 ON_CAM1_12
26 IN_JPLS_26 ON_CAM2_12
27 IN_JPLS_27 ON_CAM3_12
28 IN_JPLS_28 ON_CAM4_12
29 IN_JPLS_29 ON_CAM5_12
30 IN_JPLS_30 ON_CAM6_12
31 IN_JPLS_31 ON_CAM7_12
32 IN_JPLS_32 ON_CAM8_12
DW 21 IN_JMNS ON_CAM13_16
Bit NC – Input NC-Output
1 IN_JMNS_01 ON_CAM1_13
2 IN_JMNS_02 ON_CAM2_13
3 IN_JMNS_03 ON_CAM3_13
4 IN_JMNS_04 ON_CAM4_13
5 IN_JMNS_05 ON_CAM5_13
6 IN_JMNS_06 ON_CAM6_13
7 IN_JMNS_07 ON_CAM7_13
8 IN_JMNS_08 ON_CAM8_13
9 IN_JMNS_09 ON_CAM1_14
10 IN_JMNS_10 ON_CAM2_14
11 IN_JMNS_11 ON_CAM3_14
12 IN_JMNS_12 ON_CAM4_14
13 IN_JMNS_13 ON_CAM5_14
14 IN_JMNS_14 ON_CAM6_14
15 IN_JMNS_15 ON_CAM7_14
16 IN_JMNS_16 ON_CAM8_14
17 IN_JMNS_17 ON_CAM1_15
18 IN_JMNS_18 ON_CAM2_15
19 IN_JMNS_19 ON_CAM3_15
20 IN_JMNS_20 ON_CAM4_15
21 IN_JMNS_21 ON_CAM5_15
22 IN_JMNS_22 ON_CAM6_15
23 IN_JMNS_23 ON_CAM7_15
24 IN_JMNS_24 ON_CAM8_15
25 IN_JMNS_25 ON_CAM1_16
26 IN_JMNS_26 ON_CAM2_16
27 IN_JMNS_27 ON_CAM3_16
28 IN_JMNS_28 ON_CAM4_16
29 IN_JMNS_29 ON_CAM5_16
30 IN_JMNS_30 ON_CAM6_16
31 IN_JMNS_31 ON_CAM7_16
32 IN_JMNS_32 ON_CAM8_16
DW 22 free ON_CAM17_20
Bit NC – Input NC-Output
1 free ON_CAM1_17
2 free ON_CAM2_17
3 free ON_CAM3_17
4 free ON_CAM4_17
5 free ON_CAM5_17
6 free ON_CAM6_17
7 free ON_CAM7_17
8 free ON_CAM8_17
9 free ON_CAM1_18
10 free ON_CAM2_18
11 free ON_CAM3_18
12 free ON_CAM4_18
13 free ON_CAM5_18
14 free ON_CAM6_18
15 free ON_CAM7_18
16 free ON_CAM8_18
17 free ON_CAM1_19
18 free ON_CAM2_19
19 free ON_CAM3_19
20 free ON_CAM4_19
21 free ON_CAM5_19
22 free ON_CAM6_19
23 free ON_CAM7_19
24 free ON_CAM8_19
25 free ON_CAM1_20
26 free ON_CAM2_20
27 free ON_CAM3_20
28 free ON_CAM4_20
29 free ON_CAM5_20
30 free ON_CAM6_20
31 free ON_CAM7_20
32 free ON_CAM8_20
DW 23 free ON_CAM21_24
Bit NC – Input NC-Output
1 free ON_CAM1_21
2 free ON_CAM2_21
3 free ON_CAM3_21
4 free ON_CAM4_21
5 free ON_CAM5_21
6 free ON_CAM6_21
7 free ON_CAM7_21
8 free ON_CAM8_21
9 free ON_CAM1_22
10 free ON_CAM2_22
11 free ON_CAM3_22
12 free ON_CAM4_22
13 free ON_CAM5_22
14 free ON_CAM6_22
15 free ON_CAM7_22
16 free ON_CAM8_22
17 free ON_CAM1_23
18 free ON_CAM2_23
19 free ON_CAM3_23
20 free ON_CAM4_23
21 free ON_CAM5_23
22 free ON_CAM6_23
23 free ON_CAM7_23
24 free ON_CAM8_23
25 free ON_CAM1_24
26 free ON_CAM2_24
27 free ON_CAM3_24
28 free ON_CAM4_24
29 Free ON_CAM5_24
30 Free ON_CAM6_24
31 Free ON_CAM7_24
32 Free ON_CAM8_24
DW 24 Free ON_CAM25_28
Bit NC – Input NC-Output
1 Free ON_CAM1_25
2 Free ON_CAM2_25
3 Free ON_CAM3_25
4 Free ON_CAM4_25
5 Free ON_CAM5_25
6 Free ON_CAM6_25
7 Free ON_CAM7_25
8 Free ON_CAM8_25
9 Free ON_CAM1_26
10 Free ON_CAM2_26
11 Free ON_CAM3_26
12 Free ON_CAM4_26
13 Free ON_CAM5_26
14 Free ON_CAM6_26
15 Free ON_CAM7_26
16 Free ON_CAM8_26
17 Free ON_CAM1_27
18 Free ON_CAM2_27
19 Free ON_CAM3_27
20 Free ON_CAM4_27
21 Free ON_CAM5_27
22 Free ON_CAM6_27
23 Free ON_CAM7_27
24 Free ON_CAM8_27
25 Free ON_CAM1_28
26 Free ON_CAM2_28
27 Free ON_CAM3_28
28 Free ON_CAM4_28
29 Free ON_CAM5_28
30 Free ON_CAM6_28
31 Free ON_CAM7_28
32 Free ON_CAM8_28
DW 25 Free ON_CAM29_32
Bit NC – Input NC-Output
1 Free ON_CAM1_29
2 Free ON_CAM2_29
3 Free ON_CAM3_29
4 Free ON_CAM4_29
5 Free ON_CAM5_29
6 Free ON_CAM6_29
7 Free ON_CAM7_29
8 Free ON_CAM8_29
9 Free ON_CAM1_30
10 Free ON_CAM2_30
11 Free ON_CAM3_30
12 Free ON_CAM4_30
13 Free ON_CAM5_30
14 Free ON_CAM6_30
15 Free ON_CAM7_30
16 Free ON_CAM8_30
17 Free ON_CAM1_31
18 Free ON_CAM2_31
19 Free ON_CAM3_31
20 Free ON_CAM4_31
21 Free ON_CAM5_31
22 Free ON_CAM6_31
23 Free ON_CAM7_31
24 Free ON_CAM8_31
25 Free ON_CAM1_32
26 Free ON_CAM2_32
27 Free ON_CAM3_32
28 Free ON_CAM4_32
29 Free ON_CAM5_32
30 Free ON_CAM6_32
31 Free ON_CAM7_32
32 Free ON_CAM8_32
DW 26 Free ONPANEL
Bit NC – Input NC-Output
1 Free ON_PANEL01
2 Free ON_PANEL02
3 Free ON_PANEL03
4 Free ON_PANEL04
5 Free ON_PANEL05
6 Free ON_PANEL06
7 Free ON_PANEL07
8 Free ON_PANEL08
9 Free Free
--- Free Free
32 Free Free
DW 27 IN_IPR ON_IPR
Bit NC – Input NC-Output
1 IN_CANCELBLK ON_CANCELBLK
2 IN_SINGLE_STEP ON_MEMORY_MODE
3 IN_IPR_DO_STEP ON_MEMORY_OPERATION
_ACTIVE
4 IN_PLC_SET_AXPOS ON_SINGLE_STEP
5 IN_HIDE_IMBLK ON_IPR_DO_STEP
6 IN_HIDE_INBLKn ON_PLC_SET_AXPOS
7 IN_HIDE_CYBLK ON_HIDE_IMBLK
8 IN_HIDE_CYBLKn ON_HIDE_CYBLK
9 IN_FINISH_ACT_BLK Free
10 IN_DEL_MAN_OFFS ON_DEL_MAN_OFFS
11 IN_MP_CHANGE_ACK ON_MP_CHANGE
12 Free Free
--- Free Free
32 Free Free
DW 28 Free ON_SWAX
Bit NC – Input NC-Output
1 Free ON_SWAX01
2 Free ON_SWAX02
3 Free ON_SWAX03
4 Free ON_SWAX04
5 Free ON_SWAX05
6 Free ON_SWAX06
7 Free Free
8 Free Free
9 Free Free
--- Free Free
32 Free Free
DW 29 IN_FASTM ON_FASTM
Bit NC – Input NC-Output
1 IN_FASTM_BIT1 ON_FASTM_BIT1
2 IN_FASTM_BIT2 ON_FASTM_BIT2
3 IN_FASTM_BIT3 ON_FASTM_BIT3
4 IN_FASTM_BIT4 ON_FASTM_BIT4
5 IN_FASTM_BIT5 ON_FASTM_BIT5
6 IN_FASTM_BIT6 ON_FASTM_BIT6
7 IN_FASTM_BIT7 ON_FASTM_BIT7
8 IN_FASTM_BIT8 ON_FASTM_BIT8
9 Free Free
-- Free Free
32 Free Free
DW 30 IN_TOOL Free
Bit NC – Input NC-Output
1 IN_TOOLRELEASE Free
2 IN_TOOLCHANGE Free
3 IN_TOOLPOS Free
4 IN_TOOLACTIVE Free
5 IN_TOOLREMOVE Free
6 Free Free
--- Free Free
32 Free Free
DW 31 IN_TOOLPLACE ONTOOL
Bit NC – Input NC-Output
1 ON_TOOLPOINT
2 ON_TOOLWARNING
3 ON_TOOLLIFEEND
4 ON_TOOLREF
5 ON_TOOLSTART
6 ON_TOOLDIR
7 ON_TOOLERROR
8 ON_TOOLANSWER
9 ON_TOOLINPOS
10 ON_TOOL_IS_ACT
11 ON_TOOL_NOTFND
12 ON_SPARENOTFND
13 ON_SP_NOTEMPTY
14 ON_GP_NOTEMPTY
15 ON_NP_NOTEMPTY
16 ON_OP_NOTEMPTY
17 ON_PLACE_NOTVAL
18 Free
-- Free
32 Free
The input DWORD 32 IN_TOOLREQ represents only a decimal value, not a bit
coded value.
The output DWORD 32 ON_TOOLPLACE represents only a decimal value, not
a bit coded value.
DW 36 Free ON_EGBMOTION
Bit NC – Input NC-Output
1 Free ON_EGBM01
2 Free ON_EGBM02
3 Free ON_EGBM03
4 Free ON_EGBM04
5 Free ON_EGBM05
6 Free ON_EGBM06
7 Free ON_EGBM07
8 Free ON_EGBM08
9 Free ON_EGBM09
--
32 Free ON_EGBM32
DW 37 IN_FIVEAXES ON_EGBCONTROL
Bit NC – Input NC-Output
1 IN_NO_TCP ON_EGBC01
2 IN_TCP_ACTIVE ON_EGBC02
3 IN_TCP_COORD ON_EGBC03
4 IN_COORD_DEF ON_EGBC04
5 IN_BACK_TRAFO_OFF ON_EGBC05
6 IN_BACK_TRAFO_ON ON_EGBC06
7 Free ON_EGBC07
8 Free ON_EGBC08
9 Free ON_EGBC09
--
32 Free ON_EGBC32
DW 38 Free ON_FIVEAXES
Bit NC – Input NC-Output
1 Free ON_NO_TCP
2 Free ON_TCP_ACTIVE
3 Free ON_TCP_COORD
4 Free ON_COORD_DEF
5 Free ON_BACK_TRAFO
6 Free Free
-- Free Free
32 Free Free
DW 39 IN_IR_RD_IO ON_IR_RD_IO
Bit NC – Input NC-Output
1 IN_IR_RDIO_01 ON_IR_RDIO_01
2 IN_IR_RDIO_02 ON_IR_RDIO_02
3 IN_IR_RDIO_03 ON_IR_RDIO_03
4 IN_IR_RDIO_04 ON_IR_RDIO_04
5 IN_IR_RDIO_05 ON_IR_RDIO_05
--
32 IN_IR_RDIO_32 ON_IR_RDIO_32
DW 40 IN_IR_EN ON_IR_EN
Bit NC – Input NC-Output
1 IN_IR_EN_01 ON_IR_EN_01
2 IN_IR_EN_02 ON_IR_EN_02
3 IN_IR_EN_03 ON_IR_EN_03
4 IN_IR_EN_04 ON_IR_EN_04
5 IN_IR_EN_05 ON_IR_EN_05
--
32 IN_IR_EN_32 ON_IR_EN_32
DW 41 IN_IR_ACT ON_IR_ACT
Bit NC – Input NC-Output
1 IN_IR_ACT_01 ON_IR_ACT_01
2 IN_IR_ACT_02 ON_IR_ACT_02
3 IN_IR_ACT_03 ON_IR_ACT_03
4 IN_IR_ACT_04 ON_IR_ACT_04
5 IN_IR_ACT_05 ON_IR_ACT_05
--
32 IN_IR_ACT_32 ON_IR_ACT_32
DW 42 Free ON_IR_PROG_ACT
Bit NC – Input NC-Output
1 Free ON_IR_PROG_ACT_01
2 Free ON_IR_PROG_ACT_02
3 Free ON_IR_PROG_ACT_03
4 Free ON_IR_PROG_ACT_04
5 Free ON_IR_PROG_ACT_05
--
32 Free ON_IR_PROG_ACT_32
DW 43 Free ON_PLC_IPO_ACT
Bit NC – Input NC-Output
1 Free ON_PLC_IPO_ACT_01
2 Free ON_PLC_IPO_ACT_02
3 Free ON_PLC_IPO_ACT_03
4 Free ON_PLC_IPO_ACT_04
5 Free ON_PLC_IPO_ACT_05
--
32 Free ON_PLC_IPO_ACT_32
DW 44 Free ON_PLC_IPO_ENDP
Bit NC – Input NC-Output
1 Free ON_PLC_IPO_ENDP_01
2 Free ON_PLC_IPO_ENDP_02
3 Free ON_PLC_IPO_ENDP_03
4 Free ON_PLC_IPO_ENDP_04
5 Free ON_PLC_IPO_ENDP_05
--
32 Free ON_PLC_IPO_ENDP_32
DW 45 Free ON_PLC_POS_ACT
Bit NC – Input NC-Output
1 Free ON_PLC_POS_ACT_01
2 Free ON_PLC_POS_ACT_02
3 Free ON_PLC_POS_ACT_03
4 Free ON_PLC_POS_ACT_04
5 Free ON_PLC_POS_ACT_05
6 Free Free
--
32 Free Free
DW 46 Free ON_PLC_POS_ENDP
Bit NC – Input NC-Output
1 Free ON_PLC_POS_ENDP_01
2 Free ON_PLC_POS_ENDP_02
3 Free ON_PLC_POS_ENDP_03
4 Free ON_PLC_POS_ENDP_04
5 Free ON_PLC_POS_ENDP_05
6 Free Free
--
32 Free Free
Dword 1 INGENERAL1:
General control signals 1
INEMERGENCn EMERGENCY STOP
IN_START NC-START (or CYCLE START)
IN_STOPn FEED HOLD (or CYCLE STOP)
IN_TRANSF BLOCK TRANSFER ENABLE
IN_ENABLE FEED ENABLE ALL AXES
IN_NO_HDW_RESET NO HANDWHEEL RESET when HMI CNC Station is changed
INPLAYBACK PLAYBACK – teach in program
IN_AFC_EN Analog Feed Control ENABLE
IN_BLOCK_DEL PLC: activate Block Delete (/)
IN_BLOCK_DELn PLC: deactivate Block Delete (/)
IN_G01_OVER PLC: activate G01 override
IN_G01_OVERn PLC: deactivate G01 override
IN_FORWARD PLC: forward NC block processing
IN_BACKWARD PLC: backward NC block processing
IN_M1STOP PLC: activate M01 stop
IN_M1STOPn PLC: deactivate M01 stop
IN_WITH_MOVE PLC: NC program runs ‘with movement’
IN_WITH_MOVEn PLC: NC program runs ‘without movement’
IN_PITCHERR PLC: activate Pitch Error Comp
IN_PITCHERRn PLC: deactivate Pitch Error Comp
IN_IGNRMSERR IGNORE AXIS FEEDBACK ERRORS
Dword 2 INGENERAL2:
General control signals 2
IN_REPEAT EDM function control signal
IN_INTERVA EDM function control signal
IN_INSPECT EDM function control signal
IN_BCDSTRB2_FWD BCD strobes requested when Backward program is in forward
IN_BCDSTRB2_BW BCD strobes requested when Backward program is in backward
IN_MIRR_STROBE IN_MIRROR SIGNALS VALID
IN_PLC_NO_RETREAT PLC axis move requires no retreat
IN_DIS_ENABLE DISTANCE CONTROL ENABLE
Dword 3 IN_DRIVEON
Control loop enable signals
IN_DRON01...32 DRIVE ON 1st...32nd AXIS
Dword 4: IN_DRIVEEN
Feed enable signals
IN_DREN01...32 FEED ENABLE 1st...32nd AXIS
Dword 5: IN_HOMING
Homing control signals (only for analog axes)
IN_HOME01n...32 HOME POSITION 1st...32nd AXIS
Dword 6: IN_SWLIMIT
Axes software limits
IN_LIMIT01...32 SOFTWARE LIMIT 1st...32nd AXIS
Dword 8: IN_CYCLEB
Cycle input signals
IN_CYCB_01...08 CYCLE INPUT BYTE 1...8
Dword 9: IN_EXTMODE
External CNC control signals
IN_EXT_01...10 EXTERNAL OPERATION MODE BITS 1...10
IN_EXT_17...24 EXTERNAL PROGRAM SELECTION BITS 17...24
Dword 1 ONGENERAL1:
General state signals 1
ON_CYCLEON CYCLE ON
ON_STOPNCn FEED HOLDn (or CYCLE STOP)
ON_STARTNC NC CYCLE START
CNC operating mode signals
ON_AUTO CNC in Auto Sequential block
ON_SINGLE CNC in Auto Single block
ON_MDI CNC in Auto MDI (manual NC)
ON_JOGMODE CNC in Manual jog mode
ON_HOMING CNC in Manual Move to Ref. Pt..
CNC jog mode signals
ON_INC_JOG CNC in Incremental Jog Mode
ON_CONT_JOG CNC in Continuous Jog Mode
ON_CNC_CHAN_ACT This CNC station/channel IS ACTIVE ON HMI
ON_EMERG CNC Emergency stop ACTIVE
ON_PRG_STP PROGRAM Operator STOP ACTIVE
ON_PRG_END END OF PROGRAM ACTIVE
ON_RESET CONTROL RESET ACTIVE
ON_NO_CNTR NO FEEDBACK CONTROL
ON_HOME_OK HOME POSITION OK
ON_NCERROR NC PROGRAM ERROR
ON_ADDKEY1 AUXILIARY PUSH-BUTTON 1
ON_ADDKEY2 AUXILIARY PUSH-BUTTON 2
ON_PROGRAM NC PROGRAM ACTIVE
ON_ADMISSN ADMISSION (TEACH PANEL)
ON_PANEL TEACH PANEL ACTIVE
ON_RETREAT RETREAT ACTIVE
ON_BACKW BACKWARD ACTIVE
ON_TEACHED TEACH-Editor is Open
ON_BLKCHNG BLOCKCHANGE (EDM)
ON_M1STOP WILL STOP ON M01
ON_WITH_MOVE AXES MOVE DURING PROGRAM
ON_G01_OVER G01 OVERRIDE ACTIVE
ON_BLOCK_DEL BLOCK DELETE (/) ACTIVE
ON_PITCHERR PITCH ERROR COMP ACTIVE
Dword 2 ONGENERAL2:
General control signals 2
ON_STAND STANDSTILL
ON_RAPID RAPID TRAVERSE
ON_THREAD G33/G34 ACTIVE
ON_HOMEOK HOMEOK
ON_INTVEND EDM function
ON_INTRET EDM function
ON_INTVHLD EDM function
ON_EGB_ACTIVE EGB (Gear Hobber) ACTIVE
ON_EGB_SYNC EGB TABLE SYNCHRONIZED
ON_READ_TO_BLK ‘READ TO BLOCK’ IN PROGRESS
ON_HDW_TICKS_LOST1 HANDWHEEL 1 LOST TICKS AFTER RAPID SPIN
ON_HDW_TICKS_LOST2 HANDWHEEL 2 LOST TICKS AFTER RAPID SPIN
ON_HDW_TICKS_LOST3 HANDWHEEL 3 LOST TICKS AFTER RAPID SPIN
ON_TRANSF NC BLOCK TRANSFER ENABLE STATUS
ON_CYCLE_STOP NC CYCLE STOP (FEED HOLD) STATUS
ON_AUTOFOCUS DISTANCE CONTROL FEATURE
ON_DIST_CTRL DISTANCE CONTROL FEATURE ACTIVE
ON_STROBE1 ... 4 BCD Strobes
Dword 5: ONINPOS
Axis in position state signals
ON_INP01 .. 32 IN POSITION 1st...32nd AXIS
Dword 6: ONHOMINGOK
Homing state signals
ON_HOME01 .. 32 HOMING STATE 1st...32nd AXIS
Dword 7: ONPOSAXES
Positioning axes-state signals
ON_POS_01 .. 05 SIGNAL 1st...5th POSITIONING AXIS
Dword 8: ONCYCBYTE
Cycle output signals
ON_CYCB01 .. 08 CYCLE OUTPUT BYTE 1...8
Dword 9: ONEXTMODE
External CNC state signals
ON_EXT_01 .. 10 EXTERNAL OPERATION MODE STATE ON 1...10
ON_EXT_17 .. 24 EXTERNAL PROGRAM SELECTION STATE ON 1...8
The variable names for the CNC input signals and their corresponding
DWORDs begin with
IN ( Input to the CNC).
Several control signals, with which the PLC-PROGRAM can address basic
functions of the CNC, are summed in this dword:
Bit
1 INEMERGENCn EMERGENCY STOPn
2 IN_START NC CYCLE START
3 IN_STOPn FEED HOLDn (CYCLE STOP)
4 IN_TRANSF BLOCK TRANSFER ENABLE
5 IN_ENABLE FEED ENABLE ALL AXES
6 IN_NO_HDW_RESET HANDWHEEL NOT RESET WHEN THIS
CNC STATION NOT ACTIVE
7 Free
8 INPLAYBACK PLAYBACK INPUT (TEACH A POINT)
9 IN_AFC_EN ANALOG FEED CONTROL ENABLE
10
... Free
19
20 IN_BLOCK_DEL PLC: Activate Block Delete (/)
21 IN_BLOCK_DELn PLC: Deactivate Block Delete (/)
22 IN_G01_OVER PLC: Activate G01 Override
23 IN_G01_OVERn PLC: Deactivate G01 Override
24 IN_FORWARD PLC: Forward NC block processing
25 IN_BACKWARD PLC: Backward NC block processing
26 IN_M1STOP PLC: Activate M01 Operator Stop
27 IN_M1STOPn PLC: Deactivate M01 Operator Stop
28 IN_WITH_MOVE PLC: NC program runs ‘with movement’
29 IN_WITH_MOVEn PLC: NC program runs ‘without movement’
30 IN_PITCHERR PLC: Activate pitch error comp
31 IN_PITCHERRn PLC: Deactivate pitch error comp
32 IN_IGNRMSERR IGNORE AXIS FEEDBACK ERRORS
The individual signals can be set to 0 or 1 independent from each other and are
separately described in the following pages.
Note: The signals for bits 6, 20 through 32 were added in CNC version 2.0 so
they did not exist in earlier versions.
Value Meaning
---------------------------------------------------------------------------------------------------
0 EMERGENCY STOP State active
1 EMERGENCY STOP State not active
0→ 1 No direct effect.
1→ 0 No direct effect.
Note:
• The current EMERGENCY STOP state at the machine should
always be communicated via this signal to the CNC, otherwise
- Safety functions of the CNC are not activated and
- The CNC could possibly output error messages which can
result in false interpretations.
The PLC program can instruct the CNC to execute one "start" via this signal. A
"start" is absolutely necessarily for the activation of certain safety relevant NC-
functions such as:
- Processing of a NC program;
- Homing cycle.
There is no other possible way to cause the CNC to "start". Also the CNC
cannot "start" on its own (see chapter 2.4.1.3 “dword 1, ON_STARTNC - NC-
Start (Cycle Start)") if the CNC is monitoring the Cycle Start push button.
Value Meaning
---------------------------------------------------------------------------------------------------
0 "Start" is not demanded
1 "Start" demanded
0→ 1 - The feed rate hold locking of the CNC is overridden (see chapter 2.3.1.3
"dword 1, IN_STOPn (feed hold)").
- If one of the "start" requirements is available in the CNC (see table), then
"start" is executed and the signal ON_CYCLEON receives the value 1
(see chapter 2.4.1.1 "dword 1, ON_CYCLEON" ). Besides that, the
display CYCLE ON appears in the line of the header of the basic menu
screen of the CNC-operating modes AUTOMATIC, MANUAL and
INFORMATION.
1→ 0 No direct effect.
Note:
• Before the PLC Program initiates a "start", ensure, by suitable
interlocks in the PLC logic, that:
- all safety loops are sharply controlled and do not report any
errors;
- The CNC is in the operating state desired by the operator;
all necessary requirements are satisfied for the action to be
"started" on the machine side.
Requirements Effects
---------------------------------------------------------------------------------------------------
The CNC is in the CNC-operating mode The interrupted movement of the
MANUAL-hand operation, incremental axis is continued.
processing was active and was then
interrupted by IN_STOPn (feed hold).
The CNC is in the CNC-operating mode The homing cycle of the selected
MANUAL-homing in the basic condition, axes are started.
at least one axis has been selected with
homing duty.
Via this signal, the PLC Program can instruct the CNC to execute a feed rate
hold.
This signal is used mainly to interrupt actions that were activated with
IN_START (NC cycle start, see chapter 2.3.1.2 “dword 1“).
This signal is locked in the CNC. The given effects are therefore held until the
locking is cancelled by the indicated measure (e.g., a cycle start).
Also the CNC cannot "stop" on its own (see chapter 2.4.1.2 “dword 1,
ON_STOPNCn - Feed Holdn (Cycle Stop)") if the CNC is monitoring the Cycle
Stop push button.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Feed rate hold demanded
1 Feed rate hold not demanded
1→ 0 - Halt all axes via the preset deceleration ramp if necessary on the
programmed path.
- Activate the feed rate hold locking in the CNC.
- Feed rate block for all axes.
- Transfer block for pure NC blocks.
- If all axes have come to the standstill, the signal ON_CYCLEON (see
chapter 2.4.1.1 “dword 1“) receives the value 0 and the signal
Note:
• If thread cutting (G33, G34) is active then the signal IN_STOPn
(feed hold) does not work immediately, instead the effects and the
locking are noted and then activated when the active (or the last if
several are programmed in a direct sequence) G33/34 block is
terminated.
This signal is therefore not suited for a "stop in any case". If G33/G34 is active
(chapter 2.4.2.3 see "dword 2, ON_THREAD (thread cutting (G33/G34)
active)"), the path interpolation can be prematurely stopped only by the signal
IN_NULLV01..06 (spindle 0 volt, see chapter 2.3.12.1 “dword 12“ ).
If "feed rate per rotation" (G95) is active, the axes are stopped without a
deceleration ramp.
IN_STOPn (feed hold) also works if the test operation "without motion" is
active.
IN_STOPn (feed hold) works also on active positioning axes.
The output of an active spindle-set value is not influenced through IN_STOPn
(feed hold).
If the spindle is also to be stopped at feed rate hold, it is recommended that the
signal IN_NULLV01..06 (spindle 0 volt, see chapter 2.3.12.1 “dword 12“) is
given the value 1, when the signal ON_CYCLEON (see chapter 2.4.1.1 “dword
1“ ) receives the value 0.
The CNC position control loops also remain active at IN_STOPn (feed hold).
The exchange of NC blocks from the preparation level to the execution level in
the CNC can be blocked via this signal and thus the execution of the NC blocks
is blocked. This signal is used mainly for short-term interruptions of the NC-
program processing such as if it is necessary to wait for the result of an
external event (e.g., termination of a machine switch or function).
Value Meaning
---------------------------------------------------------------------------------------------------
0 NC block exchanges blocked
1 NC block exchanges enabled
1 No direct effect.
Note:
• Under the following conditions it is not guaranteed, that no more
NC block exchanges are undertaken, although IN_TRANSF
(transfer enable) has the value 0:
With this signal the PLC Program can enable or block the path interpolation of
the CNC during the execution of NC blocks.
This signal is then mainly used if the execution of NC block should not be
blocked on principal but only for travel movements.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Path interpolation blocked
1 Path interpolation enabled
1 No direct effect.
1→ 0 No other effect.
Note:
• If thread cutting (G33, G34) is active, the blocking of the path
interpolation does not work immediately, but after the active (the
last if several are programmed in direct sequence) G33/34-block
is terminated. This signal is therefore not suited for a "stop in any
case" application.
• If "feed rate per rotation" (G95) is active, the axes are stopped
without a deceleration ramp.
• This signal is sometimes used when the PLC affects axis motion
while handling a BCD code (e.g., an M-code). By setting bit 16 in
the BCDStrobeTime (i.e., 8000-hex), the axis motion commands
in the block will be delayed until after that BCD letter has been
processed by the PLC so that machine parameter takes care of
the interaction rather than using IN_ENABLE. If the PLC tries to
set IN_ENABLE to FALSE at the moment of a BCD code without
having set BCDStrobeTime bit 16 for that BCD number then it will
always happen just a little too late (so there might be a very small
axis move) because the CNC would begin interpolation before
the PLC can respond to the BCD. If the changes in spindle speed
should occur prior to axis motion in that block then the PLC logic
typically uses ON_MOVE01 in its management of IN_ENABLE
because ON_MOVE01 will be FALSE whenever the spindle
speed is changing (when the spindle has feedback).
This signal can prevent the reset of a free handwheel. When the operator
changes the active CNC station selection, the default behavior is for the CNC
to reset the current free handwheel assignment. This is due to the assumption
that the operator will not want a previous handwheel assignment to remain
intact with the new active CNC station on the display. This signal allows the
PLC to direct the CNC to maintain a handwheel assignment even if the CNC
station that is active on the display is changed.
A free handwheel is one that is not assigned to a specific axis; a free
handwheel can be assigned by the operator selection of an axis or by the PLC.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The current free handwheel assignment will be reset if this CNC station is
no longer active in the HMI (the operator display)
1 The current free handwheel assignment will not be reset even if this CNC
station is no longer active in the HMI. Another action is required to reset
that assignment (such as a control reset or a PLC command).
0→ 1 No effect.
1→ 0 No effect.
This signal can initiate one "Playback" process. The “playback” is the recording
of axis positions in a part program format, that could be “played back” later as a
part program. Each playback activation results in another NC block added to
the part program, with the current axis position(s). Those axes that have
changed their position since the last playback activation have their position
added to the NC block. This part program can be edited, with G-codes, M-
codes, feed rates and spindle speeds, to run the part whose points were
recorded in this manner.
Value Meaning
---------------------------------------------------------------------------------------------------
0 No meaning
1 No meaning
1→ 0 No effect.
Note:
• This signal is only effective if the "Playback" process was
prepared via inputs to the control panel and the CNC is in the
CNC-operating mode MANUAL-hand operation or MANUAL-
homing or memories.
After the part program has been specified and the “Playback”
feature has been activated via the MMI and the CNC is in the
correct operating mode, then each time the PLC triggers this
signal to the CNC, the CNC will add an NC statement to the part
program with the current axis coordinates. This allows the
operator to manually ‘teach’ a part program.
This CNC feature is described in more detail in the Operator’s
Manual.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Analog Feed Control is disabled
1 Analog Feed Control is enabled
This feature (as well as the configuration of the machine parameters for this
feature) is described in the Start Up Manual.
These signals allow the PLC to activate or deactivate the Block Delete (/) mode
in the CNC.
These two signals interact with the feature’s activation from the CNC’s operator
interface (MMI). The chart below illustrates the effects of these two signals.
The signal ON_BLOCK_DEL (see 2.4.1.27) contains the current CNC mode
setting.
These signals allow the PLC to activate or deactivate the G01 Override mode
in the CNC.
These two signals interact with the feature’s activation from the CNC’s operator
interface (MMI). The chart below illustrates the effects of these two signals.
The signal ON_G01_OVER (see 2.4.1.26) contains the current CNC mode
setting.
These signals allow the PLC to direct the CNC to process the NC blocks in the
program in the forward or backward direction.
These two signals interact with the Backward feature’s activation from the
CNC’s operator interface (MMI). The chart below illustrates the effects of these
two signals.
The signal ON_BACKW (see 2.4.1.21) contains the current CNC mode setting.
In the cases where running a program backward is not acceptable the choices
are either the PLC always has IN_FORWARD set to true or the soft key is
removed from the CNC operator interface. If the Backward soft key should be
enabled only at certain times then an operator switch or a pair of M-codes
(on/off of the soft key enable) is advised.
These signals allow the PLC to activate or deactivate the M01 Optional Stop
mode in the CNC.
These two signals interact with the feature’s activation from the CNC’s operator
interface (MMI). The chart below illustrates the effects of these two signals.
The signal ON_M1STOP (see 2.4.1.24) contains the current CNC mode
setting.
These signals allow the PLC to activate the ‘test run with movement’ or ‘test
run without movement’ modes in the CNC.
These two signals interact with the feature’s activation from the CNC’s operator
interface (MMI). The chart below illustrates the effects of these two signals.
The signal ON_WITH_MOVE (see 2.4.1.25) contains the current CNC mode
setting.
These signals allow the PLC to activate or deactivate the ‘Pitch Error
Compensation’ mode in the CNC.
These two signals interact with the feature’s activation from the CNC’s operator
interface (MMI). The chart below illustrates the effects of these two signals.
The signal ON_PITCHERR (see 2.4.1.28) contains the current CNC mode
setting.
This signal allows the PLC to override the normal checks by the CNC for errors
in the axis feedback system. RMS represents the Rotary Measurement
System, as often the drive’s feedback system is an encoder mounted on the
axis motor. If an error is detected in the feedback system, the CNC enters into
Emergency Stop.
With some drives, there might be such problems during a start up. If the PLC
sets this bit then the CNC will ignore these errors. However, because there is
no way to reset the hardware that detects these errors, this bit must remain set
if an RMS error was detected (or an Emergency Stop will result).
Value Meaning
---------------------------------------------------------------------------------------------------
0 CNC will perform usual checks in feedback hardware
1 CNC will not perform the usual checks in feedback hardware
0→ 1 No direct effect.
1→ 0 No direct effect.
Several control signals, with which the PLC-PROGRAM can address basic
functions of the CNC, are summed in this dword:
Bit
1 IN_REPEAT REPEAT EDM - function
2 IN_INTERVA INTERVAL control
3 IN_INSPECT INSPECT signals
4 IN_BCDSTRB2_FWD BCD strobes during Backward program
running forward
5 IN_BCDSTRB2_BW BCD strobes during Backward program
running backward
6 Free
7 Free
8 Free
9 IN_MIRR_STROBE Mirroring Strobe signal
10 IN_PLC_NO_RETREAT PLC Axis move requires no retreat signal
11
... Free
16
17 IN_DIS_ENABLE Distance control signal
18
... Free
32
The individual signals can be set to 0 or 1 independent from each other and are
separately described below.
Note: The signal for bit 10 was added in CNC version 2.1 so it did not exist in
earlier versions. The signals for bits 4 and 5 were added in CNC version 2.3 so
they did not exist in earlier versions.
This signal tells the CNC when the mirroring control signals (see chapter
2.3.14, IN_MIRROR (dword 14)) are valid.
Value Meaning
---------------------------------------------------------------------------------------------------
0 CNC will ignore the IN_MIRROR inputs
1 CNC will act on the IN_MIRROR input signals
The normal operation for the CNC with this PLC function is that when the PLC
has indicated it has completed its commands for this axis, the CNC will return
that axis to its position prior to the PLC activity. By setting this signal, which is a
command not to return the axis to its prior position, the CNC will not perform
that subsequent axis motion.
Note: The ‘retreat’ condition is synonymous with the ‘axes will return to the
programmed path’ condition.
Value Meaning
---------------------------------------------------------------------------------------------------
0 CNC will return to path any of the interpolating axes that had been moved by
the PLC
1 CNC will not return to path any of the interpolating axes that had been
moved by the PLC; the axes will remain where the PLC had moved them
Also, a G10 (the G-code that prevents the block look ahead beyond its block) is
always required in the NC block after the NC block that performs the
IN_PLC_NO_RETREAT action with IN_IPOMVMT because the CNC will be
checking the axis positions at the end of the block and the block look ahead
should be inhibited for this activity.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Distance control regulation is disabled
1 Distance control regulation is enabled (but its operation requires
activation via a BCD code)
This signal is ignored by the CNC unless this PLC signal has been enabled by
the machine parameter DistSignalByte in the same group. If that parameter is
0 then the Distance Control feature is managed only by the part program (the
feature’s M-codes for on/off and G-code for its vector).
The individual axis position control loops, apart from those at gantry axes, are
independent of each other. The individual signals can therefore be treated
separately.
These signals are mainly used if the axis position control loops have to be
opened without an EMERGENCY STOP state, e.g., at clamped axes.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Open position control loop
1 Close position control loop
Note:
• With gantry axes a missing position control loop enable of the
leading axis also works on the slave axis and vice versa.
• The set value output for the spindle is not influenced by a position
control loop enable signal.
• This signal is set to close the position control loop for a stepper
axis.
With an analog axis, there is typically an 24V output to the drive to enable its
operation, for it to follow the analog voltage representing the required velocity.
With a SERCOS axis, this signal represents that enable signal to the drive, for
it to follow the new axis position command.
Since the status of ‘Drive On Missing’ will occur with an open-loop axis (like a
position only axis, such as on a clamp) or with an indexing axis that is
intermittently switching between open loop and closed loop, it might be
desirable for the PLC to prevent this ‘Drive On Missing’ status on the display. If
the BOOL variable named PLC_PRG.DriveOnLock (that variable in that POU;
see chapter 6.1) is set to TRUE (or 1) then the CNC will inhibit that particular
status from the Manual and Automatic mode displays. This interface signal
became available starting in CNC version 2.2.8.
In this dword the enable signals for axis-interpolation outside the path
interpolation are summed for all axes, to a maximum of 32:
Bit
1 IN_DREN01 FEED ENABLE 1st axis
2 IN_DREN02 FEED ENABLE 2nd axis
3 IN_DREN03 FEED ENABLE 3rd axis
4 IN_DREN04 FEED ENABLE 4th axis
...
32 IN_DREN032 FEED ENABLE 32nd axis
The individual feed rate enable signals are independent of each other and can
therefore be treated separately.
These signals can also be used to control, with the corresponding preset via
setup data, the motion sequence of the axes in Manual Mode, such as at the
homing cycle depending on the current machine state of the PLC Program (see
chapter 2.3.5 "dword 5, IN_HOMING").
Value Meaning
---------------------------------------------------------------------------------------------------
0 Single axis interpolation blocked
1 Single axis interpolation enabled
Note:
• In the AUTOMATIC CNC operating modes of the CNC the feedrate
enable signals only work on positioning axes or if a programmed
homing (G74) is active. In Automatic mode, the IN_DRENxx signals
will not prevent axis motion except for a positioning axis. To stop
axis interpolation in Automatic mode, use the signal IN_ENABLE
(see chapter 2.3.1.5 "dword 1").
• In the Manual operating mode, the IN_DREN01..32 signals will
prevent the axis motion.
• The IN_DREN01..32 (feed rate enable) signals also work if the test
operation "without motion" is active.
• The signal ON_CYCLEON (see chapter 2.4.1.1 "dword 1") is not
PLC Interface Manual
page 84 / 304
MACHINEMATE®
Bit
1 IN_HOME01n HOMINGn 1st axis
2 IN_HOME02n HOMINGn 2nd axis
3 IN_HOME03n HOMINGn 3rd axis
4 IN_HOME04n HOMINGn 4th axis
...
32 IN_HOME32n HOMINGn 32nd axis
These signals are used to control the homing of each axis by the CNC. They
assumed to be “active low” signals (usually obtained from a normally closed
input switch). They indicate the state of the homing input and are usually only
passed through to the CNC and not interpreted by PLC logic.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Home input switch active
1 Home input switch not active
Note:
• Each signal works if the homing cycle of the respective axis is
active. The machine parameter RefAxesAppl (in the
ReferencePointCycle group) configures which axes require
homing. The other parameters in this group define how the
respective axes are homed (e.g., the direction and velocity) and
in which order.
In this dword, the control state signals for the second set of software limits are
summed, with a maximum of 32 axes:
Bit
1 IN_LIMIT01 Switch to second software limits 1st axis
2 IN_LIMIT02 Switch to second software limits 2nd axis
3 IN_LIMIT03 Switch to second software limits 3rd axis
4 IN_LIMIT04 Switch to second software limits 4th axis
...
32 IN_LIMIT32 Switch to second software limits 32nd axis
These signals are used to switch to a second pair of software limits for each
axis. Each axis can be set individually.
Further, with a machine parameter it will be decided whether these switches
are only effective in manual operating mode or also in automatic operation
mode.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Do not switch to the second pair of limits
1 Switch to the second pair of software limits for the indicated axis
Note:
• The required machine parameters are :
SoftwareLimitPlus, SoftwareLimitMinus,
SoftwareLimitPlus2, SoftwareLimitMinus2 (these four
are in the AxisControl group; there are two sets of travel
limits for each axis).
In this dword the control signals are summed for a maximum of 5 positioning
axes:
Bit
1 IN_POS_01 START 1st POS.AXIS
2 IN_POS_02 START 2nd POS.AXIS
3 IN_POS_03 START 3rd POS.AXIS
4 IN_POS_04 START 4th POS.AXIS
5 IN_POS_05 START 5th POS.AXIS
6
Reserved
32
These signals are used to execute the NC blocks of the individual positioning
axes that have been put in the positioning memory. Each positioning axis can
be treated separately.
The control of a positioning axis is slightly different whether the command for
the positioning axis comes from the positioning axis memory (i.e., a series of
part program statements, that are activated by a block with G188 in the main
program) or from the PLC application function MOVE_POSITIONING_AXIS.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Do not process positioning memory
1 Process positioning memory
1 When the positioning axis is getting its command from positioning axis
memory, then this value enables subsequent blocks to be processed
(just like IN_TRANSF). Note that with this signal at 1, the IN_START
and IN_STOPn signals will resume and feed hold, respectively, the
positioning axis motion (just like for interpolating axis motion since
both motions get their commands from part program statements).
PLC Interface Manual
page 87 / 304
MACHINEMATE®
0→ 1 If the positioning memory of the respective positioning axes is filled and its
processing is enabled, but has not yet been started, then
- the signal ON_CYCLEON (see chapter 2.4.1.1 "dword 1") receives the
value 1.
This effect corresponds to that of the signal IN_START (NC cycle start,
see chapter 2.3.1.2 "dword 1") for the processing of NC Programs for
path axes.
1→ 0 No other effect.
Note:
• If the positioning axis is jogged, homed or moved via an external
operating mode selection, the movement command from the PLC
will be deleted and new PLC commands will be ignored as long
as this axis is selected for movement.
• When the positioning axis movement is initiated via
IN_POS_01..05, the movement commands come from the CNC
positioning axis stack. New PLC movement commands will be
delayed until all CNC-stack moves are completed.
• During the movement of a positioning axis through the stack of
NC blocks, the signal ON_POS_01..05 (see chapter 2.4.6 "dword
7") will be set when the G98 block is encountered.
• During the active command for a positioning axis, the appropriate
signal ON_CMNDP01..32 or ON_CMNDM01..32 (see chapter
2.4.13 "dwords 15,16") will be set indicating the polarity of the
active motion.
• When the positioning axis command has reached its end
position, the appropriate ON_INP01..32 signal (see chapter 2.4.4
"dword 5") will be set to indicate the axis is in position.
In this dword the 8 input signals are summed, which can be evaluated with the
NC part program cycle instruction IB (Input-Byte):
Bit
1 IN_CYCB_01 Cycle Output to CNC Bit 1
2 IN_CYCB_02 Cycle Output to CNC Bit 2
3 IN_CYCB_03 Cycle Output to CNC Bit 3
4 IN_CYCB_04 Cycle Output to CNC Bit 4
5 IN_CYCB_05 Cycle Output to CNC Bit 5
6 IN_CYCB_06 Cycle Output to CNC Bit 6
7 IN_CYCB_07 Cycle Output to CNC Bit 7
8 IN_CYCB_08 Cycle Output to CNC Bit 8
9
... Reserved
32
These signals can be scanned by the part program as cycle parameters and
are used for the controller of the NC program. The effect of the individual
signals in the CNC is therefore dependent on the currently active cycle
program.
If the CNC requires a real-world digital input signal, typically it can read it
directly (after the feature is configured using the machine parameters in the
ProbingLogic group for inputs used for probing where an M-code is assigned to
each of 16 possible inputs in two defined byte numbers or machine parameters
in the CycleParameter group for an input directly from a single byte number
using the IBx syntax in a cycle block) rather than getting it through the PLC
using these signals.
Note that if the machine parameter WCycleByteNo defines an input byte
number for the cycle block IB syntax (so the CNC reads an input byte directly
th
for the part program, where IB1 is the 1st bit in that byte and IB8 is the 8 bit in
that byte) then the PLC interface signals above are ignored by the CNC.
With this word the PLC Program can initiate the function "External CNC-
operating mode" (ext. o. m.) of the CNC.
Bit
1 IN_EXT_01 External Operating Mode Bit 1
2 IN_EXT_02 External Operating Mode Bit 2
3 IN_EXT_03 External Operating Mode Bit 3
4 IN_EXT_04 External Operating Mode Bit 4
5 IN_EXT_05 External Operating Mode Bit 5
6 IN_EXT_06 External Operating Mode Bit 6
7 IN_EXT_07 External Operating Mode Bit 7
8 IN_EXT_08 External Operating Mode Bit 8
9 IN_EXT_09 External Operating Mode Bit 9
10 IN_EXT_10 External Operating Mode Bit 10
11
... Reserved
16
• Basic functions
• External manual operation
• External CNC operating mode selection
The CNC output signals of this word, external CNC operating mode state
signals, display replies of the CNC to requests of the PLC for the function.
These output signals are thus positioned in direct connection with the input
signals and are therefore also described here.
Coding:
10 9 8 7 6 5 4 3 2 1 Bit
X X X X X X X
0 0 0 = Inactive
X X 1 = External manual operation
active
1 1 0 = External CNC operating
mode selection active
The bit assignment of the first CNC output word of dword 9 (ONEXTMODE,
see 2.4.8) corresponds exactly to that of the first input word of dword 9, so that
this and the following displays of the word are always valid for both directions.
In this output word (i.e., the CNC's reply in ONEXTMODE), the same bits as in
the input word (i.e., the request of the PLC) have the value 1 if the function
requested by the input was activated.
Therefore it is generally valid:
What is not yet active in the 1st case, can be recognized from those bits that
have a different value in the output word as in the input word.
The function external CNC-operating mode has a higher priority than operator
inputs. Therefore the CNC can be "forced" into a certain CNC-operating mode
via this PLC function even if the operator tries to change the CNC-operating
mode.
Coding:
10 9 8 7 6 5 4 3 2 1
1
0 0 = no positioning
0 1 = positioning to +
1 0 = positioning to –
(continuous or
incremental;see
2.3.9.1.3)
1 1 = Positioning with
handwheel
10 9 8 7 6 5 4 3 2 1
0 0 0 0 0 = 1st axis
0 0 0 0 1 = 2nd axis
0 0 0 1 0 = 3rd axis
0 0 0 1 1 = 4th axis
0 0 1 0 0 = 5th axis
0 0 1 0 1 = 6th axis
... ... ... ... ... .......
1 1 1 1 1 = 32nd axis
Examples:
= 0H = 0
Notes:
• The function is first executed when the same bit patterns are
returned via the output word (ONEXTMODE) as were in the input
word (IN_EXTMODE).
The reply can be made under some conditions that the individual
bits are not set immediately (e.g., if the current state must be
terminated before the next state can become active).
It is therefore recommended to monitor the execution of a
function over a time that is appropriate for the particular
application.
If the signal ON_CYCLEON (see chapter 2.4.1.1) has the value 1, then no
changing of the CNC-operating mode or of the axis selection is possible.
The CNC operating mode or additional function is selected with bit 4 and 5, the
axis or the additional function itself is selected with the bits 6 to 10.
The operating mode selection of either ‘move continuous’ or ‘move incremental’
with bits 6 to 10 does not result in the corresponding motion for any axis. The
motion will occur only when commanded as defined in the external manual
operating mode (see 2.3.9.1.2) that defines both the axis and the direction for
the motion.
A table with the complete coding follows.
Coding:
10 9 8 7 6 5 4 3 2 1
1 1 0
0 0 = Additional function
0 1 = CNC operating mode
HOMING
1 0 = CNC operating mode
AUTOMATIC
single block (22d)
1 1 = CNC operating mode
AUTOMATIC
sequential block (30d)
Examples:
Note:
• The function is executed when the same bit patterns are
returned via the output word as were in the input word
The reply can be made under conditions so that the individual
bits are set first gradually. This is the case if the requested
function is executed by steps in the CNC.
It is therefore recommended to monitor the execution of a
function over a time that is appropriate for the application.
• To perform the homing of a single axis from the PLC, after the
correct IN_EXTMODE value has been set (according to the
Coding table above), the PLC must set IN_START to activate
the homing sequence for that axis. It is very important that the
proper IN_EXTMODE value is present when the IN_START
signal is set by the PLC. With IN_EXTMODE at 0 (zero) then
the setting of IN_START signal (see 2.3.1.2) while in the
MANUAL operating mode is interpreted to mean that the
complete automatic homing sequence for all mandatory homed
axes will commence (as configured by the machine parameters
in the ReferencePointCycle group).
selection. This command does not cause the motion, just the
condition. Upon the cycle start, the CNC will return to the
program path if retreat is activated. If retreat is not activated,
then the CNC resumes the program from its current axis
positions.
• The two operating mode commands (22 or 30) will result in the
operator display changing to that mode, if possible (depends on
what mode or dialog is active at the time).
With the second word of dword 9 the PLC Program can initiate the function
"External program selection" of the CNC:
With this function, in the CNC operating modes AUTOMATIC next block and
AUTOMATIC single block, NC PROGRAMS can be selected from the NC
program memory of the CNC for execution. This word is not binary encoded,
but the meaning of the individual bits depends on the value of other bits of this
word. Therefore this word must always be treated as whole.
The information about word 2 from dword 9 in this chapter is arranged into
following points:
- Basic functions
- Multiplex mode
- Direct mode
- Replies of the CNC
- Error possibilities
In both modes the lowest value bit is used both on the input side as well as on
the output side as "Strobe" (i.e., the word is valid) if this bit 17 has the value 1.
Coding:
In contrast to the direct mode, the multiplex mode must be started and
terminated. This is achieved as the seven higher value bits get the value 0 or
the value 1 respectively.
After the start of the multiplex mode the program number is submitted in steps,
in that at each step a digit of the program number is submitted. It must begin
with the highest value position and end with the lowest in a complete
sequence.
Leading zeros of the program number do not have to be submitted in this
sequence.
The current position is submitted with the bits 18-20, the digit of this position is
submitted with the bits 21-24.
After the last step the multiplex mode must be terminated.
At each individual step and also at the start and end, the reply of the CNC must
be waited for before a new step can be performed. The NC PROGRAM is first
selected when the CNC has reported back the last step, the termination of the
multiplex mode, without errors. After that the function can be deselected.
Coding:
24 23 22 21 20 19 18 17
1
1 = sequential strobe
The direct mode is always active except when the multiplex mode has been
started but not yet terminated. In this direct mode, the "units" digit of the
program number is submitted with the bits 18-21, and the "tens" digit of the
program number is submitted with the bits 22-24.
The PLC must wait for the reply of the CNC when in the direct mode before the
function can be deselected. This wait is to ensure the NC PROGRAM is
selected before the deselecting.
Coding:
24 23 22 21 20 19 18 17
Examples:
Deselect function 0 0 0 0 0 0 0 0
= 0H = 0
Select NC PROGRAM 37
Deselect function 0 0 0 0 0 0 0 0
= 0H = 0
Select NC PROGRAM 79
Deselect function 0 0 0 0 0 0 0 0
= 0H = 0
The replies of the CNC are the same in the multiplex mode as in the direct
mode: If no error has occurred, the bit pattern is output which matches that
entered in the input word (i.e., IN_EXTMODE).
If an error was recognized by the CNC, the bits 18-21 of ONEXTMODE receive
the value 1. Since this is not possible in any other case, the PLC Program can
also recognize this error state and can react accordingly to the evaluation of
the bits 21-24, which specify the cause of error more precisely.
If an error appears, the function of the CNC is deselected and if necessary
must be newly restarted by the PLC Program.
The reply is given as long as the initiating input is available.
ONEXTMODE Coding:
24 23 22 21 20 19 18 17
1
Error possibilities
Handling errors:
- The signal ON_CYCLEON (see chapter 2.4.1.1 "dword 1")
has the value 1. In this case no program selection is
possible.
This dword is reserved for the possible deactivation of a single Sercos axes.
This dword function is not used.
This dword is divided in two different word (16 bits). The first word (bit 1 ... 16)
is defined for the function “switch-over spindle/rotational axes”, the second
word (Bit 17 ... 32) for the function “gear box stage selection”.
In the bits 1-6 of this dword the following control signals are summed for the
switch-over axes via the PLC:
Bit
1 IN_SWAX01 Switch-over spindle/rotational axis 1
2 IN_SWAX02 Switch-over spindle/rotational axis 2
3 IN_SWAX03 Switch-over spindle/rotational axis 3
4 IN_SWAX04 Switch-over spindle/rotational axis 4
5 IN_SWAX05 Switch-over spindle/rotational axis 5
6 IN_SWAX06 Switch-over spindle/rotational axis 6
7
... Reserved
16
In the manual operating mode the PLC can activate the operating mode
“spindle” by setting the specified bit (i.e., the bit number corresponds to the axis
number so if the 4th axis can switch over to a spindle then use IN_SWAX04 to
switch the 4th axis to its spindle configuration). The bit is scanned statically. An
axis switch-over is not possible during the operating mode of homing.
There are several machine parameters involved in the configuration of these
axes that can be switched between a spindle and a rotational axis and these
parameters are in the Spindle group.
The dword ON_SWAX (see 2.4.25) contains the current switching spindle/axis
configuration.
Bit
17 IN_GEAR01 Spindle gear stage 1
18 IN_GEAR02 Spindle gear stage 2
19 IN_GEAR03 Spindle gear stage 3
20 IN_GEAR04 Spindle gear stage 4
21 IN_GEAR05 Spindle gear stage 5
22 IN_GEAR06 Spindle gear stage 6
23
... Reserved
32
The PLC Program reports the current spindle gear stage (or gear
range) to the CNC via these 6 signals.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Relevant gear stage or gear range is not selected
1 Relevant gear stage or gear range is selected
Note:
• These signals are only processed if the feature "automatic gear
stage shift" is active. The feature is enabled using the machine
parameter M40Appl in the Gearbox group.
• Only one gear stage signal from the PLC may have the value 1.
2.3.11.2.1. Sequence for spindle gear changes between CNC and PLC
• The third and fourth temporary blocks are both G10 blocks,
preventing the CNC block look ahead feature from processing
blocks beyond this spindle gear change.
• If the operator MDI’s a M41 (to M46) with an S-code but the
spindle is stopped (i.e., M05), the M41 (to M46) is not strobed to
the PLC. Only when the spindle is running or it will start (on the
M03/M04) will the M41 (to M46) be strobed to the PLC is a gear
change is required. The same scenario occurs with a part
program if the M41 (to M46) occurs in a block before the M03
block. It is important to note that this internal management of the
spindle gear ranges is activated when the spindle is running or it
is started, not when it is stopped.
In addition to safety functions, this signal can also be used for "spindle orient"
(M19) with a spindle without feedback, so that upon engagement of the
indexing of the spindle (i.e., a shot pin), the spindle is stopped.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Spindle-set value as programmed
1 Spindle-set value is 0 volt
Note: The signal is not interlocked in the CNC (there is no return signal
from the CNC) and it works unconditionally.
With these signals the PLC Program can invert the sign of the set value output
for the respective spindles.
Bit
17 IN_REV_01 Spindle 1
18 IN_REV_02 Spindle 2
19 IN_REV_03 Spindle 3
20 IN_REV_04 Spindle 4
21 IN_REV_05 Spindle 5
22 IN_REV_06 Spindle 6
23
... Reserved
32
This signal can also be used for "spindle orient" (M19) with a spindle without
feedback. A continual value change of the signal rotates the spindle back and
forth and thus facilitating the engagement of the indexing mechanism.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Spindle-set value as programmed
1 Spindle-set value is inverted
Note:
• The signal is not interlocked in the CNC and works
unconditionally.
In this dword, the control state signals for the parking axes are summed, with a
maximum of 32 axes:
Bit
1 IN_PARK01 Parking 1st axis
2 IN_PARK02 Parking 2nd axis
3 IN_PARK03 Parking 3rd axis
4 IN_PARK04 Parking 4th axis
5 IN_PARK05 Parking 5th axis
6 IN_PARK06 Parking 6th axis
7 IN_PARK07 Parking 7th axis
... ... ...
32 IN_PARK32 Parking 32nd axis
The function parking axis makes it possible to uncouple an axis (especially the
rotary transducer) from the control while the CNC is in the ready state.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Parking is not active for the specified axis
1 Parking is active for the specified axis
The evaluation on the encoder wire break supervision (i.e., “loss of feedback”)
from the measuring system for a parked axis in the CNC will be suppressed
and the accompanying position feedback loop will be switched off. The pulses
of the measuring system for the parked axis will not be evaluated.
Motion commands to a parked axis will not be executed.
All parked axes will be displayed on the man-machine interface in the status
window of the menu INFO (i.e., PARK X, Z, etc.).
Reintegrated parking axes that are defined with a required home position
function will need a new homing cycle.
The CNC will synchronize after the reintegration of parked axes. This effect in
the CNC results that the blocks in the dynamic block buffer will be deleted. To
avoid this you can set the machine parameter ParkAxesAppl (in the
AxisControl group). This effects that the CNC produce dummy blocks until the
park axes will be integrated.
During the power on of the CNC, there might be the detection of the encoder
‘wire cut’ if the axis has been removed. To prevent this power up detection, the
machine parameter ParkAxesInitialState (in the AxisControl group) is
configured for each of the axes that might be parked. With this setting, during
the start phase of the CNC up to the first initial state after the restart of the
control the encoder wire break supervision for parked axes is not active. After
the first PLC scan, the signals for all parked axes must be set to the correct
states because the control reads these signals to activate the necessary
encoder wire break supervision.
The usual technique for the PLC to handle an axis becoming unparked is:
1. use IN_EXTMODE to place the CNC in manual mode (if homing is
required, then the axis will have to be homed after its reconnection),
2. make sure that the axis encoder feedback is connected (is there an
interlock signal available in the cable?) since the loss of feedback detection
will become enabled again for this axis,
3. reset (with a 0 value) the correct axis park bit (IN_PARKxx) to establish the
CNC connection to the axis.
If the axis is one to be homed, then the operator will have to home the axis
before returning to Automatic mode.
Note:
• Before uncoupling the measuring system of a parking axis the
specific park axis signal must be set.
Conversely, before resetting the park axis signals the axis
measuring system must be connected.
In this dword, the control state signals for the mirroring axes are summed, with
a maximum of 32 axes:
Bit
1 IN_MIRR01 Mirroring 1st axis
2 IN_MIRR02 Mirroring 2nd axis
3 IN_MIRR03 Mirroring 3rd axis
4 IN_MIRR04 Mirroring 4th axis
5 IN_MIRR05 Mirroring 5th axis
6 IN_MIRR06 Mirroring 6th axis
7 IN_MIRR07 Mirroring 7th axis
... ... ...
32 IN_MIRR32 Mirroring 32nd axis
Value Meaning
---------------------------------------------------------------------------------------------------
0 The specified axis will not be mirrored.
1 The specified axis will be mirrored.
The CNC will take over the mirroring signals only in the automatic operation
mode (continuous and single block) if no program is running.
The mirrored axes will still be mirrored after “initial state” by setting of the
machine parameter PLCMirrorReset (in the PLCFunctions group) (parameter
= 0 indicates the function is inactive, ≠ 0 function is active).
The mirror values will be set on the “initial state values” only when the CNC
change in the homing or manual operation mode or they will be set on new
values with suitable programming in the automatic operation mode.
Note:
• The required machine parameter is: PLCMirrorReset (in the
PLCFunctions group) to enable the feature.
This dword is divided in four different bytes (8 bits). The first byte (bits 1 ... 8) is
defined for the feed rate override and the second byte (bits 9 ... 16) is for the
spindle speed override. The other two bytes are free.
Note:
• When using gray-code switches, the bit 9 (= 100H) in the machine
parameter OverrideAppl (in the Override group) must be set.
• When using switches that deliver values from 1 – 24, the bit 15 (=
4000H) in the machine parameter OverrideAppl must be set.
If the switch delivers values from 0 – 23 then bit 15 must be reset.
With this function a value for the spindle override can be selected:
Bit
9 IN_OVERR09 = 0 => this spindle override inactive
= 1 => this spindle override active
10 IN_OVERR10 These five
11 IN_OVERR11 bits select
12 IN_OVERR12 the spindle
13 IN_OVERR13 override value
14 IN_OVERR14 from a table.
15 IN_OVERR15 Free
16 IN_OVERR16 Free
Note:
• When using gray-code switches, the bit 9 (= 100H) in the machine
parameter OverrideAppl (in the Override group) must be set.
• When using switches that delivers value from 1 – 24, the bit 15 (=
4000H) in the machine parameter OverrideAppl must be set.
If the switch delivers values from 0 – 23 then bit 15 must be reset.
Note:
• The required machine parameters are :
PLCOverrideByteNo (in PLCFunctions group) must be set to
value 0F0Fhex for either the PLC feed override or the PLC
spindle speed override values to be effective and
SpindleOverride (in Override group) must have the table
configuration values set as needed for the desired override
percentages.
In this dword, the enable signals for the movement of interpolated axes as a
result of a PLC command, outside of the part program path interpolation, are
summed, with a maximum of 32 axes:
Bit
1 IN_IPOMT01 PLC move enable 1st axis
2 IN_IPOMT02 PLC move enable 2nd axis
3 IN_IPOMT03 PLC move enable 3rd axis
4 IN_IPOMT04 PLC move enable 4th axis
5 IN_IPOMT05 PLC move enable 5th axis
6 IN_IPOMT06 PLC move enable 6th axis
7 IN_IPOMT07 PLC move enable 7th axis
... ... ...
32 IN_IPOMT32 PLC move enable 32nd axis
The individual feed enable signals are independent of each other and can
therefore be treated separately. Even if two axes are in an active parallel
arrangement moving only the master will not move the follower.
To request the movement of an interpolated axis, the PLC application must
specify the end point for the axis motion using the function
MOVE_INTERPOLATING_AXIS (see 3.18).
Value Meaning
---------------------------------------------------------------------------------------------------
0 Single axis interpolation move by PLC is not enabled.
1 Single axis interpolation move by PLC is enabled.
Value Effect in the CNC
---------------------------------------------------------------------------------------------------
0 Indicates the interpolation axis is controlled by the CNC not PLC.
1 Indicates the interpolation axis is controlled by the PLC command.
If the axis motion is still in progress at this transition, then the axis motion
is immediately stopped via the preset deceleration ramp.
This 1->0 signal transition should occur while the CNC is not in active
interpolation. Even if the PLC commanded axis motion has completed,
the PLC should reset the IN_STOPn signal to force the condition of no
active motion (see 2.3.1.3) for the CNC to synchronize its block
processing. This reset of the IN_STOPn signal should occur before the
IN_IPOMTxx signal is reset.
If this signal is used to move an axis in the middle of an active NC block
then the IN_TRANSF must be 0 during the entire time this IN_IPOMTxx
signal is 1. This IN_IPOMTxx signal must be returned to its normal 0
state before the IN_TRANSF returns to its normal 1 state.
The reset of IN_IPOMTxx indicates to the CNC that the interpolating axis
is reverting back to its normal state as an interpolating axis. During the
time that IN_IPOMTxx is set, the CNC treats the axis as a positioning
axis (i.e., an axis whose motions come from a PLC command).
Note:
• This dword was added in CNC version 1.9 so it did not exist in
earlier versions.
This function allows one or several axes with the handwheel in AUTOmatic
mode to move. The movement of the selected axis results in the introduction of
an offset (or correction) to the programmed movement. The axis could be
selected via PLC.
Handwheel blocking means that the compensation (or offset) set with the
handwheel is still active, but the handwheel input will not be processed any
longer.
Coding:
10 9 8 7 6 5 4 3 2 1
0 = handwheel
blocked
1 = handwheel
movement
X 0 = axis selection
switch off
X 1 = axis selection
1 X = handwheel factor
0 0 0 0 0 = 1st axis
0 0 0 0 1 = 2nd axis
0 0 0 1 0 = 3rd axis
0 0 0 1 1 = 4th axis
... ... ... ... ... .......
1 1 1 1 1 = 32nd axis
The function is only active at the CNC when enabled (by the BCD code that
enables the handwheel offset in automatic mode).
Notes:
• The interface signal will be processed statically so the axis
selection is only active when bit 2 is set.
• When the axis selection via PLC-interface signal is not active (bit
2 = 0), the axis selection via NC-programming will be active
automatically.
• The handwheel factor can only be changed by writing with
another factor.
The handwheel factor cannot be deactivated like the axis
selection.
The factor defined last is used for all axes.
Note:
• The required machine parameters (in the Handwheel group) are :
HandwheelBCDAppl, HandwheelBCDNo (this value specifies
the set of M-codes that control the handwheel in automatic mode)
and HandwheelPLCByte (this value enables this dword to the
CNC).
There is a signal (in this dword) allowing the PLC to disable each handwheel.
Each handwheel has an interface signal defined for it. The CNC can handle up
to three handwheels.
Bit
30 IN_HDW1_DISABLE Disable first handwheel
31 IN_HDW2_DISABLE Disable second handwheel
32 IN_HDW3_DISABLE Disable third handwheel
These signals give the PLC control over the individual handwheels.
IN_HDW1_DISABLE If set to 1, the first handwheel is disabled.
IN_HDW2_DISABLE If set to 1, the second handwheel is disabled.
IN_HDW3_DISABLE If set to 1, the third handwheel is disabled.
This PLC action affects the handwheel regardless of whether the handwheel is
a free or assigned to a specific axis and works in both Manual and Automatic
modes.
This PLC command to the CNC can be used to prevent the Manual Mode
handwheel axis selection and its subsequent handwheel activation for the first
free handwheel. Examples for this PLC action with IN_HDW1_DISABLE are:
• The PLC should allow the handwheel activation only through input
switches to PLC logic not through the operator interface. In this case, the
PLC handles the handwheel activities with this dword (IN_HDWHEEL) or
with IN_EXTMODE (see 2.3.9.1.2) or with the HANDWHEEL functions
(see 3.18 through 3.18).
In this dword, the PLC is able to provide or manage the digital input (or probe)
signals for the CNC as it manages axis motion with probe input(s). This
optional feature is sometimes called feedrate influencing with digital signals.
The first word of this dword contains the sixteen digital inputs from the PLC.
Bit
1 INFSIGNAL01 PLC probe digital input 1
2 INFSIGNAL02 PLC probe digital input 2
3 INFSIGNAL03 PLC probe digital input 3
4 INFSIGNAL04 PLC probe digital input 4
... ... ...
16 INFSIGNAL16 PLC probe digital input 16
Value Meaning
---------------------------------------------------------------------------------------------------
0 Input signal is not active.
1 Input signal is active.
0→ 1 If the CNC is monitoring this particular probe input, then the CNC will
react to it as directed (G170, G171, G172).
1→ 0 No direct effect.
Note:
• The required machine parameter (in the ProbingLogic group) is:
FastIOPLCByteIO. This parameter configures whether the PLC
can provide these input signals to the CNC. If this parameter is 0,
then the above signals are ignored by the CNC.
The second word of this dword contains the mask for the sixteen digital inputs
from the PLC.
Bit
17 INFMASK01 Probe digital input 1 mask
18 INFMASK02 Probe digital input 2 mask
19 INFMASK03 Probe digital input 3 mask
20 INFMASK04 Probe digital input 4 mask
... ... ...
32 INFMASK16 Probe digital input 16 mask
Value Meaning
---------------------------------------------------------------------------------------------------
0 Input signal is not enabled – the mask is preventing it from being active.
1 Input signal is enabled – the mask is allowing it to become active.
0→ 1 No direct effect.
1→ 0 No direct effect.
Note:
• The required machine parameter (in the ProbingLogic group) are:
FastIOPLCByteBitMask and FastIOPLCByteOutMask. These
parameters configure whether the PLC can provide this mask of
these input signals to the CNC. If these parameters are 0, then
the above signals are ignored by the CNC.
In this dword, the PLC is able to specify whether a digital input (or probe) signal
to the CNC is from the CNC (where the byte number is read directly) or from
the PLC (as an interface signal). This optional feature is sometimes called
feedrate influencing with digital signals.
This dword contains the sixteen select signals that correspond to the sixteen
digital inputs.
Bit
1 INFSELECT01 PLC probe digital input select 1
2 INFSELECT02 PLC probe digital input select 2
3 INFSELECT03 PLC probe digital input select 3
4 INFSELECT04 PLC probe digital input select 4
... ... ...
16 INFSELECT16 PLC probe digital input select 16
Value Meaning
---------------------------------------------------------------------------------------------------
0 Input signal is not active – CNC is the source of the probe input signal.
1 Input signal is active – PLC is the source of the probe input signal.
0→ 1 No direct effect.
1→ 0 No direct effect.
Note:
• The required machine parameter (in the ProbingLogic group) are:
FastIOByteAppl1 and FastIOByteAppl2 (these two parameters
define the byte numbers for the CNC to directly access the probe
input signals) as well as FastIOPLCByteIO (this parameter
enables the PLC to provide the probe input signals to the CNC).
If these parameters do not allow both the CNC and PLC to
provide probe input signals, then the above signals are ignored
by the CNC as there is no selection required for the signal
source.
In this dword the plus direction enable signals for multiple axis jogging are
summed for all axes, to a maximum of 32:
Bit
1 IN_JPLS_01 Multiple axis jog in Plus direction 1st axis
2 IN_JPLS_02 Multiple axis jog in Plus direction 2nd axis
3 IN_JPLS_03 Multiple axis jog in Plus direction 3rd axis
4 IN_JPLS_04 Multiple axis jog in Plus direction 4th axis
...
32 IN_JPLS_32 Multiple axis jog in Plus direction 32nd axis
The individual feed enable signals are independent of each other and can
therefore be treated separately. These plus direction signals are interpreted at
the same time as the minus direction signals (IN_JMS_01 – 32) for the control
of jogging for multiple axes.
To control whether the multiple axes are jogging in continuous or incremental
mode, the PLC application must establish the appropriate external CNC
operating mode (see IN_EXTMODE, chapter 2.3.9.1.3). When jogging multiple
axes in incremental mode, then the PLC application can change the default
incremental jog distance (1 mm or 0.03937 in) using the function
SET_JOG_INCREMENTS (see 3.47).
Value Meaning
---------------------------------------------------------------------------------------------------
0 Axis jog in plus direction (simultaneous with other axes) disabled
1 Axis jog in plus direction (simultaneous with other axes) enabled
0→ 1 No additional effect.
1→ 0 No additional effect.
Note:
• The PLC application must have IN_EXTMODE set to Manual Mode
operation with no single axis positioning and a feed stage (i.e., a
value of 1 for first feed stage; see 2.3.9.1.2) for these multiple-axis
jog commands to cause motion.
• Both the plus direction and the minus direction enables for a specific
axis (IN_JPLS_xx and IN_JMNS_xx) cannot be set at the same
time.
• This dword was added in CNC version 1.9 so it did not exist in
earlier versions.
In this dword the minus direction enable signals for multiple axis jogging are
summed for all axes, to a maximum of 32:
Bit
1 IN_JMNS_01 Multiple axis jog in Minus direction 1st axis
2 IN_JMNS_02 Multiple axis jog in Minus direction 2nd axis
3 IN_JMNS_03 Multiple axis jog in Minus direction 3rd axis
4 IN_JMNS_04 Multiple axis jog in Minus direction 4th axis
...
32 IN_JMNS_32 Multiple axis jog in Minus direction 32nd axis
The individual feed enable signals are independent of each other and can
therefore be treated separately. These minus direction signals are interpreted
at the same time as the plus direction signals (IN_JPLS_01 – 32) for the control
of jogging for multiple axes.
To control whether the multiple axes are jogging in continuous or incremental
mode, the PLC application must establish the appropriate external CNC
operating mode (see IN_EXTMODE, chapter 2.3.9.1.3). When jogging multiple
axes in incremental mode, then the PLC application can change the default
incremental jog distance (1 mm or 0.03937 in) using the function
SET_JOG_INCREMENTS (see 3.47).
Value Meaning
---------------------------------------------------------------------------------------------------
0 Axis jog in minus direction (simultaneous with other axes) disabled
1 Axis jog in minus direction (simultaneous with other axes) enabled
0→ 1 No additional effect.
1→ 0 No additional effect.
Note:
• The PLC application must have IN_EXTMODE set to Manual Mode
operation with no single axis positioning and a feed stage (i.e., a
value of 1 for first feed stage; see 2.3.9.1.2) for these multiple-axis
jog commands to cause motion.
• Both the plus direction and the minus direction enables for a specific
axis (IN_JPLS_xx and IN_JMNS_xx) cannot be set at the same
time.
• This dword was added in CNC version 1.9 so it did not exist in
earlier versions.
This dword contains control signals from the PLC to the NC block interpreter.
Bit
1 IN_CANCELBLK Cancel the active NC block
2 IN_SINGLE_STEP Put the program in single step mode
3 IN_IPR_DO_STEP Single step the active part program
4 IN_PLC_SET_AXES Set an axis position
5 IN_HIDE_IMBLK Hide intermediate blocks
6 IN_HIDE_INBLKn Prevent operator hide intermediate blocks
7 IN_HIDE_CYBLK Hide cycle blocks
8 IN_HIDE_CYBLKn Prevent operator hide cycle blocks
9 IN_FINISH_ACT_BLK Finish the active block
10 IN_DEL_MAN_OFFS Delete manual offsets (from jog)
11 IN_MP_CHANGE_ACK Acknowledge machine parameter change
12
... Free
32
Note: This dword was added in CNC version 2.1 so it did not exist in earlier
versions. The signals for bits 2 and 3 were added in CNC version 2.2 so they
did not exist in earlier versions. The signals for bits 4 through 11 were added in
CNC version 2.3 so they did not exist in earlier versions.
This signal (when set) is a command from the PLC to the NC block interpreter
to cancel the active NC block in the part program and to proceed to the next
NC block, if there is one.
Value Meaning
---------------------------------------------------------------------------------------------------
0 No command to the NC block interpreter
1 Command to cancel the active block is active to the NC block interpreter
This signal is handled using a defined handshake with the CNC. When the PLC
requires the active block to be cancelled, it will set IN_CANCELBLK to TRUE.
When the CNC responds with ON_CANCELBLK (see 2.4.25.1) set to TRUE
(acknowledging the command), then the PLC must reset IN_CANCELBLK to
FALSE.
This signal directs the CNC to place the active NC part program in a single step
mode. This mode is helpful when debugging a part program having many cycle
blocks. Those blocks are handled as part of the block look ahead calculations
so normally it is not possible to do those cycle blocks one at a time. This signal
puts the control in a single step mode and the IN_IPR_DO_STEP signal is the
request to the CNC to do the next block, one step at a time.
Value Meaning
---------------------------------------------------------------------------------------------------
0 No command to the CNC; normal part program operations
1 Command to CNC for the active part program in single step mode
This signal is handled using a defined context for the CNC. The CNC is in
Automatic mode, sequential blocks (i.e., ON_AUTO is on, see 2.4.1.4), usually
by that operator selection with its associated soft key. When the PLC requires
the active part program to be put in single step mode, it will set
IN_SINGLE_STEP to TRUE. The CNC will respond with ON_SINGLE_STEP
(see 2.4.25.4) at TRUE indicating the single step mode is active.
When the PLC is done with this mode, it will reset IN_SINGLE_STEP to
FALSE. The CNC will respond with ON_SINGLE_STEP at FALSE indicating
the single step mode is no longer active. At that time, if there are remaining
blocks in the part program, look ahead processing of those blocks will
commence. Whether they are executed depends on the auto-sequential
(ON_AUTO) or auto-single block (ON_SINGLE) mode of the CNC.
This signal directs the CNC to process only one more block from the active NC
part program. This command is recognized only when in the single step mode
(ON_SINGLE_STEP is on; see 2.4.25.4). This single stepping is helpful when
debugging a part program having many cycle blocks. Those blocks are handled
as part of the block look ahead calculations so normally it is not possible to do
those cycle blocks one at a time. This signal allows the control of each part
program block in a single step mode. The operator can monitor the actual block
preprocessing with the operator selection of Automatic mode - Test mode –
Interpolator blocks. If this special test mode display is not activated, the cycle
blocks are not displayed as expected in this single step mode. Cycle blocks are
normally not displayed beyond the bottom block of the three program blocks
shown on the display. With this test mode selection the cycle blocks will be
seen as they sequentially (one single step at a time) progress up the display.
This special single step mode is not the same as single block mode
(ON_SINGLE; see 2.4.1.4). This is a special test mode possible in the CNC to
help debug part programs having cycle blocks for calculations. Cycle blocks
are uniquely identified by their syntax. They always start with *N to indicate a
calculation block. Motion can never occur with a cycle block. Normal part
programs can be executed done one block at a time, just as on most other
CNCs, when Automatic Single block mode is activated.
Value Meaning
---------------------------------------------------------------------------------------------------
0 No step command to the CNC
1 Single step command to CNC; the next block in the active part program
will be preprocessed by the interpreter in this single step mode
This signal is handled using a defined context for the CNC. The CNC is in
Automatic mode, sequential blocks (i.e., ON_AUTO is on, see 2.4.1.4), usually
by that operator selection with its associated soft key. When the PLC requires
the active part program to be put in single step mode, it will have set
IN_SINGLE_STEP to TRUE. The CNC will respond with ON_SINGLE_STEP at
TRUE indicating the single step mode is active.
This signal is handled using a defined handshake with the CNC. When the PLC
requires the next block to be processed, it will set IN_IPR_DO_STEP to TRUE.
When the CNC responds with ON_IPR_DO_STEP set to TRUE
(acknowledging the command), then the PLC must reset IN_IPR_DO_STEP to
FALSE.
When using this PLC signal for debugging cycle blocks (i.e., a block starting
with *N; these are calculation blocks and cannot result in motion) in a part
program with the Interpolator blocks test mode display active, notice the CNC’s
displayed behavior. When a cycle block appears on the bottom of the three
blocks on the display, at that time it has already been processed by the CNC.
Therefore it is important to know, by watching the block numbers, what is the
next block, not yet visible, to know what will be the next cycle block to be
processed. If the cycle block is visible it has already been processed.
When a non-cycle block (i.e., a block without the *N) appears on the display
(the bottom of the three blocks shown), it will be processed into the dynamic
block buffer. Upon its scrolling off the top of the display it will be processed as
the active block by the CNC, but only if the CNC has been waiting for the next
block to execute. It is possible for the IN_IPR_DO_STEP to be consecutively
toggled so that a number of motion blocks are processed into the dynamic
block buffer. If an early NC block will take some time to complete its motion
then it is possible for the operator to single step through the rest of the program
with this mechanism, perhaps with many other motion blocks seen to scroll
through the display. This single stepping is not affecting the actual execution of
the motion blocks. Its intent is to throttle the execution of the cycle blocks to
monitor their execution. If the operator does not have the Interpolator blocks
test mode display active, then the three active blocks on the Automatic mode
display are still as before, even in this single step mode: the active block is the
top block and those two below it are waiting to execute.
This dword enables the possibility to interlock the fast output signals (reference
the machine parameter BCDByteMaskIndex in the LaserPowerControl group
and also reference the information regarding the feature Laser Power Control).
Bit
1 IN_FASTM_BIT1 Enable/disable bit 1
2 IN_FASTM_BIT2 Enable/disable bit 2
3 IN_FASTM_BIT3 Enable/disable bit 3
4 IN_FASTM_BIT4 Enable/disable bit 4
5 IN_FASTM_BIT5 Enable/disable bit 5
6 IN_FASTM_BIT6 Enable/disable bit 6
7 IN_FASTM_BIT7 Enable/disable bit 7
8 IN_FASTM_BIT8 Enable/disable bit 8
9
... Free
32
Value Meaning
---------------------------------------------------------------------------------------------------
0 Fast output signal is disabled
1 Fast output signal is enabled
This dword provides a number of state signals for the PLC to work with the
CNC on tool management.
Bit
1 IN_TOOLRELEASE Tool change completed successfully
2 IN_TOOLCHANGE Active tool has been returned to the
magazine
3 IN_TOOLPOS Request the tool magazine to move to a
specific position (for CNC internal axis)
4 IN_TOOLACTIVE Tool life of the active tool is decremented
(in minutes)
5 IN_TOOLREMOVE Not used
6
... Free
32
Some of these signals are also described in the tool change descriptions below
(see 2.3.26.1).
Value Meaning
---------------------------------------------------------------------------------------------------
0 No command to the CNC regarding the new tool
1 Command to CNC to update tool table because new tool is in the spindle
This signal is handled using a defined handshake with the CNC for tool data
management. After the PLC sets IN_TOOLRELEASE to update the tool table,
the CNC will respond with ON_TOOLANSWER.
Value Meaning
---------------------------------------------------------------------------------------------------
0 No command to the CNC regarding the old tool
1 Command to CNC to update tool table because old tool has returned to
its location in the magazine
This signal is handled using a defined handshake with the CNC for tool data
management. After the PLC sets IN_TOOLCHANGE to update the tool table,
the CNC will respond with ON_TOOLSTART.
PLC Interface Manual
page 129 / 304
MACHINEMATE®
Value Meaning
---------------------------------------------------------------------------------------------------
0 No command to the CNC regarding the tool magazine
1 Command to CNC to move tool magazine to a specified location
This signal is handled using a defined handshake with the CNC for tool data
management. After the PLC sets IN_TOOLPOS for the CNC to move the tool
magazine to the location in IN_TOOLREQ, the CNC will respond with
ON_TOOLPOINT when it has reached the requested tool location.
Value Meaning
---------------------------------------------------------------------------------------------------
0 No command to the CNC regarding the tool in the spindle
1 Command to CNC to decrement the tool life for the tool in the spindle
The PLC will set the IN_TOOLACTIVE according to the desired rules for
tracking tool life (or tool wear). The rules will vary but typically the tool in the
spindle (i.e., the active tool) will accumulate wear (or its remaining life will be
decremented when IN_TOOLACTIVE is TRUE) when these conditions are all
true:
a) the tool has a projected tool life (READ_PLANNED_LIFE, see 3.30),
b) the spindle is turning (NOT ON_STAND01), and
c) the machine is moving by the NC part program but not at rapid
(ON_CYCLEON AND NOT ON_RAPID AND NOT ON_STAND).
This value (an integer not a bit-coded dword) provides the CNC with the current
magazine location.
The PLC should always set the IN_TOOLPLACE value to the actual magazine
location. The CNC will check this magazine position during the tool change
signal handshake (both at IN_TOOLCHANGE when the spindle tool returns to
the magazine and at IN_TOOLRELEASE when the new tool is taken from the
magazine and put into the spindle).
This value (an integer not a bit-coded dword) provides the CNC with the tool
table location.
The PLC will set the IN_TOOLREQ value to the desired magazine location
when the IN_TOOLPOS signal will be used for the PLC to request the CNC to
move the servo driven magazine.
Depending on the machine type and location coding, the tool change must
be performed differently. The procedures for the tool changes for several
different machine types with location coding are described in this chapter.
Note:
There are two common tool management strategies:
• fixed location tools, where each tool returns to its dedicated pocket,
• variable location tools, where tools migrate in the magazine during
tool changes.
With fixed location tools, there is an assumed procedure for the tool change
processing.
1. If there is a tool in the spindle, the tool magazine would be at the correct
location for that active tool. With fixed location tooling, usually a tool
preselect is not performed (mechanically or in the part program).
2. Upon the M06, the tool in the spindle is returned to its original tool
magazine location. The CNC will move the tool data accordingly.
3. After the tool is returned to the magazine, then the CNC indicates to the
PLC the location of the next tool. Depending on the magazine control,
the PLC (non-servo controlled) or the CNC (servo controlled) will move
the magazine.
4. When the magazine is in position, then the tool is moved from the
magazine to the spindle. The CNC will move the tool data accordingly.
The above sequence is illustrated with a flow chart below. Some of the
signals in IN_TOOL and some of the signals in ONTOOL are represented.
With variable location tools, there is a different assumed procedure for the
tool change processing:
1. With variable location tooling, a tool preselect is often performed so that
the tool change time is minimized. Therefore the next tool is usually
ready prior to the M06. When the T-code is the program, the CNC
indicates to the PLC the location of the next tool. Depending on the
magazine control, the PLC (non-servo controlled) or the CNC (servo
controlled) will move the magazine.
2. Upon the M06, if no tool has been selected prior to this block, the
specified tool will be found in the tool magazine and moved to the tool
change position.
3. After the next tool is ready, the PLC exchanges the tool in the spindle
with the tool in the magazine. The CNC will move the tool data
accordingly.
In this situation, the magazine is controlled by the PLC not the CNC (as an
axis). In this case, the location number and the optimal traversing direction
are submitted from the CNC to the PLC via the PLC-CNC interface.
Note:
After inserting the tool into the spindle, the magazine is not moved anymore
by the PLC until the tool is re-inserted into the magazine using an M06
operation.
The PLC always has to set the IN_TOOLPLACE value to the actual
magazine position. The CNC checks the magazine position during the tool
change.
T4 is programmed.
T4 shall be inserted into the spindle. A tool is still present in the spindle. For
the tool change it is assumed that the magazine location is already
positioned to the spindle tool’s pocket.
CNC PLC
T4 (BCD output) Prepare to return old tool to
the magazine.
CNC determines the magazine location
number (ON_TOOLPLACE value) and the
traversing direction (ON_TOOLDIR signal)
and submits this information to the PLC via
the interface.
M06 (BCD output) Reset the IN_TRANSF signal.
Perform the tool change with
the old tool.
Set the IN_TOOLCHANGE
signal.
CNC updates the tool table as the old tool
is not active anymore. CNC sets the
ON_TOOLSTART signal.
PLC directs the magazine
controller to move the tool
magazine to the new location.
Upon arrival, PLC inserts the
new tool in spindle.
Set the IN_TOOLRELEASE
signal.
CNC updates the tool table as tool T4
becomes active. Compensations are
updated. CNC sets the
ON_TOOLANSWER (Acknowledgement)
signal.
T0 programmed
The active tool shall be returned to the tool magazine. No new tool shall be
inserted.
CNC PLC
T0 (BCD output) Prepare to return old tool to
the magazine.
M06 (BCD output) Reset the IN_TRANSF signal.
Perform the tool change with
the old tool.
Set the IN_TOOLCHANGE
signal.
CNC updates tool table data. CNC sets the
ON_TOOLANSWER (acknowledgment)
signal.
The tool change has been
performed.
Set the IN_TRANSF signal (to
allow next block) .
Reset the IN_TOOLCHANGE
signal (to indicate
completion).
T4 is programmed
T4 shall be inserted into the spindle. A tool is still present in the spindle.
For the tool change it is assumed that the magazine location is already
positioned to.
CNC PLC
T4 (BCD output) Prepare to return the old tool
to the magazine.
M06 (BCD output) Reset the IN_TRANSF signal.
Perform the tool change with
the old tool.
Set the IN_TOOLCHANGE
signal.
CNC moves to new magazine location.
CNC sets the ON_TOOLPOINT signal.
CNC sets the ON_TOOLINPOS signal.
Tool T4 is gripped and
inserted into the spindle.
Set the IN_TOOLRELEASE
signal.
CNC updates the tool table as tool T4 is
activated. Compensations are updated.
CNC sets the ON_TOOLANSWER
(acknowledgment) signal.
Tool change has been
successfully been performed.
Set the IN_TRANSF signal (to
allow next block) .
Set both the
IN_TOOLCHANGE and
IN_TOOLRELEASE signals
(to indicate completion).
Note:
The ON_TOOLSTART signal is not set by the CNC when the conditions
are not correct. For the spindle tool to return to the magazine, the
magazine must be in the correct position for the active tool (via
IN_TOOLPLACE) and the respective tool types for the tool locations must
be the same (between 100 and 199, decimal, to indicate the tool is in the
spindle). An error message is issued if either condition is wrong.
The ON_TOOLANSWER (acknowledgment) signal is not set by the CNC if
the desired tool could not be activated by the CNC. An error message is
issued by the CNC in this case and the PLC should not set the
IN_TRANSF signal. This prevents further NC block processing.
If the ON_TOOL_IS_ACT (selected tool is active, in the spindle) is set by
the CNC, then the PLC probably should not begin the tool change
sequence with the IN_TOOLCHANGE signal. The ON_TOOL_IS_ACT
indicates that the CNC concluded that no tool change is not required as no
tool data movement is required.
T0 programmed
The active tool shall be returned to the tool magazine. No new tool shall be
inserted.
CNC PLC
T0 (BCD output) Prepare to return the old tool
to the magazine.
M06 (BCD output) Reset the IN_TRANSF signal.
Perform the tool change with
the old tool.
Set the IN_TOOLCHANGE
signal.
CNC updates tool table as no tool is active
in spindle.
CNC sets the ON_TOOLANSWER
(acknowledgment) signal.
The tool change has been
performed.
Set the IN_TRANSF signal (to
allow next block) .
Reset the IN_TOOLCHANGE
signal (to indicate
completion).
The tool data management for variable location coded tools is very similar to
that for fixed location coded tools.
In this situation, the magazine is controlled by the PLC not the CNC (as an
axis). In this case, the location number and the optimal traversing direction
are submitted from the CNC to the PLC via the PLC-CNC interface.
Note:
The magazine is moved to get the new tool so that a swap between the
spindle tool and the previous tool occurs. After this swap, the magazine is
not moved anymore by the PLC.
The PLC always has to set the IN_TOOLPLACE value to the actual
magazine position. The CNC checks the magazine position during the tool
change.
T4 is programmed.
T4 shall be inserted into the spindle. A tool is still present in the spindle. For
the tool change it is assumed that the magazine location is already
positioned to the spindle tool’s pocket.
CNC PLC
T4 (BCD output) Prepare to return old tool to
the magazine.
CNC determines the magazine location PLC moves the magazine to
number (ON_TOOLPLACE value) and the the specified position following
traversing direction (ON_TOOLDIR signal) the specified direction. When
and submits this information to the PLC via the magazine is in the correct
the interface. position, the PLC sets the
IN_TOOLPLACE (to be equal
to ON_TOOLPLACE).
M06 (BCD output) Reset the IN_TRANSF signal.
Will perform the tool change
with the old tool.
Set the IN_TOOLCHANGE
signal to begin.
CNC updates the tool table as the old tool
is not active anymore. CNC sets the
ON_TOOLSTART signal.
PLC swaps the spindle tool
with the new tool. The old tool
(from the spindle) is placed in
the new tool’s magazine
location.
Set the IN_TOOLRELEASE
signal.
CNC updates the tool table as tool T4
becomes active (in spindle).
Compensations are updated.
CNC sets the ON_TOOLANSWER
(Acknowledgement) signal.
T0 programmed
The active tool shall be returned to the tool magazine. No new tool shall be
inserted.
The same procedure as above is followed by both the CNC and PLC
because the CNC must find an empty magazine location for the tool in the
spindle. Upon the M06, the PLC must move the spindle tool into the empty
magazine location. The same interface signals are used to indicate when
this task is completed.
The PLC can request the moving of the magazine to a specific tool location
from the CNC if the CNC controls the axis. To do so, the PLC stores the
required location number in the IN_TOOLREQ value. Then the PLC sets
the IN_TOOLPOS signal for the request. The PLC signal must remain set
until the ON_TOOLPOINT signal is received from the CNC.
PLC CNC
Store the desired location number in the
IN_TOOLREQ value.
Set the IN_TOOLPOS signal.
CNC moves the magazine to
the position in IN_TOOLREQ.
CNC sets the
ON_TOOLPOINT signal if
successful or
if not possible CNC sets the
ON_TOOLERROR signal.
Note:
After issuing a positioning request, the PLC must request a move to the old
tool location if a tool is present in the spindle during the positioning request.
For the next tool change and with location coded tools it is assumed that
the magazine is still located at the old location.
These tool management signals cause interaction with the CNC tool data
tables. This interaction could affect whether or not these IN_TOOL signals are
even required in the PLC application.
There are two mechanisms available to the CNC operator and CNC
programmer for tool data.
In most applications, the tool length compensation is entered in the H-table
(also called the Length correctors) and the tool radius compensation is entered
in the D-table (also called the Path correctors). The part program will contain
the H-code and the D-code for each tool (which is identified by its T-code). For
example, a part program block could be something like:
N050 T01 D05 H07
These CNC data tables also include wear offset values, so that the operator
can maintain the original value (perhaps from a tool presetter) and just manage
a small change to those initial values, with this small change going into the
appropriate wear offset value. Depending on the machine configuration, the H-
table will have one or two axes of compensation where typically a milling
machine has the length compensation only in Z (only one axis with
compensation) while in a lathe (for turning) the length compensation is both in
X and Z (to accommodate the variations in individual turret positions so two
axes with compensation).
With the common D/H programming applications, with fixed location tooling and
with no tool life management, the PLC will typically not use the tool
management signals. The tool table is set up for each T-number to match its
pocket number and the operator does not use the table after that. The tool
table does not have to be updated for the spindle location to indicate the active
tool number. The PLC logic can present such status information to the operator
in a cycle parameter if required.
These tool management signals are used when tool life management is desired
(so the CNC requires the active tool information to update its remaining tool
life) or when variable location tooling is used (so the CNC updates the tool
table as the tools migrate into different locations).
The alternate, much less common approach is for the operator to enter the tool
length and tool radius compensation values directly into the tool table. For each
tool there is a Geo.Corr.D column for the radius compensation value and there
is a Geo.Corr.H column for the length compensation value. The tool table does
not contain wear offset values for these compensations nor is there an entry for
a second axis of tool length compensation nor is there an entry for a wheel or
tool tip orientation. For example, a part program block with this programming
approach could be something like:
N050 T05 D01 H01
With this approach D1 and H1 are always used for every length and path
compensation activation rather than the program uniquely identifying a
compensation value within the D or H-table. With this approach the operator is
entering the compensation values into the tool table, not in the D or H-tables.
Upon the movement of a tool into the spindle (using the tool management
signals in IN_TOOL) the CNC will write the Geo.Corr.D and Geo.Corr.H values
into the D1 and H1 values accordingly.
To support this alternate programming approach, the CNC will always write the
Geo.Corr.D and Geo.Corr.H values into the D1 and H1 values every time
IN_TOOLRELEASE indicates that the new tool is now in the spindle.
Therefore, if this alternate approach to tool data is not being used (in other
words, the usual approach is assumed where the part program will indicate the
desired D-code or H-code rather than D1 and H1 always in use) then the PLC
must save the current D1 and H1 values at the start of the tool change
sequence (before IN_TOOLRELEASE is set to true) and then the PLC must
restore those saved values to D1 and H1 after the tool change sequence has
completed. If the PLC does not perform this save/restore, the D1 and H1 will
have the Geo.Corr.D and Geo.Corr.H values for the tool just placed in the
spindle.
This save and restore procedure for D1 and H1 is required only if these tool
management signals (specifically IN_TOOLRELEASE) are being used.
The following pages contain a flow chart for the various tool management
signals for fixed location tooling.
START
Txxx
IN_TOOLPLACE:= ActToolPlace
CNC determines new tool
location and transfers
location and rotation
direction to PLC. Note:
ON_TOOLPLACE is a
DINT
NewToolPlace:=ON_TOOLPLACE
Direction:= ON_TOOLDIR
Yes
IN_TRANSF= FALSE
Is spdl tool in
No
magazine
Yes
IN_TOOLCHANGE:=TRUE
ON_TOOLSTART is CNC
acknowledge that PLC
should move magazine to
next tool location.
Is NOTE: ON_TOOLSTART
Is Txxx = is never set TRUE if Txxx =
ON_TOOLSTART No No
0 0
TRUE?
Yes
Is TX Done? No
Yes
PLC tellsl CNC that TX is done by
setting IN_TOOLRELEASE = TRUE
CNC updates tool table to activate
Yes new tool and write tool comps to
comp table. After this is complete
CNC will set ON_TOOLANSWER.
IN_TOOLRELEASE = TRUE
CNC sets
ON_TOOLANSWER =
Is TRUE when CNC
ON_TOOLANSWER acknowledges that TX is
No done
True or Txxx
=0
Yes
ActToolPlace = ON_TOOLPLACE
IN_TOOLACTIVE should
IN_TRANSF = TRUE be set when tool timer
Is Txx = IN_TOOLCHANGE = FALSE needs to increment
No
0 IN_TOOLRELEASE = FALSE
IN_TOOLACTIVE=TRUE
Yes
IN_TRANSF = TRUE
IN_TOOLCHANGE = FALSE
DONE
This dword provides a number of state signals for the PLC to work with the
CNC on several five-axis functions.
Bit
1 IN_NO_TCP Switch Off Tool Center Point (TCP)
programming (like a G180)
2 IN_TCP_ACTIVE Switch On TCP programming (like a G181)
3 IN_TCP_COORD Switch On TCP programming with a
rotated corrdinate system (like a G182)
4 IN_COORD_DEF Definition of the rotated coordinate system
(like a G183 but without the information
of direction)
5 IN_BACK_TRAFO_OFF Switch Off the back transformation
6 IN_BACK_TRAFO_ON Switch On the back transformation
7
... Free
32
Each of these state-signals will take effect only on its leading edge transition in
the interface.
0→ 1 The CNC will perform the requested action. However, the following two
conditions must be met or the signal will be ignored by the CNC.
- No NC program is active,
- There is no motion in the machine.
If the conditions are met after the signal has been applied, no action will
occur. The CNC will react only after another leading edge is detected
when the required conditions are met.
1→ 0 No direct effect.
Bit
1 ON_CYCLEON CYCLE ON
2 ON_STOPNCn FEED HOLDn (CYCLE STOP)
3 ON_STARTNC NC-START (CYCLE START)
4 ON_AUTO CNC-operating mode AUTOMATIC SEQUENTIAL
BLOCK
5 ON_SINGLE CNC-operating mode AUTOMATIC SINGLE BLOCK
6 ON_MDI CNC-operating mode MDI
7 ON_JOGMODE CNC-operating mode MANUAL
8 ON_HOMING CNC-operating mode HOMING
9 ON_INC_JOG INCREMENTAL JOG MODE
10 ON_CONT_JOG CONTINUOUS JOG MODE
11 ON_CNC_CHAN_ACT CNC STATION/CHANNEL IS ACTIVE ON HMI
12 ON_EMERG EMERGENCY STOP FROM CNC
13 ON_PRG_STP PROGRAM STOP ( M00 / M01 )
14 ON_PRG_END END OF PROGRAM ( M02 / M30 )
15 ON_RESET CONTROL RESET
16 ON_NO_CNTR NO FEEDBACK CONTROL
17 ON_HOME_OK HOME POSITION OK
18 ON_NCEROR NC PROGRAM ERROR
19 ON_ADDKEY1 AUX. PUSH-BUTTON 1
20 ON_ADDKEY2 AUX. PUSH-BUTTON 2
21 ON_PROGRAM PROGRAM
22 ON_ADMISSN ADMISSION
23 ON_PANEL TEACH PANEL ACTIVE
24 ON_RETREAT RETREAT (RETURN TO PATH)
25 ON_BACKW BACKWARD
26 ON_TEACHED TEACH-EDITOR
27 ON_BLKCHNG BLOCKCHANGE
28 ON_M1STOP WILL STOP ON M01
29 ON_WITH_MOVE AXES MOVE DURING PROGRAM
30 ON_G01_OVER G01 OVERRIDE ACTIVE
31 ON_BLOCK_DEL BLOCK DELETE (/) ACTIVE
32 ON_PITCHERR PITCH ERROR COMP ACTIVE
Note: The signals for bits 9, 10, 28 through 32 were added in CNC version 2.0
so they did not exist in earlier versions.
This signal is used to inform the PLC Program, whether a function is active in
the CNC, which has consequences for the machine. This particularly includes
functions like
- Processing of a NC PROGRAM
- Processes of axes
- Initiation of a "start" (see chapter 2.3.1.2 "dword 1 IN_START
(NC cycle start)")
Value Meaning
---------------------------------------------------------------------------------------------------
0 Cycle on is not active
1 Cycle on is active
1→ 0 No further causes
Note:
• This signal can be used in order to monitor the execution of a
PLC Interface Manual
page 145 / 304
MACHINEMATE®
"start" which was requested via the signal IN_START (NC cycle
start, see chapter 2.3.1.2 "dword 1"). When ON_CYCLEON
receives the value 1, the "start" is executed and IN_START (NC
cycle start) should be set again to the value 0.
• This signal is also valid, when the test operation "without motion"
is active.
This signal is used to inform the PLC Program if a feed hold is required by the
CNC itself. This is possible if a stop push-button connected to the control (i.e.,
the MCP, Machine Control Panel) is used.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Feed rate hold demanded
1 Feed rate hold not demanded
0→ 1 - No further causes
1→ 0 No further causes
Note:
• Unless homing, the CNC does not execute a feed rate hold
automatically, but must be ordered to perform a feed rate hold via
the NC input signal IN_STOPn (feed hold, see chapter 2.3.1.3
"dword1"). The NC output signal ON_STOPNCn (feed hold)
therefore displays only one request to the PLC Program, to
initiate a feed rate hold. Whether this is actually performed is the
responsibility of the PLC Program. Reference the notes in
chapter 2.3.1.3 "dword 1, IN_STOPn (feed hold)".
This signal is used to inform the PLC Program when a program "start" is
demanded by the CNC itself. This is possible if a start push-button connected
to the control (i.e., the MCP, Machine Control Panel) is used.
Value Meaning
---------------------------------------------------------------------------------------------------
0 "Start" is not demanded
1 "Start" is demanded
0→ 1 - No further causes
1→ 0 No further causes
Note:
• The CNC cannot execute a "start" automatically, but can only be
commanded to perform a "start" via the NC input signal
IN_START (NC cycle start, see chapter 2.3.1.2 "dword1"). The
NC output signal ON_STARTNC (NC cycle start) therefore
displays only one request to the PLC Program, to initiate a "start".
Whether this is actually performed, is the responsibility of the
PLC Program. IMPORTANT: Refer to the notes in chapter
2.3.1.2 "dword 1, IN_START (NC cycle start)"!
The PLC Program is informed which CNC operating mode in the CNC is active
via these 5 Bits. From these 5 bits only one bit can have the value 1 at a time
and the rest will have the value 0. If all 5 bits have the value 0, the operating
mode memory is active in the CNC.
Coding:
8 7 6 5 4 3 2 1 Bitnumber
X X X x = arbitrary value
This signal is used to inform the PLC Program that the Incremental Jog Mode
is active.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Incremental Jog mode is not active
1 Incremental Jog mode is active
This signal is used to inform the PLC Program that the Continuous Jog Mode is
active.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Continuous Jog mode is not active
1 Continuous Jog mode is active
This signal is used to inform the PLC Program that this CNC Station/Channel is
active on the current operator display (HMI).
Value Meaning
---------------------------------------------------------------------------------------------------
0 CNC station is not active
1 CNC station is active
This signal is used to inform the PLC Program than an emergency stop
condition is active.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Emergency stop is not active
1 Emergency stop is active
To restore the CNC to its normal operations, a ‘control reset’ is required. This
can be done in two ways:
1. The operator presses simultaneously the Ctrl and Reset buttons on the
front panel. (An external PC keyboard Ctrl and R key combination also
does this.)
2. The PLC performs the Control-Reset command (see IN_EXTMODE,
2.3.9.1.3). This PLC action is usually in response to a particular input
or event.
Either of these actions will result in the signal ON_RESET (see 2.4.1.11) being
ON during this ‘control reset’ processing.
Upon this ‘control reset’ action, the CNC will attempt to resume its normal
operations. This could fail due to one of two reasons:
1. If there is a PLC emergency stop indicated (see INEMERGENCn,
2.3.1.1) then the CNC will maintain its emergency stop state.
2. If there is a serious CNC fault detected (such as an encoder loss of
feedback or an IO bus error) then the CNC will maintain its emergency
stop state.
If the CNC cannot reset after the ‘control reset’ action then the ON_EMERG
signal would remain true.
This signal informs the PLC Program that an NC program run was interrupted
as M00 or M01 became effective. For further processing of the NC PROGRAM
after a program stop a "start" is necessary (see chapter 2.3.1.2 "dword 1,
IN_START (NC cycle start)").
Value Meaning
---------------------------------------------------------------------------------------------------
0 Program stop (M00/M01) not active
1 Program stop (M00/M01) active
0→ 1 Program stop (M00/M01) is active, i.e., the CNC is in one of the CNC
operating modes given above and M00 or M01 is programmed in
the active NC block.
The NC block is terminated, i.e., all additionally programmed
functions, such as an interpolation, were executed.
1→ 0 Program stop (M00/M01) is overridden when
- CNC has a "cycle start" (see chapter 2.3.1.2 "dword 1, IN_START
(NC cycle start)") executed
- The MMI is changed to the CNC operating mode MANUAL
- CNC performed CONTROL RESET.
Note:
• Since the NC letter M is always set as a BCD-code, then
programmed M00 or M01 is also submitted as a BCD-code (see
chapter 2.4.2.16 "dword 2, ON_STROBE1 (BCD strobes)" and
chapter 2.4.3 "dword 3,4, ONBCDWORD1,2"). This delivery is
always performed at the beginning of the execution of an NC
block. The signal ON_PRG_STP (program stop (M00/M01))
always receives the value 1 after the end of the execution of the
NC block.
• This signal is set for the M01 only when that operator feature is
enabled (M01 Operator Stop). If that feature is not enabled, then
the M01 is ignored by the CNC.
• This signal is also valid when the test operation "without motion"
is active.
This signal informs the PLC Program that an NC program run was terminated
when M02 or M30 became effective.
Value Meaning
---------------------------------------------------------------------------------------------------
0 End of Program (M02/M30) not active
1 End of Program (M02/M30) active
Note:
• Since the NC-letter M is always preset as a BCD-code, a
programmed M02 or M30 is also submitted as a BCD-code (see
chapter 2.4.2.16 "dword 2, ON_STROBE1..4 (BCD strobes)" and
PLC Interface Manual
page 152 / 304
MACHINEMATE®
• The causes and effects of M02 and M30 as described here are
only valid if these codes appear in an NC PROGRAM, which is
processed as a main program.
• The effects of M02 and M30 are absolutely identical. That the
same function exists for two codes is due to historic reasons and
preserves the compatibility with old NC PROGRAMS.
• This signal is also valid when the test operation "without motion"
is active.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The execution of the CONTROL RESET is not active
1 The execution of the CONTROL RESET is active
Note:
• While the CNC executes CONTROL RESET, no further functions
can be activated.
• This signal only has the value 1 during the execution of CONTROL
RESET. If this time is smaller than the preset interval time
between two BCD-codes (see chapter 2.4.2.16 "dword 2,
ON_STROBE1..4 (BCD strobes)"), the machine parameter
BCDDistanceTime value should be increased to guarantee a sure
recognition by the PLC Program.
This signal communicates to the PLC Program that in principle all control loops
in the CNC are open.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The control loops of the CNC are not opened in principle
1 All control loops of the CNC are opened in principle
0→ 1 - No further causes
1→ 0 No further causes
Note:
• If this signal has the value 1, 0 volt is output at the D/A-output of
each axis (Analog) or Stop updating Position or Velocity
command (Sercos).
• Even if this signal has the value 0, it can be that not all axes are
regulated, since the state of the individual control loops are
directed according to the control loop enable signals
IN_DRON01..32 (see chapter 2.3.2.1 "dword 3").
This signal communicates to the PLC Program that all mandatory homing axes
have already performed their homing cycle.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Not all mandatory homing axes have already performed their homing cycle
successfully.
1 All mandatory homing axes have already performed their homing cycle
successfully.
0→ 1 - No further causes
1→ 0 No further causes
Note:
• If this signal has the value 0, axes can only be positioned manually if
the function "MANUAL enable" was activated (see chapter 2.4.8.1
"dword 9, ONEXTMODE"), and NC blocks can only be executed if
the test operation "without motion" was activated.
This signal communicates to the PLC Program that the CNC has recognized an
error.
CNC errors are states that might endanger the operational safety of the
machine or prevent the further execution of active functions or the processing
of NC Programs in general.
Value Meaning
---------------------------------------------------------------------------------------------------
0 No CNC error states are active
1 A CNC error states is active
The control divides CNC errors into 3 classes with regard to the error reaction
and the possibility of error acknowledgement:
further execution
This signal is used to inform the PLC Program whether the first auxiliary push-
button on the control (i.e., MCP, Machine Control Panel) is active.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Auxiliary push-button 1 is not active
1 Auxiliary push-button 1 is active
Note:
• Which function is activated by the connected push-button
depends on the PLC Program.
This signal is used to inform the PLC Program whether the auxiliary push-
button 2 connected on the control (i.e., MCP, Machine Control Panel) is active.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Auxiliary push-button 2 is not active
1 Auxiliary push-button 2 is active
Note:
• Which function is activated by the connected push-button
depends on the PLC Program.
Value Meaning
---------------------------------------------------------------------------------------------------
0 A part program is not active
1 A part program is active
This signal is set when the Manual Mode Retreat feature is active.
The activation of this feature allows the axes to return to the part program path,
if they were moved during Manual Mode, upon a Cycle Start in Automatic
Mode.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Retreat (return to path) mode is not active
1 Retreat (return to path) mode is active - CNC will return to the part
program path upon a Cycle Start.
Value Meaning
---------------------------------------------------------------------------------------------------
0 M01 Optional Stop mode is not active
1 M01 Optional Stop mode is active
Value Meaning
---------------------------------------------------------------------------------------------------
0 Axes will move during an NC program
1 Axes will not move during an NC program - test run without movement
This signal, when TRUE, indicates that the D/A output to analog drives from the
CNC will be 0 volts during this test mode. If there is an analog offset voltage
present in the drive or its analog interface then it is possible that the drive
position(s) might drift while this Test Without Movement mode is active. For
that reason, the analog drives should be disabled so they do not move by any
analog offset voltage when this signal is TRUE.
Value Meaning
---------------------------------------------------------------------------------------------------
0 G01 Override mode is not active
1 G01 Override mode is active, so the part program axis motions will be at
rapid (G00) rather than at the programmed feedrate (G01).
Value Meaning
---------------------------------------------------------------------------------------------------
0 Block Delete (/) mode is not active
1 Block Delete (/) mode is active
Value Meaning
---------------------------------------------------------------------------------------------------
0 Pitch Error Compensation mode is not active
1 Pitch Error Compensation mode is active
In this dword several state signals are summed so that the PLC Program can
recognize states that are associated with the execution of NC blocks:
Bit
1 ON_STAND STANDSTILL
2 ON_RAPID RAPID TRAVERSE
3 ON_THREAD G33/G34 active
4 ON_HOMEOK HOMEOK
5 ON_INTVEND INTVEND
6 ON_INTRET INTRET
7 ON_INTVHLD INTVHLD
8 ON_EGB_ACTIVE EGB (Gear Hobber) ACTIVE
9 ON_EGB_SYNC EGB TABLE SYNCHRONIZED
10 ON_READ_TO_BLK ‘READ TO BLOCK’ IN PROGRESS
11 ON_HDW_TICKS_LOST1 HANDWHEEL 1 LOST TICKS IN SPIN
12 ON_HDW_TICKS_LOST2 HANDWHEEL 2 LOST TICKS IN SPIN
13 ON_HDW_TICKS_LOST3 HANDWHEEL 3 LOST TICKS IN SPIN
14 ON_TRANSF BLOCK TRANSFER ENABLE STATUS
15 ON_CYCLE_STOP CYCLE STOP (FEED HOLD) ACTIVE
16 Reserved
17 ON_AUTOFOCUS DISTANCE CONTROL FEATURE
18 ON_DIST_CTRL DISTANCE CONTROL ACTIVE
19
... Reserved
28
29 ON_STROBE1 BCD STROBE 1
30 ON_STROBE2 BCD STROBE 2
31 ON_STROBE3 BCD STROBE 3
32 ON_STROBE4 BCD STROBE 4
With this signal the PLC Program can recognize whether axes are interpolated.
Value Meaning
---------------------------------------------------------------------------------------------------
0 At least one axis is interpolated.
1 No axes are interpolated.
0→ 1 No further causes
1→ 0 No further causes
Note:
• This signal is also valid when the test operation "without motion"
is active or the control loop enable signals (see chapter 2.3.2.1"
dword 3, IN_DRIVEON") have the value 0.
This signal cannot be used to directly determine whether the
axes are actually physically positioned at their end points (see
ONINPOS).
With this signal the PLC Program can recognize that the rapid traverse (G00) is
active during the execution of NC blocks.
Concerning this it can be decided with the corresponding programming in the
NC PROGRAM, whether a "processing" or a "positioning" is active.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Rapid traverse (G00) is not active
1 Rapid traverse (G00) is active
0→ 1 No further causes
1→ 0 No further causes
Note:
• Rapid traverse is always active if in the G-code group 1 the G-code
G00 is in effect. This can be achieved by programming G00 or by a
corresponding preset of the G-codes (at CONTROL RESET). More
about the G-code-groups or the functionality of G-code can be found
in the NC Programming Manual of the control (see the chapter
about "basics of the NC-programming, Program word").
• Since the G-code G00 is only relevant for the CNC operating modes
AUTOMATIC sequential block, AUTOMATIC single block or MDI is
(different to G70/71 for instance), this signal also only receives the
value 1 if the CNC is in one of the named CNC operating modes.
• This signal is also valid, when the test operation "without motion" is
active.
Via this signal the PLC Program can recognize that thread cutting (G33/34) is
active during the execution of NC blocks.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Thread cutting (G33/34) is not active
1 Thread cutting (G33/34) is active
0→ 1 No further causes
1→ 0 No further causes
Note:
• To stop or interrupt NC Blocks in which thread cutting (G33/34) is
active, particular conditions are valid (see chapter 2.3.1.3" dword
1, IN_STOPn (feed hold), chapter 2.3.1.4 IN_TRANSF (transfer
enable), chapter 2.3.1.5 IN_ENABLE (feed enable all axes)").
With this signal the PLC PROGRAM can recognize that the programmed
homing cycle (G74) is active.
Value Meaning
---------------------------------------------------------------------------------------------------
0 A part program G74 (move to home) is not active
1 A part program G74 (move to home) is active
Value Meaning
---------------------------------------------------------------------------------------------------
0 EGB mode is not active
1 EGB mode is active
Value Meaning
---------------------------------------------------------------------------------------------------
0 EGB table is not synchronized
1 EGB table is synchronized
Value Meaning
---------------------------------------------------------------------------------------------------
0 Read to Block mode is not active
1 Read to Block mode is active - CNC is scanning blocks in the NC
program until the selected NC block is reached.
This signal, when TRUE, indicates that the CNC is scanning the part program
through the blocks to get to the specified target block. The CNC will not
perform any axis motion during this process. If there is mechanical movement
required by M-codes or T-codes during this scan typically the PLC will ignore
those M-codes so that the ‘read to block’ gets to the correct block without such
unexpected mechanical motions (such as tool changes or turret moves). The
PLC should hold such actions until the cycle start that follows the ‘read to’ –
when the program actually begins execution at the target block. That is when
such actions would be expected to occur (like coolant on, which could have
been turned on and off many times prior to the target block).
Value Meaning
---------------------------------------------------------------------------------------------------
0 No lost ticks on handwheel 1
1 At least one lost tick on handwheel 1
Value Meaning
---------------------------------------------------------------------------------------------------
0 No lost ticks on handwheel 2
1 At least one lost tick on handwheel 2
Value Meaning
---------------------------------------------------------------------------------------------------
0 No lost ticks on handwheel 3
1 At least one lost tick on handwheel 3
Value Meaning
---------------------------------------------------------------------------------------------------
0 NC block transfer enable is not active
1 NC block transfer enable is active so the next NC block can be
processed, if other CNC conditions permit.
Value Meaning
---------------------------------------------------------------------------------------------------
0 NC cycle stop (feed hold) status is not active
1 NC cycle stop (feed hold) status is active. A cycle start is required to
resume the part program execution.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Auto Focus status is not active
1 Auto Focus status of distance control feature is active.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Distance Control feature is not active
1 Distance Control feature is active.
With these 4 bits the PLC Program is informed that a BCD-code is active in the
current NC block and the programmed value in the dwords 3 and 4 (see
chapter 2.4.3 "dword 3" and "dword 4, ONBCDWORD1,2") is available.
Among these 4 bits, only one bit can have the value 1 while the rest have the
value 0.
Value Meaning
---------------------------------------------------------------------------------------------------
0 BCD-code (dwords 3 and 4) is not valid
1 BCD-code (dwords 3 and 4) is valid
Coding:
Explanation:
The BCD-codes, also called an auxiliary functions, are used to
submit values to the PLC Program in synchronism with the
processing of NC blocks. This happens when an NC-letter of a
BCD in a NC block is programmed with a value. The NC letters of
the BCD's are generally preset on "M", "S", "T" and "U". A
For the value delivery of the BCD-codes the dwords 3 and 4 are
used for all 4 BCD-codes, whereby the strobe-signals mark the
BCD in question and mark whether the value is valid, i.e., it is
active. The value 0 can also be submitted with it.
Example:
Assume that in the control " M", "T"," S "and" U " are preset
as BCD's in this sequence, only "T" is preset with
"Interpolation Stop". In the same NC block M..., T..., U....
are programmed.
When the NC block is active and consequently executed,
the individual BCD-codes are transferred according to the
following temporal diagram:
t1 t2 t3 t4 t5 t6 t7
BCD STROBE 1
BCD STROBE 2
BCD STROBE 4
BCD-CODE
BCD-CODE
BCD-CODE
t1 t2 t3 t4 t5 t6 t7
Figure 7. BCD Strobe Timing Diagram
T1 = Strobe interval / 2;
Starts with the point in time as the NC block is executed
T3 = Strobe interval
T5 = Strobe interval
T7 = Strobe interval / 2;
When this time duration is over, the current NC block is terminated, as
long as no other functions are still active (e.g., an interpolation).
Since the “T” BCD is preset with "Interpolation Stop" (i.e., bit 16 set in its
BCDStrobeTime value), an interpolation that is programmed in the same NC
block waits until the 2nd BCD’s strobe is terminated.
Note:
• The BCD-codes in the dwords 3 and 4 (see chapter 2.4.3 "dword 3,
4", ONBCDWORD1, 2) can only be evaluated when the
corresponding strobe-signal has the value 1.
The delivery of the value for the active BCD-code is executed over the dwords
3 and 4, whereby the eight lowest value decimal digits of the 16-digit BCD-code
are submitted with dword 3, and the eight highest value decimal digits with
dword 4.
The term "BCD" comes from the term "Binary Coded Decimal" and this
designates a type of coding by which the decimal digits 0-9 are respectively
displayed in 4 binary bits. The display therefore corresponds to the
hexadecimal-code, whereby the position context emerges from powers to the
PLC Interface Manual
page 177 / 304
MACHINEMATE®
base 10 and not to the base 16 and the four binary bit codes 1010 to 1111 (or
the hex digits A to F) are not used.
Further information about BCD-codes can be found in the description the BCD
strobes in 2.4.2.16 "dword 2, ON_STROBE1..4".
8 7 6 5 4 3 2 1
0000: 0 0000: 0
0001: 1 0001: 1
0010: 2 0010: 2
0011: 3 0011: 3
0100: 4 0100: 4
0101: 5 0101: 5
0110: 6 0110: 6
0111: 7 0111: 7
1000: 8 1000: 8
1001: 9 1001: 9
1010: not used 1010: not used
1011: not used 1011: not used
1100: not used 1100: not used
1101: not used 1101: not used
1110: not used 1110: not used
1111: not used 1111: not used
Examples:
Assuming:
"M", "T"," S "and" U "are preset as the four BCD's in this
sequence in the control.
1.) N100 M5
ON_STROBE1 0 0 0 1
3 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1
2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
Dword3 = 5
Dword4 = 0
ON_STROBE2 0 0 1 0
3 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1
2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0
Dword3 = 98765432
3 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1
2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0
Dword4 = 12345678
ON_STROBE3 0 1 0 0
3 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1
2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Dword3 = 4000
Dword4 = 0
4.) N130 U0
ON_STROBE4 1 0 0 0
3 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1
2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Dword3 = 0
Dword4 = 0
Note:
• The BCD-codes in the dword 3 and 4 may only be evaluated if the
corresponding strobe-signal (see chapter 2.4.2.16 "dword 2,
ON_STROBE1..4") has the value 1.
In this dword the "IN POSITION" state signals for all axes are summed, with a
maximum of 32:
Bit
1 ON_INP01 In position 1st axis
2 ON_INP02 In position 2nd axis
3 ON_INP03 In position 3rd axis
4 ON_INP04 In position 4th axis
5 ON_INP05 In position 5th axis
6 ON_INP06 In position 6th axis
7 ON_INP07 In position 7th axis
... ... ...
32 ON_INP32 In position 32nd axis
With these signals the PLC Program can recognize whether an axis is "IN
POSITION". An axis is essentially "IN POSITION" if it does not take part in an
active interpolation and its deviation from its end position (difference between
set position and machine's actual position) is smaller is than the adjustable
preset value (the machine parameter InpositioningArea).
Value Meaning
---------------------------------------------------------------------------------------------------
0 Axis is not "IN POSITION"
1 Axis is "IN POSITION"
With a closed control loop (EMERGENCY STOP locking not active and axis
has "drive on") an axis exactly is "IN POSITION" then, when the internal set
position is equal to the pre-defined end position and the following error smaller
than the ‘in position’ window.
At active EMERGENCY STOP and "drive on" an axis is then only "IN
POSITION", when its machine's actual position is exactly equal to the pre-
defined end position.
If the control loop is opened by a missing "drive on", the axis is always taken as
being "IN POSITION" (exception: test without motion).
Of course the control loop is also opened in the test operation "without motion",
however the "IN POSITION" signal is treated here in the same way as with
closed control loop whereby the axis following error is assumed as being 0.
This is also valid at missing "motion on".
PLC Interface Manual
page 181 / 304
MACHINEMATE®
Note:
• An axis is also taken as being interpolated if the interpolation was
interrupted by the feed rate hold locking (see chapter 2.3.1.3"
dword 1, IN_STOPn (feed hold)") or by a missing feed rate
enable (see chapter 2.3.1.5 "dword 1, IN_ENABLE (feed enable
all axes)" and chapter 2.3.2.1 "dword 3, IN_DRIVEON") or was
stopped by the feed rate override rotary switch position 0%.
• An axis then always has "drive on" if its control loop enable signal
(see chapter 2.3.2.1 "dword 3, IN_DRIVEON") has the value 1.
• The ‘in position area’ is configured for each axis in the Machine
parameter InpositioningArea (in the AxisControl group).
In this dword the "HOMING OK” state signals for all axes are summed, with a
maximum of 32:
Bit
1 ON_HOME01 Homing OK 1st axis
2 ON_HOME02 Homing OK 2nd axis
3 ON_HOME03 Homing OK 3rd axis
4 ON_HOME04 Homing OK 4th axis
5 ON_HOME05 Homing OK 5th axis
6 ON_HOME06 Homing OK 6th axis
7 ON_HOME07 Homing OK 7th axis
... ... ...
32 ON_HOME32 Homing OK 32nd axis
With these signals the PLC Program can recognize, whether an axis has
finished its homing cycle.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The specified axis has not finished its homing cycle
1 The specified axis has finished its homing cycle
These signals and a programmed output duration can be set to the value 1 with
G98 in the NC program parts of the positioning axes. This can be used to
inform the PLC Program about the end of processing of the respective
positioning axis.
Value Meaning
---------------------------------------------------------------------------------------------------
0 Output signal is not active
1 Output signal is active
Note:
• To guarantee sure recognition of these output signals by the PLC
Program, choose a sufficiently long programmable output duration
with respect to the PLC scan time.
The 8 output signals that can be output in NC part program cycle parameter
blocks with the use of the OB (Output-Byte) command, are summed in this
dword:
Bit
1 ON_CYCB01 Cycle Input from CNC Bit 1
2 ON_CYCB02 Cycle Input from CNC Bit 2
3 ON_CYCB03 Cycle Input from CNC Bit 3
4 ON_CYCB04 Cycle Input from CNC Bit 4
5 ON_CYCB05 Cycle Input from CNC Bit 5
6 ON_CYCB06 Cycle Input from CNC Bit 6
7 ON_CYCB07 Cycle Input from CNC Bit 7
8 ON_CYCB08 Cycle Input from CNC Bit 8
9
... Reserved ...
32
These signals can be set from the NC part program cycle parameters and thus
can be used to communicate with the PLC Program. The cause of the
respective values of the individual signals in the CNC is therefore dependent
on the currently active part program.
This dword is divided in two different word (16 bits). The first word (bit 1 ... 16)
is defined for the external CNC operation mode selection, the second word (Bit
17 ... 32) for the external program selection.
The replies of the CNC to the requests of the PLC for the function "External
CNC operating mode" are transferred with this word:
Bit
1 ON_EXT_01 External operating mode signal 1
2 ON_EXT_02 External operating mode signal 2
3 ON_EXT_03 External operating mode signal 3
4 ON_EXT_04 External operating mode signal 4
5 ON_EXT_05 External operating mode signal 5
6 ON_EXT_06 External operating mode signal 6
7 ON_EXT_07 External operating mode signal 7
8 ON_EXT_08 External operating mode signal 8
9 ON_EXT_09 External operating mode signal 9
10 ON_EXT_10 External operating mode signal 01
11
... Reserved ...
16
These output signals are positioned in direct connection with the input signals
of the "word 1 from the dword 9, External CNC operating mode control signals"
and are therefore described there in chapter 2.3.9.1 "dword 9 (word 1),
IN_EXTMODE".
The replies of the CNC to the requests of the PLC for the function "External
program selection" are transferred with this word:
These output signals are positioned in direct connection with the input signals
of the "word 2 from the dword 9, External program selection control signals"
and are described there in chapter 2.3.9.2 "dword 9 (word 2), IN_EXTMODE".
The description for the respective signals, when interpreting this status, is
provided in chapter 2.3.9.2.4.
Since the real “drive ready” signal is provided to the CNC via the fiber
connection to an individual Sercos drive, this interface state-signal allows the
PLC to obtain that drive status indicator from the CNC.
In this dword the PLC state signals for a measuring command are summed for
all axes:
Bit
1 ON_PLCMDONE01 PLC measuring done 1st axis
2 ON_PLCMDONE02 PLC measuring done 2nd axis
3 ON_PLCMDONE03 PLC measuring done 3rd axis
4 ON_PLCMDONE04 PLC measuring done 4th axis
5 ON_PLCMDONE05 PLC measuring done 5th axis
...
32 ON_PLCMDONE32 PLC measuring done 32nd axis
Note: This dword was added in CNC version 1.9 so it did not exist in earlier
versions.
This dword is divided in two different word (16 bits). The first word (bit 1 ... 16)
is defined for the “spindle standstill (stop)” signals, the second word (Bit 17 ...
32) for the for the “spindle speed reached” signals.
In this word the spindle standstill signals for 6 spindles are summed:
Bit
1 ON_STAND01 STANDSTILL SPINDLE 1
2 ON_STAND02 STANDSTILL SPINDLE 2
3 ON_STAND03 STANDSTILL SPINDLE 3
4 ON_STAND04 STANDSTILL SPINDLE 4
5 ON_STAND05 STANDSTILL SPINDLE 5
6 ON_STAND06 STANDSTILL SPINDLE 6
7
... Reserved
16
With these output signals the PLC Program can recognize, whether an spindle
has stopped (at standstill).
Value Meaning
---------------------------------------------------------------------------------------------------
0 The specified spindle hasn't stopped
1 The specified spindle has stopped
Note:
• With the machine parameter SpindleInpositionPerCent it can
be determined at which percent of the machine parameter
SpindleInpositionDiff the specified bit is set. Both of these
parameters are in the Spindle group.
In this word the spindle speed reached signals for 6 spindles are summed:
With these output signals the PLC Program can recognize whether a spindle
has reached its programmed speed.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The specified spindle hasn't reached its programmed speed
1 The specified spindle has reached its programmed speed
Note:
• This signal is valid only when there is feedback from the spindle,
configured with the machine parameter SpindleFeedbackAppl
(in the Spindle group). A spindle without feedback does not
provide this signal for the PLC.
• With the machine parameter SpindleInpositionDiff (in the
Spindle group) the window will be set which set the specified bit
of the corresponding spindle “Spindle speed reached”.
Normally, the position loop is closed in the SERCOS drive so each signal
enables the CNC to verify that condition in the axis servo drive.
In this dword are the mirror state signals for the mirroring axes are summed, up
to a maximum of 32 axes:
Bit
1 ON_MIRR01 Mirroring state 1st axis
2 ON_MIRR02 Mirroring state 2nd axis
3 ON_MIRR03 Mirroring state 3rd axis
4 ON_MIRR04 Mirroring state 4th axis
5 ON_MIRR05 Mirroring state 5th axis
6 ON_MIRR06 Mirroring state 6th axis
... ... ...
32 ON_MIRR32 Mirroring state 32nd axis
These output signals are positioned in direct connection with the input signals
of the dword 14 (IN_MIRROR), mirroring control signals" and are described
therefore also there, in chapter 2.3.14 "dword 14, IN_MIRROR". These signals
also reflect the axis mirroring status from the G38/G39 NC programming for the
axis mirroring feature.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The specified axis is not mirrored
1 The specified axis is mirrored
In these two dwords, the state signals for the motion commands one for plus
(ON_CMNDPxx) and one for minus (ON_CMNDMxx) are summed, with a
maximum of 32 axes:
Bit
1 ON_CMNDP01, ON_CMNDM01 Motion command plus, minus 1st axis
2 ON_CMNDP02, ON_CMNDM02 Motion command plus, minus 2nd axis
3 ON_CMNDP03, ON_CMNDM03 Motion command plus, minus 3rd axis
4 ON_CMNDP04, ON_CMNDM04 Motion command plus, minus 4th axis
5 ON_CMNDP05, ON_CMNDM05 Motion command plus, minus 5th axis
6 ON_CMNDP06, ON_CMNDM06 Motion command plus, minus 6th axis
7 ON_CMNDP07, ON_CMNDM07 Motion command plus, minus 7th axis
8 ON_CMNDP08, ON_CMNDM08 Motion command plus, minus 8th axis
... ... ...
32 ON_CMNDP32, ON_CMNDM32 Motion command plus, minus 32nd axis
With these signals the PLC Program can recognize if the actual NC block is a
motion block for the specified axis or if the specified axis is moving in the jog
mode. The motion command signals will also be set if the feed override switch
is equal zero or if cycle stop is active.
Value Meaning
---------------------------------------------------------------------------------------------------
0 A motion command plus, minus is not in the actual NC block for the
specified axis.
1 A motion command plus, minus is in the actual NC block for the specified
axis.
In this dword the handwheel state signals for all axes are summed, up
maximum of 32 axes:
Bit
1 ON_HANDW01 HANDWHEEL 1st axis
2 ON_HANDW02 HANDWHEEL 2nd axis
3 ON_HANDW03 HANDWHEEL 3rd axis
4 ON_HANDW04 HANDWHEEL 4th axis
5 ON_HANDW05 HANDWHEEL 5th axis
6 ON_HANDW06 HANDWHEEL 6th axis
7 ON_HANDW07 HANDWHEEL 7th axis
8 ON_HANDW08 HANDWHEEL 8th axis
... ... ...
32 ON_HANDW32 HANDWHEEL 32nd axis
With these signals the PLC Program can recognize if the specified axis is
selected for “motion with handwheel” via the operator interface.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The specified axis is not selected for motion with handwheel.
1 The specified axis is selected for motion with handwheel.
In this dword the software CAM state signals for the first four axes are
summed:
Bit
1 ON_CAM1_01 CAM STATE FOR CAM 1 1st axis
2 ON_CAM2_01 CAM STATE FOR CAM 2 1st axis
3 ON_CAM3_01 CAM STATE FOR CAM 3 1st axis
4 ON_CAM4_01 CAM STATE FOR CAM 4 1st axis
5 ON_CAM5_01 CAM STATE FOR CAM 5 1st axis
6 ON_CAM6_01 CAM STATE FOR CAM 6 1st axis
7 ON_CAM7_01 CAM STATE FOR CAM 7 1st axis
8 ON_CAM8_01 CAM STATE FOR CAM 8 1st axis
With these signals the PLC Program can determine the relationship between
an axis position and a specified trigger value, called a CAM value in this feature
(much as a hardware switch associated with a rotary cam would perform).
Value Meaning
---------------------------------------------------------------------------------------------------
0 The axis position is not greater than the CAM value.
1 The axis position is greater than the CAM value.
Note:
• These signals are valid only when the feature is enabled, using
the machine parameter SoftwareCamAppl (in the PLCFunctions
group). This parameter turns on the respective axis position
CAMs. To disable the feature, this parameter is 0. To enable, it
usually has a value of either 0111 hex (to monitor the axis
commanded position) or 0311 hex (to monitor the axis actual
position). The difference between the two positions depends on
the axis in-positioning area tolerance and the axis following error
(also called lag, which is involved in a number of mechanical and
drive issues).
In this dword the software CAM state signals for the axes 5 through 8 are
summed:
Bit
1 ON_CAM1_05 CAM STATE FOR CAM 1 5th axis
2 ON_CAM2_05 CAM STATE FOR CAM 2 5th axis
...
8 ON_CAM8_05 CAM STATE FOR CAM 8 5th axis
With these signals the PLC Program can determine the relationship between
an axis position and a specified trigger value, called a CAM value in this feature
(much as a hardware switch associated with a rotary cam would perform). The
meaning of these signals is the same as those described in ON_CAM1_4 (see
2.4.16) except these apply to a different set of four axes.
In this dword the software CAM state signals for the axes 9 through 12 are
summed:
Bit
1 ON_CAM1_09 CAM STATE FOR CAM 1 9th axis
2 ON_CAM2_09 CAM STATE FOR CAM 2 9th axis
...
8 ON_CAM8_09 CAM STATE FOR CAM 8 9th axis
With these signals the PLC Program can determine the relationship between
an axis position and a specified trigger value, called a CAM value in this feature
(much as a hardware switch associated with a rotary cam would perform). The
meaning of these signals is the same as those described in ON_CAM1_4 (see
2.4.16) except these apply to a different set of four axes.
In this dword the software CAM state signals for the axes 13 through 16 are
summed:
Bit
1 ON_CAM1_13 CAM STATE FOR CAM 1 13th axis
2 ON_CAM2_13 CAM STATE FOR CAM 2 13th axis
...
8 ON_CAM8_13 CAM STATE FOR CAM 8 13th axis
With these signals the PLC Program can determine the relationship between
an axis position and a specified trigger value, called a CAM value in this feature
(much as a hardware switch associated with a rotary cam would perform). The
meaning of these signals is the same as those described in ON_CAM1_4 (see
2.4.16) except these apply to a different set of four axes.
In this dword the software CAM state signals for the axes 17 through 20 are
summed:
Bit
1 ON_CAM1_17 CAM STATE FOR CAM 1 17th axis
2 ON_CAM2_17 CAM STATE FOR CAM 2 17th axis
...
8 ON_CAM8_17 CAM STATE FOR CAM 8 17th axis
With these signals the PLC Program can determine the relationship between
an axis position and a specified trigger value, called a CAM value in this feature
(much as a hardware switch associated with a rotary cam would perform). The
meaning of these signals is the same as those described in ON_CAM1_4 (see
2.4.16) except these apply to a different set of four axes.
In this dword the software CAM state signals for the axes 21 through 24 are
summed:
Bit
1 ON_CAM1_21 CAM STATE FOR CAM 1 21st axis
2 ON_CAM2_21 CAM STATE FOR CAM 2 21st axis
...
8 ON_CAM8_21 CAM STATE FOR CAM 8 21st axis
With these signals the PLC Program can determine the relationship between
an axis position and a specified trigger value, called a CAM value in this feature
(much as a hardware switch associated with a rotary cam would perform). The
meaning of these signals is the same as those described in ON_CAM1_4 (see
2.4.16) except these apply to a different set of four axes.
In this dword the software CAM state signals for the axes 25 through 28 are
summed:
Bit
1 ON_CAM1_25 CAM STATE FOR CAM 1 25th axis
2 ON_CAM2_25 CAM STATE FOR CAM 2 25th axis
...
8 ON_CAM8_25 CAM STATE FOR CAM 8 25th axis
With these signals the PLC Program can determine the relationship between
an axis position and a specified trigger value, called a CAM value in this feature
(much as a hardware switch associated with a rotary cam would perform). The
meaning of these signals is the same as those described in ON_CAM1_4 (see
2.4.16) except these apply to a different set of four axes.
In this dword the software CAM state signals for the axes 29 through 32 are
summed:
Bit
1 ON_CAM1_29 CAM STATE FOR CAM 1 29th axis
2 ON_CAM2_29 CAM STATE FOR CAM 2 29th axis
...
8 ON_CAM8_29 CAM STATE FOR CAM 8 29th axis
With these signals the PLC Program can determine the relationship between
an axis position and a specified trigger value, called a CAM value in this feature
(much as a hardware switch associated with a rotary cam would perform). The
meaning of these signals is the same as those described in ON_CAM1_4 (see
2.4.16) except these apply to a different set of four axes.
In this dword the state signals for the teach panel PLC function keys are
summed:
Bit
1 ON_PANEL01 TEACH PANEL PLC FUNCTION KEY 1
2 ON_PANEL02 TEACH PANEL PLC FUNCTION KEY 2
3 ON_PANEL03 TEACH PANEL PLC FUNCTION KEY 3
4 ON_PANEL04 TEACH PANEL PLC FUNCTION KEY 4
5 ON_PANEL05 TEACH PANEL PLC FUNCTION KEY 5
6 ON_PANEL06 TEACH PANEL PLC FUNCTION KEY 6
7 ON_PANEL07 TEACH PANEL PLC FUNCTION KEY 7
8 ON_PANEL08 TEACH PANEL PLC FUNCTION KEY 8
9
... Reserved ...
32
With these signals the PLC Program can recognize if the specified PLC
function key has been selected on the teach panel.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The specified PLC function key on the teach panel is not selected.
1 The specified PLC function key on the teach panel has been selected.
Note:
• The Teach Panel PLC function key is the Teach Panel key
combination of the Shift key and the desired function key (F1
through F8).
• The Teach Panel is a hardware option that also enables several
software features, including this PLC interface feature.
In this dword the state signals from the NC block interpreter to the PLC are
summed:
Bit
1 ON_CANCELBLK CANCELLING THE ACTIVE BLOCK
2 ON_MEMORY_MODE CNC IS IN INTERNAL MEMORY MODE
3 ON_MEMORY_OPERATION_ACTIVE CNC MEMORY OPERATION IS ACTIVE
4 ON_SINGLE_STEP SINGLE STEP MODE ACTIVE
5 ON_IPR_DO_STEP SINGLE STEP COMMANDED BY PLC
6 ON_PLC_SET_AXPOS PLC HAS SET AN AXIS POSITION
7 ON_HIDE_IMBLK INTERMEDIATE BLOCKS HIDDEN
8 ON_HIDE_CYBLK CYCLE BLOCKS HIDDEN
9 Reserved Reserved
12
... Reserved ...
32
Note: This dword was added in CNC version 2.1 so it did not exist in earlier
versions. The signals for bits 4 and 5 were added in CNC version 2.2 so they
did not exist in earlier versions. The signals for bits 6 to 8 and 10 to 11 were
added in CNC version 2.3 so they did not exist in earlier versions.
This signal informs the PLC of the cancel active NC block command status (set
by the PLC signal IN_CANCELBLK; see 2.3.22.1). This signal is the
acknowledgement by the CNC of the IN_CANCELBLK command from the
PLC.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The cancel active NC block command from PLC is not active
1 The CNC is in the process of canceling the active NC block for the PLC
This signal informs the PLC of the status that the CNC is its internal memory
mode. This state exists when the CNC is in its teach mode (an optional
feature).
Value Meaning
---------------------------------------------------------------------------------------------------
0 The CNC is not in its internal memory mode
1 The CNC is in its internal memory mode
This signal informs the PLC of the status that the CNC has an active internal
memory operation. This state exists when the CNC is moving a file for an
external TCP file transfer request (an optional feature).
Value Meaning
---------------------------------------------------------------------------------------------------
0 The CNC does not have a memory operation in progress
1 The CNC has an internal memory operation in progress (e.g., a file
transfer is in progress)
This signal informs the PLC Program that the CNC is currently in single step
mode (that can be affected by the PLC signal IN_SINGLE_STEP; see
2.3.22.2).
This signal represents only the special single step mode condition. This is not
the same as single block mode (ON_SINGLE; see 2.4.1.4). This is a special
test mode possible in the CNC to help debug part programs having cycle
blocks for calculations. Cycle blocks are uniquely identified by their syntax.
They always start with *N to indicate a calculation block. Motion can never
occur with a cycle block. Normal part programs can be executed done one
block at a time, just as on most other CNCs, when Automatic Single block
mode is activated.
Value Meaning
---------------------------------------------------------------------------------------------------
0 CNC in normal mode; single step mode is not active
1 CNC is in single step mode. A step command from PLC is required to
execute the next part program block.
This signal informs the PLC Program that the CNC is currently doing the next
step (the next part program block) while in single step mode.
This signal represents the acknowledgment of the PLC command to do the
next block (or the next step). This PLC command for the next step is the PLC
signal IN_IPR_DO_STEP (see 2.3.22.3).
Value Meaning
---------------------------------------------------------------------------------------------------
0 CNC in normal mode
1 CNC has just executed the next part program block while in single step
mode. A step command from PLC was required for the CNC to execute
the next part program block.
With these signals the PLC Program can recognize whether an axis has been
switched to a spindle. The part program can cause this switch or the PLC can
(see 2.3.11.1).
Bit
1 ON_SWAX01 Switching axis/spindle, spindle 1
2 ON_SWAX02 Switching axis/spindle, spindle 2
3 ON_SWAX03 Switching axis/spindle, spindle 3
4 ON_SWAX04 Switching axis/spindle, spindle 4
5 ON_SWAX05 Switching axis/spindle, spindle 5
6 ON_SWAX06 Switching axis/spindle, spindle 6
7
... Reserved ...
32
Value Meaning
---------------------------------------------------------------------------------------------------
0 The switching axis/spindle is in the axis configuration.
1 The switching axis/spindle is in the spindle configuration.
With these signals the PLC Program can recognize if the specified fast output
bit is set (reference the machine parameter BCDByteMaskIndex and the
information regarding the feature Laser Power Control).
Bit
1 ON_FASTM_BIT1 Fast output bit 1
2 ON_FASTM_BIT2 Fast output bit 2
3 ON_FASTM_BIT3 Fast output bit 3
4 ON_FASTM_BIT4 Fast output bit 4
5 ON_FASTM_BIT5 Fast output bit 5
6 ON_FASTM_BIT6 Fast output bit 6
7 ON_FASTM_BIT7 Fast output bit 7
8 ON_FASTM_BIT8 Fast output bit 8
9
... Reserved ...
32
Value Meaning
---------------------------------------------------------------------------------------------------
0 Fast output signal is not set.
1 Fast output signal is set.
This dword provides a number of signals for the PLC to work with the CNC on
tool management.
Bit
1 ON_TOOLPOINT Tool magazine has moved to its location
2 ON_TOOLWARNING Active tool warning limit has been reached
3 ON_TOOLLIFEEND Active tool life has ended (it has become
less than zero)
4 ON_TOOLREF Tool magazine will move to position 1
5 ON_TOOLSTART Magazine is requested to move to the
specified location
6 ON_TOOLDIR Magazine direction (0=negative,
1=positive)
7 ON_TOOLERROR Error after reading or positioning
8 ON_TOOLANSWER Tool change has been completed
9 ON_TOOLINPOS Magazine is in position
10 ON_TOOL_IS_ACT Tool selection (T-number) is for the active
tool (i.e., the tool in the spindle)
11 ON_TOOL_NOTFND Selected Tool was not found in tool table
12 ON_SPARENOTFND Spare Tool was not found in tool table
13 ON_SP_NOTEMPTY Spindle location is not empty
14 ON_GP_NOTEMPTY Gripper location is not empty
15 ON_NP_NOTEMPTY New tool Place is not empty
16 ON_OP_NOTEMPTY Old tool Place is not empty
17 ON_PLACENOTVAL Tool place is not valid
18
... Reserved
32
Some of these signals are also described in the tool change descriptions
with IN_TOOL (see 2.3.26.1).
Note:
• ON_TOOL_IS_ACT was added in CNC version 1.11 so it did not
exist in earlier versions.
• The signals for bits 11 through 17 were added in CNC version 2.0
so they did not exist in earlier versions.
This signal informs the PLC when the CNC has completed the tool magazine
move requested by the PLC, either by IN_TOOLPOS or by IN_TOOLREQ.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The move is not completed
1 The CNC completed the tool magazine move requested by the PLC
Value Meaning
---------------------------------------------------------------------------------------------------
0 The active tool is not at its warning limit for its tool life
1 The remaining tool life for the active tool (in the spindle) is at or below its
warning limit value
Value Meaning
---------------------------------------------------------------------------------------------------
0 The active tool is not at the end of its tool life
1 The remaining tool life for the active tool (in the spindle) has reached
zero
This signal informs the PLC when the CNC is homing the tool magazine servo.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The homing is not active
1 The CNC is homing the servo for the tool magazine
This signal informs the PLC when the CNC has returned the spindle tool to its
magazine This signal is in response to the PLC signal IN_TOOLCHANGE
when the PLC has moved the physical tool and so the PLC is requesting that
the CNC update the tool table.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The tool data transfer is not active
1 The CNC is done updating the tool table for the tool from the spindle to
the tool magazine
The pulse-width for this signal from the CNC is determined by the machine
parameter ToolManagementStrobeTime in the ToolManagement group.
This signal informs the PLC when the CNC has found the next tool in the tool
table and this signal indicates the direction from the current tool magazine
position.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The magazine direction to the next location is negative
1 The magazine direction to the next location is positive
The ON_TOOLDIR signal is provided by the CNC just to indicate to the PLC
the relative change in magazine position. With round tool magazines (i.e., the
typical arrangement), this signal alone is not sufficient for managing the actual
magazine rotation in the PLC. For example, with a tool capacity of 30 tools,
ON_TOOLDIR will be true (set to 1) when the next magazine position is at
pocket 2 while the last position was at pocket 1 because the new pocket
number is greater than the old pocket number. Similarly, the signal will be false
(reset to 0) when the next position is at pocket 1 while the last was at pocket 2.
However, if the next position is at pocket 30 while the last is at pocket 1, the
signal will be true (due to the increasing pocket number) but the PLC must
decide whether the shortest move is appropriate (i.e., to backup the single
pocket rather than moving forward 29 pockets). Typically when the change in
pocket number is more than half the magazine capacity (and the PLC logic
should be able to determine the length of move since it must control the
magazine position), the shortest move is in the direction opposite that indicated
by ON_TOOLDIR.
This signal informs the PLC when the CNC cannot do the tool magazine move
requested by the PLC.
Value Meaning
---------------------------------------------------------------------------------------------------
0 There is no error condition regarding the tool table or its management
1 The CNC had an error with the PLC magazine move
The pulse-width for this signal from the CNC is determined by the machine
parameter ToolManagementStrobeTime in the ToolManagement group.
This signal informs the PLC when the CNC has acknowledged the newly
selected tool is in the spindle, becoming the active tool This signal is in
response to the PLC signal IN_TOOLRELEASE when the PLC has moved the
physical tool and so the PLC is requesting that the CNC update the tool table.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The tool data transfer is not active
1 The CNC is done updating the tool table for the tool from the magazine
into the spindle
The pulse-width for this signal from the CNC is determined by the machine
parameter ToolManagementStrobeTime in the ToolManagement group.
This signal informs the PLC when the servo for the tool magazine is in position
(i.e., not moving).
Value Meaning
---------------------------------------------------------------------------------------------------
0 The move is not completed
1 The servo-driven tool magazine is in position
Value Meaning
---------------------------------------------------------------------------------------------------
0 The tool number in the active block does not match that in the spindle
1 The tool number in the active block matches that in the spindle
If the PLC is presented this status it typically ignores the tool change request
for the tool (i.e., the M06).
Value Meaning
---------------------------------------------------------------------------------------------------
0 The tool number in the active block is available in the tool table
1 The tool number in the active block is not found in the tool table
If the PLC is presented this status it typically ignores the tool change request
for the tool (i.e., the M06) since the CNC has no tool to change and it will not
continue the part program.
Value Meaning
---------------------------------------------------------------------------------------------------
0 The tool number in the active block is available in the tool table
1 The tool number in the active block is found in the tool table but all such
tools have no remaining tool life and no spare tool with some remaining
tool life is found in the tool table
If the PLC is presented this status it typically ignores the tool change request
for the tool (i.e., the M06) since the CNC has no tool to change and it will not
continue the part program.
In this dword the tool magazine state signals are summed into one value:
This dword is usually treated as a decimal value, so the signal names for the
respective bits are not used in most applications.
Bit
1 ON_TLOC01 TOOL LOCATION 1st signal
2 ON_TLOC02 TOOL LOCATION 2nd signal
3 ON_TLOC03 TOOL LOCATION 3rd signal
4 ON_TLOC04 TOOL LOCATION 4th signal
5 ON_TLOC05 TOOL LOCATION 5th signal
6 ON_TLOC06 TOOL LOCATION 6th signal
... ... ...
32 ON_TLOC32 TOOL LOCATION 32nd signal
In this dword the tool table state signals are summed into one value:
This dword is usually treated as a decimal value, so the signal names for the
respective bits are not used in most applications.
Bit
1 ON_TACT01 TOOL TABLE 1st signal
2 ON_TACT02 TOOL TABLE 2nd signal
3 ON_TACT03 TOOL TABLE 3rd signal
4 ON_TACT04 TOOL TABLE 4th signal
5 ON_TACT05 TOOL TABLE 5th signal
6 ON_TACT06 TOOL TABLE 6th signal
... ... ...
32 ON_TACT32 TOOL TABLE 32nd signal
Value Meaning
---------------------------------------------------------------------------------------------------
0 No motion command is present in the CNC for the specified axis.
1 A motion command is present.
Note:
• Note that with EGB, the two rotary axes involved (usually A or B
with C) must be the first two axes of the CNC station. The axis
assignments for the axial and tangential axes are configurable.
ON_EGBC01 is set when the gear hobbing (EGB) feature is enabled and the
second rotary axis (usually C) is turning in the minus direction.
ON_EGBC02 is set when the gear hobbing feature is enabled and the lag
difference between the two rotary axes is greater than that specified in the
machine parameter EGBLagDiff1 (in the ElectronicGearBox group).
ON_EGBC03 is set when the gear hobbing feature is enabled and the lag
difference between the two rotary axes is greater than that specified in the
machine parameter EGBLagDiff2 (in the ElectronicGearBox group).
This dword provides a number of state signals for the PLC to monitor with the
CNC on several five-axes transformation functions.
Bit
1 ON_NO_TCP Tool Center Point (TCP) programming is
not active (like a G180)
2 ON_TCP_ACTIVE TCP programming is active (like a G181)
3 ON_TCP_COORD TCP programming with a rotated
coordinate system is active (like a G182)
4 ON_COORD_DEF Level definition of the rotated coordinate
system is active (like a G183)
5 ON_BACK_TRAFO Back transformation is active
6
... Reserved
32
This dword sums the status signals for the PLC control of the interpolated axes,
with a maximum of 32 axes.
Bit
1 ON_PLC_IPO_ACT_01 IPO axis control from PLC status 1st axis
2 ON_PLC_IPO_ACT_02 IPO axis control from PLC status 2nd axis
3 ON_PLC_IPO_ACT_03 IPO axis control from PLC status 3rd axis
4 ON_PLC_IPO_ACT_04 IPO axis control from PLC status 4th axis
5 ON_PLC_IPO_ACT_05 IPO axis control from PLC status 5th axis
...
32 ON_PLC_IPO_ACT_32 IPO axis control from PLC status 32nd axis
The PLC defines a CNC motion command for an interpolating axis using the
function MOVE_INTERPOLATING_AXIS (see 3.20) and requests the actual
axis motion using the signals in IN_IPOMVMT (see 2.3.16), with one bit per
axis. The CNC indicates this PLC command is active with this dword (one bit
per axis). The CNC indicates this PLC command has reached the end point for
each interpolating axis with the signals in ON_PLC_IPO_ENDP (see 2.4.35).
Note: This dword was added in CNC version 2.1 so it did not exist in earlier
versions.
This dword sums the status signals for the completion of the PLC commanded
motion of the interpolated axes, with a maximum of 32 axes.
Bit
1 ON_PLC_IPO_ENDP_01 IPO axis at PLC end point status 1st axis
2 ON_PLC_IPO_ENDP_02 IPO axis at PLC end point status 2nd axis
3 ON_PLC_IPO_ENDP_03 IPO axis at PLC end point status 3rd axis
4 ON_PLC_IPO_ENDP_04 IPO axis at PLC end point status 4th axis
5 ON_PLC_IPO_ENDP_05 IPO axis at PLC end point status 5th axis
...
32 ON_PLC_IPO_ENDP_32 IPO axis at PLC end point status 32nd axis
The PLC defines a CNC motion command for an interpolating axis using the
function MOVE_INTERPOLATING_AXIS (see 3.20) and requests the actual
axis motion using the signals in IN_IPOMVMT (see 2.3.16), with one bit per
axis. The CNC indicates this PLC command is active with the signals in
ON_PLC_IPO_ACT (see 2.4.34). The CNC indicates this PLC command has
reached the end point for each interpolating axis with this dword (one bit per
axis).
Note: This dword was added in CNC version 2.1 so it did not exist in earlier
versions.
This dword sums the status signals for the PLC control of the positioning axes,
with a maximum of 5 axes.
Bit
1 ON_PLC_POS_ACT_01 POS axis control from PLC status 1st axis
2 ON_PLC_POS_ACT_02 POS axis control from PLC status 2nd axis
3 ON_PLC_POS_ACT_03 POS axis control from PLC status 3rd axis
4 ON_PLC_POS_ACT_04 POS axis control from PLC status 4th axis
5 ON_PLC_POS_ACT_05 POS axis control from PLC status 5th axis
6 Reserved
...
32 Reserved
The PLC defines a CNC motion command for a positioning axis using the
function MOVE_POSITIONING_AXIS (see 3.21) and requests the actual axis
motion using the signals in IN_STRTPOS (see 2.3.7), with one bit per axis. The
CNC indicates this PLC command is active with this dword (one bit per axis).
The CNC indicates this PLC command has reached the end point for each
positioning axis with the signals in ON_PLC_POS_ENDP (see 2.4.37).
Note: This dword was added in CNC version 2.1 so it did not exist in earlier
versions.
This dword sums the status signals for the completion of the PLC commanded
motion of the positioning axes, with a maximum of 5 axes.
Bit
1 ON_PLC_POS_ENDP_01 POS axis at PLC end point status 1st axis
2 ON_PLC_POS_ENDP_02 POS axis at PLC end point status 2nd axis
3 ON_PLC_POS_ENDP_03 POS axis at PLC end point status 3rd axis
4 ON_PLC_POS_ENDP_04 POS axis at PLC end point status 4th axis
5 ON_PLC_POS_ENDP_05 POS axis at PLC end point status 5th axis
6 Reserved
...
32 Reserved
The PLC defines a CNC motion command for a positioning axis using the
function MOVE_POSITIONING_AXIS (see 3.21) and requests the actual axis
motion using the signals in IN_STRTPOS (see 2.3.7), with one bit per axis. The
CNC indicates this PLC command is active with the signals in
ON_PLC_POS_ACT (see 2.4.36). The CNC indicates this PLC command has
reached the end point for each positioning axis with this dword (one bit per
axis).
Note: This dword was added in CNC version 2.1 so it did not exist in earlier
versions.
Name Type
ACTIVATE_SPOTI function
ACTIVATE_SWORD function
BLINKER function block
CLEAR_ERROR_MESSAGES function
CLEAR_G92_OFFSET function
DEACTIVATE_SPOTI function
DEACTIVATE_SWORD function
DISTANCE_CTRL function block
ERASE_NC_PROGRAM_MEMORY function block
HANDWHEEL_DIRECTION function
HANDWHEEL_FACTOR_AUTO1 function
HANDWHEEL_FACTOR_AUTO2 function
HANDWHEEL_FACTOR_MAN1 function
HANDWHEEL_FACTOR_MAN2 function
HANDWHEEL_NO_AXIS function
LOAD_NC_PROGRAM function block
MOVE_INTERPOLATING_AXIS function
MOVE_POSITIONING_AXIS function
READ_ANALOG_CHANNEL function block
READ_APPL_DATA function block
READ_BREAKING_PARAMETER function block
READ_CUTTING_FORCE function block
READ_GEOMETRIC_D function block
WRITE_SPARE_TOOL function
WRITE_SPINDLE_CODE function
WRITE_SPINDLE_ORIENTATION function
WRITE_SPOTI function
WRITE_SUPPLEM_X function
WRITE_SUPPLEM_Y function
WRITE_SWORD function
WRITE_TOOL_NUMBER function
WRITE_TOOL_TYPE function
WRITE_WARNING_LIMIT function
These two functions are grouped with the other functions and function blocks
(coming from the cncplc.lib library) in this Chapter 3 for convenience.
3.3. ACTIVATE_SPOTI
Activates the most recent S-override value written from the PLC for the desired
spindle(s). This function is not required if the CNC handles the spindle speed
override pot (see 2.3.15.2); this function is used when the PLC provides the
CNC with the spindle override value with the WRITE_SPOTI function.
input data: WORD Spindle_Number Mask for the spindles that are to
updated
3.4. ACTIVATE_SWORD
Activates the most recent S-Word value written from the PLC for the desired
spindle(s). This function is not required if the CNC handles the S-word in the
NC block; this function is used when the PLC provides the CNC with the S-
word using the function WRITE_SWORD. This S-word from the PLC will
(temporarily) override the S-word that is modal from a part program; after a
DEACTIVATE_SWORD that original modal S-word becomes active again.
This function is required for the PLC to take control of the spindle from the CNC
(such as for WRITE_SPINDLE_CODE or WRITE_SPINDLE_ORIENTATION).
When the PLC is done and the CNC should regain spindle control use the
DEACTIVATE_SWORD function.
PLC Interface Manual
page 226 / 304
MACHINEMATE®
input data: WORD Spindle_Number Mask for the spindles that are to
updated
3.5. BLINKER
Turns on and off an output based on two input time values. This function block
is just a combination of other standard timer function blocks. It does not involve
any interaction with the CNC.
3.6. CLEAR_ERROR_MESSAGES
Clears error messages written by the PLC. The PLC generates error
messages with the function WRITE_ERROR_MESSAGE.
input data: BOOL OK Perform the message clear (use TRUE for the
input).
3.7. CLEAR_G92_OFFSET
Clears any G92 offsets present (same as an MDI of N1G92).
Note: This function was added in CNC version 2.0 so it did not exist in earlier versions.
3.8. DEACTIVATE_SPOTI
Deactivates the S-override value written from the PLC for the desired spindle(s)
so that the override value from the operator panel get valid.
input data: WORD Spindle_Number Mask for the spindles that are affected
3.9. DEACTIVATE_SWORD
Deactivates the previously written S-word value from the PLC for the desired
spindle(s) so that the programmed value becomes active again.
This function is required when the PLC must take control of the spindle from
the CNC temporarily (such as for WRITE_SPINDLE_CODE or
WRITE_SPINDLE_ORIENTATION). When the PLC must take control of the
spindle use the ACTIVATE_SWORD function. When the PLC is done and the
CNC should regain spindle control use the DEACTIVATE_SWORD function.
input data: WORD Spindle_Number Mask for the spindles that are affected
3.10. DISTANCE_CTRL
Configures the optional Distance Control feature in the CNC.
Note: This function was added in CNC version 1.9 so it did not exist in earlier
versions. This function comes from cncstd.lib.
3.11. ERASE_NC_PROGRAM_MEMORY
Erases all the contents of NC part program memory.
input data: STRING FILENAME Name of the file to erase from memory
(ignored – this clears all programs)
3.12. GET_PARAMETER
Obtains the cycle parameter table value (P-parameter) for a given parameter
index. Note: chapter 1.2 shows the predefined system variables names that
have been assigned to the first 200 cycle parameters.
Note: This function was added in CNC version 1.9 so it did not exist in earlier
versions. This function comes from cncstd.lib.
3.13. HANDWHEEL_DIRECTION
Activates the handwheel function for the desired axis for Automatic mode. This
function works with the other Automatic mode handwheel functions
HANDWHEEL_FACTOR_AUTO1 and HANDWHEEL_FACTOR_AUTO2, that
further define the axis motion with a handwheel in Automatic mode.
Axes that are connected to a fixed handwheel will not be influenced.
Data : Type Name Comment
3.14. HANDWHEEL_FACTOR_AUTO1
Set the factor for the handwheel increments in the Automatic mode. The axis
assignment to a free (unassigned) handwheel would have been done using the
function HANDWHEEL_DIRECTION. This setting of a handwheel increment for
Automatic mode does not affect any setting for Manual mode.
The FACTOR input has a value from 0 to 3, corresponding with the index for
machine parameter ExtModeHandwheelFeed for an unassigned handwheel
or ExtModeHandwheelFeed2 for an assigned handwheel.
The distance moved each handwheel tick is the result of this calculation:
HandwheelNo1Factor (where 1 for the input HANDWHEEL_NUMBER is the
handwheel number, 1 .. 3)
multiplied by
3.15. HANDWHEEL_FACTOR_AUTO2
Set the factor for the handwheel increments in the Automatic mode. The axis
assignment to a free (unassigned) handwheel would have been done using the
function HANDWHEEL_DIRECTION. This setting of a handwheel increment for
Automatic mode does not affect any setting for Manual mode.
The FACTOR input must have a value greater than 0.
The distance moved each handwheel tick is the result of this calculation:
HandwheelNo1Factor (where 1 for the input HANDWHEEL_NUMBER is the
handwheel number, 1 .. 3)
multiplied by
FACTOR input / 10 (e.g., a value of 10 results in a multiplication factor of 1 in
this equation while a value of 254 results in 25.4, the factor of mm to inches)
multiplied by
Direction-factor (from the FACTOR input to HANDWHEEL_DIRECTION).
Axes that are connected to a fixed handwheel cannot be influenced.
3.16. HANDWHEEL_FACTOR_MAN1
Set the factor for the handwheel increments in the Manual mode. This setting
of a handwheel increment for Manual mode does not affect any setting for
Automatic mode. This factor can be applied to both an unassigned handwheel
or an assigned handwheel (i.e., it has an axis assigned to it).
The FACTOR input has a value from 0 to 3, corresponding with the index for
machine parameter ExtModeHandwheelFeed for an unassigned handwheel
or ExtModeHandwheelFeed2 for an assigned handwheel.
The distance moved each handwheel tick is the result of this calculation:
HandwheelNo1Factor (where 1 for the input HANDWHEEL_NUMBER is the
handwheel number, 1 .. 3)
multiplied by
ExtModeHandwheelFeed (adjusted by the FACTOR input as the index to a
machine parameter; which parameter depends on whether handwheel is
assigned an axis or not).
3.17. HANDWHEEL_FACTOR_MAN2
Set the factor for the handwheel increments in the Manual mode. This setting
of a handwheel increment for Manual mode does not affect any setting for
Automatic mode. This factor can be applied to both an unassigned handwheel
or an assigned handwheel (i.e., it has an axis assigned to it).
The FACTOR input must have a value greater than 0.
The distance moved each handwheel tick is the result of this calculation:
HandwheelNo1Factor (where 1 for the input HANDWHEEL_NUMBER is the
handwheel number, 1 .. 3)
multiplied by
FACTOR input / 10
Whenever the operator will use the Manual, Handwheel soft keys to move axes
with a handwheel and no PLC handwheeling is required, the machine
parameter HandwheelNo1Factor should be 1 (though that can be scaled if the
number of counts do not match the dial; a negative sign changes the direction)
so that the CNC will handle the operator-defined increments in the different
modes. With the HMI operation only, this PLC function is not used.
The common application for this function is the situation where the operator
can use the handwheel in many different modes, like both inch/metric and
linear/rotary from PLC control. But it does not handle a combination of PLC and
CNC HMI handwheel control.
The PLC handwheel mechanism provided by IN_EXTMODE (see 2.3.9.1.2)
assumes all the axes are scaled the same (i.e., the same number of decimal
places and the same FaktInchMetric factors). Given a requirement for the PLC
to handwheel one or more axes when the number of decimal places is not
consistent among all axes (e.g., with G70/inch active and with both linear and
rotary axes involved) then this function enables the CNC to get the correct
handwheel increment from the PLC. With this combination of requirements for
the PLC, the first multiplier in the formula above that is defined in the machine
parameter HandwheelNo1Factor will have a value of 0.1 (unless it must be
scaled for the number of counts per turn of the dial and/or a sign change to
match its direction).
To handwheel a linear axis in inch mode an increment of 0.0001”, the FACTOR
input to this function would be 254 to get an increment of 2.54 microns (or
0.0001”) (for this calculation from the formula: 0.1 * 254 / 10). If the axis in a
rotary and an increment of 0.001 degree is desired or if the linear axis is in
metric mode and an increment of 0.001 mm (1 micron) is desired then the
FACTOR input would be 100 to get the desired increment (for this calculation
from the formula: 0.1 * 100 / 10). For an increment of 0.001” then the FACTOR
input would be 2540 (to get 25.4 microns) while an increment of 0.010 mm
requires the FACTOR input of 1000 (to get 10 microns).
This function is the explicit definition of the handwheel’s current increment.
Therefore the increment that resulted from this function’s calculation will
override the ExtModeHandwheelFeed increment that is defined by the bits 3
and 4 in the IN_EXTMODE value (see 2.3.9.1.2).
This increment will also override the increment defined by the HMI operator (by
selecting the Handwheel mode’s axis selection soft key consecutively).
Therefore this function is used when only the PLC will handle the handwheel
operations, not the HMI built-in soft keys in the Manual mode. If this function is
being used for PLC control of the handwheel, the HMI handwheel soft keys
should not be available to the operator (since the operator defined increment
will not be valid). Once the PLC defines the handwheel increment with this
function, the PLC has taken complete control of the increment definition.
input data: WORD HANDWHEEL _NUMBER The handwheel number for this
factor
WORD FACTOR >0 .. factor for the handwheel-
increments
3.18. HANDWHEEL_NO_AXIS
Set the current free handwheel configuration to no axis assignment.
3.19. LOAD_NC_PROGRAM
Loads the specified part program into NC memory. This function block cannot
be used at the same time as SELECT_NC_PROGRAM (described below).
input data: STRING FILENAME Name of the file to load (includes the
device name and directory path)
String can have up to 64 characters.
3.20. MOVE_INTERPOLATING_AXIS
Requests the movement of a specific interpolating axis to a specific position (in
internal increments, usually microns). The feed rate for the motion is specified
by the function SET_POSITIONING_FEED (see 3.50); this rate must be
defined before the end point (with this function) (i.e., this function must follow
the other function in the order of PLC logic execution).
Note that the movement of the interpolating axis does not occur immediately.
The movement becomes active only when the PLC enables the commanded
motion for the specific axis to the CNC via IN_IPOMT01..32.
The PLC can check the status of this axis movement using the bit for the axis
in the ON_PLC_IPO_ACT and ON_PLC_IPO_ENDP dwords.
input data: STRING AXIS Identifier (its upper case letter) of the
interpolating axis to move
REAL POSITION Position to move to
Note: This function was added in CNC version 1.9 so it did not exist in earlier
versions.
3.21. MOVE_POSITIONING_AXIS
Requests the movement of a specific positioning axis to a specific position (in
internal increments, usually microns). The feed rate for the motion is specified
by the function SET_POSITIONING_FEED (see 3.50); this rate must be
defined before the end point (with this function) (i.e., this function will follow the
other function in the order of PLC logic execution). The acceleration for this
axis motion is defined by the machine parameter AxisSlopeTime (in the
AxisControl group).
Note that the movement of the positioning axis does not occur immediately.
The movement becomes active only when the PLC makes the command to the
CNC via IN_POS_01..05.
The PLC can check the status of this axis movement using the bit for the axis
in the ON_PLC_POS_ACT and ON_PLC_POS_ENDP dwords.
Note that if the positioning axis is normally not in a controlled state (i.e.,
IN_DRONxx is FALSE for this axis in IN_DRIVEON) such as with a clamped
turret on a lathe then this move request for the axis must be issued in the PLC
after the axis position loop has been closed (i.e., IN_DRONxx is set to TRUE
for the axis). If both events (this function and the signal) occur on the same
PLC scan then the move request is not recognized due to the internal
processing required by a transition in the IN_DRONxx signal (see 2.3.3). There
should be a slight delay (at least 20ms) after the IN_DRONxx transition before
this function is executed to allow the CNC time to complete its procedure for
closing a position loop.
input data: STRING AXIS Identifier (its upper case letter) of the
positioning axis to move
REAL POSITION Position to move to
3.22. READ_ANALOG_CHANNEL
Reads the specific analog input channel connected to the NC. This function
block accesses the same analog input channel that has been configured for the
NC part program to access as a cycle parameter. This capability is configured
using the machine parameter CycleAnalogIn in the CycleParameter group.
If the PLC requires the analog input value from a A/D channel in the I/O that
has not been configured for access in the part program, the POU must have a
variable assigned to the A/D channel’s byte address (which has been
configured within the control’s I/O configuration file). No special function or
function block is required for that direct access to the A/D channel’s current
value (see 1.5 for example). This function block is used only when the PLC and
CNC are sharing the same channel number for the A/D access.
3.23. READ_APPL_DATA
Reads a specific machine parameter from the CNC. The function block
requires the name of the parameter; the parameter’s group is not used here.
3.24. READ_BREAKING_PARAMETER
Reads the breaking parameter value for a specific tool magazine location from
the CNC. This tool data value is not used at this time.
3.25. READ_CUTTING_FORCE
Reads the cutting force value for a specific tool magazine location from the
CNC. This tool data value is not used at this time.
3.26. READ_GEOMETRIC_D
Reads the geometrical compensation D value for a specific tool magazine
location from the CNC. The operator enters this value in the Geo.Corr.D
column of the tool table.
When a tool is moved to the spindle, its geometric D-value is written to D001.
3.27. READ_GEOMETRIC_H
Reads the geometrical compensation H value for a specific tool magazine
location from the CNC. The operator enters this value in the Geo.Corr.H
column of the tool table.
When a tool is moved to the spindle, its geometric H-value is written to H001.
3.28. READ_GEOMETRIC_Z
Reads the geometrical compensation Z value for a specific tool magazine
location from the CNC. This tool data value is not used at this time.
3.29. READ_NO_PIECES
Reads the remaining number of pieces value for a specific tool magazine
location from the CNC.
3.30. READ_PLANNED_LIFE
Reads the planned tool life value (in minutes) for a specific tool magazine
location from the CNC.
3.31. READ_POSITION
Reads the position value for a specific tool magazine location from the CNC.
3.32. READ_RATE_X
Reads the rate of wear in X value for a specific tool magazine location from the
CNC. This tool data value is not used at this time.
3.33. READ_RATE_Y
Reads the rate of wear in Y value for a specific tool magazine location from the
CNC. This tool data value is not used at this time.
3.34. READ_REMAINING_LIFE
Reads the remaining tool life value (in minutes) for a specific tool magazine
location from the CNC.
A value of greater than zero is required to indicate that the tool is usable.
3.35. READ_SPARE_TOOL
Reads the spare tool number (string) value for a specific tool magazine location
from the CNC. The spare tool number specifies the number of the
replacement tool.
3.36. READ_SUPPLEM_X
Reads the supplementary compensation for X value for a specific tool
magazine location from the CNC. This tool data value is not used at this time.
3.37. READ_SUPPLEM_Y
Reads the supplementary compensation for Y value for a specific tool
magazine location from the CNC. This tool data value is not used at this time.
3.38. READ_SWORD
Reads the actual spindle S-word for the specific spindle from the CNC.
This value is not the active S-code value from the part program S-code. That
part program value is obtained by the S BCD strobe information (see 2.4.3; the
letter S would be configured as a BCD in the machine parameter
CharacterApplTab[S]). This value from this function is the one written by
WRITE_SWORD.
This function returns 0 if the PLC has not taken control of the spindle from the
CNC even if the PLC has executed WRITE_SWORD. When the PLC must take
control of the spindle from the CNC, use the WRITE_SPINDLE_CODE and
ACTIVATE_SWORD functions. After both of these functions are completed
READ_SWORD returns the active S-code value for the PLC controlled spindle.
3.39. READ_TOOL_NUMBER
Reads the tool number (string) value for a specific tool magazine location from
the CNC. The tool number is used to identify the tool in the part program as a
T-code.
3.40. READ_TOOL_TYPE
Reads the tool type value for a specific tool magazine location from the CNC.
The range of values for the MAGAZINE_NUMBER input applies to all the
READ/WRITE tool data functions.
3.41. READ_WARNING_LIMIT
Reads the tool life warning limit value (in minutes) for a specific tool magazine
location from the CNC.
3.42. READFIRSTBLOCK
Obtains the first NC block in the currently selected NC part program.
The first NC block in a part program sometimes contains a comment describing
the part program’s part name or part type or other useful information.
3.43. RESET_HANDWHEEL_FACTOR
Reset the factor for the automatic mode handwheel increments (from either
HANDWHEEL_FACTOR_AUTO1 or HANDWHEEL_FACTOR_AUTO2) to the
value set by the MMI.
3.44. SELECT_NC_PROGRAM
Selects the specified part program to be run. This function block cannot be
used at the same time as LOAD_NC_PROGRAM (described above).
input data: STRING FILENAME Name of the file to select (includes the
device name and directory path; if no
path is given, the program in NC
memory will be selected)
String can be up to 64 characters.
output data: BOOL DONE Set when the program select is done
WORD ERROR Error number for the failure:
0= no error
178= execution of program is not
permitted
191= program file not found
192= cycle on is active
282= program already in processing
761= file is not found
762= file read error
765= memory allocation error
766= block not found
767= program syntax error
796= path not found error
824= access on file denied
825= too many open files
826= file sharing violation
827= CNC is not in AUTO mode
3.45. SELECT_NC_STATION
Selects a different CNC station for the operator interface, or for subsequent
CNC functions and function blocks.
Note: This function was added in CNC version 1.9 so it did not exist in earlier versions.
3.46. SET_G92_OFFSET
Sets the G92 offset for the specified axis. This function is valid only when the
CNC is in Manual Mode. Note that the VALUE input is the desired axis position
with no decimal point (for example, if 12.3456 inches is the desired while in
G70 then VALUE will be 123456; if 5.432 mm is desired while in G71 then use
5432).
Note: This function was added in CNC version 2.0 so it did not exist in earlier versions.
3.47. SET_JOG_INCREMENTS
Sets the incremental jog distance when the PLC is jogging multiple axes (using
the IN_JPLS and IN_JMNS dwords; see 2.3.20 and 2.3.21) in incremental
mode. Incremental mode must be set for this Manual mode axis jogging action
(see IN_EXTMODE 2.3.9.1.3).
Note that the INCREMENTS input is the desired axis incremental distance but
with no decimal point. For example, if 0.1234 inches is the desired increment
when in G70 then INCREMENTS will be 1234; if 0.50 mm is desired in G71
then use 50. After the jogging is done then the axis increment must be set back
to 0 with this function. If left at a non-zero value the axis remains in the
incremental jog mode, even if a command in IN_EXTMODE attempts to
change that mode.
input data: STRING AXIS Identifier (its upper case letter) of the
axis affected
REAL INCREMENTS Incremental distance for jog
Note: This function was added in CNC version 1.9 so it did not exist in earlier versions.
3.48. SET_PARAMETER
Writes the new value into the cycle parameter table (P-parameter) for a given
parameter index. Note: chapter 1.2 shows the predefined system variables
names that have been assigned to the first 200 cycle parameters.
Note: This function was added in CNC version 1.9 so it did not exist in earlier
versions. This function comes from cncstd.lib.
3.49. SET_POSITIONING_ADJUST
The coordinate system for a positioning axis can be adjusted by this command
from the PLC. This is similar to a G92 for an interpolating axis.
input data: STRING(2) AXIS The axis character (its upper case
letter) for this positioning axis
REAL MEASPOS The position for the new coordinate
system, in internal increments
output data: BOOL n/a Returns command’s status (function)
TRUE = command was successfully
written to CNC
3.50. SET_POSITIONING_FEED
Sets the feed rate (mm/min) for a movement of a specific positioning axis. This
value overwrites the default rate for the move of a positioning axis – defined by
the machine parameter AxisSpeedMaxAppl in the AxisControl group.
This function applies to both MOVE_INTERPOLATING_AXIS (the function that
allows the PLC to move an interpolating axis like a positioning axis) and
MOVE_POSITIONING_AXIS. This feed rate will be associated with the next
move command so this function must be called before that function that defines
the end point for the axis motion.
input data: STRING AXIS Identifier (its upper case letter) of the
positioning axis to move
REAL FEED Feed rate for the motion (in mm/min
regardless of G70/G71)
output data: BOOL n/a Returns command’s status (function)
TRUE = command was successfully
written to CNC
3.51. WRITE_ANALOG_CHANNEL
Writes a value to the analog output channel connected to the NC. This function
block accesses the same analog output channel that has been configured for
the NC part program to access as a cycle parameter. This capability is
configured using the machine parameter CycleAnalogOut in the
CycleParameter group.
If the PLC requires an update to the analog output value for a D/A channel in
the I/O that has not been configured for access in the part program, the POU
must have a variable assigned to the D/A channel’s byte address (which has
been configured within the control’s I/O configuration file). No special function
or function block is required for that direct access to update the D/A channel’s
output value (see 1.5 for example). This function block is used only when the
PLC and CNC are sharing the same channel number for the D/A access.
3.52. WRITE_APPL_DATA
Writes a new value to a specific machine parameter in the CNC. The function
requires the name of the parameter; the parameter’s group is not used here.
Many of the machine parameters can be changed only when the CNC is in
Emergency stop. However, some of them can be changed at any time, even
when the CNC is running a part program.
3.53. WRITE_BREAKING_PARAMETER
Writes a new breaking parameter value for a specific tool magazine location to
the CNC. This tool data value is not used at this time.
3.54. WRITE_CUTTING_FORCE
Writes a new cutting force value for a specific tool magazine location to the
CNC. This tool data value is not used at this time.
3.55. WRITE_ERROR_MESSAGE
Writes a message from the PLC to the MMI. The message includes an error
number (for the operator to reference, and possibly to access an external data
file containing a table of messages), a message status level number and an
associated text string. If the error number is found in this external file, then the
text string can be inserted into that string if a placeholder string is found (‘%1’
for current MMI but ‘_’ for older MMI on NT). If the error number is not found in
this file or if the file does not exist, then only the text string is displayed. If the
error number is less than 501, then an error will result because those error
numbers are reserved. The value of the status level determines how the
operator can clear the message.
Input data:
Type name Comment
3.56. WRITE_GEOMETRIC_D
Writes a new geometrical compensation D value for a specific tool magazine
location to the CNC.
When this tool is moved into the spindle, this value will be written to the D001
value.
3.57. WRITE_GEOMETRIC_H
Writes a new geometrical compensation H value for a specific tool magazine
location to the CNC.
When this tool is moved into the spindle, this value will be written to the H001
value.
3.58. WRITE_GEOMETRIC_Z
Writes a new geometrical compensation Z value for a specific tool magazine
location to the CNC. This tool data value is not used at this time.
3.59. WRITE_NO_PIECES
Writes a new remaining number of pieces value for a specific tool magazine
location to the CNC.
3.60. WRITE_PLANNED_LIFE
Writes a new planned tool life value (in minutes) for a specific tool magazine
location to the CNC.
3.61. WRITE_POSITION
Writes a new position value for a specific tool magazine location to the CNC.
3.62. WRITE_RATE_X
Writes a new rate of wear in X value for a specific tool magazine location to the
CNC. This tool data value is not used at this time.
3.63. WRITE_RATE_Y
Writes a new rate of wear in Y value for a specific tool magazine location to the
CNC. This tool data value is not used at this time.
3.64. WRITE_REMAINING_LIFE
Writes a new remaining tool life value (in minutes) for a specific tool magazine
location to the CNC.
When this value is 0, the tool is considered worn out and not usable. The CNC
will not select it in the future until its remaining life is greater than 0.
3.65. WRITE_SPARE_TOOL
Writes a new spare tool number (string) value for a specific tool magazine
location to the CNC. The spare tool number specifies the number of the
replacement tool.
3.66. WRITE_SPINDLE_CODE
Writes the Spindle M-code to the CNC to manage up to 6 spindles at the same
time. With this command the PLC can start and stop the spindle without having
it programmed for the CNC. For example, this command directs the CNC to do
an M03 (value of 3, to start spindle clockwise) or an M05 (value of 5, to stop
spindle rotation). The effects of the respective spindle code values are
determined by the setting of the machine parameter SpindleBCDNo.
The spindle operation from the PLC with this function block does not invoke the
spindle gear box feature (see 2.3.11.2). If this feature is active, the CNC will
deal with the SWORD from the PLC within the context of the current gear
range. Even if the SWORD is for a different gear range, the CNC will not
perform the gear change sequence described with the gear box feature.
When the PLC must take spindle control from the CNC use the
ACTIVATE_SWORD function. Since the spindle must have a defined speed
use the WRITE_SWORD function (which can be called before or after
PLC Interface Manual
page 252 / 304
MACHINEMATE®
3.67. WRITE_SPINDLE_ORIENTATION
Stops the Spindle at a specific angular orientation. With this command the PLC
can stop the specific spindle like the M19 without having it programmed for the
CNC.
This command remains active in the CNC until: either the CNC completes the
orientation or one of these events occurs: emergency stop, control reset, or the
PLC calling of one of the related spindle commands (ACTIVATE_SWORD,
DEACTIVATE_SWORD or WRITE_SPINDLE_CODE).
For the PLC to perform the M19 operation this function is called. The
ON_INPxx signal for the spindle’s axis can be used to detect when the M19
has been completed. If this M19 operation is part of the active NC block (either
the M-code in the block causes the orient or this orient is part of the sequence
of operations for another M-code) then the PLC must relinquish control of the
spindle to the CNC or the block will remain in the CYCLE ON condition. When
the PLC is done and the CNC should regain spindle control, use the
DEACTIVATE_SWORD function. Because the CNC will resume its original
spindle operations after this function (so it could resume M3 or M4), if the
spindle should be held in the stopped condition the IN_NULLV01 signal (see
2.3.12.1) can be set to TRUE to hold the spindle D/A at 0V until the next
spindle command for the CNC (e.g., M3, M4, M5, M19).
Only one WRITE_SPINDLE_ORIENTATION can be active at a time. With more
than one spindle, the PLC must call WRITE_SPINDLE_CODE with that
spindle’s stop M-code to proceed with the M19 for that spindle. The
corresponding ON_INPxx signal (for the spindle’s servo or axis) can be
checked to verify the spindle is stopped in position.
Note that this function will interact with the CNC’s built-in spindle behaviors.
The machine parameter SpindleStopRPM defines the speed of spindle motor
rotation (motor speed in RPM) for a spindle orient command, either from an
M19 or from this function. Because this machine parameter is in motor RPM if
there is a spindle gear box (whose behaviors are defined by the Gearbox
parameter group) then the actual spindle speed (of the tool or work piece)
during an orient will depend on the TransmissionRatio for the current gear
range.
The machine parameter SpindleShiftingSpeed defines the speed of spindle
motor rotation (motor speed in RPM) for a gear change, where this value
defines the speed to shift from this gear range (there is a value for each gear
range). If the WRITE_SPINDLE_ORIENTATION is commanded during an
active gear change while the spindle is turning at the SpindleShiftingSpeed
then that speed is used for the spindle orient (not SpindleStopRPM) so the
PLC Interface Manual
page 253 / 304
MACHINEMATE®
speed of the orient during a gear change is dependent on the current gear
range and the machine parameter. Upon this function, the spindle will maintain
its speed and then perform the orient command; no spindle speed change
occurs prior to the orient. The spindle will remain in its orient position until the
DEACTIVATE_SWORD function (see 3.9) returns control of the spindle back to
the CNC. Therefore the correct IN_GEARxx value (see 2.3.11.2) should be set
by the PLC prior to the DEACTIVATE_SWORD function. The CNC does not
process the next intermediate block within the gear change sequence until both
the correct IN_GEARxx condition is detected and the CNC has control of the
spindle. Note that SpindleShiftingSpeed must be non-zero for the
WRITE_SPINDLE_ORIENTATION function to work during a gear change.
3.68. WRITE_SPOTI
Writes the Spindle ‘pot’ override (‘poti’ is short for potentiometer) to the CNC for
the desired spindle(s).
3.69. WRITE_SUPPLEM_X
Writes a new supplementary compensation for X value for a specific tool
magazine location to the CNC. This tool data value is not used at this time.
3.70. WRITE_SUPPLEM_Y
Writes a new supplementary compensation for Y value for a specific tool
magazine location to the CNC. This tool data value is not used at this time.
3.71. WRITE_SWORD
Writes S-word for a maximum of 6 spindles to the CNC. This S-word will
(temporarily) override the value programmed by the operator and/or the NC
part program when the PLC takes control of the spindle from the CNC.
This S-word is not active until the PLC has taken control of the spindle from the
CNC using the ACTIVATE_SWORD function (with the spindle M-code for the
PLC coming from the WRITE_SPINDLE_CODE function). When the PLC has
relinquished its control of the spindle using DEACTIVATE_SWORD function,
the spindle immediately returns to its previous modal S-value and the previous
modal spindle M-code (e.g., M3, M4, M5).
input data: WORD Spindle_Number Mask for the spindles that are to
affected by this S-word
REAL SWORD New S-word for spindle(s)
3.72. WRITE_TOOL_NUMBER
Writes a new tool number (string) value for a specific tool magazine location to
the CNC.
The tool number is used to identify the tool for the part program as a T-code.
The tool in a location cannot be selected by the CNC unless its tool number is
not 0.
Data : Type Name Comment
3.73. WRITE_TOOL_TYPE
Writes a new tool type value for a specific tool magazine location to the CNC.
Refer to READ_TOOL_TYPE for a description of the respective tool type
values.
If this value is 0, the tool is not usable and will not be selected by the CNC
even if its tool number is not 0.
Data : type Name Comment
3.74. WRITE_WARNING_LIMIT
Writes a new tool life warning limit value (in minutes) for a specific tool
magazine location to the CNC.
fRESET_HANDWHEEL_FACTOR function
fSELECT_NC_PROGRAM function block
fSET_G92_OFFSET function
fSET_JOG_INCREMENTS function
fSET_POSITIONING_FEED function
fWRITE_ANALOG_CHANNEL function
fWRITE_APPL_DATA function
fWRITE_SPINDLE_CODE function
fWRITE_SPINDLE_ORIENTATION function
fWRITE_SPOTI function
fWRITE_SWORD function
Name Type
fGET_D_CORR function
fGET_D_R function
fGET_D_WEAR function
fGET_H_CORR function
fGET_H_I_CORR function
fGET_H_I_WEAR function
fGET_H_J_CORR function
fGET_H_J_WEAR function
fGET_H_WEAR function
fGET_PARAMETER function
fGET_PART_POS_OFFS function
fSET_D_CORR function
fSET_D_R function
fSET_D_WEAR function
fSET_H_CORR function
fSET_H_I_CORR function
fSET_H_I_WEAR function
fSET_H_J_CORR function
fSET_H_J_WEAR function
fSET_H_WEAR function
fSET_PARAMETER function
fSET_PART_POS_OFFS function
Note: The fGET_D_R and fSET_D_R were added in CNC version 2.0 while the
other functions were added in CNC version 1.9 so these functions did not
exist in earlier versions.
4.2.1. fGET_D_CORR
Obtains the D table (tool diameter or radius compensation) path correction
value for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX D-Table index for the desired
value (1..128)
4.2.2. fGET_D_R
Obtains the D table (tool diameter or radius compensation) dresser wheel
compensation value (ranges from 0 to 9) for a given index for the specified
CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX D-Table index for the desired
value (1..128)
4.2.3. fGET_D_WEAR
Obtains the D table (tool diameter or radius compensation) path correction
wear offset value for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX D-Table index for the desired
value (1..128)
4.2.4. fGET_H_CORR
Obtains the H table (tool length compensation) length correction value for a
given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX H-Table index for the desired
value (1..128)
4.2.5. fGET_H_I_CORR
Obtains the H table (tool length compensation) length correction value, first
axis, for a given index for the specified CNC station.
Note that for the H_I and H_J functions for the H-table the machine parameter
HCorrAxes configures which axis is first and which is second in the table.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX H-Table index for the desired
value (1..64)
4.2.6. fGET_H_I_WEAR
Obtains the H table (tool length compensation) length correction wear offset
value, first axis, for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX H-Table index for the desired
value (1..64)
4.2.7. fGET_H_J_CORR
Obtains the H table (tool length compensation) length correction value, second
axis, for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX H-Table index for the desired
value (1..64)
4.2.8. fGET_H_J_WEAR
Obtains the H table (tool length compensation) length correction wear offset
value, second axis, for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX H-Table index for the desired
value (1..64)
4.2.9. fGET_H_WEAR
Obtains the H table (tool length compensation) length correction wear offset
value for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX H-Table index for the desired
value (1..128)
4.2.10. fGET_PARAMETER
Obtains the cycle parameter table value (P-parameter) for a given index for the
specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX P-parameter index (1..1000)
4.2.11. fGET_PART_POS_OFFS
Obtains the part position offsets table (G54-G59 part zero offsets) axis offset
value for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX G-corrections table index for
the desired value (1..6 where
G54=1, …, G59=6)
DWORD AXIS Number of the axis for the
offset (1..32, where X is
usually 1, etc.)
4.2.12. fSET_D_CORR
Writes a new path correction value in the D table (diameter or radius
compensation) for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
WORD IDX D-Table index for the desired
value (1..128)
LREAL VALUE New value for the specified
index in the table
4.2.13. fSET_D_R
Writes a new dresser wheel compensation value (ranges from 0 to 9) in the D
table (diameter or radius compensation) for a given index for the specified CNC
station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
WORD IDX D-Table index for the desired
value (1..128)
LREAL VALUE New value for the specified
index in the table (0..9)
4.2.14. fSET_D_WEAR
Writes a new path correction wear offset value in the D table (diameter or
radius compensation) for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
WORD IDX D-Table index for the desired
value (1..128)
LREAL VALUE New value for the specified
index in the table
4.2.15. fSET_H_CORR
Writes a new length correction value in the H table (tool length compensation)
for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX H-Table index for the desired
value (1..128)
LREAL VALUE New value for the specified
index in the table
4.2.16. fSET_H_I_CORR
Writes the new length correction value, first axis, in the H table (tool length
compensation) for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX H-Table index for the desired
value (1..64)
LREAL VALUE New value for the specified
index in the table
4.2.17. fSET_H_I_WEAR
Writes the new length correction wear offset value, first axis, in the H table (tool
length compensation) for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX H-Table index for the desired
value (1..64)
LREAL VALUE New value for the specified
index in the table
4.2.18. fSET_H_J_CORR
Writes the new length correction value, second axis, in the H table (tool length
compensation) for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX H-Table index for the desired
value (1..64)
LREAL VALUE New value for the specified
index in the table
4.2.19. fSET_H_J_WEAR
Writes the new length correction wear offset value, second axis, in the H table
(tool length compensation) for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX H-Table index for the desired
value (1..64)
LREAL VALUE New value for the specified
index in the table
4.2.20. fSET_H_WEAR
Writes the new length correction wear offset value in the H table (tool length
compensation) for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX H-Table index for the desired
value (1..128)
LREAL VALUE New value for the specified
index in the table
4.2.21. fSET_PARAMETER
Writes the new cycle parameter table value (P-parameter) for a given index for
the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX P-parameter index (1..1000)
LREAL VALUE New value for the specified
index in the table
4.2.22. fSET_PART_POS_OFFS
Writes the new axis offset value in the part position offsets table (G54-G59 part
zero offsets) for a given index for the specified CNC station.
Data : Type Name Comment
input data: WORD CHANNEL CNC station for this data (1..8)
DWORD IDX G-corrections table index for
the desired value (1..6 where
G54=1, …, G59=6)
DWORD AXIS Number of the axis for the
offset (1..32, where X is
usually 1, etc.)
LREAL OFFS New value for the specified
index in the table
Name Type
EXTCLEARERROR function
EXTCLOSEDATACHANNEL function
EXTOPENDATACHANNEL function
EXTREADDATA function
EXTWRITEDATA function
5.1. EXTCLEARERROR
Clears any error state in a specified external data channel that might have
occurred during the last access.
output data: DINT Return_value The function’s return value indicates the
result:
0= pending request completion
1= success
-1= failure (Error indicates the reason)
The list of possible errors that can be generated from the functions in this
library:
5.2. EXTCLOSEDATACHANNEL
Closes a specified external data channel.
output data: DINT Return_value The function’s return value indicates the
result:
0= pending request completion
1= success
-1= failure (Error indicates the reason)
5.3. EXTOPENDATACHANNEL
Opens a channel to an external data source.
input data: DINT Channel Number for the external data channel,
in the range of 0 to 7
Pointer to a Error If an error occurs, the error is provided
STRING in the string that the pointer indicates
BYTE Typ Type of data access for this channel
1: name input is a file name
2: name input is for a shared memory-
mapped file (not used)
3: name input is for a serial device (so it
must be COMx and it will always be
accessed sequentially; Attr:=0)
4: name input is for a parallel or printer
device (so it must be PRN or LPTx
and it will always be accessed
sequentially; Attr:=0)
BYTE Attr Attributes for this data access. This is a
bit field that can have any
combination set:
Bit 1 (LSB) access: 0=sequential,
1=random access using the offset
input
Bit 2 file: 0= file will be created if it does
not exist, 1= file must exist
Bit 3 read access: 0= read required, 1=
no reading allowed
Bit 4 write access: 0= write required, 1=
no writing allowed
Pointer to a Name Name of the external data source. If a
STRING file, the string is the complete file
name including device name and
directory path; if not a file, the string
must conform to the requirements of
the type input
output data: DINT Return_value The function’s return value indicates the
result:
0= pending request completion
1= success
-1= failure (Error indicates the reason)
5.4. EXTREADDATA
Reads a defined amount of data from a specified external data channel.
output data: DINT Return_value The function’s return value indicates the
result:
0= pending request completion
1= success
-1= failure (Error indicates the reason)
Note. To switch between reading and writing of serial data but the
EXTREADDATA has not completed its read (for example, it is polling for input
data), the EXTREADDATA call has to have its Size input variable changed to 0
bytes. This will result in a successful conclusion of the ‘read’ (so Return_value
will become 1, rather than 0 – 0 indicates ‘busy’), thereby allowing a write to
occur from the PLC. If the PLC does not execute this transition, a ‘write’ during
a ‘read’ results in an error of 7 (see 5.1.1).
5.5. EXTWRITEDATA
Writes a defined amount of data to a specified external data channel.
output data: DINT Return_value The function’s return value indicates the
result:
0= pending request completion
1= success
-1= failure (Error indicates the reason)
6. DDE-interface
The PLC provides a DDE server, which makes all the user-defined variables
inside the PLC Program available for any applications running on the host PC.
All PLC system variables defined for the interface to and from the CNC are also
made available via this DDE server. This includes all signals from the PLC-
CNC signal-interface (chapter 2) and all cycle parameters and compensations
(chapter 1) that are referenced in the PLC application. For example:
The general format for the PLC application variable via the DDE interface is
‘POUname.variablename,’ as in:
PLC_PRG.OperatorMessage
If the variable is in the PLC application’s global data, then the ‘POUname’ is
blank, as in:
.IN_START
The DDE interface for the DDE client to reference the data in the PLC
application is simply:
DDE server name DDE topic DDE variable name
so the complete DDE reference from the external software would be:
PLC PLCDATA POUname.variablename
and the delimiters between these three fields depend on the specific software
package (so the Microsoft Word delimiters are different than those in Microsoft
Excel and so on).
This DDE interface may be used by any DDE client, which would include the
MachineMate Visualization tool.
(For more information, see PLC-1131-3 DS: chapter: DDE-interface.)
7.1.1. MMI_LEVEL
The dword MMI_LEVEL sends the actual MMI level to the PLC.
This dword shows the actual active operating mode of the MMI (i.e., the main
level: MANual, AUTOmatic, DATA, INFO, SYStem, and SETUP) and the next
active level, or the function key level.
Bits
1 ... 16 Other key levels
Because the first 24 bits apply to function levels not reached with the standard
operator displays (and their soft key levels), this dword should be used with
masking out of the first 24 bits.
- (i.e., dword_value AND 0FF00000H).
Bit 32 was used on the Windows NT operator interface to indicate its Zoom
level, which was a temporary state for the other operating modes. In the
Windows 2000 or Linux systems, the Zoom level is one of the main operating
modes so bit 32 is not used in those systems (so it is always 0).
Value of bit
25 ... 28 Meaning: Dword value
(bit coded)
-------------------------------------------------------------------------------------------------
0001 Function key F1 activated OR 01000000H
0010 Function key F2 activated OR 02000000H
0011 Function key F3 activated OR 03000000H
0100 Function key F4 activated OR 04000000H
0101 Function key F5 activated OR 05000000H
0110 Function key F6 activated OR 06000000H
0111 Function key F7 activated OR 07000000H
1000 Function key F8 activated OR 08000000H
The same bit values (in the left column above) apply to other function key level
activations (for bits 1 to 24).
Value of bit
29 ... 31 Meaning: Dword value
(bit coded)
-------------------------------------------------------------------------------------------------
000 Manual mode active (selected) OR 00000000H
001 Automatic mode active (selected) OR 10000000H
010 Data mode active (selected) OR 20000000H
011 Information mode active (selected) OR 30000000H
100 System mode active (selected) OR 40000000H
101 Setup mode active (selected) OR 50000000H
110 Zoom mode active (selected) OR 60000000H
Examples: = Value
-------------------------------------------------------------------------------------------------
• MANual, incremental mode = 02000000H
• AUTO, program process 1 = 12000000H
• INFO, status treatment = 33000000H
• Zoom mode = 60000000H
7.1.2. MMI_LASTKEY
The dword MMI_LEVEL sends the last activated key from the MMI to the PLC.
This dword represents the last activated key from the MMI with the following
described hexadecimal coded values :
The soft key ‘just activated’ condition requires that the soft key actually resulted
in an action, not just that the operator just selected that soft key. If the soft key
is unassigned on the MMI then the operator’s selection of that soft key will just
result in an error message (that the function cannot be selected) and the PLC
will not get the signal that the soft key was activated.
If the PLC wishes to use a soft key to trigger an action within the PLC
application, then the soft key must be assigned. It is possible to create a new
soft key on the MMI that is used just by the PLC, not by the MMI. Using the
MMI Setup capability to add a user defined soft key, the desired soft key can
be given a name and it can be assigned to run a program on the host
computer. Since the soft key will be used just to trigger a PLC event, then the
suggested implementation is to 1) create a batch file (e.g., nothing.bat) that
consists of a single line with a remark statement (e.g., ‘rem do nothing’ is the
first and only line in the file) and 2) assign the soft key to run this batch file.
These steps enable a soft key to be assigned for use by the PLC. Upon the
operator selecting this newly assigned soft key, the MMI will actually do nothing
productive in this operation since the batch file itself does nothing. However,
since the soft key is assigned to a valid operation, the PLC gets the signal from
the MMI that the soft key was just activated. The sequence to add a user
defined soft key is described in the Operator Manual.
7.1.3. MMISTATION
The dword MMISTATION sends the current CNC station selection from the
MMI to the PLC. It will range in value from 1 to 8.
The operator can change this CNC station selection using the MMI via
SYSTEM, Station Selection (see the Operator Manual).
The PLC can change this CNC station selection using the function
SELECT_NC_STATION (see chapter 3.45).
The PLC programmer(s) can create one or more language dependent text files
named "plcerrors_xx.txt" to define their own PLC messages, where "xx"
identifies the language name (e.g., plcerrors_en.txt for English, plcerrors_de.txt
for German, etc.).
This text file (or files) must be placed in the MMI startup directory with the
standard language text files provided with the CNC software (in the default
folder for these configuration files: \Program Files\MM\Hmi\Cfg). In this file, the
PLC programmer can define the messages with the corresponding message
numbers.
The file format is the same as in the standard language files for the CNC. This
file format follows the conventions used in other text files found in Microsoft
Windows environments. The ; character is used to identify comments (all
characters to the right of the ; on the line are ignored during the processing of
the file). Blank or empty lines in the file are ignored. A keyword (for all following
parameters up to the next keyword) is provided between the [ and ] characters;
for this file the keyword must be [plc]. The name of the specific parameter is to
the left of the = character (here it is always just a number) and the assigned
value for that parameter is to the right of that = character.
File Format:
[plc]
; this is the section name of the file
; Comment. Comments can be placed anywhere in the file
; with the semicolon in first position on the line.
There are several rules for the use of messages within this file.
There are several global variables associated with the PLC access to CNC
error messages. These are similar to those listed in chapter 1.2 of this manual.
However, these global variable names are listed in this chapter because they
are needed only if the PLC requires access to the CNC error messages.
Note that the number of errors in a CNC station will count up from 0 to 16.
Each is the count of CNC errors and does not include those PLC messages
sent to the CNC via the WRITE_ERROR_MESSAGE function. When the PLC
reads one of these errors using the GET_CNC_ERR function block (see
below), then the error count is decremented (to indicate the number of
remaining errors). A control reset (which clears all of the CNC error messages)
also clears the CNC error count. A message acknowledge from the MMI does
not affect the CNC error count. Each variable’s data type is an unsigned byte.
From the cncstd.lib, a function block is also available for the PLC to access
error information from the CNC:
Name Type
GET_CNC_ERR function block
7.3.1. GET_CNC_ERR
This function block, GET_CNC_ERR, allows the PLC application access to the
CNC error information, including the error number, its error status, the error
type and the complete error message string.
REQ_CHANNEL (BYTE)
The CNC station or channel has a range of 1 to 8, to indicate
from which CNC station the error information will be read.
REQ_ERR_DIR (INT)
Flag for the navigation direction through the CNC’s error list.
–2 = Get first CNC error
–1 = Get previous CNC error
1 = Get next CNC error
2 = Get last CNC error.
This flag points to the first CNC error after initialization of the
PLC program.
LANG_ID (DINT)
The language’s ID in which the error’s text will be put into the
output item ERR_TEXT (see also country code pages in
Windows online help and refer to the installed MMI*.txt files). The
language ID definitions are from Microsoft Windows.
For example:
407 hex = 1031 decimal = German
409 hex = 1033 decimal = US English
After this function block is processed by the CNC, the VALID output of this
function block informs the PLC program when the other outputs are written by
the CNC.
The GET_CNC_ERR function block has seven output input parameters.
Remember that the respective output values are valid only when the output
VALID value is 1.
ERR_NUMBER (WORD)
The CNC error number is shown in the bottom of the left status
bar icon.
ERR_QUIT_STATE (BYTE)
The conditions that this error can be cleared:
1 = The next keyboard or panel input clears this error.
3 = The CNC clears this error itself.
4 = This error can be cleared by pressing the Ctrl+X keys (Quit
or message acknowledge) or Ctrl+C keys (Control Reset).
Notes:
The CNC error that has been read by the PLC will be removed from
the CNC error list after the error’s information has been transferred
into the function block outputs. The count of errors in this CNC
station (CNC_ERR_CNT) will be decreased by one also.
The MMI error texts are stored in the MMI*.txt files (in the directory:
\program files\mm\mmi). Please refer to the installed MMI*.txt files
for reference (as a working example for the file format). The
language ID is stored in the entry 00000 of the MMI*.txt file.
The PLC application should not repeatedly call this function block
until the VALID flag gets set to 1. The PLC runtime system continues
processing the first call of the function block until all error information
for the outputs is valid.
The PLC runtime system can only manage one call of this function
block at a time. If you have more than one instance of this function
block called in your PLC program or you repeatedly call this function
block while the PLC runtime system is responding to the first call, all
further calls will be ignored. You can detect this with the STATE
output value.
PROGRAM PLC_PRG
VAR
NxtCncErr : BOOL := TRUE;
CncErr : GET_CNC_ERR;
END_VAR
The format for the signal name will be POU.name. Often the I/O variables are
declared in the PLC application’s global variables so that the entire variable
name is visible in that MMI window (since then it will be displayed as just .name
as there is no POU name for global variables).
Note:
Just declaring the I/O bit position in the PLC application is not sufficient for
the MMI display. The variable must be accessed within the application to be
displayed in the MMI. If an I/O point is not used in the PLC application but its
state is desired from the MMI (e.g., the override switch positions), then use a
‘dummy’ Boolean variable for this required access (e.g., in structured text
add: DUMMY := FEEDOVRD1;).
The same conditions apply if an I/O bit location will be forced. To force an
I/O bit location, at least one bit in the byte must be used in the PLC
application. If none of the bits in the I/O byte are used, then the state of the
I/O bit will not be forced.
Note: The MMI_COMMAND was added in CNC version 2.0 so it did not exist in
earlier versions. It is compatible only with the browser-based operator interface
introduced with version 2.0, not the earlier version of the MMI.
7.5.1. MMI_COMMAND
Send a command to the MMI to process like an operator input (as if the
operator had selected the specified key or action). The only commands
supported by this function block are those defined for the operator interface.
This command references the commands defined for the HMI (operator
interface) package. The HMI configuration file (with its default location:
C:\Program Files\MM\HMI\usr\hmi.cfg) will have many lines that look like this:
10000006=pcoord
where the first number indicates the soft key level (in this case the first 1 in the
value indicates this is the first soft key (in System, from Display functions) and
the last 6 in the value indicates this is the sixth soft key, for Program
Coordinate selection), the string after the = is the button’s function. This PLC
function references that last string – the command for the button. The
command string to the MMI is ‘<function>@hmi’. The list of these functions is in
another HMI configuration file (hmi_en.txt in the same folder). There are other
special commands possible from the PLC, including commands like
‘hardkey#1@hmi’ which is the same as the selection of the first hard key
(Manual mode, from the top bar with the respective mode selections) or
‘softkey#2@hmi’ which is the same as the selection of the second soft key (on
whatever is the current operating mode). With these functions and key
commands, the PLC can request operator actions without the operator.
If this function is called for the older operator interface (the Windows NT
system, not the browser-based HMI introduced with CNC version 2.0), the
operator interface will generate an error message regarding the unaccepted
command. Only the browser-based HMI will respond to this command from the
PLC.
There are several common applications for this function block.
The first involves the PLC exercising menu navigation commands to activate
the desired display. This involves a series of commands with this function block
to mimic the operator actions. The first command is usually the appropriate
PLC Interface Manual
page 281 / 304
MACHINEMATE®
mode key using a COMMAND string like ‘hardkey#1@hmi’ that performs the
same action as the operator pressing the Manual mode button on the top of the
CNC display. The PLC should monitor the ReturnState for the 3 value. The
next COMMAND string would be like ‘softkey#1@hmi’ that performs the same
action as the operator pressing the first soft key for the active display.
Subsequent ‘softkey#X@hmi’ commands will navigate further into the operator
interface displays.
The PLC logic requires time delays between these MMI commands, with
typically a longer delay after the hardkey# commands than after the softkey#
commands. The reason for this delay is the CNC operator interface must
change its context to recognize the subsequent command from the PLC. If
there is not sufficient delay then a PLC MMI command might be ‘missed’
because the CNC was not ‘ready’ for it. These time delays will vary based on
the CNC model but typical times are 600ms after a hardkey# and 300ms after a
softkey#.
The second common application for this function block is the setting of the
Program Coordinate display function. The Operator Manual describes this
feature and how the axis position column will change based on this display
function. The most common use of this display function is so X position is
shown as diameter not radius when the part program is in diameter mode. The
action for the Program Coordinate display function is ‘pcoord’ (found in the
hmi.cfg file for the particular soft key assignment). Therefore the COMMAND
string for this display function will be ‘pcoord:hmi@hmi’. When this display
function is desired as the power-up default, this PLC command is typically done
after a short delay upon the start of PLC scanning (done by a BOOL local
variable that will be FALSE when the software powers up or restarts; that
transition can trigger a time delay and then this MMI_COMMAND).
Note that the string to the CNC is entirely in lower case, to match its usage
within the operator interface software.
Name Type
LREAL_TO_STR function
LREAL2STR function
REAL_TO_STR function
REAL2STR function
7.7.1. LREAL_TO_STR
Converts a floating-point value into an ASCII string (default format).
7.7.2. LREAL2STR
Converts a floating-point value into a formatted ASCII string.
7.7.3. REAL_TO_STR
Converts a floating-point value into an ASCII string (default format).
7.7.4. REAL2STR
Converts a floating-point value into a formatted ASCII string.
Name Type
GET_LOCAL_TIME function
GET_SYS_DATE_TIME function
GET_SYSTEM_TIME function
Note: These functions was added in CNC version 2.2 so they did not exist in earlier
versions.
7.8.1. GET_LOCAL_TIME
Gets the current local time, in milliseconds, from the host. This DWORD is the
number of milliseconds in the current 24-hour day. Therefore it can be
converted into a TIME value or TIME_OF_DAY (TOD) value using the
appropriate data type conversion (DWORD_TO_TIME or DWORD_TO_TOD).
Since the value returned is the 24-hour time, if the DWORD is converted into a
data type involved with the date the resulting value will not be valid.
7.8.2. GET_SYS_DATE_TIME
Gets the current system time from the host. This DWORD is the number of
seconds since the midnight, January 1, 1970 in Coordinated Universal Time
(so the difference between this UTC and the current local time depends on the
local 24-hour time zone). This value can be converted into a DATE value or
DATE_TIME (DT) value using the appropriate data type conversion
(DWORD_TO_DATE or DWORD_TO_DT). Since the value returned is the
current time in seconds, if the DWORD is converted into a data type involved
with only the time (which is based in milliseconds) the resulting value will not be
valid.
7.8.3. GET_SYSTEM_TIME
Gets the current system time, in milliseconds, from the host. This DWORD is
the number of milliseconds in the 24-hour day, according to Coordinated
Universal Time (so the difference between this UTC and the current local time
depends on the local 24-hour time zone). This value can be converted into a
TIME value or TIME_OF_DAY (TOD) value using the appropriate data type
conversion (DWORD_TO_TIME or DWORD_TO_TOD). Since the value
returned is the 24-hour time, if the DWORD is converted into a data type
involved with the date the resulting value will not be valid.
Name Type
GET_RING_STATE function block
READ_SERCOS_PARAMETER function block
RING_COMMAND function block
SERCOS_COMMAND function block
WRITE_SERCOS_PARAMETER function block
8.1. GET_RING_STATE
Gets the current state information for the specified SERCOS ring.
Note: This function block was added in CNC version 2.0 so it did not exist in
earlier versions.
8.2. READ_SERCOS_PARAMETER
Obtains the data for a specific SERCOS parameter from a specific drive within
a specific SERCOS ring.
Note: This function block was added in CNC version 1.9 so it did not exist in earlier
versions.
8.3. RING_COMMAND
Performs a specific command within a specific SERCOS ring.
interface,
3 = boot this ring to phase 0,
4 = boot this ring to its next
phase,
5 = set the master’s
transmitter current to new
value,
6 = read all the drive
parameters in the ring,
7 = write all the drive
parameters in the ring
DWORD RingNumber SERCOS ring (0..3, for ring
number 1..4)
Note: This function block was added in CNC version 1.9 so it did not exist in earlier
versions.
8.4. SERCOS_COMMAND
Performs a specific command in a specific drive within a specific SERCOS ring.
Note: This function block was added in CNC version 1.9 so it did not exist in earlier
versions.
PLC Interface Manual
page 290 / 304
MACHINEMATE®
8.5. WRITE_SERCOS_PARAMETER
Writes the data for a specific SERCOS parameter to a specific drive within a
specific SERCOS ring.
Note: This function block was added in CNC version 1.9 so it did not exist
in earlier versions.
The libraries that must be associated with the PLC project depend on the
requirements of the PLC interface. To obtain the list of libraries for a specific
PLC project, first run the PLC programming tool and then open the desired
project. For the list, select the Window item on the top menu bar and then
select Library Manager from the drop down menu list.
The Library Manager feature of the PLC programming tool is described in
Chapter 7 of the CNC Software Manual – PLC Programming.
9.1. Standard.lib
When a new PLC project is created, the default library list usually consists of
only STANDARD.LIB. This library contains the various functions and functions
blocks that are described in Appendix D of the CNC Software Manual – PLC
Programming. The functions and function blocks in this library include those
described (in that manual chapter) for the
• String functions
• Bistable function blocks
• Trigger
• Counter
• Timer
If the PLC application requires any of the functions or function blocks listed in
the Chapter 3 of this manual, then these two libraries must be included in the
PLC project: CNCLIB.LIB and CNCPLC.LIB. The first library adds the low-level
communication interface between the PLC and the CNC. The second library
adds most of the functions and function blocks described in Chapter 3 of this
manual.
9.3. Cffplc.lib
If the CNC application requires more than one CNC station, then the PLC
application might require support for multiple stations as well. To use that
capability then the CFFPLC.LIB library must be included in the PLC project.
This library adds all the functions and function blocks described in Chapter 4.1
of this manual.
Note that the feature of multiple CNC stations is an option in the CNC software
and so it is not available in all controls.
9.4. Extdata.lib
If the PLC application requires support for direct file access or for direct device
access (such as a serial port (i.e., one of the COM ports) or the parallel port),
then an additional library is needed. To use those items then the
EXTDATA.LIB library must be included in the PLC project. This library adds all
the functions and function blocks described in Chapter 5 of this manual.
9.5. Cncstd.lib
If the PLC application requires access to the CNC tables and data items listed
in chapter 1.2 but for a station other than station 1, then an additional library is
needed. The CNCSTD.LIB library must be included in the project to use those
associated functions. This library adds all the functions described in chapter 4.2
of this manual.
If the PLC application requires access to the CNC error message information or
the special real to string functions then the CNCSTD.LIB library must be
included in the project to use those associated functions and function blocks.
This library adds all the functions and function blocks described in chapters 7.3
and 7.7 of this manual.
If the PLC application requires direct access to the MMI displays (such as
changing the active display) the the CNCSTD.LIB library must be included in
the project to use those associated function blocks. This library adds all the
functions and function blocks described in chapter 7.5 of this manual.
If the PLC application requires access to the host time information then the
CNCSTD.LIB library must be included in the project to use those associated
functions. This library adds all the functions described in chapter 7.8 of this
manual.
If the PLC application requires access to the SERCOS drive interface, then the
CNCSTD.LIB library must be included in the project to use those associated
function blocks. This library adds all the functions and function blocks
described in chapter 8 of this manual.
TRUNC
Index
A/D input ...................................................... 21, 22, 236 CNC
ACT_POS_1............................................................... 15 Channel (or station).................................................15
Analog Feed Control enable ....................................... 74 Command for Automatic mode and display............99
Analog input ................................................. 21, 22, 236 Command for Manual mode and display ................95
Analog output ............................................... 21, 22, 247 Cycle on ................................................................145
Automatic mode command......................................... 99 Emergency stop.....................................................150
Auxiliary push-button............................................... 158 Feed rate hold........................................................146
Axes are not interpolated .......................................... 165 General state signals..............................................144
Axis Inputs ................................................................24, 54
Actual position.................................................. 15, 18 Optional stop M01 ................................................161
Command position............................................ 15, 18 Outputs..............................................................24, 57
Drift ...................................................................... 161 Program start.........................................................147
Drive enable.................................................... 83, 161 Return to path........................................................160
EGB motion command active............................... 216 Station .....................................................................15
End position.......................................................... 182 CNC data
End position for PLC.................................... 220, 222 Active NC program block number ..........................16
Feed interpolation enabled...................................... 71 Active NC program number....................................16
Feed rate ........................................................... 16, 18 Active subroutine program number.........................16
Feedback check disable .......................................... 78 Actual feed rate .......................................................16
Home switch input.................................................. 85 Actual position ........................................................15
Homed ok ............................................................. 183 c2xxxx for Station 2 data ........................................18
Homing all in sequence .................................... 66, 98 Command feed rate .................................................16
Homing one axis..................................................... 98 Command position ..................................................15
In position............................................................. 181 D-corrections...........................................................15
Interpolation enabled .............................................. 84 G-corrections...........................................................15
Is mirrored .................................................... 113, 191 H-corrections...........................................................15
Jog continuous ............................................ 92, 94, 96 Machine position.....................................................15
Jog incremental........................................... 92, 94, 96 P-Parameters ...................................................15, 226
Jog mode continuous ............................................ 149 Zero offsets .............................................................15
Jog mode incremental ........................................... 148 CNC data interface......................................................15
Jog via handwheel ............................................ 92, 94 CNC function interface ..................... 223, 257, 258, 288
Machine position .............................................. 15, 18 CNC tables interface ...................................................15
Mirroring strobe...................................................... 80 CNC_ERR_CNT...............................................276, 279
Motion command active ....................................... 192 COM1 .......................................................................268
Motion with handwheel ........................................ 193 Control reset................................................25, 154, 276
Move by PLC active ..................................... 219, 221 Cycle
Move by PLC completed .............................. 220, 222 Start.........................................................................65
Move by PLC enabled .......................................... 116 Stop .........................................................................68
Multiple axis jog........................................... 123, 124 Cycle input byte ..........................................................89
Pitch error comp ................................................... 163 Cycle output byte ......................................................185
Position CAM state............................................... 195 D/A output ....................................................21, 22, 247
Second set of software limits .................................. 86 D001............................................................15, 140, 237
Stepper control........................................................ 83 DDE interface ...........................................................270
Switch-over spindle/rotational axis ...................... 207 Direct mode...............................................................103
Will move during program ................................... 161 Distance control
BCD-code is valid .................................................... 173 Enable .....................................................................81
Block delete (/) active............................................... 162 Status.....................................................................172
BLOCKNUMBER...................................................... 16 D-Parameters...............................................................15
Byte number assignments ........................................... 12 DR001.........................................................................15
CAM signal for axis position.................................... 194 Drift of analog axis ...................................................161
Close axis control loop ............................................... 82 DriveOnLock ..............................................................83
CMD_POS_1.............................................................. 15 DW001........................................................................15
Libraries InpositioningArea..................................................182
Cffplc.lib....................................................... 257, 292 M40Appl ...............................................................107
Cnclib.lib .............................................................. 292 ManOverride .........................................................114
Cncplc.lib.............................................. 223, 292, 295 OverrideAppl ................................................114, 115
Cncstd.lib......223, 226, 258, 276, 280, 284, 286, 288, ParkAxesAppl .......................................................112
293, 295 ParkAxesInitialState..............................................112
Extdata.lib............................................. 266, 293, 295 PLCMirrorReset....................................................113
List of functions and function blocks ................... 293 PLCOverrideByteNo.............................................115
Standard.lib................................................... 292, 294 Read specific parameter ........................................236
Light output .......................................................... 19, 20 RefAddressAppl......................................................85
LPT........................................................................... 268 RefAxesAppl...........................................................85
M00 .......................................................................... 151 SAxisFeedAppl .......................................................94
M01 ............................................................ 76, 151, 161 ShifingSpindleSpeed.............................................108
M02 .................................................................... 25, 152 SoftwareCamAppl.................................................195
M03 .................................................................. 108, 252 SoftwareCamValue ...............................................195
M05 .......................................................................... 252 SoftwareLimitMinus ...............................................86
M06 .......................................................... 132, 213, 214 SoftwareLimitPlus ..................................................86
M19 .................................................................. 176, 253 SpindleBCDNo .....................................................252
M30 ............................................................ 25, 152, 172 SpindleFeedbackAppl ...........................................190
M40 .......................................................................... 108 SpindleInpositionDiff....................................189, 190
M41 .......................................................................... 108 SpindleInpositionPerCent .....................................189
Machine input............................................................. 19 SpindleOverride ....................................................115
Machine output ........................................................... 19 SpindleShiftingSpeed............................................253
Machine Parameter SpindleSlopTime...................................................108
AdditionKeyIOAddress ........ 114, 146, 147, 158, 159 SpindleStopRPM...................................................253
AutoFeedoverride ................................................. 114 TransmissionRatio ................................................253
AxisSlopeTime ..................................................... 235 WCycleByteNo .......................................................89
AxisSpeedMaxAppl.............................................. 246 Write specific parameter .......................................247
BCDByteMaskIndex .................................... 128, 208 MAINPROGNUMBER ..............................................16
BCDDistanceTime........................................ 154, 174 Manual mode command..............................................95
BCDStrobeTime ............................................. 72, 174 M-code ..............................................................170, 173
CharacterApplTab ........................................ 174, 241 MMI
CycleAnalogIn...................................................... 236 Axis jog with handwheel selection........................193
CycleAnalogOut ................................................... 247 CNC Station is active............................................149
DistContrMCodeOn................................................ 81 Command from PLC.............................................281
DistSignalByte........................................................ 81 Command with hardkey# ......................................282
DriveOnAppl .......................................................... 83 Command with softkey# .......................................282
EGBLagDiff1 ....................................................... 217 Function interface .................................275, 277, 280
EGBLagDiff2 ....................................................... 217 Function key level.................................................271
EGBSynchronDifferencePLC............................... 169 Hard key selection from PLC................................281
ExtModeHandwheelFeed ............... 94, 230, 232, 233 Info PLC Interface ................................................280
ExtModeHandwheelFeed2 ........................... 230, 232 Operating mode level ............................................271
ExtModeJogInkr ..................................................... 94 PLC interface ........................................................271
ExtModeManFeed .................................................. 94 Program Coordinate display function ...................282
FaktInchMetric ..................................................... 233 Soft key selection from PLC .................................281
FastIOByteAppl1.................................................. 122 Zoom key ..............................................................271
FastIOByteAppl2.................................................. 122 MMI_LASTKEY ......................................................273
FastIOPLCByteBitMask....................................... 121 MMI_LEVEL ...........................................................271
FastIOPLCByteIO ........................................ 120, 122 MMISTATION .........................................................274
FastIOPLCByteOutMask...................................... 121 Multiple axis jog ...............................................123, 124
GCodeAppl............................................................. 25 Multiple CNC stations
HandwheelBCDAppl............................................ 118 CNC data names .....................................................18
HandwheelBCDNo............................................... 118 CNC interface names ..............................................26
HandwheelNo1Axis.............................................. 119 PLC function names......................................257, 258
HandwheelNo1Factor........................... 230, 231, 232 Multiplex mode .........................................................100
HandwheelPLCByte ............................................. 118 NC block single step .................................................127
HCorrAxes...................................................... 16, 260 NC block single step mode .......................................126
PLC Interface Manual
page 301 / 304
MACHINEMATE®
PLC selects source for input ................................. 122 Positioning axis .......................................................87
Program ..............................See NC program processing Stepper axis control.....................................................83
Program End................................... See End of Program Stop positioning axis...................................................87
Program stop (M00/M01) ......................................... 151 SUBPROGNUMBER .................................................16
Programmed homing (G74)........................................ 84 Switch input ..........................................................19, 20
Rapid traverse (G00) ................................................ 166 Switch-over spindle/rotational axis...................106, 207
RETAIN data in PLC ................................................. 14 S-word............................................... 226, 228, 241, 255
RMS............................................................................ 78 Systemvars.cfg ..........................................................271
S-code............................................................... 173, 176 T-code ............................................... 170, 173, 242, 256
Sercos axis TCP programming (G180/G181/G182/G183) ..143, 218
Command function ............................................... 290 Teach panel
Drive ready ........................................................... 188 Active....................................................................159
Position control loop closed.................................. 191 PLC function key ..................................................203
Read parameter function....................................... 289 Teaching a part program .............................................74
Write parameter function...................................... 291 Test run without movement ......................................161
SERCOS interface Thread cutting (G33/G34)....... 69, 70, 72, 109, 111, 167
Get ring state......................................................... 288 Tool change
Issue command to ring.......................................... 289 Flow chart .............................................................142
PLC function names ............................................. 288 Sequences..............................................................132
Serial port access ...................................................... 268 Tool data
SET_POS_1................................................................ 15 Breaking parameter .......................................237, 248
SHUTDOWN_CNC_INIT ....................................... 283 Cutting force .................................................237, 248
SHUTDOWN_DENY .............................................. 283 Geometric compensation D...........................237, 249
SHUTDOWN_DISABLE ........................................ 283 Geometric compensation H...........................238, 249
SHUTDOWN_OS_INIT .......................................... 283 Geometric compensation Z ...........................238, 250
SHUTDOWN_REQ ................................................. 283 Magazine position .........................................239, 251
Signal interface ........................................................... 23 Planned tool life ............................................239, 250
Spindle Rate of wear in X ..........................................239, 251
Actual position........................................................ 17 Rate of wear in Y ..........................................240, 251
At speed ................................................................ 190 Remaining number of pieces.........................238, 250
At standstill........................................................... 189 Remaining tool life........................................240, 252
Gear stage selection .............................................. 107 Spare tool number .........................................240, 252
M-code to start/stop .............................................. 252 Supplementary compensation for X..............241, 255
Orient (M19)................................. 109, 110, 176, 253 Supplementary compensation for Y..............241, 255
Output reversed polarity ....................................... 110 Tool life warning limit ..................................243, 256
Output set to zero.................................................. 109 Tool number..................................................242, 256
PLC ends control .................................................. 253 Tool type .......................................................242, 256
PLC takes control ................................................. 226 Tool location values ..................................................242
Speed (S-word) ..................................................... 226 Tool magazine location.............................................215
Speed override .............................. 115, 226, 228, 254 Tool magazine location request ................................131
Stopped ................................................................. 189 Tool management control .........................................129
Switch-over spindle/rotational axis .............. 106, 207 Tool management signals..........................................209
Start Tool table location ....................................................215
Homing a single axis from PLC ............................. 98 Tool table location request........................................131
Homing sequence ................................................... 65 Tool type values ........................................................242
Part program ........................................................... 65 Zero offsets .................................................................15