Closed prjemian closed 1 year ago
The current default is 0.01 step size. Too small for most instrument axes, only OK for simple testing.
Might be too much resolution for the monochromator code, check on that
Instead, change the MRES value from 0.01 to 0.0001 in motorSim.substitutions
That's easy since the customize_xxx.sh
script rewrites that file anyway.
Still, with MRES=1.0e-5, the motor stops moving positive at 0.32, although HLM=32000 (and DLM=32000, too).
dbpr ioc:m1, 9
ACCL: 0.2 ACKS: NO_ALARM ACKT: YES ADEL: 0
ALST: 0 ASG : ASP : PTR (nil) ATHM: 0
BACC: 0.2 BDST: 0
BKLNK: ELL 10 [0x55ddd6b17180 .. 0x55ddd6b185c8] BKPT: 00
BVEL: 1 CARD: 0 CBAK: PTR 0x55ddd7022880
CDIR: 1 CNEN: Disable DCOF: 0 DESC: motor 1
DHLM: 32000 DIFF: 0.17045 DINP: CONSTANT DIR : Pos
DISA: 0 DISP: 0 DISS: NO_ALARM DISV: 1
DLLM: -32000 DLY : 0 DMOV: 1 DOL : CONSTANT
DPVT: PTR 0x55ddd70228b0 DRBV: 0.32
DSET: PTR 0x7fcfcb3b35e0 DTYP: asynMotor DVAL: 0.49045
EGU : degrees ERES: 1.0e-05 EVNT: FLNK: CONSTANT
FOF : 0 FOFF: Variable FRAC: 1 HHSV: NO_ALARM
HIGH: 0 HIHI: 0 HLM : 32000 HLS : 1
HLSV: NO_ALARM HOMF: 0 HOMR: 0 HOPR: 0
HSV : NO_ALARM HVEL: 0.1 ICOF: 0 IGSET: 0
INIT: JAR : 5 JOGF: 0 JOGR: 0
JVEL: 1 LCNT: 0 LDVL: 0.49045 LLM : -32000
LLS : 0 LLSV: NO_ALARM LOCK: NO LOLO: 0
LOPR: 0 LOW : 0 LRLV: 0 LRVL: 49045
LSET: PTR 0x55ddd6d264a0 LSPG: Go LSV : NO_ALARM
LVAL: 0.49045 LVIO: 0 MDEL: 0 MIP : 0
MISS: 0 MLIS: ELL 50 [0x7fcfac090950 .. 0x7fcf746fc1a8]
MLOK: 10 04 e8 d6 dd 55 00 00 MLST: 0 MMAP: 0
MOVN: 0 MRES: 1.0e-05 MSTA: 6 NAME: ioc:m1
NMAP: 0 NSEV: NO_ALARM NSTA: NO_ALARM NTM : YES
NTMF: 2 OFF : 0 OMSL: supervisory
OUT : INST_IO @asyn(motorSim0,0) PACT: 0 PCOF: 0
PHAS: 0 PINI: NO POST: PP : 0
PPN : PTR (nil) PPNR: PTR (nil) PREC: 5 PREM:
PRIO: LOW PROC: 0 PUTF: 0 RBV : 0.32
RCNT: 0 RDBD: 1.0e-05 RDBL: CONSTANT
RDES: PTR 0x55ddd66475a0 RDIF: 17045 REP : 32000
RHLS: 1 RINP: CONSTANT RLLS: 0 RLNK: CONSTANT
RLV : 0 RMOD: Default RMP : 32000 RPRO: 0
RRBV: 32000 RRES: 0 RSET: PTR 0x7fcfcb3b3400
RTRY: 10 RVAL: 49045 RVEL: 0 S : 500
SBAK: 500 SBAS: 50 SCAN: Passive
SDIS: DB_LINK ioc:m1_able.VAL NPP NMS SET : Use SEVR: NO_ALARM
SMAX: 0 SPDB: 0 SPMG: Go SPVT: PTR (nil)
SREV: 200 SSET: 0 STAT: NO_ALARM STOO: CONSTANT
STOP: 0 STUP: OFF SUSE: 0 SYNC: 0
TDIR: 0 TIME: 2021-02-08 08:27:34.910635858 TPRO: 0
TSE : 0 TSEL: CONSTANT TWF : 0 TWR : 0
TWV : 1 UDF : 0 UDFS: INVALID UEIP: No
UREV: 0.002 URIP: No VAL : 0.49045 VBAS: 0.1
VELO: 1 VERS: 7.2 VMAX: 0 VOF : 0
The problem is in xxx/iocBoot/iocxxx/examples/motors.iocsh
where LOW_LIM=-32000
is defined but there is no definition for HIGH_LIM
. Confirmed that addition will fix the problem with the limit switch triggering at unexpectedly low values.
No, the problem remains. (The test in the report above has MRES=0.01.) When test was repeated with MRES=1.0e-5, the HLS was triggered and motion stopped at RBV=0.32.
Must wait for resulution in motor module
This issue was not affected by the fix in #24.
Can it go to 10000? Even 200000 (2e5), but check the upper and lower limits, HLM, LLM. This will give 5 digits of precision. That's needed to simulate crystallography and monochromators.