EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024  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  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: :tdir messages in ioc for Pmac
From: "Gofron, Kazimierz" <[email protected]>
To: 'Wayne Lewis' <[email protected]>, Mark Rivers <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Fri, 25 May 2018 18:05:12 +0000
Thanks Mark and Wayne,

I used the Mark's method by setting NTM field in the IOC itself. 
The problem is somewhat related to the fact that large Huber circles in diffractometer have big inertia, and low frequency (~6Hz) oscillations. The circles can not be driven 'hard', and when motion is completing the encoder reports bidirectional motion. What was suprising is that the 'Kill' should have disabled amplifier, but instead it resulted in motion to be completed, and then disabling amplifier. Effectively 'preprogrammed' movement.
Also because motor tuning is 'soft' (I130 small) the final position is ~10's of encoder counts off from requested position. Deadband tuning results in instabilities. This is only for large massive Huber circles, and smaller circles are finely behaving.

Kaz


-----Original Message-----
From: Wayne Lewis [mailto:[email protected]] 
Sent: Tuesday, May 22, 2018 3:56 PM
To: Mark Rivers
Cc: Gofron, Kazimierz; [email protected]
Subject: Re: :tdir messages in ioc for Pmac

Hi Kaz,

I've had success with fixing this problem on the Turbo PMAC using Mark's
method of setting NTM to zero.

FYI, the NSLS-II motor databases have the NTM field in the autosave
list, so you can make the change once via a caput/dbpf and it will
persist through an IOC reboot.

Wayne

On Tue, May 22, 2018 at 07:08:20PM +0000, Mark Rivers wrote:
> We have a similar problem with the Newport XPS.  The problem occurs because the encoder is indicating that the motor is moving in the "wrong" direction because of overshoot, etc. and the motor record then stops the motion.  IMHO this is a design error in the motor record, it should not stop the motion when it thinks there is a problem, that is the job of the driver or controller.
> 
> We work around the problem by setting the NTM field to 0 by adding the following commands to the startup script after iocInit.
> 
> dbpf("13BMD:m89.NTM","0")
> dbpf("13BMD:m90.NTM","0")
> dbpf("13BMD:m91.NTM","0")
> 
> Note that I have not tested that this is still necessary with the latest release of the motor record, so perhaps the problem has been fixed and we no longer need this workaround.
> 
> I suggest you try this and see if it fixes the problem for you.
> 
> Mark
> 
> 
> From: [email protected] [mailto:[email protected]] On Behalf Of Gofron, Kazimierz
> Sent: Tuesday, May 22, 2018 1:37 PM
> To: [email protected]
> Subject: :tdir messages in ioc for Pmac
> 
> Hi,
> 
> Perhaps someone resolved this problem.
> My turbo pmac motors sometimes get 'stuck', mainly when tweaking them, and particularly when motion direction is reversed. Pressing tweak value several times increases requested position, but no motion occurs. Pressing 'Kill" results in motion to proceed to the requested position. In the same time, there are ':tdir' messages in the IOC itself:
> 
> epics> XF:11IDB-ES{Dif-Ax:Gam}Mtr:tdir = 1
> XF:11IDB-ES{Dif-Ax:Gam}Mtr:tdir = 0
> XF:11IDB-ES{Dif-Ax:Gam}Mtr:tdir = 0
> XF:11IDB-ES{Dif-Ax:Gam}Mtr:tdir = 0
> XF:11IDB-ES{Dif-Ax:Del}Mtr:tdir = 0
> XF:11IDB-ES{Dif-Ax:Gam}Mtr:tdir = 0
> 
> epics> XF:11IDB-ES{Dif-Ax:Del}Mtr:tdir = 0
> XF:11IDB-ES{Dif-Ax:Gam}Mtr:tdir = 0
> ========
> 
> =================
> EPICS:
>   base-3.14.12.3-8
>     streamdevice 2.6
>     sncseq 2.1.17
>     asyn 4.23
>     vme 2.8.1
>     vac 1.4.1
>     std 3.2
>     softGlue 2.4.1
>     sscan 2.9
>     mdautils 1.3.1
>     optics 2.9.2
>     motor 6.8.1
>     modbus 2.7
>     mca 7.5
>     love 3.2.5
>     ipUnidig 2.9
>     i330 2.7
>     ip 2.15
>     ipac 2.12
>     delaygen 1.1.0
>     dc128V 2.7
>     calc 3.4
>     busy 1.6
> 
> System: Debian 7.11 (wheezy), 3.2.0-4-amd64 #1 SMP Debian 3.2.89-2 x86_64 GNU/Linux
> 
> epics> dbpr XF:11IDB-ES{Dif-Ax:Gam}Mtr 4
> ACCL: 0.2           ACKS: NO_ALARM      ACKT: YES           ADEL: 0
> ALST: 0             ASG:                ASP: (nil)          ATHM: 0
> BACC: 0.5           BDST: 0             BKPT: 00            BVEL: 0
> CARD: 0             CBAK: 0xe81cc0      CDIR: 0             CNEN: Disable
> DCOF: 0             DESC: Gamma         DHLM: 0             DIFF: 0
> DINP:CONSTANT       DIR: Pos            DISA: 0             DISP: 0
> DISS: NO_ALARM      DISV: 1             DLLM: 0             DLY: 0
> DMOV: 1             DOL:CONSTANT        DPVT: 0xe81db0      DRBV: 51.5416973976
> DSET: 0x7f095de16280                    DTYP: asynMotor     DVAL: 51.5416973976
> EGU: deg            ERES: 2.86479e-05   EVNT: 0             FLNK:CONSTANT 0
> FOF: 0              FOFF: Variable      FRAC: 1             HHSV: NO_ALARM
> HIGH: 0             HIHI: 0             HLM: 0              HLS: 0
> HLSV: NO_ALARM      HOMF: 0             HOMR: 0             HOPR: 0
> HSV: NO_ALARM       HVEL: 0             ICOF: 0             INIT:
> JAR: 0              JOGF: 0             JOGR: 0             JVEL: 0
> LCNT: 0             LDVL: 51.5416973976 LLM: 0              LLS: 0
> LLSV: NO_ALARM      LOCK: NO            LOLO: 0             LOPR: 0
> LOW: 0              LRLV: 0             LRVL: 1799144       LSET: 0xe88220
> LSPG: Go            LSV: NO_ALARM       LVAL: 51.5416973976 LVIO: 0
> MDEL: 0             MIP: 0              MISS: 0
> MLIS: 90 c0 06 54 09 7f 00 00 60 b0 ff 00 00 00 00 00 ad 01 00 00
> MLOK: c0 68 df 00 00 00 00 00           MLST: 0             MMAP: 0
> MOVN: 0             MRES: 2.86479e-05   MSTA: 18691
> NAME: XF:11IDB-ES{Dif-Ax:Gam}Mtr        NMAP: 0             NSEV: NO_ALARM
> NSTA: NO_ALARM      NTM: YES            NTMF: 2             OFF: 0
> OMSL: supervisory   OUT:INST_IO @asyn(motor,2)              PACT: 0
> PCOF: 0             PHAS: 0             PINI: NO            POST:
> PP: 0               PPN: (nil)          PPNR: (nil)         PREC: 4
> PREM:               PRIO: LOW           PROC: 0             PUTF: 0
> RBV: 51.5416973976  RCNT: 0             RDBD: 2.86479e-05   RDBL:CONSTANT
> RDES: 0xc0d9b0      RDIF: 0             REP: 1799144        RHLS: 0
> RINP:CONSTANT       RLLS: 0             RLNK:CONSTANT       RLV: 0
> RMOD: Default       RMP: 1799144        RPRO: 0             RRBV: 1799144
> RRES: 0             RSET: 0x7f095de160a0                    RTRY: 0
> RVAL: 1799144       RVEL: 0             S: 0                SBAK: 0
> SBAS: 0             SCAN: Passive       SDIS:CONSTANT       SET: Use
> SEVR: NO_ALARM      SMAX: 0             SPMG: Go            SPVT: (nil)
> SREV: 200           SSET: 0             STAT: NO_ALARM      STOO:CONSTANT
> STOP: 0             STUP: OFF           SUSE: 0             SYNC: 0
> TDIR: 1             TIME: <undefined>   TPRO: 0             TSE: 0
> TSEL:CONSTANT       TWF: 0              TWR: 0              TWV: 0
> UDF: 0              UEIP: No            UREV: 0.00572958    URIP: No
> VAL: 51.5416973976  VBAS: 0             VELO: 0             VERS: 6.81
> VMAX: 0             VOF: 0
> epics>
> ================
> epics> dbpr XF:11IDB-ES{Dif-Ax:Del}Mtr 4
> ACCL: 0.2           ACKS: NO_ALARM      ACKT: YES           ADEL: 0
> ALST: 0             ASG:                ASP: (nil)          ATHM: 0
> BACC: 0.5           BDST: 0             BKPT: 00            BVEL: 0
> CARD: 0             CBAK: 0xe81900      CDIR: 1             CNEN: Disable
> DCOF: 0             DESC: Delta         DHLM: 0
> DIFF: -6.5474440000024e-04              DINP:CONSTANT       DIR: Pos
> DISA: 0             DISP: 0             DISS: NO_ALARM      DISV: 1
> DLLM: 0             DLY: 0              DMOV: 1             DOL:CONSTANT
> DPVT: 0xe819a0      DRBV: 2.0006547444  DSET: 0x7f095de16280
> DTYP: asynMotor     DVAL: 2             EGU: deg            ERES: 2.86479e-05
> EVNT: 0             FLNK:CONSTANT 0     FOF: 0              FOFF: Variable
> FRAC: 1             HHSV: NO_ALARM      HIGH: 0             HIHI: 0
> HLM: 0              HLS: 0              HLSV: NO_ALARM      HOMF: 0
> HOMR: 0             HOPR: 0             HSV: NO_ALARM       HVEL: 0
> ICOF: 0             INIT:               JAR: 0              JOGF: 0
> JOGR: 0             JVEL: 0             LCNT: 0             LDVL: 2
> LLM: 0              LLS: 0              LLSV: NO_ALARM      LOCK: NO
> LOLO: 0             LOPR: 0             LOW: 0              LRLV: 0
> LRVL: 69813         LSET: 0xe88200      LSPG: Go            LSV: NO_ALARM
> LVAL: 2             LVIO: 0             MDEL: 0             MIP: 0
> MISS: 0
> MLIS: 20 cc 06 54 09 7f 00 00 90 b7 ff 00 00 00 00 00 a7 01 00 00
> MLOK: 50 68 df 00 00 00 00 00           MLST: 0             MMAP: 0
> MOVN: 0             MRES: 2.86479e-05   MSTA: 2307
> NAME: XF:11IDB-ES{Dif-Ax:Del}Mtr        NMAP: 0             NSEV: NO_ALARM
> NSTA: NO_ALARM      NTM: YES            NTMF: 2             OFF: 0
> OMSL: supervisory   OUT:INST_IO @asyn(motor,1)              PACT: 0
> PCOF: 0             PHAS: 0             PINI: NO            POST:
> PP: 0               PPN: (nil)          PPNR: (nil)         PREC: 4
> PREM:               PRIO: LOW           PROC: 0             PUTF: 0
> RBV: 2.0006547444   RCNT: 0             RDBD: 2.86479e-05   RDBL:CONSTANT
> RDES: 0xc0d9b0      RDIF: -23           REP: 69836          RHLS: 0
> RINP:CONSTANT       RLLS: 0             RLNK:CONSTANT       RLV: 0
> RMOD: Default       RMP: 69836          RPRO: 0             RRBV: 69836
> RRES: 0             RSET: 0x7f095de160a0                    RTRY: 0
> RVAL: 69813         RVEL: 0             S: 0                SBAK: 0
> SBAS: 0             SCAN: Passive       SDIS:CONSTANT       SET: Use
> SEVR: NO_ALARM      SMAX: 0             SPMG: Go            SPVT: (nil)
> SREV: 200           SSET: 0             STAT: NO_ALARM      STOO:CONSTANT
> STOP: 0             STUP: OFF           SUSE: 0             SYNC: 0
> TDIR: 1             TIME: 2018-05-22 13:45:45.833378801     TPRO: 0
> TSE: 0              TSEL:CONSTANT       TWF: 0              TWR: 0
> TWV: 0.02           UDF: 0              UEIP: No            UREV: 0.00572958
> URIP: No            VAL: 2              VBAS: 0             VELO: 0
> VERS: 6.81          VMAX: 0             VOF: 0
> epics>
> 
> 

References:
:tdir messages in ioc for Pmac Gofron, Kazimierz
RE: :tdir messages in ioc for Pmac Mark Rivers
Re: :tdir messages in ioc for Pmac Wayne Lewis

Navigate by Date:
Prev: Re: CSS BOY or Display Builder ready-to-run binary? Hartman, Steven M.
Next: Re: CSS BOY or Display Builder ready-to-run binary? Kasemir, Kay
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  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: :tdir messages in ioc for Pmac Wayne Lewis
Next: printing to console in Display Builder Gregory, Ray
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  <20182019  2020  2021  2022  2023  2024 
ANJ, 25 May 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·