MotionOne CM X D=20 G&M Code Programming Manual Y Z General information, G and M Functions, parameter programming and FlexProg 80 I=50 J=20 50 CNC Programming 10 10 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 MotionOne CM G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Information valid as of: 02/2019 Valid for the following CNC Firmware versions: n FW-MO-CM06-CNC-00-MC-02-xx-xx n FW-MO-CM06-CNC-01-USB-02-xx-xx The German version is the original version of this documentation. MotionOne CM - G&M Code Programming Manual 2 Legal information We reserve the right to make technical changes. This programming instruction has been prepared based on DIN EN 82079-1. The content was compiled with the greatest care and attention and reflects the latest information available to us. We should nevertheless point out that this document cannot always be updated in line with ongoing technical developments in our products. Information and specifications are subject to change at any time. For information on the latest version please visit www.lti-motion.com. Copyright © The entire contents of this documentation, especially the texts, photos and graphics it contains, are protected by copyright. The copyright is owned by LTI Motion GmbH unless specifically marked otherwise. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Legal information MotionOne CM - G&M Code Programming Manual 3 Table of contents MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Table of contents Legal information 3 Table of contents 4 1 General 6 1.1 1.2 1.3 1.4 1.5 1.6 Target group Requirements Applicable documents Pictograms Exclusion of Liability Support 2 Safety 2.1 2.2 2.3 2.4 Overview For your own safety Safety information and warnings Responsibility 3 General definitions 3.1 Address letters 3.2 Axis numbers 4 Components of a G&M code program 4.1 General information on the structure of blocks 4.2 M-codes 4.2.1 General M functions 4.2.2 M functions for control type eroding “EROD” 5 G Functions: General explanations 5.1 G00 Positioning in fast jog speed 6 6 6 7 7 7 9 9 9 9 10 11 11 12 13 13 14 14 15 17 18 5.2 G01 Positioning at the feed rate 5.3 G02 Circular interpolation - ClockwiseG03 Circular interpolation - Anti-clockwise 5.4 G04 Dwell time 5.5 G05 Spatial arc interpolation 5.6 G14 Macro call 5.7 G17-G19 change of plane 5.8 G22 Subroutine call 5.9 G23 text functions 5.10 G24 Definition of rescue point 5.11 G25 RTCP Rotation Tool Centre Point 5.12 G26 Free plane 5.13 G27 Tool zero point 5.14 G30 Spline interface (online spline) 5.15 G305 P5 interpolation (online polynomials) 5.16 G40 Deletion of the tool path correction / milling cutter radius correction 5.17 G41 Tool path correction / Milling cutter radius correction left 5.18 G42 Tool path correction / Milling cutter radius correction right 5.19 G43 Tool path correction / Milling cutter radius correction up to 5.20 G44 Tool path correction / Milling cutter radius correction via 5.21 G50/G51/G52 PRESET 5.22 G50 Deactivate PRESET 5.23 G51 Activate PRESET 5.24 G52 Program PRESET 5.25 Zero offset and coordinate rotation 5.26 G53 Deletion of the zero offset 5.27 G54 - G59 zero offset and coordinate rotation 5.28 G60 Exact stop on 5.29 G61 Exact stop off 5.30 G70 Units of measurement in inches (inch) 5.31 G71 Units of measurement in millimetres (mm) 5.32 G72 Deletion of mirror image machining and scaling 5.33 G73 Mirror image machining 5.34 G73 Scaling 5.35 G79 Cycle execution 5.36 G90 Absolute measure 5.37 G91 Relative measure 5.38 G92 Relative zero point offset and coordinate rotation 4 18 19 20 21 22 23 24 25 26 27 29 32 35 36 37 38 39 40 41 42 43 43 44 46 47 48 51 52 53 53 54 55 56 57 58 58 59 5.39 G93 Absolute zero point offset and coordinate rotation 5.40 G94 Speed programming 5.41 G95 Time programming 5.42 G107 Eroding: Define the directional vector for the lift-off movement 5.43 G181 Probe calibration 5.44 G190 Absolute circle centre 5.45 G191 Relative circle centre 5.46 G288 Set Look Ahead parameters 5.46.1 G288,0 LookAhead basic parameter 5.47 G305 P5 interpolation (online polynomials) 5.48 G488 Simple measurement block 5.49 G488,1 Simple measurement block 5.50 G581 Continuous operation rotation 5.51 G781,1 Spindle offset 5.52 G783,0 Read/Write zero offset 5.53 G1000 eroding: Speeds 5.54 G1001 Eroding: Path descriptions 5.55 G1002 Eroding: Factors and modes 5.56 G1003 Eroding: Time data 5.57 G1004 Eroding: Orbital movement in the selected plane 5.58 G1005 Punching: Parametrization and activation 5.59 G1010 Laser command without exact stop 5.60 G1011 Laser command with exact stop 5.61 G1014,x data exchange for synchronized tasks 5.62 G1015 Laser processing: Laser Start 5.63 G1016 Laser processing: Laser Stop 5.64 G1017 – NDC functions (nozzle distance control) 5.65 G1018 – Functions of the calibration table and the velocity profile (nozzle distance control) 61 63 64 65 66 67 68 69 69 70 71 74 75 76 78 80 81 83 85 86 87 90 91 93 94 94 95 101 7 Flexible G&M code Programming (FlexProg) 102 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Table of contents 8 Index 103 104 104 105 105 106 107 107 108 109 109 109 110 110 110 111 112 112 113 115 119 97 6 Parameter programming 7.1 General 7.2 Restrictions 7.3 General program structure 7.4 Data type 7.5 Functions 7.5.1 Function declaration 7.5.2 Macros and Q parameters 7.5.3 Function definition 7.5.4 Variables 7.5.5 Communication variables 7.5.6 Expressions and operators 7.5.7 Mathematical functions 7.5.8 Assignment of G-Code addresses 7.5.9 Comment marks 7.5.10 Point definition 7.5.11 Instruction 7.5.12 Jump marks 7.5.13 GOTO/IF ... GOTO/IF ELSE 7.5.14 FOR loops 7.5.15 WHILE loops 7.5.16 DO ... WHILE loops 7.5.17 SWITCH ... CASE branching 7.6 Sample programs 102 103 103 MotionOne CM - G&M Code Programming Manual 5 1 General MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 1 General The LTI Motion GmbH product DVD contains the complete documentation belonging to the respective product series. The documentation of a product series includes Betriebsanleitung (hardware description), Geräte Hilfe and Programm-Hilfe (software description) and other Benutzerhandbücher (e.g. field bus description), programming instructions and Ausführungsbeschreibungen. They are available in 6 Work related to other specialised areas, such as transportation, storage and disposal must be performed exclusively by appropriately trained personnel. NOTE l This description is only valid for MotionOne CM Steuerung in the CNC version. PDF format. 1.3 Applicable documents 1.1 Target group Dear user, The programming instructions are designed for trained specialists. A basic knowledge of CNC programming is a prerequisite. The target group includes people such as programmers, developers and project engineers with appropriate training. 1.2 Requirements Requirements for using LTI Motion GmbH devices: l l l l The documentation for the devices must be legible, accessible at all times and kept for the product’s entire service life. Read and understand the documentation for your device. Qualification: To avoid bodily injury and property damage, only qualified personnel with electrical training may work with/on the device. Required knowledge: - national accident prevention rules (e.g. BGV A3 in Germany) - setup, assembly and commissioning of the device All of the further applicable documents for this device can be found on our website: www.lti-motion.com under MotionOne CM 1.4 Pictograms 1.6 Support The pictograms used in this documentation have the following meaning for the user: Address: l References to other documents or help systems. Our Helpline can assist you expediently and quickly in the event of questions on the programming of your machine. The technical CNC Helpline in Wasserburg can be reached via email or telephone: NOTE l LTI Motion GmbH Am Weiher 2 88142 Wasserburg Deutschland Useful information and special notes. Opening hours: Mon–Thu: 8 am–5 pm (CET) Fri: 8 am–12 pm (CET) For the pictograms for “safety information and warnings” used in this documentation, see the Abschnitt "Safety information and warnings" auf Seite 9. 1.5 Exclusion of Liability Observing all the instructions and information in the documentation for LTI Motion GmbH devices is a prerequisite: l l Email: helplinecnc@lti-motion.com Telephone: +49 8382 9855-65 NOTE l For detailed information on our services, please visit our website, www.lti-motion.com. for safe operation and to attain the performance characteristics and product characteristics described. LTI Motion GmbH accepts no liability for personal injury, material damage or financial losses arising from failing to observe the documentation. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 1 General MotionOne CM - G&M Code Programming Manual 7 1 General Id.-Nr.: 1400.210B.0-02 Version: 02/2019 MotionOne CM - G&M Code Programming Manual 8 2.3 Safety information and warnings 2 Safety Our devices may pose certain hazards. Therefore, always observe the following safety information and warnings. 2.1 Overview CAUTION! Our devices are designed and built with the latest technology and comply with all recognized safety rules and standards. Nevertheless, there are potential hazards that may arise during their use. In this chapter: l l l Your system/motor may be damaged if put into operation in an uncontrolled or inappropriate manner. Improper conduct can cause damage to your system / machine. We provide information regarding the residual risks and hazards posed by our devices when they are used as intended. l We warn you about foreseeable misuse of our devices. We point out that it is necessary to exercise due care and caution and go over measures designed to minimize risk. 2.2 For your own safety When installing and commissioning your device, you must observe the documentation for the relevant device family! Our devices are designed to be fast and easy to operate. For your own safety and to ensure reliable operation of your machine, take note of the following: Step Damage to the device as a result of incorrect operation! Failure to exercise caution or follow proper working procedures may result in damage to the device. NOTE l CAUTION! Before the “Start” step, make absolutely sure that a valid setpoint has been entered, as the configured setpoint will be immediately transmitted to the motor after the motor control function starts, which may result in the motor accelerating unexpectedly. l The mains voltage for the power supply must not be switched on until after the available mains voltage setting has been configured in the device firmware and the device is restarted (in the event that the mains voltage or the switching frequency has been changed). Action Precautions against bodily injury and property damage 1. Ensure there is no possibility of bodily injury or damage to the machine when testing and commissioning the device. To this end, make sure to observe Abschnitt "Safety information and warnings" auf Seite 9 as well. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 2 Safety MotionOne CM - G&M Code Programming Manual 9 2 Safety Id.-Nr.: 1400.210B.0-02 Version: 02/2019 2.4 Responsibility Electronic devices are not fail-safe. The company setting up and/or operating a complete machine or system is responsible: l For ensuring that the motor will be brought to a safe state if the device fails. l For the safety of persons and machinery. l For the complete machine’s functional capability. l For the risk assessment of the complete machine or system to DIN EN 12100:2011 (formerly DIN EN 14121:2007) and EN ISO 13849-1 (formerly DIN EN 954-1). Observe the section on “Electrical equipment of machines” in EN 60204-1:2006, "Safety of machines”. The safety requirements for electrical machines defined there are intended to ensure the safety of people, equipment and systems. The emergency-stop function (to EN 60204) shuts down the power supply of a machine, which leads to uncontrolled rundown of drives. In order to prevent hazards, check whether the following will be required: l Keeping individual motors running. l To initiate certain safety procedures. l Integrating an emergency stop function (emergency stop function: stopping movement by “switching off the electrical power supply” or STO Safe Torque Off). MotionOne CM - G&M Code Programming Manual 10 Character Function 3 General definitions 3.1 Address letters The following address letters have fixed meanings assigned to them. T Tool number M Machine function W Command extension Tabelle 3.1: Definition of the address letters (Fortsetzung) Character Function N Block number G Path condition A, B, C X Y, Z I, J, K Path information A axis, B axis, C axis Path information X axis, dwell time Path information Y axis, Z axis Interpolation parameters, circle centre F Feed speed, dwell time, time display at G95 (Inverse Time Programming) O Output address D Additional information (correction memory, cutting edge correction table) E Additional information on the PLC S Spindle speed Tabelle 3.1: Definition of the address letters Id.-Nr.: 1400.210B.0-02 Version: 02/2019 3 General definitions MotionOne CM - G&M Code Programming Manual 11 3 General definitions MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 3.2 Axis numbers The following axis numbers have fixed axes assigned to them. Axis Number Axis Number A 0 X‘ 8 X 1 Y‘ 9 Z 2 P 10 Y 3 Q 11 B 4 R 12 C 5 U 13 D 6 V 14 E 7 W 15 Tabelle 3.2: Definition of the axis numbers 12 4 Components of a G&M code program 4.1 General information on the structure of blocks The sequence of a machining process on the machine is described by the G&M code program. It consists mainly of a sequence of program blocks. A program block contains all of the information necessary for a work step. Block numbers can be entered under the address N. For the controller, programming without block numbers is also permitted. With program words/functions, as a general principle, a differentiation is made between modal (latching) and non-modal words. A word is modal if its value remains effective until it is overwritten by another value, or the end of the program has been reached. In contrast, non-modal words only have an effect within the block in which they have been programmed. The following functions can be programmed within a block. Character Function N Block number G Path condition A, B, C X Y, Z I, J, K Path information A axis, B axis, C axis Path information X axis, dwell time Path information Y axis, Z axis Interpolation parameters, circle centre F Feed speed, dwell time, time display at G95 (Inverse Time Programming) O Output address D Additional information (correction memory, cutting edge correction table) E Additional information on the PLC S Spindle speed T Tool number M Machine function W Command extension Tabelle 3.3: Overview of the functions within a block Id.-Nr.: 1400.210B.0-02 Version: 02/2019 4 Components of a G&M code program MotionOne CM - G&M Code Programming Manual 13 4 Components of a G&M code program MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 14 4.2 M-codes Example: G02 X50 Y0 I25 J0 F2000 S10000 M3 T7 M6 G02 Path condition circle in clockwise direction X50 X coordinate Y0 Y coordinate I25 Auxiliary parameter circle centre X coordinate J0 Auxiliary parameter circle centre Y coordinate F2000 Feed rate 2000 mm/min S10000 Spindle speed 10000 1/min M3 Machine function 'Spindle on' T7 Tool number 7 M6 Machine function 'Change tool' Special characters The following special characters can be used within a block: Character Function % The rest of the line is interpreted as a comment ; The rest of the line is interpreted as a comment [] Jump mark, index at FlexProg /*...*/ () Encapsulated comment at FlexProg Comment, function bracket at FlexProg Tabelle 3.4: Overview of permitted special characters The M functions initiate certain machine functions. These functions may differ depending on machine type/manufacturer. 4.2.1 General M functions M Function Effective* M00 Programmed stop End of block M01 Optional stop End of block M02 End of program End of block M19 Spindle stop with defined end position End of block M30 End of program with spindle 0 Off End of block Tabelle 3.5: General M functions * Note: The function takes effect only at the beginning/end of a block. 4.2.2 M functions for control type eroding “EROD” M Function M Function Effective* Effective* M802 Modulo formation off Start of block M92 Lift-off via programmed direction vector (G107 …) Start of block M803 Modulo formation on Start of block M93 Delete last retraction point Start of block M900 Activate sparking out Start of block M94 Spark erosion function AFC OFF, no forward and backward interpolation Start of block M95 Spark erosion function AFC ON Start of block M96 Retreat on the path ON Start of block M97 Retreat via points ON Start of block M98 Saving the actual position as a retraction point Start of block M800 Switching off collision protection via G&M-code program Start of block M801 Switch collision protection on again Start of block Tabelle 3.6: General M functions (Fortsetzung) Tabelle 3.6: General M functions Id.-Nr.: 1400.210B.0-02 Version: 02/2019 4 Components of a G&M code program MotionOne CM - G&M Code Programming Manual 15 4 Components of a G&M code program Id.-Nr.: 1400.210B.0-02 Version: 02/2019 MotionOne CM - G&M Code Programming Manual 16 5 G Functions: General explanations All of the following G-codes begin before the functional description with a definition of the property, topic, position and syntax. Property: modal / not modal MODAL means that the command/function remains active until it is overwritten. Topic: The G-codes can be divided into the following topics: n Interpolation type n Axis movement n Special command n Setup command n Tool command n Cycle command n Eroding command n Laser command n Punching command n ... Position: DEF = Default (active after starting the control unit) --- = Not pre-set Syntax: Syntax description Unit: (optional) Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 17 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.1 G00 Positioning in fast jog speed 5.2 G01 Positioning at the feed rate Property Topic Position Syntax Property Topic Position Syntax modal Axis movement --G00 18 modal Axis movement DEF G01 The path information G00 programs rapid traverse movements by specifying the The path information G01 programs feed movements by specifying the target point. target point. The target point is reached by entering it either in absolute or relative dimensions. The rapid traverse speed can be defined in the MotionCenter. The target point is reached by entering it either in absolute or relative dimensions. The feed rate can be defined in the MotionCenter or programmed by means of the F parameter. X X P1 P1 Y Y F2000 50 50 50 50 Example G00 X50 Y50 ;The axes are moved by interpolation to point P1 Example G01 X50 Y50 F2000 ;Positioning at point P1 at 2000 mm/min 5.3 G02 Circular interpolation - Clockwise G03 Circular interpolation - Anti-clockwise X Property Topic Position Syntax modal Axis movement --G02 / G03 <parameter list> A +20 C B -20 -20 -40 For the circular interpolation, the axes are moved on an arc from the starting point to the end point. The movement can take place clockwise by selecting G02 and anticlockwise by selecting G03. Circular interpolation must contain the following parameters and can be applied in all 3 planes (see also G17 / G18 / G19). G02 or G03 (direction of rotation), end point of the arc, radius of the circle (R) or circle centre (I, J, K). I, J, K are representing the axes X, Y and Z. The starting point of the arc is determined by the current axis position. The centre of the arc can be specified in absolute (G190) or relative (G191) coordinates. As an alternative to the centre, the radius can be programmed directly by entering the address letter R. However, this only applies to arcs having an angle of rotation of less than 180°. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations +40 Y -40 -Y -X Example G01 X0 Y0 ;Starting point approach G02 X0 Y0 I20 J0 ;Clockwise travel to X0 Y0. Circle centre at X20 Y0 (A) G03 X0 Y0 I-20 J0 ;Counterclockwise travel to X0 Y0. Circle centre at X-20 Y0 (B) G02 X0 Y-40 R20 ;Clockwise travel to X0 Y-40. Radius 20 mm (C) MotionOne CM - G&M Code Programming Manual 19 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.4 G04 Dwell time Property Topic Position Syntax Unit NOTE Only for laser applications in combination with the MotionOne CM E not modal G&M command --G04 <Parameter list> Seconds If the controller has been equipped with the MotionOne CM E expansion module and pulsing has been activated via "G1010 O1", the dwell time will be executed with higher accuracy. The time can then be programmed to the nearest 10 ns, i.e., the smallest value is 0.00000001 seconds. During this time, the pulses are output to the P output of the MotionOne CM E with a predefined pulse width. For laser applications, this function is called "stationary pulsing" or "piercing". The function G04 allows you to program a dwell time. The time is specified by the parameter X. The function is only effective blockwise. G04 must stand alone in an G&M-code program line For synchronization of FlexProg calculation and motion, G04 can be used, since a contour interruption takes place. This also applies to the dwell time X0. Address Value range Unit Accuracy X 0 sec – 2 years (default = 0) s Standard: 0.01 sec MotionOne CM E: 10 ns 12 1 11 1 1 1 10 1 2 8 4 2 3 9 7 5 6 9 3 8 4 7 5 6 20 Value range: 0 – 4 500 000 sec Example G04 X11.4 G04 X0 G04 ; Dwell time 11.4 seconds ; Dwell time 0 seconds ; Dwell time 0 seconds 5.5 G05 Spatial arc interpolation Property Topic Position Syntax modal Axis movement --G05 <Parameter list> This function allows you to describe a spatial arc (spatial circle section). No information such as radius or direction of rotation exists for this function. A G&M code for spatial arc interpolation must contain the following parameters: G05, end point of the spatial arc in X, Y and Z (A), intermediate point on the spatial arc in I, J and K (B). The starting point (C) of the spatial arc is determined by the current axis position. A B Z Y X C Example G01 X0 Y0 Z0 G05 X50 Y50 Z0 I20 J30 K30 ;Starting point approach ;Endpoint at X50 Y50 Z0 ;Intermediate point at X20 Y30 Z30 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 21 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.6 G14 Macro call Property Topic Position Syntax modal Special command --G14 N = [“] Macro name [“] [Pn] A macro is a self-contained program part that must be programmed only once. A macro is not executed until it is defined or called by the main program or another macro. In contrast to the genuine subprograms, macros are incorporated in the program text. A macro starts with a header in which the name of the macro is defined. No other instructions (not even block numbers) may be programmed in the header. The name of the macro must not contain more than 24 characters and stands between the character #. The end of the macro definition is marked by a block containing the instruction ##. Here, too, no other instructions may be programmed. Example #Rectangle# G01 X0 Y0 F2000 X100 Y100 X0 Y0 ## ;Header containing the name of the macro ;Instructions ;End identifier 22 The optional inverted comma characters [“] at the beginning and end of the name only have to be entered if the name of the macro contains symbols or blanks. The optional address letter 'P', followed by a number, indicates how many times the macro is to be executed. The maximum number of repetitions is: 256 If a macro has been defined as described above, it can be called in the program as follows. G14 N = Rectangle P3 ;Example macro called three times 5.7 G17-G19 change of plane CAUTION! Damage to the workpiece or the machine! Incorrect operation can cause damage to the workpiece or the machine. G17 Plane XY G18 Plane ZX G19 Plane YZ l l Property Topic Position Syntax modal Setup command Preset G17 G17 / G18 / G19 Using G17 / G18 / G19 causes the selection of the operating plane or the definition of the interpolation plane. G02 G0 2 G1 9 X G17 The use of G18 according to DIN 66025 can be activated in the XPanel user interface under – Service – F6-System programs – F4-System configuration – G&M converter > ‘G18 according to DIN 66025’. NOTE l l Z G18 in the CNC is not according to the DIN 66025. A change of plane via G17/G18/G19 does not cancel active zero offsets. A change of plane with G17/G18/G19 does not cancel an active rotation. G03 2 G0 G0 3 3 G0 8 G1 Y Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 23 5 G Functions: General explanations Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.8 G22 Subroutine call Property Topic Position modal Special command --- Syntax G22 N = [“]Program name [“] [Pn] G22 N = [“]Database path: Program name [“] [Pn] Programs that must be repeated several times can be called from a main program by entering G22. This program is available as a separate G&M-code program in the same database as the calling main program. If the program to be called is not included in the program database of the control, the database path must also be specified. Enter the designation from "Programs / data base:" to call the database path in the XPanel. Example G22 n="C01:ncprg_name" is loading from the user database path 1 G22 n="S05: ncprg_name" is loading from the system database path 5 The program name may contain 77 characters maximum. The optional inverted comma characters [“] at the beginning and end of the name only have to be entered if the program name contains symbols or blanks. The optional address letter 'P', followed by a number, indicates how many times the program is to be executed. The maximum number of repetitions is: 32767 Example G22 N = Feed program P3 ;Feed program called three times MotionOne CM - G&M Code Programming Manual 24 5.9 G23 text functions Property Topic Position Syntax Example not modal G&M command --G23 N = “Text “ P<Type> I<Index> The command G23 can be used to call up different functions with ASCII texts. The target is always to transmit a text with a length of 80 characters to the PLC, CNC or the display. P type Command I Index 3 Transfer text to the XPanel user interface 1-3 (Default: 1) 4 Redefines the measuring log file names of the measuring cycles "mprot.log". If no path is specified, the data are transmitted to %andronroot%\SystemData\Repository\Local Control\Measuring Protocol (C:\andron\SystemData\Repository\Local Control\Measuring Protocol\*). To store the measurement log on a different database path, the path can be placed in front of the file name, for example using ‘S02:’ (see also G22). Specified paths are not created by the CNC and must already exist at program start. not necessary 5 Writes the values of the communication variables into a log file. The name for the log file is specified according to the same rules as for P=4, whereby the database path of the current G&M code program is used as standard. IKV index 0 – 999 default: 0 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations G23 P3 N=“Finishing part1“ Text is displayed in the prompt of the XPanel position menue in line 1. G23 P3 N=“Finishing part1“ I1 Text is displayed in the prompt of the XPanel position menue in line 1. G23 P3 N=“External finishing work“ I2 Text is displayed in the prompt of the XPanel position menu on line 2. Beginning with this program line, the measuring cycles of the log file will be named with the specified G23 P4 N=“C01:Measurement_123.log“ designation C01: and the path specification and no longer with "C:\andron\ SystemData\Repository\Local Control\Measuring Protocol\mprot.log" IKV[100] = 156 G23 P5 N=“S02:Daten_123.log“ I100 The value of IKV[100] is written into the log file "C:\andron\SystemData\Repository\Cycles\Measuring Protocol\Daten_123.log". MotionOne CM - G&M Code Programming Manual 25 5 G Functions: General explanations Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.10 G24 Definition of rescue point Property Topic Position Syntax modal Rescue point --G24 [N = “Comment“] G24 allows a rescue point to be programmed in the G&M code. The controller then backs up all relevant data that are required for a rescue point allowing program resumption. Among other things, this includes saving of the line number, program name and how often a rescue point has occurred in the current program. This information can then be retrieved in the event of a program abort so that resumption is possible at the last rescue point by means of a block search. When a program is ended normally or a new program is started, the information on the last rescue point is reset. As an option, a comment can be added which is then also stored and can be retrieved. Example G24 N=“Begin Contour 5“ MotionOne CM - G&M Code Programming Manual 26 5.11 G25 RTCP Rotation Tool Centre Point Property Topic Position Syntax modal Transformation command --G25 <Parameter list> RTCP describes the functionality of keeping a (TCP - Tool Centre Point) constant during the movement of rotatory axes. Despite the use of rotatory axes, the position of the TCP relative to the workpiece does not change. RTCP normally effects a compensation movement of the corresponding axes if one of the rotary axes is moved. RTCP can be switched on/off with the H parameter to G25. The storing and restoring of RTCP states is administered specifically to the program, i.e. if RTCP is deactivated in the sub-program but the state RTCP active was stored in the main program, the state RTCP is actively restored after returning from the sub-program and the RTCP command. G Command Designation Meaning G25 H0 Switch off RTCP RTCP is deactivated G25 H1 Switch on RTCP RTCP is activated according to the kinematics of the machine defined in the machine parameters. G25 H2 Save RTCP state The state of RTCP (ON/OFF) is stored in the buffer, e.g. to be used with tool change G&M codes G25 H3 Restore RTCP state The state of RTCP (ON/OFF) stored in the buffer is restored, e.g. with a temporary deactivation in the tool change G&M codes Functional description Activation and deactivation of 5-axis transformation G25 RTCP The status of the transformation is displayed in the status area in the top right corner on the XPanel with the text "G25 RTCP” on an icon. Activation in the manual mode is possible by pressing the corresponding key. Activation in the MDI and automatic mode is also possible by entering G25 H1. In the position display, the position in the programming coordinate system (PROG system) is always shown on the display of the control positions. Upon activation or deactivation, the coordinates move depending on the position of the rotatory axes. G25 H1 / G25 H0 (On/Off) RTCP can be activated and deactivated as often as required within an G&M code program. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 27 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 28 Behaviour upon G&M RESET G72 / G73 Mirroring and RTCP If RTCP is active, it also remains active after an G&M RESET. The G73 command makes it possible to activate mirroring about the X or Y axis or also about both axes (prior to the activation of RTCP). EMERGENCY STOP by the operator, PLC or controller program RTCP is reset automatically. EMERGENCY STOP due to drive error RTCP is reset automatically. Programmed feed F The programmed feed with active RTCP always refers to the resulting path of all programmed axes. NOTE Referencing one or all axes l RTCP is not reset automatically. Tool change with RTCP active G25 H2: RTCP must be deactivated in the tool change program. The status of the function (on or off) is saved at the same time. G25 H3: After tool change, the previous status of the RTCP function in the tool change program is restored. Changing axis orientations in RTCP The axis orientation can be changed manually in the automatic interruption mode and the program can be continued. The speed control is, however, optimised with regard to the previous axis orientation and is maintained. The changed setting is retained until the next rotary axis positioning takes place. Moving axes in MDI with RTCP active All axes may be moved in MDI. There is no restriction as a function of the RTCP function. The tool is set down in a configurable order. For large angular positions, we therefore recommend positioning the rotatory axes in the manual mode. 5.12 G26 Free plane Property Topic Position Syntax modal Transformation command --G26 <Parameter list> G26 without parameters deactivates the plane function Parameters Description H Switch H is used to define the application of rotation WX, WY and WZ. If H is not specified, H0 is applied. H0 The rotations are defined by means of Euler angles or solid angles. The angles are defined as follows: - WX - Rotation about the current Z axis - WY - Pivoting about the new Y axis - WZ - Rotation about the new Z axis The rotations are always executed in this order, I, J and K must not necessarily be specified. The specification of WX and WY is normally sufficient. The command is used for defining the rotation of the programming coordinate system. It effects a rotation around the specified angles in the given order, the centre of rotation is the current zero point. The aim is the definition of a new machining plane which must not obligatorily be parallel to one of the main planes. No movement takes place after specification of G26. But the display of the current control position changes to the position with reference to the new system. After entry, the changed coordinate system becomes effective immediately. H1 The angular positions are to be applied in a given order, which is specified with I, J, and K. As a default the following order applies: I1 J2 K3. Independent from the programmed order, the angles are specified as follows with reference to the machine coordinate system: - WX - Rotation around the X axis - WY - Rotation around the Y axis - WZ - Rotation around the Z axis H2 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations The defined angles define rotations in the stationary machine coordinate system. The order is therefore not to be specified. An angle defined with WX rotates the coordinate system around the not-turned X axis of the machine system, no matter if other rotations already apply. - WX - Rotation around the existing X axis - WY - Rotation around the existing Y axis - WZ - Rotation around the existing Z axis MotionOne CM - G&M Code Programming Manual 29 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Parameters Description The parameter R can be used to control whether the defined rotation shall take place with reference to the stationary machine axes or shall be rotated relative to the current, already turned system. If R is not specified, R0 is applied. R can be used with all angle variants of H. R R1 new rotation is relative to the current coordinate system R0 new rotation is relative to the machine coordinate system WX, WY, WZ I, J, K These parameters contain the angles to be set. Parameter H controls how to calculate these angles to reach the new position. Order of the rotations with H1 where the following applies: - I is the position of the rotation WX around the X axis - J is the position of the rotation WY around the Y axis - K is the position of the rotation WZ around the Z axis. If no order is specified, the following applies: I1 J2 K3. If an order is specified for the rotation, all the defined angles must be programmed with an information regarding the order. For H0 and H2 it is not necessary to specify an order. NOTE l Function G26 does not belong to the group of commands for a change of plane. It can be combined with G17, G18 and G19. 30 Example: Pocket milling on non-parallel planes, kinematics swivel head/rotary table n cuboid workpiece with pocket geometry on inclined plane n point X70 Y30 Z50 is the marginal point of the new machining plane n the pocket has the sizes 35x20x25 [mm] n blue coordinate system is created by offset with G92 n G26 rotates and pivots the system into the new position which created the yellow coordinate system and the searched-for machining plane (dark grey) ... ;Tool selection, technological data G53 ; delete all zero offsets G56 ; Workpiece zero with coordinate system parallel to the machine coordinates system (light-green) G92 X70 Y30 Z50 ; Zero offset to the workpiece (blue) G26 H1 WZ=-45 WY=30 K1 J2 ;Rotation of the system, initially about the Z-axis (WZ=-45 K1), then pivoting of the system about the new Y-axis (WY=30 J2) – the new programming coordinate system thus results (yellow) ; G26 WZ=-45 WY=30 ;G26 WZ=-45 WY=30 ; same command but using Euler or solid angles, simple application, here as a comment G25 H1 ; Activate RTCP G0 C45 B30 ; Pivot in G87,1 B2 Z25 K5 X35 Y20 R4 J1 I40 D0 E250 ; Cycle definition in standard coordinates G79 X15 Y0 Z0 ; Execution instruction G26 ; Cancellation of the plane definition, G56 and G92 are active again G53 ; Cancellation of the absolute and relative zero offset G56 ; Activation of the workpiece zero ... Example: Example of order G26 H1 WZ=-45 WY=30 K1 J2 Example of Euler G26 WX=-45 WY=30 Example of cancellation G26 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 31 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.13 G27 Tool zero point Property Topic Position Syntax modal Transformation command --G27 <Parameter list> The command is used to define an offset and rotation of the tool system. It causes an offset of the leading point of the control to the specified point. G27 does not cause any movement, but it causes a jump in the display of the control position when activated. After the specification, the changed tool system becomes active immediately. Parameters Description X, Y, Z, C These parameters contain the offsets to be defined. G27 is usually programmed after a tool or spindle change if this change have an effect on the leading position of the control. The new programming of G27 cancels all previously valid values, i.e.: n all previously valid parameters are deleted, set to 0.0, n the axes that have actually been programmed are transferred to the new offset/rotation, n Cascaded specifications for the offsets are not possible. All movements of the rotary axes are compensated by the control when G27 is active, as if the rotation is executed in the tool zero point. This ensures that all relevant compensation movements are calculated and moved in the interpolation cycle from the changed positions of the C axis. Therefore, the RTCP function is 32 automatically activated at the same time as the tool zero point. The deactivation of RTCP also occurs automatically with the cancellation of G27. It is therefore not necessary to program G25 within G27. G27 is activated/deactivated either in the G-code program or in MDI. Offset The offset to be specified consists of components X, Y and Z and is specified from the new tool zero point. The reference system is the tool coordinate system parallel to the machine coordinate system with the origin around the centre of the tool holder. Rotation State In addition to the offset of the tool zero point, the parameter C can also be used to specify a rotated clamping of the tool. The angle also refers here to the position of the tool clamping system in relation to the new system. The tool in the Fig. is rotated by 30° in the clamping. The angle is specified in cycle G27 as parameter C. The status of the tool zero compensation is displayed in the XPanel. If cycle G27 has been activated in MDI or AUTOMATIC, the corresponding symbol is displayed. G27 RTCP G27 was activated for an electrode offset, at the same time RTCP was switched on. Kinematics Activation of the dynamic TCP routing requires the correct specification of the machine kinematics in the MotionCenter. Using the example of an eroding system with C-axis in the tool holder, the following entry would be necessary: Parameters Description Value E-0-0700 Kinematics model of the machine 30 Example G27 X-25 Y-10 Z50 C-30 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 33 5 G Functions: General explanations Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Bild 4.1: Machine configuration in the MotionCenter, setting Kinematics model of the machine MotionOne CM - G&M Code Programming Manual 34 5.14 G30 Spline interface (online spline) Property Topic Position Syntax modal Traverse command --G30 <Axis information> or <Spline head data> To do a fast and efficient analysis of the G-code created with spline, the spline data are reduced to an introductory path condition G30 with spline head data and a block matrix. The converter recognizes from this the start situation (cf. path starting point up to now) and treats this accordingly. First spline arc point is implicitly the position which has been reached until then. Start direction in the first spline arc point is the direction vector arising due to the Euclid distance calculation, i.e. the direction vector between the current position and the first entry of the spline arc points. This needs to be taken into account in the calculation of the first arc length (resulting path) in the start interval within the program to be created. Within the spline head data it is possible to also optionally declare the direction of start at the starting point of the spline. { pos, pos, [pos, ...,] ric, ric, [ric,...,] weg [,Fwert] pos, pos, [pos, ...,] ric, ric, [ric,...,] weg [,Fwert] ... pos, pos, [pos, ...,] ric, ric, [ric,...,] weg [,Fwert] } The following parameters are used for definition: Designation Description Axis information Possible axis information: A B C X Y Z The axis information defines the axis allocations and the order of the subsequently expected positions and directions. There must be a minimum of two and up to a maximum of six axis indications available. Spline head data Axis identifiers of the axes involved (A, X, Z, Y, B, C, U, V) in control sequence with optional start direction [ric]. Between the axis information and/or the start direction components there is no delimiter (space or comma) necessary. If start direction components are used, the G&M converter expects a directional component for every axis identifier. The directional components are not necessarily standardized. pos Position of an axis ric Direction part (directional component) of an axis, not necessarily standardized path Approximated curve length in mm (convention: In the calculation of the curve or arch length, mm is set to be the same as degrees and either all axes should/have to be involved or a 'fictive path' that contains the speed profile should/have to be indicated.) Fvalue Optional indication of speed in mm/min related to the resulting path in the interval. Example Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations AXZ Y ; axis identifier without direction of start component (axis information) A0.7 X1.0 Z0.33 Y0.1 C0.0 ; axis identifier with direction of start component (spline head data) MotionOne CM - G&M Code Programming Manual 35 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.15 G305 P5 interpolation (online polynomials) Property Topic Position Syntax modal Traverse command --G305 <axis information> To make the analysis of the created G&M code with polynomials efficient and fast, the polynomial data are reduced to an introductory path condition G305 with polynomial head data and a block matrix. From this, the converter generates a G01 for the first point (first block line after {...). The first spline arc point is the position reached in this manner. The first and second derivative in this first point of the polynomial chain is also taken from the data of the first block entry line. { pos, pos, [pos, ...,] ric, ric, [ric,...,] , d2, d2, [d2,...,] path [,Fvalue] pos, pos, [pos, ...,] ric, ric, [ric,...,] , d2, d2, [d2,...,] path [,Fvalue] ... pos, pos, [pos, ...,] ric, ric, [ric,...,] , d2, d2, [d2,...,] path [,Fvalue] } 36 The following parameters are used for definition: Designation Description Axis information Possible axis information: A B C X Y Z, A6= ... The axis information defines the axis allocations and the order of the subsequently expected positions and directions. At least two must be and a maximum of 6 axis indications can be available. Spline head data Axis identifiers of the axes involved (A, X, Z, Y, B, C, U, V) in control sequence. pos Position of an axis ric Direction part of an axis (first derivative of the axis polynomial Axis(Path)), scaled to the arc length (Path). d2 Second derivative of the axis polynomial Axis (Path), scaled to the arc length (Path). path Path of the virtual master axis in mm. Convention: In the calculation of the curve or arch length, mm is set to be the same as degrees and either all axes should/have to be involved or a 'fictive path' that contains the speed profile should/have to be indicated. The path must not become smaller than the Euclidean spacing of the points. Fvalue Optional indication of speed in mm/min related to the resulting path. This means that the virtual master axis path is travelled at the speed Fvalue. Example AXZ Y ; Axis designator 5.16 G40 Deletion of the tool path correction / milling cutter radius correction Property Topic Position Syntax modal Tool command DEF G40 Entering G40 will switch off all active milling cutter radius corrections (G41 - G44). Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 37 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.17 G41 Tool path correction / Milling cutter radius correction left Property Topic Position Syntax modal Tool command --G41 The contour of a workpiece can only be machined if the radius of the tool used is taken into account. Only the coordinates of the workpiece contour are programmed. The control will calculate the tool path on the basis of the saved tool parameters. With G41, the milling cutter radius correction takes place on the left from the workpiece. The viewing direction is the direction of travel of the tool. X Y 38 n After selecting the milling cutter correction (G41/G42), a G00 or G01 must be programmed in the same or in the following block. n A change in the direction of compensation is only possible via G40. n It is not allowed the change the current plane of compensation (G17-G19). Before selecting a different plane, you have to deselect the milling cutter radius correction. n During compensation, no zero offset (G54-G59) may be programmed. The active zero offset may not be changed when the milling cutter radius correction has been selected. Example G00 X0 Y0 G41 G90 G00 X60 Y80 G01 X140 F2000 Y20 X60 Y80 Y100 G40 ; Approach pre-position ; Switch on FRK ; Absolute measure programming is switched on ; Use fast jog to position at starting point A (X60, Y80) ; Line interpolation to point B (X140, Y80) ; Travel to point C (X140, Y20) ; Travel to point D (X60, Y20) ; Travel to point A (X60, Y80) ; Moving free ; Switch off FRK 5.18 G42 Tool path correction / Milling cutter radius correction right Property Topic Position Syntax modal Tool command --G42 n After selecting the milling cutter correction (G41/G42), a G00 or G01 must be programmed in the same or in the following block. n A change in the direction of compensation is only possible via G40. n It is not allowed the change the current plane of compensation (G17-G19). Before selecting a different plane, you have to deselect the milling cutter radius correction. n During compensation, no zero offset (G54-G59) may be programmed. The active zero offset may not be changed when the milling cutter radius correction has been selected. The contour of a workpiece can only be machined if the radius of the tool used is taken into account. Only the coordinates of the workpiece contour are programmed. The control will calculate the tool path on the basis of the saved tool parameters. With G42, the milling cutter radius correction takes place on the right from the workpiece. The viewing direction is the direction of travel of the tool. X Y Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 39 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.19 G43 Tool path correction / Milling cutter radius correction up to Property Topic Position Syntax modal Tool command --G43 With G43 active, the tool path is corrected up to the contour. When an interpolation movement is carried out within the current plane, at the end of movement, the tool centre in each axis is offset by the radius before the programmed end point. The function G43 is mainly used for "approaching" the contour to be compensated. With G43 active, only blocks containing linear movements (G00/G01) may be programmed. Circles or circular arcs (G02/G03) are not allowed. Example G0 X-10 Y10 Z0 G1 F2000 G43 G42 G01 Y20 X50 Y-10 G40 ; Approach pre-position ; Approach pre-position ; Activate G43 ; Activate FRK ; Contour ; Contour ; Contour ; Deactivate FRK 40 5.20 G44 Tool path correction / Milling cutter radius correction via Property Topic Position Syntax modal Tool command --G44 With G44 active, the tool path is corrected via the contour. When an interpolation movement is carried out within the current plane, at the end of movement, the tool centre in each axis is offset by the radius behind the programmed end point. The function G44 is mainly used for "approaching" the contour to be compensated. The path condition can be canceled by the functions G40, G41 and G42. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations With G44 active, only blocks containing linear movements (G00/G01) may be programmed. Circles or circular arcs (G02/G03) are not allowed. Example G0 X-10 Y30 Z0 G1 F2000 G44 G42 G01 Y20 X50 Y-10 G40 ; Approach pre-position ; Approach pre-position ; Activate G44 ; Activate FRK ; Contour ; Contour ; Contour ; Deactivate FRK MotionOne CM - G&M Code Programming Manual 41 5 G Functions: General explanations Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.21 G50/G51/G52 PRESET The command group G50-G52 is used to manage the position of fixed reference points (PRESET) in the machine coordinate system. These find use, for example, in the positioning and compensation of workpiece pallets, various different clamping systems and measuring positions in the working area. This is also used to support the differentiation of reference positions in the Manual and Automatic operation modes. The structure and manner of operation of PRESET is comparable to that of zero offsets. The zero offsets take effect cumulatively in addition to the active PRESET offset. In addition to the definition of offsets for all existing axes, PRESET also offers the option of compensation of rotations of the clamping system with reference to the machine system. These angles are defined as rotations about the axes X, Y and Z axes. The centre of rotation is the XYZ-vector from the offsets. Rotations in the PRESET system are referred to as RCS1 (RCS – Rotated Coordinate System). PRESET is activated in the G-Code program or in MDI with G51 and G52. PRESET is cancelled by specification of another saved PRESET offset with G51 Pn, the reprogramming of G52 with another parameter list or by deletion of all offsets with G50. No movement takes place after specification of G50-G52. But the display of the current control position changes to the position with reference to the new system. The changed coordinate system becomes immediately effective after the specification; the same applies to the possibly specified angle. MotionOne CM - G&M Code Programming Manual 42 5.22 G50 Deactivate PRESET 5.23 G51 Activate PRESET Property Topic Position Syntax Property Topic Position Syntax modal Setup command --G50 G50 deactivates the existing PRESET offset. Offsets programmed with G52 are not retained. modal Setup command --G51<P> P - A saved PRESET offset can be activated with G51 and the parameter P. The parameter P indicates the number of the offset in the table. If G51 is shown without the parameter P or with P0, then the saved SETPOS offset is activated. NOTE l In the G&M-code program, G51 is always programmed without a parameter. See G52 for the description of parameters for the Preset table. Example G51 P2 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations ;Activate entry G51 P2 of the Preset table MotionOne CM - G&M Code Programming Manual 43 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.24 G52 Program PRESET Property Topic Position Syntax modal Setup command --G52 <Parameter list> Parameters Description X, Y, Z, … (all existing axes) new zero point in the machine coordinates H Switch H is used to define the application of rotation WX, WY and WZ. If H is not specified, H0 is applied. H0 The rotations are defined by means of Euler angles or solid angles. The angles are defined as follows: - WX - Rotation around the current Z axis - WY - Pivoting about the new Y axis - WX - Rotation around the new Z axis The rotations are always executed in this order, I, J and K must not necessarily be specified. The specification of WX and WY is normally sufficient. H1 The angular positions are to be applied in a given order, which is specified with I, J, and K. As a default the following order applies: I1 J2 K3. Independent from the programmed order, the angles are specified as follows with reference to the machine coordinate system: - WX - Rotation around the X axis - WY - Rotation around the Y axis - WZ - Rotation around the Z axis If a PRESET offset is to be defined in the G&M-code program, it must be specified and activated with G52. Analogous to the zero offset, information on offsets and on the angular position (RCS1) may be contained here. 44 Example of Euler Parameters Description Order of the rotations with H1 where the following applies: - I is the position of the rotation WX around the X axis, - J is the position of the rotation WY around the Y axis, - K is the position of the rotation WZ around the Z axis. If no order is specified, the following applies: I1 J2 K3. If an order is specified for the rotation, all the defined angles must be programmed with an information regarding the order. For H0 and H2 it is not necessary to specify an order. I, J, K G52 X200 Y150 Z50 C30 H0 WY=1.2 WX=3.4 Example of order G52 X200 Y150 Z50 C30 H1 WY=1.2 WZ=3.4 J2 K1 The defined angles define rotations in the stationary machine coordinate system. The order is therefore not to be specified. An angle defined with WX rotates the coordinate system around the not-turned X axis of the machine system, no matter if other rotations already apply. - WX - Rotation around the existing X axis - WY - Rotation around the existing Y axis - WZ - Rotation around the existing Z axis H2 WX, WY, WZ These parameters contain the angles to be set. Parameter H controls how to calculate these angles to reach the new position. NOTE l The angular position of the machine coordinate system can be changed using G51 and G52. The programmed movements are therefore no longer necessarily carried out on the axes which actually exist, but are instead composed of the movements of several axes whereby directional changes are possible as well. This applies also to the manual mode and MDI. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 45 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.25 Zero offset and coordinate rotation The zero offset makes it possible to move the program or workpiece zero to any desired position within the control range. After a zero offset, all programmed positions are re-referenced to this new point. The following zero offsets are available: n SETPOS function in the user interface n PRESET function G50 - G52 n RCS1 clamping position correction based on PRESET n Saved zero point offset G54-G59 n Programmable absolute zero offset G93 n RCS2 clamping position correction based on zero offsets n Programmable relative zero offset G92 n Programmed rotation with G92 W or G26 G54 ...... ...... G59 G93 G92 + G53 SETPOS G52 + G51 G50 Bild 4.2: Zero offset and coordinate rotation 46 5.26 G53 Deletion of the zero offset Property Topic Position Syntax modal Setup command DEF G53 G53 will switch off all zero offsets. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 47 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.27 G54 - G59 zero offset and coordinate rotation Property Topic Position Syntax modal Setup command --G54 - G59 <zero point> P0 – P99 <zero point page> Use G54 – G59 P0 – P99 to call up saved zero offsets. All of the parameters described in the following are not called in the G&M-code program, but are instead to be entered in the zero point table. Parameters Description X, Y, Z, A, B, (all existing axes) new zero point in the machine coordinates C Rotation RCS 0 - OFF / 1 – ON (RCS2 rotation) H Switch H is used to define the application of rotation WX, WY and WZ. If H is not specified, H0 is applied. H0 The rotations are defined by means of Euler angles or solid angles. The angles are defined as follows: - WX - Rotation around the current Z axis - WY - Pivoting about the new Y axis - WX - Rotation around the new Z axis The rotations are always executed in this order, I, J and K must not necessarily be specified. The specification of WX and WY is normally sufficient. H1 The angular positions are to be applied in a given order, which is specified with I, J, and K. As a default the following order applies: I1 J2 K3. Independent from the programmed order, the angles are specified as follows with reference to the machine coordinate system: - WX - Rotation around the X axis - WY - Rotation around the Y axis - WZ - Rotation around the Z axis NOTE l 48 In the G&M-code program, G54 – G59 P0 – P99 are always programmed without parameters. The following description of parameters refers to the zero offset table. Further examples Parameters Description I, J, K H2 ANG Order of the rotations with H1 where the following applies: - I is the position of the rotation WX around the X axis, - J is the position of the rotation WY around the Y axis, - K is the position of the rotation WZ around the Z axis. If no order is specified, the following applies: I1 J2 K3. If an order is specified for the rotation, all the defined angles must be programmed with an information regarding the order. The defined angles define rotations in the stationary machine coordinate system. The order is therefore not to be specified. An angle defined with WX rotates the coordinate system around the not-turned X axis of the machine system, no matter if other rotations already apply. - WX - Rotation around the existing X axis - WY - Rotation around the existing Y axis - WZ - Rotation around the existing Z axis (only P3) Rotation of the coordinate system on the current plane Example Example of Euler Example of order Example of cancellation Example of cancellation G55 P3 ;Activate zero offset G55 P3 G54 (X200 Y150 Z50 C30 H0 WY=1.2 WX=3.4) G54 (X200 Y150 Z50 C30 H1 WY=1.2 WZ=3.4 J2 K1) G53 G93 X100 Description G54-G59 or G54-G59 P0-P99 define the position of the workpiece in the machine system. Translatory and rotatory offsets and data on the clamping position can be saved. No movement takes place after specification of G54-G59 or G54-G59 P0P99. But the display of the current control position changes to the position with reference to the new system. The changed coordinate system becomes immediately effective after the specification; the same applies to the possibly specified angle. G54-G59 or G54-G59 P0-P99 is activated in the G-Code program or in MDI. G54G59 or G54-G59 P0-P99 is cancelled by specification of another absolute zero point offset with G54-G59 or G54-G59 P0-P99, or by deletion of all offsets with G53. NOTE l l The angular position of the programming coordinate system can be changed using G54-G59 or G54-G59 P0-P99. The programmed movements are therefore no longer necessarily carried out on the axes which actually exist, but are instead composed of the movements of several axes whereby directional changes are possible as well. This applies also to the manual mode and MDI. None of the programmed rotations is deactivated when the plane is changed. Example G55 P1 The angle programming by WX, WY and WZ is to be preferred in any case over the plane-dependent rotation with parameter W. The rotation of program parts, however, should be realized with G26 or G92. Programming G93 without parameters deactivates the compensation of the clamping position and deletes the old angle specifications. The offsets of the individual axes in effect are not changed. Zero offset The command is used for programming of an absolute zero offset for all translatory and rotatory axes. The workpiece zero is moved to a certain absolute position in the working area. ;Activate entry G55 of the zero offset table Bank 1 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 49 5 G Functions: General explanations Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Coordinate rotation Besides the specification of offsets in G54-G59 or G54-G59 P1-P2 for all axes, also rotations in the active plane can be defined in G54-G59 P3 by using the parameter ANG. The centre of rotation is the specified or already active zero point. Following changes of the zero point effect a cancellation of the rotation. Activation of the offsets in G54-G59 or G54-G59 P1-P2 is accomplished via input field ‘RCS’ and the value of 1. RCS As an alternative to W (P3) there is the possibility to compensate the clamping position by specification of the angular deviation which was measured during the setup. It is also called the RCS function. These specifications refer to the clamping position and therefore do not depend on the plane definition or can be changed by them. Switch H is used to define the application of rotation WX, WY and WZ. The order of the individual parameters in the G&M code has no effect on the order of the rotations. Rotations in the system of the zero offsets G54-G59 and G93 are called RCS2 (RCS – Rotated Coordinate System). MotionOne CM - G&M Code Programming Manual 50 5.28 G60 Exact stop on Property Topic Position Syntax modal Setup command --G60 Example G00 X0 Y0 ;Move to starting point G60 ;Activate exact stop G01 X3 F4000 ;Exact stop at X3, Y0 G01 X2.293 Y0.707 F1500 ;Exact stop at X2.293, Y0.707 G01 X0.707 F2000 ;Exact stop at X0.707, Y0.707 G01 X0 Y0 F4000 ;Exact stop at X0, Y0 M30 ;End of program After the exact stop has been enabled, an exact stop is made after all contour movements (G01, G02, G03, G05, G30, G305) so that the end position is reached with precision. This means that the speed is braked to zero before the next contour element is processed so that there is no slurring of the contour. This also causes jerky behaviour during travel, however In contrast to positioning at fast jog speed, the maximum speed of the individual movements can be defined explicitly with an exact stop. Circular movements and splines are also possible. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 51 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.29 G61 Exact stop off Property Topic Position Syntax modal Setup command DEF G61 When exact stop is disabled in the controller, the determination of the speed curve within a contour is carried out by the controller. The controller tries to achieve the speed of the following contour element already at the transition between the contour elements while adhering to limit values so that a continuous travel behaviour is achieved. This can possibly result in slurring of the contour. The fundamental procedure employed by the controller here is referred to as Look Ahead. . Example G00 X0 Y0 ;Move to starting point G61 ;Deactivate exact stop G01 X3 F4000 ;No exact stop at X3, Y0 G01 X2.293 Y0.707 F1500 ;No exact stop at X2.293, Y0.707 G01 X0.707 F2000 ;No exact stop at X0.707, Y0.707 G01 X0 Y0 F4000 ;Exact stop at X0, Y0, because contour end M30 ;End of program 52 5.30 G70 Units of measurement in inches (inch) Property Topic Position Syntax modal Setup command --G70 The measures given are in inch. At the end of the program, the home position is always restored. In the home position, the default is always G71 (mm). Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations 5.31 G71 Units of measurement in millimetres (mm) Property Topic Position Syntax modal Setup command DEF G71 All measures given are in mm. In the home position, the default is always G71 (mm). MotionOne CM - G&M Code Programming Manual 53 5 G Functions: General explanations Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.32 G72 Deletion of mirror image machining and scaling Property Topic Position Syntax modal Setup command DEF G72 A mirror image machining and / or a scaling of the coordinates system is cancelled. MotionOne CM - G&M Code Programming Manual 54 5.33 G73 Mirror image machining X Property Topic Position Syntax modal Setup command -G73 Axis designator [-1][+1] Y X-1 W The sign of the programmed dimensional value of an axis can be inverted by mirror image machining. For example, a sign inversion of the X axis is a mirror imaging on the Y axis, if machining takes place in the XY plane. Mirror image machining does Y-1 not involve a reflection of zero point offsets. During mirror imaging on one axis only, the control will interchange: n the sign of the coordinates of the mirror imaged axis, n the direction of rotation during circular interpolation (G02/G03), n the machining direction during the milling cutter radius correction (G41/G42). Example G73 X-1 Y-1 ; The coordinate system is mirror imaged on the X and Y axes Mirror imaging is cancelled: n by the path condition G72, which will cancel the inversion of all axes (reflection is deleted). n by a G73 block, the address of the axis and the value +1. In this case, only the mirror imaging of the programmed axis is cancelled. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 55 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.34 G73 Scaling Property Topic Position Syntax modal Setup command -G73 <Parameter list> X Y The coordinate values of the linear axes of the control can be increased or decreased by a scaling factor. The reference point is the origin of the coordinate system, which will affect in general not only the shape of the workpiece but also its position on the clamping table. The programmed zero offset values will also experience a change in scale. Scaling only refers to the axes of the active plane. The value programmed under "W" is a scaling factor. This means that values greater than 1 will result in an increase in scale and values smaller than 1 in a decrease in scale. A scaling will be cancelled by: n a block containing G72. In this case, any mirror image machining that may be active will be cancelled. n A block containing G73 and W1.0. Example G73 W1.5 ; The current plane (XY) is scaled by 50% (increased) 56 5.35 G79 Cycle execution Property Topic Position Syntax not modal Cycle command --G79 <Axis positions> The function G79 executes a previously defined cycle. When the function is called without any additional parameters, the cycle will start at the position at which the individual axes are positioned. In addition, execution parameters can be specified. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 57 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.36 G90 Absolute measure 5.37 G91 Relative measure Property Topic Position Syntax Property Topic Position Syntax modal Setup command DEF G90 58 modal Setup command --G91 <Parameter list> When an absolute measure is entered, all measures given refer to a fixed zero point. When entering a relative measure (incremental measure), the numeric value of the This zero point is always the zero point of the control. The associated numeric value of the path information describes the target position in the coordinate system. The function is effective modally. The traverse distance is calculated from the target coordinates and the current position. path information corresponds to the traverse distance. The programmed sign determines the direction of travel. It is possible to switch between absolute measure input and relative measure input in the program any number of times. B B X C X C A x D Y A 140 D Y Z 140 Z 60 80 20 60 y 80 20 x = 80 y = 60 5.38 G92 Relative zero point offset and coordinate rotation Example - Zero offset Property Topic Position Syntax Example - Coordinate rotation modal Setup command --G92 <Axis position> <Rotation> G92 X11.3 Y30 G92 W-10.5 ; Coordinate system offset by 11.3 mm (relative) ; Rotation of the coordinate system by -10.5 degrees (relative) Description G92 moves the position of the zero point by the values specified in the current coordinate system. If the path condition G92 is called several times in a parts program, the offset vectors add up. Translatory and rotatory offsets and data on the rotation in the main plane can be programmed. Parameters Description X, Y, Z, … (all existing axes) new zero point in the machine coordinates W Rotation of the coordinate system on the current plane NOTE l l The angular position of the programming coordinate system can be changed using G92. The programmed movements are therefore no longer necessarily carried out on the axes which actually exist, but are instead composed of the movements of several axes whereby directional changes are possible as well. This may also apply to manual mode and MDI depending on the configuration of the control. The rotation defined with W is not deactivated when the plane is changed. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations No movement takes place after specification of G92. But the display of the current control position changes to the position with reference to the new system. The changed coordinate system becomes immediately effective after the specification; the same applies to the possibly specified angle. The programmable rotation is handled like a command for the definition of a free plane (G26). All All previous rotations are kept if G92 W.. is specified, thus the current plane is turned further. Relative rotations which are programmed with "G26 .. R1", are also additive, that means the already turned system is turned further. The G26 command offers many more ways to specify rotations and therefore is to be preferred over the specification of G92. G92 is activated in the G-Code program or in MDI. G92 is cancelled by the specification of another absolute zero point offset with G54-G59 and with G93 with another parameter list, by deletion of all offsets with G53, and by programming of a free plane or cancellation of all rotations by G26. Zero offset The command is used for programming of an absolute zero offset for all translatory and rotatory axes. The workpiece zero is moved to a certain absolute position in the working area. MotionOne CM - G&M Code Programming Manual 59 5 G Functions: General explanations Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Coordinate rotation Besides the specification of offsets for all axes, also rotations in the active plane can be defined by using parameter W. The centre of rotation is the specified or already active zero point. Positive angles of rotations will rotate the programmed path anticlockwise, negative ones clockwise. Cancellation of the zero offset and rotation Cancellation of the zero offset and rotation G53, G54-59, G93 Cancellation of the rotation Cancellation of the rotation G26 MotionOne CM - G&M Code Programming Manual 60 5.39 G93 Absolute zero point offset and coordinate rotation Property Topic Position Syntax modal Setup command --G93 <Parameter list> G93 defines the absolute position of the workpiece in the machine system. Translatory and rotatory offsets and data on the clamping position can be programmed. Parameters X, Y, Z, … Description (all existing axes) new zero point in the machine coordinates W Rotation of the coordinate system on the current plane H0 The rotations are defined by means of Euler angles or solid angles. The angles are defined as follows: - WX - Rotation about the current Z axis - WY - Pivoting about the new Y axis - WZ - Rotation about the new Z axis The rotations are always executed in this order, I, J and K must not necessarily be specified. The specification of WX and WY is normally sufficient. G93 with parameters cancels the programmable zero point offset G54-G59 and any previous G93 offsets. G93 without parameters is ineffective. To delete the programmed offsets and rotations, G53 can be used. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 61 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Parameters NOTE Description l H1 I, J, K H2 62 The angular positions are to be applied in a given order, which is specified with I, J, and K. As a default the following order applies: I1 J2 K3. Independent from the programmed order, the angles are specified as follows with reference to the machine coordinate system: - WX - Rotation around the X axis - WY - Rotation around the Y axis - WZ - Rotation around the Z axis l The angular position of the programming coordinate system can be changed using G93. The programmed movements are therefore no longer necessarily carried out on the axes which actually exist, but are instead composed of the movements of several axes whereby directional changes are possible as well. This applies also to the manual mode and MDI. None of the programmed rotations is deactivated when the plane is changed. Order of the rotations with H1 where the following applies: - I is the position of the rotation WX around the X axis, - J is the position of the rotation WY around the Y axis, - K is the position of the rotation WZ around the Z axis. If no order is specified, the following applies: I1 J2 K3. If an order is specified for the rotation, all the defined angles must be programmed with an information regarding the order. For H0 and H2 it is not necessary to specify an order. Example The defined angles define rotations in the stationary machine coordinate system. The order is therefore not to be specified. An angle defined with WX rotates the coordinate system around the not-turned X axis of the machine system, no matter if other rotations already apply. - WX - Rotation around the existing X axis - WY - Rotation around the existing Y axis - WZ - Rotation around the existing Z axis No movement takes place after specification of G93. But the display of the current control position changes to the position with reference to the new system. The changed coordinate system becomes immediately effective after the specification; the same applies to the possibly specified angle. Example of Euler: G93 (X200 Y150 Z50 C30 H0 WY=1.2 WX=3.4) Example of order: G93 (X200 Y150 Z50 C30 H1 WY=1.2 WX=3.4 J2 K1) Example of cancellation: G53 G54-59 again G93 Description G93 is activated in the G-Code program or in MDI. G93 is cancelled by specification of another absolute zero point offset with G54-G59, the re-programming of G93 with another parameter list or by deletion of all offsets with G53. The angle programming by WX, WY and WZ is to be preferred over the planedependent rotation with parameter W. The rotation of program parts, however, should be realized with G26 or G92. 5.40 G94 Speed programming Zero offset The command is used for programming of an absolute zero offset for all translatory and rotatory axes. The workpiece zero is moved to a certain absolute position in the working area. Coordinate rotation Property Topic Position Syntax Besides the specification of offsets for all axes, also rotations in the active plane can be defined by using parameter W. The centre of rotation is the specified or already active zero point. Following changes of the zero point effect a cancellation of the rotation. Depending on whether the dimensions are set by the path conditions G70 or G71, the feed speed is programmed in mm/min (degrees/min) or inches/min (degree/min). The function is automatically switched on when a G-Code program is loaded and is RCS (Rotated Coordinate System) modal Setup command --G94 <Parameter list> effective modally. G94 can be cancelled by the path condition G95. As an alternative to W there is the possibility to compensate the clamping position by specification of the angular deviation which was measured during the setup. It is also called the RCS function. These specifications refer to the clamping position and therefore do not depend on the plane definition or can be changed by them. Switch H is used to define the application of rotation WX, WY and WZ. The order of the individual parameters in the G&M code has no effect on the order of the rotations. Rotations in the system of the zero offsets G93 are called RCS2 (RCS – Rotated Coordinate System). Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 63 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.41 G95 Time programming Property Topic Position Syntax modal Setup command --G95 <Parameter list> With the function G95 time programming, the machining time can be determined for a programmed path route. This is worthwhile when axes with different speed behaviours (e.g. linear axis and rotational axis) are involved in a movement. The feed speed using F-word is then no longer programmed (G94) in mm/min (inches/min) as is usual but a code word calculated by the specified time (inverse time programming) needs to be programmed in which this movement is to be processed. From the resulting machining time, the control calculates the required path speed for this, taking into account threshold values path velocity. If no new Fword is programmed in a block with a traverse movement, the F-word of the preceding block is used. The function is modally effective and can be deleted by the path condition G94. With G95 active, only blocks with G01 may be programmed. G00 commands are programmed as with G94 with the 'rapid movement automatic speed'. 64 Two different INVERSE TIME programming times can be used: Normal Inverse Time (NIT) Normal Inverse time programming Extended Inverse Time (EIT) Extended Inverse time programming. EIT must allow be used when during the calculation of the code word via NIT a value less than '1' results (see example). All handovers from the G&M code can be handed over in float format. Normally, however, the integer format is used. Procedure with EIT programming: If the ratio feed/path is smaller than 1, calculate the E-value (Increase multiplication factor in 10 increments until the ratio is greater 1. The E-value is set to 10000 as a standard feature). Then determine the relevant F-value with the E-value determined in this way. EIT is always programmed with a negative preceding sign (*-1024). F F (NIT) (EIT) = N - Wert t = N - Wert * Vorschub (mm/min) Verfahrweg (mm) = E - Wert t = E - Wert * Vorschub (mm/min) Verfahrweg (mm) * -1024 The following address letters are used for definition: Letter Description N The N-value is optional and denotes the multiplication factor for NIT. If the N-value is not programmed, the multiplication factor is set to 1.0. E The E-value is optional and denotes the multiplication factor for EIT. If the E-value is not programmed, the multiplication factor is set to 10000.0. 5.42 G107 Eroding: Define the directional vector for the lift-off movement Property Topic Position Syntax modal Eroding command --G107 <Parameter list> The command G107 can be used to define a direction vector for the lift-off movement during eroding. Example T1 M6 S2000 M3 G00 Z10 G95 E1 ;Switch on EIT (multiplication factor = 1) G01 Z-11.999 A19 C0 F-204800 X70.003 Y-3.547 A19 C0 F-2165142 X69.85 Y-2.689 A19 C0 F-2186417 X69.551 Y-1.871 A19 C0 F-2186756 X69.114 Y-1.117 A19 C0 F-2185486 X68.553 Y-0.45 A19 C0 F-2185632 NOTE l Please note that any defined transformations (e.g. G26) must be taken into consideration. Definition for the call in the G&M code: Axis X, Y, Z, … U, W, V A0=, A1=, … A15= Description Standardized parts of the CNC axes for the lift-off movement with a vector. The lift-off path is defined with G1001 Bxx.. Example G107 X0 Y0 Z1 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 65 5 G Functions: General explanations Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.43 G181 Probe calibration Property Topic Position Syntax not modal Cycle command --G181 <Parameter list> Emptying of the content of log files: Emptying of the file 'andronin.log'. The content of the specified log file, but not the file itself, is deleted. Other meanings of the address D. D1 Emptying of the mprot.log (ASCII) MotionOne CM - G&M Code Programming Manual 66 5.44 G190 Absolute circle centre Property Topic Position Syntax Example modal Setup command DEF G190 <Parameter list> The dimensions for the circle centre can be given either in absolute or incremental coordinates. One of the two functions is set automatically via the system configuration. G190 and G191 are active only when G90 is also active. If G91 is G90 G00 X-15 Y60 Z10 G41 G01 X0 Y50 G01 X50 G190 G02 X80 Y20 I50 J20 G01 Y-10 G40 active, the circle centre is relative anyway, and the status of G190/G191 becomes meaningless. If G190 is active, the circle centre will be entered in absolute coordinates. This means that programming is done analogously to straight line interpolation from the zero point of the control. X D=20 10 Y Z 80 I=50 J=20 50 10 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 67 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.45 G191 Relative circle centre Property Topic Position Syntax Example modal Setup command --G191 <Parameter list> If G191 is active, the circle centre can be programmed as the distance from the starting point of the circle. X D=20 10 Y Z 80 I=0 J=-30 50 10 G90 G00 X-15 Y60 Z10 G41 G01 X0 Y50 G01 X50 G191 G02 X80 Y20 I0 J-30 G01 Y-12 G40 68 5.46 G288 Set Look Ahead parameters Letter NOTE l When programming "G70 - Dimensions in inch", all lengths given in µm are evaluated in 1/10000 inch. 5.46.1 G288,0 LookAhead basic parameter Property Topic Position Syntax modal Setup command --G288 <Parameter list> or G288,0 <Parameter list> This command allows the LookAhead parameters to be changed from the G&M code. The LookAhead parameters cannot exceed the limit values in the in the MotionCenter. In addition, it is possible to change individual parameters. A parameter that has the value -1 resets it to the predefined values in MotionCenter. NOTE l The following address letters are used for definition: A detailed description you can find in the Look Ahead documentation. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations Description R Feed rate [mm/min] D Rapid traverse speed [mm/min] E Quality of input data [μm] H Contour precision [μm] K Smoothing of contour [ms] N Max. acceleration [m/s2 ] O Jerk limit acceleration [m/s3 ] X Jerk limit X-axis [m/s3 ] Y Jerk limit Y-axis [m/s3 ] Z Jerk limit Z-axis [m/s3 ] A Jerk limit A-axis [m/s3 ] B Jerk limit B-axis [m/s3 ] C Jerk limit C-axis [m/s3 ] MotionOne CM - G&M Code Programming Manual 69 5 G Functions: General explanations Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.47 G305 P5 interpolation (online polynomials) NOTE l The G-code G305 is described thematically in association with G30 Spline Interface (Online spline). See Abschnitt "G305 P5 interpolation (online polynomials)" auf Seite 36 MotionOne CM - G&M Code Programming Manual 70 5.48 G488 Simple measurement block Property Topic Position Syntax not modal Cycle command --G488 <Parameter list> The cycle G488 Simple measurement block is used for determining the switching point of a selected control axis (axis numbers 0 to 15) in a selected plane (G17/G18/G19) or the axis combination X Y Z. The G&M-code cycle is not executed until a "touch probe" tool type (tool management) that has been clamped in the spindle is detected as active tool. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations The following address letters are used for definition: Letter Description A Axis number used for carrying out the measurement. Single-axis 0-15 Two-axis 17-19 Multi-axis 900+axis code word (AKW) (Example Z axis - A2, XY plane - A17, X-Y and Z axis - A914 only) X Search path: Specifies the relative axis movements of the axis or axes selected by means of the address [A]. If an axis is to carry out no movement at all, a relative path of 0 must be entered. Y see X Z see X B Positioning feed E Measuring feed I Repeat measurements: Specifies the repeat measurements. Each measurement is carried out again from the start position. K Averaging method: Calculation method for determining the measurement result. C Activate Point log C0 - Protocol output disabled (Default) C1 - Protocol version 1 C2 - Protocol version 2 R Starting position: After completion or interruption of the measurement, a retraction to the starting position will take place. R1 - moved back to starting position R2 - moved back to measuring position MotionOne CM - G&M Code Programming Manual 71 5 G Functions: General explanations Z Y X 72 MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Axis Decimal HEX Axis Decimal HEX A 1 1 X´ 256 100 X 2 2 Y´ 512 200 Z 4 4 P 1024 400 Y 8 8 Q 2048 800 B 16 10 R 4096 1000 C 32 20 U 8192 2000 D 64 40 V 16384 4000 E 128 80 W 32768 8000 The binary value produces 14 decimally (axis code word of the axes X, Y and Z) Example Procedure G488 A1 X30 Y0 Z-30 B1000 E300 I5 K0 C0 R1 G79 NOTE l To determine the axis code, the program WINAKW.exe in the directory C:/andron/tools or the following table in which the example is shown for the axes X, Y and Z can be used. For more on this, see also Abschnitt "General definitions" auf Seite 11 on the topic of axis code word. Procedure Movement Feed 1. Probe 1st corner → Measuring feed 2. Moving free on 1st corner ← 50 mm/min 3. Probe 1st corner → (measurement result) 10 mm/min 4. Moving free on 1st corner ← 50 mm/min 5. If desired: Positioning to the start position / position measurement result Positioning feed Measurement log 1 Saving the measuring log Axis number with which the measurement was carried out, result of the measurement depending on the input surface or ball centre (for the axis with the axis number or depending on the level of the X-axis), result of the measurement depending on the input surface or ball centre (for the Y-axis), result of the measurement depending on input surface or ball centre (for the Z-axis), starting position (for the axis with the axis number of depending on the level of the X-axis), starting position (for the Y-axis), starting position (for the Z-axis). The measurement log is saved as standard under: Maximum measurement value (for the axis with the axis number or depending on the level of the X-axis), maximum measurement value (for the Y-axis), maximum %andronroot%\SystemData\Repository\Local Control\Measuring Protocol The storage location or storage path can be changed via G23. Communication variables for FlexProg - G488 Simple measurement block IKV variable Meaning IKV [2000] Cycle number IKV [2001] Extended cycle number IKV [2002] Tool number IKV [2003] Axis number used for carrying out the measurement IKV [2004] Number of repeats IKV [2005] Averaging method IKV [2006] Radius calculation IKV [2007] Point log activated Measurement log 2 IKV [2008] Calculate touch probe transformations from G181 X probe position depending on input surface or ball centre, Y probe position depending on input surface or ball centre, Z probe position depending on input surface or ball centre, tool diameter from the tool management, tool length from the tool management, tool number, calculate radius? 1 = YES, calculate measuring probe transformations from G181? 1=YES, move back to start position? 1=YES IKV [2009] Retract to the start position / measuring position measurement (for the Z-axis), minimal measurement value (for the axis with the axis number or depending on the level of the X-axis), minimum measurement value (for the Y-axis), minimal measurement value (for the Z-axis), minimal measurement value leap (for the axis with the axis number or depending on the level of the X-axis), maximum measurement value leap (for the Y-axis), maximum measurement value leap (for the Z-axis), number of repetitions, measurement number, notification method, tool diameter from the tool administration. Tool length from the tool administration, tool number, calculate radius, point protocol activated, calculate probe transformations from G181, move back to start position / measurement position Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 73 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 FKV Variable Meaning 74 5.49 G488,1 Simple measurement block FKV [2000] Measurement result depending on the input for surface or sphere centre (for the axis carrying the axis number FKV [2001] Measurement result depending on the input for surface or sphere centre (for the Y-axis) Property Topic Position Syntax FKV [2002] Measurement result depending on the input for surface or sphere centre (for the Z-axis) The measuring cycle G488,1 is a reduction of cycle G488. That means, this cycle FKV [2003] Start position (for the axis carrying the axis number or depending on the plane of the X-axis) FKV [2004] Start position (for the Y-axis) FKV [2005] Start position (for the Z-axis) FKV [2006] Maximum measured value (for the axis carrying the axis number or depending on the plane of the X-axis) does not check whether an erosion control has been selected or a probe has been replaced. In addition, the cycle will stop at the current position after the first measurement, so that the measurement signal is still present. This means, for example, that movement to starting position (R2) is not possible. Also several measurements simultaneously (e.g. I2) are not possible. The program is closed with a corresponding error message. Apart from these restrictions, the meaning of the parameters remains identical to cycle G488. FKV [2007] Maximum measured value (for the Y-axis) In addition, there is the parameter J. FKV [2008] Maximum measured value(for the Z-axis) FKV [2009] Minimum measured value (for the axis carrying the axis number or depending on the plane of the X-axis) FKV [2010] Minimum measured value (for the Y-axis) FKV [2011] Minimum measured value (for the Z-axis) FKV [2012] Maximum measured value jump (for the axis carrying the axis number or depending on the plane of the X-axis) FKV [2013] Maximum measured value jump (for the Y-axis) FKV [2014] Maximum measured value jump (for the Z-axis) FKV [2015] Tool diameter from tool management (WZV) FKV [2016] Tool length from the TM not modal Cycle command --G488,1 <Parameter list> Parameters Description J Level of the measurement signal J0 – The measurement signal is ‘low-active’, meaning that the measurement is made on the falling edge of the signal J1 – The measurement signal is ‘high-active’, meaning that the measurement is made on the rising edge of the signal 5.50 G581 Continuous operation rotation Property Topic Position Syntax not modal Cycle command --G581 <Parameter list> Parameters Description N Speed of the selected axis in revolutions/minute. The sign determines the direction of rotation of the axis. H 0: The speed can be influenced via the integer manual parameter 3. 1: It is not possible to influence the speed. 2: The speed can be restricted via the feed potentiometer if necessary. Cycle G581 is used for the continuous rotation of the rotary axes at a defined speed. Other axis travels (e.g. in the X, Y and Z axis directions) can be programmed independently of this rotary motion. The continuous operation is stopped automatically at the end of the program. The command will not be executed during block search. A continuous operation axis started by the command G581 may not participate in any other motion for the duration of the continuous operation. By default, the rotary speed cannot be affected by the feed potentiometer. However, the behaviour can be adapted using parameter H. The following address letters are used for definition: Parameters Description A Axis selection: This input selects (1) or deselects (0) the corresponding axis. B see A C see A N - ... N + ... Example: G581 A1 B0 C1 N30 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 75 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.51 G781,1 Spindle offset Property Topic Position Syntax modal G&M command --G781,1 N<Offset number> X<Offset in X> Y<Offset in Y> Z<Offset in Z> A<Offset in A> B<Offset in B> C<Offset in C> G781,1 N<Offset number> K<Axis code> G781,1 I<IKV index> Address N -1 to 254 X, Y, Z A, B, C K Alternatively to entering the axis addresses XYZABC directly, the offset can also be entered via a list of FKV and a decimal axis code. First of all here, all required values must be assigned FKV[axis number] = offset for axis and then G781,1 N<offset number> K<axis code> must be called up. (For determining the axis code, see: Abschnitt "General definitions" auf Seite 11 - axis code) 0 - 65535 I IKV index in G&M-code program for returning the active spindle offset number. Parameter I can be used individually or together with N, X, Y or Z. (Example: 21 for IKV[21]) 0 - 1000 G781,1 causes no movement, but, in case of activation, results in a jump in the position indication of the control system. After specifying, the new guiding point is immediately active. To check the active spindle offsets, the number can be read out and verified in FlexProg. Offset number: The parameter N is used to establish the offset number. N is an obligatory parameter. N-1 deletes the offset that was valid before. N0 to N254 are valid offset numbers. Range Offset: XYZABC are used to specify the offset of the guiding point. The vector applies from the guiding point of the main spindle without offset to the guiding point of the loaded spindle. Every offset, including that of individual axes, deletes any offset that was previously in force. Individual offsets can be deleted by specifying offset ZERO. All offsets will be deleted by entering N-1. The spindle offset is used for offset definition of the tool system. It offsets the guiding point of the control system by the vector specified. G781,1 is usually programmed after replacement of a spindle when this replacement has to influence the guiding position of the control system. The offsets remain effective after switching off. During switch on, spindle offset is activated with referencing. Cascaded specifications for the offsets are not possible. The offset is always specified absolutely. Command 76 Activation G781,1 is activated/deactivated in the G&M-code program or in MDI. NOTE l An offset applies in all operation modes and is retained after being switched off. Status indicator SPI Offs The current status of the spindle offset is displayed in the status area of the position menu. Example: G781,1 N0 X10 ; Offset tool system for offset number 0 in X by 10 mm, offsets previously in force in Y and Z will be deleted G781,1 N0 X10 Y20 Z20 ;Offset tool system for spindle 0 in X, Y and Z G781,1 I25 ;Write number of active spindle offset to IKV[25] Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 77 5 G Functions: General explanations 5.52 G783,0 Read/Write zero offset Property Topic Position Syntax modal Special command --Write to the zero offset table: G783,0 <Parameter list> Parameters Description K Axis number: To read and write further axes, as an alternative to the direct axis address (X,Y,Z,A,B,C), the andronic axis number can be used. or Address of the parameter: To be able to write the value to the zero offset table, the value for further axis or parameters must have been transmitted to a separate parameter “L <Value of the axis/parameter>”. L Transmitting the zero point to the zero offset table. This parameter is only used when writing to the zero offset table and using the parameter “K <axis number of the universal axis>” R Index of the target variable to which the zero point is to be written. Allowed range FKV[2000] - FKV[2199] This parameter is only used when reading from the zero offset table. G783,0 can be used for: n activating zero points, n reading data from the currently active zero offset table and using them in the G&M-code program or n 78 MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 writing G&M-code program data in the zero offset table. The following address letters (parameters) are used for definition: Parameters Description NOTE O Number of the desired zero point. N Page of the zero offset table. If N is not used, the first page applies. D Action: 0 - Activate zero point 5 - -Write 9 - Read l X, Y, Z, A, B, C Write action: The transmitted value is entered to the zero point of the relevant axis. Read action: Enter value "zero"! (The value is not evaluated, only the address is used.) When programming “G70 – Dimensions in inches” all linear mm dimensions are evaluated as inch values. Axis K Axis K Address K A 0 X´ 8 ANG 16 X 1 Y´ 9 RCS 17 Z 2 P 10 WX 18 Y 3 Q 11 WY 19 Axis K Axis K Address K B 4 R 12 WZ 20 C 5 U 13 H 21 D 6 V 14 E 7 W 15 Example: G783 D0 O55 N2 ; corresponds to G55 P2, but may be used variable in FlexProg G783 D5 O54 N2 X3.55 ; Write in zero offset table G54 P2 X-axis = 3.55 G783 D5 O54 N2 K1 L3.55 ; As in the example above except programmed as a universal axis G783 D9 O54 N2 X0 R2009 ; Read zero offset table G54 P2 X-value and write to FKV[2009]. G783 D9 O54 N2 K1 R2009 ; As in the example above except programmed as a universal axis Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 79 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.53 G1000 eroding: Speeds Property Topic Position Syntax modal Eroding command --G1000 <Parameter list> The command G1000 can be used to define different eroding velocities. Definition for the call in the G&M code: Word Description Unit A Approach velocity mm/min B Lift-off velocity mm/min E Eroding velocity mm/min Example G1000 E60 B18000 A18000 80 5.54 G1001 Eroding: Path descriptions Property Topic Position Syntax modal Eroding command --G1001 <Parameter list> The command G1001 can be used to define different eroding path descriptions. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations Definition for the call in the G&M code: Word Description Unit A Start up path: Path at the start of the interval which is driven with reduced acceleration mm B Interval path: maximal path for returning during an interval – otherwise first returning point mm C Short interval path: Path for returning during short interval path mm D Progress of orbital motion: If desired (see G1004 C), the position of the orbital motion is shifted during an interval by the value indicated in degrees. Degrees I Approach path: Path of approaching erosion contour after an interval or interruption which isn’t moved with feed or rapid motion but eroding. Length of the 3rd step during an interval needed for stop of feed rate. mm J Path for returning within contour: During moving backwards according to erosion generator the erosion contour is left in the direction to the last returning point when the length of the path for returning within contour is made within the erosion contour (measured according to the already achieved erosion progress). If this path is equal to zero, then a movement to the last returning point is made immediately. If the return path is very large, this could mean a return over the entire contour may be done. mm MotionOne CM - G&M Code Programming Manual 81 5 G Functions: General explanations Id.-Nr.: 1400.210B.0-02 Version: 02/2019 B A 1 I 2 Bild 4.3: Path descriptions 1 = Eroding / 2 = Interval Example G1001 A0.000 B10.000 C1.000 I0.000 J0.000 1 MotionOne CM - G&M Code Programming Manual 82 5.55 G1002 Eroding: Factors and modes Property Topic Position Syntax modal Eroding command --G1002 <Parameter list> The command G1002 can be used to define different eroding factors and modes. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations Definition for the call in the G&M code: Word Description A Factor start-up acceleration E Factor speed eroding forward H Factor speed eroding backward K Factor speed of the radius change orbital movement forward, direction erosion front L Factor speed of the radius change orbital movement backwards, direction circle centre I Factor (returning point) RZP eroding forward (move to erosion contour) J Factor RZP eroding backward (leave path) B Mode of interval : 0: no interval 1: Time controlled (‘cyclic’) 2: Generator controlled (‘adaptive’) 3: Generator and time controlled (both) C Command: 0: Switch of High-Speed-Jump 1: Switch on High-Speed-Jump, mode 1 D Additional factor for erosion velocity >= 1.0 Application: If only forward signals are present during erosion for a given wait time (see G1003), than the velocity for moving is increased by this factor until forward signals are constantly present. N Additional factor for the speed of an orbital movement (see also G1004 Exxx). MotionOne CM - G&M Code Programming Manual 83 5 G Functions: General explanations Id.-Nr.: 1400.210B.0-02 Version: 02/2019 b f f b e min = = e min e min Factor speed eroding forwards, or factor returning point eroding forwards Factor speed eroding forwards, or factor returning point eroding backwards Eroding reference speed Cycle time Example G1002 A1.000 B3 C1 E0.350 H0.650 K0.700 L1.300 I0.350 J0.650 D5.000 N1.200 MotionOne CM - G&M Code Programming Manual 84 5.56 G1003 Eroding: Time data Property Topic Position Syntax modal Eroding command --G1003 <Parameter list> The command G1003 can be used to define different eroding time specifications. Definition for the call in the G&M code: Word Description Unit A Number of reverse signals for a short lift-off Usage: If the controller detects this number of reverse signals in sequence during eroding, a short lift-off is started. B Cycle of interval: Time between two intervals s D Wait time, until the additional factor for the erosion velocity is applied Usage: If only forward signals are present during erosion for a given wait time, then the velocity for moving is increased by this factor until forward signals are constantly present. s E Delay, until the use of the additional factor for the speed of orbital movement. Usage: If there is only one forward signal during an orbital movement during this delay, the orbital movement is then accelerated by the additional factor as long as the forward signal remains constant. Example G1003 A50 B0.400 D1.500 E0.500 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 85 5 G Functions: General explanations 5.57 G1004 Eroding: Orbital movement in the selected plane Property Topic Position Syntax modal Eroding command --G1004 <Parameter list> The G1004 command can be used to start or stop an orbital movement in the selected plane. The parameters listed below are used to define orbital movement. 86 MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Definition for the call in the G&M code: Word Description Unit K Command: Orbital movement 0: Switch off the orbital movement 1: Switch on the circular orbital movement 2: Switch on the circular orbital movement with a controlled radius 3: Switch on the conical orbital movement R Radius (required if K word ≠ 0) mm E Velocity (required if K word ≠ 0) ms/rotation H Height of the cone (required if K word = 3) C Definition of the behaviour of the orbital movement during the interval: 0: Interruption of the orbital movement during the interval 1: Continuation of the orbital movement during a regular interval 2: Continuation of the orbital movement during a short lift-off 3: Continuation of the orbital movement at all times If no value is indicated explicitly, then C0 is used as the default. See also G1001 D. Example G1004 K1 R0.005 E1000 -- mm 5.58 G1005 Punching: Parametrization and activation Property Topic Position Syntax modal Punch command --G1005 <Parameter list> Various different parameters for the punching can be set using the G1005 cycle. Moreover, it can also be used to enable and disable the punching. Definition for the call in the G&M code: Parameters Description Unit A The controller sends a signal to the punching unit early on indicating that the punching operation can be started if the processing of the current contour element will take less time than the time indicated. ms D The controller sends a signal to the punching unit early on indicating that the punching operation can be started if the path still remaining to be travelled in the current contour element is less than the path indicated. mm O After the movement in the current contour element has been finished, the controller sends a signal to the punching unit only after expiration of the time indicated stating that the punching operation can be started. ms H0: Switching off the punching functionality H1: Activating the punching functionality. When Exact Stop H (G60) is also enabled, a signal is sent to the punching unit after every contour element that the punching operation can be started. After completion of the punching operation, the path for the next contour element is travelled. The first punching operation is started after the first contour element. H2: Activation of the nibble function. When Exact Stop (G60) is also enabled, a signal is sent to the punching unit before every contour element that the punching operation can be started. The first punching operation is started before the first contour element. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 87 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Delay and the early sending of the signal to the punching unit for the starting of the punching operation involve two different technologies. Consequently, it is not possible to parametrize both technologies simultaneously. Pre-enable for stroke A configurable pre-enable of the punch stroke needs to be issued in order to optimize the reaction time. The parameter (1) “Stroke lead time" defines the maximum time difference between the enable of the stroke output signal and the end of the interpolation of the current G&M code (tc - tb). The parameter (2) “Stroke length" defines the maximum distance between the enable of the stroke signal and the end of the interpolation of the current G&M code (tc - tb). The CNC sets signal B “Stroke signal" either on (ta) or (tb), depending on what happens first. The figure above shows that the CNC sets the stroke on (ta) because (ta) takes place before (tb). Bild 4.4: Pre-enable for stroke C: Interpolation A: Axis movement B: Stroke signal 88 Delayed stroke Example Depending on the application, it may be necessary to delay a punch stroke for a certain time at the end of the interpolation of the current G&M code (tc). To be able to parametrize the delay, the parameter “Stroke delay time" (1) must be available. There must be a command that is active blockwise for the activation of the delayed punch stroke. When delayed punching is active, the stroke is sent after the interpolation is completed and the “Stroke delay time” has expired (te). The parameters of the pre-enable are inactive during delayed punching. #para_expr #define PUNCH_CONF(slt, sld, sdt) G1005 A=slt D=sld O=sdt #define PUNCH_CONF_LEAD(slt, sld) PUNCH_CONF(slt, sld, 0.0) #define PUNCH_CONF_DELAY(sdt) PUNCH_CONF(0.0, 0.0, sdt) #define PUNCH_ON() G60 G1005 H1 #define NIBBLE_ON() G60 G1005 H2 #define PUNCH_OFF() G61 G1005 H0 G00 X0 Y0 ;Move to starting point PUNCH_CONF_LEAD(5, 10) ;Parametrization for setting the signal to the punching unit PUNCH_ON() ;Start of the punching functionality G01 G91 F2500 ;Parametrization of the movement X10 ;Exact stop at X10, Y0 plus punching operation X10 ;Exact stop at X20, Y0 plus punching operation X10 ;Exact stop at X30, Y0 plus punching operation X10 ;Exact stop at X40, Y0 plus punching operation Y10 ;Exact stop at X40, Y10 plus punching operation X-10 ;Exact stop at X30, Y10 plus punching operation X-10 ;Exact stop at X20, Y10 plus punching operation X-10 ;Exact stop at X10, Y10 plus punching operation X-10 ;Exact stop at X0, Y10 plus punching operation PUNCH_OFF() ;Switching off the punching functionality M30 ;End of program Bild 4.5: Delayed stroke C: Interpolation A: Axis movement B: Stroke signal In order to make the functionality in the G&M code program clearer, it is possible to define aliases for them such as are used in the following example. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 89 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.59 G1010 Laser command without exact stop Property Topic Position Syntax modal Laser command --G1010 <Parameter list> The command is triggered at the exact programmed position (+/- 10ns). Definition for the call in the G&M code: Parameters Value H O C Description 0 Continuous output OFF 1 Continuous output ON 2 Continuous output Toggle 0 Pulse output OFF 1 Pulse output ON 2 Pulse output Toggle 0 Distance control (NDC): Enable movement to the workpiece for all NDC axes 1 Distance control (NDC): Inhibit movement to the workpiece for all NDC axes Example: see G1011 Default 0 0 0 90 5.60 G1011 Laser command with exact stop Property Topic Position Syntax modal Laser command --G1011 <Parameter list> The command is triggered at the exact programmed position (+/- 10ns). Definition for the call in the G&M code: Parameter Value A 0.0 - 10.0 C 0.0 to 50.000.000 Description Default Analogue output in V 0.0 Minimum pulse output frequency f-Min is output once the pulse pauses are taking too long ( 0 Hz<f-Pulse<f-Min ) 0.0 0: Deactivate function > 0-50 MHz: Activate function, set f-Min Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations D x.x Laser pulse output every x.x mm referenced to the entire path For the generation of a speed-dependent frequency with a defined pulse width (J): D=v_max/60/f_max E 0/1 0: Switch off laser treatment 1: Switch on laser treatment J 0.01 to 655.35 L 100 to 50.000.000 N 0.00 to 10485.76 Pulse width in µs 0 E-00044 Standstill frequency in Hz at G04 as long as G1010 O1 is active Output delay in µs to adjust the output position for internal processing in the controller MotionOne CM - G&M Code Programming Manual E-00043 91 5 G Functions: General explanations Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Example G1010 / G1011 G1011 A5.3 D0.02 // Laser analogue output 5.3 V, laser pulse spacing every 0.02 mm, implicit laser enable G00 X10.0 Y40.0 // Positioning in fast jog G01 X35.0 F5000 // Feed movement with F5000, laser is still OFF G1010 O1 // Laser pulse output ON as of X35.0 without exact stop G01 X40.0 // Feed movement with active pulse output every 0.02 mm G1011 O0 // Laser pulse output OFF at X40.0 without exact stop G01 X60.0 // Feed movements without exact stop G01 Y35.0 G01 X42.5 G1010 O1 // Laser pulse output ON as of X42.5 without exact stop G01 X27.5 // Feed movement with active pulse output every 0.02 mm G01 O0 // Laser pulse output OFF at X27.5 without exact stop G01 X10.0 // Feed movements without exact stop G01 Y30.0 G01 X25.0 G1010 O1 // Laser pulse output ON as of X25.0 without exact stop G01 X45.0 // Feed movement with active pulse output every 0.02 mm G1010 O0 // Laser pulse output OFF at X45.0 without exact stop G01 X60.0 // Feed movements without exact stop G01 Y25.0 MotionOne CM - G&M Code Programming Manual G1011 D0.03 // Laser pulse spacing every 0.03 mm and exact stop at X60.0 Y25.0 G01 X47.5 // Feed movements without exact stop G1010 O1 // Laser pulse output ON as of X47.5 without exact stop G01 X22.5 // Feed movement with active pulse output every 0.03 mm G1010 O0 // Laser pulse output OFF at X22.5 without exact stop G01 X10.0 // Feed movements without exact stop G01 Y20.0 G01 X25.0 G1010 H1 // Laser continuously ON at X25.0 G01 X47.5 // Feed movements without exact stop with laser ON G01 Y5.0 G01 X40.0 G01 Y15.0 G01 X30.0 G01 X25.0 G01 Y20.0 G1010 H0 // Laser continuously OFF at X25.0 Y20.0 with exact stop (due to contour end) G00 X0.0 Y0.0 // Positioning movement in fast jog 92 5.61 G1014,x data exchange for synchronized tasks Property Topic Position Syntax modal Special command --G1014 <Parameter list> Interface for the exchange of data in the direction "CNC to PLC". The programmed values appear in the corresponding SyncTask instance of the PLC. The command is triggered at the exact programmed G&M code position. The parameter is contour interrupting and receipt of the values in the PLC is not acknowledged by the PLC. Note: Further information on this can be found in the documentation "MotionOne CM CNC laser functions" in the chapter "SyncTasks" → G1014 Definition for the call in the G&M code: Parameters Value Type X 0 -31 INT P0-P31 REAL Example G1014,5 P0=1 P3=2.2 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 93 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5.62 G1015 Laser processing: Laser Start 5.63 G1016 Laser processing: Laser Stop Property Topic Position Syntax Property Topic Position Syntax modal Laser command --G1015 <Parameter list> 94 modal Laser command --G1016 <Parameter list> The command G1015 starts the laser processing and assigns the details of the The command G1016 stops the laser processing and starts a subsequent frog jump. contour of the current G&M code to the index of the AsST.contourInfo in corresponding SyncTask instance of the PLC. Definition for the call in the G&M code: Note: Further information on this can be found in the documentation "MotionOne CM CNC laser functions" in the chapter “Functions for laser cutting" Definition for the call in the G&M code: Parameters Definition Parameters Definition P1 Index for the next piercing technology P2 Index for the next cutting technology P3 Reserved P4 Reserved P1 Index for the piercing technology P2 Index for the cutting technology P5 Enable/disable frog jump for the next contour P3 Index for AsST.contourInfo P6 Maximum height for frog jump, mm P4 Reserved 5.64 G1017 – NDC functions (nozzle distance control) Property Topic Position Syntax modal Special command --G1017 <Parameter list> Definition for the call in the G&M code: Parameters Definition P0 Tolerance for the state AsST.distanceControl [].status.targetReached in mm Notes: An unintentional negative sign will be ignored, default value is 0.1 mm P1 <=0: Disable NDC >0: Desired distance between workpiece and laser head in mm (NDC will be enabled) P2 Maximum velocity for the current velocity profile (an unintentional negative sign will be ignored) P3 Maximum acceleration in mm/s2 (an unintentional negative sign will be ignored) P4 Maximum jerk in mm/s3 (an unintentional negative sign will be ignored) P5 Hysteresis of the distance sensor in mm Notes: The input distances for NDC below this value will considered to be zero. An unintentional negative sign will be ignored, default value is 0.1 mm P6 Index for FKV. The input voltage of the corresponding NDC axis in FKV appears under this specified index. The NDC axis can be specified with P26. Without P26, the input voltage of the NDC axis in FKV with the highest-ranking index appears. P7 Index for HFP. The input voltage of the corresponding NDC axis in HFP appears under this specified index. The NDC axis can be specified with P26. Without P26, the input voltage of the NDC axis in HFP with the highest-ranking index appears. Notes: HFP has a maximum index of 255. It is possible to define a nozzle distance control for every CNC axis that is equipped with a sensor. Each axis can have its own settings (freeze function, gain factor, calibration and velocity table). The axes can be defined individually (with G1017 P26, G1018 P26) or jointly (without G1017 P26, G1018 P26). Note: More detailed information on this can be found in the documentation "MotionOne CM CNC laser functions" in the chapter “Nozzle distance control (NDC)”. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 95 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Parameters Definition P13 Virtual contour length shortening for the frog jump synchronization in mm P17 Selection of the communication variables for G1018 P16 P17 1: Manual parameters, HIP&HFP (default setting and required for parameter transfer of laser processing technologies: fGv_LaserPiercingTechnology() and fGv_LaserCuttingParameters ()) 2: Communication variables, FKV&IKV P19 P20 Delete calibration table or index of the rotary axis for the use of 2D calibration tables 0-15: Deletes the existing calibration table and sets it to 2D while using the indicated index for the rotary axis else: Deletes the existing calibration table and sets it to 1D (default setting) Enable (define) axis for distance control <0: Cancel distance control for all axes (with P26, only for this axis) 0-15: Index of the axis Note: The parametrization of NDC axes with G1017 G1018 is only possible for defined axes. When cancellation takes place, the parameters of the NDC axis are not changed or set to the default value. Parameters 96 Definition P22 Enable/disable distance controller <0: Disable all NDC axes (with P26, only for this axis) 0-15: Enable this axis Note: Enabling is only possible if the calibration table contains more than one data set (Distance + Voltage) for one rotary axis position. P26 If P26 is specified and can be used for an NDC axis, the effects of P0-31 only apply to this single axis. Otherwise, every defined axis is affected, provided the command is usable for several axes. 0-15: Axis index P27, P29 Reserved for internal purposes Example A G&M code program example on this can be found in the documentation "MotionOne CM CNC laser functions" at the end of the chapter “Nozzle distance control (NDC)”. 5.65 G1018 – Functions of the calibration table and the velocity profile (nozzle distance control) Property Topic Position Syntax Definition for the call in the G&M code: modal Special command --G1018 <Parameter list> When using nozzle distance control, the control characteristic can be defined by means of a speed profile; the calibration of the measured distance values is carried out using a calibration table. Each CNC axis can have its own calibration and speed table. Note: More detailed information on this can be found in the documentation "MotionOne CM CNC laser functions" in the chapter “Nozzle distance control (NDC)”. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual 97 5 G Functions: General explanations MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Parameters Definition P12 Estimated delay time between sensor and drive in ms (an unintentional negative sign will be ignored) P13 Selection of the velocity profile for distance control or processing 0-9: Index of the velocity profile else: Velocity profile with the index 0 is selected Note: The default value is 0, the processing includes G1018 P14, P15, P16-P22 Parameters 98 Definition Parameters for the continuous velocity profile (function) P14 = dmax P15 = b The continuous velocity function is the function VelFunc (b,d,dmax,vmax). VelFunc = sign(d)∙|vmax|∙(b |d| -1)/(b |dmax| -1) P14,P15 vmax: maximum velocity (G1017 P2 or AcST.distanceControl [].velocityMax) d: current distance dmax: maximum distance (G1018 P14 or AcST.distanceControl [].velTabDmaxPos/velTabDmaxNeg) b: base parameters (G1018 P15 or AcST.distanceControl [].velTabBasePos/velTabBaseNeg) Notes: For b and dmax, two different parameter values can be specified by using a sign when using P14 and P15. Positive values are used for positive d-distances and negative values for negative d-distances. For example, P15=-1.4 results in b=1.4 for negative distances and P15=1.5 results in b=1.5 for positive distances. The standard values for b and dmax are 1.3 and 20 mm (both for positive and for negative d-distance values). If 0.9999<|b|<<1.0001, then |b| is set to 1.0001 automatically. Parameters Definition P16, P17 Access to the interface HFP or FKV for an axis specified with P26. P16=1: Load calibration table P16=2: Save calibration table P16=3: Load velocity table P16=4: Save velocity table The value of P17 indicates the start index for HFP or FKV. For the start index, the value must correspond to the number of data sets. This index is followed immediately by the data sets. For a calibration table, a data set is the triplet (position, distance, voltage), s. G1018: P23, P24, P24, P25. For a velocity table, one data set is the duplet (distance, velocity), s. G1018 P21 P22. Loading is only possible for an inactive NDC axis. P18, P19, P20 Deletes a table or an individual data set from the table of an inactive NDC axis. P18=1 Deletes the calibration table if P19 and P20 are not specified. P19=i and P20=j specify the indices (i,j) of a single data set in a 2D calibration table. i is an index for the position column of the rotary axes, and j is an index for the voltage/distance row. For 1D calibration tables, P19 must equal zero. P18=2: Deletes the current velocity table if P19 is not specified. P19=i deletes an individual data set on index i. Notes: For a calibration table, a data set is the triplet (position, distance, voltage), s. G1018: P23, P24, P24, P25. For a velocity table, one data set is the duplet (distance, velocity), s. G1018 P21 P22. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 5 G Functions: General explanations Parameters Definition P21, P22 Creates a data set “P21, P22" in the velocity table of an inactive NDC axis. P21: Distance, mm P22: Associated velocity limit, mm/min The data sets are sorted automatically in ascending order according to the distance (P21) and not according to the velocity (P22). Consequently, the entries can be in any order (ascending, descending, random) relative to each other. A new data set overwrites an existing data set if the absolute value of its deviation for the distance (P21) is less than 1.0e-6 in mm. The equivalence is not checked for the velocity (P22). By default, a velocity table has one data set (0, 0) and a length of 1; when a velocity table has a length of 1 or is blank, the current or the default velocity function (G1018 P14, P15) is used. If a velocity limit from the table exceeds the maximum velocity (G1017 P2 or AcST.distanceControl[].velocityMax), then the value from (G1017 P2 or AcST.distanceControl[].velocityMax) is used instead. MotionOne CM - G&M Code Programming Manual 99 5 G Functions: General explanations Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Parameters Definition P23, P24, P25 Creates a data set "P23, P24, P25" in the calibration table of an inactive NDC axis. P23: Position of the rotary axis, mm P24: Distance of the sensor to the workpiece, mm P25: The associated voltage, in volts Notes: The data sets are sorted automatically in ascending order according to their position (P23) or voltage (P25) and not according to distance (P24). Consequently, the entries can be in any order (ascending, descending, random) relative to each other. A new data set overwrites an existing data set if the absolute value of its deviation for the position (P23) or voltage (P25) is less than 1.0e-6 in mm or volts. The equivalence is not checked for the distance (P24). If P23 is not specified, the position of the rotary axis is set to 0 and the table to 1D. In this case, the value of P23 is irrelevant and has no effect. If a 2D calibration table has only one rotary axis position, the value of P23 is also irrelevant and has no effect. The default is for the calibration table to be blank. P26 If P26 is specified and can be used for an NDC axis, the effects of P0-31 only apply to this single axis. Otherwise, every defined axis is affected, provided the command is usable for several axes. 0-15: Axis index Example A G&M code program example on this can be found in the documentation "MotionOne CM CNC laser functions" at the end of the chapter “Nozzle distance control (NDC)”. MotionOne CM - G&M Code Programming Manual 100 6 Parameter programming These parameters allow the calculation with variables within the G-Code program, the formulation of the conditions for executing program parts and the use of program branches and loops. G-Code programs containing parameter instructions must contain the code "#Para" at the beginning of the file. Syntax The jumps to these marks can be realized via GOTO or IF ... GOTO. GOTO jumps directly to the specified jump mark. IF ... GOTO is only branched to the jump mark if the condition behind IF applies. (Comparison operator) GOTO feed IF Q1 > Q2 GOTO feed Six comparison operators are offered: < smaller than > greater than Qn = [-] Expression1 = equal to Qn = [-] Expression1 Operator Expression2 <= smaller than/equal to >= greater than/equal to != not equal n = Index of the Q parameter [0 ..... 255] Operators = +, -, *, / Example Q1 = [-]Numeric value Q1 = [-]Q2 Q1 = Q2 + Q3 Q1 = 10 * Q3 The Q parameters can be used in combination with all valid G-Code addresses. Valid addresses are the axis designators, feed and spindle addresses. (G01 X=Q22 F=Q3 S=Q1 M3). In order to be able to branch/jump in different places, jump marks can be introduced. Jump marks (max. 256) are in square brackets. [Mark1] [Feed] Id.-Nr.: 1400.210B.0-02 Version: 02/2019 6 Parameter programming MotionOne CM - G&M Code Programming Manual 101 7 Flexible G&M code Programming (FlexProg) processing similar to cycles. To be able to use a G&M-code program with FlexProg functionality, the activation of the calculation modules of the control is necessary. This is done by the code '#PARA_EXPR' at the beginning of the program. 7.1 General A key enhancement of the functionality of the G-Code language and the parameter programming is the flexible programming (FlexProg). The use of global and local variables, the free definition of functions with call-up parameters and return value as well as the use of control structures for the conditional or repeated execute facilitate the programming of complicated procedures and calculations substantially. This is supplemented by the option of the formulation of complex mathematical expressions with several bracket levels and the well-known simple use of the results in the GCode program. All these elements are also part of higher programming languages, for instance 'C/ C++’, a programming language often used in technical and mathematical applications. Primarily the rules of parameter programming apply. In contrast to pure parameter programming, substantially more functionality is available to the user of FlexProg with less effort for ancillary times, such as e.g. the necessary implementation time. Bild 6.1: XPanel status menu with FlexProg sample program With the options of programming, the responsibility of the programmers also increases. The effectiveness of a program thus depends substantially on the selected program structure. As a basic principle, more comprehensive calculations should not be used in traverse commands so as to avoid loss of speed in contours. All calculations are implemented during the duration of the program and of course require computing time. FlexProg is particularly well suited for workpieces that only differ from one another slightly or with which the processing steps result during the duration. FlexProg thus offers the option of parametrizing and implementing the Id.-Nr.: 1400.210B.0-02 Version: 02/2019 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual 102 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 7.2 Restrictions n Despite great similarity of the language with the programming language 'C', it applies that the instructions are processed line by line. n If more than one calculation expressions are used in one line, at least one space must be after each expression, otherwise a correct assessment of the individual expressions is not possible. n In expressions, round brackets '(...)' can be used for structuring. They can also be nested. n With FlexProg programs, macros are treated as functions without return value. The initialization run during implementation, as still necessary with '#PARA', is therefore no longer necessary. n The Time programming with G95 is not available. n Pure calculation instructions may not stand in one line with instructions to G&M addresses. Care should be taken to ensure a clear division per block of calculations and G&M instructions. Only with the allocation of values or calculation specifications to G&M addresses, are deviations from this rule permissible. n The control of syntax and semantics of the programs is greatly restricted through the options of conditional and unconditional jumps. Some errors are only recognizable during the runtime. n For FlexProg programs, particular comment rules apply. n The automatic supplementing of missing parameters in the circular programming with G02/G03 is not possible within FlexProg programs. The circular parameters are to be indicated in their entirety, i.e. end point and centre point or end point and circle radius. n Bracketing { may stand at the beginning of the first line of an instruction block. } must stand in a separate line. 103 7.3 General program structure A FlexProg program consists of a program core and a number of functions and/or macros that are all in one file. The program core does not require any explicit marking and also does not have any call-up parameters. If variables are agreed in the program core, these are valid in the entire program, i.e. also in macros and functions, and of course can also be changed. n #Para_Expr -> Program code n Declaration of the functions n Definition of the global variables n Definition of macros n Program core n Definition of the functions 7.4 Data type The data types used in FlexProg are void, Int, Float and Double. They are used both as Handover values as well as with the return values. The data type Void serves as a placeholder (engl. empty, vacancy, hollow space). Type Byte Bit Post comma Range Void - - - - INT 4 32 none 4.29 10-8 – 4.29 108 Float 4 32 7 significant 1.18 10-39 – 3.4 1038 Double 8 64 15-16 significant 2.23 10-308 – 1.79 10308 7.5 Functions 7.5.1 Function declaration Functions consist of a declaration part and a definition part. Functions always have a type, a name and a list of call-up parameters that can also be empty. All instructions belonging to a function must stand in the relevant curly brackets (instruction block). So that the Compiler can check the functions used and their call-up, all functions used must be declared before the definition. It must be announced which result type has the function, which name it gets and which data types in which order may appear as a parameter list. The declaration of the functions used must be done at the beginning of the program, i.e. directly behind the code 'PARA_EXPR'. Each function is declared in one line. Syntax DECLARE <Data type> <Function name> (<Parameter list>) The Function name may consist of the reserved words of the language. Letters, numbers and the underscore '_' can be used in the function name. The parameter list is the listing of the values to be handed over when the function is called up. The types Int, Float and Double can be used. If the parameter list is empty, the type VOID can be entered. Each parameter in the list is to be preceded by the data type. Example DECLARE void Deliver () ; Function without return, without handover value DECLARE void Rectangle (float ; Function without return, with handover value Xvalue) DECLARE float Calculate X ; Function with return, without handover value (void) DECLARE float Jump (int number) Id.-Nr.: 1400.210B.0-02 Version: 02/2019 7 Flexible G&M code Programming (FlexProg) ; Function with return, with handover value MotionOne CM - G&M Code Programming Manual 104 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 105 7.5.2 Macros and Q parameters 7.5.3 Function definition Macros are programmed the same as in the standard G&M code. They act like functions without argument and without return value. They need to be defined before use. The function definition consists of the function head with the information on the function call and the instruction block that contains the variable agreements and instructions. Function definitions may not be nested. In contrast to the declaration, the Key word 'DECLARE' is missing and the parameter list must contain names for the individual parameters. The first instructions of the instruction block normally contain the local variables. If a return value is agreed, this must be transferred with Example #MacroName# G01 X20 G... ## Q parameters are always of double data type and have an index of 0....255 e.g. Q234 = 123.4567 the RETURN command to the calling function. Syntax <Data type> <Function name> (<Parameter list>) ->function head { ..... -> instruction block } Example void rectangle (float Xvalue, float Yvalue) { G91 G01 Y=Yvalue X=Xvalue Y=-Yvalue X=-Xvalue G90 } ; Function head ; Beginning of instruction block ; Relative measure ; Move Y to Yvalue ; Move X to Xvalue ; Move Y to negative Yvalue ; Move X to negative Xvalue ; Absolute measure ; End of instruction block 7.5.4 Variables The variables are declared in the program head as follows: Variables are a key extension of the G&M syntax. For the named data types, variables and one-dimensional fields can be defined and used. This is done by indicating the data type and Variable name. With the exception of a few restrictions that result from the linguistic scope of the G&M code and the extensions (e.g. while, if, goto, float), this name can be freely selected. Designators for symbolic variables consist of at least 2 letters at the beginning of the name to preclude any confusion with G&M addresses. The underscore is also permissible there. Numbers can also be used in the name. It is recommended that the variable type is indicated in the name, for example 'f_depth' for a FLOAT variable. Variables are not automatically initialized during the definition, use of upper and lower case is possible, but no differentiation is made. The agreement of the global variants is always done at the beginning of the G-Code program. Syntax <Data type> <Variable name> If several variables of the same time are used, the declaration is as follows: <Data type> <Variable name1>, <Variable name2>, <Variable name3> The Data type can be Int, Float or Double. Variables can also be indexed onedimensionally. Example float Xdelivery int number int flag[10] double X_Pos, Y_Pos, Z_Pos Local variables can be used in functions. The definition is done according to the parameter list in the function definition. Global variables are available to all program parts for reading and writing access within a G&M-code program. They can therefore also be used in functions, procedures and macros. They need to be defined at the beginning of the program. Local variables can only be defined and used in functions. After the function is no access is possible any more. With the repeated call-up of functions too, the values of the local variables cannot be restored again. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual 106 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 107 7.5.5 Communication variables 7.5.6 Expressions and operators These variables permit an exchange of data between G&M-code programs and various control parameters and vice versa. These can be measurement values of the cycles or parameters from the tool management. The communication variables can be used for all permissible computing operations and instructions to G&M addresses (axes). Calculations are carried out during the runtime of the G&M-code program. Calculations are not permitted in the index, Expressions consist of operands and operators. The operands are variables, constants, parameters or expressions. The assessment of an expression supplies a value that is dependent on the type of the operators used. The value assignment is an expression. It is the most used form of assignment of values to variables and parameters. The expression to the right of the assignment operator is calculated and the value assigned to the variable on the left. A variable is an expression that refers int variables, however, can be used. to an already defined, modifiable memory area, i.e. variables and parameters. The bit operators can only be applied to integer variables. (IKV or INT). IKV [Index] → Integer communication variable FKV [Index] → Float communication variable The index must be in [...] and has a range of value from [0...32768]. The user should use the index 0....1999 as indices from 2000 among others are used by the measuring cycles and may overwrite user data. IKV [10] FKV [1004] int Hello Hello = 5 FKV [Hello] → Int variables can also be used as an index NOTE l If the control is converted to globally valid variables (the DWORD 'bGlobalQ' is inserted in the registration {HKLM\SOFTWARE\andron\G&MConverter} and the value >0 is assigned to it) IKV and FKV variables no longer exist. QI and Q are used in an analogous manner to them. (QI = IKV and Q = FKV) Syntax Variable = Expression Example Q125 = 100.876 FKV [2001] = Q100 * sin (Q23) Residual path = Calculate residual path (value 1, value 2) The following operators can be used in FlexProg: Arithmetical operators Comparison operators Logical operators Bit operators = + * / < > == <= >0 != || && ! | & ~ ^ >> << Assignment of values Addition Subtraction, negative preceding sign Multiplication Division smaller than greater than equal to smaller than/equal to greater than/equal to not equal Logic OR operation Logic AND operation Logic reversal (NOT) OR operation of bits AND operation of bits Complement (unary) Exclusive OR operation of bits Bit shift to the right Bit shift to the left 7.5.7 Mathematical functions Function Description Function Description SIN (X) Sine angle CEIL (X) Round up COS (X) Cosine angle FLOOR (X) Round down TAN (X) Tangent angle LOG (X) Log base E ASIN (X) Sine reversal EXP (X) Exponent base E ACOS (X) Cosine reversal SQRT (X) Root formation ATAN (X) Tangent reversal ATAN2 (X, Y) Partial arcus tangent SINH (X) Sine base E LOG10 (X) Log base 10 COSH (X) Cosine base E POW (X, Y) X to the power of Y TANH (X) Tangent base E FABS (X) Absolute value Id.-Nr.: 1400.210B.0-02 Version: 02/2019 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual 108 7 Flexible G&M code Programming (FlexProg) Id.-Nr.: 1400.210B.0-02 Version: 02/2019 MotionOne CM - G&M Code Programming Manual 109 7.5.8 Assignment of G-Code addresses 7.5.10 Point definition Constants, variables, parameters and also expressions can be assigned to the following addresses: As per G78, points (maximum of 63) can be defined parametrized. The values for the individual axes can be parametrized and can also be done as a calculation specification. These are calculated anew to the runtime of the program each time they are called up. If, for instance Q4, as shown below, is changed after the G78 block, the value determining Y is also changed. n X, Y, Z, A, B, C, U, V n I, J, K, R n F, S, D, E n W, O, N, H, L Syntax G-Code address = [-] Constant G-Code address = [-] Qn G-Code address = [-] IKV[n] G-Code address = [-] FKV[n] G-Code address = expression Example G1 X=Center*cos(Q4) Y=Q10*sin(Q4) Z=delivery + IKV [1300] G1 X=-Q5 Y=FKV [1555] F=Feed1 7.5.9 Comment marks Comments in round brackets '(...)' are not permitted. These brackets are reserved for the formulation of expressions. Program comments can be done using the following signs: ; // % /* ... */ The rest of the line is comment, any place in the block The rest of the line is comment, any place in the block The rest of the line is comment, only possible at the beginning of the block Comment marks for beginning and end, comments over more than one lines are also possible G78 P1 X=IKV[2] Y=Q4+Q3 Z10 ;for P1, calculations are indicated and G0 P1 C90 ;only for the first call-up is P1 replaced ;by the calculation specifications, ;the internal result: G0 X=IKV[2] Y=q4+q3 Z10 C90 Q4 = Q4 + Q10 ;Q4 is changed G0 P1 C90 ;second call-up; P1 is replaced again, ;the calculations are executed, the new Q4 ;is used as target position and for ;Y another value is traversed than with the first ;call-up 7.5.11 Instruction 7.5.12 Jump marks Simple instruction Jump marks must be in [.....] brackets, may only be a maximum of 32 characters long, must stand alone in a line and a maximum of 256 jumps marks must be available in the G-Code program. A simple instruction consists of a completed expression. An expression is deemed to be completed when all round brackets are closed again and behind the last valid part expression there is no operation sign but rather an empty space, tabulator or the end of the line. An explicit sign for the end of the expression is thus not necessary. Example [Start] X_New = X_Old +100 7.5.13 GOTO/IF ... GOTO/IF ELSE Instruction block Instructions can be grouped using curly brackets. This means that all definitions and instructions belonging to a function are noted in curly brackets, this is then called the functional block. At each point where an expression can stand, an instruction block can also stand. These can also be nested as required. Example void deliver ( ) { int variable1, variable2 Variable1 = IKV [2010] + 1 ; Count up ... } Jump commands are defined with GOTO instructions. GOTO instructions are either alone in the block or together with IF instructions. Behind the GOTO command there is the jump mark to which it is to be branched. With IF, conditions for jumps, the conditional execution of instructions or instruction sequences, can be formulated. With ELSE; an expression 2 which is to be alternatively processed can be initiated. This branch is only reached if the expression is false. n With example 1, the branching is to the jump mark n With example 2, branching is only done to the jump mark if the <expression> is true. n With example 3, instructions1 are only executed if the <expression> is true. Otherwise, the instructions2 are processed. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual 110 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Example 1 GOTO [jump mark] Example 2 IF <expression> GOTO [jump mark] Example 3 IF <Expression> { Instructions1 ..... } Else { Instructions2 ..... } 111 7.5.14 FOR loops With FOR, the conditional and repeated execution of program parts can be formulated. If <Expression2> is true, the following program part, including <Expression3> is processed. If <Expression2> is not true, the system jumps to the next instruction after the loop. If an <Expression> is not used, the comma needs to be set nevertheless. (, <Expression2>, <Expression3). In the expressions 1-3, no traverse commands or G&M addresses may be used. Instead, only calculation expressions and comparisons may be used. With the key word BREAK, the loop can be terminated early. With the key word CONTINUE, the next loop run can be initiated before the loop end has been reached. As many FOR loops can be used in the program as required and these can be nested in one another. Example FOR ( <Expression1>, <Expression2>, <Expression3>) { Instructions ..... ..... } n <Expression1> is processed once at the start of the loop n <Expression2>= true -> execute loop n <Expression3> is processed during every loop run A counter is often counted up/down here. 7.5.15 WHILE loops 7.5.16 DO ... WHILE loops With WHILE, the conditional and repeated execution of program parts can be formulated. If <Expression> is true, the following program part is processed. If <Expression> is not true, the system jumps to the next instruction after the loop. No traverse command and no G-Code address may be used in the expression. Instead, only calculation expressions and comparisons may be used. The loop can be terminated early with the key word BREAK. With the key word CONTINUE, the next loop run can be initiated before the loop end has been reached. As many WHILE loops can be used in the program as required and these can be nested in one another. With DO... WHILE, the conditional and repeated execution of program parts can be formulated. If <Expression> is true, the following program part is processed. If <Expression> is not true, the system jumps to the next instruction after the loop. In the expression, no traverse command and no G-Code addresses may be used. Instead only calculation expressions and comparisons may be used. The loop can be terminated early with the key word BREAK. With the key word CONTINUE, the next loop run can be initiated before the loop end has been reached. As many DO...WHILE loops can be used in the program as required and also nested in one another. Example Example WHILE (<Expression>) { Instructions ..... ..... } --> is checked here If <expression> is true, the instructions are processed. Otherwise, they are skipped. The loop query is done at the beginning of the loop. DO { Instructions ..... ..... } WHILE (<Expression>) --> is checked here This loop is run through once in any case. If <expression> is true, the loop is run through again. (As long as the <expression> is false). The loop query is done at the end of the loop. Id.-Nr.: 1400.210B.0-02 Version: 02/2019 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual 112 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 7.5.17 SWITCH ... CASE branching Example With the SWITCH instruction, a multiple branching can be programmed very easily. CASE branches can be terminated with BREAK and the system jumps to the end of the instruction. If the BREAK is not at the end of a branch, the following branch is also processed. If none of the options applies, the DEFAULT branch is processed, if available. In the <expression>, no traverse command and no G-Code addresses may be used. Instead only calculation expressions and comparisons may be used. SWITCH (<Expression>) { CASE X: { Instructions ..... } As many SWITCH commands can be used in the program as required and also nested within one another. CASE X: { Instructions ..... BREAK } CASE X: { Instructions ..... } DEFAULT: { Instructions ..... } } The SWITCH ... CASE instruction determines the value of (<Expression>) at the beginning and this value is then compared with X in the CASE branches. If it matches, the instructions in this branch are processed. If no value matches, the 113 instructions in the DEFAULT branch are processed. If no BREAK is at the end of a branch, the next branch is also processed (even if the value of X does not match (<Expression>). Id.-Nr.: 1400.210B.0-02 Version: 02/2019 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual 114 7 Flexible G&M code Programming (FlexProg) Id.-Nr.: 1400.210B.0-02 Version: 02/2019 7.6 Sample programs Example 1 - Functional example #Para_Expr DECLARE void MoveCorner () DECLARE void MoveCircle (int number) DECLARE float StartPos () DECLARE double EndPos (float value) float GlobalVar G00 X0 Y0 Z0 GlobVar = -2 MoveCorner () MoveCircle (3) G01 X=StartPos() Y=Startpos() G01 X=EndPos(GlobalVar) Y=EndPos(GlobalVar*2) M30 void MoveCorner () ;Function, without argument, without return value { G01 Y10 X10 Y0 X0 } void MoveCircle (int number) ;Function, with argument, without return value { FOR (, Number >0, Number=Number-1) { G02 X0 Y0 I10 J0 } } MotionOne CM - G&M Code Programming Manual float StartPos () ;Function, without argument, without return value { RETURN (3.141) } double EndPos (float value)() ;Function, with argument, with return value { RETURN value=value*3.7 } 115 Example 2 - Rectangle #Para_Expr DECLARE void rectangle (float Xvalue, float Yvalue) F1000 G01 X0 Y0 Z0 ;Move to zero Rectangle (10,10) ;Move rectangle 10x10 G01 X25 Y25 Z0 ; 2nd Position Rectangle (7.453,13.443) ;2. Move rectangle G93 W60 ;Turn coordinates system by 60 degrees G01 X-14 Y-25 ;3rd Position Rectangle (7.453,13.443) ;3. Move rectangle M30 void rectangle (float Xvalue, float Yvalue) ;Definition of the function Rectangle { G91 G01 Y=Yvalue X=Xvalue Y=-Yvalue X=-Xvalue G90 } Bild 6.2: Rectangle example (Example 2) Id.-Nr.: 1400.210B.0-02 Version: 02/2019 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual 116 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Example 3 - Loops #Para_Expr Q1=0 Q2=30 ;X and Y width Q4=6 ;miller diameter Q5=Q2/2 Q6=50 Q7=1 Q10=3 Q11=3 Q99=1 F4000 G72 ;scaling off G90 ;Rel. G00 X0 Y0 Z0 G91 G01 [Main] SWITCH (Q7) { CASE 1: Q7=Q7+1 GOTO Loop normo BREAK CASE 2: Q7=Q7+1 GOTO Loop inverse BREAK CASE 3: Q7=Q7+1 GOTO Move eight BREAK DEFAULT: GOTO end ;! Do not forget colon BREAK } [Loop normo] WHILE (Q6<100) ;WHILE loop (45 runs) { X10 Y-3 FOR (,Q5>10,Q5=Q5 -1) ;FOR loop (4 runs) { Y10 DO ;DO ... WHILE loop (5 runs) { X-3 Y-5 Y+7 X+5 Q4=Q4 - 0.7 } WHILE (Q4>2) Y-10 X5 } Q6=Q6 +1.1 GOTO Main } [loop inverse] G73 X-1 Y-1 Q6=50 Q5=15 Q4=6 Q99=1 117 WHILE (Q6<100) ;WHILE loop (45 runs) { X10 Y-3 FOR (,Q5>10,Q5=Q5-1) ;FOR loop (4 runs) { Y10 DO ;DO ... WHILE loop (5 runs) { X-3 Y-5 Y+7 X+5 Q4=Q4 -0.7 } WHILE (Q4>2) Y-10 X5 } Q6=Q6+1.1 GOTO Main } Bild 6.3: Loops example (Example 3) [Move eight] G01 X0 Y0 Z0 G02 X=Q1 Y=Q1 I=Q2 J=Q1 WHILE Q7>1 { G73 X= (-Q7 * 0.25) Y= (-Q7 * 0.25) G02 X0 Y0 I25 J0 G01 X0 Y0 Z0 G72 Q7=Q7-1 } G01 X0 Y0 Z0 M30 [End] Id.-Nr.: 1400.210B.0-02 Version: 02/2019 7 Flexible G&M code Programming (FlexProg) MotionOne CM - G&M Code Programming Manual 118 8 Index MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 8 Index Block search 119 26 C 5 5-axis transformation 27 A Absolute circle centre 67 Absolute measure entry 58 Absolute zero offset 61 Activate PRESET 43 Angle of rotation 19 Angular position 44 Anti-clockwise 19 Arc 19 ASCII texts 25 Axis orientation 28 B Block numbers Change of plane 30 Circle centre 67 Circular interpolation 19 Clamping position 63 Clockwise 19 Comment 14 Communication variables 107 Comparison operators 101 Compensation plane 38-39 Continuous operation axis 75 Continuous operation rotation 75 Coordinate rotation Copyright Cycle execution 46, 48, 50, 59, 61 3 57 D 13 Data type Deactivate PRESET 103 43 DEF 17 FlexProg code Delete zero offset 47 Free plane Deleting mirroring 55 Function declaration 104 Dimensions 53 Function definition 105 Direction of rotation 19 Direction vector 35, 65 Dwell time 20 102 29 G Global variables 106 I E EIT 64 Inches 53 Eroding 15, 65 Incremental dimensioning 58 Exact stop 51-52 Incremental measure input 58 Interpolation plane 23 Inverse time programming 64 Inverse Time Programming 64 Exclusion of Liability 7 Expressions 107 F F parameter 18 Feed movement 18 Feed rate 18 Flexible G&M code Programming 102 FlexProg 102 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 8 Index J Jump marks 101 K Kinematics 33 MotionOne CM - G&M Code Programming Manual 120 8 Index MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 L Lift-off movement Local variables 121 N 65 106 Log file 66 Look Ahead 52 M Nibble function 87 NIT 64 not modal 13 O Offset 32 M-codes 14 Offset number 76 Machine kinematics 33 Offset vectors 59 Macro 22 Offsets 59 Macro call 22 Online polynomials 36 Macros 105 Operand Milling cutter radius correction 37 Operating plane Milling cutter radius correction left 38 Operators Milling cutter radius correction right 39 Milling cutter radius correction up to 40 Milling cutter radius correction via 41 Mirror image machining Mirroring and RTCP modal 54-55 28 13, 17 107 23 107 P P5 Interpolation 36 Parameter instructions 101 Parameter programming 101 Polynomials 36 Position 17 Relative measure 58 Position transformation 27 Relative zero offset 59 Positioning 18 Rescue point 26 Pre-enable for stroke 88 Responsibility 10 PRESET 42 Rotary axes 75 PRESET offset 43 Rotated Coordinate System 63 Probe calibration 66 Rotation 29, 33 Program branches 101 Rotation Tool Centre Point 27 Program loops 101 RTCP 27 Program PRESET 44 Programming coordinate system 29 Punching 87 Safety 9 Punching functionality 87 Scaling 54 Sign inversion 55 Simple measurement block 71 Spatial arc interpolation 21 R RCS 50 S RCS function 50, 63 Special characters 14 RCS1 42, 44 Speed programming 63 RCS2 63 Spindle offset 76 RCS2 rotation 48 Spline arc point 35 Relative circle centre 68 Spline head data 35 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 8 Index MotionOne CM - G&M Code Programming Manual 122 8 Index MotionOne CM - G&M Code Programming Manual Id.-Nr.: 1400.210B.0-02 Version: 02/2019 Spline interface 35 Subroutine call 24 Support 7 V Variables 106 W T Table of contents 4 Target group 6 Target position in the coordinate system 58 TCP 27 Text functions 25 Time programming 64 Tool correction 37 Tool path correction 123 38-39 Tool zero point 32 Tool zero point compensation 33 U Units of measurement in inches 53 Units of measurement in mm 53 Warnings 9 Z Zero offset Zero offset table 46, 48-49, 78 78 LTI Motion GmbH Gewerbestraße 5-9 35633 Lahnau Deutschland Phone +49 6441 966-0 Fax +49 6441 966-137 www.lti-motion.com info@lti-motion.com LTI Motion GmbH Am Weiher 2 88142 Wasserburg Germany Phone +49 8382 9855-0 Id.-Nr.: 1400.210B.0-02 Version: 02/2019 MotionOne CM - G&M Code Programming Manual 124