background image

Danaher Motion 

06/2005 

PHASER 

8. PHASER 

The purpose of 

PHASER

 is to amplify or attenuate the master input value 

before entering the cam table or before multiplying by the gear ratio. 

The master - slave connection is achieved either by a cam table or through 
gearing. A typical problem in camming is an offset in the master position that 
has to be compensated for before translating the value with a cam table. 

PHASER

 adds a correction to the master position. This avoids unexpected 

jumps at the slave position. By immediately adding the maximum correction 
value, there is a dynamically computation of the correction from zero to the 
maximum value. 

Slave Position

Master

Position

CAM Table

Phaser

+

 

Several slaves

 

can be connected to the same master, but the position 

correction is set per slave. 

PHASER

 is a slave command and its effects do 

not harm other slaves connected to the same master. Directly disconnection 
of the slave (SLAVE = OFF) automatically stops 

PHASER

8.1.1. Profiler 

PHASER

 is a type of 

MOVE

, so all the command’s rules and limitations are 

imported. As an input, 

PHASER

 gets the maximum offset added or 

subtracted from the master position. The offset value is equivalent to the 
target position of 

MOVE

. The rate at which the offset changes is determines 

by the profiler. Similar to 

MOVE

,

 the profiler is calculated according to the 

slave’s motion properties (

ACCELERATION

DECELERATION

 and

 JERK

). 

All changes in these values must be performed in the nodal context so the 
slave‘s property definitions are not effected. 

Comparing 

PHASER

 and 

MOVE

Properties 

MOVE

 

PHASER

 

Element 

Axis or group 

Slaved axis only 

Position Target 

Maximum 

offset 

Ratio factor 

None 

Translation factor between master units 
and slave units 

Kinematics properties 

All 

All 

STARTTYPE

 

All types  

All types (special relevance is 
IMMEDIATE) 

M-SS-005-03 Rev 

141 

Содержание Servostar M-SS-005-03

Страница 1: ...KOLLMORGEN www DanaherMotion com SERVOSTAR MC M SS 005 03 Revision E Firmware Version 5 0 0...

Страница 2: ...but not limited to implied warranties of merchantability and fitness for a particular purpose It is the responsibility of the product user to determine the suitability of this product for a specific a...

Страница 3: ...8 2 BASIC MOVES DEVELOPMENT STUDIO 11 2 1 COMMUNICATION 11 2 2 MC BASIC 11 2 2 1 INSTRUCTIONS 12 2 2 2 TYPE 12 2 2 3 CONSTANTS AND VARIABLES 14 2 2 4 DATA TYPES 16 2 2 5 SYSTEM ELEMENTS 19 2 2 6 UNIT...

Страница 4: ...E 49 3 2 TASKS 49 3 2 1 GENERAL PURPOSE TASKS 49 3 2 2 CONFIGURATION TASK 51 3 2 3 AUTOEXEC TASK 51 3 3 PROGRAM DECLARATIONS 52 3 3 1 ARRAYS 53 3 4 MULTI TASKING 55 3 4 1 LOADING THE PROGRAM 57 3 4 2...

Страница 5: ...ERIFY SETTINGS 74 3 11 1 ENABLING 74 3 11 2 MOTION FLAGS 74 3 11 3 MOVE 74 3 12 SERCOS 75 3 12 1 COMMUNICATION PHASES 76 3 12 2 TELEGRAMS 76 3 12 3 TELEGRAM TYPES 77 3 12 4 CYCLIC VS NON CYCLIC COMMUN...

Страница 6: ...AL MOVES 107 5 3 CAMMING 108 5 3 1 KEY FEATURES 108 5 3 2 GEARRATIO 109 5 3 3 INCREMENTAL MOVES 109 5 3 4 CAM TABLES 109 5 3 5 CAM CYCLES 111 5 3 6 CREATE CAM TABLES 113 5 3 7 OPERATING CAMS 115 5 4 S...

Страница 7: ...TTLING TIME 132 6 10 2 START MOVES 132 6 10 3 CHAIN MOVES 133 6 10 4 MULTI STEP MOVES 133 6 10 5 SYNCHRONIZE MULTIPLE AXES 134 6 10 6 CLEAR A PENDING MOVE 135 6 11 VELOCITY OVERRIDE 135 7 COMPENSATION...

Страница 8: ...TERESIS 152 10 3 6 ENABLE AND DISABLE 152 10 3 7 PLS OUTPUT STATE 153 10 3 8 SET UP 153 10 4 EXTERNAL ENCODERS 154 10 5 PC104 155 10 5 1 CONFIGURING PC104 CARDS 155 10 5 2 INSTALLATION 155 10 5 3 COMM...

Страница 9: ...80 ROBOT CONFIGURATIONS 181 POINTS 181 DECLARATION 182 VARIABLES 182 CONSTANT POINTS 182 VECTORS 183 PROPERTIES 183 POINT DIMENSION 183 POINT ASSIGNMENT 184 SINGLE COORDINATE POINT ASSIGNMENT 184 POIN...

Страница 10: ...Table of Contents 06 2005 Danaher Motion viii Rev E M SS 005 03 MOVING FRAME 191 TRACKING PROCESS 192 CUSTOMER SUPPORT 194...

Страница 11: ...le in the SERVOSTAR MC Related manuals SERVOSTAR MC Installation Manual SERVOSTAR MC BASIC Moves Development Studio Manual SERVOSTAR SC MC API Reference Manual SERVOSTAR MC InstallationManual The SERV...

Страница 12: ...perating system For additional information concerning communications configuration refer to the SERVOSTAR MC Installation Manual All implementation models of the SERVOSTAR MC are functionally equivale...

Страница 13: ...ides hardware for six I O points three digital inputs one digital output a 14 bit analog input and a 12 bit analog output An auxiliary encoder can also be connected to any SERVOSTAR drive If you need...

Страница 14: ...s and multiple elements e g axes that operate independently of one another Also because the API supports multiple applications communicating concurrently you can write one or more applications that ha...

Страница 15: ...ample Switches 6 8 are OFF All others are ON sys dipswitch bin 0b10100000 1 8 1 1 WITH HOST When DIPswitch 8 is ON the MC can communicate with the host via serial port This mode of communication requi...

Страница 16: ...ect to BASIC Moves and one or more intelligent I O devices The MC supports both client and server roles for TCP IP communications The TCP IP client connects to a remote system which waits for a connec...

Страница 17: ...ed by the DHCP server If your network does not support DHCP the controller tries to get the address from the DHCP server and times out after few minutes During that time communication with the control...

Страница 18: ...e port are not allowed ACCEPT blocks the execution of the calling task until a connection is established To unblock the task waiting in ACCEPT close the corresponding socket with CLOSE In addition kil...

Страница 19: ...alue LOC 1 0 STRING_VAR INPUT 10 1 len STRING_VAR 0 1 8 3 2 SEND DATA PRINT and PRINTUSING send data over the serial port Both commands use the same formatting as PRINT and PRINTUSING NOTE PRINT and P...

Страница 20: ...SHARED X 10 AS LONG X 1 0x10 X 2 0 X 3 0x10 PRINT 1 CHR X 1 CHR X 2 CHR X 3 The output is the following stream of bytes 0x10 0x0 0x10 When the received data contains a NULL character read the data fro...

Страница 21: ...1 COMMUNICATION Communicating with a stand alone MC is not as automatic as is comunicating with a PCI or ISA plug in MC Assuming you have properly configured the communication method during installati...

Страница 22: ...es may be written using either upper case or lower case letters The only exception is that when printing strings with the Print and PrintUsing commands upper and lower case characters can be specified...

Страница 23: ...language in which many tasks can run concurrently Generally tasks run independently of each other However tasks can control each other using inter task control instructions One task can start idle or...

Страница 24: ...d than A1 Motion 1 although the effect is identical 2 2 3 1 1 Literal Constants Table ABORT 4 NEGATIVE 1 ABOVE 2 NEXTMOTION or NMOT 2 BELOW 1 NOFLIP 1 CAM 2 NOOVERLAP 0 CAPTURING 16 NOTELEVEL 3 CLEARM...

Страница 25: ...ftware Other scopes are more restrictive limiting access of variables to certain sections of code MC BASIC supports three scopes global task and local Task variables can be read from or written to any...

Страница 26: ...int motor coordinates 1 79769313486223157 E 308 for each coordinate Location A set of 2 10 double precision floating point cartesian coordinates 1 79769313486223157 E 308 for each coordinate MC Basic...

Страница 27: ...ments as many times as the user wishes Type Description Range Generic Axis An integer element identifier 0 before first assignment 1 to number of axes in system up to 32 Generic Group An integer eleme...

Страница 28: ...arrays JOINTs and or LOCATIONs The total size of the MC Basic structure is limited The maximum number of each type of element is fixed Trying to define more structure elements than allowed results in...

Страница 29: ...s name and the arrow sign For example structure_name element_name Structure elements are handled almost like regular variables Structure elements are printed assigned participate in mathematical oper...

Страница 30: ...fine units of position velocity and acceleration independently In the next chapter we will discuss how to set up units 2 2 7 Expressions Expressions are combinations of operators and value returning e...

Страница 31: ...es sense if the negation is executed first The tables that follow list different types of operators The entries in the tables are listed in order of precedence the higher in the table the higher the o...

Страница 32: ...is performed Common shared D as double D 1 D 1 1 In the example above the sign is taken as a relational operator i e Is D 1 The relation is True or 1 D 2 1 2 0 In the example above the sign is taken...

Страница 33: ...luding examples refer to the SERVOSTAR MC Reference Manual Abs x Returns the absolute value of X Acos x Returns the arc cosine of X X is assumed to be in radians Asin x Returns the arc sine of X X is...

Страница 34: ...o lowercase LEFT S X Returns the specified number X of characters from the left hand side of the string S LEN S Returns the length of the string S LTRIM S Returns the right hand part of a string S aft...

Страница 35: ...of that group PlsList Returns a list of the PLS names defined in the system If wildcards are used the query returns the correct existing PLS data ProgramPassword Sets the file password and toggles th...

Страница 36: ...es the scope of the effect of an error occurring in task context When the value of System ErrorHandlerMode is one the default value the error will affect the entire system by stopping all motion idlin...

Страница 37: ...e messages ON or OFF System Time Queries or sets the current time of day Hours minutes and seconds are each specified using two digits The MC uses 24 hour clock notation Time is entered as a character...

Страница 38: ...ord 5000 VCruise 3000 PEMax 10 PESettle 0 01 Move 100 End With 2 2 12 Printing MC BASIC provides unformatted and formatted printing using the PRINT and PRINTUSING commands For detailed information on...

Страница 39: ...you have allocated it overruns the space PrintU Overrun 1000000 Takes 7 spaces for 1 000 000 even though PrintU allocates only 2 For printing of double type expressions formatted printing also enable...

Страница 40: ...Sys DoubleFormat 1 2 2 13 Flow Control Flow control is the group of instructions that control the sequence of execution of all other instructions For detailed information on any of the flow control co...

Страница 41: ...o be executed if none of the above conditions are met End Select where SelectExpression is a Long Double or String expression in Case To if Expression4 Expression5 the case is never true no error is f...

Страница 42: ...1000 Print Axis 2 Velocity Feedback still under 1000 End While End Program Using the While or Do Loop the CPU repeatedly executes the While block even if the block is empty This is sometimes a proble...

Страница 43: ...n a program block you cannot GoTo a label outside that block Avoid GoTo wherever possible History has shown that excessive use of GoTo makes programs harder to understand and debug Use the other progr...

Страница 44: ...ed End Try An example of a Try block designed to catch errors in the loading process of Task1 Prg Try Load Task1 Prg Catch 4033 File does not exist Print Task not found Catch 6007 Task must be killed...

Страница 45: ...rator Error_Number statements to be executed Catch Error_Number1 To Error_Number2 statements to be executed Catch Else statements to be executed End OnSystemError An example of an OnSystemError block...

Страница 46: ...ubroutine are used within the code of the subroutine The declaration line for the subroutine SUB name is used to declare names and types of the parameters to pass Parameters are passed either by refer...

Страница 47: ...for by value long and double parameters SUB MySub RefPar as long byval ValPar as double END SUB CALL MySub LongVar String type mismatch in second parameter CALL MySub LongVar wrong number of paramete...

Страница 48: ...of parameters in parameters and returned value types causes an error during program loading Automatic type casting applies only for long and double returned values and by value parameters For example...

Страница 49: ...nd functions of the library public_sub can be used in any user task program file another library file importing the library However the same library can be imported by multiple tasks simultaneously A...

Страница 50: ...he scope of the library A global library cannot be unloaded if there are task files PRG loaded in memory To unload a global library all Prg files must first be unloaded If a global library file is unl...

Страница 51: ...meter passed by value has the BYVAL prefix A parameter passed by reference has no prefix Prototypes do not include parameter names A C function prototype with no parameters is written with empty paren...

Страница 52: ...of PROTO PRO No Parametrs import_c CFUNC_LV As Long import_c CFUNC_DV As Double import_c CFUNC_SV As String import_c CFUNC_VV A Single By Value Parameter import_c CFUNC_LL ByVal As Long As Long import...

Страница 53: ...n close fd A Single By Value Parameter int CFUNC_LL int L L L 1 return L double CFUNC_DD double D D D 2 2 return D char CFUNC_SS char S strcpy S SS return S A Single By Reference Parameter int CFUNC_L...

Страница 54: ...elay semTake msgQGet msqQSend IO operation etc this may interfere with killing the user task When an object module is loaded several times without unloading all its instances are kept in the RAM while...

Страница 55: ...ased by SEMAPHOREGIVE and taken consumed by SEMAPHORETAKE It is possible to specify a time out of up to 5000 ms SEMAPHORETAKE acquires a semaphore and returns before timeout or does not acquire a sema...

Страница 56: ...red syncSemaphore as semaphore defined in config prg common shared globalA as long defined in config prg Program While 1 If SemTake syncSemaphore 5000 1 Then Print A is globalA End if End While End pr...

Страница 57: ...gher support IP over DPRAM NewStdOut type is 1 3 or 4 2 9 FILE OPERATIONS Input and output whether to or from files are supported on Flash and RAM devices The files are accessed either in serial or ra...

Страница 58: ...rogram dim pos as long dim d1 as double dim s1 as string create file for writing Open test prg mode w as 1 print 1 1 2345 close 1 append to existing file Open test prg mode a as 1 print 1 PI close 1 r...

Страница 59: ...keep project files in the Flash and it is not aware of logical coupling of files and programs 3 1 PROJECT STRUCTURE Project files include tasks and cam tables Each project can contain three types of...

Страница 60: ...ed by the task allowing your program to automatically respond to error conditions and where possible gracefully recover and restart the machine There is at most one OnError section for each task and i...

Страница 61: ...g figure The configuration task can contain a program Axes can be renamed here 3 2 3 AutoExec Task The AutoExec task AutoExec Prg is executed once on power up just after the Configuration Task Use Aut...

Страница 62: ...rameters to pass Parameters are passed either by reference or by value ByVal The default method is to pass parameters by reference Arrays are passed only by reference When you pass a variable whether...

Страница 63: ...tails 3 3 1 Arrays Arrays can only be passed by reference If a user tries to pass a whole array by value the translator gives an error Array syntax is SUB name p_1 as type_1 p_n as type_n local variab...

Страница 64: ...Flash disk and you can retrieve it or delete it In order to use a library file in a program the library must first be loaded into memory LOAD MyLibrary lib To unload the library enter UNLOAD MyLibrary...

Страница 65: ...ue assign the value you want to return to a virtual variable with the same name as the function somewhere in the code of the function You do not declare the variable but the function uses it to obtain...

Страница 66: ...lit control of an axis or group across tasks You can put control for multiple axes in one task Ideally you should use multiple tasks for machines where different sections operate more or less independ...

Страница 67: ...ources it can use In fact no task of a lower priority receives any resources until all tasks of higher priority relinquish them Most systems have one main task that runs at a medium priority and perha...

Страница 68: ...e idled and cannot respond to an axis motion Tasks can be idled explicitly by other tasks but cannot idel itself This command is issued from a task or the terminal window The syntax of IdleTask is Idl...

Страница 69: ...d information on these commands refer to the SERVOSTAR MC Reference Manual A task terminates when it is finished executing If a task starts with NUMBEROFLOOPS greater than zero the task executes the s...

Страница 70: ...an event occurs it interrupts its parent task and runs to completion The rules are valid for a single process that is the parent task and its events while events of the respective tasks in the system...

Страница 71: ...e for each task Name IOEvent Owner Task1 Edge 1 Status 1 Scan 1 Priority 5 Action Stop where edge 1 indicates the event is armed that is the condition is false so that the condition becoming true will...

Страница 72: ...fined by the MC These properties are used in the calculation of position and velocity commands monitoring limits and stores configuration data for the axis The MC sends commands to the drive and the d...

Страница 73: ...rence Manual for more information 3 6 4 Starting Position Before we get started here you must Install and tune drives Follow the process for installing and tuning all drives according to the SERVOSTAR...

Страница 74: ...VELOCITYFACTOR ACCELERATIONFACTOR are only assigned positive values and DIRECTION determines their sign DIRECTION can take one of two values 1 for forward direction or 1 for reverse direction MC unit...

Страница 75: ...minute divide by 60000 A1 VelocityFactor A1 PositionFactor 60000 for position units min If you want rpm you must calculate the number of counts per revolution and then divide that by 60000 to convert...

Страница 76: ...se constant velocity cruise phase and deceleration phase Time based Acceleration Deceleration is the motion interface in which the duration of the acceleration deceleration phases during the movement...

Страница 77: ...is is in motion the true position error does not equal the instaneous commanded position minus the instantaneous feedback position because there is a time delay of two SERCOS cycle times 2 ms from whe...

Страница 78: ...where the motor turns continuously in one direction it is important to take advantage of all available accuracy in the MC This is because inaccuracy is accumulated over many revolutions of the motor F...

Страница 79: ...ot be monitored for rollover Also external position units are not in effect The MC provides the external velocity through the axis VELOCITYEXTERNAL or axis VEXT This variable contains the accumulated...

Страница 80: ...cked in the motion generator If you command a position move beyond the position limits an error is generated and the move does not start Second they are checked each SERCOS update cycle generally 2 or...

Страница 81: ...it to a few revolutions of the motor or a few inches or centimeters for linear systems This way if the tuning is unstable the system is less likely to cause a problem Setting PEMAX to a very large num...

Страница 82: ...constant acceleration The automatic design user gain 1000 gives good results Fine tune this value by applying trapezoidal trajectory and find the user gain that yields the minimum following error dur...

Страница 83: ...city units and is only set from the terminal window or in the configuration file Config Prg It is checked at the beginning of each move For example A1 VelocityMax 5000 Two limits control acceleration...

Страница 84: ...amplifier You do this with MC command Sercos Phase 4 The code to do this is normally generated in the BASIC Moves auto setup program which runs each time you start a new project A decimal point at the...

Страница 85: ...electromagnetic noise is greatly reduced The controller is electrically isolated from drives and feedback devices as well as from limit switches and other I O wired through the drives Most grounding a...

Страница 86: ...ve been passed through the ring phase 0 is complete In phase 1 the master sends the Master Data Telegram MDT Each drive is addressed individually and each drive responds with an Amplifier Telegram AT...

Страница 87: ...uses only Telegram Types 5 and 7 for data communication Normally the relies on the SERCOS telegram type 5 In Telegram Type 5 position and velocity feedback are transmitted by the drive in the AT cycl...

Страница 88: ...Ns are from 1 to 32767 although only several hundred are used to date and manufacturer IDNs are numbered from 32768 to 65535 If you are using a SERVOSTAR drive you normally use only a few IDNs for spe...

Страница 89: ...position DIP switch on top of the drive and set the switches according to the following Baud rate Sercos Baudrate Drive Switch 6 2 MBits sec 2 Off 4 MBits sec 4 On Sercos Baudrate for SERCON 816 The...

Страница 90: ...cation phase 1 The scan value indicates the highest drive address for which to scan For example if the value is set to 5 the ring is scanned for drives at addresses up to 5 Sercos scan 0 Do not scan t...

Страница 91: ...nd If For more information about states of this property refer to the SERVOSTAR MC Reference Manual Use MOTIONLINK to configure and operate the SERVOSTAR drive The parameters are stored in the drive b...

Страница 92: ...edback position loop forms a compromise uses the load sensor for position feedback accuracy is critical and uses the motor sensor for velocity feedback low compliance required This is the dual feedbac...

Страница 93: ...lated axis during Sercos Phase 0 or before SERCOS configuration takes place in CONFIG PRG or AUTOEXEC PRG To set up a simulated axis set the axis property SIMULATED to ON A1 Simulated ON This step is...

Страница 94: ...AC to VFAC 1000 such as meters per second 2 Most axis properties do work with simulated axes including Position properties command feedback final Velocity properties command feedback cruise maximum Ac...

Страница 95: ...time Additional indeterminate delays may result from the servo system dependent on drive tuning and kinetics of the mechanical system 4 1 MOTION GENERATOR The basis of all motion in the MC is the mot...

Страница 96: ...nd HALTRESTART These signals are normally ON These signals are provided to comply with SERCOS They are seldom used in MC programs If you do turn either of these off you will need to turn them back on...

Страница 97: ...o GENERATORCOMPLETED the buffered profile starts immediately after the current profile is complete If STARTTYPE is set to INPOSITION the buffered profile starts after the current profile is complete a...

Страница 98: ...on the machine by smoothing motion There are two types of acceleration profiles sinus curve profile and trapezoidal profile In the sinus profile the acceleration is smoothly increased while in the tr...

Страница 99: ...ability to restore the stopped movements Only the current motion command is stopped the commands coming after are generated STOPTYPE defaults to IMMED If STOPTYPE ENDMOTION the current move is comple...

Страница 100: ...m the task that stopped motion Motion cannot be commanded from the task that stopped motion 4 When STOP is issued from the terminal window for a command given from the terminal window the motion is st...

Страница 101: ...TE defaults to FALSE You can change ABSOLUTE at any time although the effect does not take place until you issue the next MOVE 4 1 8 2 SETTLING TIME The MC actively watches to see if axes are settled...

Страница 102: ...s within the PESETTLE range for the time specified by TSETTLE the axis ISSETTLED flag is TRUE 1 Otherwise it is FALSE 0 4 1 8 3 POINT TO POINT MOVES When the motion buffer is empty point to point move...

Страница 103: ...MMEDIATE eliminates the 5 SERCOS cycles delay by doing pre calculation online rather than offline in the motion manager SUPERIMMEDIATE is constant equal to 5 The numbers of SUPERIMMEDIATE changes at a...

Страница 104: ...end speed other than zero Non Zero End Moves To do this use axis VELOCITYFINAL VELOCITYFINAL must be specified on the same line as MOVE For example A1 VelocityCruise 2000 Move A1 100 VelocityFinal 10...

Страница 105: ...s generated You must use STARTTYPE GCOM when chaining a non zero end point move to another move You cannot use STARTTYPE IMMED or SIMM because the new move immediately overwrites the old move You cann...

Страница 106: ...nted to change the cruise velocity without changing the end position you would write CutAxis StartType IMMED Move CutAxis 150 Sleep 3000 Move CutAxis 150 VCruise 1500 You can change the final position...

Страница 107: ...es independently This command incurs a minimum system delay of 2 SERCOS cycle times but the delay may be greater depending on the number of moves synchronized together and the total load of the system...

Страница 108: ...pendent of the others If you use SYSTEM VORD and axis VORD simultaneously the axis speed is reduced by the product of both override properties as shown below System VOrd 66 Reduce entire system to 2 3...

Страница 109: ...imity switch on the axis for the indication of the hard home reference position NOTE This home position switch is placed on one end of the axis inside the mechanical end of the travel limits of the ax...

Страница 110: ...to the proper position feedback for the home position as the axis travels through the home switch transition or go home back to the switch after the first switch transition for the minimization of any...

Страница 111: ...the profile comes to rest a fixed distance after the mark position where the package can be cut There are numerous variations of this type of application The key element is that the end position of th...

Страница 112: ...p 1 End While SyncStart MainAxis Start the axis up by disable End Program This program moves MainAxis 100 units when DIN 1 transitions high Motion on MainAxis starts as soon after the transition of DI...

Страница 113: ...the host An external profiler path can be designed and fed to the MC point by point The controller functions only as a pipe and is not responsible for the correctness of the applied profiler No syste...

Страница 114: ...ration mode status variable is described below SYSTEM PIPEMODE Bits offset Position 1 Position and Velocity 2 0 1 Operation mode of drive1 Operation mode of drive1 2 3 Operation mode of drive2 Operati...

Страница 115: ...g or camming This eliminates the lag caused by the position error in the master axis The negative side is the slave is following the command rather than the actual position Many times the master sourc...

Страница 116: ...g gearing during an absolute or relative move generates an error An error is also generated if an attempt is made to enable gearing during camming Incremental moves are allowed when gearing is enabled...

Страница 117: ...gearing is turned off immediately and the velocity commanded from gearing ramps to zero at axis DECELERATIONMAX However the termination of the incremental move profile and subsequent launch of JOG is...

Страница 118: ...e is a list of point pairs which map the master position to the slave position The output of the cam table provides the slave axis position The operation of camming looks like 5 3 1 Key Features The M...

Страница 119: ...a negative number Its value is changeable during camming but it has to be done carefully to avoid a position jump in the slave value due to large differences between the old and new value 5 3 3 Incre...

Страница 120: ...d slave positions when the cam table is enabled The operation of the table above is identical to the table below where the point pairs are adjusted to allow the first point to change from 10 20 to 0 0...

Страница 121: ...the master and slave is adjusted by the MC The cam master position is adjusted for the difference between the master position at the starting and ending points If the cam table has net motion each sub...

Страница 122: ...When CAMCYCLE reaches CYCLE the axis transitions to the next cam if there is one Similarly when the master is running backward and CAMCYCLE reaches 0 the cycle transitions to the previous cam if ther...

Страница 123: ...on There are two types of cam tables static and dynamic Static tables are built and stored in flash disk to be used later while dynamic tables are built at run time You should choose a type based on y...

Страница 124: ...project BASIC Moves converts it to a cam table and stores it in the MC When building a cam table using MC BASIC first globally allocate cam storage Use Common Shared var as Cam Common Shared CAM1 as C...

Страница 125: ...is in use or if the task that it is attached to is loaded 5 3 6 2 DYNAMIC TABLES Cam tables can be calculated dynamically This allows you to build a cam profile based on events that occur during opera...

Страница 126: ...veData 5 100 This is similar to building a static cam table The difference is that this cam table is never stored to or loaded from flash Step 3 Initialize Other Elements Initialize other elements of...

Страница 127: ...ocity of the axis is decelerated to zero at the rate set by axis DECELERATIONMAX If JOG command is issued camming on that axis is disabled immediately and the cam profile ramps to zero at the rate axi...

Страница 128: ...current index within the current cam table For example if there are 100 points in the table and the cam is half complete CAMINDEX 50 cam MASTERDATA is used with CAMINDEX to provide the value of the m...

Страница 129: ...itor physical axes for machine control by slaving a simulated axis to a physical axis and monitoring the position and or velocity of the simulated axis For example if you slave a non rotary simulated...

Страница 130: ...PseudoAxis 100 This indirectly turns gearing off End OnEvent OnEvent Vel_Above_Min PseudoAxis Vcmd 100 PseudoAxis Slave Gear End OnEvent Attach PseudoAxis EventOn Vel_Below_Min EventOn Vel_Above_Min W...

Страница 131: ...axes may be part of one group It is necessary to set VELOCITYFACTOR ACCELERATIONFACTOR and JERKFACTOR for the group As a first approximation set group VFAC 1 1000 set AFAC VFAC 1000 and set JFAC AFAC...

Страница 132: ...on final In each case the quantities in the vector are equivalent to the individual axis properties For example you can set POSITIONFINAL as part of a MOVE Move MyGroup 5 5 6 5 This sets PFINAL of the...

Страница 133: ...ample exiting position error of every axis is monitored each SERCOS cycle 6 6 3 Position Position limits are imposed solely by the axes and are checked at the beginning of every movement If one of the...

Страница 134: ...ONMAX is the upper limit for deceleration in MC acceleration units The actual executing acceleration and deceleration are limited also according to the group s axes limitations The maximum allowed axe...

Страница 135: ...only be done once A1 Name xAxis A2 Name yAxis Common Shared xyTable as Group AxisName xAxis AxisName yAxis 6 9 1 Attach Task and Axis Before a task can send motion commands to a group the group must b...

Страница 136: ...DIN 1 OFF System Motion OFF End OnEvent End Program 6 9 4 STOP STOP stops group motion in the motion buffer In the command you must specify the group Stop GroupA Normally STOP is set to stop motion i...

Страница 137: ...POSITIONFEEDBACK and PFINAL are group size vectors Second the profile including ACCELERATION and DECELERATION applies to all axes in the group For example MyGroup VCruise 2000 Move MyGroup 100 100 mo...

Страница 138: ...ement but not helical Circle xyTable CirclePoint 10 20 10 TargetPoint 100 200 20 circleplane xy In the above example the circle is implemented in the XY plane along with the incremental change of the...

Страница 139: ...se wait for settling End While Begin Pattern xyTable StartType GCOM Move smoothly from one move to the next xyTable Absolute FALSE Incremental moves Move xyTable 0 4 Circle xyTable Angle 90 CircleCent...

Страница 140: ..._normal1 cos I2 1 rot_start2 sin I2 rot_normal2 6 9 9 1 SUPERPOSITION Superposition blends motions at any point of time starting from the initial point of the movement up to the target This blending m...

Страница 141: ...s case blending occurs according to the second movement Throughout the whole blending process sine acceleration or velocity trapeze profiles are used However mixing profile types is not allowed In the...

Страница 142: ...d with the group TIMESETTLE or group TSETTLE given in milliseconds If the position error exceeds PESETTLE during this time the timer is reset If position error is within PESETTLE s range for the time...

Страница 143: ...normally want STARTTYPE INPOS This forces the motion generator to wait for the position error to become small before starting the next move If the position profile starts on the second move too soon t...

Страница 144: ...g the second move This move command cancels the current move For example issuing a move without changing the velocity MyGroup StartType IMMED Move MyGroup 150 400 Sleep 3000 Move MyGroup 150 800 As a...

Страница 145: ...EAR has no effect once the move is executing In this case you stop the move as you would a non synchronized move 6 11 VELOCITY OVERRIDE The MC provides the ability to speed up or slow down all motion...

Страница 146: ...tial position of Scara is Scara PFb Scara is moved through its generic representative Gen_Group Move Gen_Group 300 500 40 0 absolute 1 Sleep 200 Final position of Robot is Scara PFb Detach Gen_Group S...

Страница 147: ...2 kn where k1 through kn are the number of correction points defined for the axes A1 through An respectively The source positions in source axis position units must be equally spaced and monotonously...

Страница 148: ...ed for any of the axes in the table correction 0 A jump may occur Correction values are assumed very small and will not cause a large jump in the target axis VOSPD and PEMAX are affected by the correc...

Страница 149: ...Activate After defining the correction table turn it ON OFF with COMPACTIVE Before activating a check is performed to insure that the table is valid the points are evenly spaced and increasing After v...

Страница 150: ...ion 1 9 Setting max for the X Comp1 minposition 2 1 1 Setting min for the Y Comp1 maxposition 2 2 Setting max for the Y Comp1 minposition 3 3 Setting min for the Z Comp1 maxposition 3 3 12 Setting max...

Страница 151: ...nd and its effects do not harm other slaves connected to the same master Directly disconnection of the slave SLAVE OFF automatically stops PHASER 8 1 1 Profiler PHASER is a type of MOVE so all the com...

Страница 152: ...mmand The value reached at the end of stopping is the maximum offset that is added instead of the original offset value The maximum offset value is queried with MAXIMUMOFFSET see the SERVOSTAR MC Refe...

Страница 153: ...plied in any system independently of how many axes or groups are defined For example switching on an output when an axis reaches its target While A1 IsMoving 0 Sleep 1 End While Sys Dout 1 1 9 1 ELEME...

Страница 154: ...nment If an unassigned generic element is used an error is returned Common Shared Gen_Axis As Generic Axis Gen_Axis ElementID 0 Gen_Axis VMax Error 3005 Nonexistent group or axis Module Motion Through...

Страница 155: ...and bitwise operators cannot be applied on generic elements Generic elements cannot be used as conditions in flow control statements and event definitions Generic elements cannot be recorded Generic e...

Страница 156: ...passed by reference to functions and subroutines Here the argument is generic Sub AxesListSetUp AxList As Generic Axis Dim i as long For i 1 To Sys NumberAxes AxList i PFac 0x8000 AxList i VFac AxLis...

Страница 157: ...Function Then write a general loop Dim A As Generic Axis For Index 1 to Sys NumberAxes A AxisByIndex Index Call AxisSetUp A Next The generic element returning function itself cannot be used as an arg...

Страница 158: ...ments With Gen_Axis PFac 0x8000 VFac PFac 1000 AFac VFac 1000 JFac AFac 1000 End With WITH can be used on assigned and unassigned generic elements These generic elements can be assigned and or re assi...

Страница 159: ...of I O where it can be read from and written to as blocks in the MC s dual port RAM Virtual inputs are delivered from the host over DPRAM where virtual outputs are stored in the DPRAM and retrieved by...

Страница 160: ...t when an axis position reaches any of the defined positions of the PLS Some of the features of a PLS are Multiple position specifications Multiple PLSs per axis PLS pattern repetition Position hyster...

Страница 161: ...S output with one switch position at 100 More switch positions can be added To have the PLS in the above example turn back off at 200 simply add a second position at 200 as shown below You can add any...

Страница 162: ...current position so that when the axis reaches the first segment the output polarity is as indicated The default value for polarity is 0 10 3 5 Hysteresis The MC allows you to apply hysteresis around...

Страница 163: ...ngle PLS position exists at 0 The initial output polarity is 1 PLSREPEAT is set to 0 The hysteresis is set to 0 These properties may be set explicitly as long as the PLS remains disabled You can check...

Страница 164: ...u may need Change Polarity The default output state of a PLS is 0 Change this initial state by modifying PLSPOLARITY MyPLS PLSPolarity 1 The PLS must be disabled when changing this setting Query the N...

Страница 165: ...nnections of PC104 but the subset is sufficient to accommodate nearly all PC104 I O cards Refer to the SERVOSTAR MC Installation Manual for more details concerning which pins are supported 10 5 1 Conf...

Страница 166: ...to 0xCFFFF and 0xDA000 to 0xDFFFF For the PCI card the valid memory address range for POKE is 0xA0000 to 0xC7FFF and 0xDB000 to 0xDFFFF PEEKB transfers byte wide 8 bit data from the PC104 memory bus...

Страница 167: ...sociated with a specific line of program code in the user defined task Examples include division by zero and out of range parameters in a MOVE command The task that caused the error is stopped Asynchr...

Страница 168: ...ult system error action if OnError traps error Main program execution is stopped while the OnError block is executing and must be resumed if that is desired An example of this is shown later in this s...

Страница 169: ...SYSTEMERROR OnSystemError traps and processes all errors in the system context It is the upper level of the hierarchical error processing structure formed by the combination of Try OnError and OnSyste...

Страница 170: ...hDog is cycled indirectly through fast I O WDCYCLE directly resets the WatchDog but this is not recommended because it requires 15 to 20 ms per WatchDog cycle Given that WatchDog timers are often rese...

Страница 171: ...cycles or 100 ms WDCycle MyVar You must cycle the Wdog once to begin While 1 1 Infinitely loop so event will be active Sleep 1e6 Use sleep to conserve CPU time End While End Program With this example...

Страница 172: ...UEA may have Note and Error seventies 11 4 EXCEPTIONS 11 4 1 Declaration The application developer can declare an exception and supply the corresponding error message An exception may be declared on...

Страница 173: ...haves like it is a regular predefined in firmware application error You are able to catch application exception with TRY Catch OnError or OnSystemError Exception assertion is possible with THROW THROW...

Страница 174: ...ption is deleted or the defined task is killed For example MyError num 20007 MyError Msg My Error 11 4 6 Print Exceptions are printed and logged with timestamp task name and line number severity and o...

Страница 175: ...0 Then Second If Then While I3 5 First While Print Print I3 I3 I3 I3 1 For I4 1 to I3 Step 2 First For statement Print I4 I4 For I5 I4 to 10 Second For statement Print I5 I5 Sleep 50 To slow task down...

Страница 176: ...utine var_x var_y more code CALL MatrixMath array_z 1 1 rows columns more code End Program SUB OrdinarySubroutine param1 As Double ByVal param2 As Long REM pass param1 by Reference param2 by Value REM...

Страница 177: ...AR MC INSTALLATION MANUAL FOR MORE INFORMATION rem rem TASK C Program Files KMTG Motion Suite BASIC Moves Projects Junk2 Junk2 prg rem AUTHOR Name of Author Here rem TIME Time of Creation Here rem PUR...

Страница 178: ...program completed Sys Motion off Disable motion in system Sys En off Disable system rem Auto generated sample program end here Detach A1 Detach from axes End Program rem rem Sercos Set up Routine Auto...

Страница 179: ...ase 0 then can only modify simulated property in phase 0 A1 Simulated off End If If Sercos Phase 4 then A1 enable on reenable axis End If End Sub SERCOS Setup Subroutine The following example modifies...

Страница 180: ...IDN 15 WriteIDNValue Drive A1 Dadd IDN 15 Value 7 Rem Configure the AT for VFb PFb and PExt IDNs 40 51 53 WriteIDNValue Drive A1 Dadd IDN 16 Value 40 51 53 Rem Configure the MDT for VCmd PCmd IDNs 36...

Страница 181: ...ne axis in motion and all the others are stopped Then the given value of the velocity is taken directly in the units for that axis For example having movement on the third axis of the SCARA robot the...

Страница 182: ...robot and can be used without having a robot defined in the system When they are used in a connection with the robot or a group the world subtypes must be equal Internally points are stored as 10 dim...

Страница 183: ...d by the motions of the first and second motors Typical examples of such applications are displaced motors of a robotic arm PUMA moving the robot arm via chains or belts Differential gearing on the la...

Страница 184: ...everal axes of the group according to the given coupling matrix If the group has no coupling matrix defined the joint is a direct representation of the axis of the same ordinal number in the group as...

Страница 185: ...l COMMON SHARED scara AS GROUP AxNm a1 AxNm a2 AxNm a3 AxNm a4 Model 4 This automatically defines a robot with a SCARA kinematics model Contrary to the regular groups that need only the axis to be ena...

Страница 186: ...versa MOVES is used solely for groups from type robot and cannot be used in regular groups Straight line motion refers to motions that are straight lines in world space In groups with no robot model...

Страница 187: ...MOVES as seen in joint space 42 4 6 5 0 5 4 58 62 66 70 7 4 7 8 82 40 50 60 70 80 90 100 X Y The following graph shows MOVES as seen in world space 3 00 2 0 0 10 0 0 1 00 2 0 0 3 00 5 00 5 20 5 40 5...

Страница 188: ...JOINT target Cartesian Interpolation MOVES 400 400 0 0 MOVES 45 45 0 0 Joint Interpolation MOVE 400 400 0 0 MOVE 45 45 0 0 CONTOURING Contouring connects different motions by defining the final veloc...

Страница 189: ...space possible that allows constant ACC DEC phases without exceeding joint values Acceleration and deceleration may differ and must be considered separately mostly in long distance moves where conditi...

Страница 190: ...It is an internal value computed each time the robot is configured CONFIGGROUP Points given outside this radius are rejected with the error message Point Too Far The other limit is the small circle w...

Страница 191: ...K determines the movement s target position It can be automatic 0 lefty 1 or righty 2 When a movement with a Cartesian target position is given the joint coordinates of the target position are selecte...

Страница 192: ...leaf The variable leaf retains data related to the point variable including its context system program or local its offset taken from the symbol table and its type LOCATION or JOINT also taken from t...

Страница 193: ...e joint or location and size Common Shared JointXYZ As Joint Of XYZ JointXYZ 1 5 2 8 3 Error type mismatch PRINT 20 6 7 23 8 43 2 0 Error type mismatch JointXYZ 2 6 Error size mismatch PRINT 20 6 7 23...

Страница 194: ...Common shared P1 as location of XYZR declaration of a vector global P1 1 2 3 4 assign the whole vector P1 1 2 return a translation error P1 read the whole vector P1 2 read the second coordinate of th...

Страница 195: ...e any other data type It subtracts each element of the first point with each element of the second point The result is a point 1 2 2 4 1 2 MULTIPLICATION The point multiplication operator is used like...

Страница 196: ...1 P1 p1 End program Sub Sub1 X as joint of XYZR X 1 2 3 4 End Sub This program assigns P1 to 1 2 3 4 and prints 1 2 3 4 as output When a point is passed by reference or value you can only pass a point...

Страница 197: ...oints deleting points Point As An Expression With the new point data type points properties can be stored as a point or can be compared as a point For example Dim A as Joint of XYZR A 1 2 3 4 A G1 Pcm...

Страница 198: ...ype of an argument or a returned value must match function declaration Dim Shared ARG1 As Type_1 Dim Shared ARR_ARG 4 5 As Type_1 Dim Shared ARG2 As Type_2 FUNCTION MyStructFunc BYVAL Par1 AS Type_1 P...

Страница 199: ...for querying a single element of a structure variable_name structure element For example Common shared s1 as X declaration of a default structure S1 Type 1 S1 Length 2 S1 Translation Error S1 Type Op...

Страница 200: ...nts a coordinate system relative to the robot s world coordinate system Set a limited area in further text window on which the robot tracks This area is the operation region or the working frame Befor...

Страница 201: ...om the downstream limit To correct this error add a direction flag to the trigger to indicate if the region limits are inverse The moving frame is divided into components For example an XY table track...

Страница 202: ...robot s position and orientation coordinates are taken into account A system offers two different approach algorithms One is the absolute tracking algorithm and the other is the relative tracking alg...

Страница 203: ...position to the object In this algorithm the two parameters are used differently FILTERFACTOR defines the threshold needed to end the approach phase and switch to the track phase As this parameter ge...

Страница 204: ...ossible delivery Danaher Motion sales engineers are conveniently located to provide prompt attention to customer needs Call the nearest office for ordering and application information and assistance o...

Отзывы: