en:software:devices:joint

This translation is older than the original page and might be outdated. See what has changed.

DEVICE JOINT

1. Introduction

The internal device JOINT is achieved to manage multiple axes (max. 3) in linear interpolation connected. The interpolation is done through tiny movements determined by programmed points.
You can also move the axes individually and execute the homing procedure. The placement of axes runs under a P.I.D. reaction control that guarantees the accuracy by reducing the tracking error.

In the configuration unit, the BUS section must be declared so that you have the hardware resources necessary for the use of the JOINT device.
There must be at least a bi-directional counter and an analog output implemented with 16-bit resolution DAC. The device can also use a digital input and a digital input for interruption for homing operation.
In the INTDEVICE section of the configuration unit must be add the following definition:

;---------------------------------
;  Internal device declaration
;---------------------------------
INTDEVICE
..
<device_name> JOINT TCamp  NAxis Buffer 
                    IContX IntLX IAZeroX IoutAX
                    IContY IntLY IAZeroY IoutAY
                    IContZ IntLZ IAZeroZ IoutAZ
                    IOut1  IOut2 IOut3 IOut4

Where:

<device_name> the name assigned to the device
JOINT keyword that identifies the device,
TCamp sample time device (1÷255 ms)
NAxis number of axes enabled to the interpolation (2÷3)
Note: the number of axes is going to affect both the performance and on the amount of memory used
Buffer step number available in the buffer (3÷30000)
Axis X
IContX bidirectional counter input (to prevent the device uses this resource enter the X.X characters)
IntLX number of digital input for dedicated encoder zero pulse break during the research phase of presets. (to prevent the device uses this resource enter the X character)
IAZeroX enable input for transducer zero pulse acquisition during homing research phase (to prevent the device uses this resource enter the X.X characters)
IoutAX hardware address of the analog output (to prevent the device uses this resource enter the X.X characters)
Axis Y
IContY bidirectional counter input (to prevent the device uses this resource enter the X.X characters)
IntLY number of digital input for dedicated encoder zero pulse break during the research phase of presets. (to prevent the device uses this resource enter the X character)
IAZeroY enable input for transducer zero pulse acquisition during homing research phase (to prevent the device uses this resource enter the X.X characters)
IoutAY hardware address of the analog output (to prevent the device uses this resource enter the X.X characters)
Axis Z
IContZ bidirectional counter input (to prevent the device uses this resource enter the X.X characters)
IntLZ number of digital input for dedicated encoder zero pulse break during the research phase of presets. (to prevent the device uses this resource enter the X character)
IAZeroZ enable input for transducer zero pulse acquisition during homing research phase (to prevent the device uses this resource enter the X.X characters)
IoutAZ hardware address of the analog output (to prevent the device uses this resource enter the X.X characters)
Digital outputs
IOut1 hardware address of the digital output OUT1
IOut2 hardware address of the digital output OUT2
IOut3 hardware address of the digital output OUT3
IOut4 hardware address of the digital output OUT4
:important:Attention:
It is necessary that each definition are present on the same line.
In case you do not want to assign a resource, such as IAZeroX, you must enter in the appropriate field the X.X string

The JOINT device adds to the capabilities of analog positioner EANPOS (see see the documentation for more details) the possibility to make a movement interpolated axes (max. 3). By this we mean that you get a chance, using the axes, to execute a movement from one point in space (3 dimensions) to another along a line (not necessarily straight line) or a preset path.
Moreover, the device can calculate a fillet between two lines with different slopes according to some programmable modes.

The device includes a trajectory-generating function (also called velocity profile). This generates a piece of information that is appropriately converted to a proportional voltage signal via the analog output to operate the motor and therefore the axis connected to bring it to the desired position.
If the motor system was ideal would follow perfectly the velocity profile created and you would bring to the position given by the integral of the velocity profile. Actually this doesn't happen and you need to top it all with a chain of feedback. The transducer that detects the position of the axis is typically digital, typically an encoder (we'll call it always bi-directional meter).

The information provided by the transducer is used to make a comparison between the current position and the theoretical position. This comparison allows to know the current error and the PID controller can use this information to modify the output and get the error condition zero. The regulator used implements four types of actions. The block diagram of the regulator is as follows:

:info:The output PID + FF controller is a value between -32768 and 32767. This is used by the analogue output to generate the adjusting voltage. Typically the analogue output is implemented by a DAC device that converts the digital information in a tension between -10 Volt and +10 Volt. For every action the regulator calculates a coefficient inside to ensure that the value generated has a significant for the analog output.

1.2.1.1 Proportional action

This control action establishes a relationship of direct proportionality between the tracking error (follerr) and the output value to the controller. The parameter proportional gain pgain (user-settable) defines the degree of proportional controller; It is expressed in milliseconds for which to set a gain of 0.5 you should enter the value 500.
The rule establishing the output value (propreg) is: with unitarian gain (pgain), the control output will be maximum when the tracking error is equal to the space that is executing the axis at the maximum speed in a sampling time of the device. It is important to note that due to the rule that you just described, there is a link between the proportional and the sampling time of the device. Also note that when the error is null even proportional control output is nothing.

1.2.1.2 Integral action

The integral controller of PID controller calculates the integral of position error on a time interval user-settable with integt parameter (expressed in ms). The output signal is updated in a particular way: whenever the supplement from an output value that is added to the value that is on the register, then it will continue to increase or decrease (depending on the sign of the error). The output value is calculated as follows: with unit proportional gain, the integration time (integt) is the time it takes for the output (intreg) reaches the proportional output value (propreg). From this last statement shows that the integral action is related to the proportional controller.

1.2.1.3 Derivative action

The derivative action “anticipates” the system behavior of the system being monitored. The output produced is proportional to the change of the input signal (that is the position error). The magnitude of the derivative effect is adjustable via the parameter time derivative derivt. Computing the derivative action is based on the following convention: the derivative time is the time it takes for error constant variation, the derivative output (derreg parameter) reaches a value equal to the proportional output. As for the integral action shows that even for the derivative action is there a link with the proportional action. More higher the time of derivation of error and more faster the transient error recovery system. It is evident that the derivative action may never be used alone because in the presence of constant mistakes its effect would be null.

In summary: the proportional action has the effect of increasing the rate of reaction of the system, it also reduces, but does not completely eliminate, the error. The integral action leads to clear the error, but lengthens the transitional times. Derivative control increases the stability of the system, reducing overshoot and reducing transitional times.

1.2.1.4 Feed-forward action

In addition to the PID controller There is also then feed-forward actio: It generates an output proportional to the value of theoretical speed determined by the trajectory generator (as you can tell from the name doesn't exploit any tracking error feedback). Its function is to reduce the system response time by providing a release already nearby to that which provides the speed profile. The contribution of this action is adjustable via the feedfw parameter: This parameter is expressed as a portion of millesimal theoretical speed (so to introduce, for example, 98.5% it's necessary set the 985 value).

This chapter describes the method by which the device searches the home position (also called zero axis or mark point). There are various ways to do this research and these use different movements and hardware resources.

Homing function must be properly configured before it is used. In particular the prsmode parameter defines the way in which the device searches the home position. This parameter also defines the hardware resources necessary to search and how to move. You must then configure the search speed. Typically an high speed (expressed from the prsvel parameter) is used to search for the activation of the enable input and a lower speed (expressed from the sprsvel parameter) is used to search the home position. Can be derived from the zero of the bi-directional counter or from the disable of the enable digital input.

We illustrate now the various ways to search for the location of home:

1.2.2.1 Mode 0, without zero input of bi-directional counter

This mode involves the movement of axis and only enabling digital input. To the deactivation of the digital input the location of the axis takes the value in the prspos parameter. You later disable the st_prson state and enable the st_prsok state to report the end of search. This state remains active until launching a new search procedure.

In the picture it was shown the function pirnciple highlighting the differences in the case of opposite directions of motion.

1.2.2.2 Mode 1, with zero input of bi-directional counter

This mode involves the movement of the axis and the additional use of the bidirectional counter zero. To the deactivated of the enable digital input is enable the reading of the first enable of the zero input and on this signal the position of the axis takes the value in the prspos parameter. You later disable the st_prson status and is active the st_prsok state to signal the end of search. This state remains active until launching a new search procedure.

In the picture is shown the operating principle of highlighting the differences in the case of opposite directions of motion

1.2.2.3 Mode 2, homing in current position

This mode does not provide for the moving of the axis and uses only the enabling digital input. If the input is activated, the position of the axis takes the value in the prspos parameter.

:info:
• When you set the search speed of the zero (sprsvel parameter) we must consider that the mode 0 the input has a hardware filter that delays the acquisition and so this delay affects the accuracy of the loading. In mode 1 instead acquiring execute on digital input for interruption and the speed of the movement is not determinative. But we must ensure that the operating time of the zero-pulse is sufficient to be acquired from the input. To know the times of acquisition of digital inputs and the minimum time zero pulse signal refer to the technical documentation of the used cards.
• If during the first movement of research of the enable input (executed at the prsvel speed) is given again the PRESET command, the direction of movement is inverted.
• After loading the homing offset in the current position, automatically commanded a placement at the homing offset quota.
:important:When moving home positioning the maxpos and minpos software limits aren't enabled.

The PRESET and RSPRSOK commands manage the homing function. The first must be used to initiate a search of the home position or to reverse the direction of research during the first movement at prsvel speed. The second command should be used instead to clear the st_prsok state. This state can be used by the application to know if a homing function has been completed successfully. The RSPRSOK command it can be used in the case that intervening events that invalidate the current position value (for example a break of the bi-directional counter, manual introduction of a value in the current position). The application (that monitorize the st_prsok state) will require a new homing search.
The st_prson state should be used to determine if the function is active homing. The st_still state cannot be used because the movement is composed of multiple placements and this state would indicate stationary axis at the end of each movement.

See the states chart:

The prspos parameter should be used to express the distance between home and the location where the homing function. If they match then the parameter should be set to zero. See a chart:

Normally the posit and encoder parameters represent the absolute position of the axis. There are some applications where these parameters must represent a relative information. These can be for example circular axes (posit must express an angular size) or a valve controller to the respective quotas. To make posit information relating you must edit its value; Although there is the possibility of writing to that parameter, the operation is not recommended for two reasons:

  • because the actual position of the axis is always influenced by tracking error
  • because the current location can be one of the many intermediate positions between a unit of measure and the subsequent

To do this there is the DELCNT command that allows you to change the posit a value that can be set with delcnt parameter.
For example, suppose you have configured pulse and measure so that the location is expressed in tenths of a degree. If posit expresses the angular position and we want this is always between zero and 360 degrees we should add the following code:

IF Axis:posit GE 3600
  Axis:delcnt = -3600
  DELCNT Axis
ENDIF

It is wrong to use the following code:

IF Axis:posit GE 3600
  Axis:posit = Axis:posit - 3600
ENDIF

For the conditions of execution of the command, see the decriptions.
The DELCNT command function is assured even in the event that a unit of measure is not expressible in a finite number of impulses. For example with the measure = 1000 and pulse = 1024 parameters, the value 3600 in the preceding example corresponds to 3686.4 pulses. Thanks to a sophisticated algorithm inside the device fails to consider the fractional part of this value and through internal batteries it becomes part of the information used to change the posit valuee.

1.2.3.1 Example:

For example, the following setting: pulse = 10, measure = 1. For example the reading of the position of the axis is 2 and you are at point A. You want to add to the position posit two units of measure.
With instructions:

Axis:posit = Axis:posit + 2

the axis takes the new position B.
With instructions:

Axis:delta = 2
DELCNT Axis

C position is reached.

Note that if you change it directly the posit without using the delta function (as in the first example) an error is introduced.

:info:Se si devono inviare comandi DELCNT in successione, è conveniente calcolare la grandezza da sommare ed inviare una sola volta il comando. Se ciò non fosse possibile bisogna prestare attenzione a non inviare comandi successivi senza interporre una istruzione di lettura su parametro device. Esempio:
Axis:delta = 3
DELCNT Axis WAIT
Axis:delta
Axis:delta = 40
DELCNT Axis 

The device allows a positioning by connecting pairs of points with fees and making the connection by changing the slope of the first line to reach the slope of the second line. Doing it this way you will calculate a curve that join without being hard moved and trajectories of two lines. An example is shown in picture.

The device in this situation generates two trajectories that will merge together between a line and the other. To obtain a greater homogeneity of the resulting movement was chosen to keep the acceleration and deceleration time equal to each axis, programmable with a single variable. Otherwise it could happen that the resulting trajectory is what you want.
If the coordinates exceed maximum and minimum dimensions set as the limit of the axes, the system will position itself on these limits.
If you make the connections so you get circular figures, It is good to set mxlrvelASSE variables equal to prevent various interpolation between the limits of speed mxlrvel of any axes.

Note: What has been described is also valid for three-axis movement.

1.2.4.1 Interpolation speed change

When positioning you can vary the speed of interpolation without affecting the location to get to. This operation can lead to an increase or a decrease in the speed of each axis: If an axis reaches its maximum limit, then the overall speed of interpolation may not exceed.
The change of speed is not said to occur immediately, but only when all conditions are met.

Also the acceleration/deceleration time of the interpolation (tacci) is subject to the limits imposed by the various axes: It must be equal to or greater than the maximum acceleration and deceleration time of all axes.

1.2.4.2 Using of passcodes interpolation

The device, When enable make a movement interpolation using the STARTPRG command, uses the program Buffer containing axes coordinates for points that need to be connected.
The introduction of quotas can occur both in absolute or incremental forms, compared to the previous position (setposAXIS), depending on the choice of the prgmode parameter.

For each program step is also a code variable whose values are between 0 and 65536.
The meaning of the variable code is shown in the following table:

ValueDescription
0No operation
1÷1000Speed override (expressed in tenths of percentage points setveli)
2000÷6999Performs a shutdown of positioning (using a deceleration ramp) then waits for an interval of time (in milliseconds) equal to the value of the code - 2000 field, then resumes the placement with an acceleration toward the next point.
10000÷100015Shows the status of the OUT1, OUT2, OUT3, OUT4 outputs
The resulting value of subtracting 10000 to the code variable is a value between 0 and 15 indicating the status of 4 outputs as to the following diagram:
OUT4 OUT3 OUT2 OUT1 code- 10000 code
0 0 0 0 0 10000
0 0 0 1 1 10001
0 0 1 0 2 10002
0 0 1 1 3 10003
0 1 0 0 4 10004
0 1 0 1 5 10005
0 1 1 0 6 10006
0 1 1 1 7 10007
1 0 0 0 8 10008
1 0 0 1 9 10009
1 0 1 0 10 10010
1 0 1 1 11 10011
1 1 0 0 12 10012
1 1 0 1 13 10013
1 1 1 0 14 10014
1 1 1 1 15 10015

1.2.4.3 Conditions for the execution of an interpolation

For start interpolation, use the STARTI or STARTPRG commands, requires that the following conditions are met by departure:

  • the unitvelASSE and decptAXIS parameters to interpolate axes must be equal
  • the axes should not be in an emergency: st_emrgAXIS = 0
  • the axes must be in stop: st_stillAXIS = 1
  • the axes not be in calibration: st_calAXIS = 0
  • the axes should not be looking for homing: st_prsonAXIS = 0
Name Dimensions Default value Access type Unit of measure Valid range Write conditions Description
prgmode Byte Retentive RW - 0÷1 st_ipolar=0 How to setup program quotas
Defines how to setup program memory:
0: the quotas are expressed as absolute value,
1: dimensions are referred to as incremental value.
maxveli Long 0 R Uv 0÷999999 - Maximum speed in interpolation
Defines the maximum speed of interpolation in the speed unit set. The value is calculated automatically depending on the maximum speeds of the X, Y and Z axes.
tacci Word Retentive RW hundredths of a second 0÷999 st_ipolar=0 Acceleration and deceleration time in interpolation
Defines the time taken by the interpolated axis to move when stationary to maximum speed and from the maximum speed to zero (condizione di asse fermo).
Is only used when interpolated movements.
setveli Long Retentive RW Uv 1÷maxveli - Setting the interpolation speed
Defines the interpolation speed and can be changed during the interpolation. This value should not exceed maxvelx or maxvely or maxvelz.
If during calculations a component exceeds the maximum re-calculable value (mxrlvelx or mxrlvely or mxrlvelz), interpolation speed reduction it's executed in order to meet this requirement.
minspINT Long 0 R Um - - Minimum space in constant speed interpolation (integer part)
Indicates the minimum space and can be networked in interpolation, this value is calculated as a function of speed (setveli) and the acceleration and deceleration time (tacci) of the interpolation. The value is expressed in the minspINT variable (integer part) and minspFRAC (fractional part).
minspFRAC Word 0 R - - - Minimum space in constant speed interpolation (fractional part)
Represents the fractional part of the minspINT parameter, is expressed as the fractional part * 65535.
mxrlvelx Long Retentive RW Uv 0÷maxvelx st_ipolar = 0 Maximum speed X axis for movements with interpolation
In the case of movements with interpolation defines the maximum speed from the X axis.
In case the axis speed exceeds this value is subject to a reduction in the rate of reported easing st_rvel state activation.
mxrlvely Long Retentive RW Uv 0÷maxvelx st_ipolar = 0 Maximum speed Y axis for movements with interpolation
In the case of movements with interpolation defines the maximum speed from the Y axis.
mxrlvelz Long Retentive RW Uv 0÷maxvelx st_ipolar = 0 Maximum speed Z axis for movements with interpolation
In the case of movements with interpolation defines the maximum speed from the Z axis.
stepbeg Word 0 RW - 0÷30000 - Step number of start interpolation program
Indicates the number of step which will begin easing the program with the STARTPRG command.
If set to 0, the device will loop continuously from 1 to stepend. By changing from 0 to 1 the value during the interpolation, it will end when stepexe will reach stepend.
stepend Word 0 RW - 1÷30000 - Step number of end interpolation program
Indicates the number of step that will end the easing programme started with the STARTPRG command.
stepexe Word 0 R - 1÷30000 - Step number in execution of interpolation program
Indicates the number of the step executiong during the interpolation started with the STARTPRG command.
stepin Word 0 RW - 1÷30000 - Step number to memorize
Indicates the number of the step to be stored with the WRITESTEP command or read with the READSTEP command.
stepout Word 0 RW - 1÷30000 - Outcome of reading or writing step procedure
When the execution of the WRITESTEP or READSTEP commands was successful stepout will have the same value as stepin.
stepnum Word 0 RW - 1÷4 - Number of steps considered by READSTEP or WRITESTEP
Indicates the number of steps that are read or written by the READSTEP or WRITESTEP commands.
codexI Long 0 RW - 0÷10015 - Code X axis for the step I
Indicates the X axis coordinate in read or write step number I (I = 1÷8).
codeyI Long 0 RW - 0÷10015 - Code Y axis for the step I
Indicates the Y axis coordinate in read or write step number I (I = 1÷8).
codezI Long 0 RW - 0÷10015 - Code Z axis for the step I
Indicates the Z axis coordinate in read or write step number I (I = 1÷8).
codestpI Word 0 RW - 0÷10015 - Code step I number
Indicates the value for the code I number (I = 1÷8).
If zero, the value is ignored.
errcode Byte 0 RW - 0÷100 - Error identification code
Indicates the type of failure intervened in the system. When st_error = 1 is present on the errcode variable the type of failure intervened and in the errvalue variable an indication on the cause of the error. If the device goes wrong, to start cut you have to clear the st_error state through the RSERR command.
The following table specifies the values from the errcode variable:
Code Description
1 Encountered an error in calculations during the interpolation.
When this condition occurs, the interpolation is immediately interrupted.
errvalue Byte 0 RW - 0÷100 - Identifying code of the cause of the error
Through the errvalue variableYou can get more detailed information about the error reported.
The following table specifies the values from the errvalue variable:
Code Description
1 This error is reported when for 5 consecutive steps moving the interpolation point proved 0.
2 An invalid operation has been requested.
3 During the calculating of the interpolation point movement was an overflow.
10 Exceeding maximum quota X axis. Placement quota calculated, is greater than the maximum quota set.
11 Exceeding maximum quota Y axis. Placement quota calculated, is greater than the maximum quota set.
12 Exceeding maximum quota Z axis. Placement quota calculated, is greater than the maximum quota set.
13 Exceeding minimum quota X axis. Calculated placement quota is less than the minimum amount set.
14 Exceeding minimum quota Y axis. Calculated placement quota is less than the minimum amount set.
15 Exceeding minimum quota Z axis. Calculated placement quota is less than the minimum amount set.
wrncode Byte 0 RW - 0÷100 - Identification code warning
Indicates the type of warning in the system. The st_warning state indicates a minor event that guarantees the operation of the device.
When st_warning is equal to 1, are present on the wrncode variable the type of warning intervened (see the table) and in the wrnvalue variable an indication as to the cause that caused the warning. To clear the st_warning state mustto send the RSWRN command.
The following table specifies the values from the wrncode variable:
Code Description
1 Command not executed
2 You cannot perform writing parameter because it active the interpolation.
16÷31 Code related to X axis
32÷47 Code related to Y axis
48÷63 Code related to Z axis
wrnvalue Byte 0 RW - 0÷100 - Identification code of the cause of the warning
By means of the wrnvalue variable you can get more detailed information about the error.
Name Dimension Default value Access type Unit of measure Valid range Write conditions Description
measurex Long Retentive RW Um 1÷999999 st_ipolar = 0,
st_prsonx = 0,
st_stillx = 1
Reference measure for calculating the conversion factor between primary impulses and units for X axis
Indicates the space, in unit of measure, covered by the X axis to obtain primary pulses set in pulsex parameter. This parameter is used for calculate the conversion factor between primary pulses and units of measure.
positx = encoderx * measurex / pulsex
The relationship measurex/pulsex must be have a value between 0.00935 and 1.
pulsex Long Retentive RW - 1÷999999 st_ipolar = 0,
st_prsonx = 0,
st_stillx = 1
Number of pulses for calculating the conversion factor between primary pulses and units of measure for X axis
Indicates the number of pulses that will generate the bidirectional transducer to get a movement of measurex. This parameter is used to calculate the conversion factor between primary pulses and units of measure.
positx = encoderx * measurex / pulsex
The relationship measurex/pulsex must be a value between 0.00935 and 1.
decptx Byte Retentive RW - 0÷3 st_ipolar = 0,
st_prsonx = 0,
st_stillx = 1
Choice of the unit of measurement of the speed of the X axis
The speed unit depends on the unitvelx and decptx parameters. Through decptx determines whether setting the values of speed in multiples of the fundamental units Um.
For example, if the fundamental unit of measure Um=mm, and unitvel=1 you get the speed indicator in the vel variable in:
mm/s (with decpt = 0),
cm/s (with decpt = 1),
dm/s (with decpt = 2),
m/s (with decpt = 3).
unitvelx Byte Retentive RW - 0÷1 st_ipolar = 0,
st_prsonx = 0,
st_stillx = 1
The time unit for the speed calculation
Defines the speed unit:
0: Um/min,
1: Um/sec.
maxposx Long Retentive RW Um -999999÷999999 st_stillx=1 Maximum quota reached by the X axis
Defines the maximum quota reached by the X axis: the set value is considered also as an upper limit for the introduction of quotas of program.
minposx Long Retentive RW Um -999999÷999999 st_stillx=1 Minimum quota reached by the X axis
Defines the minimum quota reached by the X axis: the set value is considered also as the lower limit for the introduction of quotas of program.
prsposx Long Retentive RW Um minpos÷maxpos st_stillx=1,
st_prsonx=0
Homing offset X axis
Represents the homing offset that is the distance between the location of home and location where ends the homing function for X axis.
maxvelx Long Retentive RW Uv 0÷999999 st_ipolar = 0,
st_prsonx = 0,
st_stillx = 1
Maximum speed X axis
Defines the maximum speed of the X axis, or that is the speed assumed when the output voltage is ± 10V. The input value is measured in the units that are set using the unitvelx parameter.
prsvelx Long Retentive RW Uv 0÷maxvelx st_stillx=1,
st_prsonx=0
Speed for the search of the activation for X axis enable digital input
Speed to search the digital input is activated by enabling. The input value is measured in the units that are set using the unitvel. parameter
sprsvelx Long Retentive RW Uv 0÷maxvelx st_stillx=1,
st_prsonx=0
Speed used for the search the X axis home position
Defines the speed used to search up the location of home. This can be given by the input of zero of the bi-directional counter or from the disable of enable digital input (depends on the value of the prsmodex parameter). The input value is measured in the units that are set using the unitvelx parameter.
tollx Long Retentive RW Um -999999÷999999 - X axis tolerance
Define a tolerance band around the positioning quotas. When the placement ends within this band then is placed to 1 the st_tollx state. Is there a time of check to ensure that the axis has assumed a stable position within the range. This time is expressed by the toldlyx parameter.
maxfollerrx Long Retentive RW Primary pulses 0÷2147483648 - Maximum following error X for axis
Defines the maximum acceptable deviation between the theoretical position and the current position of the X axis. It is used for the management of st_follerx.
mxrlvelx Long Retentive RW Uv 0÷maxvelx - Maximum speed X axis in interpolation
In the case of placements with interpolation, defines the maximum speed reached by the X axis.
rampmodex Byte Retentive RW - 0÷1 - Choice between acceleration ramps and deceleration for the X axis
Used when choosing between equal acceleration and deceleration ramps (usage of taccdecx parameter) or differentiated (usage of two taccx and tdecx parameters).
0: equal ramp,
1: differentiated ramps.
:info: Note: if st_stillx=1 the writing is always enabled, otherwise the value is processed only if the new acceleration and deceleration time can reach the pre-set quota.
ramptypex Byte Retentive RW - 0÷3 st_stillx=1 Ramp type X axis
Defines the ramp type to execute for X axis:
0: trapezoidal acceleration and deceleration,
1: acceleration and deceleration of epicycloidal type,
2: trapezoidal acceleration and epicycloidal deceleration type,
3: epicycloidal acceleration and trapezoidal deceleration.
Description of epicycloidal motion
The epicycloidal motion (ramptypex=1) is used to move the axes without sudden variations of speed. The time of positioning of an axis moved by trapezoidal ramps will be less, but the mechanical wear increases.
For comparison shows the difference of the time of acceleration in the two cases with constant maximum gradient acceleration (deceleration ramp behavior is the same).

Epicycloidal movement has the ability to behave in different ways in the event of a reduction in profile (rtypex) and in the case of stop during the acceleration ramp (stoptx).
taccdecx Word Retentive RW hundredths of a second 0÷999 st_ipolar = 0,
st_prsonx = 0,
st_stillx = 1
Acceleration and deceleration time X axis
Is the time it takes to go from speed 0 to maximum speed (maxvelx) and vice versa; the parameter is used if rampmodex = 0.
Change ramp time in motion
When positioning can be varied acceleration and deceleration times. For example, the device can start a placement with a long ramp and, reach the target speed, is changed the deceleration time and executed a speed change with a very long ramp.
For special applications and with trapezoidal ramps, the time can be changed even during a speed change, in this case, the new time is used immediately.
Writing to acceleration and deceleration parameters is always enabled but the new value will be used only if the generator profile can reach the location set. Otherwise, the new value will be put into execution to the next positioning.
taccx Word Retentive RW hundredths of a second 0÷999 - Acceleration time X axis
Is the time to go from 0 speed to maximum speed. Is used when rampmodex=1.
Moving ramp time change
When positioning can be varied acceleration and deceleration times. For example, the device can start a placement with a very long ramp and, reach the target speed, is changed the deceleration time and execute a speed change gearbox with very long ramp ramp.
For special applications and with trapezoidal ramps, the time can be changed even during a change in speed, in this case, the new time is used immediately.
The writing to acceleration and deceleration parameters is always enabled but the new value will be used only if the generator listing can reach the location set. Otherwise, the new value will be put into execution the next positioning.
tdecx Word Retentive RW hundredths of a second 0÷999 - Deceleration time X axis
Is the time to go from maximum speed to 0 speed. Is used when rampmodex=1.
Moving ramp time change
When positioning can be varied acceleration and deceleration times. For example, the device can start a placement with a very long ramp and, reach the target speed, is changed the deceleration time and execute a speed change gearbox with very long ramp ramp.
For special applications and with trapezoidal ramps, the time can be changed even during a change in speed, in this case, the new time is used immediately.
The writing to acceleration and deceleration parameters is always enabled but the new value will be used only if the generator listing can reach the location set. Otherwise, the new value will be put into execution the next positioning.
rtypex Byte Retentive RW - 0÷1 ramptypex=1 Profile reduction type X axis
This parameter indicates the behavior of the profile generator in the case of positioning with epicycloidal ramps in conditions of not reached of the constant speed. The behavior is:
0: the acceleration and deceleration times remain those already calculated and is decreased proportionally speed,
1: acceleration, deceleration times and the speed are decreased.


With the rtypex = 0 parameter extend considerably the time needed to placements small. If the parameter is set to 1 you have a short time in case of short placements, but keeping the constant gradient you will lose the benefits of using an epicycloidal ramp.
stoptx Byte Retentive RW - 0÷1 ramptypex=1 Stop mode X axis
In case you are using epicycloidal ramps and we should curb the X axis during acceleration ramp with the STOPX command you can choose whether to complete the ramp or interrupt. This option will change the stoptx parameter:
0: the acceleration ramp is completed, and then it starts the deceleration ramp,
1: the acceleration ramp stops and start the deceleration ramp of epicycloidal type.

tinvx Word Retentive RW hundredths of a second 0÷999 - Late for reversing the direction of X axis
Is a delay time introduced in the case of reversals of direction. Is used to avoid mechanical stress caused by too rapid reversals.
toldlyx Word Retentive RW hundredths of a second 0÷999 - Tolerance signalling delay X axis
Defines the time between the arrival of the axis in the tolerance range and its status report (st_tollx).
pgainx Word Retentive RW - 0÷32767 - Proportional gain X axis
Is the coefficient that allows you to change the amount of proportional in PID controller. Is placed in thousandths (therefore inserting 1000 the coefficient will be equal to 1).
feedfwx Word Retentive RW - 0÷32767 - Coefficient of feed forward X axis
Is the percentage coefficient that, multiplied by the theoretical speed, raises the portion of feed forward control output. The value is entered in tenths (therefore inserting 1000 the percentage will be 100.0%).
integtx Word Retentive RW milliseconds 0÷32767 - Integration time of following error X axis
Is the parameter that allows you to change the scale of the action integral PID controller PID.
derivtx Word Retentive RW milliseconds 0÷32767 - Time for calculation of derivative coefficient of the following error X axis
Is the parameter that allows you to change the amount of derivative action in PID controller.
prsmodex Byte Retentive RW - 0÷2 st_ipolar = 0,
st_prsonx=0,
st_stillx=1
Search mode of home position X axis
Select the search mode of the home position. Possible values are:
0: without zero input of bi-directional counter,
1: with zero input of bi-directional counter,
2: homing in current location without moving.
prsdirx Byte Retentive RW - 0÷1 st_prsonx=0 Direction of movement for seeking the home position X axis
Defines the direction of the first movement when searching the home position:
0: forward direction,
1: backward direction.
offsetx Word Retentive RW bit -32768÷32767 - Analog output offset X axis
Defines the value in bits of the correction concerning the analogue output to compensate for any drift in the system.
setposx Long Retentive RW Um minposx÷maxposx - Positioning quota X axis
Defines the quota of positioning to achieve the setvelx speed.
Setposx change in motion
In some applications you are prompted to define the target quota during the placement, based on certain events. This means you can write in the setposx parameter even with ongoing positioning.
Changing the quota is accepted only if the new location is accessible by the current direction of movement. In the case of using epicycloidal dimension change ramps is not accepted if st_decx=1 (if the axis is decelerating).
setvelx Long Retentive RW Uv 0÷maxvelx - X axis positioning speed
Sets the value of the positioning speed.
Setvelx change in motion
When positioning the axis speed can be changed without affecting the location to reach. This operation can also be done in several places of the same positioning simply by changing the setvelx parameter. The speed change is always available except during the deceleration ramp reported by a specific state (st_decx = 1).

:important: Attention:
the value is altered if you tell a homing with search function prsmodex = 0 or 1
voutx Byte 0 RW tenths of a Volt -100÷100 st_init=1,
st_calx=1,
st_emrgx = 0
Output voltage X axis
Typically indicates the voltage value provided by analog output, during the calibration phase can be modified to set a fixed value at exit.
velx Long 0 R Uv 0÷maxvelx - X axis speed
Is the value of the instantaneous speed of X axis. The update is executed every 250 ms.
The speed unit depends on the unitvelx and decptx parameters.
frqx Long 0 RW Hz - - Input signal frequency X axis
It's the frequency value of the input signals on the bi-directional counter. The update is executed every 250 ms.
posit Long Retentive RW Um minpos÷maxpos st_init=1 Current position in units of measurement
Is the value of the instantaneous position of the axis.
positx = encoderx * measurex / pulsex
Change current location in motion
When positioning you can change the value of the current positx position. This function is usually used when a device must, under special conditions, continue a speed profile for a very long time, that exceeds the time axis takes to reach the quota limit (maxposx or minposx).
encoderx Long Retentive RW Primary pulses st_init=1 - Current position X axis in primary pulses
Expresses the current position in the primary pulses.
follerrx Long 0 R Primary pulses - - X axis following error
It's the instantaneous value of the following error.
ffwdregx Long 0 R bit - - Output value feed forward X axis
It's the instantaneous value of the feed forward output in PID controller.
propregx Long 0 R bit - - Proportional output value X axis
It's the instantaneous value of the proportional output in PID controller.
intregx Long 0 R bit - - Integral output value X axis
It's the instantaneous value of the integral PID controller output.
derregx Long 0 R bit - - Derivative output value X axis
Is the instantaneous value of the derivative in PID controller output.
deltax Long 0 RW Um -999999÷999999 - Variation of the current position of the X axis to use the DELCNT command
Is the value that is added to your current position when a DELCNTX command is sent.
errcodex Byte 0 R - 0÷100 - Error identification code X axis
Indicates the type of error intervened in the system. When st_errorx = 1 is present on the errcodex variable and the type of error intervened in the errvaluex variable is an indication of the cause of the error. If the device goes wrong, to start work you have to clear the st_errorx status through the RSERRX command.
errvaluex Byte 0 R - 0÷100 - Identifying code of the cause of the error X axis
Indicates the cause of the error in the system. The code is valid only if st_error = 1.
wrncodex Byte 0 R - 0÷100 - Identification code warning X axis
Indicates the type of warning in the system. The st_warningx state indicates a minor event that guarantees the operation of the device.
When st_warningx is equal to 1, it's present on the wrncodex variable the type of warning intervened and in the wrnvaluex variable an indication as to the cause of the warning. To clear the st_warningx status must be send the RSWRNX command.
wrnvaluex Byte 0 R - 0÷100 - Identification code of the cause of the warning X axis
Indicates the cause of the warning in the system.

ATTENTION: The last letter of the name of the variable takes the value of the axis name.

See section X axis parameters

See section X axis parameters

Name Default value Description
st_init 0 Initialization state
Reporting of device initialized:
0: device is not initialized,
1: device initialized
st_ipolar 0 Interpolation in progress status
Interpolation in progress:
0: interpolation not in progress,
1: interpolation in progress
st_rvel 0 State of speed reduction in interpolation
When this flag is 1, indicates that there has been a reduction in speed of interpolation to retract the axis speed within the limits set by the mxrlvelASSE parameters. The state remains active at least for 200 msec.
st_undsp 0 Segment in interpolation executed without reach the target speed
When this flag is to 1, indicates that the segment was executed without reaching the set speed.
st_error 0 There is an error
Indicates the error state of the device, to recognize the type of error you must refer to errcode and errvalue variables:
0: error not present,
1: error present
st_warning 0 There is a warning
Indicates the warning state of the device, to recognize the type of warning you must refer to wrncode and wrnalue variables:
0: warning not present,
1: warning present
st_out0X 0 Output OUT0X state
Indicates the output status OUT0X (where X=1÷4):
0: disabled output,
1: activated output.
Name Default value Description
st_emrgx 0 Emergency X axis state
Reporting of X axis in emergency:
0: X axis not in emergency,
1: X axis in emergency
st_tollx 0 Tolerance X axis state
Reporting of X axis in tolerance than the placement quota set. Signaling axis in tolerance may be delayed through toldlyx parameter
0: X axis not in tolerance,
1: X axis in tolerance
st_prsokx 0 Outcome of the X axis homing function
This state indicates whether the homing function for the X axis has been successfully concluded. The values are:
0: function not executed or not properly completed,
1: function executed and properly completed.
st_stillx 1 State of X axis movement
Reporting of X axis stopped:
0: axis moving,
1: axis stopped
st_prsonx 0 Homing function X axis state
Reporting of homing function X axis in progress:
0: function not in progress,
1: function in progress
st_movdirx 0 Direction of X axis movement
Indication of the direction of X axis movement:
0: forward,
1: backward
:info:
Note:
When the axis is stopped the status indicates the direction of the last entry executed.
st_looponx 0 Space reaction X axis activation
Reporting of X axis in space reaction:
0: axis not in space reaction,
1: axis in space reaction
st_follerx 0 Following error X axis state
Reportin of folowing error X axis state. This state when switching from 0 to 1, remains the same for a minimum of 500 ms.
0: axis not in following error,
1: axis in following error
st_regoffx 0 Disabling update of X axis analog output
State reporting if the upgrade of analog output is disabled
0: the calibration is enabled,
1: the calibration is disable.
st_calx 0 Calibration status
Reporting of device in the X axis calibration (the output voltage can be adjusted):
0: voltage generator disable,
1: voltage generator enable
st_cntlockx Retentive Update X axis status position disabled
Update reporting position X axis blocked:
0: update position enabled,
1: update position disabled
st_cntrevx Retentive Flip X axis position update state
Invert X axis location update report:
0: update position not reversed,
1: update position inverted
st_accx 0 X axis acceleration state
Reporting of X axis acceleration phase:
0: axis not in acceleration,
1: axis in acceleration
st_decx 0 X axis deceleration state\\Reporting of X axis when slowing down:
0: axis does not decelerating,
1: axis decelerating
st_vconstx 0 State of X axis constant speed
Reports that the speed profile generator is performing a constant speed movement:
0: axis not in constant speed,
1: axis in constant speed
st_intx 0 Activation of a digital input for X axis stopping
Indicates the status of the digital input for interruption:
0: digital input for stopping off,
1: digital input for stopping on
st_errorx 0 There is an X axis error
Indicates the error status of the device, to recognize the type of error you must refer to errcodex to errvaluex variables:
0: error not present,
1: error present
st_warningx 0 There is of a X axis warning
Indicates the warning state of the device, to recognize the type of warning you must refer to wrncodex and wrnaluex variables:
0: warning not present,
1: warning present

ATTENTION: The last letter of the name of the variable takes the value of the axis name.

See section X axis states

See section X axis states

Name Conditions Description
INIT st_init=0 Device initialization
Device initialization command.
If the device is not initialized does not execute the calculations related to the axis and then sits is idle. Activates the st_init state.
RSERR - Reset the error state
Reset the st_error state.
RSWRN - Reset the thw warning state
Reset the st_warning state.
READSTEP - Read the steps
Allows the steps reading numstep starting from the selected step in stepin.
:info:
Note:
Memory steps is not retentive | | WRITESTEP | - |
Write the steps
Allows the steps writing numstep starting from the selected step in stepin.
:info:
Note:
Memory steps is not retentive
STARTI st_init = 1,
st_ipolar = 0
Start command of single interpolation
Linearly interpolates quotas described in setposx, setposy and setposz depending on the number of axes that are enabled.
Interpolation speed is setveli.
STARTPRG st_init = 1,
st_ipolar = 0,
0⇐stepbeg<30000,
0<stepend<30000
Start command of interpolations program
Start positioning coordinates set by interpolation from step stepbeg (including) up to stepend (including). The speed interpolation is setveli.
STOPI st_init = 1,
st_ipolar = 0
Interruption interpolation
Stops any ongoing interpolation position in progress. The stopped of the axis are made by deceleration ramp and axes remain in reaction to space.
Name Conditions Description
EMRGX st_init=1 Emergency command
Put in emergency the X axis interrupting, without the deceleration ramp, any ongoing positioning. It also disabled the reaction of axis space.
As a result st_emrgx is set to 1, in this state it will not be possible to move the axis.
RESUMEX st_init=1,
st_emrgx=1
Recovery from X axis emergency condition
Recovery from X axis emergency condition, space reaction is reenabled if disabled.
The acquisition of the STARTX command, the axis resumes the placement.
STARTX st_init=1,
st_regoffx=0,
st_emrgx=0,
st_stillx=1,
st_ipolar=0,
st_calx=0,
st_prsonx=0
Beginning of the X axis positioning
Controls the position of the X axis to the quota setposx and speed setvelx, the placement will run following to the acceleration and deceleration ramps that were set using taccdecx parameter or through the taccx and tdecx parameters (in the case of differentiated ramps). The type of used ramp (trapezoid or epicycloid) is choosing throught the ramptypex psrameter.
STOPX st_init=1,
st_regoffx=0,
st_emrgx=0,
st_stillx=0,
st_ipolar=0
Interruption of the X axis positioning
Stops any ongoing X axis positioning. The axis stop take place following the programmed deceleration ramp tdecx. The axis remains in reaction to space.
LOOPONX st_init=1 Enabling of the X axis space reaction
Enables the X axis reaction space: accordingly st_looponx is set to 1 and the axis is moved using all the functions of the PID controller.
The analog output sharpen every external action that attempts to move the axis from the reached position (drift, user, …). This action resets any following error (follerrx).
LOOPOFFX st_init=1 Disabling the X axis space reaction
Disables the X axis reaction space.
The st_looponx state is set to 0: in this state the axis accept anyeay the axis movement commands. A placement executed without the raction loop is comparable to a positioning run without proportional gain (is not guaranteed to arrive in position).
CNTLOCKX st_init=1 Disabling the X axis actual position update
Disables the updating of the current position. In this situation the possible displacement of the axis is not detected.
CNTUNLOCKX st_init=1 Enabling the X axis actual position update
Enable current location updating.
CNTREVX st_init=1 Reversal the X axis position update
Reverses the sign of the update location.
CNTDIRX st_init=1 Updating the X axis position not iverted
Turn a possible reversal of position update; the st_cntrev state is set to 0.
PRESETX st_init=1,
st_regoffx=0,
st_emrgx=0,
st_calx=0,
st_ipolar=0
Start X axis homing function
X axis homing function start with the manner set. If the process is already running, the command execute the reverse search.
activates the st_prsonx state and disable the st_prsokx state.
CALONX st_init=1,
st_ipolar=0,
st_prsonx=0,
st_stillx=1
Enable X axis calibration state
The X axis analog outputis used as an analog voltage generator; in this case you cannot use it to execute a placement. The output value is settable with voutx parameter.
CALOFFX st_init=1,
st_ipolar=0,
st_prsonx=0,
st_stillx=1,
st_calx=1
Disable the X axis calibration state
The X axis analog output is not use as voltage generator, so it can be used for managing placements.
MANFWX st_init=1,
st_regoffx=0,
st_prsonx=0,
st_stillx=1,
st_calx=0,
st_emrgx=0,
st_ipolar=0,
st_ovrmxpx=0
Manual command of X axis forward movement (jog)
Controls the manual forward positioning (towards maxposx) at the X axis set speed. If the current position exceeds maxposx, the axis will not move.
MANBW st_init=1,
st_regoffx=0,
st_prsonx=0,
st_stillx=1,
st_calx=0,
st_emrgx=0,
st_ipolar=0,
st_undmnpx=0
Manual command of X axis backward movement (jog)
Controls the manual backward positioning (towards minposx) at the X axis set speed. If the current position is less minpoxs, the axis will not move.
REGOFFX st_init=1,
st_stillx=1
Disabling the X axis device intervention
Disable X axis adjustment and updating of the analog output, and all movement commands.
REGONX st_init=1,
st_regoffx=1
Enabling the X axis device intervention
X axis adjustment and updating of the analog output, and all movement commands.
DELCNTX st_initx=1,
st_calx=0,
st_prsonx=0
Positx editing command a value equal to deltax
The current position (positx) is modified by algebraically adding the value specified in the deltax variable. This command can be given, except in the case that, with the moving axis, the command would reverse the direction. NIn the case of using epicycolidal deceleration ramps you cannot give the command if st_decx=1.
RSERRXst_errorx=1Reset X axis error state
Reset the st_errorx state.
RSWRNX st_warningx=1 Reset the X axis warning state
Reset the st_warningx state.
RSPRSOKX st_init=1,
st_prsonx=0
Reset the X axis homing OK state
Reset the st_prsokx state.

ATTENTION: The last letter of the name of the variable takes the value of the axis name.

See section X axis commands.

See section X axis commands.

  • Last modified: 2020/07/13 14:56