Hej again,
I think that there is a bug in the motorRecord:
The current code checks for an encoder present when the UEIP field is set to Yes.
When there is no encoder, it is reset to No.
But when a database is loaded with UEIP=Yes, and the encoder is not present,
the readback will be looking at the encoder value anyway.
I added a fix here:
<https://github.com/EuropeanSpallationSource/motor/tree/reset-ueip-if-no-encoder-present>
<https://github.com/epics-modules/motor/pull/180>
BR
/Torsten
> On 16 Nov 2021, at 21:34, Heinz Junkes <junkes at fhi-berlin.mpg.de> wrote:
>
> Hello Mark,
> yes, I have set UEIP to 0 and everything works with that.
> In the motor record I still have to look at it.
>
> At the moment I am happy that the FEL is running again and I went home.
> Heinz
>
>
>> On 16. Nov 2021, at 21:24, Mark L Rivers <rivers at cars.uchicago.edu> wrote:
>>
>> Hi Heinz,
>>
>> If you set UEIP=0 does it work OK?
>>
>> Did you look for where in the motor record it is testing UEIP without also testing the encoder present bit in MSTA? Has that logic changed?
>>
>> Mark
>>
>>
>> -----Original Message-----
>> From: Heinz Junkes <junkes at fhi-berlin.mpg.de>
>> Sent: Tuesday, November 16, 2021 2:17 PM
>> To: Torsten Bögershausen <torsten.bogershausen at ess.eu>
>> Cc: Mark L Rivers <rivers at cars.uchicago.edu>; EPICS Tech Talk <tech-talk at aps.anl.gov>
>> Subject: Re: Understanding Motor Record
>>
>> Hello Torsten and Mark,
>>
>> thank you for your prompt replies.
>>
>> In fact I had problems with two motors where UEIP was set to 1(Yes). Has always been like this ;-)
>>
>> According to the documentation, this should also work if MSTA indicates that no encoder is present.:
>>
>> Switch: nonzero value tells the record to read the encoder (if the hardware indicates an encoder is present) and to ignore the value read back from the hardware's step-count register.
>> The state of the UEIP, together with the MSTA encoder indicator, determine:
>>
>> • if the RRBV is set to either the feedback (REP) or the command (RMP) position.
>> • whether absolute or relative position commands are used.
>>
>>
>> epics@felgate:~$ caget FHIFEL:M12PH.MSTA
>> FHIFEL:M12PH.MSTA 3
>>
>> • DIRECTION: last raw direction; (0:Negative, 1:Positive)
>> • DONE: motion is complete.
>> • PLUS_LS: plus limit switch has been hit.
>> • HOMELS: state of the home limit switch.
>> • Unused
>> • POSITION: closed-loop position control is enabled.
>> • SLIP_STALL: Slip/Stall detected (eg. fatal following error)
>> • HOME: if at home position.
>> • PRESENT: encoder is present.
>> • PROBLEM: driver stopped polling, or hardware problem
>> • MOVING: non-zero velocity present.
>> • GAIN_SUPPORT: motor supports closed-loop position control.
>> • COMM_ERR: Controller communication error.
>> • MINUS_LS: minus limit switch has been hit.
>> • HOMED: the motor has been homed.
>>
>> This now seems to be behaving differently.
>>
>> Danke,
>> Heinz
>>
>>> On 16. Nov 2021, at 18:15, Torsten Bögershausen <torsten.bogershausen at ess.eu> wrote:
>>>
>>> Hej Mark and Heinz,
>>>
>>> If I command the motor to -10 mm,
>>> and it runs into the limit switch at -2.970
>>>
>>> The we see that .VAL stays at -10 mm, (where the motor should have gone)
>>> and .RBV is -2.970 (where the motor is)
>>>
>>> So the “correlation” is lost - on purpose.
>>> Thats my understanding.
>>>
>>> HTH
>>> /Torsten
>>>
>>>
>>>
>>>> On 16 Nov 2021, at 18:09, Mark L Rivers via Tech-talk <tech-talk at aps.anl.gov> wrote:
>>>>
>>>> Hi Heinz,
>>>>
>>>> It looks like you are using an encoder (UEIP=Yes), and your encoder readback (REP) is 0. When the motor record hits a limit switch I believe it sets the DVAL to the readback value.
>>>>
>>>> Mark
>>>>
>>>>
>>>> From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Heinz Junkes via Tech-talk <tech-talk at aps.anl.gov>
>>>> Sent: Tuesday, November 16, 2021 10:59 AM
>>>> To: EPICS Tech Talk <tech-talk at aps.anl.gov>
>>>> Subject: Understanding Motor Record
>>>>
>>>> I am having problems with Motor-Record right now.
>>>> I am using Epics 7 and the latest MotorRecord
>>>> (master: https://github.com/epics-modules/motor)
>>>>
>>>> When I reach a Limit - Switch, then there is no
>>>> correlation between RMP and DVAL/VAL anymore?
>>>>
>>>> RMP : 1361 vs. DVAL: 0 and VAL : 0 ??
>>>>
>>>> I'm using the same hardware as I have for 10 years (Oms MAXv), only
>>>> now I have Epics7 with the new motor-record in use.
>>>>
>>>> I also have the feeling that something with the conversion of the
>>>> EGU and the direction etc. does not fit.
>>>> But unfortunately can not specify yet because "somehow some is wrong”
>>>>
>>>> Danke Heinz
>>>>
>>>>> dbpr FHIFEL:M11PH,10
>>>> ACCL: 1 ACKS: NO_ALARM ACKT: YES ADEL: 0
>>>> ALST: 0 ASG : ASP : PTR 0x0 ATHM: 0
>>>> BACC: 1 BDST: 0 BKLNK: ELL 0 [0x0 .. 0x0]
>>>> BKPT: 00 BVEL: 4.5 CARD: 0 CBAK: PTR 0x15f9bf8
>>>> CDIR: 1 CNEN: Disable DCOF: 0
>>>> DESC: M1 Pinhole OMS_Z DHLM: 140 DIFF: 0
>>>> DINP: CONSTANT DIR : Pos DISA: 0 DISP: 0
>>>> DISS: NO_ALARM DISV: 1 DLLM: -140 DLY : 0
>>>> DMOV: 1 DOL : CONSTANT DPVT: PTR 0x15f9c18 DRBV: 0
>>>> DSET: PTR 0x462d34 DTYP: OMS MAXv DVAL: 0 EGU : mm
>>>> ERES: 1.171875e-04 EVNT: FLNK: CONSTANT FOF : 0
>>>> FOFF: Frozen FRAC: 1 HHSV: NO_ALARM HIGH: 0
>>>> HIHI: 0 HLM : 140 HLS : 1 HLSV: NO_ALARM
>>>> HOMF: 0 HOMR: 0 HOPR: 0 HSV : NO_ALARM
>>>> HVEL: 4.5 ICOF: 0 IGSET: 0 INIT:
>>>> JAR : 7.5 JOGF: 0 JOGR: 0 JVEL: 4.5
>>>> LCNT: 0 LDVL: 0 LLM : -140 LLS : 0
>>>> LLSV: NO_ALARM LOCK: NO LOLO: 0 LOPR: 0
>>>> LOW : 0 LRLV: 0 LRVL: 0 LSET: PTR 0x1548258
>>>> LSPG: Go LSV : NO_ALARM LVAL: 0 LVIO: 0
>>>> MDEL: 0 MIP : 0 MISS: 1
>>>> MLIS: ELL 148 [0x2190a58 .. 0x177254c8] MLOK: 01 54 f4 10 MLST: 0
>>>> MMAP: 0 MOVN: 0 MRES: 1.171875e-04 MSTA: 7
>>>> NAME: FHIFEL:M11PH NMAP: 0 NSEV: NO_ALARM NSTA: NO_ALARM
>>>> NTM : YES NTMF: 2 OFF : 0 OMSL: supervisory
>>>> OUT : VME_IO #C0 S2 @ PACT: 0 PCOF: 0
>>>> PHAS: 0 PINI: NO POST: PP : 0
>>>> PPN : PTR 0x0 PPNR: PTR 0x0 PREC: 3 PREM:
>>>> PRIO: LOW PROC: 0 PUTF: 0 RBV : 0
>>>> RCNT: 0 RDBD: 0.1 RDBL: CONSTANT RDES: PTR 0xcbd400
>>>> RDIF: 0 REP : 0 RHLS: 1 RINP: CONSTANT
>>>> RLLS: 0 RLNK: CONSTANT RLV : 0 RMOD: Default
>>>> RMP : 1361 RPRO: 0 RRBV: 0 RRES: 999.99
>>>> RSET: PTR 0x462f4c RSTM: NearZero RTRY: 5 RVAL: 0
>>>> RVEL: 0 S : 5 SBAK: 3 SBAS: 3
>>>> SCAN: Passive SDIS: CONSTANT SET : Use SEVR: NO_ALARM
>>>> SMAX: 12 SPDB: 0 SPMG: Go SPVT: PTR 0x0
>>>> SREV: 12800 SSET: 0 STAT: NO_ALARM STOO: CONSTANT
>>>> STOP: 0 STUP: OFF SUSE: 0 SYNC: 0
>>>> TDIR: 1 TIME: 2021-11-16 16:45:24.834573822 TPRO: 0
>>>> TSE : 0 TSEL: CONSTANT TWF : 0 TWR : 0
>>>> TWV : 1 UDF : 0 UDFS: INVALID UEIP: Yes
>>>> UREV: 1.5 URIP: No VAL : 0 VBAS: 4.5
>>>> VELO: 7.5 VERS: 7.2 VMAX: 18 VOF : 0
>>>
>>
>
- Replies:
- Re: Understanding Motor Record Kevin Peterson via Tech-talk
- References:
- Understanding Motor Record Heinz Junkes via Tech-talk
- Re: Understanding Motor Record Mark L Rivers via Tech-talk
- Re: Understanding Motor Record Torsten Bögershausen via Tech-talk
- Re: Understanding Motor Record Heinz Junkes via Tech-talk
- RE: Understanding Motor Record Mark L Rivers via Tech-talk
- Re: Understanding Motor Record Heinz Junkes via Tech-talk
- Navigate by Date:
- Prev:
Re: disk space / network monitor in iocStats? Miroslaw Dach via Tech-talk
- Next:
A problem with modbus reading floating point numbers 高振华 via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
<2021>
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Understanding Motor Record Heinz Junkes via Tech-talk
- Next:
Re: Understanding Motor Record Kevin Peterson via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
<2021>
2022
2023
2024
|