Winplus Application Rev3
Winplus Application Rev3
WinPLUS
Application Manual
Code: 45006862V
Rev. 03
Tel. +39-0119899711
Web www.osai.it
e-mail [email protected]
[email protected]
SUMMARY OF CHANGES
General
INDEX Updated
Chapter 2
Updated entire chapter
Chapter 3
Chapter 6
Page 3 Added note on feed, jog, speed commands
Chapter 7
Chapter 8
Chapter 12
Page 5 Changed errors returned from RIO EC for bytes 0 ,2 , 8-9, 10-15
Chapter 13
PREFACE
The 10 Series numerical control introduces many new Technical concepts. One of the most
important of these concepts is the concept of information exchange between the CNC and the
integrated PLC (Programmable Logic Controller).
Conventional controls use a window with a large amount of fixed flags, which are continuously
scanned and updated by both CNC and programmable logic control.
The concept of 10 Series by-passes this general conception with a simple but unique solution: both
CNC and PLC use function calls to alert each other, to pass information or to request a certain
action. These function calls need only be executed on event, thus freeing up CPU capacity and
increasing the general system performance.
This manual explains the new concept and shows how applications can use its power.
• it does NOT explain the WinPLUS programming language and the use of any of its language
elements.
Chapter 1 explains the concepts of communication between the logic and the system.
Chapter 2 gives a detailed view of the structure of the routines running on the PLC
module: it shows the timing and the execution priorities of the different routines
on the I/O processor and it makes you familiar with the special execution mode
of the background logic programs. Finally, it gives a list of declarations needed
to define the different routines.
Chapter 3 deals with the data areas in the PLC module's memory and in its dual port.
Chapter 4 explains the configuration of the interface between part program and logic.
Chapter 5 explains the functions of the interface between the part program and the logic.
Chapter 6 explains the configuration and the use of filters of executive commands.
Chapter 7 explains the configuration of the emergency routines and of OEM softkeys.
Chapter 8 describes management of emergencies.
Chapter 9 describes OEM softkey management.
Chapter 10 this is the practical part of the manual which explains how to use the
communication concepts of the controls to create efficient applications.
Chapter 11 this chapter describes how to use the INTERBUS feature on 10 Series systems.
Chapter 12 this chapter describes how to use the CANOPEN feature on 10 Series systems.
Chapter 13 this chapter describes how to use the OSWIRE feature on 10 Series systems.
Chapter 14 Describes how to use the PROFIBUS function in Series 10 systems
Appendix A contains a glossary of verbs and expressions used in this manual.
WARNINGS
For correct control operation, it is important to follow the information given in this manual. Take
particular care with topics bearing one of the signs: WARNING, CAUTION or IMPORTANT, which
indicate the following types of information:
IMPORTANT Indicates information that must be followed carefully in order to ensure full
success of the application.
END OF PREFACE
INDEX
CONFIGURATION OF FUNCTIONALITIES
Configuration.......................................................................................................... 4-1
EMERGENCY MANAGEMENT
SYSTEM EMERGENCIES ............................................................................................... 8-1
UNRECOVERABLE EMERGENCIES............................................................................. 8-2
OEM SOFTKEYS
ON/OFF Softkeys .................................................................................................. 9-3
MAINTAINED Softkey............................................................................................ 9-3
DATA ENTRY Softkeys ......................................................................................... 9-4
NORMAL Softkeys................................................................................................. 9-5
OPLink Function Keys ........................................................................................... 9-5
GLOSSARY
GLOSSARY ..................................................................................................................... 100-1
END INDEX
M Rack
The system communicates with the logic through a logic interface. This interface is a data buffer in
which the system writes the data to send to the machine logic program.
The data buffer is divided according to its functions in different parts called RACKS.
• NO WAIT functions pass a command (with parameters) to the system without waiting for an
answer (the application program execution is not suspended).
• WAIT functions pass a command to the system and wait for a response ( the logic execution is
suspended until the response arrives)
• System area. This is a group of 500 variables of the type short (16 bit integer word) containing
the status of the system and/or the processes.
• Global variables. These variables are referred to as "G" variables. They have two formats;
short and double (precision floating point). They can be read and written by both part program
and logic program. The G variables are retentive, i.e. they are not cleared after powering up the
system.
• Tables. Tables are retentive memory areas in the dual port of the I/O processor module. They
can be commonly accessed by the system and by the logic programs. The data contained in
tables includes:
− tool data
− tool offset data
− axes origin data
− axes offsets
END OF CHAPTER
The logic program is organised in independent routines. All these routines run on the I/O processor
module and have different priorities depending on their use.
The various routines are activated by the operating system of the PLC following specific events, or
at given times, or may also be run continuously (in loops).
AVAILABLE ROUTINES
Each background routine can execute functions of the WAIT type, which will suspend the
execution of that background routine until arrival of the response. In the meantime the other
background routines will continue executing. In reality, when one routine is suspended, control
passes to the next one.
The logic programmer has to optimise the performance of the I/O processor by distributing the
logic in the available background routines. Requested name for the routine : back1 …back12.
The OEM softkeys are defined in AMP, enabling the OEM to provide its application with the same
appearance and operability as are typical of the standard system (AMP configuration manual). The
management routine of an OEM softkey works at a very low priority level. Mandatory name for this
routine: EventTaskHum.
These routines are provided for most of the commands that can be entered via softkeys and/or
from the MTB panel. Mandatory name for these routines: EventTaskConX, where X stands for the
name of the associated process.
Mandatory name for these routines: EventTaskLogX, where X stands for the task number.
ANALISYS OF RACK M
The data supplied from CNC to the logic is written in RACK M every time that the data is
memorised in the interface buffer interrupting the execution of the Background routine for the
necessary time that it takes to be written.
TASK SYNCRONISATION
The background routines can be synchronised with a set of semaphores (32) with the WAIT and
SEND instructions. With the WAIT instruction and a semaphore number (from 0 to 31) it is possible
to suspend the execution of a routine (task) until one of the other routines executes the SEND
instruction with the same semaphore number . In this way it is possible to synchronise the
execution of a task with another event in another task.
INFORMATION
SYSTEM CPU SYSTEM SEND TO LOGIC
PACK PACK
EMERGENCY OEM SOFTKEY
PART PACK OF
PROG. PACk REQUEST
INTERFACE LOGIC INTERFACE CONSENS
EVENT OF
EMERGENCY
EVENT TASK OF
EMERGENCY
INTERRUPT
TEMPORIZED
ROUTINE 10 MS
FOREGROUND
ROUTINE
BACKGROUND
#1
EVENT
P. P.
EVENT TASK
PART PROGRAM
ROUTINE EVENT
CONSOLE
BACKGROUND
EVENT TASK
#2
CONSOLE
EVENT
SOFTKEY
ROUTINE EVENT TASK OEM
BACKGROUND SOFTKEY OEM
#3
EVENT
LOGIC
EVENT TASK
LOGIC
NOTE:
If a SEND on a semaphore is issued without a task waiting for this semaphore. The SEND
instruction will be ignored. Any routine in WAIT status can only be released by the equivalent
SEND instruction. The routine containing the SEND instruction must be synchronised with the
routine containing the WAIT status request.
IMPORTANT You are not allowed to use the WAIT/DLY instructions in foreground, fast input
and emergency routines
Task n°39
Routine background #3 Routine background #4
1 ms 1 ms t
10 ms 10 ms
Every 10 ms the system updates the I/O, executes all the foreground routine and executes a
background in 1 ms. Every 10 ms one of the background routines will be executed in sequence. If
a background routine lasts for less than 1 ms, it will be executed again from the start, until the time
runs out. No routine will be interrupted.
1 ms 1 ms t
10 ms 10 ms
I/O update =1
routine foreground
High priority routine routine background
When emergencies occur, the continuous operation of the I/O processor will be interrupted and the
high priority routines required will be executed immediately. Note that the continuous execution
may be interrupted anywhere during the execution of the I/O ring update, of the foreground logic or
of the background logic.
1 ms 1 ms t
10 ms 10 ms
I/O update
Foreground routine = 1 ms.
Lower routine priority
Background routine
When low priority events occur, like consent request calls, part program Interface calls or even
OEM softkey calls, the foreground routine and all other higher priority tasks will not be interrupted.
These low priority routines will only run during the time available for background logic execution.
BACKGROUND EXECUTION
There can be up to 12 background routines. The background routines are those with the lowest
priorities among the routines making up the application logic and are executed in turn every 10 ms
(WinPlus Tick) for 1 ms.
At each WinPlus Tick the integrated PLC updates the I/O's and the foreground routines.
Consent routines, part program interfaces and OEM softkeys are enabled at system request and
interrupt background execution.
After enabling all high priority routines at each WinPlus Tick, the system enables one of the
background routines and lets it run for 1 ms.
At each WinPlus Tick the system enables a different background routine. The sequence of
activation is determined by the number associated with the routine name. At the first WinPlus Tick
the background routine 1 (BACK1) is enabled, at the second the background routine 2 (BACK2)
and so on.
Once the last background routine has been enabled, the system starts again with the first.
Therefore, an individual background routine is executed over several WinPlus Ticks, alternating
part of its code with that of other background routines in time slicing. If a background routine
suspends its execution voluntarily by calling a function such as WAIT or DELAY or indirectly by
calling system functions of the WAIT type, the remaining time up to the end of the millisecond is
available for other system operations (processing a part program, displaying, etc).
If a background routine is shorter than 1 ms, it will execute several times during the WinPlus Tick.
If the background task to be enabled is suspended at a new WinPlus Tick, no other background
routine is executed and the millisecond reserved for it is used by the system.
Fig. 2.6 shows 3 background loops with total execution times of 3, of 0.5 and 2 ms respectively.
1.1 1° TICK
0.5 | 0.5 ms
3.1 3° TICK
1.2 4° TICK
3.2 6° TICK
1.3 7° TICK
3.1 9° TICK
1 ms
0 1 2 3 4 5 6 7 8 9 10 ms
Task Foreground
Task Background
Supposing after foreground execution + I/O ring management the remaining time for each
sampling is constant at 5 mSec, the above routine are executed in the following sequence:
As can be seen, at each cycle a different background routine is started, which means that a short
background routine is executed more often than a long one.
Referring to the example, the repeat frequency of the 3 loops will be:
$BACK 1 90 ms
$BACK 2 30 ms
$BACK 3 60 ms
IMPORTANT In this example it is assumed, that there are no interrupts (fast inputs, OEM
softkey, requests form a part program or from the operator)
NOTE: The max. number of tasks that can be loaded simultaneously is 40.
END OF CHAPTER
The I/O processor and the system share a data area in the dual port memory of the I/O processor
module. This data area contains an I/O image, global retentive variables (G), system status
variables and 4 retentive tables with machine tool related data. Fig. 3-1 gives a detailed overview
of all data areas on the I/O processor, which are available to the application logic.
SYSTEM
USER Table
Global APPLICATION
M variables LOGIC
Global
(M variables) global
USER area (variables G)
Physical outputs
(0 variable)
Hereafter, all variables and their functions will be discussed in more detail.
S 00_15 S_REBOOT Signal on 1 when a logic Warm Start has been performed, the
application can reset this bit once the required operations have been
carried out.
R/W SYSTEM VARIABLE SW1 S_SECURLEV
WORD Title: Home Limit switches
Home limit switches are wired as NC contacts: The input goes to a low level when the machine hits
the switch.
The S_SCRNSEL variable contains the number corresponding to the selected screen as
configured in AMP. The variable can have the following values:
SW 16 S_NOWAIT This word contains the number of NOWAIT calls placed. It is valid
only for 10/365 and 10/385 systems.
The lower byte of SW17 is used for indicating the CNC model:
Value = 0 10/110 NC
Value = 1 10/510 NC
Value = 4 10/565 NC
Value = 5 10/100 NC
Value = 8 10/585 NC
Value = 255 10/3xx NC
IMPORTANT
The higher byte of SW17 is reserved for future developments.
These flags are dynamically updated. They are not synchronised with the
CAUTION execution of the logic (except S_nRESE and S_nHOLDA). Therefore, do not
use these flags to synchronise the logic: the signals may change state during
the execution of a routine.
Bits from S20,09 to S20,14 represent "under status" of previous bits (from S20,00 to S20,08)
therefore, when a status is active, an "understatus" bit may be activated.
IDLE MAS
RUN MAS
WAIT
INPUT
HOLD MAS
RUNH MAS
HRUN MAS
ERRO none
RESE nome
The variable provides the number of G-code of the active paramacro. In case of paramacro nesting
the paramacro G that is passed is the last programmed one.
IMPORTANT For the G-codes G00 up to G99, there are 100 reserved bits in the dual port
memory. The G-codes are divided into groups. In one group only one G-code
can be active. The different groups are indicated by the letters a-m. The G-
codes with the "*" are non-modal, i.e. they are only active for the duration of the
part program block they were used in.
NOTE:
cIn many applications the 1st, 2nd, 3rd axes are called X, Y, Z, respectively.
The G code flags S_nG40 through S_nG42 will reflect the true status of the system after axes
motion has been programmed in one of these modes. The flags are not updated when just one of
the G codes G40, G41 or G42 are programmed in a block on its own (no motion).
S_nINVER is set TRUE in the fixed cycle G84 at the moment in which the spindle must be
reversed at the bottom of the tapping hole.
S_nSTOPR is set TRUE before the axis' return movement and it is set false at the end of
the boring cycle.
NOTE:
30 ms of time are required at least, from the moment we set at 1 the value and the moment of the
axes’s return movement. This time is used by the logic machine to analize the connect strategy to
use (ex.: stopping the axis for a long time before returning to allow the spindle stop).
S_nTRAP is set TRUE during the rapid approach phase of the touch probe cycles G72,
G73 and G74. It can be used to clean the workpiece surfaces with compressed
air.
SW 33 S_nOFFS number of the tool offset activated using the 'h' parameter
GW 000
GW 255
GD 00
GD 63
Since the G variables are accessible by the system and by the I/O processor, you can not only use
them in the logic program but also in a part program. In this way they can serve as a direct
communication channel between the part program and the logic or between the logic and the part
program. To make one or more of the variables available for part programs, you have to define
them in the AMP configuration program. In order to simplify access, you must assign a logical
name to the "physical" address. All logical names for variables in this area have to begin with the
"@" character.
• Boolean (max. 128) You can assign any bit (0-15) of the G variables (0.255)
• Short (max. 64) You can assign any of the 256 GW variables (000..255)
• Double (max. 32) You can assign any of the 64 GD variables (00..63)
In AMP it is possible to assign a value to these variables that is loaded every time you switch on
the system.
The following examples show an assignment for each of the possible variable types:
Examples:
@POS = G 006,04 (Bit 4 of word GW 006)
@SPEED = GW 200
@ACC = GD 18
@ = GW3 (a value can be assigned in AMP, but the variable is not available to the
part program
M VARIABLES
The M variables are part of the "memory work area" for the logic.
• User’s area (the work area memory for the logic) 6950 MW and 1950 MD variables
• The M RACK (exchange and request data buffer between CNC and logic)
There are 10000 variables of short type (MW0 -MW9999) and 3000 variables of the double type
(MD 000 - MD2999) of which 50MW and 50MD are global (not reserved to a particular process).
150 MW variables and 50 MD variables are dedicated to each process (max 20),.
In general the M RACK is divided functionally into parts that are called RACK. Each of which is
composed of a group of variables (read and write) “dedicated “ to a special function.
The operations that can be executed on the M RACK must follow the rules
CAUTION described in this manual
NOTES:
• These variables are NOT retentive! They will be cleared at power turn on.
• The variables MW 0000 - MW 4999 can be addressed as words (MW xxxx) or also as single
bits, (Mxxxx,yy) or as entire MIxxxx .
• In case the processes are less than 20, the variables that otherwise would be dedicated to the
concerning process are available, like the user M, MW or MD variables.
MW6949
MW6950
MW7099
MW7100
MW7249
…… ……
MW9800
M RACK of Process 1
MW9949
MW9950
MW9999
MD1949
MD1950
MD RACK of Process 20 50
MD1999
MD2000
MD RACK of Process 19
MD2049
…… ……
MD2900
MD RACK of Process 1
MD2949
MD2950
MD2999
A VARIABLES
1500 string type variables (A0…A1499). These variables are loaded when bootstrapping starting
from file ASCIIFILE.TXT.
Each variable can contain a string that can be maximum 40 characters long. The format of how to
set them up in the file is shown in the following example:
TABLES
In the DUAL PORT memory, 4 table are available:
• AXES TABLE
• TOOL TABLE
• TOOL OFFSET TABLE
• USER'S TABLE
These tables are persistent: once they are memorized they are not deleted when the system is
switched on.
Axes Table
The axis table can contain up to 32 pages. Each page contains information regarding one specific
axis. This information is divided into fields:
etc..
32
3 2
1
There is one page in the table for each configured axis (co-ordinate, point to point, transducer-only
axis, spindle and virtual axis). The page number of an axis corresponds to its physical identifier as
defined in the AMP configuration. The system supports up to 32 axes, so there are 32 pages in this
table and 32 physical axes identifiers (1-32).
You can select one of the pages of the axis table with the physical axis identifier of the axis. If you
only know the axis name ("X", "Y", etc. in the AXNAME field) and process (AXOWNER field), you
can use the function A_TO_ID to find the corresponding physical identifier. The field AXOWNER
defines which ambient actually controls that axis:
AXOWNER Meaning
These are the fields and the formats for the axis table:
The logic program should not normally need to directly address this table. For special applications
in which you have to handle either G92 offset or tool offset in a different way, you can read or write
table fields. To address a table field you must use the mnemonic for that field as given in the table
above.
The TOT_OFFS field contains the total offset value applied to the related axis. Its value is
calculated as follows:
Any time the logic has to change an axis offset (i.e. G92), the following sequence of operations
should be performed:
WinPLUS
Bring new
offset to system
(NAXOFF)
END
Tool table
The tool table consists of 250 pages. Each page contains information regarding one specific tool.
This information is divided into fields:
3
1 2
There are 250 pages in the table for up to 250 tools with tool magazine option; it is possible to
assign 250 tools to one or more tool magazines (up to 10). You can access a page of the tool table
with the page number (1-250) or if you use the TBLSRCD function also with the tool identification
code. Since the data for a specific tool may be in any of the 250 pages, it is better to use the
method which uses the TBLSRCD function.
The TBLSRCD function/ function block/ macro can be used to find the page number of the tool
table for a given tool identifier:
In above function block the inputs “n_tab” e “n_field” define the Number of the table and the field to
search. The input “srchaval” is connected to the searched tool id, the tool identifier as programmed
in the part program. The inputs “n_start”and “n_stop” indicate the first and the last table page in
which the input “srchval” is searched. Generally you will use 1 as the start index and the maximum
number of tools as the stop index.
For example, you will use different ranges in case a tool table is subdivided in areas, each
belonging to a single process.
TACTL1
TCMAXL1
TCACTL1
TACTL2
TCMAXL2
TCACTL2
TDIAMETER
TCACDIAM
300
TORIENT
3
1 2
The table contains 300 pages for 300 offset tools. This allows to define more offsets for a single
tool. You can access a page of the tool offset table via the tool offset number corresponding to the
page number (1-300). The tool offset number will be directly programmed into the part program
using the "T" function or can be found in the last field of the tool table (TOLOFNR). Depending on
the application type (milling, lathing or grinding), different fields of the tool offset table will be used.
TACTL2
NOTE:
➀ The wheel nose radius resp. tool tip radius is internally (table) managed as a diameter.
The entry in the table editor is a radius.
User table
USER1
USER2
100
USER3
3
USER4 2
1
The user table has 100 pages. Each page contains 4 "double" fields. You can read or write in this
table with the page number (index) to select the page and the field name (USERn) to address the
desired field. The use of the fields depends on the requirements of the application. The system
never accesses this table.
END OF CHAPTER
END OF CHAPTER
The user of the logic can use a “Configuration Rack” to enable the proper functions.
For each process there is a configuration variable and a strobe variable (variable where you
send the acknowledge) of the different functions of the Part Program. These variables are listed in
table 4-1.
Configuration
Configuration Strobe
Process 1 MW9800 MW9801
Process 2 MW9650 MW9651
Process 3 MW9500 MW9501
Process 4 MW9350 MW9351
Process 5 MW9200 MW9201
Process 6 MW9050 MW9051
Process 7 MW8900 MW8901
Process 8 MW8750 MW8751
Process 9 MW8600 MW8601
Process 10 MW8450 MW8451
Process 11 MW8300 MW8301
Process 12 MW8150 MW8151
Process 13 MW8000 MW8001
Process 14 MW7850 MW7851
Process 15 MW7700 MW7701
Process 16 MW7550 MW7551
Process 17 MW7400 MW7401
Process 18 MW7250 MW7251
Process 19 MW7100 MW7101
Process 20 MW6950 MW6951
Table 4-1 Configuration variables
The indexes of variables MW and MD of RACK M related to each process can be calculated in the
following way:
Bit Description
0 Enable/Disable management of M functions
1 Enable/Disable management of S functions
2 Enable/Disable management of T functions
3 Enable/Disable management of consent to movement
4 Enable/Disable management of end of movement
5 Enable/Disable management of pseudo axes
6 Enable/Disable End of Block (EOB)
7 Enable/Disable management of RQP
8 Enable/Disable management of RQT
9 Enable/Disable management of TOU
10 Enable/Disable management of probing end of cycle
Enabling (bit =1) the functionality, the user can benefit of the related RACK (See chapter 5);
therefore the configuration phase must be executed BEFORE any other operation on the RACKS.
NOTE:
All the variables of this Rack are reset when you bootstrap the system..
END OF CHAPTER
SYSTEM / LOGIC
COMMUNICATION
RACK RACK END RACK S RACK M RACK T RACK RACK RACK RACK RACK RACK
CONS. RQP TOU
MOVEMENT FUNCTIONS FUNCTIONS FUNCTIONS PSEUDO END OF RQT END CYCLE
MOVEMENT
AXIS BLOCK PROBING
RACK M
LOGIC PROGRAM
The system will write the data for each one of these part program information groups into the
relative M RACK if this has been enabled in the configuration Rack by the WinPLUS programmer.
NOTE:
It is not necessary to enable all of the Racks.
If the system detects that one of these is not enabled, it will be assumed that the logic is not
interested in that particular feature of the part program and, it will continue the execution of the
block without updating the Rack data..
Even if they are optional, some RACKS like the M,S,T, functions, must be enabled so that the 10
Series CNC will execute the M codes, the spindle speed, and the tool management. correctly.
The task of these interface Racks is to allow the logic to manage the information that comes from
the part program and to start actions related to them.
For each request, the system prepares the data at the specific Rack, activates a strobe to signal
the presence of new data to the machine logic and then waits for the logic to acknowledge
completion of the action. .(ACKSTROBE).
The system is left in a wait state until the acknowledgement is received, the wait state is then
released and the associated strobe signal is disabled.
It is possible for the machine logic to release the suspended part program execution before the
completion of the logic action, by sending the appropriate acknowledge. E.g. A T word might be
acknowledged before the completion of a tool search, if the tool storage system is independent of
the rest of the machine. In this case the logic would acknowledge the T strobe as soon as the new
value was recognized.
NOTE:
All the functions that you will find in this chapter (functions M,S,T, consent to movement, end
movement), are described assuming a sequential management of the request (e.g. fig. 5-2: the
part program restarts execution only at the completion of the handling of the function).
SYSTEM
WAIT
Function emission
No
Set function?
Yes
Compile M RACK
Set Strobe
WAIT
Start Event task
If present
ACK_STROBE
From logic
Reset Strobe
Manage answer
PART PROGRAM
REQUESTS
TYPE OF REQUEST
RACK RACK RACK RACK RACK RACK RACK RACK RACK RACK RACK
CONSENT END FUNCTIONS PSEUDO FUNCTIONS FUNCTIONS EOB RQP RQT TOU END CYCLE
TO MOVEMENT M AXES S T PROBING
MOVEMENT
ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT.
CONSENT END FUNCTIONS PSEUDO FUNCTIONS FUNCTIONS FUNCTIONS FUNCTIONS FUNCTIONS FUNCTIONS COMPLETE
MOV. MOV. M AXES S T EOB RQP RQT TOU PROBING
CYCLE
In point-to-point mode functions are sent to the logic in the following order:
COORDINATED AXES
There are 9 possible motion axes in a process. 6 of the 9 axes can be programmed simultaneously
in a single part program block. In the case of dual axes, up to 9 axes may be moving with only 6
axes programmed in the block. Each of the axes has a part program address (axis name) which
must be defined in AMP. The numerical value which is programmed after that address (the
position) is a (double precision) floating point number which has a format of 5.5 (5 figures before
and 5 figures after the decimal point).
There are two calls from the system to the logic related to co-ordinated axes motion:
• Consent to motion
• End of motion
INPUT VARIABLES:
OUTPUT VARIABLES:
To acknowledge “consent to movement” to the system it is necessary to insert the following call in
the user’s logic:
15 00 Bit
XW 03
15 00 Bit
XW 04
G72 G81
G73 G82
G74 G83
G84
G85
G86
RESERVED
RESERVED
G89
15 00 Bit
XW 05
Motion blocks
A motion block is a part program block or a group of part program blocks containing programmed
axes motion from the actual point to the programmed end point without any commanded stop
inside the motion.
The system communicates with the logic at the beginning of a motion block by starting the “consent
to move” routine in the interface system-logic Rack. At the end of the motion block the system will
communicate to the logic “Block end” through the strobe bit “end of motion request” of the
“Interface system-logic” Rack (motion end).
If there should be a continuous mode block, that would mean that the first block must contain all
the axes that are part of this motion, even if this means repeating the current position. Only in this
way can the system inform the logic about the axes involved in the motion block.
Example:
G 00 X 10 Y 10 Z 10
G 01 G 27 X 20 Y 20 Z 10 F 1000 <-- Z declared even if
MOTION X 30 no motion in this
BLOCK Y 30 pp block
Z 30
G 29 X 40 Y 40 Z 30
SYSTEM
WAIT
Consent requets
To movement
No
Set
Function?
Si
Compile M RACK
Set Strobe
WAIT
Start event task
If present
ACK_STROBE
Reset Strobe
Manage answer
Excute motion
INPUT VARIABLES:
OUTPUT VARIABLES:
To send the answer “accept end of motion” to the system it is necessary to insert the following call
in the user’s logic:
SYSTEM
WAIT
End of motion
request
No
Set
function?
Yes
Compile M RACK
Set Strobe
WAIT
Start event task
If present
ACK_STROBE
from logic
Reset Strobe
Manage answer
M FUNCTIONS
The M code followed by a number identifies an auxiliary function relating to the machine tool. In the
10 Series CNC the M code value must be a positive integer with up to 3 digits (0...999). The
programming format for the M code is therefore (M0.....M999). You can program up to 4 M codes in
a part program block.
M functions may have different characteristics, which must be specified in the AMP.
In prelude and postlude M function synchronisation between axes moves and execution of M's by
the machine logic depends on:
M function rack
Each time a M function is encountered in the part program the “M function” Rack data is updated;
the variable “strobe M prelude/postlude” is set to 1 and the other input data relating to the M are
stored (type and code).
The logic must send an “accepting code M” answer using the special function so that the execution
of the part program can continue.
In the case of M expedite functions the value of M function is updated in the “Expedite M code
emitted” rack
INPUT VARIABLES:
OUTPUT VARIABLES:
Description:
NOTE:
When starting the machine these variables are homed.
The logic must always send an answer to the system following code M through the function “accept
M code ”.
To send the answer “accept M function ” to the system it is necessary to insert the following call in
the user’s logic.
The data associated with the M codes are passed to the “M Functions” Rack in the same sequence
as they are programmed in the part program block.
SYSTEM
WAIT
M Function
No
Set function?
Yes
Compile M RACK
Set Strobe
WAIT
Start event task
if present
ACK_STROBE
from logic
Reset Strobe
Manage answer
The can acknowledge or refuse the M code request. If a certain M code is not allowed with the
machine in a particular state, the logic can return a -1 value in the XW 00 variable. The system will
go into error status. Another reason to refuse an M code could be a mechanical problem during its
execution.
When a RESET coincides with the execution of an M code, the logic must send an
acknowledgement to the system anyway. The logic may decide to abort or to continue the further
execution of the M code.
Never forget to acknowledge a pending M code during a reset, as this will inhibit execution and
prevent the reset from being completed.
Note that the M code acknowledgement must be executed before the ENDRESE function may be
called. For more details refer to the reset management.
When a HOLD coincides with the execution of an M code, the system will not execute any further
(MDI) M-codes, until it receives the acknowledge for the pending M code.
Because there is no synchronisation for expedite functions, expedite M codes must be processed
by the logic as fast as possible. The throughput of part program blocks containing an expedite
function may be very high (block cycle time!). By making the execution as fast as possible, the risk
of losing expedite M codes when working with a very low block time is minimized.
SYSTEM
WAIT
Expedite M
function
No
Set function?
Yes
Compile MRACK
Manage answer
Visualisation: Y/N
This attribute defines whether or not the system will display the M
code on the main screen.
This attribute tells the system how the M codes must be grouped for their
display on the screen. For example the codes M03, M04 and M05 belong
to the same group, are mutually exclusive and can be displayed in one
screen position.
During their execution, M codes will appear on the screen in reverse
video mode. In the moment in which the logic acknowledges the M code,
the display of the M code will be returned to normal.
Update M RACK
WinPLUS
WinPLUS
Update M RACK
WinPLUS
Search in memory class: Defines the priority for the emission of the M functions at the end
of the search in memory command.
There are 16 classes of priority. The emission of M functions is
carried out as follows:
- at the end of the search the functions that have the lowest
class number will be emitted first.
Example:
M Prelude function
SYSTEM
Yes
M postlude no
with change of Save change of mode request
mode
yes
no yes
write M code on display (reverse mode)
M prelude scrivi codice M sul video (modo reverse)
WinPLUS
Logic
no
Cancel M codesu
cancella onvideo
display
codice M Modal M
Yes
Yes
no
Example:
M Expedite function
no
expedite M
yes
WinPlus
LogicLog
P
Example:
Postlude M function
Postlude M no
END
yes
WinPLUS
Logica
Logica
LogicPLUS
WinPlus
no Stop Pre-calculation
block
Yes
PPRESUME executed no
yes
no
Modal M cancel M code on display
Yes
no
Force block/block no
Mode
request new status
reset
yes
USE enter in IDLE (S20_13) status
no
END
FINE
PSEUDO AXES
Pseudo axes offer an easy-to-handle interface between the part program and the logic. The
pseudo axes are part program addresses (like axes addresses) which can be used to transfer
numerical information (in double precision floating point format) to the WinPLUS program. This
information can be used by the logic to control analogue outputs or point-to-point-axes.
The part program addresses (axes names) of the pseudo axes must be defined in the AMP
configuration utility. AMP will allow up to 6 addresses to be defined as pseudo axes. The names
used must be different from the other axes names. The programming format for pseudo axes (like
for normal axes) is 5.5 (five figures before the point and five figures after).
Correspondingly the variable ”Pseudo axes function strobe request” is set to 1 while the other input
variables contain the data concerning the related axes.
The logic must send an answer “acknowledge programmed pseudo axes”, using the proper
function, in order to continue the part program execution.
INPUT VARIABLES:
MW(K+23) axis identifier for the first configured pseudo axis (short)
..... .........
MW(K+28) axis identifier for the sixth configured pseudo axis (short)
MD(L+11) programmed value for the first pseudo axis (double)
..... .........
MD(L+16) programmed value for the sixth pseudo axis (double)
OUTPUT VARIABLE:
To send the answer” acknowledge pseudo axes function” to the system it is necessary to insert the
following call in the user’s logic:
If the value of a pseudo axis identifier (one of the parameters from MW (K+23) to MW(K+28) is
zero, then the corresponding pseudo axis is not programmed in that block. The sequence of the
pseudo axes addresses in the words MW(K+23) to MW(K+28) is the same as that of the sequence
configured in AMP.
SYSTE
M
WAIT
Pseudo
axes
No
Set configuration?
Yes
Set
Strobe
WAIT
Start event task
if present
ACK_STROB
E
Reset from logic
Strobe
Manage
answer
If there is a RESET command during the management of the Pseudo axes (that is in the interval of
time in which the signal STROBE “Pseudo axes function request” is set), the answer to the system
must be given immediately or anyway before calling the function ENDRESE.
S FUNCTION
The part program uses the letter "S" as code for the spindle speed. The S function can be used to
program the spindle speed in RPM or the workpiece surface speed. The units of the value
programmed under S must be defined by the programmer of the logic (normally the surface speed
is expressed in m/min or feet/min but for grinders also m/s and feet/s are used).
If G97 is active, the spindle must be programmed in RPM. If G96 is active the programming of S is
expressed as a peripheral speed in feet/min (constant surface speed)
The S word is a floating point number (double precision) with a programming format of "6.3", i.e.
the number may have up to 6 significant digits before the decimal point and up to 3 significant
digits after the decimal point. In this way the 10 Series CNC is able to support all kinds of spindles
from large reaming heads up to high frequency spindles.
Rack of S functions
When an S function is programmed the variable “Notify S function” is set to 1 while the data
concerning the speed is stored in the S Rack..
The logic must manage the associated value and send an acknowledgement to the system when
the execution has been completed.
The S function Rack is enabled by setting the appropriate variable of the configuration Rack.
The input/output variables of this Rack are
INPUT VARIABLES:
OUTPUT VARIABLES:
To send the answer “acknowledge function S” to the system it is necessary to insert the following
call in the user’s logic:
Handling the percentage spindle speed override (SS0) is one of the machine logic tasks.
Two methods are available to the logic user for handling these variations (for example, after the
relevant softkeys are pressed): check any variation recorded in the value of variable S_nSS0
(SW37) by comparing the current value with the previously stored one
In both cases, the value of SS0 is given by the value, multiplied by 100.
Example:
SSO 1000 (10%)
SPINDLE SPEED 1500 RPM
1000
New Spindle Speed value = 1500 × = 150[revolution / min]
10000
SYSTE
M
WAIT
S
function
No
Configured ?
Si
Compile S
RACK
Set
Strobe
WAIT
Start event task
if present
ACK_STROB
E
from logic
Reset
Strobe
Manage
answer
NOTE:
The spindle speed is displayed on the screen with two values:
After the execution of an S function, the logic must send an acknowledgement to the system. In
case of a reset during the execution of this routine, the acknowledgement should be given
immediately. What happens to the spindle in case of a reset depends on the type of application.
The system must be released before you can use the function call $ENDRESE. For more details
on RESET please refer to the "RESET" chapter.
NOTE:
The above figure does not take into consideration the value of SS0.
T FUNCTION
The T part program function is used to transfer up to two values to the logic. The first value is the
tool identification code, a positive integer number of up to 12 digits, which is handled using the
"double" format. The second value is the tool offset number. This is a positive integer number with
a "short" format. Its range is 0..300. Values, tool identification and offset number must be
separated by a point "." character when using the T code in the part program.
Txxxxxxxxxxxx.yyy
The tool identification code is used to determine the tool table page where the required data can be
found. Page identification can be done in two ways:
T 12345
Tool Table
n+2
n+1
n TCODE TOLOFNR
12345 67
69
68
67 Tool offset # 67
T .67
69
68
67 Tool offset # 67
T 12345.67
Tool Table
n+2
n+1
n TCODE TOLOFNR
12345 33
69
68
67 Tool offset # 67
T 12345.0
Tool Table
n+2
n+1
n TCODE TOLOFNR
12345 33
T function Rack
The data of the “T function” Rack is updated every time a T function is encountered in a part
program block. When this happens the variable “emitted T function” is set to 1 while the data
associated with the tool is stored in the other input variables.
The logic must manage the parameters that are present in the Rack.
The “T function” Rack is enabled by setting the appropriate variable in the configuration Rack.
INPUT VARIABLES:
OUTPUT VARIABLES:
To send the answer “accept T function” to the system it is necessary to insert the following call in
the user’s logic:
Description:
The tool control word MW(K+32) tells your logic how it should handle the information from the MW
variables. Twelve programming modes are available, 6 monotool type and 6 multitool. The possible
values for the control word in monotool mode are:
Refer to Fig. 5.24, which shows how these cases are managed by the system.
The values for the control word in multitool mode range from 11 to 16. The essential difference
between the two programming types is that in multitool mode the value of control word MW(K+37)
is the number of slave tools specified in the T function.
The variable XW 04 contains the number of the offset (= page number of the tool offset table)
which has to be applied or a zero value if no offset was programmed.
The variable MW(K+33) contains the offset number (corresponding to the page number of the
tool’s offset) that must be applyed, or an 0 value, if no offset has been programmed.
MW(K+34) tells the logic program whether the offset has to be applied to one or two axes. The
identifiers of the axes are supplied in MW(K+35) and MW(K+36).
The value of MW(K+37) can be used in multitool programming with the TOOL_RD F. B. required
for reading the value of the slave tools programmed in the T function.
The variable MD(L+20) contains the tool identification code as programmed in the active part
program block. This code is a number of up to 12 digits, which must be used in conjunction with
the function TBLSRCD to find the page of the tool table containing this tool's data.
The variables MD(L+22) and MD(L+23) finally pass a cosine value for each one of the axes
involved in the tool offset. This cosine value has to be multiplied with the tool length offset for that
axis as read from the tool offset table. The 1.0 and 2.0 versions of the control support only 2
values, either 1.0 or -1.0. If you want to use the standard offset handling, you have to pass these
two cosine values to the function TOOLACT .
SYSTEM
WAIT
T
function
No
Set configuration?
Si
Compile T
RACK
Set
Strobe
WAIT
Manage
answer
The application of this routine is for tool status and tool life monitoring where the logic can
automatically create a block calculation stop when it needs to change a broken or worn tool with an
equivalent sister tool.
To enable the End of Block call, the logic must notify the system using the system function call
PREC_OFF. In case of point-to-point, while in addition with G27 or G28 execution the # character
must also be put in the block where the end of execution calculation is to be stopped In the EOB
routine the logic can check the prerequisites for part program continuation and send an answer to
the system (proceed with next block / stop program execution).
INPUT VARIABLES:
None
OUTPUT VARIABLES:
MW(K+98) MW(K+98)= 0 The system will proceed with the execution of the next block
MW(K+98) = -1 The part program execution is stopped. The system goes into
"MAS +IDLE" status.
When the system is in "MAS + IDLE" status, the logic can send new values for tools offset via
ACTOFFS function.
In order to exit the "MAS" status the logic must activate the PPRESUME function.
To send the answer “accept EOB function” to the system it is necessary to insert the following call
in the user’s logic:
SYSTEM
WAIT
EOB function
No Function
configured
?
Yes
compileEOB RACK
Set Strobe
WAIT
Start event task
if present
ACK_STROBE
from logic
Reset
Reset Strobe
Strobe
Manage
answer
The part program may request the adjustment of one or more of the tool dimension offset values in
a tool offset table record using the RQP instruction.
INPUT VARIABLES :
OUTPUT VARIABLES :
To send an answer “accept RQP function” to the system it is necessary to insert the following call
in the user’s logic
Description:
This routine is enabled when the part program block or MDI block in execution contains a RQP
instruction. The control word MW(K+101) contains a bit pattern indicating which values in a tool
offset table record must be updated.
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
K W(K+101)
update length 1
update length 2
update diameter
The tool pre-setting values programmed with RQP are sent to the logic in two different formats:
a) the unit of measure configured in AMP is used for values sent to variables MD(L+25), MD(L+26)
and MD(L+27), irrespective of the unit of measure (G70/G71) that is active when the command
in executed (the system converts the values programmed by RQP);
b) values are sent to MD(L+28), MD(L+29) and MD(L+30) in the same format in which they are
programmed in the RQP block.
NOTE:
• With rotary axes only the values written in MD(L+28), MD(L+29) and MD(L+30) are relevant; all
the other values are irrelevant
• If a bit in the control word is set at 1 the corresponding table field must be updated using the
value(s) given in MD (from MD(L+25) to MD(L+27) for converted values or from MD(L+28) to
MD(L+30) for programmed values). For a zero bit no action is required. The accumulated tool
offset wear must be cleared. Picture 5-28 shows the algorithm that should be applied in the
RQP routine.
• If the RQP routine is not handled by the logic application, the RQP part program instruction
does not work.
RQP
N TACTL 1+MD(L+25)
TCACTL1=0
CW Y
MW (K+101)_1=1
?
TACTL2+MD(L+26)
N
TCACTL2=0
CW Y
MW (K+101)_2=1
?
N TDIAMETER+MD(L+27)
TCACDIAM=0
END
Pic.5-28 RQP – Preset of the tool’s value length and the diameter
The part program can request the requalification, (one or more values), of the correction of the tool
inside the records of the tool’s offset table, using the instruction RQT. The RQT rack must be
enabled if the corresponding part program function of “RQT”.is to be used.
Normally RQT is used to check and correct the tool wear offset values. The total amount of
adjustment is usually limited to a pre-defined maximum amount.
INPUT VARIABLES:
OUTPUT VARIABLES:
To send the answer “accept RQT function ”to the system it is necessary to insert the following call
in the user’s logic:
Description:
This routine will be activated when the active part program block (or MDI block) contains an RQT
instruction.
The control word MW(K+104) contains a bit pattern indicating which values in a tool offset table
record must be updated.
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
XW 04
update length 1
MW(K+104) update length 2
update diameter
The tool length offset values programmed with RQT are sent to the logic in two different formats:
a) the unit of measure configured in AMP is used for values sent to variables MD(L+32), MD(L+33)
and MD(L+34), irrespective of the unit of measure (G70/G71) that is active when the command
in executed (the system converts the values programmed by RQP);
b) values are sent to MD(L+35), MD(L+36) and MD(L+37) in the same format in which they are
programmed in the RQP block.
NOTE:
• With rotary axes only the values written in MD(L+32), MD(L+33) and MD(L+34) must be taken
into consideration; all the other values are irrelevant (and --if programmed with a unit of
measure other than the current one-- have been converted).
• If a bit in the control word is to 1 the corresponding table field must be updated using the
value(s) provided in MD (from MD(L+32) to MD(L+34) for converted values or MD(L+35) to
MD(L+37) for programmed values). For a zero bit no action is required.
• The increment must be added to the previous update values. If the accumulated updates are
greater than the allowed maximum, the tool must be declared expired. Picture 5.30 shows the
algorithm that should be applied in the RQP call.
RQT
N TCACTL1 + MD
N TCACTL1
>
TCMAXL1
Tool chart
TSTATUS=expired
CW Y
MW(K+104)_1=1
?
N TCACTL2 + MD
N TCACTL2
>
TCMAXL2
Tool chart
TSTATUS=expired
Y
CW
MW(K+104)_2=1
?
N TCACDIAM + MD (L+34)
END
The part program may request the logic to disable a tool using the TOU instruction. In the logic, the
TOU routine must be used to interface this part program instruction. This routine sets the status of
a tool to "life time expired". This tool cannot be used any more.
INPUT VARIABLES:
OUTPUT VARIABLES:
To send the answer “accept TOU function” to the system it is necessary to insert the following call
in the user’s logic:
Description:
This function will be activated when the active part program block (or MDI block) contains a "TOU"
instruction.
TOU
Is Record N
tool found
Y
Set MW(K+105)≠ 0
Expired tool
(field TSTATUS)
Set MW(K+105) =0
END
This interface function between part program and WinPLUS can be used to interface the probing
cycles G72, G73 and G74 that are activated by the part program
INPUT VARIABLES:
OUTPUT VARIABLES:
To send an answer “QUTAST function accepted” to the system, it is necessary to insert the
following call in the user’s logic.
Description:
This routine will be activated when a probing cycle has been completed. The 10 Series CNC offers
3 probing cycles, G72, G73 and G74. The one completed will be expressed in MW(K+107):
M W (K +107)
For each one of the cycles the 'M' variables passed to this routine have a different meaning:
MW(K+107) 4
MW(K+108) identifier of axis 1
MW(K+109) identifier of axis 2 (0 if not involved in the cycle)
MW(K+110) identifier of axis 3 (0 if not involved in the cycle)
MD(L+39) probed position of axis 1 (referred to active origin)
MD(L+40) probed position of axis 2 (referred to active origin)
MD(L+41) probed position of axis 3 (referred to active origin)
MD(L+42) axis 1 probed difference from theoretical position
MD(L+43) axis 2 probed difference from theoretical position
MD(L+44) axis 3 probed difference from theoretical position
Please refer to the 10 Series CNC Programming Manual for a detailed description of how to use
the probing cycles in a part program.
END OF CHAPTER
SYSTEM
M RACK
LOGIC
PROGRAM
Configuration
For each process the following MW variables are available:
Variable Description
MW(K+111) asynchronous/synchronous mode
MW(K+112) Strobe command from MTB
MW(K+113) Strobe command from FTP
MW(K+114) Strobe command from external environment
MW(K+115) Command result from MTB
MW(K+116) Command result from FTP
MW(K+117) Command result from external asynchronous environment
MW(K+118) Command result from external synchronous environment
Bit Description
0 Cycle Start
1 Cycle Stop
2 Reset
3 Hold On
4 Hold Off
5 Manual Feed Override
6 Feed rate Override
7 Speed Override
8 Set mode
9 Rapid Override
10 Select axes
For example if the command HOLD_ON from the MTB is to be rejected then the result will be:
MW (K+115)__3 =1
NOTE:
The variation can be made through the Human Interface by means of dedicated softkeys; from the
logic it can be made by means of dedicated Function Blocks; finally, through the WinMedia
Console, you can make the change by means of a dedicated trimmer. The three interfaces save
the value in the relative system SW variables.
If the WinMedia Console has been configured to work with MW arrays and the value contained in
the SW system variable is not present in the array values, then the current system value assumed
by the WinMedia Console will be the value of the array which is smallest and closest to the system
value (approximation by defect). Hence, if a clockwise variation is made with the trimmer, the
actualised values will be those following the value approximated by defect; the procedure is similar
when a counterclockwise variation is made on the trimmer.
Example:
Let us assume we have configured the following array for one of the trimmers:
If the current system value is 1250 (value save in SW), then the current value for the WinMedia
Console will be 1000 (value approximated by defect) . If you make a clockwise rotation, the value
transmitted to the filter routine to be actualised on the WinMedia Console will be 1800.
The logic can enable or disable each command according to which console it comes from (FTP or
MTB).
When the operator requests the execution of a command, the system verifies if the command for
that console is enabled and if it is affirmative it sends it to the CNC and aborts it
The machine logic is not informed on the command’s transit and doesn’t execute any operation
NOTE:
The ASYNCHRONOUS modality, together with the enabling of all the commands for both the
consoles, is the default configuration when the machine is powered up.
If this mode is selected the logic will be informed of the requests that come from the console (FTP
or MTB).
When the operator requests the execution of a command, either by pressing a button or turning a
selector on the console, the system will signal in the appropriate variables:
The system waits for an answer to either continue or to abort the execution of the command.
The logic, after having indicated to the dedicated connector whether the command must be
accepted or aborted and after having modified the value of the associated parameters to the
command, sends the response to the system through the function ACK_STRB.
Once the system receives the answer, it resets the strobe variable.
NOTE:
Until the logic sends the answer, the system cannot send other requests from the console.
This mode allows the user to insert machine logic operations in between the command request the
message being sent to the CNC.
SYSTEMA
WAIT
Command
Execution
No Synchronous Yes
management
Command Yes
No Compile variables
Enabled
M
WAIT
Start Event task
If present
ACK_STROBE
From logic
Reset STROBE
Manage answer
The CYCLE STOP command is sent to the logic when the operator releases the CYCLE START
button in a given environment (Human Interface or FTP, MTB Panel control panel) .
The "HOLD ON request" command (HOLD button pressed) is sent by the FTP or the MTB Panel to
the logic when the associated button is pressed.
If the request is sent to the system (command accepted), the process interpolator will be stopped.
RESET
The RESET command is sent to the logic after the RESET button (on FTP) is pressed.
Synchronous control of the RESET command lets the WinPLUS program go ahead with its own
RESET work, in parallel with the system work. A system RESET signifies:
The WinPLUS programmer, can monitor the manual feed override values and eliminate undesired
ones by intercepting the FMO command value
The WinPLUS programmer, can monitor the feed rate override values and eliminate undesired
ones by intercepting the FRO value command.
The WinPLUS programmers can monitor the spindle speed override values and eliminate
undesired ones by intercepting the SSO value command.
MODE SELECTION
The "operating mode selection" command is sent to the logic when the operating modeis changed
following operation of the FTP softkeys or the mode selector switch on the MTB Panel.
If the request is sent to the system (command accepted), the system exits from HOLD status and
the process interpolator can start again when the CYCLE START button is pressed.
SELECT AXES
The command “Select axes” allows selection of one or more axes for manual motions.
Variable Description
MW(K+120) Feed Value
MW(K+121) Mode (Reserved)
MW(K+122) Feed direction
MW(K+120) is the new Manual Feed Override value to be sent to the CNC. Associated with the
strobe variable "change Manual Feed Override", it is a percentage with a resolution of 0.01%, i.e.:
0 0%
5000 50%
7500 75%
10000 100%
• 0 = positive direction
• 1 = negative direction
Variable Description
MW(K+122) Feed rate Value
MW(K+123) Mode (Reserved)
MW(K+122) is the new Feed rate Override value to be sent to the CNC. Associated with the strobe
variable "change Feed rate Override" , it is a percentage with a resolution of 0.01%, i.e.:
0 0%
5000 50%
7500 75%
10000 100%
Variable Description
MW(K+125) Speed override value
MW(K+126) Mode (Reserved)
MW(K+125) is the new Speed Override value to be sent to the CNC. Associated with the strobe
variable "change Speed Override", it is a percentage with a resolution of 0.01%, i.e.:
0 0%
5000 50%
7500 75%
10000 100%
20000 200%
NOTE:
The theoretical maximum Speed Override value is 327.67 %.
Variable Description
MW(K+127) mode
MW(K+127) is the new mode to be set to the CNC. Associated with strobe variable "change
mode".
Variable Description
MW(K+128) Rapid Override value
MW(K+129) Mode (Reserved)
MW(K+128) is the new Rapid Override value that has to be sent to the CNC. The resolution of the
value is in 0,01% (100% is equal to a value of 10.000).
Variables Description
MW(K+130) -- MW(K+138) Axes name (ASCII)
We suggest the A_TO_ID function to convert the name of an ASCII axes into a physical axes
identifier.
Variable Description
MW(K+119) Originating environment
The variable MW(K+119) "ID of the originating command environment" has the following structure:
HEX.Num. ENVIRONMENT
The “end of command acknowledge functions” must always be present if the synchronous mode is
chosen.
These calls must be inserted in the user’s logic when it has finished executing the actions that are
associated with the command.
Once the answer is sent, the system continues the execution of the command (if accepted by the
logic).
The functions are available both in FBD and ST according to the programming language.in use
The function to use is the following:
ACK_STRB
xxx Func_num
The input “func_num” can have the following values according to the command:
func_num Comand
100 Cycle Start
101 Cycle Stop
102 Reset
103 Hold On
104 Hold Off
105 Manual Feed Override
106 Feed rate Override
107 Speed Override
108 Set mode
109 Rapid Override
110 Axes selection
END OF CHAPTER
These two racks use global M variables (MW and MD), that are common to all the processes. In
chapter 3 it is explained that 50 variables have been reserved for the MW (from 9950 to 9999) and
50 for the MD (from 2950 to 2999).
The two racks have in common the configuration variable, which enables/disables the function, and
the strobe variable:
Variable Description
MW9950 Configuration
MW9951 Strobe
Bit Description
0 Emergency
1 Softkey OEM
The input “func_num” can have the following values according to the command:
func_num Command
200 Emergencies
201 OEM Softkey
SYSTEM
WAIT
SI
Compile PACK M
Set Strobe
WAIT
ACK_STROBE
from logic
Reset Strobe
Manage answer
END OF CHAPTER
• System emergencies
• WinPLUS driven emergencies
SYSTEM EMERGENCIES
These emergencies are caused by hardware failures in the control or I/O Ring, servo errors,
system failures and are generated by the System.
Depending on the type of anomaly the system generates two types of emergencies:
RECOVERABLE EMERGENCIES
UNRECOVERABLE EMERGENCIES
After being informed of the current emergencies, the logic decides, in case of recoverable ones,
how to respond to and/or recover the failure. If the emergency is unrecoverable, instead, the
relative data will be written in the emergency description areas, in this case, the foreground task is
no longer able to read such data, but it can communicate with an application external to WinPlus
(Dos Realtime, external applications,...), which, in its turn, can perform the required actions. The
input/output variables of this package are:
INPUT VARIABLES:
OUTPUT VARIABLE:
UNRECOVERABLE EMERGENCIES
If you want an unrecoverable emergency to be displayed in the system data areas, enable this
function by setting variable MW9951 on 1; variable MW9952 (emergency output) will NOT be set
and hence, in order to determine whether an unrecoverable emergency has occurred, you must
check the status of variable MW9953 (Type of Emergency): it must be set on 1. If you do not want
the emergency to be notified (MW9952 not set on 1) the system will provide no indication.
In the presence of these emergencies, the user application CANNOT decide what to do in order to
recover the emergency; however, it might take action at I/O level to activate an appropriate output
(provided that the anomaly has not been generated by the I/O modules themselves, which, in these
circumstances would not work).
Parameter MW9955 specifies the environment in which the emergency has arisen, i.e., 0 =
WinPlus, 1-20 = process 1-20.
When an unrecoverable emergency occurs, all system axes are stopped immediately, with no
deceleration ramp.
NOTES:
• Upon the activation of this routine, the global E-STOP relay is deenergised by the system.
• A current outage is an unrecoverable error which is managed entirely by the system.
The table shows the values that can be taken on by MW9959 if MW9954 = 9 (anomaly has
occurred during one of the initialisation phases):
The table below lists the values that MW9959 can take on if MW9954 = 10 (anomaly has occurred
during anomaly management):
Variable MW9960, referred to as "phase number", specifies when the anomaly has occurred, i.e.,
whether during an initialisation phase or during run time.
0 Initialisation Phase 0
1 Initialisation Phase 1
2 Initialisation Phase 2
3 Initialisation Phase 3
4 Run
0x0023 Division by 0
0x0064 Number of tasks too high for hot reboot, perform cold boot
OSWIRE EMERGENCIES
OSWire unrecoverable emergencies denoted with codes 16 and 17 are associated with an
anomaly code (variable MW9957). For these codes, see Chapter 6, on diagnostics, in OS3 Drive
Installation Manual.
SYSTEM
Deenergizes global
E_stop relay
Stops WinPlus
execution
save for foreground
task
Writes message on
screen
STOP
Fig. 8-1 shows the sequence that is performed (if possible) when the system generates an
unrecoverable error (RAM error, CPU problems, other hardware error). The system deenergises
the E-STOP relay, tries to stop the axis board and the WinPlus execution (not, however, the
foreground task) and eventually tries to display a message about the nature of the error, then it
stops.
SYSTEM
De-energizes global
E_stop relay
Stops WinPlus
execution
save for foreground
task
Writes message on
screen
STOP
Fig. 8-2 Cable break (or failure) anomaly detected, unrecoverable axis emergencies.
RECOVERABLE EMERGENCIES
If you want a recoverable emergency to be notified to WinPlus, enable this function by setting
variable MW9950 on 1. If this variable is not set on 1, WinPlus will get no indication. If you want to
get a message on the emergency (MW9950=1), you must inform the system that the emergency
has been acquired: to do so, recall system function ACK_STRB (200,1).
When a recoverable emergency occurs, the user application can decide what to do to recover the
emergency. In these circumstances, variable MW9953 (Type of Emergency) is set on 0 and the
following error messages are given out: (MW9954):
1 = servo error
2 = skew error
3 = encoder phase error
4 = axes positioning tolerance error
5 = local E-stop
6 = service channel error (only for DSI axes)
7 = command execution error (only for DSI axes)
8 = “drive shutdown” error (only for DSI axes)
9 = shutdown warning error (only for DSI axes)
10 = remote I/O failure
11 = Reserved
12 = Request to enable system axes while the system is already running the
calculations for movement of an axis that has not yet been enabled. (For
example: the axes enable request from WinPLUS arrives after the "move
enable").
13 = Reserved
14 = Reserved
15 = Reserved
16 = Reserved
17 = Reserved
18 = OS3 drive or bridge not found on OSWire bus
19 = error from OS3 drive during command execution
20 = alarm communication from OS3 drive
21 = OS3 drive initialisation failed
The MW9955 parameter indicates the process that has generated the emergency, or 0 = WinPlus,
1-20 = process 1-20.
When an axis recoverable emergency occurs the axis is stopped without deceleration ramp and
then disabled.
If the axis belongs to a process, all the moving axes in that process will be stopped with their
deceleration ramps and the process goes into error status.
If the axis belongs to the logic (process 0), the logic decides whether or not the other axes
(auxiliaries, spindle, etc.) must be stopped and whether the emergency involves one or several
processes.
It is the WinPLUS programmer who must decide on the appropriate course of action.
If the emergency occurs in one of the processes, the WinPLUS program must disable the relevant
E-STOP relay in order to stop the machine in which the error has been detected.
NOTE:
When the call is started by a local E-stop request, the axis ID is 0 and the E-STOP relay is de-
energized.
The “anomaly code”, if present, depends on the error code with which it is associated.
The values are shown in the table below.
For error codes 8 and 9 the words associated with anomaly codes must be read bitwise. An error is
present if the bit is 1 and there is no error if the bit is 0.
OSWIRE EMERGENCIES
OSWire emergencies denoted with codes 19, 20 and 21 are associated with an anomaly code
(variable MW9957). For these codes, see “Chapter 6, on diagnostics, in OS3 Drive Installation
Manual”.
SYSTEM
DISCOVER ANOMALY
WRITES A MESSAGE
ON THE SCREEN
EXIT
Fig. 8-3 Servo error, skew error, encoder phase error, position tolerance error recoverable DSI
emergencies and remote I/O failures
NOTE:
In case of encoder phase error, the homing cycle must be performed with the axis that generated
the error.
LOGIC
WRITES A MESSAGE
ON SCREEN
MANAGE
RECOVERABLE
EMERGENCY
EXIT
END OF CHAPTER
This rack interfaces the configured OEM Softkeys and the function keys on the OPLink Operator
Panel if it is used.
INPUT VARIABLES:
OUTPUT VARIABLE:
Description:
If the Rack is activated the human interface SW activates the WinPLUS routine of the softkeys
each time the user changes an OEM softkeys status, or presses one of the six function keys on the
OPLink Operator Panel.
The following diagram shows OEM's various softkey status depending on whether the softkey is
pressed or released:
SOFTKEY
ACTUATED
ON state ON state
NORMAL
(no call, or <enter>
window open) ON state
DATA- ENTRY
The MW9975 variable (softkey number) indicates the number of the softkey that has been pressed.
This value is that assigned to the softkey (except for the function keys of OPLink) in the AMP
configuration program.
NORMAL, ON/OFF and MAINTAINED softkeys have values included between 1100 and 1199.
The P1 ÷ P6 function keys on the OPLink Operator Panel have values between 1400 ÷ 1405.
DATA ENTRY softkeys have values included between 1200 and 1399: two types of data entry are
available:
• data entry with default values that cannot be modified from logic. Its value is included between
1200 and 1299 and it is opened with default values defined in AMP.
• data entry with default values that can be modified from logic. Its value is included between
1300 and 1399; default values defined in AMP are passed on to the logic through the M RACK.
MW9976 variable (softkey type) indicates the type of softkey that has been pressed.
The type of softkey (except for the function keys of OPLink) is defined in the AMP configuration
program.
The following types are available:
The MW9977 variable (softkey status) shows the status of the softkey that has been
pressed/released.
Furthermore, there is a status associated to the data entry softkey for which a default value has
been configured.
ON MW9977 = 0
OFF MW9977 = 1
ON/OFF Softkeys
ON/OFF softkeys must be pressed once in order to activate the assigned function (the ON status
is assigned to variable MW9977); after the first pressing, the softkey remains active (yellow).
By pressing the softkey twice (active), it is de-activated (the OFF status is assigned to variable
MW9977); the softkey is de-activated (white).
MAINTAINED Softkey
MAINTAINED softkeys remain active (yellow) until the softkey is pressed: as soon as it is released,
the softkey is de-activated (white).
The ON status in assigned to variable MW9977 when the softkey is pressed and it receives an
OFF status when it is released.
The number of data, the type and format are defined in the AMP configuration program;
furthermore, it is possible to associate a default value to each field.
For data entry with a softkey number between 1200 and 1299, default values which are set in AMP
cannot be read by the logic.
After the opening of a data entry with its relative default values, the user may insert or modify from
console the values contained in the data entry fields. By pressing [Enter] or by pressing the
softkey a second time, introduced data are passed to WinPLUS in the input variable (from
MW9978 to MW9985 the short fields from MD2950 to MD2957 the floating point fields in variable
A1499 the data in ASCII format) together with the number of the pressed softkey (variable XW03)
and the ON status (XW 05 = 0).
If you use data entries with a softkey number between 1300 and 1399, the management of the
SOFTEKEY will be activated twice.
The first time the logic will transmit to the system the default values to be proposed to the user,
while the second time will be to send data inserted by the user to the logic.
The first routine activation will take place before the softkey is pressed and before the data entry is
displayed.
This time the machine's logic will use parameters MW9978 – MW9985, MD2950 – MD2957 and
A1499 as output parameters (in accordance with the parameters requested by specific SK).
The values written in the variable will appear in the data entry when the user exits the management
of the SOFTKEYS.
The logic can recognise data request through the variable MW9977 that in this case will contain
the value 10 (decimal).
The second routine activation will take place after the user has modified data in the data entry and
has confirmed them by pressing the softkey again.
This second activation corresponds to the activation made for the softkeys with standard data entry
(data entry number from 1200 to 1299) therefore, it is used to transmit to the machine logic new
data inserted by the user.
No data is sent to WinPLUS when the softkey is released or when data insertion is aborted through
[Esc].
IMPORTANT Avoid to manage more I/O variables then the ones configured in AMP.
NORMAL Softkeys
When a NORMAL type softkey is pressed the SOFTKEY routine that receives ON status in
variable MW9977.
Example:
Suppose you have an ON/OFF softkey in active status (yellow) and that WinPLUS uses SETCUSK
function of the system in order to deactivate it.
The second time the softkey is pressed, the management will receive an ON status instead of OFF
that follows when the softkey is pressed a second time.
By using information supplied by AMP configuration program, the WinPLUS programmer is able, in
this way, to identify all softkey commands and pilot all corresponding activities such as introducing
simple passwords, variable values, activating machine and CNC functions, etc.
NOTE:
• When a softkey command is sent to WinPLUS, human interface waits for an answer from
WinPLUS (in variable MW9973); during this period of time, all other OEM softkeys are disabled
(black) and noting happens if they are pressed.
• OEM softkeys can be enabled and disabled by using function call SETHINT.
• ON/OFF sequences on OEM softkey pressing and releasing can be modified by using function
calls SETCUSL and SETCUSK.
• For input variables value, refer to "10 Series CNC - AMP Software Characterisation" manual.
Every time these keys are pressed or released, the related code to the pressed key is written in
MW9975. For the P1÷ P6 keys this code varies from 1400 to 1405.
To turn on and off the LED for these keys you must use the CONS_LED function block (see the
description in the PLUS Library Manual).
END OF CHAPTER
WINPLUS INITIALIZATION
All WinPLUS routines start their execution after the system initialization. This is automatic; there is
no need to synchronize on special power turn on flags. For each one of the background routines,
you may have to perform an initialization sequence. This can be easily done with following
background routine organization:
BACKGROUND
Initialization Y
Flag
N INITIALIZATION
BODY OF
BACKGROUND ROUTINE
END
NOTE:
The background tasks will be the first to be executed after powering up the control.
BACKGROUND
POWER ON N
REQUEST
?
ENERGIZE THE
E-STOP RELAY (S)
(SPEPN)
LOOP CLOSURE
FOR ALL THE AXES
OF THE PROCESS
ENABLES DRIVES
OTHER LOGIC
FUNCTIONS
For digital axes (D.S.I. and OSWire OS3) a different sequence is used. The loop closure and
enable driver blocks must be replaced with the following sequence:
continues from
$RQRESET...
No
Determines whether
Yes
controlled axes are No Axis
S2, 1 = 1 ? Diagnostics
ready (signal S2,1 error?
S_AXES = 1)
Yes
Yes
Enables DRIVE
($AX_ENAB res 2)
Calls the
$AX_GETS
Waits for drive to be
enabled. function
Phase to be timed in
order not to remain
in cycle indefinitely.
QW2, 8 = 1 No
e
QW2, 9 = 1
?
Yes
Note 1 : after each FB call, the status_word must be tested in order to determine the outcome of
the function and manage any error(s) that may occur.
Note 2 : the phases to be timed are cycles during which an event is waited for; after waiting for a
predetermined time period, the cycle must be ended and an error message displayed.
If the digital axes are deactivated, the following procedure can be performed:
Deactivation
request
Disables drive
($AX_DISA res 2)
End
Notes: if any errors occur during the disable sequence the latter must not be interrupted; the errors,
if any, can be notified at the end of the sequence.
HOLD MANAGEMENT
In HOLD, the system will stop all axes motion. The logic has to detect the hold status by checking
the system status in system (flag S20_2). In analogy with the system, the logic may want to stop
the spindle and/or the point-to-point-axes.
Fig. 10-3 is a flowchart showing the required system actions and logic interface programming.
SYSTEM
Request to enter HOLD
MOTION IN
N
PROGRESS
?
HOLD N SYSTEM
ACCEPTABLE
?
Y
SYSTEM N
STOP THE MOTION
WITH CONTROLLED STATUS = HOLDA?
DECELERATION
Y
END OF MOVEMENT
PART PROGRAM
Y
REQUEST
IN PROGRESS
EXIT
HOLD ACTIVITIES
EXIT
EXIT
EXIT
USCITA
EXIT
If the system is in IDLE status, the function call HOLDON will change the status to HOLDA. The
next HOLDOFF function call will bring the system back to IDLE.
APPLICATION NOTES:
• HOLD stops the axes motion with a controlled deceleration.
• To exit from HOLD, the axes must be in exactly the same position as on entrance to HOLD. If
the axes were moved in manual mode during HOLD, the "jog return" function must be used to
return to the entrance position.
• HOLD can be aborted with a reset.
• In HOLD following activities are allowed:
− Manual motion
− MDI commands (motion, call subroutine, M functions )
− Active reset
− Multi Block Retrace
RESET MANAGEMENT
A reset command will stop all co-ordinated axes motion. The logic program must test the system
flag S20_7 to be informed about a reset. The logic can now execute its own reset which may act on
the spindle, the point-to-point-axes, auxiliary functions, etc.. The flowchart below shows the system
actions during reset and the handshake with the logic.Fig. 10-10 Reset management
SYSTEM
RESET request
ENTER RESET
STATUS (S20_7) LOGIC
N
MOTION IN SYSTEM N
PROGRESS ?
STATUS=RESET ?
CANCELL ORIGINS
(MC: clear G92 OFFSETS)
ENDRESE
N
LOGIC RESET ACTIVITY
Y N SYSTEM STATUS
EXIT EXIT
RESET
APPLICATION NOTES:
• The reset command stops all the activities in progress in the system and sets the initial
conditions for part program execution like:
− Set the default G codes
− Display active M codes with the "display after reset" attribute (see AMP manual).
− Set the null offset + home position value as the only axis offset.
− Axis positions are referring to the home position.
• The reset command aborts:
− the execution of part program and related subroutines
− MDI block
− part program blocks requested during a block calculation stop (M60)
− all postlude M codes which are not yet executed
• A feed hold command cannot be reset.
SPINDLE MANAGEMENT
The spindle is under full control of the logic program. During a machine power up or a power up
after E-stop, the following sequence of operations has to be performed.
BACKGROUND
Spindle N
status OK?
Y
Display message
Other application
specific actions
END
When you connect and enable the spindle the system will return an "identifier" for this specific
spindle to the logic. For all further operations on that spindle you must use this “identifier” (RTI
number). E.g. the functions SG96RPM and SG97RPM as shown in Fig. 10-10 will only work after a
successful SOPEN function call. From now on, you must use the RTI number returned by that
function call to orient the spindle or to set its speed.
Every time an M03, M04, M05 or M19 is programmed, the following sequence of operations has to
be performed:
NOTE:
The code M04 must change the sign of the S value.
The logic must also control the co-ordinated axes in order to complete the above cycles.
Co-ordinated axes' movement is provided by the logic which sends blocks to the system similar to
those that can be inserted from the keyboard in MDI mode (Manual Data Input).
It is possible to write blocks in the variables and send them to the system via the MDI_CMD library
function.
To execute these blocks, the system must be in IDLE status or, in this case, MAS status. The
system enters MAS status after a M function configured in AMP as "calculation block" has been
issued. For each movement the logic will receive requests for start/end movement consent.
1. signal the end-of-motion to the background so that it is able to send another block in
synchronization mode.
In order to pilot a co-ordinated axis (point 3 of background task), the following operations must be
performed:
Points 3, 4 and 5 can be repeated in order to execute more than one movement.
Points 1 and 6 cause the system to go back to the originally selected mode (MDI, AUTO, SEMI-
AUTO) when it exits the movement sequence.
Following is a flow chart you can use as an example of axes movement sequence, requested by
the logic after a M function has been released.
SYSTEM LOGIC
M FUNCTION RACK
FUNCTIONS EMISSION STROBE TIPE CODE
FUNCTION M NO
ISSUED
YES
NO OK FROM LOGIC
?
ACK_STRB FROM LOGIC
YES
YES
YES
END END
The system enters MAS substatus; this information is stored by WinPLUS in a M variable.
SYSTEM LOGIC
BACKGROUND
M VARIABLES
NO
M Function with
MAS request
YES
NO Is the system in
In MAS substatus
NO YES
Has exit from MAS
Substatus been
Requested ? Save the process execution mode
YES
Forces MDI mode (MDI_CMD)
Exit MAS substatus
(*)
(S20_13=0) Requests block execution in MDI
NO
Has the system left
MASit substatus
YES
Fig. 10-12 System axes (MAS) movement handling - request for block execution and exit from MAS
NOTES:
• This flow chart is the continues the logic described above (figure 10-11)
• (*) the block is shown in detail in figure 10-13
LOGIC
NO
Function M
with M AS request
YES
NO
Substatus system MAS
YES
SYSTEM
Force MDI mode (MDI_CMD)
YES
YES
END
NOTE:
The 10-13 flow chart shows in detail how the movement blocks of figure 10-12 must be executed
as "macro blocks".
• WinPLUS must monitor the condition of the hardware over travel limit switches for each axis.
The hardware limit switches must be wired to the I/O ring , Interbus or fast wire inputs. The
WinPLUS program must report all the status changes of the hardware over travels of the
system axes (switch activated, switch released).
For safety reasons use the foreground routine to manage the hardware over
travel limit switches.
WARNING
• When a limit switch over travel is pressed, the system will stop the movement, it will stop any
further movement in the wrong direction and it will display a message.
There are 3 possible ways of managing the over travel limit switches:
WINPLUS
RELEASE PRESSED
OVERTRAVELS
SYSTEM SYSTEM
DISABLES AXIS
OVERTRAVEL (AX_DISA)
RESET OTL RELEASED STOPS ALL
CONDITION STTRAVEL AXES OF PROCESS
FOR THAT AXIS OVERTRAVEL
PRESSED
CANCEL OTL (STTRAVEL) SAVES CONDITION
MESSAGE OF OVERTRAVEL
Fig. 10-14 Hardware over travel limits; WinPLUS disables the axis
The logic inhibits the axis that is at the end of its stroke and asks the system to decelerate all other
axes of the process that are moving.
WINPLUS
RELEASED PRESSED
OVERTRAVEL
LIMIT SWITCH
SYSTEM SYSTEM
Fig. 10-16 Second proposal for H/W over travel limits handling
The logic asks the system to decelerate the axes. There is no interaction between the logic and the
axes.
WINPLUS
RELEASED PRESSED
OVERTRAVEL
SYSTEM LIMIT SWITCH
SYSTEM
(STTRAVEL)
Fig. 10-18 Third way of handling the over travel limit switches
The logic inhibits all the axes of the process. WinPLUS must re-enable the axes (close the position
loop of the axes).
IMPORTANT The STTRAVEL function stops only the coordinated axes Auxiliary axes must
be managed by the user using the appropriate functions to stop the axes.
AXES HOMING
The axis homing cycle establishes an absolute part program reference position for a machine axis.
The axes homing cycle can be either manual or automatic according to the declaration made in
AMP. The sequence of homing an axis is automatic once it has been started by the operator (or by
the WinPLUS logic program). The activation of the homing cycle for one axis requires the following
steps:
• select the home position on the mode selector
• select an axis to be homed
• push the CYCLE START push button
The logic has to continuously update the corresponding system flag for the home limit switch SW3/
SW4 (copy the physical home limit switch input to the corresponding axis home limit switch flag.)
The information about "home" being selected, about the selected axis and the cycle which has
being started is supplied by the movement enable rack. The two flags SW3 and SW4 contain 32
bits in total and supply the axis home limit switch inputs for up to 4 axes boards containing up to 32
axes (max):
SW3
SW4
Fig. 10-19 Relation between home limit switch flags and the physical axis
For safety reasons the foreground routine should be used to monitor the home limit switches.
Home limit switches are usually wired as NC (normally closed) contacts. If wire
IMPORTANT them as NO (normally open) contacts, the logic program must invert the signals
before passing them to SW3 or SW4.
LOGIC
N HOMING
CYCLE
S
DETECT WHICH AXIS
MUST BE HOMED
EXIT
F+
+ “manual” feed
“home” feed
0
t
AXIS HOMED
W/O null offset
- manual feed
Progress with manual feed
F-
After the encoder marker has been detected and the axis has stopped, there are different modes to
complete the homing cycle according to the null offset:
1. If the null offset is not configured, the axis returns on the marker. The end position is exactly on
the marker
2. If the null offset has been configured the axis moves backwards or forwards to stop on the null
offset distance from the marker. The null offset value is a "shift of the encoder marker" in
software to allow the absolute reference position of an axis to be exactly on the mechanical
home position. Using null offset, a mechanical adjustment of the transducer can be avoided.
NOTES:
For optical scales with 1 marker, a home limit switch is not needed, so the logic does not need to
take any action. The axis software will find the (only) marker automatically (home direction
parameter).
The point-to-point axes must be homed by the logic program.
FEED HOLD
Feed hold (FEEDHOLD) is a function call which is available in WinPLUS which allows the axis
motion to be stopped temporarily on certain conditions and to be resumed once the condition
disappears (FEED_GO).
The feed hold command is of the NO WAIT type and may be used in the foreground routine.
The reset command does not cancel the feed hold status. Only the WinPLUS program can decide
when to cancel the feed hold status.
WINPLUS
SYSTEM SYSTEM
N S
PROCESS IN G33 or G84
FEED HOLD? ACTIVE?
S N
Fig. 10-23 Velocity versus time during feed hold and after feed hold release
ACTIVE RESET
Active reset is a command that is only available for the WinPLUS logic program. It can be used
after a cycle stop to cancel the remaining part of a motion block and if required subsequent part
program blocks can be cancelled.
Its use can be dangerous and can generate unpredictable situations depending
on the context of the part program in execution.
WARNING
The WinPLUS program can make the active reset function available to the operator (external push
button) or use it in conjunction with machine devices to generate an automatic active reset (e.g.
audio detection of contact between tool and part for fast automatic approach).
The system will accept an active reset request only under following conditions:
When the system is in HOLD, it is assumed to have stopped in the middle of the block and so the
remaining part of the motion still has to be completed.
Active reset, if accepted, resets the remaining part of the motion and assumes the current position
as the start position of the next motion block.
• The active reset function call (ACTRES) is of the WAIT type and returns a status word. If the
value in the status word is not zero, the function call was not accepted.
• When active reset is not accepted by the system, further active reset requests will examine the
next blocks in line and if no errors occur, the active reset of these blocks will be accepted.
• The postlude M functions present in the interrupted block will be lost after an active reset. With
the next cycle start, the next block will be started. When further active resets follow, also the M
codes in these blocks will be ignored.
G29 G01 X100 M05 ACTIVE RESET AT X=50 (M05 WILL BE IGNORED)
G01 Y100 M06 ACTIVE RESET (M06 WILL BE IGNORED)
G01 M03 Z100 M05 CYCLE START:
1) M03
2) MOVE TO X50 Z100
3) M05
• Any active reset accepted by the system will make the successive block to the active block. You
can see this in the screen in the part program subsection where the next block to be executed
will be shown in reverse video.
Example #1:
X10 Z40
Z20 <---- Active reset during the execution of this block
X100 <---- At the end of this block Z=30 X=100
Example #2:
X10 Z40
X50 Z10 <---- Active reset during the execution of this block
X100 Z30 <---- At the end of this block Z=30 X=100
WINPLUS
SYSTEM
N OTHERS
ACTIVE RESET MDI
CONDITIONS ? MODE SELECT
OTHER
SYSTEM STATUS
N PART PROGRAM
SELECTION
HOLD, HRUN
ERROR HOLD
ANSWER
G28, G27
G27,G28,G29
O.K. ERROR MESSAGE
INITIALIZATION
G29
EXIT
G02, G03
ACTUAL
INTERPOLATION
ANSWER = ERROR
G00, G01
ANSWER = O.K.
ENTER IN HRUN
STATUS (S20_4)
EXIT
WINPLUS
N
ACTIVE RESET
CONDITION
SEND HOLD TO
THE SYSTEM
(HOLDON)
EXIT
Fig. 10-28 Automatic sequence for active reset driven by the logic
When active reset is accepted, the system will be in the HRUN status. When the active reset is not
accepted, the system status will be HOLD.
LOGIC
N ICREM. JOG
ACTIVE (S31_4)
?
SELECT AXIS
N AXIS SELECTED
(SW 29)
S
SET JOG INCREM.
(SJOG)
JOG DIRECTION N
POSITIVE?
N FEEDRATE. O.K.
(SW 35) CONMOV for consent
To move request
EXIT
1 2 3 4 5 6 7 8 9 10 11
DEF. % VAL 0 1250 2500 3750 5000 6250 7500 8750 10000 11250 12500
NEW% VAL 0 500 1000 1500 2000 3000 5000 8750 10000 11250 12500
Remember that every time you change the feedrate override the system will activate a Feedrate
Override Rack (if available). The actual feedrate override percentage will be multiplied 100 times
in the variable MW(K+123).
The routine in this example reads the MW(K+123) value, constructs an index from the value and
uses a look-up table to set the new value:
It is generally used to accelerate axis positioning, for example, during program testing.
During the feedrate bypass the feedrate override selector is still enabled and can be used to
reduce the feedrate forced by feedrate bypass.
The FEEDBYON function call specifies the desired rapid velocity. FEEDBYOF restores the
previously programmed feedrate.
WINPLUS
N FRB
ACTIVE DE-ACTIVE ACTIVATE G33, G84 Y
? FEEDRATE BYPASS FEEDRATE BYPASS ACTIVE
Y (FEEDBYOF) (FEEDBYON)
N
RESET FEED RATE BYPASS
CHANGE FEED
(S30_15)
BACKGROUND
Y Is the RS232 N
initialized ?
INITIALIZE RS 232
232_INIT
RS 232 INITIALIZED
Y Are terminators N
defined ?
SET TERMINATORS
232_TERM
Terminators defined
Y RESET N
L’RS 232
RESET 232
232_RESE
No terminators defined
After the initialisation of the serial interface, it can be used to send or receive a buffer of data. To
use the send data function (R232_TXD) or the receive data function (R232_RXD) the number of
bytes to handle must be specified.
After having executed R232_INIT, you can also transmit ASCII strings, using the function
R232_TXS. This function takes the standard WinPLUS "NULL" end of string character ('\0') as a
string terminator. This is the same terminator that is used for all other WinPLUS string functions.
To receive strings (R232_RXS), you must define the ASCII string terminator (after initialisation and
before the first reception) using the function R232_TERM. This terminator, once set, remains active
until you reset the serial interface (R232_RESE).
Note: These commands are not available with the 10/110 and 10/310 versions of the control.
Y
MUST RECEIVE 232_RXD
DATA ?
Y
MUST TRASMIT
232_TXD
DATA ?
MUST RECIVE Y
STRING? 232_RXS
Y
MUST TRASMIT 232_TXS
STRING ?
END
The WinPLUS environment manages the axis positioning in the same way as the standard axes.
By using the point-to-point library functions for the auxiliary axes you can position with a defined
feedrate and change both feedrate and final position while the axes are moving.
Configuration
In order to use this feature correctly, you have to configure some parameters of the CNC and the
DAC DAM 60 drive. To program the drive parameters you have to use the software application
PCBASS (version for the operating systems MS DOS 3.3 or higher) or WINBASS (version for
Windows operating systems 3.1 or higher).
• Define the serial line to be used by configuring it in AMP in the hardware section, a value 3 on
the selected line. If you specify this value on both available serial lines, the serial line COM1 will
be assumed.
• Define the zero microswitch search procedure via the parameter P414.
• Select one of the 4 digital inputs to which you want to assign the axes reference microswitch
and program it using the relative parameters (e.g. P370, P371, P372, P373 for digital input 1).
• Configure the axes reference microswitch as normally closed or normally open via the
parameter P434.
• The data used internally by the DAC DAM 60 drive refer to a constant which represents the
number of transducer increments per motor rotation (65536 increments per rotation). In order to
make drive programming easier, the drive has two parameters (P402 and P403) which help
translate the user data into the internal measurement units. In other words these two
parameters the drive to be programmed with the desired measurement units (mm, degrees,
etc.).
The formula is as follows:
DAC parameter [Inc] = User parameter [UU] * (POS norm Z [Inc] / POS norm N [UU])
After defining the User Unit the standardisation constant is calculated by dividing the drive
constant (65536 increments per motor rotation) by the number of user units per motor rotation:
Now the (integer) values of the two parameters can be determined, the quotient of which is the
standardisation constant (see the example at the end).
• Program the drive parameter P432 (POS reference point). Its value represents the max.
allowed feed in the negative field (in UU) and is equal to the effective distance between the
negative end microswitch and the zero microswitch.
Programming
Before an axis can be moved from point to point, a channel must be opened with the function
AOPEN by entering the axis ID into the input variable axis_id of the function block. For controlling
the standard auxiliary axes, axis_id values between decimal 1 and 32 are used, whereas for
controlling an auxiliary axis via serial line any axis_id value between decimal 101 and 132 can be
used.
The function AOPEN returns the value of the interpolator assigned to this axis (rti_num): this value
is then used as input for the other point-to-point functions of the axis / spindle library.
To read the axis status the library function AUX_STAT is used, which provides the axis status word
(axis_sts) output (the function RTIRES normally used for reading the status of a standard auxiliary
axis doesn’t provide this output value). The rti_num value used as an input to the function block
AUX_STAT determines whether it is a standard auxiliary axis or one controlled via serial line. In
this mode the values of the output variable have a different significance (see WinPLUS Library
User Manual).
When managing auxiliary axes a Home Position value can be configured in AMP which
corresponds to the distance between the zero of the CNC and the physical zero. For the axis
controlled via serial line such value is introduced into the input variable position of the library
function PALMOVE used for the search of the zero microswitch (mov_type = 3).
The values for axis position and feedrate are entered into the input variables position and feed_rate
of the function PALMOVE: the operator enters the position values expressed in User Units and
feedrate values in User Units per minute. In addition the same library function can be used to
override the programmed feedrate by entering the percentage value into the feed_rate input
variable of the function block (mov_type = 8).
. The function GET_POSD has been introduced (see WinPLUS Library User Manual).to read the
current axes position and feed rate
Example:
Axis positioning (with a maximum stroke of 4000 UU) using digital input 1 for microswitch
search with negative end switch normally closed:
1 UU = 1 degree
Gear Box ratio: 1:1
Mechanical step: 360°/rotation
1 motor rotation = 65536 increments
1 UU = 65536 / 360 = 182,04 increments (drive normalisation constant)
After searching for the zero microswitch (PALMOVE with mov_type = 3), the axis is virtually at the
position 360° (at +360 in respect to the Home Position).
Machine Units
0 1080 1440 4000
µφ
Axis
Lets assume now that we want to move the axis to 720° with a feedrate of 360°/min. By
programming in input in function PALMOVE a value of 720 and the feed_rate variable with a value
of 360, we obtain a movement equal to one motor rotation in a time of one minute.
Machine Units
0 1080 1440 1800 4000
µφ
Axis
In addition we can program an override for the programmed feedrate. For example, if we want to
move with a feedrate of 25% of the programmed 360°/min, we have to enter a value of 25 into the
feed_rate input variable of the function PALMOVE (mov_type = 8).
NOTE:
In this case all programmed moves will be carried out at the override speed specified.
Installation Specifications
For correct functioning of the positioning drive and handling of emergencies, the 14, 19 and 20 pins
of the analogue/digital interface connector X26 have to be connected as follows:
These signals have to be connected in series to the EMERGENCY STOP button and the
GENERAL ESTOP contact in the 10 Series numerical control.
In order to reduce the general noise level emitted by the drives and possibly other equipment,
follow the instructions in paragraph “EMC Information” in Chapter 5 of the Installation Manual for
the DAC DAM 60 Drive (Cod. 45006742C).
In particular, observe the following rules when using the serial communications line RS-232 as
interface between the 10 Series CNC and the drive:
• The back panel of the cabinet in which the drives and the CNC are installed must be
conductive. When connecting it to ground, a large surface for discharging HF disturbances is
required.
• The cable used for the serial communications line must have an extern shielded covering of at
least 85%. For the same reason as mentioned above the external shield has to be connected to
the cabinet panel. This can be achieved as shown in Chapter 5 of the DAC DAM 60 Installation
Manual (carry out this shielding operation on the CNC side as well as on the drive side).
• The cable used has to consist of a twisted pair connected as follows:
In order to increase the immunity of the signals against noise, a pair of conductors for the RxD -
ground signals and another one for the TxD – ground signals. If shielded pairs are used, the
shields must be connected to Pin 5 of the connector (only on the CNC side).
END OF CHAPTER
INTERBUS is a serial line linking system for exchanging data between controller hosts (PLC
controllers, personal computers, NC's, etc.) and distributed input/output units to which the
actuators and probes are connected.
Hardware Prerequisites:
Software Prerequisites:
The 10 Series system integrates an INTERBUS controller which dialogues with the WinPLUS logic
via dedicated function blocks. It can handle up to 2048 digital inputs and 2048 digital outputs.
1. Define the configuration of the INTERBUS modules connected to the controller using the
configuration application IBS CMD G4. Map the physical I/O's onto the MW logic variables area
managed with the function blocks. Save the resulting configuration in a file with the extension
.SVC
2. Transfer the .SVC file from the PC to the 10 Series system in the directory of the enabled logic
renaming it so that it has the same name as the logic (but retaining the extension).
3. Use the logic Function Blocks IBS_INP and IBS_OUT in the foreground logic for transferring
the INTERBUS inputs/outputs to/from the MW variables.
All information on how to use the IBS CMD G4 application in this chapter only
refers to the operations required for correctly setting up the parameters for
IMPORTANT
the 10 Series system. You can find a detailed description of the IBS CMD G4
application, its features and its installation in the specific manuals supplied
with the software package.
Then follows the dialog window in which you have to compile the serial line ID you want to use:
The main menu of the application is consistent with the icon currently selected in the configuration
window (it is identified by a black frame). The following menu examples refer to the context menu
of the <Controller Board> icon.
Before working off-line or on-line you have to set the INTERBUS controller master type present in
the NC:
On-line Operations
If you connect a PC (on which the configuration application is installed) to the INTERBUS controller
on the NC's relative diagnostics connector with a serial cable, you can:
• automatically acquire the configuration of the INTERBUS modules currently connected to the
controller;
• execute the diagnostics (error tests, test and status of the I/O's).
Before you can do this, you have to verify the connection parameters:
If the INTERBUS controller is connected to one or more peripheral modules you can automatically
acquire the configuration using the following command sequence:
The following command enables the current configuration on the INTERBUS controller:
The following command allows you to see the overall configuration of the I/O's which the
INTERBUS controller is handling:
You see all the physical <Data Descriptors> with the default <Assignments> the INTERBUS
controller has applied automatically.
These data can also be shown on single module level by selecting the icon of the relative module:
You can create new <Data Descriptors> acting on bit groups that have to be mapped in to special
zones in order to re-group I/O bits distributed over several modules but belonging to the same
functional category, e.g. input for axes homing.
In this case you have to cancel the <Assignments> of the default <Data Descriptors>. The
following example creates a logical group of 3 output bits starting with the physical bit 2 of the
relative module and mapping it into byte 3 starting from bit 5. It therefore occupies the most
significant bits of this byte:
The <Assignment> represents the offset (in bytes) in a virtual memory starting from which the
physical bits of the <Data Descriptor> are assigned. The 10 Series system manages 2 virtual
memories of 256 logic bytes (2048 bits): one for the inputs and one for the outputs. Hence valid
offsets range from 0 to 255.
Each of these memories is mapped on 128 MW variables, on which the Function Blocks IBS_INP
and IBS_OUT operate.
Assuming the variables MW1000 … MW1127 are used for the function block IBS_INP, the
following table is valid:
Assuming the variables MW1128 … MW1255 are used for the function block IBS_OUT, the
following table is valid:
This table creates correspondence between modules having <Data Descriptor> of different
dimensions:
MW Word Word
bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Module Signal16 bit module 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Off-line Operations
You can create a configuration representing the actual lay-out of the modules connected to the
INTERBUS controller without the serial diagnostics link.
There are two possibilities: either by inserting the module using its code or by a high-level
description present in the database.
INTERBUS ERRORS
The system does not automatically detect INTERBUS errors.
The WinPLUS logic will intervene triggered by the signals available in the standard registers of the
INTERBUS controller.
The data to be entered always represents an identical <Assignment> to the one used for the I/O
modules with the difference that only even-numbered values are proposed which have not already
been used by the I/O modules.
After initializing a controller with a configuration you can control its correct functioning by checking
for the value 0x00E0 (hexadecimal) on the MW reporting the diagnostic status register.
To update the diagnostic registers you have to set bit 2 (deleting the diagnostic display) of the MW
that reports the standard function start register.
END OF CHAPTER
CANopen is a standard field bus for the exchange of data between a control host (PLC, numerical
controls, personal computers) and input/output devices (sensors, actuators, valves, drives).
Hardware requirements:
1. CANopen RIO EC couplers which can be connected to modular devices RIO 8I/O, RIO
8I8I/O, RIO 16I, RIO 16O, RIO 4AI/4AO ±10V, RIO 4AI ±10V, RIO 4AI/4AO 20mA and RIO
4AI 20mA;
2. CWIO (16I + 16I/O) compact type module (only with Software E69 7.2 or later releases).
• CANopen RIO EC couplers can be connected to up to 8 RIO modules, of which max. 2 can be
analog type.
Software requirements:
• Software for Series 10 numerical control.
• Function available with Software E69 V7.1 fixup 3 or later releases.
• Software for PC Windows I/O Configurator available with WinNBI C07 V2.2 or later releases.
Series 10 system integrates a CANopen controller which communicates with logic by means of I
and O variables. It manages up to 8192 digital outputs and 8192 digital inputs.
For the use of the I/O Configurator application, see the relative on-line Help.
Two buffers are provided (1024 bytes each) for the configuration of I/O devices.
After configuring the I/O devices by means of the $IBS_INP Function Block it becomes possible to
transfer the physical inputs to the MW variables; the $IBS_OUT Function Block, instead, lets you
transfer the MW variables to the physical outputs. The two Function Blocks always work starting
from byte 170 over a length of 128 words. Keep in mind that when the I/O RING is present, the first
170 bytes are reserved to it.
INPUT buffer:
OUTPUT buffer:
The two Input/Output buffers are updated by the system every 10ms.
CONFIGURATION EXAMPLE
If you configure a CANopen network with three nodes, the first of which is a RIO EC coupler, with
ID=10, with two modular units (RIO 16I and RIO 16O) connected to it, the second is a CWIO
compact module, with ID=12, and the third is a RIO EC with ID=1 with two modular units connected
to it (RIO 8I8I/O and RIO 4AI/4AO ±10V), the window to the left of the I/O Configurator application
will have a structure similar to the one displayed in figure 2:
The connections between the nodes and the master board could be arranged as follows:
CWIO
CW-BISA
Master
Board ID = 12
ID = 10
Termination
resistance
Error codes are stored in the input buffer starting from the byte specified in the "Diagnostics
Offset" field of the I/O Configurator configuration over a length of 16 bytes.
Failure to manage the words containing the error codes in the Plus and
Winplus logic may give rise to situations endangering the system. It is
WARNING important to monitor the status of these words continuously.
Linking error between a local TXPDO and an RXPDO of a remote node (Contact our technical
service).
Linking error between a local object and an object mapped in PDO (Contact our technical
service).
Linking error between a local RXPDO and a TXPDO of a remote node (Contact technical
service).
Linking error between a local object and an object mapped in PDO (Contact technical service).
SDO service requested on remote node failed. Possible causes: cable not connected, wrong
address, wrong Baud Rate; node not powered.
The total number of I/O’s is not the same as can be inferred from the configuration file.
A module which is not compatible with the coupler has been connected.
The modules configured are not present in the network or not connected to the coupler.
Some of the modules present in the network have not been configured.
This is a WARNING message: at least one slot is not powered and does not work correctly.
CNC start-up can be resumed by pressing Enter.
The firmware of module RIO EC is not compatible with the software of the CNC.
(Contact our technical service).
END OF CHAPTER
OSWire is a proprietary field bus for the exchange of data between a control host (PLC, numerical
controls, personal computers) and input/output devices (sensors, actuators, valves, drives,
operator console).
Hardware requirements:
1. RIO EC FW couplers which can be connected to modular devices RIO 8I/O, RIO 8I8I/O,
RIO 16I, RIO 16O, RIO 4AI/4AO ±10V, RIO 4AI ±10V, RIO 4AI/4AO 20mA and RIO 4AI
20mA;
• RIO EC FW couplers can be connected to up to 8 RIO modules. This limit no longer applies if 7
analog type RIO modules are connected: in this case, the limit is 7 RIO modules.
Software requirements:
• Software for Series 10 numerical control.
• Function available with Software E69 V7.3 or later releases.
• Software for PC Windows I/O Configurator available with WinNBI C07 V2.3 or later releases.
Series 10 system integrates a OSWire controller that communicates with logic by means of I/O
variables. It manages up to 8192 digital outputs and 8192 digital inputs.
On Series 10 system, OSWire functions are activated by creating a (text type) configuration file by
means of the I/O Configurator application supplied with WinNBI v2.3 or later versions. Once
created, this file shall reside in the same directory as the logic and shall have the same name as
the logic plus extension .BUS.
For the use of the I/O Configurator application, see the relative on-line Help.
Two buffers are provided (1024 bytes each) for the configuration of I/O devices.
After configuring the I/O devices by means of the $IBS_INP Function Block it becomes possible to
transfer the physical inputs to the MW variables; the $IBS_OUT Function Block instead lets you
transfer the MW variables to the physical outputs. The two Function Blocks always work starting
from byte 170 over a length of 128 words. Keep in mind that when the I/O RING is present, the first
170 bytes are reserved to it. The I/O’s can be managed by the logic through the I/O variables.
INPUT buffer:
OUTPUT buffer:
The two Input/Output buffers are updated by the system every 10ms.
CONFIGURATION EXAMPLE
If a OSWire network is configured with two nodes, of which the first is a RIO EC FW coupler with
ID=3 with two modular units connected to it (RIO 8I/O and RIO 4AI/4AO ±10V) and the other is a
compact type module with ID=1, the window on the left of the I/O Configurator application will
display a structure of the type shown in figure 2:
Network_1
The connections between the nodes and the master board could be arranged as follows:
ID = 1
Terminator plug
Error codes are stored in the input buffer starting from the byte specified in the "Diagnostics
Offset" field of the I/O Configurator configuration over a length of 8 bytes. A description of the
various words is given below:
Table 13-1 Error codes of Compact I/O, RIO EC FW, mini-Compact and Operator Console
Failure to manage the words containing an error code, in the Plus and
WARNING
Winplus logic alike, might give rise to hazardous conditions for the system.
Accordingly, the status of such words should be monitored on a continuous
basis.
Slave could be defective, or node ID set at configuration stage corresponds to a slave other
than an I/O module.
The I/O number of a node does not correspond to the configuration data.
This is a WARNING message. At least one module is not powered and hence is not working
properly. CNC can be restarted by pressing the Enter key.
END OF CHAPTER
PROFIBUS is a standard field bus used for the exchange of data between control host (PLC,
numerical controls, PCs) and input/output devices (sensors, actuators, valves and drives).
Hardware Prerequisites:
Software Prerequisites:
[NET_DESCRIPTOR]
TYPE = PROSL
ID =0
OFFSET_DIAGN = XXX Insert offset, in bytes, form the input buffer where the driver will
write the error codes. You must remember that if the I/O RING is present the first 170 bytes are
reserved to it, and even if not present function blocks $IBS_INP and $IBS_OUT always operate
from byte 170.
[PROSL_0_NODE]
INP_OFFS = XXX Insert the offset in bytes for the writing of the Inputs.
OUT_OFFS = XXX Insert the offset in bytes for the writing of the Outputs
Example :
[NET_DESCRIPTOR]
TYPE = PROSL
ID =0
OFFSET_DIAGN = 350 First byte available, because the first 170 are reserved for the I/O RING ,
and the following 180 bytes are for the inputs.
[PROSL_0_NODE]
NUM_INP = 1440
NUM_OUT = 1440
INP_OFFS = 170
OUT_OFFS = 170
The Function Block $IBS_INP allows to transfer the physical inputs to the variables MW, whilst
$IBS_OUT allows to transfer MW variables to the physical outputs. The two function blocks always
operate starting from byte 170 for a length of 128 words.
INPUT Buffer:
Input RING 170 bytes Input ProfiBUs 180 Bytes (1440 Diagnostic 7 bytes
bit)
OUTPUT Buffer :
170° bytes
Byte 0: generic error code generated during the startup of the system or during the functioning of
the system
Byte 1: Identifies the status of the writing of the data on the slave;
Byte 2: Identifies the status of the output of the CN (slave) towards the master;
0 100 The number of inputs or outputs is higher of the maximum allowed value (180
bytes)
102 The ID parameter of the node is not included in a valid range (1-255)
109 There is not enough DPRAM memory to process the request or the answer
2 0x01 The CN (slave) has enabled the freezing status of the requested Output
requested by the master
0x02 The CN (slave) has received “global command” from the master
4 0x01 The freezing function of the inputs has been enabled by the master
0x04 The inputs are in “Failsafe” status sent from the master to the slave
0x10 Some valid data received from the master are present
0x01 The slave waits for the configuration control command by the master
Controller not present. The board may be absent, or not properly mounted.
Not enough DPRAM memory available to process the request or the reply.
FINE CAPITOLO
GLOSSARY
Active reset Software function to cancel the remainder of a part program block.
The control must be in HOLDA status. Works only in AUTO and
BLK-BLK modes.
AUTO Automatic mode of operation. After a cycle start, the first and all
subsequent part program blocks will be executed automatically.
Axes table A table in the dual port memory of the I/O processor module which
has one record for every axis. Every record (page) contains a
number of fields. Some fields are defined for storage of active
offsets (tool and origin) other fields store up to 10 selectable
origins per axis.
Axis identifier A unique number which identifies an axis, its hardware and its
software management on the servo module. The axis identifier can
be used as an index to the axis table.
Boolean variable/constant The smallest unit of information that exists. It can have a 1 value
(true) or a zero value (false). Inputs and outputs are of the type
Boolean (bit).
Double variable/constant A variable or constant with a double accuracy floating point format.
The length of a double operand is 64 bit. The format is generally
used in the WinPLUS logic for non-integer values. In the system
the double format is used for all axes positions and offsets.
Dual port memory Memory on board the I/O processor module which is shared by the
I/O processor CPU and the system CPU. Both CPUs can read or
write this memory.
Expedite M code M code which can be issued to the logic during continuous motion.
There is no synchronization between motion and transfer of the
expedite M code to the logic.
Fast inputs The I/O processor module supports 4 fast inputs. They are called
fast because they generate an interrupt which will immediately stop
the on-going logic program execution and start a so-called interrupt
routine.
Foreground High priority logic routine which will be started at a regular time
base of 10 ms (depends of system and configuration). It must be
fast in execution. If the next timed interrupt arrives and the
foreground is still executing, a "time slice overrun error" will occur
which causes an unrecoverable emergency.
I/O processor clock The I/O processor clock is a signal which is true every 10 ms. The
scanning of the inputs and outputs of the I/O ring and the
execution of the foreground logic routine are triggered by this
signal.
I/O processor module On early controls systems it was a dedicated board within the 10
Series CNC. It has its own processor, interfaces the I/O ring, 2
analog inputs, 4 interrupt (fast) inputs, 4 fast outputs and a serial
line. It communicates with the system via function calls and via its
dual port memory. Its function in the CNC is the execution of the
logic interface between machine tool and numerical control In all
current systems these functions are managed by the main CPU..
Interrupt routine A routine with high priority, which is started at the occurrence of a
signal. This signal can be derived from a fast input, from an
internal timer or from a communication from the system. All
pending lower priority activities will be suspended and the interrupt
routine will be completely executed.
JOG return You can interrupt the execution of a motion block in a part program
(cycle stop / HOLD) and manually move the axes to inspect the
tool or the work piece. To synchronize the axes positions with the
ones stored for the pending block, all axes have to be moved back
to the point where they were before the manual motion. Jog return
is a mode of operation, which allows manual or automatic return of
the axes to this point.
MDI Manual Data Input. A special mode, which allows a part program
block to be typed in and executed. Up to 10 blocks are temporarily
stored and are available in a window on the screen.
NO WAIT function call A system function call which does not expect a status word or
other information in return. The execution of such a function call
does not suspend the execution of a logic routine.
OEM softkey The machine tool builder can define new softkeys for his specific
application. The definitions are made in AMP. The new softkeys
can only be handled in the logic.
Pilot panel The Pilot panel is a device in the I/O Ring. It contains hardware
selector switches and push buttons for the most frequently used
CNC operations. It is handled by the system.
RESET A function that returns initial conditions of the CNC. It clears offsets
and the part program buffer. The power on G codes are restored.
System function call The logic can call the system (CNC) to request certain action or
information.
Table editor A build in utility to inspect and/or alter the contents of all tables.
Tool offset table Table which contains the tool geometry and tool wear offset data
for all tools.
Tool table Table containing all data belonging to the tools. There is one
record (page) for each individual tool. Each page contains data
like:
tool pocket
tool status
user data
related offset table page.
User table Table with 100 records fully available to the WinPLUS
programmer.
WAIT function call A suspensive function call to the system. The routine in which the
wait function call is used will be suspended until the data
requested from the system arrives or until the system returns a
status word giving information about the action executed.
WinPLUS The name of the programming language for the PLC (I/O
processor) in the 10 Series CNC system which allows programs to
be written in one of the following PLC programming languages:
Ladder diagram (LD)
Function block diagram (FBD)
Structured text (ST)
Sequential function chart (SFC)
END OF APPENDIX