prjemian / epics-docker

Provide EPICS IOCs in docker images
9 stars 4 forks source link

custom synApps IOC should set motor SREV=8000 for all motors #23

Closed prjemian closed 1 year ago

prjemian commented 3 years ago

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.

prjemian commented 3 years ago

The current default is 0.01 step size. Too small for most instrument axes, only OK for simple testing.

prjemian commented 3 years ago

Might be too much resolution for the monochromator code, check on that

prjemian commented 3 years ago

Instead, change the MRES value from 0.01 to 0.0001 in motorSim.substitutions

prjemian commented 3 years ago

That's easy since the customize_xxx.sh script rewrites that file anyway.

prjemian commented 3 years ago

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             
prjemian commented 3 years ago

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.

prjemian commented 3 years ago

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.

prjemian commented 3 years ago

Must wait for resulution in motor module

prjemian commented 3 years ago

This issue was not affected by the fix in #24.