Bugfix for movTimeoutWatchdog
Update of README.md
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
record(asyn,"$(P)$(NAME)")
|
||||
record(asyn,"$(P)")
|
||||
{
|
||||
field(DTYP,"asynRecordDevice")
|
||||
field(PORT,"$(PORT)")
|
||||
|
@ -10,6 +10,20 @@
|
||||
# - MRES: Motor record resolution. See the README.md for a detailed discussion
|
||||
# - EGU: Engineering units. In case of a rotary axis, this is "degree", in
|
||||
# case of a linear axis this is "mm".
|
||||
# - RTRY: The maximum number of times the motor record will try again to move to
|
||||
# the desired position. When the retry limit is reached, the motor record will
|
||||
# declare the motion finished. If the desired position was not reached, the
|
||||
# field MISS will be set to 1 and NICOS will emit a warning "Did not reach
|
||||
# target position". If this value is set to 0, the retry deadband is never
|
||||
# applied and therefore MISS will always be 0. The error message "Did not reach
|
||||
# target position" will therefore never appear.
|
||||
# - RDBD: Retry deadband: When the motor has finished a complete motion,
|
||||
# possibly including backlash takeout, the motor record will compare its current
|
||||
# position with the desired position. If the magnitude of the difference is
|
||||
# greater than RDBD, the motor will try again, as if the user had requested a
|
||||
# move from the now current position to the desired position. Only a limited
|
||||
# number of retries will be performed (see RTRY). If the given value is smaller
|
||||
# than MRES, it is set to MRES.
|
||||
record(motor,"$(INSTR)$(M)")
|
||||
{
|
||||
field(DESC,"$(DESC=$(M))")
|
||||
@ -19,9 +33,29 @@ record(motor,"$(INSTR)$(M)")
|
||||
field(MRES,"$(MRES)")
|
||||
field(EGU,"$(EGU)")
|
||||
field(INIT,"")
|
||||
field(PINI, "NO")
|
||||
field(PINI,"NO")
|
||||
field(TWV,"1")
|
||||
field(RTRY, "0")
|
||||
field(RTRY,"0")
|
||||
field(RDBD,"0")
|
||||
field(BDST,"0")
|
||||
field(RMOD,"3") # Retry mode 3 ("In-Position"): This suppresses any retries from the motor record.
|
||||
}
|
||||
|
||||
# This PV allows force-stopping the motor record from within the driver by setting
|
||||
# the motorForceStop_ value in the parameter library to 1. It should be reset to 0 by the driver afterwards.
|
||||
# The implementation strategy is taken from https://epics.anl.gov/tech-talk/2022/msg00464.php.
|
||||
# This record is coupled to the parameter library via motorForceStop_ -> MOTOR_FORCE_STOP.
|
||||
record(longin, "$(INSTR)$(M):STOP_RBV")
|
||||
{
|
||||
field(DTYP, "asynInt32")
|
||||
field(INP, "@asyn($(CONTROLLER),$(AXIS)) MOTOR_FORCE_STOP")
|
||||
field(SCAN, "I/O Intr")
|
||||
field(FLNK, "$(INSTR)$(M):Stop2Field")
|
||||
}
|
||||
record(longout, "$(INSTR)$(M):Stop2Field") {
|
||||
field(DOL, "$(INSTR)$(M):STOP_RBV CP")
|
||||
field(OUT, "$(INSTR)$(M).STOP")
|
||||
field(OMSL, "closed_loop")
|
||||
}
|
||||
|
||||
# This record forwards the motor record resolution MRES to the parameter library
|
||||
@ -236,4 +270,4 @@ record(waveform, "$(INSTR)$(M):EncoderType") {
|
||||
field(FTVL, "CHAR")
|
||||
field(NELM, "80")
|
||||
field(SCAN, "I/O Intr")
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user