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  2018  <20192020  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  <20192020 
<== Date ==> <== Thread ==>

Subject: Re: Correct Settings for PIE816 Controller
From: Torsten Bögershausen via Tech-talk <tech-talk@aps.anl.gov>
To: "Sintschuk, Michael" <michael.sintschuk@bam.de>, "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
Date: Wed, 18 Sep 2019 14:44:54 +0200
I don't have this controller, but what happens if you remove
this line in drvPIE816.cc
    status.Bits.RA_HOME = status.Bits.RA_DONE;



On 18/09/19 11:21, Sintschuk, Michael via Tech-talk wrote:
Hello,


I'm using a one-axis piezo which is controller via the PIE816 Controller. I managed to set up an IOC which is communicating with the PIE816 and i also can drive the piezo axis. My problem is, that the motor is always in the "at HOME" status. The startup of my IOC is as follows:


~/expIOC/iocBoot/iocexpIOC> ./st.cmd
#!../../bin/linux-x86_64/expIOC
## You may have to change expIOC to something else
## everywhere it appears in this file
##cd /home/ptb/expIOC/iocBoot/iocexpIOC/
< envPaths
epicsEnvSet("IOC","iocexpIOC")
epicsEnvSet("TOP","/home/ptb/expIOC")
epicsEnvSet("MODULES","/soft/epics/modules/")
epicsEnvSet("ASYN","/soft/epics/modules/asyn")
epicsEnvSet("MOTOR","/soft/epics/modules/motor-R6-10-1")
epicsEnvSet("PSEUDOMOTORS","/soft/epics/modules/pseudoMotors-1-1")
epicsEnvSet("CALC","/soft/epics/modules/calc-R3-7")
epicsEnvSet("EPICS_BASE","/usr/local/epics/base")
cd /home/ptb/expIOC
## Register all support components
dbLoadDatabase "dbd/expIOC.dbd"
expIOC_registerRecordDeviceDriver pdbbase
# over TCP/IP
#drvAsynIPPortConfigure("PIE816", "193.149.13.40:10001",0,0,0)
# over Serial
drvAsynSerialPortConfigure("PIE816","/dev/ttyS0",0,0,0)
asynSetOption("PIE816",-1,"baud","115200")
asynSetOption("PIE816",-1,"bits","8")
asynSetOption("PIE816",-1,"parity","none")
asynSetOption("PIE816",-1,"stop","1")
asynSetOption("PIE816",-1,"clocal","Y")
asynSetOption("PIE816",-1,"crtscts","Y")
#asynSetTraceIOMask("PIE816",0,2)
#asynSetTraceMask("PIE816",0,255)
#asynOctetSetInputEos("PIE816", 0, "\r\n")
#asynOctetSetOutputEos("PIE816", 0, "\r")
PIE816Setup(1, 60)
PIE816Config(0, "PIE816", 1)
## Load record instances
dbLoadRecords("db/expIOC.db", "PORT='PIE816'")
#dbLoadRecords("db/beer.db")
cd "/home/ptb/expIOC/iocBoot/iocexpIOC"
iocInit
Starting iocInit
############################################################################
## EPICS R3.15.5
## EPICS Base built Jul  2 2019
############################################################################
iocRun: All initialization complete
epics>

the complete dadabase for my motor-record is:

epics> dbtr PIE665:Piezo1
ACCL: 0.5           ACKS: NO_ALARM      ACKT: YES           ADEL: 0
ALST: 0             ASG:                ATHM: 1             BACC: 0.2
BDST: 0             BKPT: 00            BVEL: 0.1           CARD: 0
CDIR: 0             CNEN: Enable        DCOF: 0             DESC: motor 1
DHLM: 1000          DIFF: 0             DINP:CONSTANT       DIR: Pos
DISA: 0             DISP: 0             DISS: NO_ALARM      DISV: 1
DLLM: 0             DLY: 0              DMOV: 1             DOL:CONSTANT
DRBV: -0.00434      DTYP: PIE816        DVAL: -0.00434      EGU: um
ERES: 1.0e-06       EVNT:               FLNK:CONSTANT 0     FOF: 0
FOFF: Variable      FRAC: 1             HHSV: NO_ALARM      HIGH: 0
HIHI: 0             HLM: 1000           HLS: 0              HLSV: NO_ALARM
HOMF: 0             HOMR: 0             HOPR: 0             HSV: NO_ALARM
HVEL: 0.1           ICOF: 0             IGSET: 0            INIT:
JAR: 4              JOGF: 0             JOGR: 0             JVEL: 2
LCNT: 0             LDVL: -0.00434      LLM: 0              LLS: 0
LLSV: NO_ALARM      LOCK: NO            LOLO: 0             LOPR: 0
LOW: 0              LRLV: 0             LRVL: -4340         LSPG: Go
LSV: NO_ALARM       LVAL: -0.00434      LVIO: 1             MDEL: 0
MIP: 0              MISS: 0             MLST: 0             MMAP: 0
MOVN: 0             MRES: 1.0e-06       MSTA: 2347          NAME: PIE665:Piezo1
NMAP: 0             NSEV: NO_ALARM      NSTA: NO_ALARM      NTM: NO
NTMF: 2             OFF: 0              OMSL: supervisory   OUT:VME_IO #C0 S0 @
PACT: 0             PCOF: 0             PHAS: 0             PINI: NO
POST:               PP: 0               PREC: 5             PREM:
PRIO: LOW           PROC: 0             PUTF: 0             RBV: -0.00434
RCNT: 0             RDBD: 1.0e-06       RDBL:CONSTANT       RDIF: 0
REP: -4340          RHLS: 0             RINP:CONSTANT       RLLS: 0
RLNK:CONSTANT       RLV: 0              RMOD: Default       RMP: -4340
RPRO: 0             RRBV: -4340         RRES: 0             RTRY: 10
RVAL: -4340         RVEL: 0             S: 10000            SBAK: 500
SBAS: 500           SCAN: Passive       SDIS:CONSTANT       SET: Use
SEVR: NO_ALARM      SMAX: 0             SPMG: Go            SREV: 200
SSET: 0             STAT: NO_ALARM      STOO:CONSTANT       STOP: 0
STUP: BUSY          SUSE: 0             SYNC: 0             TDIR: 1
TIME: 2019-09-18 11:11:49.238256323     TPRO: 0             TSE: 0
TSEL:CONSTANT       TWF: 0              TWR: 0              TWV: 1
UDF: 0              UDFS: INVALID       UEIP: No            UREV: 2.0e-04
URIP: No            VAL: -0.00434       VBAS: 0.1           VELO: 2
VERS: 6.1           VMAX: 0             VOF: 0
epics>

With this settings i can move the motor but for example you see that the ATHM field is 1, so at home. And the MSTA bits tell me that the home-limit-switch is hit and that the motor is not homed. How is a movement in both directions possible if the Status is "at home"?
Is there a way to home the motor properly via EPICS? I tried to set the HOMF / HOMR fields but nothing happens, they go back to 0 and the motor isn't moving.

My substitution file looks like this:

file "$(MOTOR)/db/basic_motor.db"
{
pattern
{P,     N,  M,        DTYP,      C,  S,  DESC,          EGU,      DIR,  VELO,  VBAS,  ACCL,  BDST,  BVEL,  BACC,  MRES, RDBD,  PREC,  DHLM,  DLLM,  INIT}
{PIE665:,  1,  "Piezo$(N)",  "PIE816",  0,  0,  "motor $(N)",  um,        0,     2.,   0.1,    .5,    0,    0.1,    .2,  1e-6, 0.001,   5,   1000,   0,  ""}
}

Maybe i took the wrong one, can someone help?

Thanks in advance!
Best Regards
Michael





Replies:
AW: Correct Settings for PIE816 Controller Sintschuk, Michael via Tech-talk
References:
Correct Settings for PIE816 Controller Sintschuk, Michael via Tech-talk

Navigate by Date:
Prev: Correct Settings for PIE816 Controller Sintschuk, Michael via Tech-talk
Next: AW: Correct Settings for PIE816 Controller Sintschuk, Michael 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  <20192020 
Navigate by Thread:
Prev: Correct Settings for PIE816 Controller Sintschuk, Michael via Tech-talk
Next: AW: Correct Settings for PIE816 Controller Sintschuk, Michael 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  <20192020 
ANJ, 18 Sep 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·