Cat. No. I52E-EN-04 Trajexia motion control system programming manual TJ1-MC04 TJ1-MC16 Trajexia motion control system Cat. No. I52E-EN-05 programming manual Omron Europe B.V. Wegalaan 67-69, NL-2132 JD, Hoofddorp, The Netherlands. Tel: +31 (0) 23 568 13 00 Fax: +31 (0) 23 568 13 88 www.omron-industrial.com Middle East & Africa Tel: +31 (0) 23 568 11 00 www.omron-industrial.com Finland Tel: +358 (0) 207 464 200 www.omron.fi Italy Tel: +39 02 326 81 www.omron.it Denmark Tel: +45 43 44 00 11 www.
Notice /i OMRON products are manufactured for use according to proper procedures by a qualified operator and only for the purposes described in this manual. The following conventions are used to indicate and classify precautions in this manual. Always heed the information provided with them. Failure to heed precautions can result in injury to people or damage to property.
About this manual This manual describes the installation and operation of the Trajexia Motion Control System. Please read this manual and the related manuals listed in the following table carefully and be sure you understand the information provided before attempting to install or operate the Trajexia Motion Control units. Be sure to read the precautions provided in the following section. /i Revision 5.0 Name Cat. No.
WARNING Failure to read and understand the information provided in this manual may result in personal injury or death, damage to the product, or product failure. Please read each section in its entirety and be sure you understand the information provided in the section and related sections before attempting any of the procedures or operations given. Connect the TJ1-MC__ to Trajexia Studio software. Refer to the Programming Manual.
Contents 1 Safety warnings and precautions................................................................................................................................................................ 1 1.1 1.2 1.3 1.4 1.5 1.6 2 Trajexia system ........................................................................................................................................................................................... 6 2.1 2.2 2.3 2.4 2.5 2.6 3 Categories ................................
Contents 6 Troubleshooting........................................................................................................................................................................................ 293 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 A Voltage and analysis tools ............................................................................................................................................................................................................293 TJ1-MC__ ...............
Safety warnings and precautions 1 1.1 Safety warnings and precautions Intended audience This manual is intended for personnel with knowledge of electrical systems (electrical engineers or the equivalent) who are responsible for the design, installation and management of factory automation systems and facilities. 1.2 General precautions The user must operate the product according to the performance specifications described in this manual.
Safety warnings and precautions WARNING The TJ1 will turn off the WDOG when its self-diagnosis function detects any error.As a countermeasure for such errors, external safety measures must be provided to ensure safety in the system. WARNING Provide safety measures in external circuits, i.e., not in the Trajexia Motion Controller (referred to as "TJ1"), in order to ensure safety in the system if an abnormality occurs due to malfunction of the TJ1 or another external factor affecting the TJ1 operation.
Safety warnings and precautions Caution The operating environment of the TJ1 System can have a large effect on the longevity and reliability of the system. Improper operating environments can lead to malfunction, failure, and other unforeseeable problems with the TJ1 System. Make sure that the operating environment is within the specified conditions at installation and remains within the specified conditions during the life of the system. 1.
Safety warnings and precautions Caution Always connect to a class-3 ground (to 100Ω or less) when installing the Units. Not connecting to a class-3 ground may result in electric shock. Caution Always turn off the power supply to the system before attempting any of the following. Not turning off the power supply may result in malfunction or electric shock. - Mounting or dismounting expansion Units, CPU Units, or any other Units. - Assembling the Units. - Setting dipswitches or rotary switches.
Safety warnings and precautions Caution Resume operation only after transferring to the new CPU Unit the contents of the VR and table memory required for operation. Not doing so may result in an unexpected operation. Caution Use the dedicated connecting cables specified in operation manuals to connect the Units.Using commercially available RS-232C computer cables may cause failures in external devices or the Motion Control Unit.
Trajexia system 2 Trajexia system 2.1 Introduction Trajexia is OMRON's motion platform that offers you the performance and the ease of use of a dedicated motion system. fig. 1 CJ-series PLC Trajexia is a stand-alone modular system that allows maximum flexibility and scalability. At the heart of Trajexia lies the TJ1 multi-tasking motion coordinator. Powered by a 32-bit DSP, it can do motion tasks such as e-cam, e-gearbox, registration control and interpolation, all using simple motion commands.
Trajexia system Keep your know-how safe DeviceNet Trajexia's encryption method guarantees complete protection and confidentiality for your valuable know-how. The DeviceNet slave allows connectivity to the DeviceNet network in your machine. Serial Port and Local I/Os CANopen A serial port provides direct connectivity with any OMRON PLC, HMIs or any other field device.
Trajexia system 2.3 BASIC programming The BASIC language consists among others of commands, functions and parameters. These BASIC statements are the building blocks provided to control the TJ1-MC__ operation. Commands are words recognized by the processor that perform a certain action but do not return a value. For example, PRINT is a recognized word that will cause the value of the following functions or variables to be printed on a certain output device.
Trajexia system VR memory VR memory is commonly used if some data or value needs to be global, which means that it is accessible from all programs in the project at the same time. The size of this memory is 1024 slots with indexes 0 to 1023. A memory slot is addressed using the VR(x) macro where x is index of the VR memory slot. The VR memory is accessible for reading and writing. Writing is done by making mathematical assignment using the = command in the program.
Trajexia system /i Note The TABLE and VR data can be accessed from the different running tasks. When using either VR or TABLE variables, make sure to use only one task to write to one particular variable. This to avoid problems of two program tasks writing unexpectedly to one variable. Local variables Named variables or local variables can be declared in programs and are local to the task.
Trajexia system /i 'The declaration in start-up program GLOBAL length, 3 'In other programs executed after the start-up program start: length = x ... ... 2.3.4 start: MOVE(length) PRINT(length) ... Mathematical specifications Number format The TJ1-MC__ has two main formats for numeric values: single precision floating point and single precision integer. The single precision floating point format is internally a 32 bit value.
Trajexia system 2.4 Motion execution Every task on the TJ1-MC__ has a set of buffers that holds the information from the motion commands given. 2.4.1 Motion generator The motion generator has a set of two motion buffers for each axis. One buffer called MTYPE, holds the Actual Move, which is the move currently executing on the axis. The other buffer called NTYPE, holds the Next Move, which is executed after the Actual Move has finished. See chapter 2.
Trajexia system 2.4.2 Sequencing On each servo cycle interrupt (see section 2.6.1), the motion generator examines the NTYPE buffers to see if any of them are available. If there are any available then it checks the task buffers to see if there is a move waiting to be loaded. If a move can be loaded, then the data for all the specified axes is loaded from the task buffers into the NTYPE buffers and the corresponding task buffers are marked as idle. This process is called sequencing. 2.4.
Trajexia system Relevant commands Trajexia Studio provides several ways of executing, pausing and stopping the programs using buttons on the control panel and the editing windows. The following commands can be given on the command line to control the execution. /i Command Function RUN Run the current selected program or a specified program, optionally on a specified task number. STOP Stop the current selected program or a specified program. HALT Stop all programs on the system.
BASIC commands 3 3.1 BASIC commands Categories This section lists all BASIC commands divided by categories. The categories are: • Axis commands. • Axis parameters. • Communication commands and parameters. • Constants. • I/O commands, functions and parameters. • Mathematical functions and operations. • Program commands. • Program control commands. • Slot parameters and modifiers. • System commands and functions. • System parameters. • Task commands and parameters.
BASIC commands Name Description Name Description MOVEABS Moves one or more axes at the demand speed, acceleration and deceleration to the position specified as absolute position. CREEP Contains the creep speed. D_GAIN Contains the derivative control gain. MOVECIRC Interpolates 2 orthogonal axes in a circular arc. DAC_SCALE Sets scale and polarity applied to DAC values. MOVELINK Creates a linear move on the base axis linked via a software gearbox to the measured position of a link axis.
BASIC commands Name Description Name Description FAST_JOG Contains the input number to be used as the fast jog input. OPEN_WIN FASTDEC Defines ramp to zero deceleration ratio when an axis limit switch or position is reached. Defines the beginning of the window in which a registration mark is expected. OUTLIMIT Contains the limit that restricts the speed reference output from the TJ1-MC__. OV_GAIN Contains the output velocity control gain. P_GAIN Contains the proportional control gain.
BASIC commands Name Description 3.1.4 VERIFY Selects different modes of operation on a stepper output axis. /i VFF_GAIN Contains the speed feed forward control gain. Name Description VP_SPEED Contains the speed profile speed. FALSE Equal to the numerical value 0. OFF Equal to the numerical value 0. ON Equal to the numerical value 1. PI Equal to the numerical value 3.1416. TRUE Equal to the numerical value -1. 3.1.
BASIC commands 3.1.6 Mathematical functions and operands /i Name Description FRAC Returns the fractional part of an expression. IEEE_IN Returns floating point number in IEEE format, represented by 4 bytes. IEEE_OUT Returns single byte extracted from the floating point number in IEEE format. Revision 5.0 Name Description + (ADDITION) Adds two expressions. - (SUBTRACTION) Subtracts two expressions. * (MULTIPLICATION) Multiplies two expressions.
BASIC commands Name Description Name Description DEL Deletes a program from the motion controller. IF..THEN..ELSE..ENDIF DIR Displays a list of the programs in the motion controller, their size and their RUNTYPE on the standard output. Controls the flow of the program base on the results of the condition. ON.. GOSUB or ON.. GOTO Enables a conditional jump to one of several labels. REPEAT..UNTIL Loop allows the program segment to be repeated until the condition becomes TRUE. WHILE..
BASIC commands Name Description Name Description CLEAR Clears all global variables and the local variables on the current task. READ_BIT Returns the value of the specified bit in the specified VR variable. CLEAR_BIT Clears the specified bit of the specified VR variable. RESET Resets all local variables on a task. CLEAR_PARAMS Clears all parameter sand variables stored in Flash-ROM to their default values.
BASIC commands Revision 5.0 Name Description D_ZONE_MAX Controls the DAC output in conjunction with the Following Error value. D_ZONE_MIN Controls the DAC output in conjunction with the Following Error value. DATE Sets or returns the current date held by the real time clock. DAY Sets or returns the current day. DISPLAY Determines I/O channels to be displayed on the front panel LEDs. ERROR_AXIS Contains the number of the axis which caused the motion error.
BASIC commands 3.2 All BASIC commands 3.2.1 + (Addition) /i 3.2.3 * (Multiplication) /i Type Mathematical function Syntax expression1 * expression2 Type Mathematical function Description The operator * multiplies two expressions. Syntax expression1 + expression2 Arguments • Description The operator + adds two expressions. Arguments • • expression1 Any valid BASIC expression. expression2 Any valid BASIC expression.
BASIC commands 3.2.5 ^ (Power) /i 3.2.7 = (Assignment) /i Type Mathematical function Type Mathematical function Syntax expression1 ^ expression2 Syntax variable = expression Description The power operator ^ raises expression1 to the power of expression2. This operation uses floating point algorithms and may give small deviations for integer calculations. Description The operator = assigns the value of the expression to the variable.
BASIC commands 3.2.9 > (Is greater than) /i 3.2.11 < (Is less than) /i Type Mathematical function Type Mathematical function Syntax expression1 > expression2 Syntax expression1 < expression2 Description The operator > returns TRUE if expression1 is greater than expression2, otherwise it returns FALSE. Description The operator < returns TRUE if expression1 is less than expression2, otherwise it returns FALSE. Arguments • Arguments • • expression1 Any valid BASIC expression.
BASIC commands 3.2.13 $ (Hexadecimal input) 3.2.15 : (Statement separator) /i /i Type System command Type Program command Syntax $hex_num Syntax : Description The $ command makes the number that follows a hexadecimal number. Description Arguments • The statement separator : separates multiple BASIC statements on one line. You can use it on the command line and in programs.
BASIC commands 3.2.17 ABS 3.2.19 ACCEL /i /i Type Mathematical function Type Axis parameter Syntax ABS(expression) Syntax ACCEL = expression Description The ABS function returns the absolute value of an expression. Description Arguments • The ACCEL axis parameter contains the axis acceleration rate. The rate is set in units/s2. The parameter can have any positive value including zero.
BASIC commands 3.2.21 ADD_DAC /i Type Axis command Syntax ADD_DAC(axis) /i Description fig. 1 The ADD_DAC command adds the DAC_OUT value of axis to the DAC_OUT value of the base axis. Use ADD_DAC(-1) to cancel the sum. ADD_DAC works on the default basis axis (set with BASE) unless AXIS is used to specify a temporary base axis. Note: 1. Be aware that the control loop gains for both axes need to be determined with care.
BASIC commands 3.2.22 ADDAX /i Type Axis command Syntax ADDAX(axis) Description The ADDAX command is used to superimpose two or more movements to build up a more complex movement profile. The ADDAX command takes the demand position changes from the superimposed axis as specified by the axis argument and adds them to any movement running on the axis to which the command is issued. The axis specified by the parameter can be any axis and does not have to physically exist in the system.
BASIC commands /i Example fig. 2 UNITS AXIS(0)=1000 UNITS AXIS(1)=20 ' Superimpose axis 1 on axis 0 ADDAX(1) AXIS(0) MOVE(1) AXIS(0) MOVE(2) AXIS(1) 'Axis 0 will move 1*1000+2*20=1040 edges Revision 5.
BASIC commands /i Example fig. 3 Pieces are placed randomly onto a belt that moves continuously. Further along the line they are transferred to a second flighted belt. A detection system indicates if a piece is in front of or behind its nominal position, and how far.
BASIC commands /i Example See also fig. 4 An X-Y marking machine must mark boxes as they move along a conveyor. Using CONNECT enables the X marking axis to follow the conveyor. A virtual axis is used to program the marking absolute positions; this is then superimposed onto the X axis using ADDAX.
BASIC commands 3.2.23 ADDAX_AXIS Example MOVE(-5000) REPEAT a=AIN(1) IF a<0 THEN a=0 SPEED=a*0.25 UNTIL MTYPE=0 The speed of a production line is governed by the rate at which material is fed onto it. The material feed is via a lazy loop arrangement which is fitted with an ultra-sonic height sensing device. The output of the ultra-sonic sensor is in the range 0V to 4V where the output is at 4V when the loop is at its longest.
BASIC commands 3.2.26 AND Description The AOUT command sets the output value of the analogue output channels that are provided by connecting GRT1-ML2 Slice Coupler, Phoenix IL MII BK Slice Coupler, or JEPMC-AN2910 modules on the MECHATROLINK-II bus. The range of the value set is [-32000, 32000] for full output range. The output range depends on the analogue unit used and can be one of the following: [10V, 10V], [0V, 10V] or [0V, 5V] for voltage and [0mA, 20mA] or [4mA, 20mA] for current output.
BASIC commands Arguments • expression Any valid BASIC expression. Example >> PRINT ATAN(1) 0.7854 See also N/A 3.2.30 ATAN2 /i Type Mathematical function Syntax ATAN2(expression1, expression2) Description The ATAN2 function returns the arc-tangent of the non-zero complex number (expression1, expression2), which is equivalent to the angle between a point with coordinate (expression1, expression2) and the x-axis.
BASIC commands Description The AUTORUN command starts all the programs that have been set to run at start-up. Description Note: This command should only be used on the Command Line Terminal. Arguments N/A Example No example. See also RUNTYPE 3.2.33 AXIS /i Type System command Syntax AXIS(axis_number) Description The AXIS modifier sets the axis for a single motion command or a single axis parameter read/write to a particular axis.
BASIC commands The AXIS_ENABLE axis parameter is used to enable or disable particular axis independently of others. This parameter can be set ON or OFF for each axis individually. The default value on start-up is ON or all axes. The axis will be enables if both AXIS_ENABLE for that axis is ON and WDOG is on. For MECHATROLINK-II axes setting AXIS_ENABLE to OFF will disable Servo Driver output to the motor. For Flexible axis Servo axis setting AXIS_ENABLE to OFF will force both voltage outputs to 0.
BASIC commands Arguments • • • • • Example See also type Reserved for future expansion. Always set this to 1. data_in Location in the TABLE where the source profile is stored. number_in Number of points in the source profile. data_out Location in the TABLE where the expanded profile will be stored. expansion_ratio The expansion ratio, i.e., if the source profile is 100 points and expansion_ratio is set to 10 the resulting profile will be 1000 point (100 * 10).
BASIC commands 3.2.40 BASE Example BASE(1) UNITS = 2000 ' Set unit conversion factor for axis 1 SPEED = 100 ' Set speed for axis 1 ACCEL = 5000 ' Set acceleration rate for axis 1 BASE(2) UNITS = 2000 ' Set unit conversion factor for axis 2 SPEED = 125 ' Set speed for axis 2 ACCEL = 10000 ' Set acceleration rate for axis 2 It is possible to program each axis with its own speed, acceleration and other parameters. Example BASE(0) MOVE(100,-23.
BASIC commands Description The BASICERROR command can be used to run a routine when a run-time error occurs in a program. BASICERROR can only be used as part of an ON ... GOSUB or ON ... GOTO command. This command is required to be executed once in the BASIC program. If several commands are used only the one executed last is effective. Arguments N/A Example ON BASICERROR GOTO error_routine ...
BASIC commands 3.2.44 CAM Arguments • /i Type Axis command Syntax CAM(start_point, end_point, table_multiplier, distance) Description The CAM command is used to generate movement of an axis following a position profile which is stored in the TABLE variable array. The TABLE values are absolute positions relative to the starting point and are specified in encoder edges. The TABLE array is specified with the TABLE command.
BASIC commands /i Example fig. 5 Motion is required to follow the POSITION equation: t(x) = x*25 + 10000(1-cos(x)), where x is in degrees. This example table provides a simple oscillation superimposed with a constant speed.
BASIC commands TABLE position Degree Value 14 260 18236 15 280 15263 16 300 12500 17 320 10340 18 340 9103 19 360 9000 Revision 5.
BASIC commands /i Example fig. 6 Revision 5.0 A masked wheel is used to create a stencil for a laser to shine through for use in a printing system for the ten numerical digits. The required digits are transmitted through port 1 serial port to the controller as ASCII text. The encoder used has 4000 edges per revolution and so must move 400 between each position. The cam table goes from 0 to 1, which means that the CAM multiplier needs to be a multiple of 400 to move between the positions.
BASIC commands Example A suction pick and place system must vary its speed depending on the load carried. The mechanism has a load cell which inputs to the controller on the analogue channel (AIN). The move profile is fixed, but the time taken to complete this move must be varied depending on the AIN. The AIN value varies from 100 to 800, which must result in a move time of 1 to 8 seconds.
BASIC commands Arguments • • • • • • start_point The address of the first element in the TABLE array to be used. end_point The address of the end element in the TABLE array. table_multiplier The Table multiplier value used to scale the values stored in the TABLE. As the TABLE values are specified in encoder edges, use this argument to set the values for instance to the unit conversion factor (set by UNITS parameter).
BASIC commands /i Example fig. 7 ' Subroutine to generate a SIN shape speed profile ' Uses: p is loop counter ' num_p is number of points stored in tables pos 0..num_p ' scale is distance travelled scale factor profile_gen: num_p=30 scale=2000 FOR p=0 TO num_p TABLE(p,((-SIN(PI*2*p/num_p)/(PI*2))+p/num_p)*scale) NEXT p RETURN This graph plots TABLE contents against table array position. This corresponds to motor POSITION against link POSITION when called using CAMBOX.
BASIC commands /i Example fig. 9 A pair of rollers feeds plastic film into a machine. The feed is synchronised to a master encoder and is activated when the master reaches a position held in the variable start. This example uses the table points 0...
BASIC commands /i Example fig. 10 A motor on Axis 0 is required to emulate a rotating mechanical CAM. The position is linked to motion on axis 3. The “shape” of the motion profile is held in TABLE values 1000..1035. The table values represent the mechanical cam but are scaled to range from 0-4000.
BASIC commands /i • • • SHAPE BLOCK: This is directly pointed to by the CAMBOX command as in any CAMBOX. CONTROL BLOCK: This is pointed to by the third CAMBOX parameter in this options mode only. It is of fixed length (7 table values). It is important to note that the control block is modified during the CAMBOX operation. It must therefore be re-initialised prior to each use. PATTERN BLOCK: The start and end of this are pointed to by 2 of the CONTROL BLOCK values.
BASIC commands /i Example See also fig. 11 A quilt stitching machine runs a feed cycle that stitches a plain pattern before it starts a patterned stitch. The plain pattern must run for 1000 cycles. Then, it must runs a pattern continuously, until requested to stop at the end of the pattern. The cam profile controls the motion of the needle bar between moves. The pattern table controls the distance of the move to make the pattern. The same shape is used for the initialisation cycles and the pattern.
BASIC commands 3.2.46 CAN_CORT Description The CAN_CORT commands where the second argument is 4 through 10 are normally used in a BASIC program that is run at startup. The sequence of the CAN_CORT commands that configure a CANopen network is important. Arguments • /i Type System command Syntax CAN_CORT(unit,4,0) Retrieves the unit status. See the table in section 4.6.2. CAN_CORT(unit,5,bit_rate) Initialises the TJ1-CORT with the desired bit rate.
BASIC commands • • • mode The CANopen network operation mode. 0 = pre-operational, 1 = operational. VR_address The index in the VR array. data_len The amount of bytes to transfer. Example No example. See also N/A 3.2.47 CANCEL /i Revision 5.0 Type Axis command Syntax CANCEL[(1)] CA[(1)] Description The CANCEL command cancels the move on an axis or an interpolating axis group.
BASIC commands /i fig. 12 Example FORWARD WA(10000) CANCEL ' Stop movement after 10 seconds Example MOVE(1000) MOVEABS(3000) CANCEL ' Cancel the move to 3000 and move to 4000 instead. MOVEABS(4000) Note that the command MOVEMODIFY is a better solution for modifying end points of moves in this case. /i fig. 13 Example Two axes are connected with a ratio of 1:2. Axis 0 is cancelled after 1 second, then axis 1 is cancelled when the speed drops to a specified level.
BASIC commands 3.2.48 CHECKSUM Description The CLEAR command resets all global VR variables to 0 and sets local variables on the process on which the command is run to 0. When you use it in a program it resets all local variables defined to 0. /i Type System parameter (read-only) Arguments N/A Syntax CHECKSUM Example Description The CHECKSUM parameter contains the checksum for the programs in RAM. At start-up, the checksum is recalculated and compared with the previously held value.
BASIC commands 3.2.52 CLEAR_PARAMS Description The CLUTCH_RATE axis parameter defines the change in connection ratio when using the CONNECT command. The rate is defined as amount of ratio per second. The default value is set to a high value (1000000) in order to ensure compatibility with previous TJ1-MC__ units. Note: The operation using CLUTCH_RATE is not deterministic in position. If required, use the MOVELINK command instead to avoid unnecessary phase difference between base axis and linked axis.
BASIC commands 3.2.57 COMPILE /i Arguments N/A Example No example. See also N/A /i 3.2.56 COMMSTYPE Type Program command Syntax COMPILE Description The COMPILE command forces the compilation of the currently selected program to intermediate code. Program are compiled automatically by the system software prior to program execution or when another program is selected. This command is not therefore normally required. Arguments N/A Example No example.
BASIC commands /i Arguments fig. 14 • • Example ratio The connection ratio of the gearbox. The ratio is specified as the encoder edge ratio (not units). It holds the number of edges the base axis is required to move per edge increment of the driving axis. The ratio value can be either positive or negative and has sixteen bit fractional resolution. driving_axis The Master axis which will drive the base axis.
BASIC commands /i fig. 16 Example Axis 0 is required to run a continuous forward. Axis 1 must connect to axis 0. If CONNECT is called, it results in a step change. Therefore, CLUTCH_RATE is used, together with an initial and final connect ratio of zero, to get the required motion. FORWARD AXIS(0) BASE(1) CONNECT(0,0) 'set intitial ratio to zero CLUTCH_RATE=0.
BASIC commands 3.2.59 CONSTANT Description /i Type System command Syntax CONSTANT "name", value Description Declares the name as a constant for use both within the program containing the CONSTANT definition and all other programs in the Trajexia Studio project. Note: The program containing the CONSTANT definition must be run before the name is used in other programs.
BASIC commands Arguments • expression Any valid BASIC expression. Example >> PRINT COS(0) 1.0000 See also N/A 3.2.64 D_GAIN /i Type Axis parameter Syntax D_GAIN Description The D_GAIN axis parameter contains the derivative gain for the axis. The derivative output contribution is calculated by multiplying the change in Following Error with D_GAIN. The default value is 0.
BASIC commands See also D_ZONE_MIN. Description 3.2.66 D_ZONE_MIN /i Type System parameter Syntax D_ZONE_MIN=value Description This parameter works in conjunction with D_ZONE_MAX to clamp the DAC output to zero when the demand movement is complete and the magnitude of the Following Error is less than the D_ZONE_MIN value. The servo loop will be reactivated when either the Following Error rises above the D_ZONE_MAX value, or a fresh movement is started.
BASIC commands See also /i N/A sequence value Description 3.2.71 DATE$ /i 0 The DATUM(0) command will clear the motion error. The currently measured position is set as the demand position (this is especially useful on stepper axes with position verification). DATUM(0) also clears the Following Error that exceeded the FE_LIMIT condition in the AXISSTATUS register for ALL axes. It sets these bits in AXXISSTATUS to zero: Bit 1 : Following Error Warning. Bit 2 : Remote Driver Comms Error.
BASIC commands sequence value Description 6 The axis moves at demand speed reverse until the datum switch is reached. The axis then moves forward at creep speed until the datum switch is reset. The axis continues forward at creep speed until the Z marker of the encoder is encountered. The demand position is then reset to 0 and the measured position corrected so as to maintain the Following Error. /i Example fig.
BASIC commands /i Example fig. 18 The position of an axis must be defined by the Z marker. This position must be set to zero. Then the axis must move to this position. Using the datum 1 the zero point is set on the Z mark. But the axis starts to decelerate at this point, and therefore it stops after the mark. A move is used to bring it back to the Z position.
BASIC commands /i fig. 20 Example A machine similar to the machine in the example above must locate a home switch, which is at the forward end of the move. The machine then moves backwards to the next Z marker, and set this Z marker as the datum. This is done with DATUM(5), which moves forward at SPEED to locate the switch, then reverses at CREEP to the Z marker. If required, a move is made to the datum Z marker.
BASIC commands Example DATUM_IN AXIS(0)=5 Syntax DECEL See also AXIS, DATUM. Description The DECEL axis parameter contains the axis deceleration rate. The rate is set in units/s2. The parameter can have any positive value including 0. 3.2.74 DAY Arguments N/A /i Example DECEL = 100 ' Set deceleration rate PRINT " Deceleration rate is ";DECEL;" mm/s/s" See also ACCEL, AXIS, UNITS. Type System parameter Syntax DAY Description Returns the current day as a number 0..6, Sunday is 0.
BASIC commands /i Example fig. 21 After 2 axes returned to their homing positions, it is required to change the DPOS values so that the home positions are not zero, but some defined positions instead. DATUM(5) AXIS(1) ' home both axes. At the end of the DATUM DATUM(4) AXIS(3) ' procedure, the positions are 0,0. WAIT IDLE AXIS(1) WAIT IDLE AXIS(3) BASE(1,3) ' set up the BASE array DEFPOS(-10,-35) ' define positions of the axes to be -10 and -35 Revision 5.
BASIC commands /i Example fig. 22 Set the axis position to 10, then start an absolute move, but make sure the axis has updated the position before loading the MOVEABS. DEFPOS(10.0) WAIT UNTIL OFFPOS=0 ' Makes sure that DEFPOS is complete before next line MOVEABS(25.03) /i fig. 23 Example From the Command Line of the Terminal window, quickly set the DPOS values of the first four axes to 0. >>BASE(0) >>DP(0,0,0,0) See also AXIS, DATUM, DPOS, OFFPOS, MPOS, UNITS. BEFORE AFTER Revision 5.
BASIC commands 3.2.78 DEL 3.2.80 DEVICENET /i /i Type Program command Type System command Syntax DEL [program_name] RM [program_name] Syntax Description The DEL command deletes a program from the controller. DEL without a program name can be used to delete the currently selected program (using SELECT). The program name can also be specified without quotes. DEL ALL will delete all programs. DEL can also be used to delete the Table: DEL "TABLE". The name "TABLE" must be in quotes.
BASIC commands Bit Value Description Example No example. 10 0 No node address duplication error See also FREE, POWER_UP, PROCESS, RUNTYPE, SELECT. 1 Node address duplication error /i Arguments • • • • • Example See also unit_number Specifies the unit number of the TJ1-DRT in the Trajexia system. VR_start_outputs The starting address in VR memory of the controller where the output data from the DeviceNet master is located.
BASIC commands /i Example fig. 24 Revision 5.0 Two conveyors operated by the same Motion Coordinator are required to run independently, to make sure that the second conveyor does not stop if the first conveyor is blocked.
BASIC commands DATUM(0) ' clear motion error on axis 0 WA(10) AXIS_ENABLE=ON SERVO=ON RETURN Example Revision 5.0 See also One group of axes in a machine must be reset if a motion error occurs, without affecting the remaining axes. This must be done manually by clearing the cause of the error, pressing a button to clear the error flags of the controllers and re-enabling the motion.
BASIC commands Description The DPOS axis parameter contains the demand position in user units, which is generated by the move commands in servo control. When the controller is in open loop (SERVO=OFF), the measured position (MPOS) will be copied to the DPOS in order to maintain a 0 Following Error. The range of the demand position is controlled with the REP_DIST and REP_OPTION axis parameters. The value can be adjusted without doing a move by using the DEFPOS command or OFFPOS axis parameter.
BASIC commands 3.2.87 DRIVE_CONTROL /i Type Axis parameter Syntax DRIVE_CONTROL Description When applied to an axis driven by the Servo Driver connected to the system via the MECHATROLINK-II bus, this parameter selects the data to be monitored by DRIVE_MONITOR according to the table below. See also 3.2.88 DRIVE_INPUTS /i Type Axis parameter Syntax DRIVE_INPUTS Description This parameter monitors the status of the inputs of the Servo Driver connected via the MECHATROLINK-II bus.
BASIC commands Bit no.
BASIC commands Arguments • • • Example parameter The number of the parameter to be read. Note that the parameter numbers are hexadecimal. The format of the data can be found in the Servo Driver manual. size SIze of the parameter is specified in bytes. For most parameters the size is normally 2 bytes. Some special parameters may be 4 bytes long. Sizes for each parameter can be found in the Servo Driver manual. VR The VR address where the read parameter is stored upon successful execution.
BASIC commands Bit Description (MECHATROLINK-II) 3.2.93 DRIVE_WRITE 9 Torque Limit /i 10 Latch Completed Type Axis command 11 In Range/Speed Limit Syntax DRIVE_WRITE(parameter, size, value [,mode]) Description The DRIVE_WRITE function writes to the specified parameter of the Servo Driver via the MECHATROLINK-II bus. Upon successful execution, this command returns -1. If the command cannot be executed, the value 0 is returned.
BASIC commands See also DRIVE_READ, DRIVE_RESET, $ (HEXADECIMAL INPUT) 3.2.97 ENCODER /i Caution Be sure that no Parameter Unit or Personal Computer Software is connected to the Servo Driver when executing this command. Otherwise the program task will be paused until the connection of the other device to the Servo Driver is removed.
BASIC commands Example ENCODER_BITS = 25 + (256 * 12) ATYPE = 47 In this example a 25 bit EnDat encoder is used, that has 12 bits for multi-turn value and 13 bits per one revolution. Example ENCODER_BITS = 12 + (64 * 1) ATYPE = 48 In this example a 12 bit (4096 positions per revolution) SSI encoder is used, with binary output type. See also This parameter returns the ID value of an absolute encoder for the axis.
BASIC commands Arguments • • denominator A number between 0 and 16777215 that is used to define the denominator in the above equation. numerator A number between 0 and 16777215 that is used to define the numerator in the above equation. Example ' 7200 is the closest to the encoder resolution that can be devided by an ' integer to give degrees. (7200/20=360) ENCODER_RATIO(8192,7200) UNITS=20 ' axis calibrated in degrees, resolution is 0.05 deg.
BASIC commands Arguments N/A Example No example. See also AXIS, DPOS, FE_LIMIT, UNITS. Description The ERROR_AXIS axis parameter contains the number of the axis which has caused the motion error. A motion error occurs when the AXISSTATUS state for one of the axes matches the ERRORMASK setting. In this case the enable switch (WDOG) will be turned off, the MOTION_ERROR parameter will have value different than 0 and the ERROR_AXIS parameter will contain the number of the first axis to have the error.
BASIC commands Description The ERRORMASK axis parameter contains a mask value that is ANDed bit by bit with the AXISSTATUS axis parameter on every servo cycle to determine if a motion error has occurred. If the result of the AND operation is not zero, the motion error has occurred. When a motion error occurs the enable switch (WDOG) will be turned off, the MOTION_ERROR parameter will have value different than 0 and the ERROR_AXIS parameter will contain the number of the first axis to have the error.
BASIC commands See also N/A 3.2.112 EXP Syntax FAST_JOG Description The FAST_JOG axis parameter contains the input number to be used as the fast jog input. The number can be from 0 to 31. As default the parameter is set to -1, no input is used for the fast jog. The fast jog input controls the jog speed between two speeds. If the fast jog input is set, the speed as given by the SPEED axis parameter will be used for jogging.
BASIC commands Description The FE axis parameter contains the position error in user units. This is calculated by the demand position (DPOS axis parameter) minus the measured position (MPOS axis parameter). The value of the Following Error can be checked by using the axis parameters FE_LIMIT and FE_RANGE. Arguments N/A Example No example. See also AXIS, DPOS, FE_LIMIT, FE_RANGE, MPOS, UNITS. Arguments N/A Example No example. See also AXIS, AXISSTATUS, ERRORMASK, FE, FE_RANGE, UNITS. 3.2.
BASIC commands 3.2.121 FHOLD_IN Description The FHSPEED axis parameter contains the feedhold speed. This parameter can be set to a value in user units/s and defines at which speed the axis will move when the feedhold input turns on. The current move is not cancelled. FHSPEED can have any positive value including 0. The default value is 0. This default value is applicable to most applications as motion is usually ramped down to zero speed when the freehold input is set.
BASIC commands 3.2.123 FINS_COMMS Arguments • /i Type Communication command Syntax FINS_COMMS(type, network, node, unit, remote_area, remote_offset, length, local_area, local_offset, timeout [, ip1, ip2, ip3, ip4]) Description FINS (Factory Interface Network Service) is a Proprietary OMRON communication protocol. A subset of this protocol has been implemented in Trajexia.
BASIC commands • • • Example See also local_offset The offset of the first value in the local (source) memory area. The range depends upon the VR or TABLE array size and value for the length argument. timeout The number of milliseconds to wait for a response from the destination FINS server, before timing out. IP1, IP2, IP3, IP4 Optional parameters that define the remote (destination) server IP address.
BASIC commands Bit number Decimal value 5 32 6 64 7 128 Arguments • • • /i • Example FLAGS(146) ' 2 + 16 + 128 Set Flags 1,4 and 7 on, all others off. Example IF (FLAGS and 8) <>0 then GOSUB somewhere Test if Flag 3 is set. See also N/A 3.2.126 FOR..TO..STEP..NEXT • variable Any valid BASIC expression. start Any valid BASIC expression. end Any valid BASIC expression. increment Any valid BASIC expression. commands One or more BASIC commands.
BASIC commands 3.2.127 FORWARD /i Type Axis command Syntax FORWARD FO Description The FORWARD command moves an axis continuously forward at the speed set in the SPEED axis parameter. The acceleration rate is defined by the ACCEL axis parameter. FORWARD works on the default basis axis (set with BASE) unless AXIS is used to specify a temporary base axis. Note: The forward motion can be stopped by executing the CANCEL or RAPIDSTOP command, or by reaching the forward limit.
BASIC commands /i Example fig. 26 Move an axis forward until it hits the end limit switch, then move it in the reverse direction for 25 cm. BASE(3) FWD_IN=7 limit switch connected to input 7 FORWARD WAIT IDLE ' wait for motion to stop on the switch MOVE(-25.0) WAIT IDLE Example A machine that applies lids to cartons uses a simulated line shaft. This example sets up a virtual axis running forward to simulate the line shaft.
BASIC commands 3.2.128 FPGA_VERSION Description Used to specify which frame to operate within when employing frame transformations. Frame transformations are used to allow movements to be specified in a multi-axis coordinate frame of reference which do not correspond one-toone with the axes. An example is a SCARA robot arm with jointed axes. For the end tip of the robot arm to perform straight line movements in X-Y the motors need to move in a pattern determined by the robots geometry.
BASIC commands 3.2.132 FS_LIMIT Description The FWD_IN axis parameter contains the input number to be used as a forward limit input. The valid input range is 0 to 31. Values 0 to 15 represent physically present inputs of TJ1-MC__ I/O connector and are common for all axes. Values 16 to 31 are mapped directly to driver inputs that are present on the CN1 connector. They are unique for each axis. It depends on the type of Servo Driver which Servo Driver inputs are mapped into inputs 16 to 31.
BASIC commands 3.2.135 GET 3.2.136 GLOBAL /i /i Type I/O command Type System command Syntax GET [#n,] variable Syntax GLOBAL "name", vr_number Description The GET command assigns the ASCII code of a received character to a variable. If the serial port buffer is empty, program execution will be paused until a character has been received. Channels 5 to 7 are logical channels that are superimposed on the programming port 0 when using Trajexia Studio.
BASIC commands 3.2.137 GOSUB..RETURN Arguments • /i label A valid label that occurs in the program. An invalid label will give a compilation error before execution. Labels can be character strings of any length, but only the first 15 characters are significant. Alternatively line numbers may be used as labels. Type Program control command Syntax GOSUB label ... RETURN Example The GOSUB structure enables a subroutine jump.
BASIC commands Example PRINT#5,HEX(IN(8,16)) command value Description See also N/A HLM_INIT (or value 3) This performs the Host Link INITIALIZE (**) command to initialize the transmission control procedure of all Slave Units. HLM_STWR (or value 4) This performs the Host Link STATUS WRITE (SC) command to change the operating mode of the CPU Unit. 3.2.
BASIC commands Example HLM_COMMAND(HLM_MREAD,1,12,MC_VR,233) This command reads the CPU Unit model code of the Host Link Slave with node address 12 connected to the RS-232C port. The result is written to VR(233). If the connected Slave is a any OMRON CJ/CS PLC model, the VR(233) will contain value 30 (hex) after successful execution.
BASIC commands pc_area value Data area Host link command 3.2.143 HLM_STATUS PLC_EM (or value 6) EM area RE /i /i • • • plc_offset The address of the specified PC memory area to read from. Range: [0, 9999]. length The number of words of data to be transferred. Range: [1, 30]. mc_area The memory selection of the TJ1-MC__ to read the send data from. See the table below.
BASIC commands Example >> HLM_WRITE(1,28,PLC_EM,50,25,MC_VR,200) >> PRINT HEX(HLM_STATUS PORT(1)) 1 Apparently the CPU Unit is in RUN mode and does not accept the write operation. Example >> HLM_COMMAND(HLM_TEST,2,0) >> PRINT HLM_STATUS PORT(2) 256.0000 A timeout error has occurred. See also HLM_READ, HLM_COMMAND, HLM_TIMEOUT, HLS_NODE, HLM_WRITE, SETCOM. 3.2.144 HLM_TIMEOUT /i Type Communication parameter Syntax HLM_TIMEOUT /i fig. 27 Revision 5.
BASIC commands 3.2.145 HLM_WRITE /i Type Communication command Syntax HLM_WRITE(port, node, plc_area, plc_offset, length, mc_area, mc_offset) Description The HLM_WRITE command writes data from the TJ1-MC__ to a Host Link Slave by sending a Host link command string containing the specified node of the Slave to the serial port. The received response data will be written from either VR or TABLE variables. Each variable will define the word or data that will be transferred.
BASIC commands Example HLM_WRITE(1,28,PLC_EM,50,25,MC_VR,200) This example shows how to write 25 words from TJ1-MC__ ' s VR addresses 200-224 to the PC EM area addresses 50-74. The PC has Slave node address 28 and is connected to the RS-232C port. See also HLM_READ, HLM_COMMAND, HLM_STATUS, HLM_TIMEOUT, HLS_NODE, SETCOM.
BASIC commands 3.2.148 I_GAIN Example VR(20) = IEEE_IN(b0,b1,b2,b3) /i See also N/A Type Axis parameter Syntax I_GAIN Description The I_GAIN parameter contains the integral gain for the axis. The integral output contribution is calculated by multiplying the sums of the Following Errors with the value of the I_GAIN parameter. The default value is 0.
BASIC commands Description This structure controls the flow of the program based on the results of the condition. If the condition is TRUE the commands following THEN up to ELSEIF, ELSE or ENDIF are executed. If the condition is FALSE and the command of a subsequent ELSEIF substructre is TRUE, the commands of this substructure are executed. If all conditions are FALSE the commands following ELSE will be executed or the program will resume at the line after ENDIF in case no ELSE is included.
BASIC commands Example The following lines can be used to move to the position set on a thumb wheel multiplied by a factor. The thumb wheel is connected to inputs 4, 5, 6 and 7, and gives output in BCD. moveloop: MOVEABS(IN(4,7)*1.5467) WAIT IDLE GOTO moveloop The MOVEABS command is constructed as follows: Step 1: IN(4,7) will get a number between 0 and 15. Step 2: The number is multiplied by 1.5467 to get required distance. Step 3: An absolute move is made to this position.
BASIC commands Description Arguments The INPUT command will assign numerical input string values to the specified variables. Multiple input string values can be requested on one line, separated by commas, or on multiple lines separated by carriage return. The program execution will be paused until the string is terminated with a carriage return after the last variable has been assigned. If the string is invalid, the user will be prompted with an error message and the task will be repeated.
BASIC commands Description INVERT_STEP is used to switch a hardware Inverter into the stepper pulse output circuit. This can be necessary for connecting to some stepper drivers. The electronic logic inside the Trajexia stepper pulse generator assumes that the FALLING edge of the step output is the active edge which results in motor movement. This is suitable for the majority of stepper drivers. Setting INVERT_STEP=ON effectively makes the RISING edge of the step signal the active edge.
BASIC commands Bit Value Command Description 13 Hex 2000 Inverter multifunction Input 12 (only G7) 14 Hex 4000 Fault history data clear 15 Hex 8000 External BB command Example >>INVERTER_WRITE(1,$23,2,4500) >>INVERTER_COMMAND(1,$23,7,2) >>WA(10000) >>INVERTER_COMMAND(1,$23,7,0) The sequence above controls an Inverter connected via MECHATROLINK-II bus to TJ1-ML__ unit at slot 1 and with station number 23 (hex), using following steps: Step 1: Speed reference is set to 45.00 Hz.
BASIC commands Description INVERTER_READ reads the parameter, speed reference, torque reference or alarm from the Inverter connected to the system via the MECHATROLINKII bus. There are five INVERTER_READ functions: • 0: Reads an Inverter parameter. • 1: Reads the Inverter alarm. • 2: Reads the speed reference. • 3: Reads the torque reference. • 4: Reads the Inverter inputs.
BASIC commands Description INVERTER_WRITE writes the parameter, speed reference or torque reference from the Inverter connected to the system via the MECHATROLINK-II bus. There are three INVERTER_WRITE functions: • 0: Writes an Inverter parameter. • 2: Writes the speed reference. • 3: Writes the torque reference. To use an Inverter via MECHATROLINK-II you should put the command and the reference via communication option: • Inverter MV/V7: N3=3; N4=9 • Inverter F7/G7: B1-01=3; B1-02=3.
BASIC commands Arguments • n The specified input device. When this argument is omitted, the port as specified by INDEVICE will be used. See the table below. Example No example. See also AXIS, BACKLASH. 3.2.
BASIC commands Example See also Consider the following line in a program. LINPUT#5, VR(0) Entering START on port 5 will give VR(0)=83 ' ASCII 'S' VR(1)=84 ' ASCII 'T' VR(2)=65 ' ASCII 'A' VR(3)=82 ' ASCII 'R' VR(4)=84 ' ASCII 'T' VR(5)=13 ' ASCII carriage return • Description When executed from the Command Line Terminal interface (channel 0), all the currently set GLOBAL and CONSTANT parameters will be printed to the terminal.
BASIC commands Syntax LOCK(code) UNLOCK(code) Description The LOCK command prevents the program from being viewed, modified or deleted by personnel unaware of the security code. The lock code number is stored in the Flash-ROM. The UNLOCK command allows the locked state to be unlocked. The code number can be any integer and is held in encoded form. LOCK is always an immediate command and can be issued only when the system is UNLOCKED.
BASIC commands Syntax Description MECHATROLINK(unit,0) Detects and connects devices on MECHATROLINK-II Master Unit unit. It is necessary to use it to reset the network from a communication problem and to re-detect servos that have been not detected (EG: when the A letter in the AXISSTATUS word becomes capital red). MECHATROLINK(unit,3,VR) Returns the number of detected MECHATROLINK-II devices after a MECHATROLINK(unit,0).
BASIC commands 3.2.175 MHELICAL /i Type Axis command Syntax MHELICAL(end1, end2, centre1, centre2, direction, distance3 [,mode])) MH(end1, end2, centre1, centre2, direction, distance3 [,mode]) Description Performs a helical move, that is, moves 2 orthogonal axes in such a way as to produce a circular arc at the tool point with a simultaneous linear move on a third axis. The first 5 parameters are similar to those of a MOVECIRC command. The sixth parameter defines the simultaneous linear move.
BASIC commands /i Example fig. 28 The command sequence follows a rounded rectangle path with axis 1 and 2. Axis 3 is the tool rotation so that the tool is always perpendicular to the product. The UNITS for axis 3 are set such that the axis is calibrated in degrees.
BASIC commands /i Example See also fig. 29 A PVC cutter uses 2 axes similar to a X-Y plotter. The third axis is used to control the cutting angle of the knife. To keep the resultant cutting speed for the x and y axis equal when cutting curves, mode 1 is applied to the helical command.
BASIC commands 3.2.176 MOD 3.2.178 MOVE /i /i Type Mathematical function Type Axis command Syntax expression1 MOD expression2 Syntax Description The MOD function returns the expression2 modulus of expression1. This function will take the integer part of any non-integer input. MOVE(distance_1 [ , distance_2 [ , distance_3 [ , distance_4 [, ...]]]]) MO(distance_1 [ , distance_2 [ , distance_3 [ , distance_4 [, ...
BASIC commands Example Axes 3, 4 and 5 must move independently, that is, without interpolation. Each axis moves at its own programmed SPEED, ACCEL and DECEL etc.
BASIC commands /i Example See also fig. 30 An X-Y plotter can write text at any position within its working envelope. Individual characters are defined as a sequence of moves relative to a start point. Therefore, the same commands can be used regardless of the plot origin. The command subroutine for the letter M is: write_m: MOVE(0,12) 'move A > B MOVE(3,-6) 'move B > C MOVE(3,6) 'move C > D MOVE(0,-12)'move D > E RETURN B D C AXIS, MOVEABS, UNITS. A E Revision 5.
BASIC commands 3.2.179 MOVEABS /i Type Axis command Syntax MOVEABS(distance_1 [ , distance_2 [ , distance_3 [ , distance_4 [, ...]]]]) MA(distance_1 [ , distance_2 [ , distance_3 [ , distance_4 [, ...]]]]) Description The MOVEABS command moves one or more axes at the demand speed, acceleration and deceleration to a position specified as absolute position, i.e., in reference to the origin.
BASIC commands /i fig. 31 Example A machine must move to one of 3 positions depending on the selection made by 2 switches. The options are home (if both switches are off), position 1 (if the first switch is on and the second switch is off) and position 2 (if the first switch is off and the second switch is on). Position 2 has priority over position 1.
BASIC commands /i Example See also fig. 32 A pallet consists of a 6 by 8 grid in which gas canisters are inserted 185 mm apart by a packaging machine. The canisters are picked up from a fixed point. The first position in the pallet is defined as position 0,0 with the DEFPOS command. The part of the program to position the canisters in the pallet is: FOR x=0 TO 5 FOR y=0 TO 7 MOVEABS(-340,-516.
BASIC commands Description The MOVECIRC command interpolates 2 orthogonal axes in a circular arc at the tool point. The path of the movement is determined by the 5 arguments, which are incremental from the current position. The arguments end_1 and centre_1 apply to the BASE axis and end_2 and centre_2 apply to the following axis. All arguments are given in user units of each axis. The speed of movement along the circular arc is set by the SPEED, ACCEL and DECEL parameters of the BASE axis.
BASIC commands /i Direction Right-hand axis Left-hand axis 0 Positive Negative 1 Negative Positive /i fig. 34 Note: The MOVECIRC computes the radius and the total angle of rotation from the centre, and end-point. If the end point is not on the calculated path, the move simply ends at the computed end and not the specified end point. It is the responsibility of the programmer to ensure that the two points correspond to correct points on a circle.
BASIC commands /i Example fig. 35 The following command sequence plots the letter O: MOVE(0,6) ' Move A -> B MOVECIRC(3,3,3,0,1) ' Move B -> C MOVE(2,0) ' Move C -> D MOVECIRC(3,-3,0,-3,1) ' Move D -> E MOVE(0,-6) ' Move E -> F MOVECIRC(-3,-3,-3,0,1) ' Move F -> G MOVE(-2,0) ' Move G -> H MOVECIRC(-3,3,0,3,1) ' Move H -> A C D B E A F H /i Revision 5.0 See also fig. 36 A machine is required to drop chemicals into test tubes. The nozzle can move up and down and also along its rail.
BASIC commands 3.2.181 MOVELINK /i Type Axis command Syntax MOVELINK(distance, link_distance, link_acceleration, link_deceleration, link_axis [ , link_option [ , link_position ]]) ML(distance, link_distance, link_acceleration, link_deceleration, link_axis [ , link_option [ , link_position ]]) Description The MOVELINK command creates a linear move on the base axis linked via a software gearbox to the measured position of a link axis.
BASIC commands /i Arguments fig. 37 • • • • • • distance The incremental distance in user units to move the BASE axis, as a result of the measured link_distance movement on the link axis. link_distance The positive incremental distance in user units that is required to be measured on the link axis to result in the distance motion on the BASE axis. link_acceleration The positive incremental distance in user units on the link axis over which the base axis will accelerate.
BASIC commands /i • link_position The absolute position where MOVELINK will start when link_option is set to 2 Note: The command uses the BASE and AXIS, and unit conversion factors in a similar way to other MOVE commands. Note: The “link” axis may move in either direction to drive the output motion. The link distances specified are always positive. /i Example fig. 38 Revision 5.0 A flying shear that moves at the speed of the material cuts a long sheet of paper into cards every 160 m.
BASIC commands Rule 1: In an acceleration phase to a matching speed, the link distance must be twice the movement distance. Therefore, the acceleration phase can be specified alone as: MOVELINK(0.3,0.6,0.6,0,1)' move is all accel Rule 2: In a constant speed phase with matching speed, the two axes move the same distance. Therefore, the distance to move must be equal the link distance. Therefore, the constant speed phase can be specified as: MOVELINK(0.4,0.
BASIC commands /i Example See also fig. 39 In this example on coil winding the unit conversion factors UNITS are set so that the payout movements are in mm and the spindle position is measured in revolutions. The payout eye therefore moves 50 mm over 25 revolutions of the spindle with the command MOVELINK(50,25,0,0,linkax). To accelerate over the first spindle revolution and decelerate over the final 3 use the command MOVELINK(50,25,1,3,linkax).
BASIC commands fig. 40 SHEET GLASS SENSOR 250mm /i Example fig. 41 A sheet of glass is fed on a conveyor and is required to stop 250 mm after the leading edge is sensed by a proximity switch.
BASIC commands /i Example fig. 42 A paper feed system slips. To counteract this, a proximity sensor is positioned one third of the way into the movement. This detects at which position the paper passes, and thus how much slip has occurred. The move is then modified to account for this variation. paper_length=4000 DEFPOS(0) REGIST(3) MOVE(paper_length) WAIT UNTIL MARK slip=REG_POS-(paper_length/3) offset=slip*3 MOVEMODIFY(paper_length+offset) /i Example SENSOR fig.
BASIC commands 3.2.183 MPOS 3.2.185 MTYPE /i /i Type Axis parameter (read-only) Type Axis parameter (read-only) Syntax MPOS Syntax MTYPE Description The MPOS parameter is the measured position of the axis in user units as derived from the encoder. This parameter can be set using the DEFPOS command. The OFFPOS axis parameter can also be used to shift the origin point. MPOS is reset to 0 at start-up or after the controller has been reset.
BASIC commands /i MTYPE can be used to determine whether a move has finished or if a transition from one move type to another has taken place. A non-idle move type does not necessarily mean that the axis is actually moving. It can be at 0 speed part way along a move or interpolating with another axis without moving itself. Arguments • value A BASIC expression. Example No example. See also N/A 3.2.188 NEW Arguments N/A Example No example. /i See also AXIS, NTYPE.
BASIC commands Description Returns the number of inputs/outputs fitted to the system, or connected on the MECHATROLINK-II expansion bus. A TJ-MC__ with no MECHATROLINK-II I/O will return NIO=32. The built-in inputs are channels 0 to 15. The built-in outputs are channels 8 to 15. Channels 16 to 27 can be used as "virtual" I/Os which are connected together. Input channels 28 to 31 are reserved to allow each axis to use the MECHATROLINK-II driver input channels for axis control functions. 3.2.
BASIC commands 3.2.194 OFFPOS /i Type Axis parameter Syntax OFFPOS Description The OFFPOS parameter contains an offset that will be applied to the demand position (DPOS) without affecting the move which is in progress in any other way. The measured position will be changed accordingly in order to keep the Following Error. OFFPOS can therefore be used to effectively datum a system at full speed. The value set in OFFPOS will be reset to 0 by the system as the offset is loaded.
BASIC commands /i fig. 44 Example A conveyor transports boxes. Labels must be applied onto these boxes. The REGIST function can capture the position at which the leading edge of the box is seen. Then, the OFFPOS command can adjust the measured position of the axis to make it 0 at that point. Thus, after the registration event has occurred, the measured position (seen in MPOS) reflects the absolute distance from the start of the box.
BASIC commands 3.2.195 ON 3.2.197 ON.. GOTO /i /i Type Constant (read-only) Type Program control command Syntax ON Syntax ON expression GOTO label [,label[,...]] Description The ON constant returns the numerical value 1. Description Arguments N/A Example OP (lever,ON) The above line sets the output named lever to ON. The expression is evaluated and then the integer part is used to select a label from the list.
BASIC commands Description The OP command sets one or more outputs or returns the state of the first 24 outputs. OP has three different forms depending on the number of arguments. • Command OP(output_number,value) sets a single output channel. The range of output_number depends on the number of additional digital I/O connected over the MECHATROLINK-II bus and value is the value to be output, either 0 or 1.
BASIC commands /i /i Bit 1 Bit 2 Result Value Description 0 0 0 0 Programming port 0 (default) 0 1 1 1 RS-232C serial port 1 1 0 1 2 RS-422A/485 serial port 2 1 1 1 5 Trajexia Studio port 0 user channel 5 6 Trajexia Studio port 0 user channel 6 7 Trajexia Studio port 0 user channel 7 /i Arguments • • Example expression1 Any valid BASIC expression. expression2 Any valid BASIC expression. /i Arguments N/A Example No example. See also PRINT, INDEVICE result = 10 OR (2.
BASIC commands 3.2.203 OV_GAIN Arguments N/A /i Example No example. See also D_GAIN, I_GAIN, OV_GAIN, VFF_GAIN. Type Axis parameter Syntax OV_GAIN Description The OV_GAIN parameter contains the output velocity gain. The output velocity output contribution is calculated by multiplying the change in measured position with the OV_GAIN parameter value. The default value is 0. Adding NEGATIVE output velocity gain to a system is mechanically equivalent to adding damping.
BASIC commands Example No example. Example No example. See also NTYPE, PROC. See also EPROM 3.2.207 POS_OFFSET 3.2.209 PRINT /i /i Type System parameter Type I/O command Syntax POS_OFFSET=value Syntax Description For Piezo Operation. This keyword allows a positive offset to be applied to the output DAC signal from the servo loop. The offset is applied after the DAC_SCALE function. An offset of 327 will represent an offset of 0.1 volts for axis with servo output generated by a 16 bit DAC.
BASIC commands Value Description 5 Trajexia Studio port 0 user channel 5 6 Trajexia Studio port 0 user channel 6 7 Trajexia Studio port 0 user channel 7 /i • expression The expression to be printed. Example PRINT "CAPITALS and lower case CAN BE PRINTED" Example Consider VR(1) = 6 and variab = 1.5, the print output will be as follows: PRINT 123.45, VR(1)-variab 123.4500 4.5000 Example length: PRINT "DISTANCE = ";mpos DISTANCE = 123.0000 In this example, the semi-colon separator is used.
BASIC commands 3.2.212 PROCESS Description /i Type Program command Syntax PROCESS Description The PROCESS command displays the running status of all current tasks with their task number. Arguments N/A Example No example. See also HALT, RUN, STOP.
BASIC commands 3.2.215 PSWITCH Example A rotating shaft has a cam operated switch which has to be changed for different size work pieces. There is also a proximity switch on the shaft to indicate the TDC of the machine. With a mechanical cam, the change from job to job is time consuming. This can be eased by using PSWITCH as a software cam switch. The proximity switch is wired to input 7 and the output is output 11. The shaft is controlled by axis 0. The motor has a 900ppr encoder.
BASIC commands 3.2.216 RAPIDSTOP /i Type Axis command Syntax RAPIDSTOP RS Description The RAPIDSTOP command cancels the current move on all axes from the current move buffer (MTYPE). Moves for speed profiled move commands (MOVE, MOVEABS, MOVEMODIFY, FORWARD, REVERSE, MOVECIRC and MHELICAL) will decelerate to a stop with the deceleration rate as set by the DECEL parameter. Moves for other commands will be immediately stopped. Notes: • RAPIDSTOP cancels only the presently executing moves.
BASIC commands /i Example fig. 46 This example shows the use of RAPIDSTOP to cancel a MOVE on the main axis and a FORWARD on the second axis. When the axes have stopped, a MOVEABS is applied to re-position the main axis. BASE(0) REGIST(3) FORWARD AXIS(1) MOVE (100000) 'apply a long move WAIT UNTIL MARK RAPIDSTOP WAIT IDLE 'for MOVEABS to be accurate, the axis must stop MOVEABS(3000) /i fig. 47 Revision 5.0 Example This example shows the use of RAPIDSTOP to break a CONNECT and stop the motion.
BASIC commands 3.2.217 READ_BIT /i Type System command Syntax READ_BIT(bit_number, vr_number) Description The READ_BIT command returns the value of the specified bit in the specified VR variable, either 0 or 1. Arguments • • bit_number The number of the bit to be read. Range: [0,23]. vr_number The number of the VR variable for which the bit is read. Range: [0,1023]. Example No example. See also CLEAR_BIT, SET_BIT.
BASIC commands Example See also A paper cutting machine uses a CAM profile shape to quickly draw paper through servo driven rollers, and stop the paper so it can be cut. The paper is printed with a registration mark.
BASIC commands 3.2.221 REGIST Note For the mapping of the registration signals of the specific Servo Drivers, refer to section 5.1.6. /i Revision 5.0 Type Axis command Syntax REGIST(mode) Description The REGIST command sets up the registration operation. The command captures an axis position when a registration signal is detected. With a TJ1FL02 the capture is done by the hardware, so software delays do not affect the accuracy of the position that is captured.
BASIC commands Bit Function (MECHATROLINK-II) Note: secondary registration only supported by Accurax G5 5, 4 Secondary registration occurs for: • 00: Z-mark of the encoder • 01: EXT1 input • 10: EXT2 input • 11: EXT3 input 6 Set this bit to use secondary registration event 7 Not used 9, 8 Windowing function choice: • 00: No windowing • 01: Inclusive windowing • 11: Exclusive windowing 10 Not used Bit Function (Flexible Axis) 9, 8 Windowing function choice: • 00: No windowing • 01: Inclusive w
BASIC commands /i Example fig. 48 A disc used in a laser printing process requires registration to the Z marker before it can start to print. The example code locates to the Z marker, and then sets it as the zero position. REGIST(1) 'set registration point on Z mark FORWARD 'start movement WAIT UNTIL MARK CANCEL 'stops movement after Z mark WAIT IDLE MOVEABS (REG_POS) 'relocate to Z mark WAIT IDLE DEFPOS(0) 'set zero position Z MARK SERVO MOTOR Revision 5.
BASIC commands /i Example fig. 49 Components are placed on a flighted belt. The flights are 120 mm apart. The components are on the belt 30 mm from the flights. When a component is found, an actuator pushes it off the belt. To prevent that the sensor finds a flight instead of a component, registration with windowing is used.
BASIC commands /i Example See also fig. 50 A machine adds glue to the top of a box. To do this, it must switch output 8. It must detect the rising edge (appearance) and the falling edge (end) of a box. Also, the MPOS must be set to zero when the Z position is detected.
BASIC commands 3.2.222 REMAIN Description The RENAME command changes the name of a program in the TJ1-MC__ directory. The program names can also be specified without quotes. Note: This command is implemented for a Command Line Terminal only and should not be used from within programs. Arguments • /i Type Axis parameter (read-only) Syntax REMAIN Description The REMAIN parameter contains the distance remaining to the end of the current move.
BASIC commands See also AXIS, DPOS, MPOS, REP_OPTION, UNITS. Syntax REPEAT commands UNTIL condition Description The REPEAT ... UNTIL structure allows the program segment between the REPEAT and the UNTIL statement to be repeated a number of times until the condition becomes TRUE. Note: REPEAT ... UNTIL construct can be nested indefinitely. Arguments • 3.2.
BASIC commands 3.2.228 RETURN Example No example. See GOSUB..RETURN. See also AXIS, FAST_JOG, FWD_JOG, JOGSPEED, UNITS. 3.2.229 REV_IN 3.2.231 REVERSE /i /i Type Axis parameter Type Axis command Syntax REV_IN Syntax Description The REV_IN parameter contains the input number to be used as a reverse limit input. The valid input range is 0 to 31. Values 0 to 15 represent physically present inputs of TJ1-MC__ I/O connector and are common for all axes.
BASIC commands /i Example fig. 51 Run an axis in reverse. When it reaches a certain position, slow down. DEFPOS(0) ' set starting position to zero REVERSE WAIT UNTIL MPOS<-129.45 SPEED=slow_speed WAIT UNTIL VP_SPEED=slow_speed ' wait until the axis slows OP(11,ON) ' turn on an output to show that speed is now slow /i fig. 52 Example A joystick is used to control the speed of a platform. A deadband is required to prevent oscillations from the joystick midpoint.
BASIC commands 3.2.232 RS_LIMIT Arguments • /i • Type Axis parameter Syntax RS_LIMIT RSLIMIT Description The RS_LIMIT parameter contains the absolute position of the reverse software limit in user units. A software limit for reverse movement can be set from the program to control the working range of the machine. When the limit is reached, the TJ1-MC__ will decelerate to 0, and then cancel the move.
BASIC commands Number Message Number Message Number Message Number Message 5 Assignment expected 74 Directory already locked 28 Duplicate label 97 6 QUOTES expected 75 Program not running on this process Cannot change program type once it has been created 29 Program is locked 98 Command expected Revision 5.
BASIC commands Number Message Number Message /i 51 120 Arguments N/A Example >> PRINT RUN_ERROR PROC(5) 9.0000 BASICERROR, ERROR_LINE, PROC. LABEL must be at start of line Device error: Command not supported by device 52 Cannot nest one line IF 121 Device error: CRC error 53 LABEL not found 122 Device error: Error writing to device See also 54 LINE NUMBER cannot have decimal point 123 Device error: Invalid response from device 3.2.
BASIC commands 3.2.236 S_REF Description The S_REF_OUT parameter contains the speed reference value being applied to the Servo Driver for both open and closed loop. In closed loop (SERVO=ON), the motion control algorithm will output a speed reference signal determined by the control gain settings and the Following Error. The position of the servo motor is determined using the Axis commands. In open loop (SERVO=OFF), the speed reference signal is determined by the S_REF axis parameter.
BASIC commands Description Arguments The SCOPE command programs the system to automatically store up to 4 parameters every sample period. The storing of data will start as soon as the TRIGGER command has been executed. The sample period can be any multiple of the servo period. The parameters are stored in the TABLE array and can then be read back to a computer and displayed on the Trajexia Studio Oscilloscope or written to a file for further analysis using the Create Table file option on the File menu.
BASIC commands Description The SELECT command specifies the current program for editing, running, listing, etc. SELECT makes a new program if a program with the name entered does not exist. The program name can also be specified without quotes. When a program is selected, the commands COMPILE, DEL, EDIT, LIST, NEW, RUN, STEPLINE, STOP and TROFF will apply to the currently selected program unless a program name is specified in the command line.
BASIC commands Arguments • • bit_number The number of the bit to be set. Range: [0,23]. vr_number The number of the VR variable for which the bit is set. Range: [0,1023]. /i • mode Select one of the modes listed in the table below for serial ports 1 and 2. /i Example No example. See also CLEAR_BIT, READ_BIT, VR. Mode Description 0 General-purpose communication (no XON/XOFF mechanism) 3.2.
BASIC commands Syntax SIN(expression) See also Description The SIN function returns the sine of the expression. Input values are in radians and may have any value. The result value will be in the range from -1 to 1. 3.2.249 SPEED_SIGN Arguments • /i Example >> PRINT SIN(PI/2) 1.0000 See also N/A expression Any valid BASIC expression.
BASIC commands Example >> PRINT SQR(4) 2.0000 See also N/A Description This command sets up a ratio for the output of the stepper axis. Every servoperiod the number of steps is passed through the STEP_RATIO function before it goes to the step pulse output. Pulse Count Out = (numerator)/(denominator) * MPOS. STEP_RATIO affects both MOVECIRC and CAMBOX. Notes: • The STEP_RATIO function operates before the divide by 16 factor in the stepper axis.
BASIC commands 3.2.254 STEPLINE Arguments /i • • program_name The name of the program to be stopped. task_number The number of the task with the program to be stopped. Range: [1,14]. Type Program command Syntax STEPLINE [ "program_name" [ , task_number ]] Example >> STOP progname Description The STEPLINE command executes one line (i.e., "steps") in the program specified by program_name. The program name can also be specified without quotes.
BASIC commands /i Description Arguments N/A. Example No example. See also N/A 3.2.257 T_REF /i Type Axis parameter Syntax T_REF DAC Description The T_REF parameter contains the torque reference value which will be applied to the servo motor. The range of this parameter is defined by the number of available bits. For MECHATROLINK-II axes, T_REF takes 32 bits, so the available range is [-2147483648, 2147483648], which corresponds to a voltage range [-10V, 10V].
BASIC commands Table entry Value 3.2.260 TAN 102 250 /i 103 370 Type Mathematical function 104 470 Syntax TAN(expression) 105 530 Description 106 550 The TAN function returns the tangent of the expression. The expression is assumed to be in radians. Arguments • Example >> print TAN(PI/4) 1.0000 See also N/A /i Example The following line will print the value at location 1000. >> PRINT TABLE(1000) See also CAM, CAMBOX, DEL, NEW, SCOPE, TSIZE, VR. 3.2.
BASIC commands Example See also delay: TICKS = 3000 OP(9,ON) test: IF TICKS <= 0 THEN OP(9,OFF) ELSE GOTO test ENDIF N/A 3.2.263 TIME N/A Example When the time is 13:20:00 >> PRINT TIME$ >> 13:20:00 See also N/A 3.2.265 TO See FOR..TO..STEP..NEXT. 3.2.266 TRANS_DPOS /i /i Type System parameter Syntax TIME Description Sets and returns the time from the real time clock. The time returned as an integer is the number of seconds since midnight 00:00:00.
BASIC commands Description The TRIGGER command starts a previously set up SCOPE command. Note: Trajexia Studio uses TRIGGER automatically for its oscilloscope function. Arguments N/A Example No example. See also SCOPE. 3.2.268 TROFF Arguments N/A Example TRON MOVE(0,10) MOVE(10,0) TRON MOVE(0,-10) MOVE(-10,0) See also SELECT, TROFF. 3.2.
BASIC commands Example See also The following example assumes that no location higher than 1000 has been written to the TABLE array. >> TABLE(1000,3400) >> PRINT TSIZE 1001.0000 DEL, NEW, TABLE. 3.2.272 UNITS /i Type Axis parameter Syntax UNITS Description The UNITS parameter contains the unit conversion factor. The unit conversion factor enables the user to define a more convenient user unit like m, mm or motor revolutions by specifying the amount of encoder edges to include in a user unit.
BASIC commands Arguments N/A See also Example >> PRINT VERSION 1.6100 3.2.279 VR See also N/A /i 3.2.277 VFF_GAIN /i Type Axis parameter Syntax VFF_GAIN Description The VFF_GAIN parameter contains the speed feed forward gain. The speed feed forward output contribution is calculated by multiplying the change in demand position with the VFF_GAIN parameter value. The default value is 0.
BASIC commands Example A transfer gantry has 10 put down positions in a row. Each position may at any time be full or empty. VR(101) to VR(110) are used to hold an array of ten 1 ' s and 0 ' s to signal that the positions are full (1) or empty (0). The gantry puts the load down in the first free position.
BASIC commands Example MOVE(1000) WAIT IDLE PRINT "Move Done" The print statement is printed at the end of the movement. Example MOVE(1000) WAIT UNTIL MTYPE=0 PRINT "Movement finished" The print statement is printed, most of the times BEFORE the movement starts, and sometimes, when the movement is finished. Explanation Motion programs and motion sequence work in parallel and unsynchronized. One complete cycle can occur before the movement is loaded into the buffer.
BASIC commands 3.2.285 WDOG Example WHILE IN(12) = OFF MOVE(200) WAIT IDLE OP(10,OFF) MOVE(-200) WAIT IDLE OP(10,ON) WEND See also FOR..TO..STEP..NEXT, REPEAT..UNTIL /i Type System parameter Syntax WDOG Description The WDOG parameter contains the software switch which enables the Servo Driver using the RUN (Servo on) input signal. The enabled Servo Driver will control the servo motor depending on the speed and torque reference values.
BASIC commands /i Arguments • • expression1 Any valid BASIC expression. expression2 Any valid BASIC expression. Example VR(0)=10 XOR 18 The XOR is a bit operator and so the binary action taking place is as follows: 01010 XOR 10010 = 11000. The result is therefore 24. See also N/A Revision 5.
Communication protocols 4 Communication protocols 4.2 4.1 Available interfaces The TJ1-MC__ has a standard 10/100 Mbps Ethernet port. You can use a crossover or a patch Ethernet cable to connect the TJ1-MC__ to a PC. To configure the interface, set these parameters: The Trajexia units have these interfaces to communicate: /i Unit Interface Protocol Comment TJ1-MC__ Ethernet Trajexia Studio protocol To program, monitor and debug the project with Trajexia Studio.
Communication protocols Note You need to set the power of the Trajexia system off and back on before the change of the IP address takes effect. 4.2.1 Trajexia Studio protocol The Trajexia Studio protocol is used by Trajexia Studio to program, monitor and debug the TJ1-MC__. Trajexia Studio uses a Telnet protocol. By default, this connection uses port 23. If this port is not accessible, you can change the port number with the command Ethernet(1,-1,4,new_port_n).
Communication protocols • Parameter Values (hex) start_address 0 <= start_address <= number of variables - 1 <= FFFF element_count 1 <= element_count <= number of variables - start_address If var_type is 82 or B0: /i 01 command_c ode The TJ1-MC__ responds with these codes: /i • Condition Response code (hex) Description All elements valid 0000 OK Var_type invalid 1101 No area type Start_address invalid 1103 Address range designation error Number of elements invalid 1104 Address out
Communication protocols /i Condition Response code (hex) Description All elements valid 0000 OK Var_type invalid 1101 No area type Start_address invalid 1103 Address range designation error Bit_number invalid 1103 Address range designation error Number of elements invalid (totals) 1104 Address out of range 4.2.3 FINS client protocol Trajexia can initiate the FINS communication using the FINS_COMMS BASIC command. Refer to the command description for details.
Communication protocols Trajexia can exchange data in the holding registers via the ModbusTCP protocol. Trajexia supports 16-bit signed integer values and 32-bit IEEE floating point values. The data format used is defined by a parameter of the ETHERNET command. To exchange holding registers values as 16-bit signed integers, execute the command ETHERNET(1,-1,7,0). This is the default setting at power-up.
Communication protocols Commands These Host Link commands are supported for the Host Link Master protocol: /i Type Header code Name Function I/O memory writing WR CIO AREA WRITE Writes the specified data in word units beginning with the designated CIO/IR word. Header code Name I/O memory reading RR CIO AREA READ Reads the specified number of words beginning with the designated CIO/IR word. WL LR AREA WRITE Writes the specified data in word units beginning with the designated LR word.
Communication protocols Note The Host Link protocol supports only C commands. It does not support FINS. Header code Name BASIC command required RUN MON PRG IC Undefined command (response only) - Valid Valid Valid The Host Link Master protocol supports the commands only in single frame. The following table shows how you can use the Host Link protocol with the BASIC commands, and for which CPU unit operating mode (RUN, MON or PROG) the command is valid.
Communication protocols End code Description Probable cause Solution $14 Format error • The command format is wrong. A command that cannot be divided has been divided. The frame length is smaller than the minimum length for the applicable command. Check the format and transfer the command again. The data is outside the specified range or too long. Correct the command arguments and transfer the command again.
Communication protocols Examples In these examples we assume this set-up: • A Trajexia system with a TJ1-MC__. • A slave PC, with node address 13. • A connection from the serial port of the TJ1-MC__ to the PC. The serial port uses RS422 communication. /i Example Reading data from the PC using HLM_READ.
Communication protocols 4.3.2 Host Link slave Type Header code Name Function I/O memory writing WR CIO AREA WRITE Writes the specified data in word units to VR memory beginning with the designated word. WD DM AREA WRITE Writes the specified data in word units to TABLE memory beginning with the designated word. Testing TS TEST Returns, unaltered, a single block that was sent from the master.
Communication protocols End code Description Probable cause Solution End code Description Probable cause Solution 13 FCS error The FCS is wrong. Check the FCS calculation method. If there was influence from noise, transfer the command again. A8 Aborted due to frame length error in transmission data The length of the second or later frames exceeded the maximum of 128 bytes. Correct the command data and transfer the command again. 14 Format error • The command format is wrong.
Communication protocols 4.3.3 User-defined protocol You can implement a user-defined communication protocol with these commands: /i BASIC command Description SETCOM SETCOM configures the serial communication port, and it enables the Host Link protocols. GET GET assigns the ASCII code of a received character to a variable. INPUT INPUT assigns numerical input string values to the specified variables. KEY KEY returns TRUE or FALSE, when a character has been received or has not been received.
Communication protocols PRINT "Received ";count[0];" characters" FOR i=1 TO count IF TABLE(i)<>13 THEN PRINT CHR(TABLE(i)) ELSE PRINT "'cr'" ENDIF NEXT i IF TICKS<0 THEN PRINT "Timeout in the communication with the F500" resp_status=3 ELSEIF TABLE(count-2)=79 AND TABLE(count-1)=75 THEN PRINT "Response OK" resp_status=1 ELSE PRINT "Response Uncorrect" resp_status=2 ENDIF PRINT "Response Status is :";resp_status[0] RETURN clear_buffer: PRINT "Clearing...
Communication protocols 2. Switch on the power to the system. The RUN LED lights. The ERH LED flashes. 3. Create a BASIC Program containing the command PROFIBUS(2,2,1,10,7,150,3). In this example the system initializes a TJ1-PRT unit with unit number 2. The system sends seven output words from the master to the VR’s 10 to 16 and three input words from the VR’s 150 to 152 to the master. 4. If the configuration is successful, the RUN LED lights and the COMM LED lights. Communication is now active.
Communication protocols 6. Open the Device Catalogue from the View menu. fig. 4 7. Click Install GSD Files.... The GSD file is on the Trajexia Studio CD. It can also be found in the Download Center on the OMRON website. 8. Click Update. The TJ1-PRT shows in the list. 9. Select the OMRON TJ1-PRT from the list and click Add Device. fig. 5 Revision 5.
Communication protocols 10. Double-click the TJ1-PRT slave module in the MyNetwork tree. 11. Set the node number in the Station Address field. 12. Add (Insert) input and output modules to the configuration list below. 13. Make sure that the quantity of input words and output words in the selected modules are equal to the quantity selected with the PROFIBUS command. 14. Click OK. fig. 6 To configure the CJ1W-PRM21 with the CX-PROFIBUS, do these steps: Revision 5.
Communication protocols 1. Double-click the master module in the MyNetwork tree. 2. Set the Station Address and Unit Number. fig. 7 3. Select the Slave area tab. 4. Set the Start Address field of Output Area 1 and Input Area 1. 5. Save the project. fig. 8 Revision 5.
Communication protocols 6. Click the Device Online/Offline (Toggle) toolbar button to go on-line. 7. Click the Device Download toolbar button to download the parameters. 4.4.3 fig. 9 Communication Status TJ1-PRT can provide status information to the TJ1-MC__. You can retrieve the status information in BASIC with the command PROFIBUS (unit_number,4,0).
Communication protocols 4.5.2 Communication set-up The TJ1-DRT has two node number selectors. You can use the node number selectors to assign a node number to the TJ1-DRT. The DeviceNet node numbers range from 0 to 63. If you select a node number with the node number selectors that exceeds this range, you will select the node number that is set by software. The nodes that enable software setting are 64 to 99.
Communication protocols A VR variable can hold a 24-bit number, and it can also hold fragments. The exchange with the DeviceNet master does not support values outside the range -32768 to 32767 or fragments. Configure the DeviceNet network To configure the OMRON CJ1W/CS1W-DRM21 DeviceNet master to exchange VR variables with the Trajexia system, do these steps: 1. Start the CX-Integrater in the CX-ONE software tool. 2. Select Network from the Insert menu. 3. Select DeviceNet from the Select Network screen.
Communication protocols 5. Drag and drop the CJ1W-DRM21 to the Network window. fig. 12 6. Install the EDS file from the CX-Integrator. 7. Select No from the dialog window. The icon is not needed. fig. 13 Revision 5.
Communication protocols 8. Register the slave to the master, right click on the #01TJ1-DRT icon. 9. Double click on the Master Icon. 10. Select the TJ1-DRT device. fig. 14 11. Click Advanced Setup. 12. Click Connection tab. 13. Click User Setup. 14. Click Use Poll Connection. 15. Select Con.Path. 16. Select the number of variables that has been selected for the DeviceNet communication. 17. Click OK to confirm all dialog boxes. 18. Select Work Online from the Network menu. 19.
Communication protocols 4.5.3 Communication Status TJ1-DRT can provide status information to both the TJ1-MC__ and the DeviceNet master. You can retrieve the status information in BASIC with the command DeviceNet (unit_number,4,0). The result provides the following information: the level set in the TJ1-DRT DeviceNet parameters. You can set the TJ1DRT DeviceNet parameters using a DeviceNet configurator. The default level is 11V. /i Bit Value Description 0 0 DeviceNet (unit_number, 2, ...
Communication protocols 4.6 CANopen CANopen is a networking system based on the CAN (Controller Area Network) serial bus. The Trajexia CANopen Master Unit (TJ1-CORT) is an interface between the Trajexia system and up to 8 CANopen devices. It operates as the NMT (Network Management) master in the network. The TJ1-CORT can communicate up to 8 PDOs (Process Data Objects) in each direction. 4.6.
Communication protocols An example is the configuration given in the figure. fig.
Communication protocols ' Node 63 ' Set Heartbeat production result = CAN_CORT(0,9,$63,$1017,0,0,$C8) tot_result = tot_result AND result '---------------------------------------' Add TPDO / RPDO '---------------------------------------' Map TPDO 0 to VR(100) result = CAN_CORT(0,8,0,1,100,$202,0,0,5) tot_result = tot_result AND result IF tot_result = FALSE THEN PRINT "Slave Config Settings Fail" STOP ENDIF ' Map RPDO 0 to VR(0) result = CAN_CORT(0,7,0,1,0,$1e3,5) tot_result = tot_result AND result '----
Communication protocols Bit Value Description 2 0 Input data does not contain valid data 1 Input data contains valid data 0 No emergency messages received.
Communication protocols 4.8 GRT1-ML2 I/O mapping The GRT1-ML2 SmartSlice I/O Unit is an interface for data exchange between a TJ1-ML__ MECHATROLINK-II Master Unit and SmartSlice I/O Units. If you plan data exchange that requires strict control of the I/O timing, refer to appendix A. This appendix also contains some useful examples. 4.8.1 Unit numbers The GRT1-ML2 must have a MECHATROLINK-II address to be identified on the MECHATROLINK-II network.
Communication protocols I/O mapping example 1 With a MECHATROLINK-II network as shown in the figure, the response of the system when the network is initialized1 is: GRT1-ML2: 67(32/8/6/0/2/0/2) where: • 67 is the GRT1-ML2 address (hexadecimal) • 32 is the start address of the digital I/O • 8 is the number of digital inputs • 6 is the number of digital outputs • 0 is the start address of the analog inputs • 2 is the number of analog inputs • 0 is the start address of the analog outputs • 2 is the number of
Communication protocols I/O mapping example 2 The configuration of the GRT1-ML2 units in the example above is: fig.
Communication protocols • • 10 is the start address of the analog outputs 0 is the number of analog outputs Depending on the actual GRT1-ML2 configurations, gaps are introduced in the available digital I/O ranges. In the example above, the range of distributed digital inputs and outputs is [32–127], but there are gaps in the digital inputs in the ranges [40–95] and [108–127], and there are gaps in the digital outputs in the ranges [32–63], [80–95] and [104–127].
Communication protocols where: • unit is the number of the MECHATROLINK-II Master Unit in the Motion Controller system • station is the station address of the GRT1-ML2 set with the rotary switches • value is the value of the status error mask that must be set. The status error mask value can be read back by means of the command MECHATROLINK(unit,39,station,vr) where the arguments of the command are the same as for the command MECHATROLINK(unit,36,station,vr).
Communication protocols The tables above give an example of a mismatch between the registered table and the actual configuration. The I/O data sizes of the third unit do not match. Therefore, a verification error occurs and the third unit does not participate in the communication. The TS LED flashes red when a verification error occurs. fig.
Examples and tips 5 Examples and tips This chapter gives 2 categories of examples and tips: • How-to’s. • Practical examples. 5.1 How-to’s 5.1.1 Startup program The purpose of this program is to compare the detected MECHATROLINK-II configuration with the expected one (the expected configuration is the configuration existing in the moment you create the program). The SHELL program does these actions: • Checks the number of nodes in the system. • Checks that the node numbers agrees.
Examples and tips Note The SHELL program by default runs at startup at priority 0. Note OMRON recommends that the statement RUN “APPLICATION” is used in the Startup program to start your application program. The application program starts when the startup program is executed successfully and without errors. If you set an application program to “Run at startup” there is a risk that the machine starts if there is an error on the MECHATROLINK-II bus. Revision 5.
Examples and tips 'Stop MECHATROLINK Section '================================================ 'THIS SECTION MUST BE MANUALLY SET BY THE USER 'ACCORDING TO THE APPLICATION. TYPICAL ACTIONS ARE 'VARIABLE INITIALIZATION, SERVO/AXIS SETTING, NAMING 'GLOBAL VARIABLES AND START THE "APPLICATION" PROGRAM.
Examples and tips Speed mode examples In this mode the position loop is closed in Trajexia and the Speed loop is closed in the Servo Driver. The Speed axis parameter is sent to the Servo Driver, and reads the position feedback. BASE(0) ATYPE=44 'Servo axis encoder mode SERVO=1 WDOG=1 DEFPOS(0) loop: MOVE(81920) WAIT IDLE WA(100) DEFPOS(0) GOTO loop fig.
Examples and tips Example 1 Only proportional gain has a set value, the Following Error is proportional to the speed. The parameter values for the example are: fig. 4 /i Motion Parameter values P_Gain=131072 VFF_GAIN=0 Fn001=4 Note The colours and scale of the oscilloscope for speed mode are as follows: Red: MSPEED (Measured Axis speed). Units is 50 units/ms/division Blue: FE (Following Error). Units is depending on the graph Green: MPOS (Measured Axis position). 50000 units/division Revision 5.
Examples and tips Example 2 The value for rigidity is increased. The error magnitude remains the same but the ripple, the speed stability and overshoot are better. The parameter values for the example are: fig. 5 /i Motion Parameter values P_Gain=131072 VFF_GAIN=0 Fn001=6 Revision 5.
Examples and tips Example 3 The parameter P_GAIN is increased further. The Following Error decreases proportionally. The parameter values for the example are: fig. 6 /i Motion Parameter values P_Gain=200000 VFF_GAIN=0 Fn001=6 Revision 5.
Examples and tips Example 4 The value of the parameter P_GAIN two times the value in example 1. The Following Error is half, but there is vibration due to the excessive gains. The parameter values for the example are: fig. 7 /i Motion Parameter values P_Gain=262144 VFF_GAIN=0 Fn001=6 Revision 5.
Examples and tips Example 5 The value of the parameter P_GAIN is set to the value in example 1. The value of VFF_GAIN is increased. The Following Error is reduced without a reduction to the stability. The Following Error is not proportional to the speed. The parameter values for the example are: fig. 8 /i Motion Parameter values P_Gain=131072 VFF_GAIN=1400000 Fn001=6 Revision 5.
Examples and tips Example 6 With this value of VFF_GAIN the Following Error is proportional to the acceleration, and smaller than with just proportional gain (the scaling is 20 units/division). The Following Error approaches zero during constant speed. The negative effect of this set of values is the overshoot and undershoot when the acceleration changes; this can be reduced but not eliminated by increasing the speed loop gain, if the mechanical system can cope with a high gain.
Examples and tips Example 7 The value of the rigidity is increased from 6 to 8. The overshoot/undershoot is smaller but the motor has more vibration. The parameter values for the example are: fig. 10 /i Motion Parameter values P_Gain=131072 VFF_GAIN=1573500 Fn001=8 Revision 5.
Examples and tips Example 8 Opposite to the P_GAIN, where the higher, the better (the limit is when the mechanical system starts vibrating), for the VFF_GAIN there is an optimum value (the one in test 6), values higher than this value has an error proportional to the speed/acceleration but with different sign. The required correction is too large. The parameter values for the example are: fig. 11 /i Motion Parameter values P_Gain=131072 VFF_GAIN=1650000 Fn001=6 Revision 5.
Examples and tips Position mode examples In this mode the position and speed loop are closed in the Servo Driver. The TJ1-ML__ sends the position command through the MECHATROLINK-II network to the Servo Driver, and reads the position feedback. Note that this system has no sample delay as compared to the position loop in the Servo Driver, the Demand_Position in cycle "n" with the Measured_Position in cycle "n".
Examples and tips Example 1 The Following Error is proportional to the speed. There is a "soft profile" due to the low rigidity setting (low gain). fig. 13 Note The colours and scale of the oscilloscope for position mode are as follows: Red: MSPEED (Measured Axis speed). Units is 50 units/ms/division Blue: DRIVE_MONITOR (set as Following Error in the Servo Driver). Units is depending on the graph Green: MPOS (Measured Axis position).
Examples and tips Example 2 The Following Error reduces as the rigidity increases. The parameter values for the example are: fig. 14 /i Motion Parameter values Fn001=6 Pn109=0 Revision 5.
Examples and tips Example 3 With high gain the motor starts to vibrate but the profile is more stable that in MECHATROLINK-II Speed mode. The parameter values for the example are: fig. 15 /i Motion Parameter values Fn001=8 Pn109=0 Revision 5.
Examples and tips Example 4 The effect of the Feedforward gain is that the Following Error is reduced and the effect is proportional to the acceleration. The parameter values for the example are: fig. 16 /i Motion Parameter values Fn001=6 Pn109=95 Revision 5.
Examples and tips Example 5 With the feedforward set to 100%, the Following Error is very small and proportional to the acceleration. The optimum value of 100% correction is the maximum value that can be set. The parameter value of Pn109 is easier to set than the parameter value of VFF_GAIN. The parameter values for the example are: fig. 17 /i Motion Parameter values Fn001=6 Pn109=100 5.1.3 Setting the UNITS axis parameter and gear ratio Revision 5.
Examples and tips commands that determine the amount of motion are expressed in these user units. This parameter enables the user to define the most convenient units to work with. For example, for a moving part that makes a linear motion, you can prefer mm, or fraction of mm. For a moving part that makes a rotation motion, you can prefer a degree of angle or its fraction. For more information on the UNITS axis parameter, see section 3.2.272.
Examples and tips Parameter Pn202 is the electronic gear ratio denominator (G1). Parameter Pn203 is the electronic gear ratio numerator (G2). The servo motor rotates using the value of the position command signal sent by the TJ1-MC__, multiplied by the electronic gear (Pn202, Pn203). On the output (servo motor) side, the signal is expressed in number of encoder pulses. For more information on Servo Driver parameters Pn202 and Pn203, see the Sigma-II Servo Driver manual.
Examples and tips Example 1 The mechanical system consists of a simple rotary table. A servo motor with 13-bit incremental encoder is used. The gear ratio of the gearbox is 1:10. The desired user units are degree of angle. This system can be described with the following equations: 1 . motor_revolution = 2 13 o The combination of these equations results in: Pn202 Pn203 Full turn = 360 . encoder_counts 10 . motor_revolution = 1 . machine_cycle 1 . machine_cycle = 360 fig.
Examples and tips This gives us the solution: We can now rewrite the last equation to: UNITS . Pn202 Pn203 8 10 13 =2 UNITS = 2 =256 360 Pn202 = 32 Pn203 = 36 One solution to this equation is: 13 UNITS = 2 With these values, the command MOVE(28) rotates the table 28 degrees in positive direction. = 8192 Pn202 = 10 Absolute encoder setting Pn203 = 360 When we consider the third recommendation from the above list (avoid situations where Pn202/Pn203 is less than 0.
Examples and tips This is called unlimited axis and a typical example of it is a turntable shown in fig. 20. It can be achieved with the following equation: the smallest value of m such that: n . machine_cycles = m . motor_revolution Because n and m are integers: Pn205 = m – 1. This setting is explained in the following example. Example 2 The mechanical system consists of simple rotary table shown in the figure. A servo motor with 16-bit absolute encoder is used. The gear ratio of the gearbox is 1:10.
Examples and tips To guarantee the correct overflow both in Trajexia and in the Servo Driver, we must set two additional axis parameters: REP_DIST = 60, and REP_OPTION = 1. With these settings, the command MOVE(35) rotates the table 35 degrees in positive direction. The range of possible MPOS and DPOS values is from 0 degrees to 60 degrees.
Examples and tips Example 3 The mechanical system uses a servo motor with an 17-bit absolute encoder. The mechanical gear ratio of the gearbox is 1:6.31. One rotation of the pulley moves the moving part on the belt 320 mm. The total length of the belt, and therefore the total moving range of the motion part, is 4160 mm. The mechanical measurement units must be mm. This means that all axis parameters and commands given to Trajexia are expressed in mm.
Examples and tips One solution is: 9 UNITS = 2 = 512 Pn202 = 631 Pn203 = 125 Note that we have not used the pulley radius in the calculation. This is to avoid the use of π, which cannot be expressed as a fractional number). In toothed pulleys, the number of teeth and mm per tooth is commonly used. The calculation of the multiturn limit setting is: m . motor_revolution = n . machine_cycle m . motor_revolution = n . machine_cycle = n . 13 6 . 31 motor_revolution 1 pulley_revolution 4160 .
Examples and tips Example 4 The mechanical system uses a servo motor with a 17-bit absolute encoder. The mechanical gear ratio of the gearbox is 1:12.24. The mechanical measurement units must be tenths of an angle degree. Therefore the total repeat distance for the full turn of the moving part is 3600 tenths of an angle degree. With the same procedure as in example 1, we have: Pn202 Pn203 17 UNITS = 2 . encoder_counts 12.24 . motor_revolution 1 . pulley_revolution = 1 . motor_revolution 1 .
Examples and tips The evident solution is: n = 100 and m = 1224. Or, when we simplify the factors: n = 25 and m = 306. Therefore: Pn205 = m – 1 = 305. With these settings, executing MOVE(180) moves the moving part 180 tenths of an angle degree or 18 angle degrees in forward direction. Example 5 The mechanical system uses a servo motor with a 17-bit absolute encoder. The mechanical gear ratio of the gearbox is 1:10. The pulley has got 12 teeth, and each two are 50 mm apart.
Examples and tips Because 217/50 is a number with an infinite number of decimal digits, we can choose the following: Pn202 UNITS 17 =2 Pn203 10 50 . 12 17 =2 10 17 =2 600 1 60 17 =2 1 2. 2 15 15 =2 1 15 Therefore, the parameters are: 15 UNITS = 2 = 32768 Pn202 = 1 Pn203 = 15 Pn205 = 4 REP_DIST = 50 REP_OPTION = 1 With these settings, executing MOVE(50) moves the moving part 50 mm, or one station. Revision 5.
Examples and tips Example 6 The mechanical system consists of a ball screw. It uses a servo motor with a 17-bit absolute encoder. The mechanical gear ratio of the gearbox is 1:3. The screw pitch of the ball screw is 10mm per revolution. The total travel distance of the ball screw is 540 mm. The mechanical measurement units must be mm. With the same procedure as in example 1, we have: 17 Pn202 UNITS = Pn203 = 2 . encoder_counts 3 . motor_revolution 1 . ballscrew_revolution = 1 . motor_revolution 1 .
Examples and tips 5.1.4 Mapping Servo Driver inputs and outputs The Trajexia controller has got a digital I/O space that consists of 256 digital inputs and 256 digital outputs. The digital outputs range has four parts: • Digital outputs 0 - 7. These outputs do not physically exist on the TJ1-MC__. If you write these outputs, nothing happens. If you read these outputs, they return 0. • Digital outputs 8 - 15. These outputs physically exist on the TJ1-MC__.
Examples and tips MECHATROLINK-II Servo Drivers inputs in the Trajexia I/O space With the BASIC command IN, you can access the physically present inputs in a BASIC program. These inputs can be built in the controller or connected via the MECHATROLINK-II bus. Servo Drivers can have additional inputs that are located on their I/O connectors. These inputs can be used as forward and/or reverse limit switches or origin switches. They are mapped into the Trajexia I/O space.
Examples and tips /i Input signal - Parameter name P_OT (active high) - Pn50A.3 N_OT (active high) - Pn50B.0 DEC (active high) - Pn511.0 /P_OT (active low) - Pn50A.3 /N_OT (active low) - Pn50B.0 /DEC (active low) - Pn511.0 /EXT1 (active low) - Pn511.1 /EXT2 (active low) - Pn511.2 /EXT3 (active low) - Pn511.3 Revision 5.0 EXT1 (active high) - Pn511.1 EXT2 (active high) - Pn511.2 EXT3 (active high) - Pn511.
Examples and tips /i Input signal CN1 pin number P_OT (active high) 19 N_OT (active high) 20 DEC (active low) 21 EXT1 (active low) 5 EXT2 (active low) 4 EXT3 (active low) 3 E-STP (active high) 2 SI0 (active high) 22 SI1 (active high) 23 SI2 (active high) 6 PCL (active high) 7 NCL (active high) 8 For the Accurax G5 Servo Drivers, the CN1 input pins IN1 to IN8 can be allocated to a specific function. To do this, you must set the appropriate parameter of the Servo Driver.
Examples and tips Example: We have a Sigma-II and a Junma driver assigned to controller axes 0 and 3. For the Sigma-II driver, we want to use input signal EXT1 (mapped to CN1-44 if Pn511.2 is set to 4) to serve as reverse limit input for axis 0. For the Junma driver, we want to use input signal EXT1 (CN1-2) as reverse limit for axis 3.
Examples and tips system. Basically, this movement is at low speed in some direction until a certain measuring point is reached. Such a measuring point can be scanned from both directions to increase the precision. At startup, the current positions of the axes using incremental encoders are 0. Because these positions do not match with the mechanical 0 of the machine, it is necessary to execute the homing sequence.
Examples and tips The figure shows a general origin search scenario. This simple origin search sequence has 3 steps: 1. Search for a signal. 2. Search for another signal. 3. Move the axis to a predefined position. fig. 25 OFF ON OFF origin limit switch moving part Note For safety reasons, limit switches are normally closed. For this reason, in this figure and in the following figures in this section, the low signal level is indicated as ON, and the high signal level is indicated as OFF. min.
Examples and tips The figure shows the possible scenarios for absolute origin search plus limit switches. These scenarios depend on the position of the moving part when the power comes on. The program example that does this origin search sequence is given below.
Examples and tips Origin search against limit switches This origin search function is performed by searching for an external sensor using limit switches only. The example for this homing procedure is shown in the figure. fig. 28 moving part min. limit switch ON The possible scenarios for origin search against limit switches, depending on the position of the moving part on power on, are shown in the figure. The program example that does this origin search sequence is given below. OFF OFF ON max.
Examples and tips Origin search against hardware parts blocking movement This origin search procedure performs origin search against a physical object and mechanically blocks the movement. There are no limit switches, no absolute position switch and no reference pulses. The origin position is detected by detecting a particular amount of torque against the blocking objects. An adequate torque limit is required in order not to damage the mechanics during the origin search process.
Examples and tips Origin search using encoder reference pulse “Zero Mark” This origin search procedure performs origin search by searching for the "Zero Mark" signal of the encoder. This signal is also known as "marker" or "reference pulse". It appears one time per full encoder revolution. The example for this homing procedure is shown in the figure. fig. 31 moving part min.
Examples and tips Static origin search, forcing a position from an absolute encoder This origin search procedure sets the actual position to the position of an absolute encoder. It does not perform any physical move. It is only possible with an axis with an absolute encoder in a control loop. 5.1.6 Registration Registration, also called ‘latch’ or ‘print registration’, is about real-time storing of the position of an axis when an external input is activated. The information that is registered, i.e.
Examples and tips RegistraParameter tion signal number Parameter value Description EXT 3 As for EXT 1 As for EXT 1 Pn511.3 The input used for registration is determined by the argument of the REGIST command. The delay in the capture in the Sigma-II Servo Driver is about 3 µs. As the encoder information is refreshed every 62.5 µs, it is necessary to make interpolation to obtain the right captured position value (see the picture). Since the motor speed cannot change much during 62.
Examples and tips Registration in the Junma Servo Driver Registration in the Junma Servo Driver is the same as registration in the Sigma-II Servo Driver, with one difference: There is only one physical input and one logical latch too, so no settings of Servo Driver parameters are necessary. The physical input is associated to logical latch EXT1, and only the rising signal edge can be used for registration.
Examples and tips Using registration in application programs There is one axis command (REGIST), and two axis parameters (MARK and REG_POS). With these commands and parameter, you can control and use the registration functionality in BASIC programs. • REGIST captures the axis position when a registration signal is detected. The available settings depend on the axis type. Refer to section 3.2.221. • MARK is a flag that signals whether the position has been captured or not.
Examples and tips The picture gives the sequence of executing the commands and the registrations of the sample program below. fig. 34 Position BASE(N) REGIST(0) WAIT UNTIL MARK=0 loop: WAIT UNTIL MARK=-1 PRINT "Position captured in: "; REG_POS REGIST(0) WAIT UNTIL MARK=0 GOTO loop Registration and windowing function The windowing function enables for registration to occur only within a specified range of axis positions.
Examples and tips 3. The position is captured and transmitted to the Trajexia processor. 4. Is the captured position inside the inclusive window or outside the exclusive window? • If yes, MARK = -1 and REG_POS is updated. • If not, return to point 2 (trigger the latch again transparently to the user). The figure shows the sequence of execution of the above commands and the occurrence of registration events when you use inclusive windowing.
Examples and tips Example: Correcting the position of an axis The picture shows the vertical fill and seal machine for packaging products into bags. The bag material comes from a plastic film coil that is unwinded, then it is shaped into the tube by a mechanical mandrel and at the same time the tube is sealed vertically. The feeder movement is intermittent and the feed length corresponds with the bag length. Once the bag is fed, the horizontal sealer closes the bag, so it can be filled with the product.
Examples and tips The feeder can work in two modes: without registration mark; and with registration mark. Working without the registration mark is a simple point-topoint incremental movement. In this case, there is no guarantee that the feeder moves exactly the same distance as the design pattern. For example, suppose the bag length that needs to be fed is 200 mm, but the real pattern is 200.1 mm. With simple point-to-point incremental movement without correction, an error of 0.
Examples and tips The motion profile and its modification due to the registration mark are shown in fig. 39. The BASIC program for this example is: DEFPOS(0) REGIST(3) 'Trigger the mark registration MOVE(bag_length) 'Move to the theoretical distance WA(1) WAIT UNTIL MARK OR MTYPE=0 IF MARK THEN end_position=REG_POS+distance_after_mark MOVEMODIFY(end_position) 'Correct the distance according to the mark ENDIF fig.
Examples and tips The picture shows how the position of the slave axis is corrected using the registration event on the master axis to start the movement of the slave axis. The influence of SERVO_PERIOD and the fact that the registration event can happen at any time inside the SERVO_PERIOD is completely eliminated. fig. 42 Master Speed Servo Period Slave Speed Correction in the slave according to the latch.
Examples and tips change happens. The limitation of manual triggering is that it requires user interaction, which means that the start of tracing is not synchronized with the movement that is analyzed. Also, with manual triggering the tracing range is limited to 200 samples per channel. Using the oscilloscope The alternative, triggering by a program, does not have the limitations of manual triggering of the tracing.
Examples and tips where x0 is the position of the master AXIS(0), and x1 is the position of the slave AXIS(1). You can link the two axis with the CAMBOX command. For more details, refer to section 3.2.45. Suppose furthermore that the parameter end_pos is not constant, but it can change due to different conditions of the motion system.
Examples and tips TRIGGER PRINT "Triggered" ENDIF WAIT IDLE WEND HALT The result is given in the figure. fig. 44 In the example given above, the value of the UNITS parameter is set to encoder counts. The position of the master axis MPOS AXIS(0) is given in red. The position increases linearly, because the speed of the master axis is constant. The demanded position of the slave axis DPOS AXIS(1) is given in blue. This graph is a cosine curve. It corresponds to the created CAM table.
Examples and tips The parameter end_pos, which defines the values in the CAM table, depends on external conditions of the system. Therefore a program that runs in another task or even a controlling device using FINS communication, can change it while the main program that links two axis runs. Suppose that these changes in conditions, which result in a change of the end_pos parameter, happen most of the time when the axes are not linked, i.e. when the CAMBOX command is not executed.
Examples and tips loop: IF MOTION_ERROR<>0 THEN HALT GOTO loop This programming code causes all the programs and tracing to stop when an error happens on any axis. The data is already captured in the Table memory, and we can start using the oscilloscope to see the status of the desired parameters at the moment the error occurred. The measured position of the master axis, given in red, does not seem to be the cause, because there is no discontinuity on it.
Examples and tips The result is given in the figure. The red graph clearly shows a discontinuity in the position values that the slave axis must follow. Because the speed is a derivative of the position, at the point of discontinuity of the position curve the speed gets a high value. (This value equals infinity in theory, in practice the value is just very big). This causes the error. The red graph shows where the root of the problem is.
Examples and tips 5.2 Practical examples 5.2.1 SHELL programs and Trajexia Studio Trajexia Studio helps the user to create a proper SHELL program. fig. 47 GLOBAL & CONSTANTdefinition When a new project is created, a SHELL program with the basic structure is created automatically (see 5.1.1). System initialization When you define the hardware and set the parameters for the application, you can select to add your changes to the SHELL program so, the user do not have to type it manually.
Examples and tips ' =3 application running 'VR(901) - VR(status_bits) reports next status ' Bit0 Alarm flag ' Bit15 ML communication error with one slave 'VR(902) - "action" send messages to the upper controller ' =0 during initialization ' =1 Push RESET to restart ' =2 Resetting ' =3 System healthy 'VR(903) - VR(diag01) gives feedback of the MECHATROLINK 'initialisation ' Bit0 Could not get the ML slave number ' Bit1 Slave number is uncorrect ' Bit15 Detection OK 'VR(904) - VR(diag02) gives feedback of t
Examples and tips 'Omron Auto Generated - Symbols End 'Omron Auto Generated - Local Variables alarm_bit=0 i=0 'Servo Parameters res=0 'Servo Parameters res_act=0 res_ant=0 res_bit=0 run_act=0 run_ant=0 run_bit=0 stop_act=0 stop_ant=0 stop_bit=0 'Omron Auto Generated - Local Variables End The main loop of the program handles the fault handling: run application programs, stop application programs, reset the system and report the status.
Examples and tips 'Evaluates rising edge in RUN, STOP & RESET bits GOSUB sequence 'Checks for alarms in the system and monitors the 'system status GOSUB alarm_sequence res_ant=res_act res_act=READ_BIT(2,signal_state) res_bit=res_act AND NOT res_ant RETURN '-------------------------------------------------------- 'Upgrade values for showing in the HMI & PLC GOSUB monitoring 'Reports and reset warnings in servodrive GOSUB warning_seq GOTO loop '-------------------------------------------------------sequence
Examples and tips 'if no alarm, notify RUN=$99 or BaseBlock=$BB ELSEIF(DRIVE_STATUS AND 8) THEN VR(servo_alarm+i*2)=$99 ELSE VR(servo_alarm+i*2)=$bb ENDIF ENDIF NEXT i '-------------------------------------------------------- sys_error=SYSTEM_ERROR RETURN RETURN start_app: 'Add all the application programs that should be started 'with the START signal RUN "APPLICATION" '-------------------------------------------------------'-------------------------------------------------------reset_all: stop_all: 'I
Examples and tips ENDIF ENDIF NEXT i 'Reset sequence for AXIS error DATUM(0) CLEAR_BIT(0,status_bits) ENDIF NEXT i ENDIF ENDIF RETURN '-------------------------------------------------------- 'MECHATROLINK devices reset sequence IF (SYSTEM_ERROR AND $40000)<>0 THEN 'Omron Auto Generated - ML IO 'Warning: Automated code section - any manual code changes 'will be lost.
Examples and tips ENDIF 'Unit Detection ' ML04 Unit IF COMMSTYPE SLOT(0) <> 36 THEN PRINT "Error Comms Type for unit 0 is not ML04" SET_BIT(0,diag03) ENDIF ' FL Unit IF COMMSTYPE SLOT(1) <> 33 THEN PRINT "Error Comms Type for unit 1 is not FL" SET_BIT(1,diag03) ENDIF ' Check SJDE-02ANA-OY address IF NOT MECHATROLINK(0,4,1,system01) THEN PRINT "Error getting address for ML04 unit 0, station 1" SET_BIT(1,diag02) ELSEIF VR(system01) <> $44 THEN PRINT "Incorrect address for ML04 unit 0, station 1" SET_BIT(1,di
Examples and tips MECHATROLINK(0,20,$43) 'SJDE-02ANA-OY REGIST(-1) VR(system01)=0 i=0 res=0 WHILE TABLE(i)<>-1 IF NOT DRIVE_READ(TABLE(i),TABLE(i+3),system01) THEN SET_BIT(0,diag02) ELSE IF TABLE(i+2)=$FFFFFF THEN IF VR(system01)<>TABLE(i+1) THEN IF NOT DRIVE_WRITE(TABLE(i),TABLE(i+3),TABLE(i+1),1) THEN SET_BIT(1,diag02) ELSE res=1 ENDIF ENDIF ELSE 'Parameter set using Mask IF (VR(system01) AND NOT TABLE(i+2))<>TABLE(i+1) THEN VR(system01)=(VR(system01) AND TABLE(i+2)) OR TABLE(i+1) IF NOT DRIVE_WRITE(TABLE
Examples and tips IF res=1 THEN IF NOT DRIVE_RESET THEN SET_BIT(0,diag02) ENDIF ' Axis Parameters Revision 5.0 BASE(0) 'Axis Name: Flex00 ATYPE=44 'Axis Type: Flexible_Servo UNITS=1024.0000 REP_DIST=5000000.0000 REP_OPTION=0 ERRORMASK=268 AXIS_ENABLE=0 DRIVE_CONTROL=0 P_GAIN=1.0000 I_GAIN=0.0000 D_GAIN=0.0000 OV_GAIN=0.0000 VFF_GAIN=0.0000 SPEED=50.0000 ACCEL=100.0000 DECEL=100.0000 CREEP=100.0000 JOGSPEED=100.0000 FE_LIMIT=10.0000 SERVO=0 FWD_IN=-1.0000 REV_IN=-1.0000 DATUM_IN=-1.0000 FHOLD_IN=-1.
Examples and tips UNITS=32.0000 REP_DIST=360000.0000 REP_OPTION=0 ERRORMASK=268 AXIS_ENABLE=0 DRIVE_CONTROL=0 SPEED=3600.0000 ACCEL=36000.0000 DECEL=36000.0000 CREEP=100.0000 JOGSPEED=100.0000 FE_LIMIT=90.0000 SERVO=0 FWD_IN=16.0000 REV_IN=17.0000 DATUM_IN=-1.0000 FHOLD_IN=-1.0000 FS_LIMIT=20000000.0000 RS_LIMIT=-20000000.0000 FASTDEC=0.0000 FHSPEED=1000.0000 OUTLIMIT=1.0000 FE_RANGE=0.0000 ERRORMASK=268 AXIS_ENABLE=0 DRIVE_CONTROL=0 SPEED=3600.0000 ACCEL=36000.0000 DECEL=36000.0000 CREEP=100.
Examples and tips '================================================ 'EXAMPLE OF INITIALIZATION PROGRAM 'THIS VERSION IS DESIGNED FOR MECHATROLINK-II SERVOS 'ADAPT THIS PROGRAM ACCORDING TO YOUR APPLICATION '================================================ BASE(x) restart=0 inertia_ratio=set_load_inertia_ratio '---------------------------'EXAMPLE 1 'SGMAH-01AAA61D-OY motor data '---------------------------enc_resolution=2^13 '13 bit encoder max_speed=5000 '5000 rpm max.
Examples and tips UNITS=1 'Theoretical FE we will have running the motor at "max_speed" 'without VFF_GAIN in MECHATROLINK SPEED FE_LIMIT=1073741824/P_GAIN/UNITS 'SPEED is set to 1/3 of "max_speed SPEED=(max_speed73)*enc_resolution/60/UNITS 'ACCEL in 200ms from 0 to "max_speed" ACCEL=SPEED/0.2 'DECEL in 200ms from "max_speed" to 0 DECEL=SPEED/0.2 5.2.3 Single axis program This program is a simple program to run one axis only. fig.
Examples and tips • • • • During stop, the graph of the position is constant. When an overflow occurs (MPOS>=REP_DIST), the position jumps to 0 if REP_OPTION=1 or to -REP_DIST if REP_OPTION=0. The Following Error is proportional to the speed if you use only Proportional Gain in the position loop.
Examples and tips Example start: WAIT UNTIL IN(1)=ON SPEED=10 FORWARD WAIT UNTIL IN(2)=ON prod_pos=MPOS CANCEL WAIT IDLE PRINT "Product Position : "; prod_pos SPEED=100 MOVEABS(0) WAIT IDLE GOTO start fig. 50 IN(1) IN(2) speed CANCEL WAIT IDLE Forward Moveabs t SPEED=10 FORWARD WAIT UNTIL IN(2)=ON Start: WAIT UNTIL IN(1)=ON WAIT UNTIL IN(1)=ON 5.2.5 PRINT "Product position" SPEED=100 MOVEABS(0) WAIT IDLE Position on a grid A square palette has sides 1m long.
Examples and tips Example nozzle = 8 start: FOR x = 0 TO 4 FOR y = 0 TO 4 MOVEABS(x*200, y*200) WAIT IDLE OP(nozzle, ON) GOSUB square_rel OP(nozzle, OFF) NEXT y NEXT x GOTO start square_rel: MOVE(0, 100) MOVE(100, 0) MOVE(0, -100) MOVE(-100,0) WAIT IDLE WA(1000) RETURN fig. 52 x 100 200 X=0 Y=0 X=0 Y=1 X=1 Y=0 X=0 Y=2 X=0 Y=3 X=4 Y=4 X=0 Y=4 y x speed t y speed Square_rel Square_rel t MOVEABS(0,200) MOVEABS(0,400) OP(nozzle) Revision 5.
Examples and tips 5.2.6 Bag feeder program A bag feeder machine feeds plastic film a fixed distance that is set by the operator. The figure shows a typical bag feeder that is part of the machine. fig. 53 Bag feeder machines have two modes. • Without mark: Forward feeds the film a set distance, for films of a flat colour • With mark: Forward feeds the film to a printed mark on the film. The program in this section shows the typical code for a bag feeder machine. Revision 5.
Examples and tips Example fig. 54 '================================================ 'BAG FEEDER program '================================================ 'Working with marks, if any mark is missing, feed the 'theoretical distance. But if the mark is missing for 'a number of consecutive bags, stop the operation. 'A digital output is activated a certain time to cut 'the bag.
Examples and tips WAIT UNTIL IN(start_signal)=0 WAIT UNTIL IN(start_signal)=1 'Move bag length MOVEABS(bag_distance) WAIT UNTIL MTYPE=2 'To verify that the MOVEABS is being executed 'If we work with Mark, activate the trigger 'MARK=FALSE when triggered and TRUE when not triggered IF work_with_mark AND MARK THEN REGIST(1) WAIT UNTIL MARK=0 ENDIF 'Wait until the feed movement has finished WAIT IDLE GOTO loop 5.2.
Examples and tips Example fig. 55 start: GOSUB filltable WDOG=1 'Set servos to RUN BASE(1) SERVO=1 'Enable position loop in axis 1 BASE(0) SERVO=1 'Enable position loop in axis 0 'The position counter counts from 0 to 11999 'and then back to 0 again REP_OPTION=1 REP_DIST=12000 SPEED=200 FORWARD BASE(1) loop: CAMBOX(in_tbl,end_tbl,1,lnk_dst,master,opt,start) WAIT IDLE GOTO loop Revision 5.
Examples and tips 'Fill the TABLE with the suitable waveform FOR i= in_tbl TO end_tbl TABLE(i,(k*(COS(PI*i/npoints)-1))^2) NEXT i RETURN 5.2.8 Flying shear program An example of the Flying shear program. In this application there are three axes: • Axis 0, shear_axis, the advancement of the shear. • Axis 1, flying_axis, is the flying shear. • Axis 2, line_axis, transports the material. fig. 56 Axis 1 Axis 0 Axis 2 Revision 5.
Examples and tips Example '================================================= 'FLYING SHEAR program '================================================= 'Typical example of a flying shear application. 'One axis (line_axis) transport the material 'Second axis (flying_axis) is the flying shear itself 'Third axis (shear_axis) is the shear advancement 'The distance in synchronization must be long enough 'to allow the cut at maximum speed.
Examples and tips MOVELINK(0,wait_distance,0,0,line_axis) AXIS(flying_axis) WAIT UNTIL MTYPE AXIS(flying_axis)=22 'We start the line FORWARD AXIS(line_axis) loop: 'Update the line speed every cycle SPEED AXIS(line_axis)=line_speed 'Cutting movement at synchronized speed line_cut=synch_dist+l_acc+l_dec shear_cut=synch_dist+l_acc/2+l_dec/2 MOVELINK(shear_cut,line_cut,l_acc,l_dec,line_axis) AXIS(flying_axis) WAIT UNTIL MPOS AXIS(flying_axis)>l_acc/2 'Activate the shear when it is in synchronization with the li
Examples and tips GOTO loop The speed-time graph shows the steps of the above example. The steps are: 1. The initial cycle: the slave waits for the right length in the product to cut (cut_length – distance_to_accelerate / 2). It is necessary to divide distance_to_accelerate when we use the MOVELINK command, because when we synchronize, the master moves twice the distance of the slave. 2. The slave accelerates to synchronize with the master.
Examples and tips The difference between the expected position and the actual position is measured with a photocell. This is the correction factor. Every time a correction is made, the origin position is updated accordingly. Example conveyor=0 labeller=1 virtual=15 SERVO AXIS(conveyor)=1 SERVO AXIS(labeller)=1 WDOG=1 BASE(labeller) CONNECT(1,conveyor) ADDAX(virtual) FORWARD AXIS(conveyor) REGIST(1) WAIT UNTIL MARK=0 fig.
Troubleshooting 6 Troubleshooting 6.2 TJ1-MC__ 6.1 Voltage and analysis tools 6.2.1 System errors Check the voltage to the power supply input terminals. Make sure the voltage is within the specified range. If the voltage is outside the specified range, the system can operate incorrectly. To diagnose errors for the TJ1-MC__ and the TJ1-ML__ and to troubleshoot these units, use the Trajexia Studio software tool.
Troubleshooting 6.2.3 /i Error code Description Cause Solution Ann Axis error on axis nn Incorrect or out of range value of axis parame- See below ter set Unit errors Unit errors show on the LED display of the TJ1-MC__ as Unn. /i Error or alarm on Servo Driver assigned to the axis See below Error code Description Unn Unit error on unit nn Defective unit Incorrect or out of range axis parameter value If the value of an axis parameter is incorrect or out of range an axis error occurs.
Troubleshooting To see the current setting, type PRINT COORDINATOR_DATA(7) in the Trajexia Tools terminal window. To clear the error after repair do these steps: • • /i Error code Description Cause Cnn Configuration error caused by unit nn The system has too many units of the same type, and it does not adhere to the rules for adding units to a system Reconnect the lost MECHATROLINK-II I/O unit or Inverter.
Troubleshooting 6.3 TJ1-PRT 6.3.1 System errors 6.3.2 I/O data communication problems /i /i Indication Problem Solution No LEDs are on or flashing The power is off. Turn the power on. The TJ1-PRT is defective. Replace the TJ1-PRT. ERH LED is on Communication failure between TJ1-MC__ and TJ1-PRT. Reset the TJ1-MC__. If this does not help, replace the TJ1-MC__. ERC LED is on Unit error. The TJ1-PRT is defective. Replace the TJ1-PRT.
Troubleshooting Indication Problem Solution 6.4.2 COMM LED is off and BF LED is flashing The PROFIBUS configuration is incorrect, there is no communication with the master. • /i • • Check that you use the correct GSD file in the master. Check the configuration and the parameter data of the slave. Check that the network has been configured to communicate at the baud rate supported by the TJ1-PRT. You have not selected configuration data for the slave. Check the configuration at the master.
Troubleshooting 6.5.2 I/O data communication problems /i 6.6.2 Bus errors /i Indication Problem Solution Indication Problem Solution NWST is off A start-up error or fatal error occurred. Restart the unit. If the problem persists, replace the TJ1-CORT. BF LED is on Cable failure on the MECHATROLINK-II bus. BF flashing Invalid configuration. Check downloaded configuration. If necessary re-download it. BF flashing single flash Error counter warning limit reached.
Troubleshooting TJ1-MC__. After a short time, the I/O Unit reports its (real) correct status and the status word becomes 8000 hex, but the MC__ has already detected the error, even though there was no real error. Masking this particular bit of the status word with the command MECHATROLINK(unit,37,station,value) is not an option, because no command can be sent before the start-up sequence, during which the error is detected, is complete.
Troubleshooting /i RUN ALARM Not Lit Not lit Lit 6.7.4 Probable cause Correction Initialization in progress N/A Flashing Fatal system error during initialization Replace the unit Lit Fatal error during operation Restart the unit. If the problem persists, replace the unit.
Troubleshooting TS Color Lit Red Probable cause Backup operation Correction failed1 Restore operation failed1 SmartSlice I/O Unit configuration error Green Do the backup of the data again Reinstall the unit in which the restore operation was in progress and turn the power on again Check these items: • Are more than 64 I/O units connected? • Are more than 128 bytes of I/O data used? • Has the I/O configuration changed since the I/O configuration table was registered? The Slice bus operates normally
GRT1-ML2 timing A GRT1-ML2 timing This appendix describes the I/O timing issues for the communication between the TJ1-MC__, the GRT1-ML2 and the SmartSlice I/O Units. The information in this section is useful for planning operations that require strict control of the I/O timing. In this section, the following is assumed: • All required slaves participate in the communication. • The TJ1-MC__ and the GRT-ML2 have no error indications. • The I/O configuration is properly registered.
GRT1-ML2 timing These refresh cycles are independent, they are not synchronized. Therefore a small delay in the communication between the TJ1-MC__ and the SmartSlice I/O Units occurs. The maximum duration of this delay is the longest refresh cycle time. This delay is “quasi-random”, and it is not possible to compensate it. Applications that require more precisely timed I/O must use the onboard I/O of the TJ1-MC__.
GRT1-ML2 timing Examples The following time variable and other variable definitions are used: Variable Definition Tout Variable Definition The output response time: the time between these events: • The TJ1-MC__ sets an output signal. • This signal is available to the SmartSlice Output Unit. TON TOFF TON/OFF The ON or OFF delay of the SmartSlice I/O Unit.
GRT1-ML2 timing The following SmartSlice I/O Units, which are used in the examples, have the following ON/OFF delays: fig. 2 /i Input SmartSlice I/O Unit TON/OFF GRT1-ID4 0 ms ≤ TON/OFF ≤ 1.5 ms GRT1-OD4 0 ms ≤ TON ≤ 0.5 ms Output Tsync TJ1-MC__ Tservo TJ1-ML__ 0 ms ≤ TOFF ≤ 1.5 ms GRT1-AD2 0 ms ≤ TON/OFF ≤ 2 ms GRT1-DA2 0 ms ≤ TON/OFF ≤ 2 ms MECHATROLINK-II bus TMLin/out TMLin TMLout TCUin TCUout TSL TSL Ton/off Ton/off Furthermore, TSERVO = 1 ms.
GRT1-ML2 timing Example 1 Setup of the SmartSlice I/O system: GRT1-ID4 − GRT1-OD4. TSL = 0.66 + 4 × 0.009 + 4 × 0.001 = 0.7 ms GRT1-ID4 input response time (Tin = TON/OFF +TSL + TCUin + TMLin + TSERVO) Outputs Bits 1 × OD4 4 4 × DA2 TOTAL 8 Words Data size 2 Bytes (Filled up to 1 word) 8 16 Byte 12 28 Bytes 28 / 27, rounded up = 2 Pages 0 + 0.7 + 0.1 + 1 + 1 = 2.8 ms ≤ Tin ≤ 1.5 + 0.7 + 1.1 + 1 + 1 = 5.3 ms GRT1-OD4 output response time Tout = TSYNC + TMLout + TCU +TSL + TON/OFF TSL = 0.
Revision history Revision history A manual revision code shows as a suffix to the catalogue number on the front cover of the manual. /i Revision code Date Revised content 01 August 2006 Original 02 October 2006 DeviceNet update 03 May 2007 Updated with TJ1-MC04 and TJ1-ML04. Improved BASIC commands, programming examples and tips. 04 June 2008 Added illustrations and examples to BASIC commands.
programming manual TJ1-MC04 TJ1-MC16 Trajexia motion control system Cat. No. I52E-EN-04 Cat. No. I52E-EN-04 Trajexia motion control system programming manual Omron Europe B.V. Wegalaan 67-69, NL-2132 JD, Hoofddorp, The Netherlands. Tel: +31 (0) 23 568 13 00 Fax: +31 (0) 23 568 13 88 www.omron-industrial.com Austria Tel: +43 (0) 2236 377 800 www.omron.at France Tel: +33 (0) 1 56 63 70 00 www.omron.fr Netherlands Tel: +31 (0) 23 568 11 00 www.omron.nl Spain Tel: +34 913 777 900 www.omron.