The monitoring function of the position deviations between axes allows any deviations between the independent axes (real, imaginary, or external setpoint) of the module to be monitored.
This function can be instantiated several times with lists of different axes.
The function will be ensured by 3 opcodes:
Enables monitoring to start by calling a function TRF_RECIPE (opcode 26200) on channel 0.
When the function is called, the module takes a snapshot of the different positions of the axes to be monitored and then:
-
If the 2 axes have a movement differing by more than the alarm threshold, the module triggers a warning on the two faulty axes.
-
If the 2 axes have a movement differing by more than the alarm threshold, the module triggers a fault on the two faulty axes, stops all of the list axes and triggers a warning on the non-faulty axes.
Object
|
Type
|
Explanation
|
Comment
|
%MF r.m.0.15
|
Floating point
|
Instance number
|
Parameter of the TRF_RECIPE, converted to an integer by the module
|
%MF i
|
Floating point
|
Alarm threshold
|
In position units of the reference axis
|
%MF i+2
|
Floating point
|
Default threshold
|
In position units of the reference axis
|
%MW i+4
|
Word
|
Reference axis
|
|
%MW i+5
|
Word
|
Axis 1
|
|
%MF i+6
|
Floating point
|
Axis 1 numerator
|
|
%MF i+8
|
Floating point
|
Axis 1 denominator
|
|
.. .. ..
|
..
|
..
|
|
%MW i+5+5(N-1)
|
Word
|
Axis N
|
|
%MF i+5+5(N-1)+1
|
Floating point
|
Axis N numerator
|
|
%MF i+5+5(N-1)+3
|
Floating point
|
Axis N denominator
|
|
Example:
Monitoring of axes 8, 12 and 7:
-
Axis 8 is configured in mm
-
Axis 12 is configured in °. It is set to 4° when axis 8 is set to 1 mm.
-
Axis 7 is configured in rotations. It is set to 1 rotation when axis 8 is set to 10 mm.
The alarm threshold is 4 mm.
The default threshold is 10 mm.
IF %MW104.0.0: X3 = 0 THEN (* no TRF_RECIPE in progress *)
%MW104.0.10:= 26200; (* Action 26200 = GAP_CONTROL *)
%MF104.0.15:= 1.0; (* Instance number *
%MF150:=4.0; (* Alarm threshold *)
%MF152:= 10.0; (* Default threshold *)
%MW154:= 8; (* Reference axis *)
%MW155:= 12; (* Second axis to monitor *)
%MF156:= 4.0.0; (* Numerator of the ratio between the 2nd axis and the reference axis *)
%MF158:= 1.0; (* Denominator of the ratio between the 2nd axis and the reference axis *)
%MW160:=7.0; (* Third axis to monitor *)
%MF161:= 1.0; (* Numerator of the ratio between the 3rd axis and the reference axis *)
%MF163:= 10.0; (* Denominator of the ratio between the 3rd axis and the reference axis *)
TRF_RECIPE %CH 104.0 (15,150);
END_IF;
An alarm will be triggered if axis 8 moves 5 mm when axis 12 has only moved 4°.
A fault will be triggered if axis 8 moves 20 mm when axis 12 has only moved 4°.
Refusal of the TRF_ RECIPE 26200: error on the word %MWr.m.0.3
-
The size of the data (first parameter of TRF_RECIPE ) is incorrect => error code 23
-
Invalid instance number = > error code 10. Instance number must be between 0 and 7 or a maximum of 8 simultaneous instances.
-
The instance is already active => error code
-
The alarm threshold is over the default threshold => error code 65
-
One of the thresholds is negative => error code 66
-
One of the axes to be monitored corresponds to an axis that has not been configured as a real, imaginary or external setpoint axis => error code 37
-
One of the denominators is zero => error code 67.
Rereading of the Function Parameters
Enables monitoring parameters to be reread for a given instance, by calling a function TRF_RECIPE (opcode 16200) on channel 0.
The result of the function can be read on the universal %M.
Object
|
Type
|
Explanation
|
Comment
|
%MF i
|
Floating point
|
Alarm threshold
|
In position units of the reference axis
|
%MF i+2
|
Floating point
|
Default threshold
|
In position units of the reference axis
|
%MW i+4
|
Word
|
Reference axis
|
|
%MW i+5
|
Word
|
Axis 1
|
|
%MF i+6
|
Floating point
|
Axis 1 numerator
|
|
%MF i+8
|
Floating point
|
Axis 1 denominator
|
|
.. .. ..
|
..
|
..
|
|
%MW i+5+5(N-1)
|
Word
|
Axis N
|
|
%MF i+5+5(N-1)+1
|
Floating point
|
Axis N numerator
|
|
%MF i+5+5(N-1)+3
|
Floating point
|
Axis N denominator
|
|
Example:
IF %MW104.0.0: X3 = 0 THEN (* No TRF_RECIPE in progress *)
%MW104.0.10:= 16200; (* Action 26200 = GAP_CONTROL *)
%MF104.0.15:= 1.0 (* Instance to be reread*)
TRF_RECIPE %CH 104.0 (15,150);
END_IF;
Refusal of the TRF_ RECIPE 16200: error on the word %MWr.m.0.3
-
The size of the data (first parameter of TRF_RECIPE ) is incorrect => error code 23
-
Invalid instance number = > error code 10. Instance number must be between 0 and 7 or a maximum of 8 simultaneous instances.
-
The instance is not active => error code 68.
Enables monitoring of a given instance to be deleted, by calling a function TRF_RECIPE (opcode 14200) on channel 0.
Example:
IF %MW104.0.0: X3 = 0 THEN (* no TRF_RECIPE in progress *)
%MW104.0.10:= 14200; (* Action 14200 = GAP_CONTROL *)
%MF104.0.15:= 1.0 (* Instance to be deleted*)
TRF_RECIPE %CH 104.0 (0,0);
END_IF;
Refusal of the TRF_ RECIPE 14200: error on the word %MWr.m.0.3
Check of the Monitoring Activity
Allows a check to be made on whether an instance is active or inactive, by calling a function TRF_RECIPE (opcode 16201) on channel 0.
The result of the function can be read on a universal %MW.
TRF_RECIPE %CH4.0(1,150)
with 1= length and 150 = offset return.
Each bit in the first byte is the image of the activity of the corresponding instance (example: Bit 0 => Instance 0, etc....)
-
1=> instance active,
-
0=> instance inactive.
Example: Is the instance active?
IF %M9 AND NOT %MW4.0:X3 THEN
%MW4.0.10:=16201;
TRF_RECIPE %CH4.0(1,150);
RESET %M9;
END_IF;
The result can be accessed on the %MW150 word.
If %MW150 = 3 the 0 and 1 instances are active.
Refusal:error on the word %MWr.m,i,3:
-
If the length to be read is not 1==> Error code 22,
-
If the length is greater than the number of words (%MW ) configured ==> Error code 19.