S3000 PLC
S3000 PLC
S3000 PLC
Series S3000
General
REVISIONS
Rev.# 00 Rev.Date 21/07/95 Second release Revised pages CMAPLC95070E
The features described in this updating manual are fully implemented on the S3000 Series systems with software versions after July 1999; the software versions include in part the features described.
------- ---------------- ---------------------------------------------------------------------------------------------------------------------
Note:
Note: Pages marked by an asterisk (*) were removed, pages marked by a (+) symbol were added, and pages without markings were modified.
Series S3000
General
REVISIONS (cont.)
Rev.# Rev. Date Revised pages
Note:
Note: Pages marked by an asterisk (*) were removed, pages marked by a (+) symbol were added, and pages without markings were modified.
Series S3000
General
INTRODUCTION
INTRODUCTION
This manual is intended for the (OEM) of machine tools and machining centers who wish to install the SELCA series S3000 numerical controller. This manual provides all of the information on the MACHINE LOGIC operated by the PLC integral to the Series S3000. The manual provides a description of the instructions used in programming the PLC, as well as describing the system interface and the interchangeable commands. Also provided are complete examples of real applications, form which ideas may be taken for writing custom applications. When required, the manual calls out the differences between the Series S3000 system and the preceding system (S1200). This information may be helpful for those who have been working with the earlier system.
REFERENCES
In addition to this manual please refer to the following documents for further information on the S3000 system hardware and NC programming. User's Manual (for Programming) System Configuration Manual Installation Manual
Series S3000
General
SUMMARY
The manual is divided into three independent parts: Part I Programming language and operating procedures This part contains descriptions of all the programming instructions, including simple examples, as well as utilization procedures and the softkeys that control the operations in this area.
Part II System Interface This part describes all of the instructions exchanged by the PLC and the NC, including their function and use. Part III Programming examples This part contains a few examples of actual applications which were made using the PLC language.The contents of the individual chapters found in each of the parts is as follows:
Part I Chapter 1 Characteristics and Usefulness This chapter lists all of the primary characteristics of the SELCA Series S3000 and their usefulness. Chapter 2 Operating procedures This chapter describes the softkeys used in the APPLICATIONS environment to execute such programming operations as; editing, compiling, activating, and debugging. Chapter 3 Program organization This chapter describes the program structure as well as the format for constants and variables used within the program. Chapter 4 Pre-settings This chapter contains a list of variables which must be set prior to beginning programming. For example; inputs/outputs, impulse types, counters, logic definable softkeys, internal variables and timers. Chapter 5 Functions and Operations This chapter describes the instructions used during the programming, including related parameters and limits. The functions are subdivided into: logic, format variables conversion, arithmetical/mathematical and string operations. Chapter 6 Instructions for program controls This chapter describes the functions which vary the program flux while it is running; such as, jumps, loops, and subroutines. Chapter 7 Special Functions In the final chapter of Part I certain user functions are described such as; statistical calculations, signal selection, and user messages.
Series S3000
General
Part II Chapter 1 This chapter contains descriptions of the registers, PLC/NC interface variables, including each variable's characteristics and format. The registers are grouped by type or function. Chapter 2 This chapter describes the functions of the registers described in the previous chapter, that is it describes the control of the mandrels, axis movements, and tool changer control. Chapter 3 This chapter briefly describes the modifications needed to convert a series S1200 program to an S3000 program. Chapter 4 This chapter contains a table which summarizes the registers and associated variables described in chapters 1 & 2. This table is particularly useful as a reference sheet for programming. Part III The third part contains a single chapter which lists various program examples which may be used on their own, or as starting points for writing programs to perform analogous work.
Note:
The Return key is positioned vertically on the keypad ( in this manual for better use of space .
The term "set" indicates the forcing of a variable to the logic level "1" or "true". The term "reset" indicates the forcing of a variable to the logic level "0" or "false".
S1200
T This symbol indicates the description of differences between the series S12000 and S3000 systems. This will be particularly useful for those who have already installed or have been using the S1200 system.
Series S3000
General
INDEX Part I
1. USES AND FUNCTIONS
1.1. MAIN CHARACTERISTICS OF THE SERIES S3000 ................................................................. 1-1
2. PROCEDURE
2.1. EDITING THE LOGIC .................................................................................................................. 2-2 Edit menu .......................................................................................................................... 2-3 Edit logic menu.................................................................................................................. 2-4 Advanced function menu................................................................................................... 2-5 Edit parameters menu....................................................................................................... 2-6 2.2. COMPILE LOGIC......................................................................................................................... 2-7 2.3. LOAD AND RUN.......................................................................................................................... 2-7 2.4. TRANSLATION OF PROGRAMS EDITED ON S1200................................................................ 2-8 2.5. LOGIC DEBUG ............................................................................................................................ 2-8 2.5.1. DYNAMIC DISPLAY .......................................................................................................... 2-8 2.5.2. GRAPHIC ANALYZER....................................................................................................... 2-10 Setting-up the graphic analyser ........................................................................................ 2-10 Trace analysis ................................................................................................................... 2-12 2.5.3. DISPLAY AND ANALYZER TABLES ................................................................................ 2-14 2.5.4. FORCED ASSIGNMENTS................................................................................................. 2-14 2.5.5. FORCED VALUES TABLES.............................................................................................. 2-15 2.5.6. RESET STATIC RAM ........................................................................................................ 2-15
3. PROGRAM ORGANIZATION
3.1. GENERAL RULES....................................................................................................................... 3-1 3.2. PROGRAM STRUCTURE ........................................................................................................... 3-2 3.2.1. DECLARATION SECTION ................................................................................................ 3-2 3.2.2. INITIALIZATION SECTION................................................................................................ 3-3 3.2.3. PROGRAM SECTION ....................................................................................................... 3-3 Superfast logic .................................................................................................................. 3-3 Fast logic........................................................................................................................... 3-3 Slow logic .......................................................................................................................... 3-3 Superslow logic ................................................................................................................. 3-4 Synchronization................................................................................................................. 3-4 3.2.4. ROUTINES SECTION ....................................................................................................... 3-4 3.3. VARIABLES AND NUMBER FORMAT ....................................................................................... 3-4 3.3.1. VECTOR AND SINGLE VARIABLES ................................................................................ 3-5 3.3.2. STATIC AND DYNAMIC VARIABLES ............................................................................... 3-6 3.3.3. CONSTANTS..................................................................................................................... 3-6 3.3.4. CONFIGURABLE CONSTANTS FOR MACHINE LOGIC ................................................. 3-6 3.3.5. DISPOSITION OF SINGLE BITS INTERNAL TO THE VARIABLES................................ 3-7 3.3.6. ACCESS TO VARIABLE BITS .......................................................................................... 3-8 Single variables................................................................................................................. 3-8 Vectorial variables............................................................................................................. 3-8 3.3.7. ACCESS TO BITS OF ADJACENT VARIABLES ............................................................. 3-9
Series S3000
General
4. INITIAL DECLARATIONS
4.1. DECLARATION OF PHYSICAL INPUTS / OUTPUTS ................................................................4-2 4.1.1. PHYSICAL INPUT/OUTPUT DECLARATION: REMOTE I/O MODULES..........................4-4 4.2. DECLARATION OF INTERNAL VARIABLES .............................................................................4-5 4.3. DECLARATION OF STRING .......................................................................................................4-6 4.4. DECLARATIONS OF EQUIVALENCES ......................................................................................4-7 4.5. PULSE..........................................................................................................................................4-8 4.6. TIMERS ........................................................................................................................................4-9 4.7. COUNTERS .................................................................................................................................4-11 4.8. LOGIC DEFINABLE SOFTKEY ..................................................................................................4-13
Series S3000
General
7. SPECIAL FUNCTIONS
7.1. FLIP FLOP ................................................................................................................................... 7-1 7.2. MULTIPLEXER ............................................................................................................................ 7-1 7.3. TABLE SEARCH ......................................................................................................................... 7-2 7.4. MESSAGES FOR THE OPERATOR ........................................................................................... 7-3 7.5. MACHINE LOGIC PROGRAM COMMANDS .............................................................................. 7-4 7.5.1. PROGRAM COMMANDS USED DURING AUTOMATIC PROGRAM EXECUTION ........ 7-5 7.5.2. PROGRAM COMMANDS RUN FROM THE MANUAL MODE .......................................... 7-5
7.5.3. MACHINE LOGIC PROGRAM COMMANDS IN SEMIAUTOMATIC MODE RUN............................................................................................................................. 7-5 Machine logic program commands: unit of measure ........................................................ 7-6 Machine logic program commands:functions not permitted.............................................. 7-6 Machine logic program commands: running in asynchronous mode ................................ 7-7
Part II
INTRODUCTION ......................................................................................................... 1 1. SIGNAL FLOW AND DATA EXCHANGE
1.1. NC STATUS................................................................................................................................. 1-1 1.2. AUXILIARY SYNCHRONOUS AND PREPARATORY FUNCTIONS ......................................... 1-2 1.2.1. ACQUISITION OF PLC TO NC SYNCHRONOUS INFORMATION .................................. 1-3 1.2.2. SIGNALLING COM SUBPROGRAM TERMINATION ....................................................... 1-3 1.2.3. SUPPLEMENTARY PARAMETERS I, J, K, Q ................................................................. 1-3 1.2.4. EXECUTION OF AUXILIARY FUNCTIONS ON THE FLY .............................................. 1-4 Auxiliar functions: notes on sending the speed................................................................. 1-4 1.3. ASYNCHRONOUS START, STOP, ALARM AND ACKNOWLEDGE CONTROLS ................... 1-5 1.4. TOOL ORIGINS AND COMPENSATION .................................................................................... 1-7 1.4.1. MANUAL TOOL CHANGE ................................................................................................. 1-7 1.4.2. TYPE S1200 MANUAL TOOL CHANGE ........................................................................... 1-7 1.4.3. AUTOMATIC TOOL CHANGE........................................................................................... 1-7 1.5. COMMANDS REGULATING AXIS FEEDS ................................................................................. 1-8 1.5.1. ENABLING AND LOCKING AXES .................................................................................... 1-8 1.5.2. AXES ALWAYS ACTIVE OR WITH LOCKING (M10 - M11)............................................. 1-9 1.5.3. AXES RELEASE (M45 - M46) ........................................................................................... 1-10 1.5.4. TRANSDUCER DISABLING.............................................................................................. 1-10 1.5.5. MANUAL MOVEMENT IN JOG ......................................................................................... 1-10 1.5.6. MANUAL MOVEMENT WITH HANDWHEEL.................................................................... 1-11 1.5.7. HOMING THE AXES ......................................................................................................... 1-11 Reference cycle using home switches.............................................................................. 1-12 Homing using the electrical zero of the transducer (marker) ............................................ 1-15 Homing using optical scales ............................................................................................. 1-16 1.5.8. MOVEMENTS IN MANUAL DURING HOLD STATE......................................................... 1-17 1.5.9. MOVEMENT IN MANUAL AND REFERENCING DURING PROGRAM EXECUTION...................................................................................................................... 1-17 1.5.10. INFORMATION REGARDING THE AXES ...................................................................... 1-17 1.5.11. DYNAMIC COMPENSATION OF AXIS POSITION ......................................................... 1-19 1.5.12. OFFSET FOR CONTROLLED AXES .............................................................................. 1-19 Additional origin offset for controlled axes ........................................................................ 1-19 1.6. MANAGEMENT OF CONTACT MEASUREMENT PROBE........................................................ 1-20 1.7. AXIS SOFTWARE LIMITS........................................................................................................... 1-20 Controller axis software limits: de-activating error E93 ..................................................... 1-21
Series S3000
General
1.8. SPECIAL TYPE AXIS MANAGEMENT .......................................................................................1-22 1.8.1. PARALLEL (GANTRY) AXES ............................................................................................1-22 1.8.2. PROGRAMMABLE NON - CONTROLLED AXES .............................................................1-22 1.8.3. MASTER SLAVE AXES (NC "MS" OPTION).....................................................................1-23 1.8.4. READING INPUTS AND WRITING ANALOG OUTPUTS: REMOTE I/O MODULES .........................................................................................................................1-23 1.9. READING AND WRITING ANALOG INPUTS AND OUTPUTS ..................................................1-25 1.10. EXCHANGE OF DATA BETWEEN PLC AND PART PROGRAM ............................................1-25 1.11. NC VIDEO DISPLAY WINDOWS..............................................................................................1-26 1.12. SYSTEM DATE AND TIME........................................................................................................1-27 1.13. SIGNALS FOR COPYING AND DIGITIZING SURFACES ........................................................1-27
Series S3000
General
Reading and writing analog inputs and outputs........................................................ 4-7 Data exchange between PLC and part program ...................................................... 4-7 NC video display window ................................................................................................ 4-7 System date and time ..................................................................................................... 4-8 Copying and digitizing of surfaces .................................................................................. 4-8 Variables to verify system execution times ..................................................................... 4-9 Error signals accessed by logic ...................................................................................... 4-10 Reading and modifying axis configuration parameters ................................................... 4-10 4.3. DEDICATED MODULES ............................................................................................................. 4-11 Spindle rotation ............................................................................................................... 4-11 Range change selection ................................................................................................. 4-11 Spindle orient .................................................................................................................. 4-11 Synchronization between spindles.................................................................................. 4-12 Common to all operations ............................................................................................... 4-12 Fixed cycle G84 .............................................................................................................. 4-12 Independent axis movement module .............................................................................. 4-12 Tool change management module ................................................................................. 4-14 Tool tables ...................................................................................................................... 4-15
5. LIMITS
10
Series S3000
General
Part III
1. PLC PROGRAMMING EXAMPLES
BAS300F - Basic machine (3 axes and spindle) ...............................................................1-2 COMI3045 - 3 axis machine, slide clamps, spindle orient.................................................1-5 AXM11 - Selective axis clamping ......................................................................................1-10 AUXON - Auxilliary control logic.......................................................................................1-11 GEVOL3 - Single handwheel of X, Y, Z axes...................................................................1-12 SPIND1 - Spindle rotation .................................................................................................1-13 SPIND2 - Spindle orient ....................................................................................................1-15 SPIND3 - Range change...................................................................................................1-16 LUBMET - Lubrication based on axis travel ......................................................................1-17 LUBIN3 - Basic intermttent lubrication .............................................................................1-19 LUBMOV - Lubrication timed only when axes are moving ................................................1-20 ZERIAX - Automatichome axes cycle ...............................................................................1-21 ESRNDCU - Random tool change with load / unload in masked time ..............................1-23 SCROLLIN - Manage upto 128 messages with on screen scrolling .................................1-28
SHIFTZ - Example of compensation for Y fall as a function of Z ............................... 1-29 AXBLOC1 - Clamp axes with timed wait ...........................................................................1-30 AXBLOC2 - Clamp axes with external enable...................................................................1-31 ESSINCU - Synchronous tool change with grid ................................................................1-32 AXP2P - Control of tool storage axis from PLC.................................................................1-37 COMMUCM -Switch spindle with C axis ...........................................................................1-39 NEWFILT - Numerical filter ...............................................................................................1-41 TABUTE1 - Reorder tool position in table .........................................................................1-42 TESTAR - Indexed head moved by spindle motor ............................................................1-43
APPENDIX
APPENDIX A ASCII CODE TABLE ..........................................................................A-1
11
Series S3000
General
12
Series S3000
PART I
Series S3000
Series S3000
1. Uses and functions
1-1
Series S3000
1. Uses and functions
Digital I/O: 32 inputs and 24 outputs, expandable to 384 inputs and 288 outputs. Analog I/O: 24 outputs and 41 inputs, plus 8 inputs for temperature probes. Tool Center Point Management function TCPM, for 5 axis machines with automatic control of tool to work piece contact in three dimensions, with bi-rotational heads and rotating or tilting tables. (Version P) Cubic interpolation for high speed work of complex shapes (Version P) Three dimensional surface scanning for digitizing and direct copying Mass storage (DOS compatible hard disk, and floppy disk) Interface and communication software for serial and network communication (point to point and multi-point). Expandable configuration (L and PL) allowing additional I/O and transducer and hard disk interfaces as well as network connections. Compatibility with earlier SELCA CNC models.
1-2
Series S3000
2. Operating procedure
2. PROCEDURE
Before examining the program structure and writing instructions, it is helpful to understand the operating procedures for the PLC machine logic programs. The procedures for the peripherals not described herein may be found in the User's Manual for Programming. Programs can only be run and debugged if +24V is present on the I/OMIX PC board and all of its expansion cards (see Installation Manual). This is not a requirement for editing or compiling programs. The PLC programming environment, as well as the machine parameter configuration environment (APPLICATION) are not normally accessible to the user. To obtain access to this environment it is necessary to follow the procedure below: 1. Press the 2. Press the key key
3. To access the APPLICATIONS environment for the first time after turning ON the NC, press the keys + simultaneously.
The softkey LOGIC MESSAGES changes to LOGIC SYS/SETUP and remains that way until the NC is turned OFF. The softkey menu then appears as follows. The LOGIC SYS/SETUP softkey allows access to the machine logic described in this manual. For subsequent access it suffices to press the (F2) key or LOGIC SYS/SETUP softkey
NC OPERATION LOGIC SYS/SETUP PART PROGRAMS PERIPHER
.
MONITOR SETUP UTILITIES TOOLS DIAGN TOOLS
The are two modes of operation for PLC program maintenance: EDIT LOGIC - to write or modify an existing program
DEBUG LOGIC - to verify the the PLC program function, the integrity of the inputs and outputs and the correct functioning of the algorithms.
2-1
Series S3000
2. Operating procedure
If the program has already been stored in memory it will appear on the display otherwise a new one will be created under the name given. The menu functions allow the insertion and modification of text the movement and cancellation of large blocks of text, copying text from other programs, substitution of words and automatic line numbering. The keys for moving the cursor are: to move up one line to move down one line to move to first line in the program to move to the last line in the program to move one page down to move one page up
To move the cursor along a line: to move to right of a character to move to left of a character + + to move to the beginning of a line to move to the end of a line
All of the operator or machine dialog operations are effected by softkey and if necessary an associated request line for parameters. These are organized within menus and are accessed by activating the relevant softkey. The following keys are reserved to speed-up this process: returns to the previous menu returns to the main menu The written program is saved automatically each time the exited by or . key is pressed or when the editor is
The functions used for writing, editing, and modifying PLC programs are reviewed below. For more details please consult the User and Programmers Manual.
2-2
Series S3000
2. Operating procedure
Edit Menu
To access the edit menu perform the following steps: 1. From the APPLICATIONS environment menu shown previously press the softkey LOGIC SYS/SETUP to access the main applications menu shown below:
LOGIC EDIT
LOGIC DEBUG
SYSTEM SETUP
SCREEN CONFIG
PERIPHER
FLASH MEMORY
BACKUP / RESTORE
The softkey present in this menu, with the exception of the first two, are described in the System Configuration Manual, which should be used for reference.
MEMORY
FLOPPY DRIVE
FLASH MEMORY
RENAME PROGRAM
COPY PROGRAM
DELETE PROGRAM
The first three function keys ( , , ) and the last three ( , and ) control the same functions as the equivalent softkeys in the NC programming environment. For details refer to the User and Programmer's Manual. Other softkeys function as follows: LOGIC EDIT
Activates the logic editing environment from which it is possible to write and maintain a PLC program.
Compiles into executable instructions those programs created or modified using logic edit. Running the LOGIC COMPILER with this function enabled (default) will obtain a shorter executable file than if it were compiled uncompressed. In the compressed mode the compiling function takes longer. Note: Compiling compressed programs requires more active memory space than normal compiling, therefore memory shortage problems may arise when particularly long programs are compiled on systems with limited memory.
2-3
Series S3000
2. Operating procedure
INSERT BLOCK
MODIFY BLOCK
DELETE BLOCK
STRING SEARCH
ADVANCED EDITING
The function of each softkey for PLC programming is as follows: INSERT BLOCK To insert a new program line, position the cursor on the block which comes directly after the one which needs inserted (the INSERT BLOCK function is active as soon as you enter this menu); write the new block then press . MODIFY BLOCK
Press this key to modify the line the cursor is currently positioned on. Modify the block as it is presented within the command line box, then press .
DELETE BLOCK
Press this key to delete the line on which the cursor is currently positioned. A confirmation message is delivered: Do you want to delete? (YES/NO)? Yes Press .
STRING SEARCH
This key starts the search for a string of characters within the program starting from the cursor position. If a number is specified the cursor is moved directly to that line in the program. Both the character string and line number must be followed by a .
ADVANCED FUNCTIONS This key activates a menu for block operations such as text copy and editing parameters. To use all of the softkeys from this menu sufficient memory area is needed. In the cases where available memory is limited the available functions are limited to two.
2-4
Series S3000
2. Operating procedure
HIGHLIGHT BLOCK
DELETE BLOCK
COPY BLOCK
MOVE BLOCK
REPLACE STRING
EDITING PARAMS
CANCEL MODIF
In the case where there is insufficient memory only the following two softkeys appear:
REPLACE STRING
HIGHLIGHT BLOCKS This key is used to highlight a block or group of blocks to be worked on. To highlight the blocks move the cursor to the first block to be selected use or ) keys press the softkey HIGHLIGHT BLOCK, position the cursor on the last block to be selected and press the same key. DELETE BLOCKS COPY BLOCKS Will delete the highlighted blocks confirm with .
Copy blocks previously highlighted to another area in the program. Move to the desired position for the block using the or keys, press to confirm. The block will be inserted on line just below the cursor position.
MOVE BLOCKS
Move blocks previously highlighted to another area in the program. Move to the desired position for the block using the or keys,
then press . The block will be inserted on line just below the cursor position. DELETE FROM HERE Deletes all lines to the end of the program, starting with the line on which the cursor is presently positioned on. The following message appears: Delete all sucessive blocks? (YES/NO)? YES Press CHANGE STRING to confirm.
Substitutes one string of characters for another by searching for the desired string starting from the cursor position. The following message will appear: Replace (string 1/string 2): Write in the new string to be substituted, and confirm with .
2-5
Series S3000
2. Operating procedure
Insert a block copied from another program into the present program proceed as follows: Press the IMPORT FROM OTHER softkey for a list of programs in memory. Select the program which contains the block to be extracted and press
Highlight the block to be copied then press program which is to receive the block.
Position the cursor at the point where the block is to be inserted and press the softkey COPY BLOCK.
RENUMBER BLOCKS
Renumbers the program lines according to the edit parameters (increment, number of spaces...). Automatic line numbering occurs only if lnew lines are added to the end of the program.
EDIT PARAMETERS
Changes the line numbering parameters. Activates a new softkey menu from which the parameters may be adjusted.
DELETE MODIFIC.
Deletes the last changes made using the advanced function keys (this can only be accomplished from the ADVANCED FUNCTIONS menu).
BLOCK # FORMAT
BLOCK START #
BLOCK # INCREMENT
RENUMBER BLOCKS
CHANGE SPACES
This softkey controls the spacing before each block for the sequence number. The valid numbers are between 3 and 8. Press completed. when
CHANGE FIRST
This softkey sets the first sequence number, or first block. Valid numbers are between 1 and 10. Press when completed.
CHANGE STEP
This key adjusts the spacing between individual blocks and between blocks and their sequence number. Valid numbers are between 1 and 10. Press to confirm.
2-6
Series S3000
2. Operating procedure
RENUMBER BLOCKS
To apply the new parameters press this key followed by return to the previous menu.
TRANSLATE PLC 1200 The system S1200 programs differ slightly from the Series S3000 to make them completely compatible press this softkey while editing the older programs.
The DEBUG LOGIC menu contains the softkey ENABLE LOGIC which performs the same function as LOAD AND RUN except it does not reset the memory.
2-7
Series S3000
2. Operating procedure
To automatically convert the old numbering system to the new it is necessary to: edit the program to be converted
Press the following softkeys in order: AVANCED FUNCTIONS, EDIT PARAMETERS, TRANSLATE PLC 1200. This will overwrite the old program.
In this environment all system diagnostic signals and variables may be displayed and run. These tools are not just used during the set-up of the machine, but may be used over the entire life of the machine. It is also possible when for debugging to store in tables all display variable settings, so that the system may be checked out in cases of malfunctions or service and repairs. The functions available in this environment are described in the following sections.
ENABLE DISPLAY
INSERT NAME/EXPR
MODIFY NAME/EXPR
DELETE NAME/EXPR
DISPLAY INPUT
DISPLAY OUTPUT
FORCED ASSIGN.
..MORE..
2-8
Series S3000
2. Operating procedure
The function of each of the softkeys is as follows: ENABLE DISPLAY Allows the freezing of variables which are changing rapidly so that they may be more easily read. These values remain on the display until the key is pressed again (however the variable continues to beupdated within the system). The key is active when this menu is entered; if it becomes deactivated it signifies that the variables are frozen. The variable name to be displayed must be typed after this softkey is pressed; press to confirm.
INSERT NAME/EXP.
To insert more names on the same line place the ";" symbol between each name. MODIFY NAME/EXP. After selecting a variable using the modify the selected variable. Press DELETE NAME/EXP. or , keys press this softkey to
to confirm.
This key allows the verification of the binary status of the input and output bytes on the I/O MIX card. The display will present a variable IN_001(n); where (n) is a binary number. The 8 bits represent the states of the 8 relative input/output bytes starting from right to left. In screen, the and keysare used to view the similar signals from the other I/OMIX cards and are identified by the variables IN_00x(n).
FORCED ASSIGNMENT This function may be used to force a value on a variable and measure its effect immediately (see a description of forced values further ahead). ADVANCED FUNCTIONS Activates a new menu with more commands. By pressing the ..MORE.. softkey the following menu appears:
DECIMAL BINARY
SEARCH ASSIGN.
EXPAND EQUATION
CLEAR ALL
SAVE TABLE
DECIMAL/BINARY
Changes the display format from decimal to binary and vice versa for the variable selected by the cursor.
SEARCH ASSIGN.
By supplying the name of a variable used in the active PLC program, all of its assigned values are searched. Related equations are displayed dynamically.
2-9
Series S3000
2. Operating procedure
EXPAND EQUATION
Permits equations to be expanded so that all of the terms in the equation selected by the cursor are displayed separately. Usually this function is used after the SEARCH ASSIGN. softkey is pressed. Erases all of the names and expressions present in the dynamic display. Stores all of the names and expressions displayed so that they may be recalled later by RECALL TABLE. It is necessary to supply the name of the table to be stored, then press .
After pressing this key the variable name to be displayed is typed and then the key is pressed to confirm.
MODIFY NAME/EXPR. After having selected a variable this softkey will allow for the name to be changed to that of another variable, as well as for allowing the max/min limits to be changed. When finished press .
DELETE NAME/EXP. Removes the variable on which the cursor is resting form the display.
2-10
Series S3000
2. Operating procedure
TIME BASES
Selects the interval between two consecutive scans of the signals being analized. Normally it is a multiple of 10 mSec (PLC scanning time).The default value is 10 mSec. To analyze quickly changing phenomena such as axes responses or traces of variables used in the superfast logic section, a time base may be used which is equal to the axis standard defined during configuration. It must be noted that it is not possible to analyze signals using a time base which is smaller than their update times. For example signals from the high speed logic section (which have a scanning rate of 10 mSec), the time base used should be 10 mSec. A 2 mSec time base may be used to analyze the dynamics of the machine axes, thereby displaying instantaneous speed, path error, or other analog outputs.
ACQUIRE TIME
This is the time period specified for analyzing the signal in question. The number of PAGES is calculated based upon this number and the time base, which is then rounded to the highest multiple of 2. Each page contains 512 points separated by a distance equal to the time base. The maximum number of pages is 8. Example: ACQTIM=30 Sec; TIMBAS=10 mSec (30/.01)=3000 values must be acquired; these are divided into (3000/512)=5.86 pages, which is rounded up to the highest multiple of 2, that being 8.
FORCED VALUE
Permits the value of a variable to be forced and to immediately gauge its effect. (see description further ahead)
NAME/EXP TRIGGER
Permits the insertion of an equation (written within parenthesis using a valid PLC syntax), or a signal which, when it assumes the value zero, activates the storage of the analyzed signal according to the position of the trigger selected.
TRIGGER TIMING
This key establishes the trigger position with respect to the signal acquisition time. In other words, the display time may be posted before, after, or in time with the trigger. Pressing this key will cycle the trigger position between three distinct selections: PRE: MID: END: trace before trigger trace in time with trigger trace after trigger.
ACQUIRE
After having chosen the above display settings, the analyzer must be activated. Only then the acquisition is activated and three trigger equation checked. When the trigger equation is satisfied the percentage of actual acquisition time will be displayed until 100% is achieved, at which time the ANALYZE TRACE menu appears.
2-11
Series S3000
2. Operating procedure
If the ACQUIRE key is pressed without having set the trigger parameters, the analyzer continuously scans the display signals until the key is pressed again. This application may be useful for example when calibrating movement or position. ..MORE.. Activates a new menu with other functions.
The ..MORE.. softkey calls up the following menu containing functions as described ahead: .
FIND ASSIGN EXPAND EQUATION DELETE ALL SAVE VAR LIST
FIND ASSIGN.
By supplying a variable name used in the active PLC program this function searches all assignments of that variable, the relative equations are then displayed between the expressions to be traced.
EXPAND EQU.
Permits the expansion, or separate tracing of each of the terms contained within the equation highlighted by the cursor. This function is usually used after an assignment search (SEARCH ASSIGNMENT).
Stores graphic analyzer names and expressions in a table, to be recalled later using RECALL LIST The name of the table must be entered, then press .
Trace analysis
Activating the trace analyzer ANALYZE TRACE allows the quantification of signal acquisition times and values, it also allows the changing of the display scale and the number of pages with which the traces are displayed. It is always possible to observe on the display: - The time base for acquisition of the traces (preceded by the symbol BT:) - The acquisition duration time(preceded by the symbol FR:) - Horizontal cursor time intervals (CURSOR + and CURSOR#) - The reduction factor for that which is being analyzed (preceded by the symbol X) - The percentage of time between the trigger arrival and the total acquisition duration - The trigger position (preceded by the symbol TP). There are two cursors available called + and #, which once activated by their relative softkeys CURSOR+ and CURSOR#, may be moved using the horizontal . changes in time. and arrow keys to measure
The and arrow keys move two other cursors also called + and #. These are activated simultaneously with the horizontal cursors and permit the selection of variables whose numerical value is questioned by positioning the cursor on the trace. These values are displayed on the lower portion of the screen in the same color as the trace they represent.
2-12
Series S3000
2. Operating procedure
Zooming in and out on a trace is performed by using the and keys, the scaling factor is 1,2,4, or 8. The softkeys present in the ANALYZE TRACE menu are as follows:
ACQUIRE
CURSOR +
CURSOR #
CURSOR SPEED
HIGHLIGHT TRACE
REDISPLAY TRACE
ADJUST SCALE
SAVE TABLE
ACQUIRE
The analyzer may be activated using this softkey, after having made modifications to the parameters controlled by this menu.
By pressing this softkey the trace selected by the cursor becomes a reverse image. The traces so highlighted are not redrawn when the REDRAW TRACE key is pressed. When the REDRAW TRACE key is pressed after this operation is performed, only the non-highlighted traces are retraced. This function may be used to analyze a large number of traces one at a time, or in small groups. traces selected are stored in memory and to recall them it is necessary to position the cursor on the signal name and press HIGHLIGHT TRACE until the selection is made, then press REDRAW TRACE.
Moves and redraws the traces in such a manner to position the cursor as close to the screen center as possible. Permits the change of max and min limits for a selected trace using the vertical cursor; by making the modifications and pressing the trace with its new limits will be displayed. key the
STORE TABLE
Stores graphic analyzer names and expressions in a table, to be recalled later using RECALL TABLE. The name of the table must be supplied and then press .
The analyzer may also capture glitches, which may happen when a time base of greater than 10 mSec is used to analyze a signal and all that is displayed is a point, which indicates that the signal was moving slower than the base selected, and capture in 10 mSec interval. If a graphics printer is available a hard copy of the display may be made by pressing the keys (to obtain the analyzed data only), or + document may be useful for maintenance purposes. +
2-13
Series S3000
2. Operating procedure
Storing traces
After the traces of signals have been acquired by the graphic analyzer, it is possible to store them in a file by pressing the softkey STORE DATA, and naming the file. To display the data acquired at a later time, press the softkeys DEBUG LOGIC, SELECT DATA, RECALL TABLE, START ACQUIRE.
Allows editing previously stored variable names. Recalls a table previously stored which contains display and trace variables. A file name must be supplied by the user or selected with the arrow keys for each of these two functions, after which the key must be pressed.
The forced value will not change until an instruction modifies it or until the NC is turned OFF in the case of non-retained variables. It is not possible to force input values since they are refreshed at each PLC scan.
2-14
Series S3000
2. Operating procedure
Allows editing previously stored variable names. Recalls a previously stored file which containing display and trace variables.
A file name must be supplied by the user or selected with the arrow keys for each of these two functions after which the must be pressed.
The cross reference may be generated only if the PLC program has been compiled. By pressing LOGIC BEBUG softkey and then CROSS REFERENCE the following menu will appear:
MEMORY
FLOPPY DRIVE
FLASH MEMORY
EDIT
CROSS REFERENCE
SELECT SOURCE
RENAME PROGRAM
COPY PROGRAM
DELETE PROGRAM
With the prompt on the active PLC file press CROSS REFERENCE and wait for few seconds. At the end of this operation press SELECT CROSS REF. a file will be created with the same name as the PLC program, containing the cross reference. All the other softkeys have the same function common to all the other environments of NC.
2-15
Series S3000
2. Operating procedure
The array elements and their current values will be displayed side by side it is then possible to change the values presented and transfer them to the PLC.
The axis configuration files are updated only when the UPDATE FILE softkey is pressed.
2-16
Series S3000
3. Program organization
3. PROGRAM ORGANIZATION
3.1. GENERAL RULES
The following rules should be kept in mind when writing a program: Each PLC program must have a name containing up to 8 uppercase alphanumeric characters. The first character must be a letter of the alphabet. The name may not contain blank spaces. PRN, AUX, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, LPT4, CON, NUL may not be used as names for programs. All symbols and variables must be defined by mnemonic names within uppercase alphanumeric strings up to 6 characters in length. All symbols must begin with a letter and may not contain the following characters: ^ ? ! \ # % & | ~/ ( ) > [ ] < + - * @ = , : . ; blank spaces Because these are special control characters or are reserved for logic and arithmetic expressions. The blanks are ignored during compiling of instructions. Words used to describe key functions or system variables may not be used as names. The use of long expressions is discouraged however, it is possible to edit these expressions by using the $ at the end of the line before starting on the next line. The maximum line length for a logical expression in a PLC program is 500 characters, excluding blank spaces (these may be tied together on several lines using the $ sign). It is possible to write more than one equation on a single line by separating them with a ";" (semicolon). LABELS and symbols are always followed by a ":" (colon). The comments within a program may be placed at any position as long as they are preceded by the "[" symbol. It is recommended that many comments are used to ease of troubleshooting the program, since they do not occupy extra memory space when the program is compiled. In order to change from the maximum of 6 characters allowed in the definition of variables (default) to 9 or 12, enter these instructions at the start of the PLC program: CONST _MXCHR=6 (or =9, =12)
3-1
Series S3000
3. Program organization
(The default is _MXCHR=6). It must be remembered when using long names for variables that not only will the source printout naturally occupy greater space in memory but larger size exec files will also be generated.
Declaration section
Initialization section (used only where necessary) Superfast section (use only when absolutely necessary) (if not used remove the key word FAST) Fast section (used only where necessary) Slow section (ordinary logic) Super slow section (used only where necessary) Routines section (used only where necessary) P R O G R A M
3-2
Series S3000
3. Program organization
Superfast logic
The optional SUPERFAST LOGIC section comprises all of the instructions written between the keywords FAST and PROG. These instructions are intended exclusively for operating on parameters which change very quickly, and for repetitive acquisitions such as each test of the NC axis position, (see the configuration documentation). It is necessary to remember that these types of instructions require ten times more CPU processing time. If the maximum time limit for this section is exceeded the following message will appear: Superfast cycle too long.
Fast logic
The FAST LOGIC section is comprised of the instructions written between the key words PROG and the first END, which are cycled every 10 mSec. If the maximum time allowed for this section is exceeded the following message will appear: Fast cycle too long.
Slow Logic
The Slow logic section is comprised of the instructions written between the first and second END. This part of the program is executed in the time left between the fast logic executions and the time allotted for the PLC. If this time is not sufficient the Slow section is broken into more cycles.
3-3
Series S3000
3. Program organization
Superslow logic
The SUPERSLOW logic section is comprised of the instructions written between the second and third END, and are executed with lesser priority for such slower phenomena as (thermal compensation, message management), and may be further divided into more cycles.
Syncronization
The SUPERFAST, FAST, and SLOW sections are executed in sequence after the INIT section. The super slow logic is not necessarily in sequence with the others. The INPUTS are read at the beginning of the superfast cycle, when present, and the OUTPUTS are written at the end of the same cycle. If the superfast section does not exist, the inputs are read at the beginning of the fast cycle and the OUTPUTS are written at the end of the same cycle.
Decimal numbers may be written in the following format: integer.decimal (ex. -12.678) integer.decimal e exponent in scientific notation (ex. 12.3e-3).
3-4
Series S3000
3. Program organization
Hexadecimal formatted numbers must contain an H suffix and must be preceded by a 0 if the most significant figure is greater than 9 (ex. 0FA23H). Similarly the Letter B is used for binary numbers (ex. 01011101B). For example the decimal number 35 corresponds to 23H in hexadecimal and 00100011B in binary; the decimal number 195 corresponds to 0C3H in hexadecimal and 11000011B in binary. For the declaration of variables (numerical and string) see the appropriate sections in chapter 4.
a BYTE variable name between 1 and 127, or a WORD variable between 1 and 32767 Example: Suppose that the variables BTAB and WTAB have been established as a BYTE and WORD respectively; BTAB=18: TABUT(BTAB)=25: ... WTAB=199: VALORE=TABCOY(WTAB): variable VALORE. 18 is written to the variable BTAB 25 is written to the 18th element of TABUT the value 199 is written to WTAB the contents of the 199th element of TABCOY are written to the single
an expression which results in a BYTE or WORD format with the same numerical limitations as the preceding case. Example: Suppose that DAT01 and DAT02 are single variables in BYTE format and that ARRAY(x) is a vectorial variable with more than 11 elements. DAT01=4
3-5
Series S3000
3. Program organization
DAT02=6 ARRAY(DAT01+DAT02+1)=66 : 66 is written to the 11th element of ARRAY. In general the vectorial variables occupy contiguous locations within memory, therefor it is important to pay particular attention to the length and quantity of data handled by these variables to avoid invading other variable's space. (see further ahead). In fact, if the index value is greater than the number of elements declared by the VECTOR, they will occupy the next memory location. Negative Index values, values of zero or values outside the range (ex. 45000) must be avoided at all costs, else non-related memory locations may be overwritten.
3.3.3. CONSTANTS
It may be useful to describe constants within a program (numerical and string); in these cases the values are assigned during initialization of the program to avoid repeating the same instructions. Example: INIT SMAX=3500 ALLM= 'SPINDLE OUT OF SERVICE' The system makes available the following predefined mnemonic symbol: PI=3.1415927 PI in DOUBLE format.
3-6
Series S3000
3. Program organization
For this purpose the following constants are defined for configuration: 16 machine constants common to the whole system called; KMF(1), KMF (2), KMF (3),..,KMF(16) in 32 bit floating point. 32 constants called; KMW(1), KMW (2), KMW(3),..,KMW(32) -in word format.
WORD format (HI) BYTE 8 7 6 5 4 3 2 (LO) BYTE 1 16 15 14 13 12 11 10 9 Least significant BIT Most significant BIT WORD sign Note: BYTE and WORD are used by the PLC in signed binary format; that is negative numbers are represented in 2's complement. Example: BYTE 1 -1 = = 0 0 0 0 0 0 0 1 B 1 1 1 1 1 1 1 1 B sign bit WORD 1 -1 = = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 B 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 B sign bit
3-7
Series S3000
3. Program organization
Single Variables
To access the bits within a variable the variable is treated as an eight element matrix if it is a BYTE, or 16 element matrix if it is a WORD, etc.The following matrix syntax is used: var(index) index may be one of the following lengths (in the examples the variables are single and not vectorial): An integer between 1 and the maximum number of bits for that variable. Example: BIT3=NUMBT(3) with this function, BIT3 will equal 1 or 0 depending on the state of the third bit in NUMBT. the name of a variable of the type BYTE or WORD which may assume values between 1 and the maximum number of bits to be operated on. Example: INDEX=5 BYTE1(INDEX)=1
an expression resulting in the BYTE or WORD format with the same limits as the previous case Example: DATO1=8 DATO2=6 WORD1(DATO1+DATO2+1)=0 format.
In each case it is necessary to remember that, if the value of the index exceeds the formatted value, memory locations adjacent to the locations of the variable will be overwritten, these may presumably be occupied by other variables. Index values of zero must be avoided, as should negative values and out of range values as described above.
Vectorial variables
In the case of vectorial variables, if a bit from a vector element must be read it is easier to copy the empty element to a dummy variable, thereby accessing only the single bit.
3-8
Series S3000
3. Program organization
Example: Suppose that the variables CONFI(X) and TEMPOR are WORD types TEMPOR=CONFI(2) BIT12=TEMPOR(12) The 2nd element of CONFI is copied to TEMPOR the variable BIT12 equals the 12th bit in TEMPOR.
If, instead, a single bit of a vector element is to be written, it is necessary to first write the bit to a dummy variable and then overwrite the element of the vector with it. For more information on bit handling see chapter 5, Functions and Operations.
8 8 8
7 7 7
6 6 6
5 5 5
4 4 4
3 3 3
2 2 2
1 1 1
8 16 8 16
7 15 7 15
6 14 6 14
5 13 5 13
4 12 4 12
3 11 3 11
2 10 2 10
1 9 1 9
VAR2(3)
VAR2(18) = FLAGS(2)
3-9
Series S3000
3. Program organization
3-10
Series S3000
4. Declarations
4. INITIAL DECLARATIONS
All of the symbols used in the PLC program must be declared at the beginning of the program using one of the following keywords described in greater detail further ahead in this chapter. INP TERM OUT TERM SRAM RAM STR EQU PULSE FTIMER STIMER COUNT LANG SOFTK physical input skip unused inputs physical output skip unused outputs variable stored in non-volatile RAM (not lost when power is lost) variable stored in volatile RAM. (lost when power is OFF to NC) string equivalence or synonym derived impulse fast timers slow timers counters languages of the sotfkeys softkey
NOTE: Not all of the declarative functions listed above are required but when used must appear in the order shown. Also when variables of different data format sizes are used they must be declared in order starting with the larges format. Example: SRAM,64 NOMEA ... RAM,32 NOMEF ... SRAM,16 NOMEL ... SRAM,8 NOMEP ... the names which follow are in DOUBLE format
4-1
Series S3000
4. Declarations
defines the type of variable; ,1 describes 1 bit (default value when attribute omitted) ,8 describes a byte ,16 describes a word indicates the position on the I/OMIX board where the connector is located* (see system Installation Manual). *The default is 1 if this parameter is omitted.
[,connector number]
After declaring the types of inputs/outputs a list of all the variable names for those types must be made. Example: INP NOMEA NOMEB NOMEC OUT NOMED NOMEE name of input 1 name of input 2 name of input 3 name of output 1 name of output 2
This determination assigns three names to the first three inputs and two names to the first two outputs all are bit types. The I/O expansion boards follow the same rules as the main I/O board. Example: Configuration: -1 I/OMIX board in slot 1 -2 Digital I/O expansion boards (I/OD)
4-2
Series S3000
4. Declarations
In this case the declaration of the INP must be: INP[,attribute ][,1] NAME1 NAME2 ... NAME96 input number 1 on main board input number 96(last input) on the second expansion board
The numbering and configuration of the I/O on each board is described in the Installation Manual. Instead, in cases where a group of 8 or 16 signals exist which must be treated as a single unit, it is helpful to define them as a BYTE or a WORD. In such instances, to access a single signal from the group the rules for the access to variable bits apply (see access to variable bits in the preceding chapter). Example: INP,8 NAME or: INP,16 NAME In general it is possible to have a double declaration for mixed treatment via a syntax of the type: group:[name1][,name2][,...][,namen] Where group refers to the group of signals and name1...namen refer to the single bits with n being limited by the length of the description and can be no greater than 8 per BYTE or 16 per WORD. All of the terms following the group name (name1..namen) are optional. This mean that any element may be omitted from the list including terms from the right and terms from the left. In the cases where no intermediate names are given, the names can be omitted but the corresponding comma must be kept. A comma is not needed after the last name. The compiler automatically truncates the signal description at that point. Example: INP,8 INGR1:LIVOIL,IPLUBE,,,TERMAX,TERMAY Sometimes there are gaps in the physical sequence of input or output connections. In this case it is necessary to define the number of the last non used terminal with the function TERM, and continue by declaring all remaining signals. The format for said function is as follows: TERM,number If number is a bit it may take any value, however if it is a BYTE it must be a multiple of 8, and a multiple of 16 if it is a WORD.
4-3
Series S3000
4. Declarations
Example: INP IFCXP [input1 TERM,5 ISPOK [input6 For the listing above, the terminals from 2 - 5 are not used, and the program restarts from the 6th terminal with the signal ISPOK. If the parameter I/O access diagnostic is enabled in the installation setup, if you attempt from PLC or logic debugging to access in read or write a resource that is not present, the following message appears: "E1994: access to missing component" followed typically by the number of the PLC line where the inconsistency was found. The diagnostic checks for consistency between the addressing and that resources accessible from PLC are actually present (i.e., digital inputs and outputs, analog inputs and outputs, heat probes).
4.1.1.
To address the digital I/O on remote modules, use the extended INP or OUT declaration, followed by a list of the Names of the variables. For the INPUT terminals, use the INP declarative with the following format: INP,attribute,master board number,slave number input 1 name ... input n name and for the OUTPUT terminals: OUT,attribute,master board number,slave number output 1 name ... output n name Where: attribute
Defines the input type. May be: ,1 describes 1 BIT only (default value if attribute omitted) ,8 describes a BYTE ,16 describes a WORD indicates which BOARD SLOT the board with RIO master interface will have, like the case of local I/O where it relates to the I/OMIX board. If the master board with integrated RIO is used, the board number will be 17. declares the address set with the microswitches on the remote module. bit format input, master17, slave 60 name of input number 1 name of input number 2 name of input number 3 bit format output, master17, slave 60 name of output number 1 name of output number 2
slave number Example: INP,1,17,60 NAMEA NAMEB NAMEC OUT,1,17,60 NAMED NAMEE
4-4
Series S3000
4. Declarations
Besides the types RAM,x and SRAM,x, there is also the possibility of managing variables, called SSRAM, which are not reset by the usual NC reset operations or by recompiling the PLC. The SSRAM can be given the same sizes as the normal SRAM. Example: SSRAM,16 ORELAV
The space available for the SSRAM is very limited (96 bytes); the area relative to these variables is reset when a PLC is compiled with inside an SSRAM declaration different from the previous one. In the S1200 variables declared as (RAM [,attribute]) were implicitly retentive
S1200
Vector arrays (tables) may also be used as for internal variables, in all formats except bit format. Therefore we have: name(number):[name1][,name2][,....][,namen] number indicates the vector index. If the vector has a certain dimension previously declared, the names to the right of the ":" indicate the names of each element in the same format as the vector. In case some names are not given, it is necessary only to leave the commas in their places. Commas are not needed after the last name; the compiler truncates the signal description at that point.
4-5
Series S3000
4. Declarations
The number of vector elements may be as high as 32767 depending on the amount of memory available. As was said earlier, the LONG and DOUBLE variables, being of floating point format, are always used for mathematical calculations.
The default value is 64 in cases where the attribute is omitted. If an attempt is made to write a string longer than the declared length, it is automatically truncated and an error message is shown on the display. It is possible to use vectorial declaratives even for strings: Using the explicit format the name of every attribute is listed:
STR NAMEA NAMEB Using a matrix type format the name and total number of elements are specified:
STR NAME(n) Example: ... STR,64 NAMEA MSG(12) ... PROG ... NAMEA='SAMPLE MESSAGE' MSG(2)='SPINDLE PROTECTION STOP' ....
assign contents of variable string NAMEA assign contents of vector variable string MSG(2)
4-6
Series S3000
4. Declarations
4-7
Series S3000
4. Declarations
By way of the declarative EQU, equivalences can be assigned between string variables and byte vectors. This is a useful feature if wishing to dispose of a vector containing the ASCII characters of a given string. Es. STR BUFSTR [ EQU,8 VETSTR(64):BUFSTR [ PROG BUFSTR='ABCD' [ [VETSTR(1)=0 [VETSTR(2)=4 [VETSTR(3)=65 [VETSTR(4)=66 [VETSTR(5)=67 [VETSTR(6)=68 [VETSTR(7)=XX
[string variable
[this byte is always at 0 [the second byte contains the string length [ASCII code for letter A [ASCII code for letter B [ASCII code for letter C [ASCII code for letter D [... other
4.5. PULSE
The pulse function is derived from the rising edge of a signal. Its purpose is to create an impulse seen only once by every logic equation. It is enabled at the beginning of the slow logic section when the generating equation or variable changes from a "zero" (0) logic level to a high logic level (1), and is reset when the slow logic section is completed. Pulses programmed in the fast logic sections do not terminate until all logic sections have been executed. It is necessary that the generating variable lasts the minimum capture time to activate an impulse equal to a complete scan of all the logic. This will ensure that the pulse is also detected in the slow logic section. For the technique of synchronization described, consider that the rising edge of the pulse generally does not overlap the rising edge of the generating signal, but instead lags it by a time period which may equal or exceed a complete scan of the PLC program. Note: The pulses are not retentive, therefore when the NC is turned ON, if they are associated a signal already at a 1 state (eg: an input), they will generate a pulse. with
The equation declaring a PULSE is written as any other signal in the program. For easy identification signal names should be derived from the name of the signal that triggers them (eg: Pstart for a pulse generated by the signal START). Pulses are declared in the same way as any other signal. Up to 64 PULSES may be defined in the declaration section, using syntax: PULSE namea ... namen
4-8
Series S3000
4. Declarations
Example: PULSE NAMEA NAMEB ... ... PROG NAMEA=(NCMD=5) ... NAMEB=EMEA
the namea signal is an NC pulse in manual mode the nameb signal is an NC pulse in Emergency mode
4.6. TIMERS
There are 32 fast timers available to the user, with a base time of 10 mSec (one cycle), capable of counting up to 327.67 seconds, and there are 64 slow timers with a base time of 100 mSec (10 cycles), capable of counting up to 3276.7 seconds (about one hour). Timers are declared as such in the declaration section of the program, however their duration must be declared inside the program at the points where they are used. Timers must be defined after the declarative FTIMER (fast timer) or STIMER (slow timer) by the following syntax: FTIMER (or STIMER) input, output, derived, stop, count ... input, output, derived, stop, count or FTIMER (or STIMER) input, output input, output where: input is the name of the signal that activates the timer output is the name of the time delayed output signal derivedis the name of the signal that is active during the delay time stop is the name of the signal that can be used to freeze the count count is the name of the WORD which contains the current count
4-9
Series S3000
4. Declarations
Input Stop
xTIMER
Output Derivative
Count module
Count
Note: INPUT I
The timer output remains high (1) as long as the input is high. f equal to 1: the timer counts according to its base time. If equal to 0: the output is zeroed, but the count value is left unchanged. The timer counter is reloaded when the input changes from 0 to 1. With the transition from 0 to 1 the values are frozen and the timer is disabled. With the transition from 1 to 0 the timer restarts from the point where it was frozen. Goes to 1 when the set time has elapsed. Returns to 0 when the input goes to 0. Is at 1 during the counting interval
All timer variables may be read and written from the program, with the exception of the output (U) and derived signals (D) which may only be read. The time parameter, which does not have to be defined in the declaration section, is assigned in the program section of the code when the timer function is used. This allows timer functions to be modified during the course of the program using fixed or parametric timing. To make the timer signals identical in any part of the program, they must be synchronized to the signal which defines their input. This implies that the condition of the timer output as well as its derivative, are updated only when the PLC program reads the timer input instruction. The syntax for activating a timer within a program is as follows: input(count modules)=expression
4-10
Series S3000
4. Declarations
where the count modules may be: - a number between 1 and 32767 - a BYTE or WORD variable with contents ranging from 1 to 32767 - an expression that results in a BYTE or WORD with the same range as above Example 1: FTIMER T1I,T1U,T1D,T1A,T1W T2I,T2U,T2D,T2A,T2W .... PROG T1I(25)=.... T2I(2*TIMBAS+10).... ... Example 2: OUT U1 STIMER T2I,T2U,T2D,T2A,T2W ... PROG T2I(10)='2U U1=(T2W<5)
timer 2 set to oscillate with 1 sec base time square wave output with 1 sec period
4.7. COUNTERS
There are 48 up/down counters with programmable modules between 2 and 32767. The counters, like the timers, must be defined in the declaration section, however the modules or quantity to be counted, must be defined inside the program. The declaration format is as follows: COUNT zero,forward,reverse,carry,count zero,forward,reverse,carry,count where: zero: forward: reverse: carry: count: is the name of the signal which zeroes the counter is the name of the signal which advances the counter is the name of the signal which reverses the counter is the name of the signal generated by the counter when passing zero is the name of the WORD containing the cumulative count
Count
COUNTER
Carry
4-11
Series S3000
4. Declarations
The counter functions as follows: zero: forward: reverse: carry: the count value goes to 0 when this signal changes from 0 to 1 the counter increments at each rising slope of this signal the counter decrements at each rising slope of this signal signals that the counter has passed through zero (ie that an OVERFLOW or UNDERFLOW occured).
The following figures illustrate both forward and reverse operation of a counter with modules 10. Forward count Zero Forward Count pos. Carry 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 ... 0 1 2 3 4 5 6 7 8 9 0 1 2 ... 0 0 0 0 0 0 0 0 0 0 1 0 0 ...
Reverse count Zero. Reverse Count pos. Carry 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 ... 0 9 8 7 6 5 4 3 2 1 0 9 8 ... 0 0 0 0 0 0 0 0 0 0 1 0 0 ...
During the forward count when the counter arrives at the module value the count is automatically set to zero. In the reverse count after arriving at zero the module value is loaded into the counter. In these cases the zero transition is signalled by activation of the carry signal. All of the signals named in a counter declaration may be read or written from within the program , except for the carry signal which may only be read. The count parameter does not have to be defined in the declarative section, however it must be assigned in the program in the statement that sets the counter to zero. This makes it possible to modify the counter action in the course of the program and allows fixed or parametric functions to be implemented. The count module is loaded when the zero signal is released. Example: INP ICOMAI crib reverse input count COUNT C1Z,C1A,C1I,C1R,C1C declare counter 1 C2Z,C2A,C2I,C2R,C2C declare counter 2 ... PROG C1Z(50)=... applies counter 1 with module count 50 C1I=ICOMAI crib reverse input count decrements the counter ... C2Z(TEMPO/60)=... applies counter 2 defined by the variableTEMPO
4-12
Series S3000
4. Declarations
Menu number may be omitted when declaring the first menu. Softkeys associated with messages or numerical variables The definition of a softkey associated with a message or numerical variable is: strobe,lamp,[switch,]'label','message',[FP:/STR:]variable[,default value] In this example the switch signal is received by the PLC as soon as the softkey is pressed followed by the key. The message is subsequently displayed on the screen followed by the actual value of the associated variable. The strobe signal is sent to the PLC to signal a new variable value or to confirm the existing one. The variable is implicitly defined as DOUBLE format (FP:) as long as there are no other specifications via the string format STR: The default value, when defined, is always displayed on the command line in place of the current variable value when the softkey is pressed. It is not intended to be an initialization value for the variable when the NC is first turned ON.
4-13
Series S3000
4. Declarations
SOFTKEY for menu call When a softkey must call the next menu or return to the previous one, the syntax for creating the chain is as follows: switch,lamp,'label',menu number An alternative to this method is to select the softkey menu directly by writing the number into the PLC variable SFKMEN. This variable always contains the softkey menu number currently displayed, even when the menu change is effected automatically. The respective formats for text descriptions are 18 characters on three lines for labels and 20 characters on the command line for messages. The message text may contain all characters except the quotes (" "). Example: SOFTK,1 P1,L1,1,'JOG X +' ... P7,L7,0,REFERENCE AXIS' P8,L8,'DISPLACEMENT',2 SOFTK,2 first softkey menu the label is JOG X + and the switch is on while pushed the 7th softkey label is zero search & the switch is momentary the softkey with label DISPL calls the 2nd softkey menu second softkey menu
Before SOFTK definition, in the declaration section of PLC, it must be introduced the following instruction: LANG, cod_lang_1[, cod_lang_2] [...] [, cod_lang_5] where language codes may be: 1= 2= 3= 4= 5= 6= Italian French German English Spanish Portuguese
4-14
Series S3000
4. Declarations
In the declaration of menus the label for each softkey must be specified together with microedit text in all the required languages following the declaration of LANG with the syntax shown: Example: Italian and English messages: LANG,1,4 ... SOFTK,1 P01,L01, volantino X handwheel X P02,L02, tempo lubrif. lubrif. time , minuti= minuts= , TIME P03,L03, parola chiave password , inserisci= insert= , STR:CHIAVE, manutenzione service The variable SFKLNG (written from NC) contains the code indicating the active language on the NC. By testing this variable it is possible to organizing the PLC program in order to initialize the string variables to display multilingual messages. Language codes are the same of those used in the declaration of LANG. Example: ... INIT IF (SFKLNG<>1) ENGL [Initialization Italian messages MSG(1)= EMERGENCY STOP MSG(2)= FAULT ON SPINDLE DRIVE ... ENDMSG [ ENGL : $ IF (SFKLNG<>4) ENDMSG [Initialization English messages MSG(1)= EMERGENCY STOP MSG(2)= FAULT ON SPINDLE DRIVE [ ENDMSG : $ ...
4-15
Series S3000
4. Declarations
4-16
Series S3000
5. Operations and functions
DRAOK
MAREG COMAS
TEST
To describe the function of the logic network shown above it can be said that the output COMAS is active when DRAOK and MAREG are true (closed) or TEST is false. In PLC S3000 language this is written as: COMAS=DRAOK&MAREG~"TEST Where the elementary logic operators are: & ~ | " AND OR XOR NOT
When applying the logic operators it is necessary to remember that AND and XOR have a higher priority than OR. In the equation U=A~B&C it is evaluated as U=A~(B&C). If instead it is desired to OR A with B and then AND the result with C, this is written as U=(A~B)&C The parenthesis changes the priority of the operations, as in conventional arithmetic.
5-1
Series S3000
5. Operations and functions
Logic operators may be applied to signals, bits, bytes, and words. Expressions are evaluated for bit to bit correspondence. Therefore the operands in the same equation must be of the same type. Example: RAM,16 CONFI(3) [declares an array of 3 16 bit variables TEMPOR [tempory storage used for bit manipulation ... PROG [example to invert the 4th bit of the first element in the array CONFI() TEMPOR=CONFI(1) IF(TEMPOR(4)) TEMPOR(4)=0;CONFI(1)=CONFI(1)&TEMPOR;END [reset bit 4 IF("TEMPOR(4)) TEMPOR(4)=1;CONFI(1)=CONFI(1)~TEMPOR [set bit 4 END:$ ...
5-2
Series S3000
5. Operations and functions
in the case of raising to the power of 2, it is more efficient, in terms of execution speed, to use the syntax argument*argument instead of argument^argument.
5.4. COMPARE
It is often necessary to compare two variables or a variable and a constant value and then operate on the result. Comparisons may be made using the following symbols: = <> > < <= >= equal to not equal to greater than less than less than or equal to greater than or equal to
The comparison expression must be contained within parenthesis and may therefore be used as a logic element within an equation. Example: MAOR=(AUXM=3)~(AUXM=13) [MAOR is true when AUXM=3 or when AUXM=13 This function can be used for Bytes, Words, etc.. provided the equation is homogeneous. It cannot be used for strings. To compare two strings the function STRCMP() must be used.
5-3
Series S3000
5. Operations and functions
5.5. ROTATION
This function can be performed on byte and word variables - BIT, LONG, and DOUBLE formats are not allowed. The operand @ is used followed by the number of rotations to be effected. variable@ + n variable@ - n effects a left Rotation effects a right Rotation
where n, is the number of rotations in BYTE or WORD format. A left rotation moves all of the bits in the direction of the most significant bit, while the most significant bit moves into the least significant bit location.. Right rotation performs the opposite function. Example: STATP = STATP @+1 effects a left rotation of one position per bit.
1 0
0 0
0 0
0 1
1 0
0 0
0 0
0 1
5-4
Series S3000
5. Operations and functions
5-5
Series S3000
5. Operations and functions
Example: BYTE1=BIN(BCD1) if BCD1 was equal to 0001 0010, BYTE1 would be 00001100
The following are examples of valid complex expressions Example 1: RAM,8 ANGLE RAM,32 RESULT ... RESULT=SIN(IFP(ANGLE*2+45))
the result of the expression ANGLE*2+45 is converted to floating point and then the sin of that value is taken.
Example 2: POWER=OFFSET+SIN(1/FREQ*TIMBAS)+COS(ANGLE) Power is equal to the sum of offset and the cosine of ANGLE plus the sine of the expression 1/FREQ*TIMBAS
5-6
Series S3000
5. Operations and functions
is the string within which the search takes place is the string to be found is the position from which to begin the search
5-7
Series S3000
5. Operations and functions
argument4
specifies how many characters in argument 2 must be searched through starting from argument 3
argument1 and argument2 may be: - a sequence of characters delimitated by inverted commas - a string variable - an expression whose result is a string argument3 and argument4 may be: - an integer between 1 and 255 - a byte variable with a value between 1 and 127 or a word variable with a value between 1 and 255 - an expression whose result is a word or byte with the same numerical limits as those above. The value assigned by the function may be a byte or word. The function may yield different results based upon the values of arguments 1-4 and other conditions as indicated below: - if the string is not found a 0 is substituted for the result. - if argument2 is a null string argument3 is returned - if argument1 is a null string a zero value is returned - if argument3+argument4 is greater than the length of argument1, the search begins from argument 3 and continues until there are no more characters left. - if argument4 is less than or equal to 0, the result will be zero Example: Suppose that VARIAB1 contains 'ABCDEABCUPABCXY' and VARIAB2 contains 'AB', and the instruction used is: POSIZ=INSTR(VARIAB1,VARIAB2,4,13) the result obtained in POSIZ is the number 6)
5-8
Series S3000
5. Operations and functions
LUNST=LEN(MSG1)
Example: STRCMP('COSE'>'COSA') argument1>argument2 Example: STRCMP('COSE'>'CO') argument1=argument2 Example: RAM,1 TEST ... PROG TEST=STRCMP('AVARIA'='AVARIA') TEST=STRCMP('AVARIA'='AVARIA ') [the result is true If all characters in both arguments are identical (including blanks) [ result is true
If the preceding condition is not true and the length of argument1 is greater than the length of argument2
5-9
Series S3000
5. Operations and functions
In PLC programs for the S1200 system the ASC(argument) function was used.
This function may be used, for example, to display the value of a numerical variable as a message. The output of the function must be assigned to a string variable. The format is: MKN$(argument) where the argument may be: - an explicit number - a variable - the numerical result of an expression If the argument is in byte format, the result of the conversion has 4 characters, the first of which is the sign or blank, and the three others are either 0 or a number. For example: the conversion of a byte containing the value 1 would be '001' the conversion of a byte containing the value -11 would be '-011' If the argument is in word format, the result of the conversion would be 6 characters, the first of which is the sign or blank, and the five others are 0 or a number. For example: the conversion of a word containing the value 1 would be '00001' the conversion of a word containing the value -11 would be '-00011' Example: MSG4=MSG5+MKN$(SS0) [if MSG5 contains the 'tool number' and SSO a byte of value [12; the function would result in 'tool number 012'
5-10
Series S3000
5. Operations and functions
argument1 and argument2 may be: - an explicit integer between 1 and 255 - a byte or word variable with a value between 1 and 255 - an expression whose result is either a byte or word variable with a value between 1 and 255 If argument2 is greater than the format of the assigned variable it will be truncated. Example: STR MSG RAM,8 NUMCAR CODCAR PROG NUMCAR=20 CODCAR=42 MSG=STRNG$(CODCAR,NUMCAR)
[length of string to generate [ASCII code for an asterisk (*) [generates a string of 20 asterisks
is the string to draw from is the position of the character where the extraction starts indicates the number of characters to be extracted
argument1 may be : - a string variable argument2 and argument3 may be: - an explicit integer between 1 and 254 - a byte variable with a value between 1 and 127 or word variable with a value between 1 and 254 - an expression whose result is a word or byte as described above.
5-11
Series S3000
5. Operations and functions
The output of the function must be assigned to a string variable. The following rules apply: If argument2 is longer than argument1 the result is an empty string If argument3+argument 2 is longer than argument1 the extraction is made until there are no more characters available If the length of argument1 is 0, the result is an empty string
Example: Suppose that VARIAB1 contains the string 'ABCDEFGHLMN' VARIAB2=MID$(VARIAB1,4,5) VARIAB2 becomes the string 'DEFGH'
where argument1 may be: - a string variable where argument2 may be: - a whole number between 1 and the length of the string - a BYTE or WORD variable with a value between 1 and the length of the string - an expression whose result in a BYTE or WORD variable with a value between 1 and the length of the string. The output of the function must be assigned to a string variable. The following rules apply: If argument2 is longer than argument1, all available characters are extracted If the length of argument1 is 0, the result is an empty string
5-12
Series S3000
5. Operations and functions
is the string from which to extract the characters is the number of characters to be extracted
argument2 may be: - a whole number between 1 and the length of the string - a BYTE or WORD variable with a value between 1 and the length of the string - an expression whose result is a BYTE or WORD variable with a value between 1 and the length of the string
The function output must be assigned to a string variable. The following rules apply: If argument2 is longer than argument1, all available characters are extracted If the length of argument1 is 0, the result is an empty string
5-13
Series S3000
5. Operations and functions
5-14
Series S3000
6. Instructions to control the program flow
6-1
Series S3000
6. Instructions to control the program flow
6-2
Series S3000
6. Instructions to control the program flow
where expression may be: - a BYTE or WORD with a value between 1 and 255 - an expression which results in a BYTE or WORD with a value between 1 and 255 The maximum number of LABELS is 255. If the space on one line is not sufficient, additional lines may be added by using the $ end of line marker. The final limitation is that the number of characters may not exceed 500 excluding blanks. Example: RAM,8 NLAB PROG NLAB=... GOTC(NLAB)L1,L2,L3,LEND LEND ... L1... ... LEND L2... ... LEND L3... ... LEND...
The system calculates the expression and uses the results to select the label to jump to. If the value of the expression is 0 or the label cannot be found, the program continues with the next instruction.
6.5. QUESTIONED GO TO
Permits system to jump to a label depending on which bit is set in a variable. The format is as follows: GOTP(expression) label1 [,label2] [,..] [,label16] where: expression may be: - a BYTE or WORD with a value between 1 and 16 - an expression which results in a BYTE or WORD with a value between 1 and 16. The expression is evaluated to find the position of the first bit that is set to one order number of the label to be jumped to. Execution then jumps to the label that corresponds to the set bits location. BIT 1 first label BIT 2 second label ... BIT 16 sixteenth label The maximum possible number of labels is 16. If the expression contains more than one bit set to 1, the least significant one is selected.
6-3
Series S3000
6. Instructions to control the program flow
If the expression is equal to 0, the next block is executed. Example: RAM,16 SELECT PROG SELECT=0000000000000100B GOTP(SELECT)FAS1,FAS2,FAS3
6.6. LOOP
The format is: EXEC=expression ... ENDE where expression may be: - a whole number between 1 and 255 - a BYTE or WORD with a value between 1 and 256 - an expression which results in a BYTE or WORD with a value between 1 and 256 The instructions falling between EXEC and ENDE are executed as many times as is defined by the expression. Up to four nested loops are possible Example: I=0 EXEC=(2*XTAB) I=I+1 TAB(I)=0 ENDE [zeros the table TAB
6-4
Series S3000
6. Instructions to control the program flow
6.7. SUBROUTINE
To call a subroutine; the instruction CALL is used, followed by the name of the subroutine desired. The last instruction of a subroutine must be RTS to return. A subroutine is called conditionally if the CALL instruction is preceded by an IF (...) statement in the same expression. Example: IF(STROM) CALL GEFUM If a subroutine is written within a (fast, slow, superslow) logic section, it may be called only from within that section. Writing the subroutines instead in the reserved ROUTINE section at the end of the program, it is possible to call them from different parts of the program. It is possible to nest subroutine calls up to 8 levels.
6-5
Series S3000
6. Instructions to control the program flow
6-6
Series S3000
7. Special functions
7. SPECIAL FUNCTIONS
This chapter describes certain functions which have not been described in earlier chapters, and which may be used to activate machine signals, for searching vector variables, for managing the user interface, and finally for the management of commands generated by the machine logic program (PLC) and sent to the NC.
Reset equation 0 1 0 1
Output signal x 0 1 0
7.2. MULTIPLEXER
Assigns a value to a variable by selection from a list of variables or constants using bit variables to control the selections. The syntax is as follows: varout = MUX ( sel1, sel2 [, sel3][, sel4] [, ...]),(var1, var2 [, var3] [, var4] [, ...])
7-1
Series S3000
7. Special functions
where: sel1, sel2, sel3, sel4, var1, var2, var3, var4, are selection control variables in BIT format or expressions resulting in true or false are BYTE, WORD, LONG or DOUBLE formatted just as varout.
The list of selection control bit variables is scanned to find the first variable that has a bit value of 1. The corresponding variable in the second list is then selected as varout. The function may operate upon a maximum of 16 variables. If no selection variable is active (high), the value of varout remains unchanged. Example: MULTI1=MUX(SELEZ1,SELEZ2,SELEZ3),(VARIA1,VARIA2,VARIA3)
Vector tables created in the PLC can be displayed and modified by the user following the methods outlined in chapter 2.6 (Display and Modification of PLC tables). Example: POMAG=RIC(TABUT,1,25,NEWTOL*2)ERRCU [searches for a new tool in the table TABUT
7-2
Series S3000
7. Special functions
In the example the message is defined by the first expression, MESSAG and displayed on line 1. If MESDI='MOVEMENT OF AXIS N' and NUM=2; the phrase appearing on line 1 of the display is: CYCLE STOP DUE TO ANOMALIES IN MOVEMENT OF AXIS No2 If the ASCII text is changed in MESDI or a vector is substituted such as MESDI(n), the same instruction could yield the following messages: CYCLE STOP DUE TO ANOMALIES IN PUMP No1 CYCLE STOP DUE TO ANOMALIES IN PALLET POSITION No4 messages can be cleared using the following command:
7-3
Series S3000
7. Special functions
CLR,line where line may be: - an integer between 0 and 16 - a BYTE or WORD with a value between 0 and 16 - an expression resulting in a BYTE or WORD with a value between 0 and 16 Since message texts, such as MESDI in the previous example are usually constants it is best to declare them in the initialization section. Alternatively the message can be defined within the DISPL instruction at the point of use. Example: DISPL,1,'LUBRICATION PRESSURE ANOMALY' NOTE: In the third part of this manual (PLC Program examples), a program is described called SCROLLIN (management of up to 128 messages using display scrolling), which automatically compacts many messages on the 16 available lines, scrolling through all available messages until the one desired is found.
S1200
Unlike the S3000, in the S1200 system it is not possible to run a sub program contained within a program and identified by a label. Programs run with the COM functions however may contain any NC executable block, including jumps, measure cycles and PROGET2 advanced geometry. False positioning of parameters P1...P99 is no longer possible as it was with the S1200 where P0 = P(1)
S1200
The programs called by COM may use the specific P parameters P1..P99. These parameters are independent from the part program parameters and are directly accessible by the PLC writing the P variables on the elements from P(1) to P(99).
7-4
Series S3000
7. Special functions
When a COM command is run the coordinate system functions are automatically reset (origin displacement, fixed cycles, rotary translation, ...) The FEED and SPEED values can be saved in the P() parameters (example : P(1)=F) and later restored using the inverse instruction F=P(1). Particular care must be taken to use the COM instruction to run a given program only once or else the possibility of error due to nested sub-programs may result.
See the paragraph in Part II of this manual describing the system interface (Acquisition of synchronous data from the PLC to the NC). A program started by an auxiliary function may contain functions which call other programs (but not itself) up to 8 nested levels are allowed. When all of the programs run by the COM are completed the STCOM synchronous strobe is set by the NC before returning to the next main program block (as long as the BURDY signal is high). This strobe is similar to an end of block M or T function for synchronization. It allows the execution of other COM instructions using the methods described above.
7-5
Series S3000
7. Special functions
Example: In the following example the program PALLETS is called from the machine logic program using a COM instruction following the M21 function and with BURDY high, ie. in synchronous mode: ... IF("BURDY)ASINC DHOLD=1;FHOLD=1 IF(STROM)CALL GEFUM BURDY=0 ASINC;$ ... END ... GEFUM:$ IF(AUXM=21)COM,1,'PALLETS';RTS RTS
7.5.3.
The COM partprogram subprograms run from the PLC are executed in automatic (no wait for the start cycle between one block and the next) even if the NC is executing a machining program in semiautomatic. The variable NCMD though, still remains consistent with the NCs execution status. The following modal functions for piece programming permit alteration of this: - G1011: forces execution of the COM subprograms in semiautomatic when the status of the NC is semiautomatic (to be used in checking or tuning). - G1010: disables the operation activated with G1011 (restores the default condition).
MACHINE LOGIC PROGRAM COMMANDS: UNIT OF MEASURE The movement blocks executed inside the COM subprograms run from the PLC are always interpreted in millimetres, even if the NC has been set to work with the measurement system in inches. When execution of the COM is complete, the system in use before running of the subprogram is restored (inches or millimetres). MACHINE LOGIC PROGRAM COMMANDS: FUNCTIONS NOT PERMITTED The running of a COM subprogram signals error E48: opening/closing functions missing when certain functions are active which alter the system of coordinates (G846, G851, G68, G69, fixed cycles, fixed supercycles, G751, G16, G748, G749). Other functions (G52, G51, G54, G55, G56, G57, G58, G59, G61, G76) are, on the other hand, disabled temporarily when the COM is run and are restored when it is completed.
7-6
Series S3000
7. Special functions
MACHINE LOGIC PROGRAM COMMANDS:RUNNING IN ASYNCHRONOUS MODE The PLC can request running of a COM subprogram even asynchronously with respect to the program being executed. This feature can, for example, be used to manage a tool change sequence in case of expiry of tool life. Whenever the PLC wants to run the asynchronous COM, it must set the bit RCOM; after this request, the NC finishes the precalculated program blocks (max. 256), then sets in synchronous mode (accompanied by the signal BURDY) the strobe STRCOM. The PLC must decode this strobe and then execute the COM instruction, ...which in this way is synchronized with the main program. RCOM is reset immediately upon being acquired by the NC. In the case of axis groups, there are the bytes RCOM_ and STRCO_ in which each bit corresponds to an axis group. Name RCOM STRCOM RCOM_ STRCO_ Size 1 1 Direction PLC NC NC PLC PLC NC NC PLC Synchronous no yes Description Request to activate an asynchronous COM. Synchronization strobe for running of the COM requested with RCOM. Requests to activate asynchronous COMs for the individual axis groups (1..8). Synchronization strobe for running of the COM requested with RCOM_ for the individual axisgroups (1..8).
no
yes
7-7
Series S3000
7. Special functions
7-8
Series S3000
PART II
SYSTEM INTERFACE
Series S3000
Series S3000
Introduction
INTRODUCTION
The information found in this section concerns the interchange variables and signals used between the PLC (Programmable Logic Controller) section and the NC (Numerical Control) section of S3000 controls. This information is valid for the following modules: The Standard module, which deals with the management of movements and of the various operating modes and screen displays Internal dedicated modules which are:
- Spindle management module - Module for handling independent axes - Module for managing the tool change Descriptions of the information mentioned above is organized as follows: At the beginning of each operation, whether of the standard or dedicated modules, the various registers, variables, signals and their interaction are described. A table follows each description which summarizes the signals described, along with their unique characteristics (see below). In turn, these tables are found in Part 4 of this section as a handy reference for use during application development. For each subject area, the tables state the following characteristics for each register, variable or signal: The mnemonic name The format (in the Dim column) 1 = bit 8 = byte 16 = word 32 = floating point 64 = double floating point STR = character string The synchronous constraints with the signal BURDY (in the Syn column) The information directions: from PLC to NC, vice versa or in both directions (in the Direction column).
Note: Writing to PLC read-only variables, with the direction from the NC to the PLC and not vice versa, can have unpredictable consequences. A brief Description in the corresponding column. The units of measure used are the following: - for measurement of heights, distances, adjustment settings - for rotative dimensions - for timing - for speed: - for acceleration: - for spindle speed - for voltage mm degrees msec, sec or min mm/min mm/(sec) revolutions/min V
Serie S3000
Introduction
The symbology used are the following: The character () after the name of a register indicates there is a multi-element vector in the specified format (for example, UTNUM(), while MOVCN is a single register). Whenever the symbol (1..n) appears following a listed item, the register or the vector must be interpreted by individually analyzing the elements from (1 to n). In order to determine a single register whose bits are described, it must be kept in mind that: The dimension of vector elements is greater than 1. When single register bits are described, these descriptions are generally preceded by the description of the register itself, which will be indicated without parentheses.
Example:
Name Dim Direction Syn Description
NC NC NC NC NC NC
no no no no no no
Request axes enable (1..8). (first bit of the byte) request for axis 1 (eighth bit of the byte) request for axis 8 Code of tool in table (1 ... UTENRI), where UTENRI represents the number of lines in the tool table. (first element of the word vector) the tool code present in line 1 of the tool table. (eighth element of the word vector) the tool code present in line 8 of the tool table.
UTNUM(1) 16 UTNUM(8) 16
Note:
For optimal legibility, the above column headings are not reprinted above the tables shown throughout this text. Therefore, please note that the information is consistently listed according to the column headings in the table above.
Series S3000
1. Management and flow of commands
Assigning to the FNCMD register the value of 3, the NC is forced in a semiautomatic program execution status (NCMD=3). In normal conditions the FNCMD value must be zero and 3 is the only assignable value different from zero. Summary of Registers and Signals Involved NCMD
NC
PLC
no
STBMD FNCMD
1 8
NC CN
PLC PLC
no no
NC operating status code: 1 = coordinate reading 2 = single block 3 = semiautomatic program execution 4 = automatic program execution 5 = manual 8 = reset to default values 9 = manual active in hold state. Strobe pulse signaling change in NC status; having a duration of one slow logic cycle. NC forcing register in semiautomatic execution
1-1
Series S3000
1. Management and flow of commands
Series S3000
1. Management and flow of commands END ... END [routines section GEFUM:$ IF(AUXM=3) ...; RTS IF(AUXM =11) M11 ... RTS M11:$ IF(AXPGM=0) SSA=00000111B; RTS; ELSE SSA=AXPGM; RTS ...
[M11 management
It is important to remember that: In the case of additional nested subprograms ( a subprogram containing a function that, in turn, launches another subprogram), STCOM is issued only when the primary subprogram is terminated In the case of subprograms run with the NC in manual status, STCOM is not issued
1-3
Series S3000
1. Management and flow of commands
Summary of Registers and Signals Involved BURDY AUXM STROM TOOL STROT AUXH STROH SPEED STROS STCOM FEED AUXG CICFI AXPGM
1 16 1 16 1 16 1 32 1 1 64 16 16 8
NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC
PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC
yes yes yes yes yes yes yes yes yes yes no no no yes yes
AUXVAL() 64
STRAUX
NC
PLC
yes
Indicates that the NC has sent new synchronous data for the machine logic to decode. Last M code programmed (M0-M9999). M function strobe present. Last T code programmed (T0-T32767). T function strobe present. Last H code programmed (H0-H9999). H function strobe present. Last S code programmed (S0-S99999). S function strobe present. Strobe signaling end of execution of COM subprogram. Last feed programmed. Last G code programmed (G0-G9999). Fixed cycle in progress. Axes with names programmed in same block as auxilliary function (ex. M11XYZ generates AXPGM=00000111B). Array in which parameters I, J, K, Q are transmitted along with auxiliary functions M, H. AUXVAL(1) = parameter I AUXVAL(2) = parameter J AUXVAL(3) = parameter K AUXVAL(4) = parameter Q Strobes for parameters I, J, K, Q. STRAUX(1) = strobe I STRAUX(2) = strobe J STRAUX(3) = strobe K STRAUX(4) = strobe Q
AUXILIARY FUNCTIONS: NOTES ON SENDING THE SPEED At the end of a simulated program execution (pressing the softkey SEARCH END), following a RESUME CYCLE or STORED SEARCH sequence, a block containing the last S encountered in simulation is sent to the PLC automatically.
1-4
Series S3000
1. Management and flow of commands
(Start Cycle). The PLC signal duplicating the green to provide a START control cycle.
SFKGRD (Guard): this variable is set (in binary code 11111111B, in hexadecimal 0FFH) pushing the guard key the key. (on the left side of the space bar) and is reset (00000000B, 00H) releasing
SFKCNS(1) Pulse signal which records the pushing of the green key SFKCNS(2) Pulse signal which records the pushing of the red key SFKCNS(3) Pulse signal which records the pushing of the yellow key CYON REME
(Cycle On). The signal provided by the NC to the PLC to inform it that the execution of a block is in progress. (Emergency Request). This signal permits the PLC to make an external emergency request to which the NC responds by setting the EMEA signal (Acknowledge) to indicate the presence of the emergency state. In this state the controlled axes are instantaneously disabled and the velocity commands forced to 0 volts. Every program or movement activity in progress is canceled and the NC returns to the coordinate reading state (NCMD=1), while displaying this message on the video screen.
1-5
Series S3000
1. Management and flow of commands M.C. off due to emergency. Every subsequent execution instruction is refused. The EMEA signal is also activated following internal NC alarms and alarms associated with transducers and servos. To exit from this state the cause of the emergency must be removed and the yellow BREAK control key pushed. RBRK (Break Request). Is the PLC signal that duplicates the yellow key on the NC keyboard. This command, set by the PLC and reset by the NC when acquired, cancels any NC activity in progress. After causing deceleration of the axes it forces the system to the Manual state (NCMD=5) movement in manual is not effected. RBRK cancels EMEA (emergency status) and HOLDA (HOLD status). (Break Acknowledge). Is a pulse signal with a duration equal to a complete slow logic cycle transmitting a BREAK (reset) order derived from pressing the key on the keyboard or as a response to the RBRK request, so that the PLC can cancel its own activity (for example to stop the spindle).
BRKA
S1200
In the S1200 system a Break generates the M30 function (program end) and M30 generates a Break, this no longer occurs in the S3045 system.
PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC
no
1 1 1 1 1 1 1 1 1
NC NC NC NC NC NC NC NC NC
no no no no no no no no no
Temporary stop of the program run beginning with the first subsequent block that contains a stop point in the continuous movement (typically an auxiliary function), without interruption of the activity in progress. Temporary stop of feed. External HOLD request. Tempory stop of programmed moves and blocks in execution. Axes in Hold state. External CYCLE START request. Cycle in execution. External EMERGENCY request. NC in emergency alarm state or external emergency request. External BREAK request. Interruption of the program or block in execution. Cancel emergency state. Command to BREAK from PLC.
SIGNAL Program abort DHOLD FHOLD RHOLD or hold RBRK or hold REME yes yes Stop subsequent blocks yes
(on the next block commanding movment)
yes no!
yes
yes
1-6
Series S3000
1. Management and flow of commands Notes regarding the display of the status of stop signals For the signals FHOLD, DHOLD, HOLDA there are condition variables which can be used in the screen configuration tables which allow signals to immediately notify the user of the status of the signals described above (see their respective descriptions in the Configuration System Manual). The default video display tables provided with the NC implement the following: FHOLD = 1 or DHOLD =1 or RDMOV unlike MOVCN or M6PGM =1 which flashes the letters in reverse MAPR (machine ready); on the MAINTENANCE AREA of the video screen, in addition to the above, the letters appear in reverse separately for each variable. HOLDA = 1 causes the word HOLD to appear in reverse. EMEA = 1 causes the softkey R.Q. STATUS to appear in the main menu and eliminates the other movement softkeys. In cases of interruption of communication or where the times are too long in the exchange between PC board and MASTER board, the NC goes into emergency status and the following message appears on the screen: "E32102: M.T. switched off due to interruption of communication with PC". The reporting of the alarm implies signalling of the emergency state (EMEA=1) with resultant disabling of the axes and suspension of the program. If not in a failure condition, the alarm can be removed by means of a BREAK command.
1-7
Series S3000
1. Management and flow of commands The origins are activated separately by the O functions. The code O0 allows for the passage to the absolute origin. O-1 restores the last origin present before passing to absolute origin. The activation of OFST = 0 nullifies the active correction length. In certain cases the PLC can activate the origin by setting the synchronous strobe INORG after having charged the origin code on ORIG. When the absolute origin must be activated, in alternation with O0, the synchronous origin bypass signal BYORG can be set; it stays on this setting until the bypass is reset (on synchronous mode). The NC informs the PLC of the status of absolute origin present with the signal ABSOR. Both INTOF and INORG are reset by the NC when acquired. While in absolute origin it is also possible to activate a length compensation by programming 0-1. The system will return to the last active origin before O0, but with the compensation activated. Summary of Registers and Signals Involved OFST INTOF ORIG INORG BYORG ABSOR 16 1 16 1 1 1 NC NC NC NC NC NC
PLC yes PLC yes PLC yes PLC yes PLC yes PLC
no
Code of the length compensation to be activated. Strobe to signal the NC to activate the selected tool length compensation. Code of the part origine to be activated. Strobe to signal the NC to activate the selected part origine. Temporary cancellation of origins and tool settings (absolute origine). Absolute origine active signal.
The confirmation of the axes enabled and unlocked and ready to move must be provided in response on the RDMOV register.
1-8
Series S3000
1. Management and flow of commands During the period when the registers MOVCN and RDMOV are different, that is, in the axis lock/unlock phase, the NC waits for this confirmation before initiating a movement or passing to a subsequent block. It is therefore not necessary to create a wait state using other signals. The position loop for each axis is closed when an associated MOVCN or RDMOV is present. Avoid RDMOV activation not corresponding to MOVCN requests. Example: INP XSBLOC [X axis unlocked OUT ABILX [enable the X axis SFREX [X axis release control ... PROG SFREX=MOVCN(1) RDMOV(1)=XSBLOC ABILX-MOVCN(1)~RDMOV(1) ..
MOVCN
RDMOV
ABILX
SFREX
XSBLOC
Speed
Time
no no no
Axis enable request (1..8). Axis ready to move; response to MOVCN (1..8). Override value on the programmed feed (from 0 to 2 gives an adjustment between 0 and 200 per cent).
1-9
Series S3000
1. Management and flow of commands Summary of Registers and Signals Involved SSA 8 NC
PLC
no
In the S1200 system this operation was internally implemented, but rigidly operated by the functions (M45 and M46).
PLC
no
PLC
no
S1200
Unlike in the system S1200, JOGs are absolutely necessary, even during the MEMORY SEARCH and the RESTORE CYCLE, in order to enable axes (NCMD=8) in the reset to default value mode; however in this status they must not be disabled. (see Use and Programming Manual).
1-10
Series S3000
1. Management and flow of commands
The choice of JOG axes is determined by setting the corresponding bit to the axis on register MOVMA. The registers JOGP and JOGM initiate the movement and determine the direction. The axis is enabled and taken under special control, if it does not already exist when the corresponding MOVMA is furnished. The velocity is adjusted, individually for each axis, through the related register POMO(n), with a value between 0 and 1 (0-100% of the rapid velocity). Summary of Registers and Signals Involved MOVMA JOGP JOGM POMO() 8 8 8 64 NC NC NC NC
no no no no
Axes selected for manual movement (1..8). Comand jog positive (1..8). Comand jog negative (1..8). Velocity for manual movments and home cycle for each single axis (1..8) (from 0 to 1 as a percentage of the rapid velocity).
PLC PLC
no no
One per handwheel (1..3) to indicate the number of the axis to be controlled. Selection of the handwheel resolution from the 8 values defined in the configuration parameters.
1-11
Series S3000
1. Management and flow of commands
In the configuration data it is necessary to specify whether or not a home microswitch is present. This information is used by the NC to differentiate special cases such as the use of a resolver connected 1:1 with the motor, or when the transducer used is absolute and does not require any additional PLC management. For absolute transducers, or those used as such (see preceding case) MIZEA is always present unless there are errors on the measurement system. It is important to remember that the SOFTWARE LIMITS are active only after the axes have been homed. The selection priority of the type of axis movement in JOG (manual and homing) is the following: MICZE MARK MOVMA
B phase: The move direction is automatically inverted and the velocity is reduced to 1/8 of the actual velocity. After having coming off the home microswitch by continuing in the same direction, the transducer is zeroed when the first marker pulse is encountered. The absolute coordinate of the axis is given the value of machine 0 position defined in the configuration data (see specific documentation).
C phase: The cycle continues automatically, positioning the axis on the position specified in the configuration by the parameter machine zero, with the same velocity with which MIZER is encountered. Finally the axis homed signal is given in the MIZEA register with the bit related to the axis.
If JOG is released during the cycle, the axis is stopped and the following situations will be present:
1-12
Series S3000
1. Management and flow of commands
JOG released during A phase before being If the transducer had already been zeroed. The employed by MIZER: value of the previous MIZEA takes precedence. JOG released during A phase after MIZER MIZEA has not been reset. employed but before the electrical zero is encountered. JOG released in C phase during positioning to MIZEA is signaled in so far as the transducer has machine zero. already been electrically zeroed even though the axis has not been positioned on machine zero.
If the cycle begins with the home switch already pressed, the sequence initiates from B phase. In any case, the cycle is always interrupted when the MICZE register is released. If a repetition of the research cycle is desired after having terminated the preceding one, it is sufficient to repeat the sequence of controls described previously. The MIZEA signal is again zeroed out and the sequence begins anew.
Speed
P2
P1
B C
Position
P1 = point at which value machine zero is entered P2 = position of end of home cycle
1-13
Series S3000
1. Management and flow of commands
A
Micze Jog Mizer Movcn Transducer Zero Mizea
P1 = point at which value machine zero is entered P2 = position of end of home cycle V1 = home speed V2 = speed off the switch (1/8 di V1)
1-14
Series S3000
1. Management and flow of commands
B phase: The cycle continues automatically positioning the axis at the point specified in the configuration by the parameter homing stop position, at the same speed with which the electric zero was encountered. Finally the axis homed signal is given in the MIZEA register with the bit related to that axis
If JOG is released during the cycle, the axis is nevertheless stopped and the following situations would be present: JOG released before reaching the electrical zero MIZEA is not reset. of the transducer: JOG released in B phase during positioning to MIZEA is signaled in so far as the transducer has machine zero. already been electrically zeroed even though the axis has not been positioned on machine zero. In any case, the cycle is always interrupted when the MARK register is released. If a repeat of the home cycle is required after having stopped the previous one. Repeat the sequence of controls described previously. The MIZEA signal is again zeroed out and the sequence begins anew.
1-15
Series S3000
1. Management and flow of commands
Transducer Zero
Speed
P1 Position
Speed
V1 P1
Time
-V1
1-16
Series S3000
1. Management and flow of commands Summary of registers and signals involved MICZE MARK MIZER MIZEA 8 8 8 8 NC NC NC NC
no no no no
Axis selected for homing with home switch (1..8). Axis selected for homing without home switch (1..8). Home switch for axis (1..8). Axes referred to the electrical zero of transducer (1..8).
PLC
yes
1-17
Series S3000
1. Management and flow of commands Summary of Registers and Signals Involved For axis control ERR() VATT TACH() VFF() AFF() DAA() 64 64 64 64 64 64 NC NC NC NC NC NC
PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC
no no no no no no
POA() POO() POATE() POOTE() POORT() PFNC() Axis status INTOL JOGIN RAPI
64 64 64 64 64
NC NC NC NC NC
no no no no no
64
NC
no
Axis following error (1..8). Actual velocity along the tool path. Axis velocity (1..8) . Instantaneous velocity axes (1..8). Instantaneous acceleration axes (1..8). Reference voltage for controlled axes (1..8). The DAA can only be read If the axis is active and under NC control. The content varies from -1 to 1 in relation to the input voltage of -10 and +10 V. Absolute position of axes (1..8). Axis position refered to the current origin and active tool compensation (1..8). Instantaneous calculated axis position along the trajectory of interpolation (1..8) relative to the absolute origin. Instantaneous calculated axis position along the trajectory of interpolation (1..8) relative to the active origin. Instantaneous calculated position of any rototranslation of system coordinates along the trajectory of interpolation (1..8) relative to the active origin. Final programmed axis position (1..8).
8 8 1
NC NC NC
no no no
Axis (1..8) within in position zone defined in the parameters. Axis (1..8) moving following a JOG command (manual or referencing). Blocks being executed in rapid.
Control of transducers and electronic handwheels MKSAX 8 NC no Marker pulse signal (electrical zero) for encoders or optical scales for axes (1..8). Set by the NC when received from the transducer and reset by the subsequent system sampling; for this reason the pulse is only seen by using the graphic analyser . Signal level from analog transducers (INDUCTOSYN or RESOLVER); in the case of an ENCODER it is the number of lost pulses determined by the "recover step" function for the axes (1..8). Distance per rev of the handwheel (1..3) according to the selected resolution. The distance accumulated is reset by changes of NC status and axis status (SSA, DSERV, ...)
AIRGP()
64
NC
PLC PLC
no
SPMANO() 64
NC
no
Information regarding the axes: entity of origin offset (G851) The values in millimetres, for each machine axis respectively, of the offset of the origin obtained with the handwheels when function G851 is active are loaded on the 8-element vector OFHWL(). The entity of the offset can be displayed on the NC video panels by using the display variables available in the PLC. Name OFHWL() Size 64 Direction NC=>PLC Description Offsets (1..8) of the workpiece origin through G851
1-18
Series S3000
1. Management and flow of commands Information regarding controlled axes: new variables Variables for debugging and axis calibration: Name AXRIF() OFSVA() AFF() Size 64 64 64 Direction NC PLC PLC NC NC PLC Description Speed command sent to the axes (1..8) [mm/min]. Additional speed offset for the axes (1..8) [mm/min]. (Also impacts AXRIF() - use only for special applications) Acceleration command imparted to the axes (1..8) [mm/sec2]
non-interlocked axis:
PLC
no
PLC
no
Offset to be applied to the reference voltage on controlled axes (1..8) in the range 1 for a reference voltage of 10 Volt.
ADDITIONAL ORIGIN OFFSET FOR CONTROLLED AXES For special applications, a supplementary position offset may be activated for the workpiece origins through the PLC. The origin offset remains active even after the Numerical Control has been switched off, thus guaranteeing position in cases of absolute transducers. The value of the offset, expressed in millimetres or degrees, must be loaded into the 8-element vector PLORG() (one for each axis respectively). The offsets are activated with an end-of-block M function which sets the bit STORG_(1) synchronously with the BURDY signal. The other bits of the byte STORG_ are reserved for other axis groups. Similarly, all the additional offsets are de-activated by setting STORG_ to 0 synchronously. It is important to remember that activation and de-activation of the offsets take place only after a transition of the bit STORG_(1) from zero to one or from one to zero respectively. For example, if the system starts with the bit at zero, only the rise to one is active and vice versa. Therefore in order to maintain consistency with the internal storage status of control of the axes, it is recommended that you create a support bit in static RAM (SRAM) to store the status STORG_ with the NC off and reinitialize it on switching on. Machine Logic Development (PLC) - Part II (01) 1-19
Series S3000
1. Management and flow of commands
Typically this feature is used on machines with rotational head and with a second, opposing spindle; the additional offsets represent the position differences between the first spindle nose and the second spindle. In this case, the activation of STORG_ is produced on an end-of-block auxiliary M function inside a COM program used for the exchange of spindles. In an absolute origin, the origin offsets are disabled. Name STORG_ PLORG() Size 8 Direction PLC NC PLC NC Description Register activating the additional origin offsets. STORG_(1) = 1 enables the offsets (for all the axes) STORG_(1) = 0 disables the offsets Registers containing the additional origin offsets
PLC
no
Control byte of contact Probe (on/off): Bit 1: disables error 210 (collision)
Status of the measurement probe (ON/OFF) can be read through register SWDTF (this register is to be used mainly for diagnostic purposes). Name SWDTF Size 8 Direction PLC=>NC SWDTF(2) Description Status of probe ON/OFF = 0 probe at rest = 1 probe deflected
no no no no
Axis (1..8) on positive software limit. Axis (1..8) on negative software limit. Axis (1..8) disable positive software limit. Axis (1..8) disable negative software limit.
1-20
Series S3000
1. Management and flow of commands CONTROLLED AXIS SOFTWARE LIMITS: DE-ACTIVATING ERROR E93 By setting the variable CWFCS it is possible to disable the detection prior to the software limit movement and, as a result, the reporting of error E93: AXES ON LIMIT; limiting of the stroke of the axes due to the software limits remains, however, unaltered. This features must be used when the PLC, for installation requirements, also acts, and with the axes moving, on the variables relating to the software limits, for example by disabling the limits with DFCOP, DFCOM or by changing the pair of active limits variable FCA). In the NC program execution or single block states, setting of CWFCS must be made synchronously with the signal BURDY. Name CWFCS Size 8 Direction PLC NC Description Check of software limit errors CWFCS(1) =1 check E93 disabled =0 check E93 enabled (default).
To go back TO primary limits it is identical writing: FCA(3)=1 or: FCA(3)=0 [Deactivate management additional limits Z axis [Activate primary limit pair Z axis
If array FCA is not used, primary limits on all controlled axes are active by default.
PLC
no
1-21
Series S3000
1. Management and flow of commands
PLC
no
Enable nominal offset gantry axis (1..8) Must be set the bit corresponding to the SLAVE axis number
1-22
Series S3000
1. Management and flow of commands The programmed positions are passed on the array AUXPF() as follows: AUXPF(1) = position of axis A with strobe STRPF(1) AUXPF(2) = position of axis B with strobe STRPF(2) AUXPF(3) = position of axis C with strobe STRPF(3) AUXPF(4) = position of axis U with strobe STRPF(4) AUXPF(5) = position of axis V with strobe STRPF(5) AUXPF(6) = position of axis W with strobe STRPF(6) Summary of Registers and Signals Involved AUXPF() STRPF 64 8 NC NC
PLC ye PLC ye
Programmed positions for axes moved by the PLC (1..6). Strobe when new information is present on AUXPF() (1..6).
Analog inputs
The syntax is as follows: ANImaster board number (slave number input number) where: master board number indicates which BOARD SLOT the board with RIO master interface will have, like the case of local I/O where it relates to the I/OMIX board. If the master board with integrated RIO is used, the board number will be 17. declares the address set with the microswitches on the remote module. declares the input used on the module.
ANI17(6002) signifies analog input no. 2 of the SLAVE remote module with address 60 connected to the RIO MASTER interface in position 17. Machine Logic Development (PLC) - Part II (01) 1-23
Series S3000
1. Management and flow of commands ANI(3) signifies analog input channel 3 of the first I/OMIX board
Analog outputs
The analog outputs written by the PLC with a numeric value in 64 bit format varying between -1 and 1 as a percentage of the bottom of scale value produce an output voltage varying between -10V and +10V. No configuration parameters are necessary in the NC. The access is obtained in the PLC with a variable VELO... with the following structure: VELOmaster board number (slave number output number) where: master board number slave number output number Example: VELO17(6002) signifies analog output no. 2 of the SLAVE remote module with address 60 connected to the RIO MASTER interface in position 17. VELO(3) signifies analog output no. 3 of the first I/OMIX board. indicates which BOARD SLOT the board with RIO master interface will have, like the case of local I/O where it relates to the I/OMIX board. declares the address set with the microswitches on the remote module. declares the output used on the module.
1-24
Series S3000
1. Management and flow of commands
PLC PLC
no
64
NC
no
TEMPx()
64
NC
PLC
no
Analog input readings from the I/OMIX card specified and its expansions. The value read varies from 0 and 1 as a percentage of the full-range value.. Analog output from the I/OMIX card specified and its expansions. These outputs can always be read, but written only if they are not utilized by the NC for the controlled axes or by the internal modules for management of the spindles or independent axes. The content can vary from -1 to 1 as a percentage of the full-range value (+/- 10 V). Degrees of temperature read by the thermal probes (if the interface is present) associated with the specified card.
to send the parameter to the PLC to receive a value from the PLC
1-25
Series S3000
1. Management and flow of commands These have the same name, but they have nothing to do with the Pxx parameters of the part program executed directly by the operator. Summary of Registers and Signals Involved VPLFL STVFL VPLWO STVWO VPLBY STVBY VPLBI STVBI VLPFL VLPWO VLPBY VLPBI PNC() P() 32 1 16 1 8 1 1 1 32 16 8 1 32 32 NC NC NC NC NC NC NC NC NC NC NC NC NC NC
PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC no PLC
no
FLOATING variable from part program to PLC. FLOATING variable strobe from part program to PLC. WORD variable from part program to PLC. WORD variable strobe from part program to PLC. BYTE variable from part program to PLC. BYTE variable strobe from part program to PLC. BIT variable from part program to PLC. BIT variable strobe from part program to PLC. FLOATING variable sent to the part program from the PLC. WORD variable sent to the part program from the PLC. BYTE variable sent to the part program from the PLC. BIT variable sent to the part program from the PLC. 99 parameters in shared floating point format read and written to by both PLC and part program at the user level (1..99). 99 parameters in shared floating point format written to by the PLC or the subprogram COM instructions (1..99).
no
NC NC NC NC
no no no no
Registers for NC video display areas (1..16) in the floating long or double point formats. The display of these areas is enabled by default values in the video tables. Registers for NC video character display in the preset areas (1..16). The ASCII character code must be used. Registers for NC video character display in the preset areas(1..16) in word format. String registers containing a max of 64 alphanumeric characters for the NC video display in the preset area (1..16). Register for the display of the S function value in the preset area of the NC video.
It should be remembered that, as described with regard to the softkey, the PLC can change the current softkey menu by using the variable SFKMEN. Remember, the PLC may change the softkey menu using SFKMEN variable. Furthermore the PLC has the code of the active language on NC on the SFKLNG variable: 1= 2= 3= 4= 5= 6= Italian French German English Spanish Portuguese
To create a new condition in the video configuration tables the array CNDVIS( ) of 64 elements in word format ( see Configuration System Manual ) is available. 1-26 Machine Logic Development (PLC) - Part II (01)
Series S3000
1. Management and flow of commands Summary of Registers and Signals Involved 8 SFKMEN 16 SFKLNG CNDVIS( ) 16 NC NC NC
no no no
Current PLC softkey menu. Active language code on NC Word array to use during changing condition in the tables (164)
NC VIDEO DISPLAY WINDOWS: ACTIVE VIDEO PANEL The variable VISMC (read only) contains the number of the video panel (VIS_MC) currently active. The panels from VIS_MC_A to VIS_MC_F output codes from 10 to 15 respectively. Name VISMC Size 16 Direction NC PLC Description Number of active video panel
no no no no no no
Year (last two digits) Month Day Hour (0-24) Minutes Seconds
PLC
no
The meaning of the single bits are as follows: NC PLC no = 0 selects continuous digitization mode data points are COPIA(1) 1 stored as a function of the parameters of the manual copy program. =1 COPIA(2) selects the digitization mode data points are stored only following an pulse (transition from 0 to 1) on the bit COPIA(2) in manual copy. Digitizing signal see COPIA(1).
NC
PLC
no
1-27
Series S3000
1. Management and flow of commands COPIA(3)
NC
PLC
no
1 1 1 1 1
NC NC NC NC
no no no no
Active copying cycle signal. When reset by PLC it signifies the end of the cycle. It is important to terminate a digitizing cycle by zeroing out this bit (or with the appropriate softkey if already implemented in the NC) otherwise the last points digitized will not be stored. Signal to STEP (increment) +. Signal to STEP (increment) -. Signal to STEP (increment) and reverse copy direction. Active copy. Not assigned
NC
no
The meaning of the single bits are as follows: Passage in manual status. NC PLC no COPIA2(1) 1 NC PLC no 0 = digitizing disabled. COPIA2(2) 1 1 = digitizing enabled. NC PLC no Probe offset acquired. COPIA2(3) 1 NC PLC no 1 = copying axis 1 locked. COPIA2(4) 1 0 = unlocked. 1 = copying axis 2 locked. NC PLC no COPIA2(5) 1 0 = unlocked NC PLC no 1 = copying axis 3 locked. COPIA2(6) 1 0 = unlocked NC PLC no Reversal of copy direction. COPIA2(7) 1 NC PLC no 0 = auto acquire surface disabled. COPIA2(8) 1 1 = auto acquire surface enabled. COPIA3 8 NC
PLC
no
The meaning of the single bits are as follows: Restart copying in the NC PLC no COPIA3(1) 1 with the model axis 3. NC PLC no Restart copying in the COPIA3(2) 1 with the model axis 2. NC PLC no Restart copying in the COPIA3(3) 1 with the model axis 1. NC PLC no Restart copying in the COPIA3(4) 1 with the model axis 3. NC PLC no Restart copying in the COPIA3(5) 1 with the model axis 2. NC PLC no Restart copying in the COPIA3(6) 1 with the model axis 1. NC PLC no Reserved. COPIA3(7) 1 NC PLC no Reserved. COPIA3(8) 1 COPIA4 8 NC
negative direction after loss of contact negative direction after loss of contact negative direction after loss of contact positive direction after loss of contact positive direction after loss of contact positive direction after loss of contact
PLC PLC
no
The meaning of the single bits are as follows: COPIA4(1) 1 COPIA4(2) COPIA4(3) COPIA4(4) COPIA4(5) NC no Tempory stop after renewed contact with model. Reserved Reserved Reserved Reserved
1-28
Series S3000
1. Management and flow of commands COPIA4(6) COPIA4(7) COPIA4(8) POCOP 64 NC
PLC
no
Manual copying gain control. The value can vary from 0 to 1 and multiplies the gain of the control in copying from 1 to 5, varying the velocity of the axes with the deflection of the probe.
SIGNALS FOR COPYING AND DIGITIZING: ACTIVE MANUAL COPYING The NC sets bit 8 of byte COPIA to signal execution in progress of a scanning cycle in manual mode. Name COPIA Size 8 Direction NC PLC Description First byte for remote management of copy commands COPIA(8) manual copy scanning active
If there are any faults when the probe is installed, the system automatically generates error signals on the PBSTS register passing to the emergency status (EMEA=1). The probe is considered present by the NC only when the configurations of PBSTS(5)=1 and PBSTS(6)=0 have been detected while the probe is considered absent with PBSTS(5)=0 and (PBSTS(6)=1. Summary of Registers and Signals Involved PBSTS 8 NC
PLC
+ + + + + +
no
1-29
Series S3000
1. Management and flow of commands
no no no no no no no
Sample time (controlled axes) [msec] Fast logic scan time (microseconds). Time used in managing the controlled axes (microseconds). Time used by the graphic analyser (microseconds). Time used in managing the independant axes (microseconds). Slow logic interrupt cycle counter. Super slow logic interrupt cycle counter.
PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC
no
16 16 16 16 16 16 16 16 16 8
NC NC NC NC NC NC NC NC NC NC
no no no no no no no no no no
System error code read on the controlled axes, spindles, independent axes, PLC runtime errors, errors in the automatic tool change module, System error code read on the controlled axes (slave error, ouside tolerance, transducer errors, etc.). Error code read on the I/OMIX cards (encoder feedback failure, digital output error, etc.) Error code occurring during the interpolation calculations. Runtime error code read during the execution of the PLC program (division by 0, overflow, underflow, etc.). Error code read on the spindles (transducers, etc.) Error code read on the independent axes (transducers, etc.) Error code read during tool change or incorrect tool tables, etc. Error code caused by exceeding system sampling time. Error code read during a copying cycle or touch probe sensor. Disabling mask that senses errors on floating point calculations (division by zero, overflow).
CHECKING OF THE INDICES FOR ACCESS TO VARIABLES AND TABLES. With the object of diagnosing whether the value of the indices used for accessing the individual bits of simple variables or the elements of a vector come inside the limit dimensions of the variables, the following instructions can be added in the PLC program: _ENIDX = -1 to activate diagnostic _ENIDX =0 to de-activate it (default) The check can be activated and de-activated many times in the PLC program (only in one program section at a time). Execution of the PLC program is slowed with these checks active. Where an error situation is detected, a message is reported in clear and the PLC is disabled.
1-30
Series S3000
1. Management and flow of commands
no no no
Number of the axis whose parameters are to be modified. Current value in the system configuration parameters. Configuration parameter code to access through the PLC ( the parameters operate on a non static copy in memory); the new values are entered only when the axis final velocity = 0: Code written -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 Parameter Rapid velocity Machining acceleration Rapid acceleration transducer axis backlash KV gain Dynamic compensation Crossover recovery rate Crossover recovery time Maximum Servo Error Frict. comp rate Acceleration error offset Negat. travel limit 1 Posit travel limit 1 Transducer pitch Integral time constant Integral gain Code read 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
ACTSTP INCH
NC
PLC PLC
no
Start operation request signal on HOWSTP. Reset by NC when operation is finished. Kind of measure 0 = millimeters 1 = inches The NC sets this variable according to the related parameter stored in the system configuration area. PLC can overwrite this variable to change the kind of measure but the new value will not be saved permanently in the system configuration parameter area.
NC
no
1-31
Series S3000
1. Management and flow of commands
Example:
bit BURDY is extended in byte BURDY_ addressing BURDY or BURDY_ (1) is the same thing. For the GDA higher than the first, use BURDY_ (..).
- for variables with other formats arrays of 8 elements have been created (one for each axis group). - the name of the new variables is obtained by adding an _ (underscore) after the original name. At user interface level the key above the < Return> key can be used to pass (if configured) from the display of one group of axes to the next. For the synchronization and running of programs on different groups of axes new part-program instructions have been introduced. For further details, see the relative Technical Bulletin no. 4 of 1997. INFORMATION REGARDING THE AXIS GROUP DISPLAYED. The variable GDAVIS communicates to which group of axes the current console display refers. This information is of use, for instance, as it is the role of the PLC to keep updated the display of the last M programmed for each axis group, depending on which GDA is displayed on the console by the user. Name GDAVIS Size 8 Direction NC PLC Description Number of the axis group that the display refers to.
1-32
Series S3000
2. Dedicated internal modules
2-1
Series S3000
2. Dedicated internal modules
SPSSO() ((Potentiometer override). It is possible to regulate the speed between 0 and 200% of the given speed by choosing a value on this register between 0 to 2 (with respect to the maximum speed range). SPDIR() (Spindle rotation direction). If the signal is to 0 after a rotation command the referred analog output will be positive. If equal to 1, negative. SPROT (Rotation command). The rotation command parameters are provided by the first 4 bits (one for each spindle) of the byte format register. SPREG (Speed rate reached). The first 4 bits of this register (one for each spindle) are set high by the NC when the theoretical acceleration ramp has been reached and the actual spindle speed is within the specified percentage in the configuration data table. If the requested speed is less than the threshold in the configuration table, the signal is always equal to 1. SPMOT (Operating spindle). The first 4 bits of this register (one for each spindle) are set high by the NC when the spindle speed exceeds the specified threshold. This signal is always updated, even if the spindle is not selected. SPRMP (Spindle on ramp). The first 4 bits of this register (one for each spindle) are activated by NC when accelerating or decelerating. Typically used when waiting for spindle stop and start. SPSGL (Effective threshold speed). The first 4 bits of this register (one for each spindle) are set high by the NC when the actual spindle speed is in tolerance. When the spindle is stationary the signal is 0. It is always active for spindle speeds less than the threshold.
2-2
Series S3000
2. Dedicated internal modules
Unidirectional Orientation
To enable unidirectional orientation the bit for the selected spindle must be set in one of the two direction registers SPORP or SPORM. Load the SPPOS() then activate the orientation by setting SPORI. SPORP SPORM Orientation in positive direction. Orientation in negative direction.
2-3
Series S3000
2. Dedicated internal modules
keeping the synchronization specified with the SPOFS offset. This will work only if the speed ratio for synchronization is an integer. All the parameters relative to the slave spindle to be synchronized must be set when the slave spindle is not in motion. If a command (SPROT, SPORI, ...) is given to a synchronized slave spindle it is automatically uncoupled. SPMAS() (Master spindle numbers). To synchronize a slave spindle with a master spindle the number of the master must be entered in the relevant spindle register. SPOFS() (Synchronism offset). These registers will contain the rotational offset between the master spindle and the slave spindle ( 1 = 360 degrees) to be maintained whiled synchronized. The synchronization ratio SPRTO must be an integer. SPRTO() (Speed ratio for synchronism). These registers hold the ratio between the slave spindle speed and the master spindle speed to be maintained while synchronized (Slave velocity / Master velocity). SPAGG (Slave spindle synchronized with the master spindle). The first 4 bits of this register (one for each spindle) are set by the NC after synchronization is achieved following the command.
The registers and signals in common with all function modes are the following: SPMOV (Spindle enable). The command given by the NC on the first 4 bits (one for each spindle) to enable the spindle this command is maintained automatically until the spindle is stopped. It is also maintained during rotation cycles, synchronism and when orientation or timing commands are present. Further protection or any time delays must be implemented by the PLC. Note: the writing on the channel of analogic reference associated to a spindle is possible only if SPMOV is absent and if SPDIS is active. SPDIS (Spindle disable). With this command on the first 4 bits of this register (one for each spindle) the PLC requests the immediate disabling of the spindle (the reference is forced to 0 V and the spindle is disabled instantaneously). This signal is used in case of an emergency SPDRQ (Disabling the spindle transducer). This command disables the spindle transducer. When disibled the position no longer read and any transducer errors no longer read, transducer zeroing is lost (SPMZA).
2-4
Series S3000
2. Dedicated internal modules
SPTCH() (Effective spindle speed). The spindle speed determined by the transducer, is read directly in rpm on each register. PASP() (Absolute angular position of the spindle). The transducer must always have a mechanical ratio of 1:1 with the spindle. The range of this register is +131071.9999, -131071.9999. SPMZA() (Referencing of spindle transducer). When the spindle transducer has been zeroed (electrical zero) the bit for the relevant spindle is set high. Referencing is automatically executed on the first orientation or request of synchronism. If it is required to repeat the transducer referencing cycle all that is required is to reset the relevent spindle bit on SPMZA. SPMKS (Zero marker). This signal is set by the leading edge of the transducer zero signal. This signal has a duration equal to one system cycle. A typical application is to verifiy the transducer function. NEW VARIABLES Variables for debugging and calibration: Name SPRIF() Size 64 Direction NC PLC Description Speed command sent to the spindles (1..4) [revs/min] can be used to check the acceleration/deceleration ramps by comparing SPRIF with SPTCH (actual speed) for spindles with transducer.
Variable SPAGP has been added for use in diagnostics, it assumes the following significance depending on which type of spindle transducer is used: With RESOLVER, it represents the transducer analog signal level. With ENCODER, it represents the number of pulses lost and recovered (with the parameter STEP RECOVERY ACTIVE). Name SPAGP() Size 8 Direction NC PLC Description Transducer level or pulses lost and recovered for the spindles (1..4).
2-5
Series S3000
2. Dedicated internal modules
no no no no no no no no
Speed spindle(s)(1..4). Override potentiometer spindle(s)(1..4). Rotation direction spindle(s) (1..4). Comand spindle(s) (1..4). Spindle(s) (1..4) upto speed. Spindle(s) (1..4) in motion. Spindle(s) (1..4) ramp upto speed. Effecttive speed within threshold spindle(s) (1..4).
Range change selection NC PLC SPGAM() 8 8 NC PLC SPPND SPSMG1() 64 NC PLC SPSMG2() 64 NC PLC SPSMG3() 64 NC PLC SPSMG4() 64 NC PLC SPSMAX() 64 NC PLC Spindle orient 8 SPORI() 8 SPTOL 64 SPPOS() SPVEOR() 64 SPOAB SPORP SPORM 8 8 8 NC NC NC NC NC NC NC
no no no no no no no
Range selected (0 = neutral) spindle(s) (1..4). Hunting command for range change spindle(s) (1..4). Maximum speed for range 1 spindle(s) (1..4). Maximum speed for range 2 spindle(s) (1..4). Maximum speed for range 3 spindle(s) (1..4). Maximum speed for range 2 spindle(s) (1..4). Maximum speed for spindle(s) (1..4).
no no no no no no no
Orient command spindle(s) (1..4). Oriented within tolerance spindle(s) (1..4). Orient position spindle(s) (1..4). Speed reduction (from 0 to 1) during orientation spindle(s) (1..4). Orientation using absolute values spindle(s) (1..4). Unidirectional positive orientation. Unidirectional negative orientation.
Synchronization between spindles 8 NC PLC no SPSYN 8 NC PLC no SPMAS() 64 NC PLC no SPOFS() 64 NC PLC no SPRTO() 8 NC PLC no SPAGG
Synchronism command to slave spindle. Master spindle numbers for synchronism with slave. Offset between master spindle and slave. Speed ratio for sync. between master spindle and slave(s). Slave spindle(s) (1..4) synchronized with master.
2-6
Series S3000
2. Dedicated internal modules
Common to all operations 8 NC PLC SPMOV 8 NC PLC SPDIS 8 NC PLC SPDRQ 64 NC PLC SPTCH() 64 NC PLC PASP() 8 NC PLC SPMZA SPMKS 8 NC
no no no no no no no
PLC PLC
Request to move spindle(s) (1..4). General disable command spindle(s) (1..4). Disable transducer spindle(s) (1..4). Effective speed spindle(s) (1..4). Angular position from transducer(s) (1..4). Transducer(s) referenced to electrical zero. Can be reset to repeat the zero search. Encoder(s) marker pulse spindle(s) (1..4).
no
PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC
no no no no no no no no no no no
8 8 64
NC NC NC
no no no
Request to enable movement axes (1..8). Movement enabled axes (1..8); response to MOVP2P. Axes that must be enabled at all times (1..8). Axes to be freed (1..8). Command to disable the transducers on axes (1..8). Axes that may be selected in manual mode (1..8). Axes selected to be homed without reference switch (1..8). Axes selected to be homed with reference switch (1..8). Reference microswitch for axes (1..8). Axes referred to transducer zero then repositioned after homing (1..8). Speed regulation potentiometer for axes (1..8). From 0 to 100 percent of the speed if in automatic, or of the acceleration, if in manual. Comand JOG positive axes (1..8). Comand JOG negative axes (1..8). Automatically move to programmed position axes (1..8).
2-7
Series S3000
2. Dedicated internal modules
RUNP2P
NC
PLC
no
NC
no
NC
no
NC
no
BKAP2P REMP2P EMAP2P POAP2P() TCHP2P() SGLP2P MKSP2P FCPP2P FCMP2P VATP2P()
8 8 8 64 64 8 8 8 8 64
NC NC NC NC NC NC NC NC NC NC
PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC
no no no no no no no no no no
JINP2P DIRP2P
8 8
NC NC
no no
Positioning commands in automatic for axes, (1-8). They must be set by the PLC to command the movement to the set position; they are reset by the NC when the axis, having ended the movement, enters the in position threshold set in configuration data. HOLD request, axes (1..8). Temporary hold of movement; the operation continues without further commands as soon as axes are released. HOLD request, axes (1..8). Temporary hold of movement; the operation continues without further commands as soon as axes are released. BREAK request on movements in automatic, axes (1..8). RBKP2P is reset by the NC when acquired. The axes are decelerated to a stop, and the RUNP2P is reset. In emergency state (EMAP2P) it is used to cancel the emergency but only if the request has been removed (REMP2P). Axes not in motion following a RBKP2P command (1..8); they can be reset by the PLC, but this is not binding. Request to go to an emergency state axes (1..8). Axes in emergency state. Going in to this state, the axes are disabled immediately without a controlled deceleration (1..8). Absolute position read from transducer axes (1..8). Effective speed (from transducer) axes (1..8). Axes within positioning tolerance set in the configuration (1..8). Marker pulse ( electrical zero) for axes (1.8) with encoder or optical scales. Axes(1..8) where actual value results are greater than the positive travel limit set in the configuration. Axes(1..8) where actual value results are greater than the negative travel limit set in the configuration. Theoretical speed (computed) axes (1..8). If in the configuration data it is declared that the D/A converter is not present the reference in voltage will not be sent through the output channel, but the speed in this register is always available. Axes (1..8) in motion after a JOGP2P command. Axes (1..8) motion direction (revealed by the analog reference sign). The value 1 means negative speed.
The following registers are initialized on startup with the values in the configuration table, subsequently the PLC may read and modify them as long as the axis is not moving. FEDP2P() RAPP2P() VLNP2P() ZLNP2P() DEXP2P() ACMP2P() ACCP2P() DECP2P() DE2P2P() TOLP2P() OFSP2P() 64 64 64 64 64 64 64 64 64 64 64 NC NC NC NC NC NC NC NC NC NC NC
PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC
no no no no no no no no no no no
NEW VARIABLES
Feed speed, axes (1..8). Rapid speed, axes (1..8). Slow zone speed, axes (1..8). Slow zone distance, axes (1..8). Exponentional deceleration distance, axes (1..8). Acceleration in manual, axes (1..8). Acceleration in automatic, axes (1..8). Deceleration from feed speed to slow speed, axes (1..8). Exponential deceleration from slow speed, axes (1..8). Positioning tolerance, axes (1..8). Transducer offset applied to the reading to obtain the absolute value POAP2P() (1..8).
2-8
Series S3000
2. Dedicated internal modules
Name SHIP2P()
Size 64
Direction PLC NC
Description Origin shift for independent axes (1..8). Allows definition of a zero position different from the absolute zero. The final positions of PFNP2P() are always referred to POOP2P(). Independent axis position (1..8) affected by the origin shift SHIP2P().
64
PLC NC
The speed diagram for axes is shown below. To eliminate the slow speed section (ZLNP2P) the value should be set to 0 in the initialization parameters. The control is point to point. Axis movement is independent of other axes and the commanded speed depends on the distance to the final point with respect to the accelerations and speed limits set in the configuration parameters therefore there will be no following error for the controlled axes. To control the axis speed, it is necessary to compare the real speed VATP2P with the effective speed TCHP2P.
2-9
Series S3000
2. Dedicated internal modules
The application does not necessarily need to manage all the SEQUENCE possibilities, but only those considered necessary according to the type of machine and the complexity required. They must be defined in the PLC program, indicating for each one all the OPERATION CODES (elementary actions) to physically initiate the exchange (for example: operation 9001 = tool disengagement, operation 9021 = open changer arm jaws). They must be indicated next to the internal codes, necessary for updating the sequence in the tool table. At the time of the sequence execution, the relative codes of OPERATION are sent to the PLC in the defined order. The latter must mainly manage the mechanical operations controlling the change, search and carry out the single simple physical operations without being overloaded by the management of the tool table, tool sizes, tool family or the sequence of load, unload or change. That means that the management of the TC sequencer must be similar to the M, H auxiliary common functions.
2-10
Series S3000
2. Dedicated internal modules
When it is necessary to differentiate the tools by different types and sizes, the following must also be considered: TOOL TYPE: normal tool: special tool: TOOL SIZE: used with the selected TC type in a coherent manner (random or fixed position). only and always used as a fixed position tool: it will be returned to the same position as picked up.
normal and special tools can be of the following sizes: small tool: always occupies the one position in storage. medium tool: occupies the number of positions in storage large tool: declared in the configuration. extra tool:
2-11
Series S3000
2. Dedicated internal modules
Tool Disposition
fixed position: Every tool is placed in storage in the position corresponding to its own code. Its position remains unchanged during the running of the machine every tool will always be restored to the position from which it was taken
random position: Prior to this there are no bonds between the tool code and the spot it occupies but a precise storage position inside the tool table is assigned to every tool this will never be changed during the operation of the machine. random: None of the tools have pre-assigned specific positions, they are picked up and replaced in a way to optimize the order in storage and the time of tool change.
Plane:
Asynchronous:
Semiasynchronous:
2-12
Series S3000
2. Dedicated internal modules
Not all sequences, described above, have to be defined. Those required to be defined because of the the characteristic of the machine and the complexity required by the operation, must be set in the INIT section of the PLC through the instruction: DEF SEQCU(seq. number) = predefined code, PLC code, ... others [,COM,1,'prog. name'] carrying all the pre-defined internal codes in the order provided. Definition errors in the sequence are signaled on the screen. Besides the operation codes it is possible by using the instruction DEF SEQCU(n) to specify a NC sub-program name (COM, 1, 'prog. name') that will be automatically executed in conjunction with M06 (-6) awaiting operation and the PLC signal of the programmed M06 (M6PGM = 1) for positioning the NC axes and executing the tool change sequence in non masked time. According to the configured automatic tool change, the possible SEQUENCES are shown below. In every sequence that requires the insertion of a new tool in the spindle, it is necessary to activate the tool length compensation before initiating the work (INTOF = 1).
2-13
Series S3000
2. Dedicated internal modules
Exchange sequences between tools from the floor and tool storage (SELECU = 0) Sequence 4: -1, -5, -6, -10, -17, -34 Sequence 5: -23, -6, -12, -16, -27, 34 unload tool from spindle to floor, pick up tool from storage and place in spindle unload tool from spindle to storage, load tool from floor to spindle
Sequences of tools from tool storage (SELECU = 0) Sequence 6: -1, -5, -6, -12, -17, -23, -27, -34 place spindle tool in storage, pick up from storage and place in spindle (exchange) Sequence 7: -1, -5, -6, -17, -34 pick up tool from storage and place in spindle (loading) Sequence 8: -23, -6, -12, -27, -34 return tool from spindle to storage (unloading) Others sequences (SELECU = 0) Sequence 11: -6, -34 Sequence 19: -23, -31, -0 same as above (changer correction) tool lay down from intermediate station to storage and new operation analysis (two consecutive T's).
Load and unload sequences, tools from floor to storage through spindle (only with SELECU = 2): Sequence 9: -23, -6, -16, -12, -27, -34 (only with SELECU = 3): Sequence 10: -1, -5, -6, -17, -10, -34
tool pick up from floor to spindle, from spindle to jaws return to storage. tool pick up from storage in intermediate station tool pick up from intermediate station to spindle, return from spindle to floor.
-12
JAWS
-27 T O O L C R IB
-31
-1= NEW TOOL POS. REQUEST -23= OLD TOOL POS. REQUEST
INTERMED STATION
-5
FLOOR
2-14
Series S3000
2. Dedicated internal modules
Exchange sequences between tools on floor and tool storage (SELECU = 0) Sequence 4: -6, -10, -1, -4, -34 place spindle tool on floor, pick up tool from storage and place in spindle Sequence 5: -6, -23, -13, -16, -34 return tool from spindle to storage, pick up tool from floor and place in spindle Sequences of tools from tool storage (SELECU = 0) Sequence 6: -6, -23, -13, -1, -4, -34 Sequence 7: -6, -1, -4, -34 Sequence 8: -6, -23, -13, -34 Other sequences (SELECU = 0) Sequence 11: -6, -34 same as above (changer corrector, execute INTOF = 1 in synchronous mode). return tool to storage, pick up tool from storage and place in spindle (exchange) pick up tool from storage and place in spindle return tool to storage (unloading)
Load and unload sequences, tools from floor to storage via spindle (SELECU = 2): Sequence 9: -6, -16, -23, -13, -34 (SELECU = 3): Sequence 10: -6, -1, -4, -10, -34
-4 T O O L C R IB SPINDLE -13
-1= NEW TOOL POSITION REQUEST -23= OLD TOOL POSITION REQUEST
-10
-16
-8 = W a it M 0 6
FLOOR
-34 = End TC
2-15
Series S3000
2. Dedicated internal modules
Semiasynchronous tool changes This configuration has the following characteristics: Physically no intermediate station exists, the gripper and intermediate station cells have non significance in the tool table and are therefore not managed. Updating of the tool table has been considerably simplified: even in the change cycle interruption stage, the only tool to have the - (minus) sign is the one in the spindle. A requirement of the semiasynchronous tool change is that the operation of depositing the old tool is always simultaneous with that of taking the new tool (by means of a two-gripper exchanger arm); as a result, the pick and place positions must be coincident. The case of an exchange of tools of different sizes has been made different from the exchange between tools of similar sizes to facilitate coding of the PLC.
The significance of the internal codes of the predefined OPERATIONS is as follows: -9 Exchange of tool between spindle and storage Sequences for management of tools on floor (manual) Sequence 1: -6, -16, -34 load from floor to spindle Sequence 2: -6, -10, -34 unload from spindle to floor Sequence 3: -6, -10, -16, -34 exchange between spindle and floor Sequences for exchange between tools on floor and storage (mixed) (SELECU=0) Sequence 4: -1, -6, -10, -4, -34 return spindle tool to floor and pick from storage Sequence 5: -23, -6, -13, -16, -34 return spindle tool to storage and pick from floor Sequences for management of tools from storage (automatic) (SELECU=0) Sequence 6: -1, -6, -9, -34 tool exchange between storage and spindle (same size) Sequence 13: -23, -6, -13, -1, -4, -34 Sequence 7: -1, -6, -4, -34 Sequence 8: -23, -6, -13, -34 Other sequences (SELECU=0) Sequence 11: -6, -34 tool exchange between storage and spindle (different size) load tool from storage to spindle unload tool from spindle to storage
With this type of tool change, the Sequence 13 (exchange of different sizes) can be implemented at least with one of the following methods: Double exchange: first and foremost, the storage is put in the deposit position, which must be empty (operation 23); when the M6 is executed, there is then a first exchange between the tool in storage and the spindle (after this operation, the spindle remains empty and the arm returns to rest); the cycle continues with the magazine being put in the position to pick up the new tool; and finally the cycle is completed with a further exchange between storage and spindle. Single exchange: the Sequence is conducted like a normal type, same size exchange, but when both tools are found in the grippers of the exchanger arm (typically arm down) the magazine is rotated to the deposit position.
2-16
Series S3000
2. Dedicated internal modules
-4
STORAGE SPINDLE -9
-1= REQUEST NEW TOOL POS. -23= REQUEST OLD TOOL POS.
-13
-10 -16
-6 = W a it M 0 6
FLOOR
-34 = End CU
2-17
Series S3000
2. Dedicated internal modules
prepares on OFST register the corrector code associated to the new tool at the end it sends to the PLC, on the OPERCU register, the sequence defined in DEF SEQCU(n), the operation codes accompanied by a strobe BRDYCU.
The PLC must take care to run the proposed single operation without interfering with the others. The only expected bonds are of mechanical nature and of security between one changer and another. The synchronism signal of the BRDYCU communication must be reset by the PLC as soon as the new operation is acquired. If the required operation requires a pause to execute the next phase the PLC must temporarily set the MAPRCU signal to zero (machine ready for the TC). Normally MAPRCU is 1. In cases in which the present operation is a pick-up/lay down station request the PLC must set the storage as a function of the indicated positions of the PPRECU and PPOSCU using if necessary, the INDEPENDENT AXES MOVEMENT MODULE. When the sequence arrives to the -6 operation (wait for M06) it pauses automatically and waits until the PLC activates the M6PGM signal (M06 programmed). When the TC module while in the wait mode M06 (-6) receives the M6PGM signal it runs the NC subprogram (COM) defined for the present sequence. Afterwards the M6PGM is reset and the TC sequence continues with the following phases. The NC sub-program runs the operation sequences in synchronous mode. Tool change and the NC axes positioning. It is important to notice that the active M6PGM signal will automatically pause the program thus preventing the PLC program from running complex synchronizing functions. Consider the case in which the M6 operation is run before the tool specified by the T operation is available from storage, since the search is still in progress (random TC). The current TC sequence is terminated when the PLC resets the CUATT signal, since the TC (-34) end operation has been executed. The NEWCU tool change request is acquired only if: the TC has no sequences running. if a sequence is running and the M6 wait operation is being executed (the case of two consecutive T codes without M6);
In this way it is not necessary for the PLC to execute a complex synchronised program. If the TC recieves a sequence not declared within the DEF SEQCU(n) instruction a message of sequence not expected, is displayed for the operator and an emergency tool change state is activated (EMACU = 1 signal). This state does not affect any of the other NC operations.
2-18
Series S3000
2. Dedicated internal modules
When managing tools subdivided by group (alternative tools) particular care must be taken. In these cases the tool to be mounted does not necessarily have the same programmed T code, so unwanted effects could be obtained by OFST overwrites.
2-19
Series S3000
2. Dedicated internal modules
2-20
Series S3000
2. Dedicated internal modules
no
NC
no
16 1
NC NC
no no
1 16 16 16 1 1
NC NC NC NC NC NC
no no no no no
PLC yes
16 16 16 1
NC NC NC NC
no no no no
NC
no
1 8
NC NC
no no
ERCU
16
NC
PLC
no
Tool number request to tool change module. UTECU = 0 is a particular code reserved for the return tool sequence from spindle to storage (or on the floor if no space is available). New sequ ence activation command for TC. This signal is set by the PLC to activate the tool exchange module and it is reset by the TC as soon as it is acquired. Last TC code sequence undertaken. Strobe of new code presence on OPERCU. It is set by TC and must be reset by the PLC as soon as the new operation has been acquired. Machine ready for tool change: if equal to 0, the sequence will be suspended until released. Operation code requested by the TC from the PLC. New tool pick-up reaching position. Old tool return reaching position. TC generated signal when a new sequence initiates, reset by the PLC when the current sequence is considered terminated. (M6 programmed) must be synchronized with the BURDY by the PLC, it is reset by the TC when, the M06 wait operation is received and the NC sub-program (COM) has been run. In absence of this signal, the sequence stops on the phase (-6). An active M6PGM implicates an automatic suspension of the execution of NC blocks ! Number of tool in spindle (read only). Number of tool in intermediate station (read only). Number of tool in jaws (read only). Tool change in emergency state. This is set when the TC sequence is interrupted by a TC emergency request. The presence of this signal means that the tool information present in the table can not be justified with respect to the real situation. Operator intervention is necessary, any requests for new tool changes, NEWCU, are ignored.. TC emergency request. This command interrupts the TC current sequence and the running operation, putting the TC in an emergency state. Exit from the EMACU TC emergency state and a tool change sequence interruption request. Form selector. It must be arranged before the tool change module is activated it is acquired at the beginning of the sequence and can not be modified during the same. 0 = TC mode normal 1 = TC mode with storage excluded 2 = TC mode with storage programmed tool load 3 = TC mode with programmed tool lay down Error code displayed by the TC. At every operation the information relative to storage, tool table and configuration is verified. In case the information is not valid or in situations not forseen or not manageable the TC interrupts the active sequence and communicates the error. In addition no TC sequence is operable if it is an error condition.
2-21
Series S3000
2. Dedicated internal modules
NEW INFORMATION VARIABLES The PLC can acquire some configuration parameters to be able to implement more flexible and general programs; the information is available in the following variables: Name CUATYP Size 16 Direction NC PLC Description Type of tool changer selected 0 = manual 1 = manual S1200 2 = automatic Selected storage geometry 0 = chain 1 = planar Selected disposition of tools in storage 0 = fixed 1 = random 2 = fixed random Selected storage management 0 = synchronous 1 = asynchronous 2 = semiasynchronous
MAGGEO MAGTYP
16
NC PLC NC PLC
16
MAGGST
16
NC PLC
TOOL LIFE PARAMETERS (tool table page 2) maximum life, minimum life, life remaining, tool father, tool life expired
2-22
Series S3000
2. Dedicated internal modules
If the exclude state flag is equal to "yes" the corresponding tool will never be mounted it will be treated as if not present in storage (the tool may be declared excluded if its integrity is not verified). If there is a tool that is not in the exclude state and for which the father is equal to a excluded tool this will be mounted as an alternative. The tools in which the expired life flag is equal to a "yes" will be treated as excluded tools. Father, as already mentioned indicates tools for which there are alternatives. Example: - T10 with expired life no father - T11 with a life not expired with father 10 T10 is programmed. The first tool found with a life not expired will be mounted and that is tool 11. The variables WORD#1 and WORD#2 are two words (RAM,16) available to contain some additional information relative to the tool. In the same way two variables in floating point format (RAM,32) named FLOAT#1 and FLOAT#2, are available.
2-23
Series S3000
2. Dedicated internal modules
Signals and registers summary 16 NC PLC no UTENRI UTNUM() UTPOS() UTCAP() UTDIM() 16 16 16 8 NC NC NC NC
no no no no
UTSPC()
NC
PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC
no
UTPLKO() 8 UTVTKO() 8 UTVITA() UTVTRE() UTVTMI() UTWD1() UTWD2() UTFP1() UTFP2() UTEFRE 64 64 64 16 16 32 32 16
NC
no
NC
no
NC NC NC NC NC NC NC NC NC NC
no no no no no no no no no no
MAGNPO 16 MAGCUA() 16
Line number in the tool, maximum number of vector elements representing the columns in the tool table. Tool codes in the table (1 .. UTENRI). Tool storage location (1 .. UTENRI). Tool farthers (1 .. UTENRI). Tool types (1 .. UTENRI), dove: 0 = small 1 = medium 2 = large 3 = extra Special tools (1 .. UTENRI) where: 0 = normal tool not 0 = special tool Excluded tools (1 .. UTENRI) where: 0 = tools not excluded not 0 = tool excluded Life expired (1 .. UTENRI) where: 0 = life not expired not 0 = life expired MAX tool life (1 .. UTENRI) in 1/100 of a second. Remaining tool life (1 .. UTENRI) in 1/100 of a second. Minimum tool life (1 .. UTENRI) in 1/100 of a second. WORD#1 - variable 1 for application (1..UTENRI). WORD#2 - variable 2 for application (1..UTENRI). FLOAT#1 - variable 1 (floating point) for application (1 .. UTENRI). FLOAT#2 - variable 2 (floating point) for application (1 .. UTENRI). Number of entries still available in tempory memory for updating tool tables. Number of tool storage locations configured in the parameters. Array representing tool storage image (0 .. MAGNPO).
READING AND WRITING OF RADIUS AND LENGTH CORRECTORS The PLC can have read and write access to the fields that relate to length and radius correction in the tool table using the variables listed below; the mode of access is the same that used for the other tool table access variables. Each element of the arrays corresponds to a line of the tool table. The number of elements in each vector depends on dimensions of the tool table. Name CORR_Z() CORR_R() CORR_X() Size 32 32 32 Direction NC PLC NC PLC NC PLC Description correction of length of tool on spindle axis (or longitudinal for lathes) tool radius correction tool diameter correction (for lathes only)
2-24
Series S3000
3. Adapting a PLC program from S1200 to S3000
[********** DECLARE VARIABLES ************ RAM,32 [variables LEPOTE [reading potentiometer POSX [absolute position X COMPX [temperature compensation X VELX [Convert X axis VEMA [spindle speed RAM,8 NUMUT [numeric variable for ASC() instruction
INIT PROG
[**********DECLARE VARIABLES ************ [Substitute RAM with SRAM as the first is no longer retained in memory after switch off SRAM,32 [variables LEPOTE [reading potentiometer POSX [absolute position X COMPX [temperature compensation X VELX [Convert X axis VEMA [spindle speed SRAM,8 NUMUT [numeric variable for MKN$() instruction SRAM,1 [the selection softkeys selecting the electronic hand wheel resolution were eliminated, but the PLC can choose one of the pre-defined steps in the configuration data with the use of the variable STEP SOFTK P01,L01, .1 mm/ rev P02,L02, .5 mm/rev P03,L03, 5 mm/rev P04,L04, 10 mm/rev P05,L05, reference axes INIT PROG
3-1
Series S3000
3. Adapting a PLC program from S1200 to S3000
[******** POTENTIOMETER MANAGEMENT ************ POTER =1 [potentiometer management LEPOTE=LAD(POMA) [reading pot. Input manual [and format conversation POMO=SDA(LEPOTE) [writing value for NC format [conversion POFO=SDA(LEPOTE)
[******POTENTIOMETER MANAGEMENT ****** [The control is always by the PLC, the variable POTTER has been eliminated. [It is necessary to eliminate the functions LAD() and SDA(): the variables relative to analog input/output are already in floating point. [The variables POFE, POMA, POSP have been substituted with ANI(1), ANI(2), ANI(3). [For manual mode a potentiometer for each axis is present LEPOTE=ANI(1) POMO(1)=LEPOTE POMO(2)=LEPOTE POMO(3)=LEPOTE POFO=LEPOTE [******AXES POSITION READING AND ORIGIN SHIFT ******* [It is necessary to eliminate the functions LRQ() and SRQ(): the variables relative to analog input/outut are already in floating point. POSX= POA(1) [read X axis SHIFT(1)=COMPX [compensate X axis [****DECODING FUNCTIONS ***** [Change the syntax of the instruction COM, 1, name program IF(AUXM=6) COM, 1, CAMBUT; RTS [On SSA it is necessary to write axes configuration in M11 IF(AUXM=11) SSA=11111111B; RTS [Axes always active IF(AUXM=10) SSA=00000000B; RTS [Axes locked [******ENABLE MANAGEMENT ******* [Sostituire MOVE con MOVCN e fornire la cofiguraz. assi abilitati su [RDMOV ABX=MOVCN(1) [enable X RDMOV=MOVCN [axes enabled [******SPINDLE MANAGEMENT ******* [Not changeable by simple substitutions, see relative paragraph. [******TOOL CHANGE MANAGEMENT ******* [Not changeable by simple substitutions, see relative paragraph.
[*** AXES POSITION READING AND ORIGIN SHIFT******* POSX=LRQ(POA(1)) [read X axis SHIFT(1)=SRQ(COMPX) [compensate X axis
[ **** DECODING FUNCTIONS ***** [syntax of instruction COM, 1, LABEL IF(AUXM=6) COM, 1, L1 RTS
[****** SPINDLE MANAGEMENT ******* [Entirely implemented by the PLC [****** TOOL CHANGE MANAGEMENT ******* [Entirely implemented by the PLC
[****** BREAK ACQUISITION ******* [On Break M30 is issued IF(AUXM=30) CALL M30
[******BREAK ACQUISITION ******** [On Break M30 is not issued. [The BRKA condition is set: then the break routine must be called IF(AUXM=30) CALL M30 [ M30 call routine IF(BRKA) CALL M30 [ BREAK call routine [*****MACHINE READY MANAGEMENT ******* [The MAPR has been split into two meanings DHOLD=IMAPR [data hold FHOLD=IMAPR [feed hold (axes) [****MESSAGE DISPLAY ******* [Change the DISPL instruction syntax, line, variable DISPL,1,MSG1 [display MSG [substitute the function ASC() with MKN$() MSG1= MKN$(NUMUT) [****WRITE ANALOG OUTPUT ** [Eliminate OEDA() functions and format conversion DAA(1)=VELX [Convert axis X DASP= VEMA [spindle speed
[***** MACHINE READY MANAGEMENT ******* MAPR=IMAPR [program and axes stop
[**** MESSAGE DISPLAY ******* [DISPL, instruction syntax, line (variable) DISPL,1(MSG1) [display MSG1 [Conversion from number to string MSG1= ASC(NUMUT) [**** WRITE ANALOG OUTPUT ** OEDA(1)=1 [enable writing DAA X DAA(1)=SDA(VELX) [Convert axis X DASP= SDA(VEMA) [spindle speed
3-2
Series S3000
3. Adapting a PLC program from S1200 to S3000
[**** MANUAL JOG ********** [To select the JOG movement in manual it is necessary to set the MOVMA register MOVMA = JOGP ~ JOGM [****REFERENCING AXES ********** [The state of RICERCA 0 (NCMD=6) no longer exists in the NC, alternativly it is necessary to enter the axis configuration (with or without home switch) then reference the axis using the variable MARK (no home switch) or MICZE (with home switch). [For example it is possible to create a softkey with the PLC (P05,L05) L05=FF(P05),((NCMD<>5)~(MIZEA=7)) [softk lamp IF(L05) MICZE= 11111111B; ELSE MICZE=0 [with switch or IF(L05) MARK= 11111111B; ELSE MARK=0 [on marker [****SWITCH MANAGEMENT ********** [The choice of steps must be managed by the PLC to be able to eventually utilize a remote console. IF(P01) L01=1; L02=0; L03=0; L04=0 IF(P02) L02=1; L01=0; L03=0; L04=0 IF(P03) L03=1; L02=0; L01=0; L04=0 IF(P04) L04=1; L02=0; L03=0; L01=0 IF(L01) STEP=1 [selection of first step (predifined) IF(L02) STEP=2 [selection of second step (predifined) IF(L03) STEP=3 [selection of third step (predifined) IF(L04) STEP=4 [selection of fourth step (predifined) END
[**** REFERENCING AXES ********** [Management not remote from NC IF(NCMD=6) ...
END
3-3
Series S3000
3. Adapting a PLC program from S1200 to S3000
3-4
Series S3000
4. Summary of predefined signals and registers
Note: Writing to PLC read-only variables with the direction from the NC to the PLC and not vice versa, can have unpredictable consequences. A brief Description in the corresponding column.
The units of measure used are the following: - for measurement of heights, distances, adjustment settings - for rotating dimensions - for timing - for speed: - for acceleration: - for spindle speed - for voltage The symbols used are the following: mm degrees msec, sec or min mm/min mm/(sec) revolutions/min V
4-1
Series S3000
4. Summary of predefined signals and registers
The character () after the name of a register indicates there is a multi-element vector in the specified format (for example, UTNUM(), while MOVCN is a single register). Whenever the symbol (1..n) appears following a listed item, the register or the vector must be interpreted by individually analyzing the elements from (1 to n). In order to determine a single register whose bits are described, it must be kept in mind that: The dimension of vector elements is greater than 1. When single register bits are described, these descriptions are generally preceded by the description of the register itself, which will be indicated without parentheses.
Example:
Name Dim Direction Sync Description
NC NC NC NC NC NC
Request axes enable (1..8). (first bit of the byte) request for axis 1 (eighth bit of the byte) request for axis 8 Code of tool in table (1 ... UTENRI), where UTENRI represents the number of lines in the tool table. (first element of the word vector) the tool code present in line 1 of the tool table. (eighth element of the word vector) the tool code present in line 8 of the tool table.
Note: For optimal legibility the above column headings are not reprinted above the tables shown throughout this text. please note that the information is consistently listed according to the column headings in the table above.
4-2
Series S3000
4. Summary of predefined signals and registers
PLC no
STBMD FNCMD
1 8
NC NC
PLC no PLC no
NC status code: 1 = position coordinates 2 = single block 3 = semi automatic program execution 4 = automatic program execution 5 = manual mode 8 = return to profile 9 = manual mode active during hold status Strobe pulse signaling changes in NC status pulse duration is equal to one complete slow logic scan. NC forcing register in semi automatic program execution
PLC yes
Signals the presence of new synchronous data for the machine logic. It is set by the NC and most important must be reset by the PLC as soon as the information is acquired.
Synchronous auxiliary and preparatory functions AUXM STROM TOOL STROT AUXH STROH SPEED STROS STCOM FEED AUXG CICFI AXPGM AUXVAL() 16 1 16 1 16 1 32 1 1 64 16 16 8 64 NC NC NC NC NC NC NC NC NC NC NC NC NC NC
PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC
yes yes yes yes yes yes yes yes yes no no no yes
PLC yes
STRAUX
NC
PLC yes
1 1 8
NC NC NC
Last programmed M function (M0-M9999). Strobe indicating presence of M function. Last programmed T function (T0-T32767). Strobe indicating presence of T function. Last programmed H function (H0-H9999). Strobe indicating presence of H function. Last programmed S function (S0-S99999). Strobe indicating presence of S function. Strobe signaling the end of a COM subprogram. Last feed programmed. Last programmed G function (G0-G9999). Fixed cycle in progress. Axes programmed in the block along with the auxiliary function (e.g. M11XYZ generates AXPGM=00000111B). Array for transmitting the parameters I, J, K, Q along with the auxiliary functions M, H. AUXVAL(1) = parameter I AUXVAL(2) = parameter J AUXVAL(3) = parameter K AUXVAL(4) = parameter Q Strobe for parameters I, J, K, Q. STRAUX(1) = strobe I STRAUX(2) = strobe J STRAUX(3) = strobe K STRAUX(4) = strobe Q Activation of an asynchronous COM requested. Synchronization strobe for running of the COM requested with RCOM. Asynchronous COM activation requests for the single axis groups (1..8).
4-3
Series S3000
4. Summary of predefined signals and registers
STRCO_
NC
PLC
Synchronization strobe for running of the COM requested with with RCOM_ for the single axis groups (1..8).
PLC no
FHOLD RHOLD HOLDA CYST SFKGRD SFKCNS CYON REME EMEA RBRK BRKA
1 1 1 1 8 8 1 1 1 1 1
NC NC NC NC NC NC NC NC NC NC NC
PLC no
Temporary stop of the program run beginning with the first subsequent block that contains a stop point in the continuous movement (typically an auxiliary function), without interruption of the activity in progress. Temporary stop of feed. External HOLD request. Temporary stop of programmed moves and blocks in execution. Axes in Hold state. External CYCLE START request. Guard Pulsing signals pushing CYCLE START (SFKCNS(1)), HOLD (SFKCNS(2)), BREAK (SFKCNS(3)) Cycle in execution. External EMERGENCY request. NC in emergency alarm state or external emergency request. External BREAK request. Interruption of the program or block in execution. Cancel emergency state. Command to BREAK from PLC.
Part origins and Tool length compensation OFST INTOF ORIG INORG BYORG ABSOR STORG_ PLORG() 16 1 16 1 1 1 8 NC NC NC NC NC NC NC
PLC no PLC
NC
PLC
Code of the length compensation to be activated. Strobe to signal the NC to activate the selected tool length compensation. Code of the part origin to be activated. Strobe to signal the NC to activate the selected part origin. Temporary cancellation of origins and tool settings (absolute origin). Absolute origin active signal. Register of the additional origin offset activation. STORG_(1) = 1 activates the offsets (for all the axes) STORG_(1) = 0 de-activates the offsets Registers containing the additional origin offsets
Enabling and disabling axes MOVCN RDMOV POFO 8 8 64 NC NC NC PLC no PLC no PLC no Axis enable request (1..8). Axis ready to move; response to MOVCN (1..8). Override value on the programmed feed (from 0 to 2 gives an adjustment between 0 and 200 per cent).
PLC no
4-4
Series S3000
4. Summary of predefined signals and registers
PLC no
Manual JOG MOVMA JOGP JOGM POMO() 8 8 8 64 NC NC NC NC PLC PLC PLC PLC no no no no Axes selected for manual movement (1..8). Command jog positive (1..8). Command jog negative (1..8). Velocity for manual movements and reference for each single axis (1..8) (from 0 to 1 as a percentage of the rapid velocity).
PLC no PLC no
One per handwheel (1..3) to indicate the number of the axis to be controlled. Selection of the handwheel resolution from the 8 values defined in the configuration parameters.
no no no no
Axis selected for reference with home switch (1..8). Axis selected for reference without home switch (1..8). Home switch for axis (1..8). Axes referred to the electrical zero of transducer (1..8).
Manual movement and homing during program execution FOMAN 8 NC PLC yes Axes on which to force manual control (1..8).
Axis information
For axis control
64 64 64 64 64 64
NC NC NC NC NC NC
no no no no no no
64 64 64 64 64
NC NC NC NC NC
64 64
NC NC
PLC no PLC
Axis following error (1..8). Actual velocity along the tool path. Axis velocity (1..8) . Instantaneous velocity axes (1..8). Instantaneous acceleration axes (1..8). Reference voltage for controlled axes (1..8). The DAA can only be read If the axis is active and under NC control. The content varies from -1 to 1 in relation to the input voltage of -10 and +10 V. Absolute position of axes (1..8). Axis position referred to the current origin and active tool compensation (1..8). Instantaneous calculated axis position along the trajectory of interpolation (1..8) relative to the absolute origin. Instantaneous calculated axis position along the trajectory of interpolation (1..8) relative to the active origin. Instantaneous calculated position of any rotary translation of system coordinates along the trajectory of interpolation (1..8) relative to the active origin. Final programmed axis position (1..8). Speed command sent to the axes (1..8) [mm/min]
4-5
Series S3000
4. Summary of predefined signals and registers
64 64 64 8
NC NC NC NC
Additional speed offset for the axes (1..8) [mm/min]. (also impacts AXRIF() - use only for special applications) 2 Acceleration command imparted to the axes (1..8) [mm/sec ] Offsets (1..8) of the origin with G851 (in mm). Number of the axis group that the display refers to.
8 8 1
NC NC NC
Axis (1..8) within in position zone defined in the parameters. Axis (1..8) moving following a JOG command (manual or referencing). Blocks being executed in rapid.
Control of transducers and electronic handwheels MKSAX 8 NC PLC no Marker pulse signal (electrical zero) for encoders or optical scales for axes (1..8). Set by the NC when received from the transducer and reset by the subsequent system sampling; for this reason the pulse is only seen by using the graphic analyzer . Signal level from analog transducers (INDUCTOSYN or RESOLVER); in the case of an ENCODER it is the number of lost pulses determined by the "recover step" function for the axes (1..8). Distance per rev of the handwheel (1..3) according to the selected resolution. The distance accumulated is reset by changes of NC status and axis status (SSA, DSERV, ...)
AIRGP()
64
NC
PLC no
SPMANO() 64
NC
PLC no
PLC no
Offset for controlled axes OFSDA() 64 NC PLC no Offset applied to reference voltage on controlled axes (1..8) in the range 1 for a reference voltage of 10 Volt.
PLC no PLC
Control byte of contact probe (on/off): Bit 1: disables error 210 (collision) Status of the contact measurement probe ON/OFF. SWDTF(2) = 0 probe at rest = 1 probe deflected
no no no no no
Axis (1..8) on positive software limit. Axis (1..8) on negative software limit. Axis (1..8) disable positive software limit. Axis (1..8) disable negative software limit. Secondary limits array activation
4-6
Series S3000
4. Summary of predefined signals and registers
CWFCS
NC
PLC
Control of software limit errors. CWFCS(1) = 1 E93 error report disabled CWFCS (1) = 0 E93 error report enabled
PLC no
Enable nominal offset gantry a (1..8) .It must be set the bit xis corresponding to the SLAVE axis number
Programmed positions for axes moved by the PLC (1..6). Strobe when new information is present on AUXPF() (1..6).
Reading and writing analog inputs and outputs ANIx() VELOx() 64 NC PLC no Analog input readings from the I/OMIX card specified and its expansions. The value read varies from 0 and 1 as a percentage of the full-range value.. Analog output from the I/OMIX card specified and its expansions. These outputs can always be read, but written only if they are not utilized by the NC for the controlled axes or by the internal modules for management of the spindles or independent axes. The content can vary from -1 to 1 as a percentage of the fullrange value (+/- 10 V). Degrees of temperature read by the thermal probes (if the interface is present) associated with the specified card.
64
NC
PLC no
TEMPx()
64
NC
PLC no
Data exchange between PLC and part program LFL STVFL VPLWO STVWO VPLBY STVBY VPLBI STVBI VLPFL VLPWO VLPBY VLPBI PNC() P() 32 1 16 1 8 1 1 1 32 16 8 1 32 32 NC NC NC NC NC NC NC NC NC NC NC NC NC NC
PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC yes PLC no PLC
no
FLOATING variable from part program to PLC. FLOATING variable strobe from part program to PLC. WORD variable from part program to PLC. WORD variable strobe from part program to PLC. BYTE variable from part program to PLC. BYTE variable strobe from part program to PLC. BIT variable from part program to PLC. BIT variable strobe from part program to PLC. FLOATING variable sent to the part program from the PLC. WORD variable sent to the part program from the PLC. BYTE variable sent to the part program from the PLC. BIT variable sent to the part program from the PLC. 99 parameters in shared floating point format read and written to by both PLC and part program at the user level (1..99). 99 parameters in shared floating point format written to by the PLC or the subprogram COM instructions (1..99).
PLC no
NC
PLC no
Registers for NC video display areas (1..16) in the floating long or double point formats. The display of these areas is enabled by default values in the video tables. Registers for NC video character display in the preset areas (1..16). The ASCII character code must be used.
4-7
Series S3000
4. Summary of predefined signals and registers
WNDINT()
16
NC NC NC
Registers for NC video character display in the preset areas(1..16) in word format. String registers containing a Max of 64 alphanumeric characters for the NC video display in the preset area (1..16). Register for the display of the S function value in the preset area of the NC video. Current PLC softkey menu. Active language code on NC Array to use for conditionings within video tables (1..64) Number of the active video panel
8 16 16 16
NC NC NC NC
no no no
System date and time DATE(1) DATE(2) DATE(3) DATE(4) DATE(5) DATE(6) 16 16 16 16 16 16 NC NC NC NC NC NC PLC PLC PLC PLC PLC PLC no no no no no no Year (last two digits) Month Day Hour (0-24) Minutes Seconds
PLC PLC
no no
First byte for remote copying commands =0 selects continuous digitization mode, data points are memorized as a function of the parameters of the manual copy program. =1 selects the digitization mode, data points are memorized only following an pulse (transition from 0 to 1) on the bit COPIA(2) in manual copy. Digitizing signal see COPIA(1). Active copying cycle signal. When reset by PLC it signifies the end of the cycle. It is important to terminate a digitizing cycle by zeroing out this bit (or with the appropriate softkey if already implemented in the NC) otherwise the last points digitized will not be memorized. Signal to STEP (increment) +. Signal to STEP (increment) -. Signal to STEP (increment) and reverse copy direction. Active copy. Not assigned
COPIA(2) COPIA(3)
1 1
NC NC
PLC PLC
no no
COPIA(4) COPIA(5) COPIA(6) COPIA(7) COPIA(8) COPIA2 COPIA2(1) COPIA2(2) COPIA2(3) COPIA2(4) COPIA2(5)
1 1 1 1 1
NC NC NC NC
no no no no
8 1 1 1 1 1
NC NC NC NC NC NC
PLC
no
Second byte for remote control of copy function. passage in manual status. 0 = digitizing disabled. 1 = digitizing enabled. Probe offset acquired. 1 = copying axis 1 locked. 0 = unlocked. 1 = copying axis 2 locked. 0 = unlocked
4-8
Series S3000
4. Summary of predefined signals and registers
COPIA2(6) COPIA2(7) COPIA2(8) COPIA3 COPIA3(1) COPIA3(2) COPIA3(3) COPIA3(4) COPIA3(5) COPIA3(6) COPIA3(7) COPIA3(8) COPIA4 COPIA4(1) COPIA4(2) COPIA4(3) COPIA4(4) COPIA4(5) COPIA4(6) COPIA4(7) COPIA4(8) PBSTS POCOP COPIA
1 1 1
NC NC NC
1 = copying axis 3 locked. 0 = unlocked Reversal of copy direction. 0 = auto acquire surface disabled. 1 = auto acquire surface enabled. Third byte for remote copying commands. Restart copying in the negative direction after loss of contact with the model axis 3. Restart copying in the negative direction after loss of contact with the model axis 2. Restart copying in the negative direction after loss of contact with the model axis 1. Restart copying in the positive direction after loss of contact with the model axis 3. Restart copying in the positive direction after loss of contact with the model axis 2. Restart copying in the positive direction after loss of contact with the model axis 1. Reserved. Reserved.
8 1 1 1 1 1 1 1 1
NC NC NC NC NC NC NC NC NC
PLC
no
8 1
NC NC
PLC
no
Fourth byte for remote control of copying functions. Temporary stop after renewed contact with model. Reserved Reserved Reserved Reserved Reserved Reserved Reserved Register of digital probe status Manual copying gain control. The value can vary from 0 to 1 and multiplies the gain of the control in copying from 1 to 5, varying the velocity of the axes with the deflection of the probe. First byte for remote management of the copying commands COPIA(8) = 1 Signal that a copying cycle is being executed in Manual mode
PLC no
8 64
NC NC
PLC no PLC no
NC
PLC
Variables to verify system execution times SMPTI OCCV OCCI OCCT OCCP2P CCL CCUL 64 16 16 16 16 16 16 NC NC NC NC NC NC NC
no no no no no no no
Sample time (controlled axes) [msec] Fast logic scan time (microseconds). Time used in managing the controlled axes (microseconds). Time used by the graphic analyzer (microseconds). Time used in managing the independent axes (microseconds). Slow logic interrupt cycle counter. Super slow logic interrupt cycle counter.
4-9
Series S3000
4. Summary of predefined signals and registers
Error signals accessed by logic ERSYS ERAXS ERIOX ERINT ERPLC ERSPN ERP2P ERCU ER2LN ERCPY FPERMK 16 NC
PLC no
16 16 16 16 16 16 16 16 16 8
NC NC NC NC NC NC NC NC NC NC
System error code read on the controlled axes, spindles, independent axes, PLC runtime errors, errors in the automatic tool change module, System error code read on the controlled axes (slave error, outside tolerance, transducer errors, etc.). Error code read on the I/OMIX cards (encoder feedback failure, digital output error, etc.) Error code occurring during the interpolation calculations. Runtime error code read during the execution of the PLC program (division by 0, overflow, underflow, etc.). Error code read on the spindles (transducers, etc.) Error code read on the independent axes (transducers, etc.) Error code read during tool change or incorrect tool tables, etc. Error code caused by exceeding system sampling time. Error code read during a copying cycle or touch probe sensor. Disabling mask that senses errors on floating point calculations (division by zero, overflow).
no no no
Number of the axis whose parameters are to be modified. Current value in the system configuration parameters. Configuration parameter code to access through the PLC ( the parameters operate on a non static copy in memory); the new values are entered only when the axis final velocity = 0: Code written -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 Parameter Rapid velocity Machining acceleration Rapid acceleration transducer axis backlash KV gain Dynamic compensation Crossover recovery rate Crossover recovery time Maximum servo error Frict. comp. rate Acceleration error offset Negat. travel limit 1 Posit. travel limit 1 Transducer pitch Integral time constant Integral gain Code read 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
ACTSTP
NC
PLC
no
4-10
Series S3000
4. Summary of predefined signals and registers
INCH
NC
PLC
no
Kind of measure 0 = millimeters 1 = inches The NC sets this variable according to the related parameter stored in the system configuration area PLC can overwrite this variable to change the kind of measure but the new value will not be saved permanentlyin the system configuration parameter area
Various _ENIDX 8 NC
PLC
activates/de-activates the diagnostic that checks validity of the indices for access to the individual variables and the vectors. _ENIDX = -1 diagnostic on _ENIDX = 0 diagnostic off (default)
no no no no no no no no
Speed spindle(s)(1..4). Override potentiometer spindle(s)(1..4). Rotation direction spindle(s) (1..4). Command spindle(s) (1..4). Spindle(s) (1..4) up to speed. Spindle(s) (1..4) in motion. Spindle(s) (1..4) ramp up to speed. Effective speed within threshold spindle(s) (1..4).
Range change selection SPGAM() SPPND SPSMG1() SPSMG2() SPSMG3() SPSMG4() SPSMAX() 8 8 64 64 64 64 64 NC NC NC NC NC NC NC PLC PLC PLC PLC PLC PLC PLC no no no no no no no Range selected (0 = neutral) spindle(s) (1..4). Hunting command for range change spindle(s) (1..4). Maximum speed for range 1 spindle(s) (1..4). Maximum speed for range 2 spindle(s) (1..4). Maximum speed for range 3 spindle(s) (1..4). Maximum speed for range 2 spindle(s) (1..4). Maximum speed for spindle(s) (1..4).
Spindle orient SPORI() SPTOL SPPOS() SPVEOR() SPOAB SPORP SPORM 8 8 64 64 8 8 8 NC NC NC NC NC NC NC PLC PLC PLC PLC PLC PLC PLC no no no no no no no Orient command spindle(s) (1..4). Oriented within tolerance spindle(s) (1..4). Orient position spindle(s) (1..4). Speed reduction (from 0 to 1) during orientation spindle(s) (1..4). Orientation using absolute values spindle(s) (1..4). Unidirectional positive orientation. Unidirectional negative orientation.
4-11
Series S3000
4. Summary of predefined signals and registers
8 8 64 64 8
NC NC NC NC NC
no no no no no
Synchronism command to slave spindle. Master spindle numbers for synchronism with slave. Offset between master spindle and slave. Speed ratio for sync. between master spindle and slave(s). Slave spindle(s) (1..4) synchronized with master.
Common to all operations SPMOV SPDIS SPDRQ SPTCH() PASP() SPMZA SPMKS SPAGP() SPRIF() 8 8 8 64 64 8 8 8 64 NC NC NC NC NC NC NC NC NC
no no no no no no
Request to move spindle(s) (1..4). General disable command spindle(s) (1..4). Disable transducer spindle(s) (1..4). Effective speed spindle(s) (1..4). Angular position from transducer(s) (1..4). Transducer(s) referenced to electrical zero. Can be reset to repeat the zero search. Encoder(s) marker pulse spindle(s) (1..4). Transducer level or pulses lost and recovered for the spindles (1..4). Speed command sent to the spindles (1..4) [revs/min] can be used to check the acceleration/deceleration ramps by comparing SPRIF with SPTCH (actual speed) for spindles with transducer.
PLC no
Independent axis movement module MOVP2P RDMP2P SSAP2P DSVP2P DRQP2P MVMP2P MRKP2P MCZP2P MIZP2P MZAP2P POTP2P() JGPP2P JGMP2P PFNP2P() RUNP2P 8 8 8 8 8 8 8 8 8 8 64 NC NC NC NC NC NC NC NC NC NC NC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC no no no no no no no no no no Request to enable movement axes (1..8). Movement enabled axes (1..8); response to MOVP2P. Axes that must be enabled at all times (1..8). Axes to be freed (1..8). Command to disable the transducers on axes (1..8). Axes that may be selected in manual mode (1..8). Axes selected to be homed without reference switch (1..8). Axes selected to be homed with reference switch (1..8). Reference microswitch for axes (1..8). Axes referred to transducer zero then repositioned after homing (1..8). Speed regulation potentiometer for axes (1..8). From 0 to 100 percent of the speed if in automatic, or of the acceleration, if in manual. Command JOG positive axes (1..8). Command JOG negative axes (1..8). Automatically move to programmed position axes (1..8). Positioning commands in automatic for axes, (1-8). They must be set by the PLC to command the movement to the set position; they are reset by the NC when the axis, having ended the movement, enters the in position threshold set in configuration data.
PLC no
8 8 64 8
NC NC NC NC
no no no no
4-12
Series S3000
4. Summary of predefined signals and registers
NC
PLC no
NC
PLC no
NC
PLC
no
BKAP2P REMP2P EMAP2P POAP2P() TCHP2P() SGLP2P MKSP2P FCPP2P FCMP2P VATP2P()
8 8 8 64 64 8 8 8 8 64
NC NC NC NC NC NC NC NC NC NC
PLC
no
JINP2P DIRP2P FEDP2P() RAPP2P() VLNP2P() ZLNP2P() DEXP2P() ACMP2P() ACCP2P() DECP2P() DE2P2P() TOLP2P() OFSP2P() SHIP2P()
8 8
NC NC
PLC no PLC no
HOLD request, axes (1..8). Temporary hold of movement; the operation continues without further commands as soon as axes are released. HOLD request, axes (1..8). Temporary hold of movement; the operation continues without further commands as soon as axes are released. BREAK request on movements in automatic, axes (1..8). RBKP2P is reset by the NC when acquired. The axes are decelerated to a stop, and the RUNP2P is reset. In emergency state (EMAP2P) it is used to cancel the emergency but only if the request has been removed (REMP2P). Axes not in motion following a RBKP2P command (1..8); they can be reset by the PLC, but this is not binding. Request to go to an emergency state axes (1..8). Axes in emergency state. Going in to this state, the axes are disabled immediately without a controlled deceleration (1..8). Absolute position read from transducer axes (1..8). Effective speed (from transducer) axes (1..8). Axes within positioning tolerance set in the configuration (1..8). Marker pulse ( electrical zero) for axes (1.8) with encoder or optical scales. Axes(1..8) where actual value results are greater than the positive travel limit set in the configuration. Axes(1..8) where actual value results are greater than the negative travel limit set in the configuration. Theoretical speed (computed) axes (1..8). If in the configuration data it is declared that the D/A converter is not present the reference in voltage will not be sent through the output channel, but the speed in this register is always available. Axes (1..8) in motion after a JOGP2P command. Axes (1..8) motion direction (revealed by the analog reference sign). The value 1 means negative speed. Feed speed, axes (1..8). Rapid speed, axes (1..8). Slow zone speed, axes (1..8). Slow zone distance, axes (1..8). Exponential deceleration distance, axes (1..8). Acceleration in manual, axes (1..8). Acceleration in automatic, axes (1..8). Deceleration from feed speed to slow speed, axes (1..8). Exponential deceleration from slow speed, axes (1..8). Positioning tolerance, axes (1..8). Transducer offset applied to the reading to obtain the absolute value POAP2P() (1..8). Origin shift for independent axes (1..8). Allows definition of a zero position different from the absolute zero. The final positions of PFNP2P() are always referred to POOP2P(). Independent axis position (1..8) affected by the origin shift SHIP2P().
64 64 64 64 64 64 64 64 64 64 64 64
NC NC NC NC NC NC NC NC NC NC NC NC
PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC
PLC
no no no no no no no no no no no
POOP2P()
64
NC
PLC
4-13
Series S3000
4. Summary of predefined signals and registers
PLC no
NC
no
16 1
NC NC
no no
1 16 16 16 1 1
NC NC NC NC NC NC
PLC no no no no no
PLC yes
16 16 16 1
NC NC NC NC
no no no no
NC
PLC no
1 8
NC NC
PLC
no
PLC no
ERCU
16
NC
PLC no
Tool number request to tool change module. UTECU = 0 is a particular code reserved for the return tool sequence from spindle to crib (or on the floor if no space is available). New Sequence activation command for TC. This signal is set by the PLC to activate the tool exchange module and it is reset by the TC as soon as it is acquired. Last TC code sequence undertaken. Strobe of new code presence on OPERCU. It is set by TC and must be reset by the PLC as soon as the new operation has been acquired. Machine ready for tool change: if equal to 0, the sequence will be suspended until released. Operation code requested by the TC from the PLC. New tool pick-up reaching position. Old tool return reaching position. TC generated signal when a new sequence initiates, reset by the PLC when the current sequence is considered terminated. (M6 programmed) must be synchronized with the BURDY by the PLC, it is reset by the TC when, the M06 wait operation is received and the NC sub-program (COM) has been run. In absence of this signal, the sequence stops on the phase (-6). An active M6PGM implicates an automatic suspension of the execution of NC blocks ! Number of tool in spindle (read only). Number of tool in intermediate station (read only). Number of tool in jaws (read only). Tool change in emergency state. This is set when the TC sequence is interrupted by a TC emergency request. The presence of this signal means that the tool information present in the table can not be justified with respect to the real situation. Operator intervention is necessary, any requests for new tool changes, NEWCU, are ignored.. TC emergency request. This command interrupts the TC current sequence and the running operation, putting the TC in an emergency state. Exit from the EMACU TC emergency state and a tool change sequence interruption request. Form selector. It must be arranged before the tool change module is activated it is acquired at the beginning of the sequence and can not be modified during the same. 0 = TC mode normal 1 = TC mode with crib excluded 2 = TC mode with storage programmed tool load 3 = TC mode with programmed tool lay down Error code displayed by the TC. At every operation the information relative to storage, tool table and configuration is verified. In case the information is not valid or in situations not foreseen or not manageable the TC interrupts the active sequence and communicates the error. In addition no TC sequence is operable if it is an error condition.
4-14
Series S3000
4. Summary of predefined signals and registers
PLC no no no no no
UTSPC() UTPLKO() UTVTKO() UTVITA() UTVTRE() UTVTMI() UTWD1() UTWD2() UTFP1() UTFP2() UTEFRE MAGNPO MAGCUA() UTRUN UTTIM UTSTS CUATYP
NC
PLC PLC PLC PLC PLC PLC PLC PLC PLC PLC
no
NC
no
NC
no
64 64 64 16 16 32 32 16 16 16 1 32 8
NC NC NC NC NC NC NC NC NC NC NC NC NC
no no no no no no no
16
NC
PLC
MAGGEO MAGTYP
16
NC
PLC
16
NC
PLC
MAGGST
16
NC
PLC
Line number in the tool, maximum number of vector elements representing the columns in the tool table. Tool codes in the table (1 .. UTENRI). Tool storage location (1 .. UTENRI). Tool fathers (1 .. UTENRI). Tool types (1 .. UTENRI) where: 0 = small 1 = medium 2 = large 3 = extra Special tools (1 .. UTENRI) where: 0 = normal tool not 0 = special tool Excluded tools (1 .. UTENRI) where: 0 = tools not excluded not 0 = tool excluded Life expired (1 .. UTENRI) where: 0 = life not expired not 0 = life expired MAX tool life (1 .. UTENRI) in 1/100 of a second. Remaining tool life (1 .. UTENRI) in 1/100 of a second. Minimum tool life (1 .. UTENRI) in 1/100 of a second. WORD#1 - variable 1 for application (1..UTENRI). WORD#2 - variable 2 for application (1..UTENRI). FLOAT#1 - variable 1 (floating point) for application (1 .. UTENRI). FLOAT#2 - variable 2 (floating point) for application (1 .. UTENRI). Number of entries still available in temporary memory for updating tool tables. Number of tool storage locations configured in the parameters. Array representing tool storage image (0 .. MAGNPO). Tool in spindle in machining phase: decrement RESIDUAL LIFE Value of the RESIDUAL LIFE counter of the tool in the spindle. Status register of tool in the spindle: UTSTS (1) = life finished UTSTS (2) = remaining life <= 0 Type of tool change selected 0 = manual 1 = manual S1200 2 = automatic Selected storage geometry 0 = chain 1 = planar Selected disposition of tools in storage 0 = fixed 1 = random 2 = fixed random Selected storage management 0 = synchronous 1 = asynchronous 2 = semiasynchronous
4-15
Series S3000
4. Summary of predefined signals and registers
4-16
Series S3000
5. Limits
5. LIMITS
The data shown summarizes the compiler limits to be used as a reference during program writing: Max length of program instructions (logic line) Max length program line (physical line) Max number of lines linked together with $ Max memory area for retentive variable about Max memory area for non retentive variables about Max number of fast timers Max number of slow timers Max number of counters Max number of pulses Max number of nested EXECs Max number of multiplexer Max number of GOTC branches Max number of GOTP branches Max length for microeditor softkey lines Max positive number representable in byte format Max negative number representable in byte format Max positive number representable in word format Max negative number representable in word format Max number representable in long format Min number representable in long format Max number representable in double format Min number representable in double format 500 characters 62 characters (+8 numbers) 24 physical lines 3 Kbytes 50 Kbytes 32 64 48 64 4 16 255 16 20 127 -128 32767 -32768 3.4 x 1038 1.2 x 10-38 1.8 x 10307 2.2 x 10-308
5-1
Series S3000
5. Limits
5-2
Series S3000
PART III
PROGRAMMING EXAMPLES
Series S3000
Series S3000
1. Programming examples
1-1
Series S3000
1. Programming examples
1-2
Series S3000
1. Programming examples
N77 [ ....SYNCHRONIZED with part program....... N78 [ .......... auxilliary function decode .......... N79 IF("BURDY)ASYNC N80 DHOLD=1; FHOLD=1 N81 IF(STROM) CALL GEFUM N82 BURDY=0 N83 ASINC:$ N84 [ N85 [.....ASYNCHRONOUS PART......... N86 [ ................ potentiometers ................... N87 POFO=ANI(1) [automatic feed N88 POMO(1)=ANI(2) [manual feed N89 POMO(2)=ANI(2) N90 POMO(3)=ANI(2) N91 [ N92 [..................spindle............................ N93 SPSSO(1)=ANI(3) [spindle override N94 SPVEL(1)=SPEED [spindle speed N95 SPROT(1)=ROTMA&"HOLDA [comand start and HOLD N96 UMAN=SPMOV(1) [enable spindle N97 [ N98 [..................... axis management...................... N99 UMOVE1=MOVCN(1) [enable move X N100 UMOVE2=MOVCN(2) [enable move Y N101 UMOVE3=MOVCN(3) [enable move Z N102 RDMOV=MOVCN [OK to move from NC N103 [ N104 [.........................jog......................... N105 [NOTE do not inhibit jog with NCMD=8 and NCMD=9 N106 [as it is necessary to to use manual to reposition on the part N107 [during HOLD state. N108 [softkey managment: in manual JOG+ and JOGN109 [ machine homing only JOG+ N110 L1=P1 N111 L2=P2&"L7 N112 L3=P3 N113 L4=P4&"L7 N114 L5=P5 N115 L6=P6&"L7 N116 [ N117 JOGP(1)=L1 [assigning JOG N118 JOGM(1)=L2 N119 JOGP(2)=L3 N120 JOGM(2)=L4 N121 JOGP(3)=L5 N122 JOGM(3)=L6 N123 MOVMA=JOGP~JOGM [select manual JOG mode N124 [ N125 [ .................handwheels ........................ N126 [softkey to select axis to be moved with the handwheel N127 IF(P21) L21="L21;L22=0;L23=0 N128 IF(P22) L22="L22;L23=0;L21=0 N129 IF(P23) L23="L23;L21=0;L22=0 N130 IF(L21) HWL(1)=1;L8=1 N131 IF(L22) HWL(1)=2;L8=1 N132 IF(L23) HWL(1)=3;L8=1 N133 IF("L21&"L22&"L23) HWL(1)=0;L8=0 N134 [softkey for assigning steps N135 IF(P24) L24=1;L25=0;L26=0;L27=0 N136 IF(P25) L24=0;L25=1;L26=0;L27=0 N137 IF(P26) L24=0;L25=0;L26=1;L27=0 N138 IF(P27) L24=0;L25=0;L26=0;L27=1 N139 IF(L24) STEP=1 N140 IF(L25) STEP=2 N141 IF(L26) STEP=3 N142 IF(L27) STEP=4 N143 [ N144 [...............machine homing...................... N145 IF(P7) L7="L7 [enable homing softkey N146 IF((SFKMEN<>1)~(NCMD<>5)~IREME~BRKA) L7=0 N147 [reference machine if micro switch present N148 MICZE(1)=L7 N149 MICZE(2)=L7 N150 MICZE(3)=L7 N151 MIZER(1)=IMZX N152 MIZER(2)=IMZY N153 MIZER(3)=IMZZ N154 [ N155 [....................general.............................
1-3
Series S3000
1. Programming examples
N156 FHOLD="IMAPR ~ SPRMP(1)&"RAPI ~ $ N157 (((NCMD<>5)&(MIZEA<>7))&CICL) [stop axes movement N158 DHOLD="IMAPR [data hold machine not ready N159 RHOLD=IHOLD [external hold request N60 REME=IREME [external emergency N161 CYST=ISTART [external start request N162 [ N163 ALARM=EMEA [NC in emergency state N164 [ N165 IF(BRKA~EMEA) CALL RESET [PLC functions reset from NC N166 [ N167 END N168 [********************** VERY SLOW SECTION ***************** N169 [............ display message and lamps ............... N170 IF((MIZEA<>7)&CICL) DISPL,0,MSG1; ELSE CLR,0 [m/c ref message N171 [ N172 LAHOLD=HOLDA [hold lamp N173 LACYON=CYON [program runing lamp N174 [ N175 WNDINT(2)=AUXH [H code display N176 GIRMI=INT(ABS(SPTCH(1))) [effective speed display N177 END N178 [ N179 [********************** ROUTINES SECTION******************* N180 [ N181 [ ........ decode M function........................... N182 GEFUM:$ N183 WNDINT(1)=AUXM [display M codes N184 IF (AUXM=3) ROTMA=1; SPDIR(1)=0; RTS [spindle CW N185 IF (AUXM=4) ROTMA=1; SPDIR(1)=1; RTS [spindle CCW N186 IF (AUXM=5) ROTMA=0; RTS [stop spindle N187 IF (AUXM=7) UREF=1; RTS [coolant on N188 IF (AUXM=9) UREF=0; RTS [axes clamped N190 IF (AUXM=11) SSA=00000111B; RTS [axes unclamped N191 IF (AUXM=13) ROTMA=1; SPDIR(1)=0; UREF=1; RTS [man.+ ref. N192 IF (AUXM=14) ROTMA=1; SPDIR(1)=1; UREF=1; RTS [man.+ ref. N193 IF (AUXM=30) CALL RESET; RTS [reset NC + PLC N194 RTS N195 [ N196 [............ reset routine............................. N197 RESET:$ N198 ROTMA=0 [stop spindle N199 UREF=0 [coolant off N200 SFKMEN=1 [return to main menu N201 WNDINT(1)=30 [display M30 N202 RTS N203 [........... end of program ................................
1-4
Series S3000
1. Programming examples
1-5
Series S3000
1. Programming examples
N76 N77 N78 N79 N80 N81 N82 N83 N84 N85 N86 N87 N88 N89 N90 N91 N92 N93 N94 N95 N96 N97 N98 N99 N100 N101 N102 N103 N104 N105 N106 N107 N108 N109 N110 N111 N112 N113 N114 N115 N116 N117 N118 N119 N120 N121 N122 N123 N124 N125 N126 N127 N128 N129 N130 N131 N132 N133 N134 N135 N136 N137 N138 N139 N140 N141 N142 N143 N144 N145 N146 N147 N148 N149 N150 N151 N152 N153 N154
RM42 [force range 2 GAM1 [range 1 request in memory GAM2 [range 2 request in memory CAUT [tool change active G84 [tapping cycle active [ STR MSG(32) [table 32 messages [ STIMER TIM06,TUM06,TDM06,TAM06,TWM06 [flash TC lamp TIM19,TUM19,TDM19,TAM19,TWM19 [spindle M19 TIMUON,TUMUON,TDMUON,TAMUON,TWMUON [aux on TISBX,TUSBX,TDSBX,TASBX,TWSBX [unlock X axis TISBY,TUSBY,TDSBY,TASBY,TWSBY [unlock Y axis TISBZ,TUSBZ,TDSBZ,TASBZ,TWSBZ [unlock Z axis TIBLX,TUBLX,TDBLX,TABLX,TWBLX [lock X axis TIBLY,TUBLY,TDBLY,TABLY,TWBLY [lock Y axis TIBLZ,TUBLZ,TDBLZ,TABLZ,TWBLZ [lock Z axis TLUBI,TLUBU,TLUBD,TLUBA,TLUBW [axes lube [ SOFTK,1 P1,L1,1,JOG AXIS X+ P2,L2,1,JOG AXIS X- P3,L3,1,JOG AXIS Y+ P4,L4,1,JOG AXIS Y- P5,L5,1,JOG AXIS Z+ P6,L6,1,JOG AXIS Z- P7,L7, REFERENCE AXES P8,L8,HANDWHEELS,2 SOFTK,2 P21,L21,HANDWHEEL X P22,L22,HANDWHEEL Y P23,L23,HANDWHEEL Z P24,L24, 0.4 mm per rev P25,L25, 1 mm per rev P26,L26, 5 mm per rev P27,L27, P28,L28,JOG AXES,1 [ INIT [***************** INITIALIZATION SECTION **************** L24=1 [default handwheel resolution [ NMAX=32 [define max number of messages MSG(1)= AUXILIARY DISCONNECTED MSG(2)= HOME THE AXES MSG(3)= - to start automatic cycle first JOG Z+ MSG(4)= SPINDLE NOT READY MSG(5)= GEAR CHANGE ACTIVE MSG(6)= AXES FUNCTION FAULT MSG(7)= SPINDLE FUNCTION FAULT MSG(8)= LOW OIL LEVEL MSG(9)= LOW COOLANT LEVEL MSG(10)=TERMICI SCATTATI MSG(11)=AXES IN OTHER FUNCTION MSG(12)=MANUAL TOOL CHANGE MSG(13)=WAIT FOR CLAMPING / UNCLAMPING AXES [... MSG(32)=MESSAGE32' [ PROG [****************** FAST SECTION ************************* END [***************** SLOW SECTION *************************** [SYNCHRONOUS PART [ IF(BURDY)ASINC DHOLD=1; FHOLD=1 IF(STROT)CALL GEFUT IF(STROM)CALL GEFUM BURDY=0 ASINC: $ [ [...............ASYNCHRONOUS PART.......................... [........... axes potentiometer managment................... POFO=ANI(1) [automatic POMO(1)=ANI(2) [manual X POMO(2)=ANI(2) [manual Y
1-6
Series S3000
1. Programming examples
N155 N156 N157 N158 N159 N160 N161 N162 N163 N164 N165 N166 N167 N168 N169 N170 N171 N172 N173 N174 N175 N176 N177 N178 N179 N180 N181 N182 N183 N184 N185 N186 N187 N188 N189 N190 N191 N192 N193 N194 N195 N196 N197 N198 N199 N200 N201 N202 N203 N204 N205 N206 N207 N208 N209 N210 N211 N212 N213 N214 N215 N216 N217 N218 N219 N220 N221 N222 N223 N224 N225 N226 N227 N228 N229 N230 N231 N232 N233
POMO(3)=ANI(2) [manual Z [ [........... manual spindle control ................. IF (NCMD<>5) SPAUTO IF (IMAMAO) CALL M03 IF (IMAMAA) CALL M04 IF (ISTOPM) CALL M05 SPAUTO:$ [ G84=(CICFI=84) [fixed cycle G84 active [spindle speed override [Automatic 70% - 130% [Tapping 100% [Manual 0% - 100% IF (NCMD=5) SPVEL(1)=SPSMAX; SPSSO(1)=ANI(3); NOVEMA SPVEL(1)=SPEED IF(G84) SPSSO(1)=1; $ ELSE SPSSO(1)=0.7 + ANI(3)*0.6 NOVEMA:$ [ [select rotation and HOLD SPROT(1)=(RORMA~RANMA)&HOLDA [select rotation SPDIR(1)=RORMA&RANMA [direction of rotation UMAN=SPMOV(1)&IMUON [enable spindle move [ [...............spindle orient................... TIM19(10)=SPTOL(1)&SPORI(1) [timer for end of orient IF(TUM19) SPORI(1)=0 [verify intoll for 1 sec. [ [.............GEAR CHANGE............................... [Note: SPPND is set even if spindle is not within the [rev / min threshold (SPMOT) to change range on the fly. GAM1=RM41~(SPEED<=SPSMG1(1))&RM42 [request range 1 GAM2=RM42~(SPEED>SPSMG1(1))&RM41 [request range 2 OKVG1=GAM1&IMG1&IMUON&SPMOT(1) [range 1 selector control OKVG2=GAM2&IMG2&IMUON&SPMOT(1) [range 2 selector control SPPND(1)=(GAM1&IMG1)~(GAM2&IMG2)&IMUON [select hunt IF(IMG1) SPGAM(1)=1 [select range 1 IF(IMG2) SPGAM(1)=2 [select range 2 [ [..................... axes management........................ TISBX(3)=MOVCN(1) [unclamp timer TISBY(3)=MOVCN(2) TISBZ(3)=MOVCN(3) TIBLX(5)=(MOVCN(1)&MOVCNP(1))~TDBLX [clamp timer TIBLY(5)=(MOVCN(2)&MOVCNP(2))~TDBLY TIBLZ(5)=(MOVCN(3)&MOVCNP(3))~TDBLZ [ UMOVE1=(MOVCN(1)~TDBLX)&IMUON [enable axes UMOVE2=(MOVCN(2)~TDBLY)&IMUON UMOVE3=(MOVCN(3)~TDBLZ)&IMUON USFREX=MOVCN(1)&IMUON [unclamp axes USFREY=MOVCN(2)&IMUON USFREZ=MOVCN(3)&IMUON RDMOV(1)=(MOVCN(1)&TDSBX)~TDBLX [response from NC RDMOV(2)=(MOVCN(2)&TDSBY)~TDBLY RDMOV(3)=(MOVCN(3)&TDSBZ)~TDBLZ MOVCNP=MOVCN [MOVCN derivative [ [........................jog........................ [note: JOG must be enabled with NCMD=5, 8, 9 SJOG=((NCMD=5)&L7)~(NCMD=8)~(NCMD=9) [jog + and - enable L1=JOGP(1) L2=JOGM(1) L3=JOGP(2) L4=JOGM(2) L5=JOGP(3) L6=JOGM(3) [home X Y Z positive direction JOGP(1)=P1&SJOG~RIC0X JOGM(1)=P2&SJOG JOGP(2)=P3&SJOG~RIC0Y JOGM(2)=P4&SJOG JOGP(3)=P5&SJOG~RIC0Z JOGM(3)=P6&SJOG MOVMA=JOGP~JOGM [Select manual JOG [ [.................HANDWHEELS...................... [select axis to be moved
1-7
Series S3000
1. Programming examples
N234 N235 N236 N237 N238 N239 N240 N241 N242 N243 N244 N245 N246 N247 N248 N249 N250 N251 N252 N253 N254 N255 N256 N257 N258 N259 N260 N261 N262 N263 N264 N265 N266 N267 N268 N269 N270 N271 N272 N273 N274 N275 N276 N277 N278 N279 N280 N281 N282 N283 N284 N285 N286 N287 N288 N289 N290 N291 N292 N293 N294 N295 N296 N297 N298 N299 N300 N301 N302 N303 N304 N305 N306 N307 N308 N309 N310 N311 N312
IF(P21) L21=L21;L22=0;L23=0 IF(P22) L22=L22;L23=0;L21=0 IF(P23) L23=L23;L21=0;L22=0 IF(L21) HWL(1)=1;L8=1 IF(L22) HWL(1)=2;L8=1 IF(L23) HWL(1)=3;L8=1 IF(L21&L22&L23) HWL(1)=0;L8=0 [selezione passo IF(P24) L24=1;L25=0;L26=0 IF(P25) L24=0;L25=1;L26=0 IF(P26) L24=0;L25=0;L26=1 IF(L24) STEP=1 IF(L25) STEP=2 IF(L26) STEP=3 [ [...............home cycle...................... [home cycle started by pressing softkey F17 [terminated by BREAK or when all axes are homed. [cycle starts with Z axis then X, Y simultaneously. ZERIOK=MIZEA(1)&MIZEA(2)&MIZEA(3) L7=FF(P7&L7),(ZERIOK~(NCMD<>5)~BRKA~P7&L7) [home cycle RIC0X=FF(L7&MIZEA(3)),(L7~MIZEA(1)) [X home cycle in memory RIC0Y=FF(L7&MIZEA(3)),(L7~MIZEA(2)) [Y home cycle in memory RIC0Z=FF(L7&(P6~P5)),(L7~MIZEA(3)) [Z home cycle in memory [ [softkey F7 menu 1 iniates the home cycle MICZE(1)=L7 MICZE(2)=L7 MICZE(3)=L7 [assign physical home switches MIZER(1)=IMZX MIZER(2)=IMZY MIZER(3)=IMZZ [............... manual tool change ................... ULAM06=CAUT&(TWM06>5)&SPMOT(1) IF(IFICUT) CAUT=0 TIM06(10)=TUM06 [ [....................lubrication ...................... [The pump on (IMUON) frequency [depends on the movement of the axes. TLUBI(6000)=TLUBU&IMUON&ILIVOL [10 minute oscillator TLUBA=((MOVCN&INTOL)=0) [pause and disable if axes stopped UKLUBA=(TLUBW>5950)&TLUBA&IMUON&ILIVOL [pump for 5 seconds [ [....................general............................... [Note: ILIVRE e ILIVOL [ have no effect during the tapping fixed cycle (G84) FHOLD=((ILIVRE~ILIVOL)&(G84~RAPI)) ~ITERMI ~IDRAOK ~ $ IDRMOK ~CAUT ~(SPRMP(1)~IGIROK&SPROT(1))&RAPI~SPORI(1)~ $ SPPND(1) ~((NCMD<>5)&ZERIOK) [inibit axes movement DHOLD=FHOLD [inibits data blocks [ RHOLD=FF(IHOLD&(G84~RAPI)),(HOLDA) [hold request LAHOLD=HOLDA [hold lamp CYST=ISTART [start request LACYON=CYON [cycle ON lamp [ [...................auxiliary .................. TIMUON(5)=IMUON [derivative of power on RBRK=TDMUON [BREAK at power on CNOK=EMEA~TUMUON [NC ready output REME=FF(IMUON~IOLTRC),(EMEA) [emergency request [ [...................break................................... IF(BRKA~EMEA) CALL RESET [ IF(STBMD) SFKMEN=1 [recall menu SOFTK 1 END [********************** VERY SLOW SECTION ***************** [...................display......................... [ WNDINT(2)=AUXH [display H codes GIRMI=INT(ABS(SPTCH(1))) [display effective speed [ [.............. message preparation ...................... SG(1)=IMUON SG(2)=ZERIOK&IMUON SG(3)=SG(2)&L7&L5
1-8
Series S3000
1. Programming examples
N313 N314 N315 N316 N317 N318 N319 N320 N321 N322 N323 N324 N325 N326 N327 N328 N329 N330 N331 N332 N333 N334 N335 N336 N337 N338 N339 N340 N341 N342 N343 N344 N345 N346 N347 N348 N349 N350 N351 N352 N353 N354 N355 N356 N357 N358 N359 N360 N361 N362 N363 N364 N365 N366 N367 N368 N369 N370 N371
SG(4)=(SPRMP(1)~IGIROK)&SPROT(1) SG(5)=SPPND(1) SG(6)=IDRAOK SG(7)=IDRMOK SG(8)=ILIVOL SG(9)=ILIVRE SG(10)=ITERMI SG(11)=IOLTRC SG(12)=CAUT SG(13)=(MOVCN<>RDMOV) CALL SCROLL [recall message display END [********************** ROUTINES SECTION ********************* [............... T functions.................................. GEFUT:$ CALL M05; CAUT=1 [manual tool change RTS [............... M functions.................................. GEFUM:$ WNDINT(1)=AUXM [display code functions IF (AUXM=3) M03 IF (AUXM=4) M04 IF (AUXM=5) M05 IF (AUXM=7) UREF=1; RTS [coolant IF (AUXM=9) UREF=0; RTS [stop coolant IF (AUXM=10) SSA=0; RTS IF (AUXM=11) CALL M11 IF (AUXM=13) CALL M03; UREF=1; RTS [M3 + ref. IF (AUXM=14) CALL M04; UREF=1; RTS [M4 + ref. IF (AUXM=19) CALL M05; SPPOS(1)=0; SPORI(1)=1; RTS [orient IF (AUXM=30) CALL M05; CALL RESET; RTS [ NC reset IF (AUXM=40) CALL M05; RM41=0; RM42=0; RTS [range auto IF (AUXM=41) CALL M05; RM41=1; RM42=0; RTS [range 1 IF (AUXM=42) CALL M05; RM42=1; RM41=0; RTS [range 2 RTS [ M03: RORMA=1; RANMA=0; RTS [spindle CW M04: RORMA=0; RANMA=1; RTS [spindle CCW M05: RORMA=0; RANMA=0; RTS [stop spindle M11: IF(AXPGM=0) SSA=00000111B; RTS; $ ELSE SSA=AXPGM&00000111B; RTS [unclamp axes [............ reset commands .................................. RESET:$ RORMA=0; RANMA=0 [reset spindle rotation SPORI=0 [reset spindle orient UREF=0 [reset coolant CAUT=0 [reset tool change in progress WNDINT(1)=30 [update M function display RTS [................. MESSAGE MANAGEMENT ......................... SCROLL:$ NM=1; NR=1 LOOVIS:IF(NM>NMAX) CLRSCR IF(NR>16) RTS IF(SG(NM)) DISPL,NR,MSG(NM); NR=NR+1 NM=NM+1; LOOVIS CLRSCR:IF(NR>16) RTS CLR,(NR); NR=NR+1; CLRSCR [.............. program end ...............................
1-9
Series S3000
1. Programming examples
1-10
Series S3000
1. Programming examples
1-11
Series S3000
1. Programming examples
1-12
Series S3000
1. Programming examples
1-13
Series S3000
1. Programming examples
N77 N78 N79 N80 N81 N82 N83 N84 N85 N86 N87 N88 N89 N90 N92 N93 N94 N95 N96 N97 N98 N99 N100 N101 N102 N103
[guaranteed to be immediately available after setting the [rotation control. [stop axis feed FHOLD = (SPRMP(1)~IGIROK&SPROT(1))&RAPI [~... &(G84~RAPI) DHOLD = FHOLD [~ REME = FF(TRMU),(EMEA) [emergency; spindle stopped END [ ............... very slow section ........................ GIRMI=INT(ABS(SPTCH)) [display S END [ [ ROUTINES GEFUM: $ WNDINT(1)=AUXM [display M functions IF(AUXM=4) M04 IF(AUXM=5) M05 RTS M03: SPDIR(1)=0; ROTMA=1; RTS M04: SPDIR(1)=1; ROTMA=1; RTS M05: ROTMA=0; RTS [ RESET: $ ROTMA=0 [stop spindle WNDINT(1)=30 [display M30 RTS [..................... program end ........................
1-14
Series S3000
1. Programming examples
1-15
Series S3000
1. Programming examples
1-16
Series S3000
1. Programming examples
1-17
Series S3000
1. Programming examples
DHOLD=FHOLD [inhibit data blocks REME=FF(IMUON),(EMEA) [machine emergency [ END IF(ILIVOL) DISPL,1, MSG1; ELSE CLR,1 [message-level min. IF(IMUON) DISPL,2, MSG2; ELSE CLR,2 [message aux END [................ program end ...........................
1-18
Series S3000
1. Programming examples
1-19
Series S3000
1. Programming examples
1-20
Series S3000
1. Programming examples
1-21
Series S3000
1. Programming examples
N77 N78 N79 N80 N81 N82 N83 N84 N85 N86 N87 N88 N89 N90 N91 N92 N93 N94 N95 N96 N97 N98 N99 N100 N101 N102 N103 N104 N105 N106 N107 N108 N109 N110 N111 N112 N113 N114 N115 N116 N117 N118 N119 N120 N121 N122 N123 N124 N125 N126 N127
[when homing only JOG + allowed L1=(P1&L7)~RIC0X [softk jog x+ lamp L2=P2&L7 [softk jog x- lamp L3=(P3&L7)~RIC0Y [softk jog y+ lamp L4=P4&L7 [softk jog y+ lamp L5=(P5&L7)~RIC0Z [softk jog z+ lamp L6=P6&L7 [softk jog z+ lamp [ JOGP(1)=L1 JOGM(1)=L2 JOGP(2)=L3 JOGM(2)=L4 JOGP(3)=L5 JOGM(3)=L6 MOVMA=JOGP~JOGM [select manual JOG [ [...............home cycle...................... [Cycle started manually by pressing P7 (softk) [homing command ZERIOK=(MIZEA(1)&MIZEA(2)&MIZEA(3)) L7=FF(P7),(P7&L7~(NCMD<>5)~BRKA~ZERIOK) [ [store state of home cycle RIC0Z=FF(P5&L7),(L7~MIZEA(3)) RIC0X=FF(MIZEA(3)),(L7~MIZEA(1)) RIC0Y=FF(MIZEA(3)),(L7~MIZEA(2)) [ [home cycle using home switch MICZE(1)=L7 MICZE(2)=L7 MICZE(3)=L7 [assign home swiches MIZER(1)=IMZX MIZER(2)=IMZY MIZER(3)=IMZZ [ [home cycle without using home switch [substitute MARK() for MICZE() and do not assign MIZER() [MARK(1)=L7 [MARK(2)=L7 [MARK(3)=L7 [....................general............................... FHOLD=(NCMD<>5)&ZERIOK DHOLD=0 [... END [********************** VERY SLOW SECTION ***************** IF (ZERIOK) DISPL, 0, MSG1; ELSE CLR, 0 [homing message IF (ZERIOK&L7) DISPL,1, MSG2; ELSE CLR,1 [start cycle message [ END [.................. program end .........................
1-22
Series S3000
1. Programming examples
1-23
Series S3000
1. Programming examples
N77 N78 N79 N80 N81 N82 N83 N84 N85 N86 N87 N88 N89 N90 N91 N92 N93 N94 N95 N96 N97 N98 N99 N100 N101 N102 N103 N104 N105 N106 N107 N108 N109 N110 N111 N112 N113 N114 N115 N116 N117 N118 N119 N120 N121 N122 N123 N124 N125 N126 N127 N128 N129 N130 N131 N132 N133 N134 N135 N136 N137 N138 N139 N140 N141 N142 N143 N144 N145 N146 N147 N148 N149 N150 N151 N152 N153 N154 N155
[ SOFTK,1 [ +++ P1,CUAUT, change tool AUTOMATIC P2,CUMAN, change tool MANUAL P3,L3, P4,L4, end TC manual P5,L5, P6,L6, P7,L7, RESET TC P8,L8, [ [ INIT [INITIALIZATION SECTION [ MSG(1)= VERIFY TOOL TABLE AND RESET TC MSG(2)= change tool manually MSG(3)= M6 programmed without Txx MSG(4)= waiting for storage door to open MSG(5)= waiting for storage door to close [ SSA=00000111B [XYZ always active [ [***** TOOL CHANGER SEQUENCE DEFINITION ******** [... TC SEQUENCE TO LOAD TOOL FROM FLOOR, SPINDLE EMPTY ... DEF SEQCU(1)=-6,-16,-34,COM,1,CUMANU [ [...TC SEQUENCE TO UNLOAD FROM SPINDLE TO FLOOR(T0M6) ... DEF SEQCU(2)=-6,-10,-34,COM,1,CUMANU [ [...TC SEQUENCE FOR EXCHANGE BETWEEN SPINDLE AND FLOOR ... DEF SEQCU(3)=-6,-10,-16,-34,COM,1,CUMANU [ [...TC SEQ.TO UNLOAD TO FLOOR AND LOAD FROM STORAGE ... DEF SEQCU(4)=-1,901,-5,-6,-10,-17,-34,COM,1,CUAUTO [ [...TC SEQ. TO UNLOAD TO STORAGE AND LOAD FROM FLOOR... DEF SEQCU(5)=-23,923,-6,-12,-16,66,26,-27,-34,COM,1,CUAUTO [ [...TC SEQUENCE TO EXCHANGE TOOL WITH ONE IN SPINDLE... DEF SEQCU(6)=-1,901,-5,-6,-12,-17,66,-23,923,-27,-34, $ COM,1,CUAUTO [ [...TC SEQUENCE TO LOAD FROM STORAGE WITH EMPTY SPINDLE... DEF SEQCU(7)=-1,901,-5,-6,-17,-34, $ COM,1,CUAUTO [ [...TC SEQUENCE TO UNLOAD TOOL FROM SPINDLE TO STORAGE.... DEF SEQCU(8)=-23,923,-6,-12,66,-27,-34, COM,1,CUAUTO [ [...TC SEQUENCE TO LOAD TOOL = TOOL IN SPINDLE ... DEF SEQCU(11)=-6,-34,COM,1,CORR [ [... T programmed after a T (during the M06 wait) ... [... return JAWS to storage and re-analyze situation ... DEF SEQCU(19)=923,-23,-31,0 [ [NOTE: if there is the possibility to move the changer [ with JOGCU after the changer has already been positioned [ automatically it will be necessary to do a [ position search (901) or (923) after the -6. [ PROG [FAST SECTION END [SLOW SECTION ABX=MOVCN(1) [enable axes ABY=MOVCN(2) ABZ=MOVCN(3) RDMOV=MOVCN POFO=ANI(1) [feed override potentiometer [ [ [SYNCHRONIZED PART [ IF(BURDY)ASINC FHOLD=1; DHOLD=1 [decoding always requires a T first then M IF(STROT)CALL GEFUT IF(STROM)CALL GEFUM BURDY=0
1-24
Series S3000
1. Programming examples
N156 N157 N158 N159 N160 N161 N162 N163 N164 N165 N166 N167 N168 N169 N170 N171 N172 N173 N174 N175 N176 N177 N178 N179 N180 N181 N182 N183 N184 N185 N186 N187 N188 N189 N190 N191 N192 N193 N194 N195 N196 N197 N198 N199 N200 N201 N202 N203 N204 N205 N206 N207 N208 N209 N210 N211 N212 N213 N214 N215 N216 N217 N218 N219 N220 N221 N222 N223 N224 N225 N226 N227 N228 N229 N230 N231 N232 N233 N234
ASINC:$ [ASYNCHRONOUS PART [******************************************************* [ AUTOMATIC TC MANAGEMENT * [******************************************************* CALL CUAUTO [automatic TC routine [ CALL POSMAG [.......... physical movements for tool change ........... [safety controls for the changer movements must always be [put directly in the control outputs; for example: [out =((select_auto) ~ (select_man)) & safety_mech. [ UARIMA=MM62 [&... safety. UCRIMA=MM63 [&... safety. [... L4=MM26 [manual tool change in progress [... [ [reset memory at end of selection (comands completed) IF(IRIMAA&IRIMAC) MM62=0 [door open IF(IRIMAC&IRIMAA) MM63=0 [door closed IF(P4) MM26=0 [ok end manual TC [******************************************************* [ OTHER ASYNCHRONOUS CONTROLS * [******************************************************* [ [... [... [ [******************************************************* [ ALLARMS,CONSENTS AND SAFETIES * [******************************************************* [related to the NC DHOLD=EMACU~MM26~MM62~MM63~EMAP2P(1) [ ~... FHOLD=DHOLD [ ~... REME=FF(IAUXON),(EMEA) [ ~... [emergency request to NC [ END [ VERY SLOW SECTION [.............message display ................ IF(EMACU) DISPL,1,MSG(1); ELSE CLR,1 [NC emergency IF(MM26) DISPL,2,MSG(2); ELSE CLR,2 [manual TC IF(ERRM06) DISPL,3,MSG(3); ELSE CLR,3 [M6 without T ready IF(MM62) DISPL,4,MSG(4); ELSE CLR,4 [wait for door open IF(MM63) DISPL,5,MSG(5); ELSE CLR,5 [wait for door close [ WINDOW=IFP(UTSPCU) [Display tool in spindle ASCW=116 [Code for tcharacter [The display can be very useful if you use alternate [corrections (the T window in the display is the active [control not the tool). [ END [ [ ROUTINES SECTION [ [******************************************************* [ T FUNCTION * [******************************************************* GEFUT:$ [.......Activate alternate correction ............. [Applicable only if you use tool families: [tool codes greater than 100 (must already be in the tool table) [can be interpreted: [ IF(TOOL>100) OFST=TOOL; INTOF=1; RTS [ [.............. TOOL CHANGE CALL ........... UTECU=TOOL [inform TC module of the desired tool NEWCU=1 [request activation of the TC module RTS [ [******************************************************* [ M FUNCTIONS * [******************************************************* GEFUM:$ WNDINT(1)=AUXM IF(AUXM=6) M06
1-25
Series S3000
1. Programming examples
N235 N236 N237 N238 N239 N240 N241 N242 N243 N244 N245 N246 N247 N248 N249 N250 N251 N252 N253 N254 N255 N256 N257 N258 N259 N260 N261 N262 N263 N264 N265 N266 N267 N268 N269 N270 N271 N272 N273 N274 N275 N276 N277 N278 N279 N280 N281 N282 N283 N284 N285 N286 N287 N288 N289 N290 N291 N292 N293 N294 N295 N296 N297 N298 N299 N300 N301 N302 N303 N304 N305 N306 N307 N308 N309 N310 N311 N312 N313
IF(AUXM=30) CALL RESET; RTS IF(CUATT) RTS IF(AUXM=62) MM62=1; RTS IF(AUXM=63) MM63=1; RTS IF(AUXM=26) M26 IF(AUXM=29) INTOF=1; RTS IF(AUXM=34) CUATT=0; CIM6=0; RTS RTS [ M06:$ IF(CUATT) ERRM06=1; RTS [M6 without T M6PGM=1; CIM&=1 RTS [ M26:$ IF(NSEQCU<5) MM62=1; RTS [manual TC only in SEQ 1,2,3,4 RTS [ [******************************************************* [ AUTOMATIC TOOL CHANGE CONTROL * [******************************************************* [................. select TC mode ................... CUAUTO:$ IF(CUATT) NOSELE IF(P1) SELECU=0 [automatic TC (default) IF(P2) SELECU=1 [manual TC (no storage) NOSELE:$ [ [mode selection softkey lights CUAUT=(SELECU=0) CUMAN=(SELECU=1) [ [******************************************************* [... interrupt sequence, cancellation, emergency .... [ [The TC is interrupted only if: [- the auxilliaries are turned off during a TC (not during M6 wait) [- a BREAK command is sent during the change sequence [ [The interrupt is made with REMCU and the TC [responds by activating EMACU REMCU=FF(((BRKA&CIM6)~(IAUXON&CUATT))&(OPERCU<>-6)),(EMACU) [ [The P7 softkey executes RBKCU to exit from EMACU (emergency) IF(P7&EMACU) RBKCU=1; RBRK=1 [cancel TC emergency [ [After an interrupt it is to reset the TC with the appropriate [softkey after having VERIFIED THE TOOL TABLE. L7=EMACU [TC emergency lamp [ IF(EMACU) CALL RESECU [reset PLC commands [ [******************************************************** [...... decode sequence codes ...... IF (BRDYCU) NOCU MAPRCU=0 [halt cycle CALL OPER [management TC cycle BRDYCU=0 [TC cycle acquired NOCU:$ [ [******************************************************** [............ OK to continue cycle ................. IF(CUATT) MM66=0 [synchronous part completed with M6 [ [ok start unload in masked time MAPRCU=MM66&RICUT [&... &... [ RTS [************ RETURN FROM CUAUTO CONTROL *************** [ [******************************************************* [ ROUTINE TO DECODE TC AND RESET * [******************************************************* [case for TC reset RESECU:$ MM26=0 [reset tool change MM62=0 MM63=0 MM66=0 RICUT=0
1-26
Series S3000
1. Programming examples
N314 N315 N316 N317 N318 N319 N320 N321 N322 N323 N324 N325 N326 N327 N328 N329 N330 N331 N332 N333 N334 N335 N336 N337 N338 N339 N340 N341 N342 N343 N344 N345 N346 N347 N348 N349 N350 N351 N352 N353 N354 N355 N356 N357 N358 N359 N360 N361 N362 N363 N364 N365 N366 N367 N368 N369 N370 N371 N372 N373 N374 N375 N376 N377
CIM6=0 [normal reset (M30 or break) RESET:$ WNDINT(1)=30 [display M30 ERRM06=0 [cancel error on M6 (M6 without T ready) RTS [ [TC OPERATIONS management OPER:$ IF(OPERCU=26) CU26 IF(OPERCU=66) CU66 IF(OPERCU=901) CU901 IF(OPERCU=923) CU923 [... RTS [manual tool change (sequence 5 only) CU26:$ MM26=1 RTS [ [wait for end of tool change (synchronous part) CU66:$ MM66=1 RTS [ [search for place to load CU901:$ PORIT=PPRECU RICUT=1 RTS [search for place to unload CU923:$ PORIT=PPOSCU RICUT=1 RTS [ [******************************************************* [ CHANGER POSITIONING: POINT TO POINT AXIS * [******************************************************* [if position is OK RICUT is reset POSMAG:$ SSAP2P(1)=1 [changer always enabled UABMAG=MOVP2P(1) [enable changer axis RDMP2P(1)=MOVP2P(1) [response axis enabled INPOS=SGLP2P(1)&MZAP2P(1)&RUNP2P(1)&RICUT&EMAP2P(1)[pos. ok [ IF(RICUT) RTS [no need for positioning POTP2P(1)=1 [speed potentiometer MIZP2P(1)=IZERM [changer home switch IF(MZAP2P(1)) ZEMAG [test axis zeroed (homed) JGPP2P(1)=0 [if zeroed reset JOG MCZP2P(1)=0 [if zeroed reset zero search [calculate position to be reached (via shortest path) PFNP2P(1)=IFP(PORIT)-NEI((IFP(PORIT)-NEI(POAP2P(1)))/24)*24 IF(RICUT) RUNP2P(1)=1 [begin movment TIRIC(5)=RUNP2P(1)~TDRIC [signal INPOS [note: entered only if MZAP2P is present IF(SGLP2P(1)&TDRIC) RICUT=0 [movment completed RTS ZEMAG:JGPP2P(1)=RICUT [zero search MCZP2P(1)=RICUT [set zero search INPOS=0 [reset position OK RTS [............ program end .............................
1-27
Series S3000
1. Programming examples
1-28
Series S3000
1. Programming examples
N61 N62 N63 N64 N65 N66 N67 N68 N69 N70 N71 N72 N73 N74 N75
CALL SCROLL [ call to handling message routine [ END [ [......... routines section.............................. [ ........... ON SCREEN MESSAGE MANAGEMENT ................. SCROLL:$ NMSG=1; NRIGA=1 [SETUP OF VARIABLES LOOVIS: IF(NMSG > NMAX) CLRSCR [if end of scanning go to CLR IF(NRIGA>16) RTS [exit if more than 16 messages IF(SG(NMSG)) DISPL, NRIGA, MSG(NMSG); NRIGA=NRIGA+1 [DISPL NMSG=NMSG+1; LOOVIS [test other SG CLRSCR: IF(NRIGA>16) RTS [any nore rows to clear ? CLR,(NRIGA); NRIGA=NRIGA+1; CLRSCR [clear subsequent rows. [ .............. program end ..........................
1-29
Series S3000
1. Programming examples
1-30
Series S3000
1. Programming examples
N61 N62 N63 N64 N65 N66 N67 N68 N69 N70 N71
IND=INT(QUOYI/STEPY) [current step number IND8=FPI(IND) [step in byte format COMPZ=((QUOYI-STEPY*IND)*(TABCOZ(IND8+2)-TABCOZ(IND8+1))/$ STEPY)+TABCOZ(IND8+1) [interpolation between steps [limit outside software end limits IF(POA(2)<=FCYN) COMPZ=TABCOZ(1) IF(POA(2)>FCYP) COMPZ=TABCOZ(FPI(NCAMPY+1)) SHIFT(3)=COMPZ [execute compensation [ END [............. program end ...............................
1-31
Series S3000
1. Programming examples
1-32
Series S3000
1. Programming examples
1-33
Series S3000
1. Programming examples
1-34
Series S3000
1. Programming examples
N77 N78 N79 N80 N81 N82 N83 N84 N85 N86 N87 N88 N89 N90 N91 N92 N93 N94 N95 N96 N97 N98 N99 N100 N101 N102 N103 N104 N105 N106 N107 N108 N109 N110 N111 N112 N113 N114 N115 N116 N117 N118 N119 N120 N121 N122 N123 N124 N125 N126 N127 N128 N129 N130 N131 N132 N133 N134 N135 N136 N137 N138 N139 N140 N141 N142 N143 N144 N145 N146 N147 N148 N149 N150 N151 N152 N153 N154 N155
[part common to all cases: [L=34 [O-1 [reset origin [M29 [activate correction [M63 [close storage door [M34 [end tool change [G32 [end program [ routine to calculate tool X, Y [L=99 [P15=INT(P(14)/(P1+1)) [P16=P10-(P1*P15)-1 [P17=P5+P16*P4 [P18=P6+P15*P3 [G32 [ end CUAUTO [CUMANU: [P90=1 [{P13=1} L1 [load from floor [{P13=2} L1 [unload to floor [{P13=3} L1 [exchange with floor [{P13=11} L11 [Tprog. = Tspindle [{P90=1} L90 [ [cases 1, 2, 3 [L=1 [M26 [manual tool change [M29 [activate correction [{P90=1} L90 [ [case 11 [L=11 [M29 [activate correction [ [L=90 [M34 [end tool change [ [ INP IAUXON [ 1 Auxiliaries on IRIMAA [ 2 Storage door open IRIMAC [ 3 Storage door closed [... [ others ... [ OUT ABX [ 1 enable axis X ABY [ 2 enable axis Y ABZ [ 4 enable axis Z UARIMA [ 7 output open storage door UCRIMA [ 8 output close storage door [... [ others ... [ RAM,1 ERRM06 [M6 programmed without T [ [stored commands automatic TC MM26 [manual tool change MM62 [open storage door MM63 [close storage door [... [others ... [ STR MSG(10) [text for messages and alarms [ SOFTK,1 [ +++ P1,CUAUT, AUTOMATIC TC. P2,CUMAN, MANUAL TC P3,L3, P4,L4, end manual TC P5,L5, P6,L6, P7,L7, RESET TC P8,L8, [ [ INIT [INITIALIZATION SECTION [ MSG(1)= VERIFY TOOL TABLE AND RESET THE TC MSG(2)= change tool manually MSG(3)= M6 programmed without Txx
1-35
Series S3000
1. Programming examples
N156 N157 N158 N159 N160 N161 N162 N163 N164 N165 N166 N167 N168 N169 N170 N171 N172 N173 N174 N175 N176 N177 N178 N179 N180 N181 N182 N183 N184 N185 N186 N187 N188 N189 N190 N191 N192 N193 N194 N195 N196 N197 N198 N199 N200 N201 N202 N203 N204 N205 N206 N207 N208 N209 N210 N211 N212 N213 N214 N215 N216 N217 N218 N219 N220 N221 N222 N223 N224 N225 N226 N227 N228 N229 N230 N231 N232 N233 N234
MSG(4)= Wait storage open MSG(5)=Wait storage door closed [ [ [***** DEFINITION OF TOOL CHANGE SEQUENCES ******** [... TC SEQUENCE TO LOAD TOOL FROM FLOOR WITH SPINDLE EMPTY ... DEF SEQCU(1)=-6,-16,-34,COM,1,CUMANU [ [...TC SEQUENCE TO UNLOAD SPINDLE TO FLOOR (T0M6) ... DEF SEQCU(2)=-6,-10,-34,COM,1,CUMANU [ [...TC SEQUENCE TO EXCHANGE BETWEEN SPINDLE & FLOOR ... DEF SEQCU(3)=-6,-10,-16,-34,COM,1,CUMANU [ [...TC SEQUENCE TO UNLOAD SPINDLE TO FLOOR & LOAD FROM STORAGE ... DEF SEQCU(4)=-6,-10,-1,-4,-34,COM,1,CUAUTO [ [...TC SEQUENCE TO UNLOAD SPINDLE TO STORAGE & LOAD FROM FLOOR ... DEF SEQCU(5)=-6,-23,-13,-16,-34,COM,1,CUAUTO [ [...TC SEQUENCE TO CHANGE TOOLS WITH ONE ALREADY IN SPINDLE ... DEF SEQCU(6)=-6,-23,-13,-1,-4,-34,COM,1,CUAUTO [ [...TC SEQUENCE TO LOAD WHEN SPINDLE IS UNLOADED ... DEF SEQCU(7)=-6,-1,-4,-34,COM,1,CUAUTO [ [...TC SEQUENCE TO UNLOAD TOOL FROM SPINDLE TO STORAGE.... DEF SEQCU(8)=-6,-23,-13,-34,COM,1,CUAUTO [ [...TC SEQUENCE TO LOAD TOOL = TOOL IN SPINDLE ... DEF SEQCU(11)=-6,-34,COM,1,CUMANU [ [ PROG [FAST SECTION [enable axes ABX=MOVCN(1) ABY=MOVCN(2) ABZ=MOVCN(3) RDMOV=MOVCN POFO=ANI(1) [axes feed pot. END [SLOW SECTION [ [SYNCHRONOUS PART [ IF(BURDY)ASINC FHOLD=1; DHOLD=1 [decoding always requires T first then M IF(STROT)CALL GEFUT IF(STROM)CALL GEFUM BURDY=0 ASINC:$ [ASYNCHRONOUS PART [******************************************************* [ AUTOMATIC TC MODULE * [******************************************************* CALL CUAUTO [automatic TC routine [ [.......... physical actuations for tool change ........... [mechanical safety locks etc. must always be put directly [in the control outputs, for example: [out =((select_auto) ~ (select_man)) & mech_safety. [ UARIMA=MM62 [&... safety UCRIMA=MM63 [&... safety [... L4=MM26 [manual TC in progress [... [ [reset memories at end of operation (instructions completed) IF(IRIMAA&IRIMAC) MM62=0 [door open IF(IRIMAC&IRIMAA) MM63=0 [door closed IF(P4) MM26=0 [ok end manual TC [******************************************************* [ OTHER ASYNCHRONOUS COMMANDS * [******************************************************* [ [... [... [
1-36
Series S3000
1. Programming examples
N235 N236 N237 N238 N239 N240 N241 N242 N243 N244 N245 N246 N247 N248 N249 N250 N251 N252 N253 N254 N255 N256 N257 N258 N259 N260 N261 N262 N263 N264 N265 N266 N267 N268 N269 N270 N271 N272 N273 N274 N275 N276 N277 N278 N279 N280 N281 N282 N283 N284 N285 N286 N287 N288 N289 N290 N291 N292 N293 N294 N295 N296 N297 N298 N299 N300 N301 N302 N303 N304 N305 N306 N307 N308 N309 N310 N311 N312 N313
[******************************************************* [ ALARMS,CONSENTS AND SAFETY * [******************************************************* [related to NC DHOLD=EMACU~MM26~MM62~MM63 [ ~... FHOLD=DHOLD [ ~... REME=FF(IAUXON),(EMEA) [ ~... [emergency to NC [ END [ VERY SLOW SECTION [............. display messages ................ IF(EMACU) DISPL,1,MSG(1); ELSE CLR,1 [TC in emergency IF(MM26) DISPL,2,MSG(2); ELSE CLR,2 [manual TC IF(ERRM06) DISPL,3,MSG(3); ELSE CLR,3 [M6 without T ready IF(MM62) DISPL,4,MSG(4); ELSE CLR,4 [wait door open IF(MM63) DISPL,5,MSG(5); ELSE CLR,5 [wait door closede [ END [ [ ROUTINES SECTION [ [******************************************************* [ T FUNCTION * [******************************************************* GEFUT:$ [.............. CALL FOR TOOL CHANGE ........... UTECU=TOOL [inform TC module of required tool NEWCU=1 [request activation of TC module RTS [ [******************************************************* [ M FUNCTION * [******************************************************* GEFUM:$ WNDINT(1)=AUXM IF(AUXM=6) M06 IF(AUXM=30) CALL RESET; RTS IF(CUATT) RTS IF(AUXM=62) MM62=1; RTS IF(AUXM=63) MM63=1; RTS IF(AUXM=29) INTOF=1; RTS IF(AUXM=34) CUATT=0; RTS RTS [ M06:$ IF(CUATT) ERRM06=1; RTS [M6 without T M6PGM=1 RTS [ [******************************************************* [ AUTOMATIC TOOL CHANGE * [******************************************************* [................. selection of TC mode................... CUAUTO:$ IF(CUATT) NOSELE IF(P1) SELECU=0 [automatic TC (default) IF(P2) SELECU=1 [manual TC (no storage) NOSELE:$ [ [mode selection softkey lights CUAUT=(SELECU=0) CUMAN=(SELECU=1) [ [******************************************************* [... interruption sequence, cancellation, emergency .... [ [The TC is interrupted only if: [- the auxiliaries are turned off during a TC [- a BREAK is sent during the TC sequence [ [The interrupt uses REMCU and the TC responds by [setting EMACU REMCU=FF((BRKA&CUATT)~(IAUXON&CUATT)),(EMACU) [ [Softkey P7 uses RBKCU to exit from EMACU (emergency) IF(P7&EMACU) RBKCU=1 [cancel TC emergency [ [After an interrupt it is necessary to reset the TC [with the appropriate softkey after VERIFYING THE TOOL TABLE
1-37
Series S3000
1. Programming examples
N314 N315 N316 N317 N318 N319 N320 N321 N322 N323 N324 N325 N326 N327 N328 N329 N330 N331 N332 N333 N334 N335 N336 N337 N338 N339 N340 N341 N342 N343 N344 N345 N346 N347 N348 N349 N350 N351 N352 N353 N354 N355 N356 N357 N358 N359 N360 N361
L7=EMACU [emergency lamp TC [ IF(EMACU) CALL RESECU [reset PLC commands [ [******************************************************** [Passing parameters to COM P(10)=IFP(PPRECU) [loading position P(11)=IFP(PPOSCU) [unloading position P(13)=IFP(NSEQCU) [sequence started [ [...... sequence decode phase ...... IF (BRDYCU) NOCU MAPRCU=0 [halt phase sequence CALL OPER [tool change management phase BRDYCU=0 [TC phase acquired NOCU:$ [ [******************************************************** [............ ok to continue phase sequence ................. MAPRCU=1 [&... &... [ RTS [************ RETURN FROM CUAUTO *************** [ [******************************************************* [ ROUTINE TO DECODE TC and RESET OPERATIONS * [******************************************************* [case for TC reset RESECU:$ MM26=0 [reset manual TC MM62=0 MM63=0 [ [mormal reset (M30 or BREAK) RESET:$ WNDINT(1)=30 [display M30 ERRM06=0 [cancel error on M6 (M6 without T ready) RTS [ [manage TC OPERATIONS OPER:$ [IF(OPERCU=...) OPCUX [... RTS [ [OPCUX: ...; RTS [ [............ program end .............................
1-38
Series S3000
1. Programming examples
1-39
Series S3000
1. Programming examples
N77 N78 N79 N80 N81 N82 N83 N84 N85 N86 N87 N88 N89 N90 N91 N92 N93 N94 N95 N96 N97 N98 N99 N100 N101 N102 N103 N104 N105 N106 N107 N108 N109 N110 N111 N112 N113 N114 N115 N116 N117 N118 N119 N120 N121 N122 N123 N124 N125 N126 N127 N128 N129
[ [********************** ROUTINES SECTION *************** [******************************************************* [ STORAGE POSITIONING: INDEPENDANT axis * [******************************************************* POSMAG:$ POTP2P(1)=1 [speed CONTROL POT. SSAP2P(1)=1 [storage always active MIZP2P(1)=IZERM [storage zero switch UABMAG=MOVP2P(1) [enable storage axis RDMP2P(1)=MOVP2P(1) [axis enabled response INPOS=SGLP2P(1)&MZAP2P(1)&RUNP2P(1)&RICUT&EMAP2P(1) [in pos. [ [faults and reset ... IF(EMAP2P(1)) RICUT=0; RTS [fault reset command [activate REME on EMAP2P [ [if axis at zero ... IF(MZAP2P(1)) ZEMAG [test axis zero JGPP2P(1)=0 [cancel JOG MCZP2P(1)=0 [cancel zero search mode [ [calculate position using shortest path PFNP2P(1)=IFP(PORIT)-NEI((IFP(PORIT)-NEI(POAP2P(1)))/24)*24 IF(RICUT) RUNP2P(1)=1 [start positioning TIRIC(5)=RUNP2P(1)~TDRIC [sync signal for INPOS [note: entered only if MZAP2P is present IF (SGLP2P(1)&TDRIC) RICUT=0 [movement completed RTS [ [axis to be zeroed ... ZEMAG: $ JGPP2P(1)=RICUT [force JOG+ for zero search MCZP2P(1)=RICUT [select search mode INPOS=0 [immediately remove INPOS RTS [ [ ........ decode M & T functions ....................... GEFUT:$ PORIT = TOOL [select position to search RTS [ GEFUM:$ WNDINT(1)=AUXM [display M IF (AUXM=6) RICUT=1; RTS [storage position on last T RTS [ [............ reset routine............................. RESET:$ IF(EMAP2P(1)) RBKP2P(1)=1; RICUT=0 [recover P2P emergency WNDINT(1)=30 [display M30 RTS [........... program end................................
1-40
Series S3000
1. Programming examples
1-41
Series S3000
1. Programming examples
N77 N78 N79 N80 N81 N82 N83 N84 N85 N86 N87 N88 N89 N90 N91 N92 N93 N94 N95 N96 N97 N98 N99 N100 N101 N102 N103 N104 N105 N106 N107 N108 N109 N110 N111 N112 N113 N114 N115 N116 N117 N118 N119 N120 N121 N122 N123 N124 N125 N126 N127 N128 N129 N130 N131 N132 N133 N134 N135 N136 N137 N138 N139 N140 N141 N142 N143 N144 N145 N146 N147 N148 N149 N150 N151 N152 N153 N154
[**************** MANAGE C axis ***************** [reset sequence (interrupt) IF(BRKA&(CICM20~CICM21)) CALL RESCM [ [manage potentiometers IF(CICM21) POMO(4)=.1; ELSE POMO(4)=ANI(2) [ [........ switch from C axis to spindle ................. [sequence: - DISRQ(4)=1 [ - SPDRQ(1)=0 e SPDIS(1)=0 [ - axisC=0; axisM=1 IF(CICM20) NOCM IF(SPDRQ(1)) axisC=0; axisM=1; CICM20=0; NOCM IF(DISRQ(4)) SPDRQ(1)=0; SPDIS(1)=0; NOCM DISRQ(4)=1; SSA(4)=0 NOCM: $ [ [............. switch from spindle to C axis ............ [sequence: - wait SPMOT(1) [ - SPDRQ(1)=1; SPDIS(1)=1 [ - DISRQ(4)=0 [ - FOMAN(4)=1; MARK(4)=1; JOGP(4)=1 [ - attesa MIZEA(4) [ - JOGP(4)=0; MARK(4)=0; FOMAN(4)=0 [ - attesa JOGIN(4) [ - SSA(4) = 1 (if necessary) [ - axisC=1; axisM=0 IF(CICM21) NOMC IF(SSA(4)&MIZEA(4)) axisC=1; axisM=0; CICM21=0;NOMC [end cycle IF(MIZEA(4)&JOGIN(4)) SSA(4)=1; NOMC [SSA IF(MIZEA(4)) FOMAN(4)=0;MARK(4)=0;JOGP(4)=0; NOMC [zero done [do zero IF(MIZEA(4)&DISRQ(4)) FOMAN(4)=1; MARK(4)=1; JOGP(4)=1; NOMC IF(SPDRQ(1)) DISRQ(4)=0; NOMC IF(SPMOT(1)) SPDRQ(1)=1; SPDIS(1)=1 NOMC: $ [ [...............spindle management .......................... [ [speed and override potentiometer SPSSO(1)=ANI(3) SPVEL(1)=SPEED [ ABMAN=SPMOV(1) [store SPINDLE enabling ABC=MOVCN(4) [store C axis enabling ABILM=ABMAN~ABC [ [ [******* MANAGE ENABLES TO NC ******* DHOLD = CICM20~CICM21 FHOLD = DHOLD [ END GIRMI=INT(ABS(SPTCH)) [display effective speed WINDOW=PASP [display spindle position ASCW=109 IF(axisC) DISPL,0,C axis ACTIVE; ELSE CLR,0 END [ GEFUM:$ IF ((AUXM = 3)&axisM) SPROT(1)=1; SPDIR(1)=0; RTS IF ((AUXM = 4)&axisM) SPROT(1)=1; SPDIR(1)=1; RTS IF (AUXM = 5) LM05 IF (AUXM = 20) LM20 IF (AUXM = 21) LM21 RTS [Programmed function (Not controlled) [ LM05: SPROT(1)=0; RTS LM20: IF(axisC) CICM20=1; RTS; ELSE RTS [from C to S LM21: IF(axisM) CALL LM05; CICM21=1; RTS; ELSE RTS [from S to C [ [Reset to SPINDLE on interruption RESCM: $ JOGP(4)=0; MARK(4)=0; FOMAN(4)=0; DISRQ(4)=1 SPDRQ(1)=0; SPDIS(1)=0 CICM20=0; CICM21=0 axisC=0; axisM=1 RTS [................... program end .........................
1-42
Series S3000
1. Programming examples
1-43
Series S3000
1. Programming examples
1-44
Series S3000
1. Programming examples
1-45
Series S3000
1. Programming examples
N77 N78 N79 N80 N81 N82 N83 N84 N85 N86 N87 N88 N89 N90 N91 N92 N93 N94 N95 N96 N97 N98 N99 N100 N101 N102 N103 N104 N105 N106 N107 N108 N109 N110 N111 N112 N113 N114 N115 N116 N117 N118 N119 N120 N121 N122 N123 N124 N125 N126 N127
GIRMI=INT(ABS(SPTCH)) [display S END [ [ ROUTINES GEFUM: $ WNDINT(1)=AUXM [display M IF(AUXM=3) M03 IF(AUXM=4) M04 IF(AUXM=5) M05 IF(AUXM=20) M20 IF(AUXM=21) M21 IF(AUXM=101) M101 IF(AUXM=102) M102 IF(AUXM=103) M103 IF(AUXM=104) M104 IF(AUXM=112) M112 IF(AUXM=113) M113 RTS M03: SPDIR(1)=0; ROTMA=1; RTS M04: SPDIR(1)=1; ROTMA=1; RTS M05: ROTMA=0; RTS M20:COM,1,PROM20';RTS M21:COM,1,PROM21';RTS M101:SPDRQ(1)=1;SPDIS(1)=1;RTS [disable reading and [ [spindle control M102:DISRQ(4)=0;RTS [enable head axis reads [ M103:SHIFT(4)=SHIFT(4)+POO(4)-MEMTA;RTS [update head [ M104:DSERV(4)=0;RTS [enable head axis control [ M112:DISRQ(4)=1;DSERV(4)=1;RTS [disable reading and [ [head control M113:SPDRQ(1)=0;SPDIS(1)=0;RTS [enable reading and [ [spindle control [ INTSTA:SPDRQ(1)=1 [phase 1 initialize head SPDIS(1)=1 DSERV(4)=1 DISRQ(4)=0 SHIFT(4)=SHIFT(4)+POO(4)-MEMTA PFASE2=1 [set pulse 2a init. phase RTS [ FASE2:ROTMA=0 [phase 2 head init. SPDIS(1)=0 SPDRQ(1)=0 DISRQ(4)=1 DSERV(4)=1 RTS [................... program end.............................
1-46
Series S3000
APPENDICES
Series S3000
Series S3000
Appendix A - ASCII code table
DEC
HEX
DEC
HEX
DEC
HEX
CHAR BLANK
DEC
HEX
CHAR
000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
!!
(DC3) (DC4)
(NACK)
(SYN) (ETB)
Series S3000
Appendix A - ASCII code table
DEC
HEX
CHAR
DEC
HEX
CHAR
DEC
HEX
CHAR
DEC
HEX
CHAR
064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
@ A B C D E F G H I J K L M N O
CHAR
080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
P Q R S T U V W X Y Z [ \ ] ^ _
CHAR
096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
` a b c d e f g h i j k l m n o
CHAR
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
p q r s t u v w x y z { | } ~
DEC
HEX
DEC
HEX
DEC
HEX
DEC
HEX
CHAR
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
c
Y T
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
a o
176 177 178 179 180 181 182 183 184 185 186
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
Pt f
A-2
Series S3000
Appendix A - ASCII code table
DEC
HEX
CHAR
DEC
HEX
CHAR
DEC
HEX
CHAR
DEC
HEX
CHAR
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
n
2
BLANK "FF"
Series S3000
Appendix A - ASCII code table
A-4
Series S3000
Appendix B - Auxiliary functions table
CODE M00 - M01 - M02 M03 M04 M05 M06 M07 - M08 M09 M10 M11 M12 M13 M14 M15 - M18 M19 M20 - M29 M30 M31 - M39 M40 - M44 M45 M46 M47 M48 M49 M50 - M8999 M9000 - M9999 H0 - H9999 T0 - T9999 SO - S99999
HANDLED BY NC
FUNCTION DESCRIPTION Stop program Spindle ON CW Spindle ON CCW Spindle stop Tool change Coolant ON Coolant OFF Clamp axes Unclamp axes Syncronization Spindle ON CW with coolant Spindle ON CCW with coolant Unassigned Spindle orient Unassigned End of program Unassigned Change gear range Restore disabled axes Disable axes Unassigned Inibit rapid override Enable rapid override (default) Unassigned Unassigned Unassigned Tool length compensation Spindle speed
X X X X X X X X X X X X X X X X X X X X X X X X X X X X
X X
B-1
Series S3000
Appendix B - Auxiliary functions table
B-2
Series S3000
Appendice C - New Series S3000 functions compared to the S1200 system
Variables have been added to allow more flexible control of the active axes (M10-M11) configuration, for clamping or for switching with other axes. During the execution of a program it is possible to use manual mode to move the axes that are not controlled by the part program itself. It is possible to home the axes without any intervention by the operator, repeating it when necessary in automatic mode. The velocity of the axes in JOG can be set individually for each axis. Indexed, gantry, or mirrored axes are easily managed. The PLC functions make control via a remote console possible. When in HOLD status during the execution of a program it is possible to move the axes in JOG or with the handwheel. Up to 4 spindles are now managed directly with a reduced set of instructions using the internal SPINDLE MODULE. These instructions control velocity, orientation, range change, hunt, acceleration/deceleration ramps and synchronizing with secondary spindles. INDEPENDENT AXES not interpolated with the primaries may be controlled using a reduced set of dedicated functions via the INDEPENDENT AXIS MOVEMENT MODULE.
Series S3000
Appendix C - New Series S3000 functions compared to the S1200 system The execution of any NC program can be controlled by the PLC. The management of the manual or automatic tool change with subdivided tools for families or for different cuts is simplified using the TOOL CHANGE MODULE. Two logic sections have been introduced, in addition to the existing ones: Ultra FAST logic with scanning time equal to the system sampling rate(configurable). Ultra SLOW logic for the management of slow phenomena or very low priority functions. Softkeys managed by the PLC are now always present and accessible in every environment. Softkey selection menu to be activated can be done through an added PLC variable. The commands from the SOFTKEYS can be pulse or continuous for the length of time the softkey is pressed. This allows the substitution of actual external push buttons (JOG functions for example). Using the softkeys and the associated microeditor it is now possible to insert or to modify at the end user level the content of alphanumeric variables, as well as numeric variables. Servo parameters can be adjusted in real time via a softkey menu with simultaneous recall to the graphic analyzer. The results can be verified immediately without initializing the NC.
C-2
Series S3000
Appendice C - New Series S3000 functions compared to the S1200 system
Series S3000
Appendix C - New Series S3000 functions compared to the S1200 system
C-4
Series S3000
Appendice D Diagnostic Messages
D-1
Series S3000
Appendix D Diagnostic Messages E60: E62: E63: E64: E65: E66: E67: E68: E69: E70: E71: E72: E73: E74: E75: E76: E77: E78: E79: E80: E81: E82: E83: E84: E85: E86: E88: E89: E90: E91: E92: E93: E94: E95: E96: E97: E98: E99: E200: E201: E202: E206: E207: E208: E209: E210: E211: E212: E213: E253: E254: E255: E300: E301: E400: program read error recall of a program not existing in memory fixed cycle not executable with parameters given: S,F,J,Z fixed cycle programmed without spindle rotation M function probe not qualified stored search of a non-existing block hole start position (J) missing in def. fixed cycle cycle G88 followed by coord. other than spindle axis hollow with too many passes ( > 65535 ) error in a geometrical definition in collision control of tool with profile too many points or entities polygonal hollow with less than three points hollows programmed with definition of tool radius straight lines are parallel, intersection missing in roughing between plane profile and section profiles intersection missing between straight line and circle hollows profiled with passes parallel to the profile management of the islands of the profiled hollows entity length too great ( > 131071 mm ) concentric circles external circles coincident circles tangent circles internal circles error in definition of geometric entities division by zero square root of a negative number operations between P parameters with result too great error in definition of the program parameters axes out of position axis on limit negative position not allowed invers. of traversing direction of an entity of the profile value wrong or segment missing in fly block stored by peripheral with syntax error out of limits of the operating range syntax error in the block out of limits in copying probe crash in copying loss of probe contact in copying hardware fault on digital probe digital probe disconnected hardware extra-travel on digital probe deflection of copying probe at max. limits measurement probe (on/off) crash start of measuring cycle with probe deflected copy in semispace not allowed tool reset deflection at max. limits write error on digitizing file limits opening function G877 missing in copying limits closing function G877 missing in copying locking request between axes not reset locking request between axes already locked functions not envisaged by macro
D-2
Series S3000
Appendice D Diagnostic Messages E401: E402: E403: E404: E405: E406: E407: E408: E409: E410: E411: E412: E413: E414: E415: E416: E417: E418: E419: E420: E421: E422: E423: E424: E425: E426: E427: E428: E429: E430: E431: E432: E433: E434: E435: E437: E438: E439: E440: E441: E442: E443: E444: E445: E446: E500: E501: E502: E503: E504: E505: E506: E507: E508: E509: macro block in wrong order insufficient internal memory to execute macro compulsory parameters missing wrong parameters in call to macro wrong profile recalled in macro tool angles not compatible with profile too many threading passes number of threading passes insufficient (min. 4) threading of a circle non monotone profile on the feed axis pass depth null or negative stock causes interference between passes max. diam. of finite profile greater than that of workpiece elements of profile not connected elements of profile intersecting throat profile wrong width of throat less than of the tool number of threading passes null or negative tool angles and orientation missing profile approach/machining direction incompatibility incompatibility between profile and parameters defined memory for shadow zone storage missing number of entities greater than allowed insufficient length of profile profiles lie on the same plane profile of the limit zone concave island outside the profile macro cannot find entities in profile definition of finite profile only with horizontal entities min. diameter of profile greater than that of raw piece bevels and joints defined simultaneously incorrect inclination of first or last entity of the throat under-cut in profile of throat circle of radius zero in profile of throat length of exit greater than length of thread tool radius without orientation tool orientation incompatible with work direction shadow zone control with wrong orientation shadow zone control with wrong tool angles tool radius different from standard values tool orientation wrong tool width missing maximum depth of tool null or negative tool width and radius incompatible extreme points of finite and raw profiles non coincident tool present both in gripper and in storage tool present both in int. st. and in storage tool present both in spindle and in storage tool position already occupied for tool.. front positions insuff. for size of tool.. rear positions insuff. for size of tool.. size inconsistent for planar, tool.. tool .. requested missing from table tool .. not enabled tool .. to be placed missing from table
D-3
Series S3000
Appendix D Diagnostic Messages E510: E511: E512: E513: E514: E515: E516: E518: E519: E520: E521: E522: E951: E990: E991: E992: E993: E1001: E1002: E1003: E1004: E1005: E1006: E1007: E1008: E1009: E1010: E1011: E1012: E1013: E1032: E1033: E1034: E1036: E1037: E1061: E1062: E1063: E1064: E1065: E1066: E1067: E1068: E1069: E1070: E1080: E1108: E1113: E1116: E1130: E1158: E1159: E1160: E1161: E1162: tool to be taken out missing from storage tool to be returned already in storage storage place missing for tool to be loaded from spindle storage place missing for loading tool from prog. T storage place missing for loading from intermediate stat. storage place missing for loading tool from gripper tool change cycle interrupted due to M.T. switch-off tool table with inconsistent data.. wrong position associated with tool.. manual loading of tool also present in storage tool T0 pick/place requested random-fixed loading not allowed: num.tool.. error in DDI Procedure Command syntax error in file CAMME at line.. wrong table number in file CAMME at line.. too many values in file CAMME at line.. insuff. number of values in file CAMME at line.. Gray code fault on axis absolute transducer.. signal too high analog transducer of axis.. signal too low analog transducer of axis.. position read discontinuity axis.. servomechanism error axis.. wrong number of pulses increment. transducer axis.. fault with transducer of axis.. out of tolerance positioning of axis.. contact missing between drilling head and plate error of drilling destination plane drilling coordinates outside work area combination of sz commands not allowed quik value greater than programmed safety position spindle analog transducer signal too high spindle analog transducer signal too low spindle axis position reading discontinuity spindle increment. transducer wrong number pulses faults with spindle transducer Gray code faults absolute transd. point-to-point axis.. transducer signal too high point-to-point axis.. transducer signal too high point-to-point axis.. point-to-point axis position reading discontinuity servomechanism error of point-to-point axis.. wrong no. transducer pulses point-to-point axis.. faults with transducer of point-to-point axis.. secondary transd. signal too high point-to-point axis secondary transd. signal too low point-to-point axis faults with secondary transducer point-to-point axis faults with potentiometric comparator.. interpol. overrun for successive block not ready ROM memory error Inductosyn module RAM memory error Inductosyn module not enough time for axes of Inductosyn module control thermocouple acquisition error thermocouple signal interrupted control thermocouple signal too high control thermocouple signal too low control faults on control thermocouple transducer
D-4
Series S3000
Appendice D Diagnostic Messages E1163: E1164: E1165: E1200: E1202: E1204: E1206: E1208: E1210: E1212: E1214: E1216: E1218: E1220: E1222: E1224: E1226: E1300: E1302: E1304: E1306: E1310: E1312: E1314: E1316: E1318: E1320: E1322: E1324: E1421: E1422: E1450: E1994: E2000: E2001: E2002: E2004: E2006: E2008: E2010: E2012: E2014: E2016: E2018: E2019: E2020: E2021: E2022: E2024: E2026: E2028: E2030: E2032: E2034: E2040: joint-cold signal too high joint-cold signal too low faults on joint-cold transducer CPU master overrun: simulated work CPU master overrun: position display CPU master overrun: secondary sampling CPU master overrun: primary sampling CPU master overrun: system timer CPU master overrun: PLC debugger CPU master overrun: point-to-point axes CPU master overrun: temperature controls CPU master overrun: interpolator MODIND overrun fast cycles too long at PLC line.. ultra-fast cycles too long at PLC line.. too many writes in tool table too many writes in tool table, PLC line.. malfunctioning I/O MIX.. digital expansions Watch Dog on I/O MIX.. Watch Dog on I/O MIX.. overrun on I/O MIX.. error on I/O MIX digital outputs, byte.. +24V power supply failure I/O MIX.. +24V power supply failure I/O MIX, expansion.. wait for +24V power supply I/O encoder +5V power supply missing I/O MIX.. handwheels +15V power supply missing I/O MIX.. external +-15V power supply missing I/O MIX.. potentiometers power supply missing I/O MIX.. DDI C1D Error,drive #, IDN000BH= H, IDN0081H= H DDI C2D Error,drive # ,IDN000CH= H, IDN00B5H= H DDI error,board #, SRCERM= H,SRCERR=H access to missing component, PLC line.. stack overflow on PLC line.. CCL too large on PLC line.. too many nested CALLs on PLC line.. unbalanced RTS on PLC line.. too many nested EXEC on PLC line.. unbalanced ENDE on PLC line.. PLC not running PLC not executable DEF SEQCU(n) with wrong number on PLC line.. DEF SEQCU(n)=a,b, wrong (order a,b,) PLC line.. DEF SEQCU(n)=a,b, incomplete on PLC line.. a.t.c. NOT config.: impossible DEF SEQCU PLC line.. a.t.c. configured without storage places tool life parameters inconsistent.. tool change mode wrong: SELECU=.. a.t.c. sequence not managed by PLC: NSEQCU=.. string too long in PLC line.. DISPL on non-existent line in PLC line.. CLR on non-existent line in PLC line.. non-existent string in PLC line.. variable index wrong in PLC line.. branch/set unordered condition in PLC line..
D-5
Series S3000
Appendix D Diagnostic Messages E2041: E2042: E2043: E2044: E2045: E2046: E2047: E2048: E2100: E2101: E2500: E2501: E2502: E2503: E2504: E2505: E2506: E2507: E2508: E2509: E2510: E2511: E2512: E2513: E2514: E2515: E2516: E2517: E2518: E2519: E2525: E2526: E2530: E2532: E2534: E2560: E2562: E2563: E2564: E2570: E2571: E2572: E2580: E2581: E2590: E2591: E32102: E10000: E10001: E10002: E10004: E10010: E10011: E10015: E10016: not a float.point number in PLC line.. float.point operand error in PLC line.. float.point overflow in PLC line.. float.point underflow in PLC line.. division by zero float.point in PLC line.. fpu inexact operation in PLC line.. fpu inexact decimal input in PLC line.. incorrect use of FPERMK mask in PLC COMR of a non-existent file in robot area.. syntax error in robot area.. expression non-compilable syntax error operand invalid ASCII symbol too long operator not allowed label not declared recall to labels between different sections logic line too long reserved symbol symbol already defined section already defined variables addresses not matched symbol not defined dimension error too many I/O on module PULSES out TIMERS out COUNTERS out SOFTKEYS out HARDKEYS out too many HARDKEYS per menu request for a non-existent HARDKEY menu too many variables defined code not generated fatal error: impossible operation expression too complex operands inconsistent unbalanced brackets incorrect use of a variable too many nested EXEC EXEC without ENDE ENDE without EXEC too many numeric variables to be displayed too many string variables to be displayed too many digital signals to be traced too many analog signals to be traced M.T. switched off due to break in communication with PC Time-out awaiting response from board #... Error on RIO master,board #... BINary file missing for management of board #... No slave detected on RIO master,board #... Malfunctioning RIO slave,board #... slave #... RIO slave unknown,board #... slave #... Watch-dog RIO slave,board #... slave #... RIO reception error,board #... slave #...
D-6
Series S3000
Appendice D Diagnostic Messages E10017: E10018: E10020: E10021: RIO slave response missing,board #... slave #... RIO output error,board #... slave #... byte #... RIO 24V power supply error,board #... slave #... base RIO 24V power supply error,board #... slave #... expansion #...
D-7
Series S3000
Appendix D Diagnostic Messages
D-8