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  2018  <20192020  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  2018  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: asynMotor device support and the motor specific driver (asynMotorContorller)
From: Mark Rivers via Tech-talk <[email protected]>
To: 'Allan Serra Braga Bugyi' <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Mon, 8 Apr 2019 18:55:40 +0000

asynReport says that port PIasyn3 does exist, so the commands I told you do use to set its trace mask should work.  Perhaps you put them before the line to create the port, rather than after?

 

Try enabling that, and disable the trace for the TCP port to reduce the number of messages.

 

Mark

 

 

From: Allan Serra Braga Bugyi <[email protected]>
Sent: Monday, April 8, 2019 1:32 PM
To: Mark Rivers <[email protected]>
Cc: [email protected]
Subject: Re: asynMotor device support and the motor specific driver (asynMotorContorller)

 

asynReport
tcpip_e712 multiDevice:No canBlock:Yes autoConnect:Yes
PIasyn3 multiDevice:Yes canBlock:Yes autoConnect:Yes
Simulation motor driver PIasyn3, numAxes=3
  axis 0
  axis 1
  axis 2
Port: PIasyn3

 

 

Please find it attached.

Thanks,

Allan


De: Mark Rivers <[email protected]>
Enviado: segunda-feira, 8 de abril de 2019 15:07:15
Para: Allan Serra Braga Bugyi
Cc: [email protected]
Assunto: Re: asynMotor device support and the motor specific driver (asynMotorContorller)

 

Turn the asynTrace on the IP port back to 9.

After the IOC boots type this command:

asynReport

I would have expected port PIasyn3 to exist.

Mark


Sent from my iPhone

On Apr 8, 2019, at 1:00 PM, Allan Serra Braga Bugyi <[email protected]<mailto:[email protected]>> wrote:


It says:

asynManager:report port “PIasyn3” not found


Please find attached the log.


Allan
<http://lnls.cnpem.br>

________________________________
De: Mark Rivers <[email protected]<mailto:[email protected]>>
Enviado: segunda-feira, 8 de abril de 2019 14:10:13
Para: Allan Serra Braga Bugyi
Cc: [email protected]<mailto:[email protected]>
Assunto: RE: asynMotor device support and the motor specific driver (asynMotorContorller)


Hi Allan,



What does the following command show?



asynReport 10 “PIasyn3”



You can also add these commands to your asynMotor.E-712.cmd script after PI_GCS2_CreateController("PIasyn3", "tcpip_e712",3, 0,0, 10, 250)



asynSetTraceIOMask("PIasyn3", -1, 0x2)

asynSetTraceMask("PIasyn3", -1, 0xff)



This will show lots more debugging info.



Mark





From: Allan Serra Braga Bugyi <[email protected]<mailto:[email protected]>>
Sent: Monday, April 8, 2019 9:59 AM
To: Mark Rivers <[email protected]<mailto:[email protected]>>
Cc: [email protected]<mailto:[email protected]>
Subject: Re: asynMotor device support and the motor specific driver (asynMotorContorller)



Hi Mark,



Yes, I already instantiated the driver and it's the one you thought. Below I'm showing you the files used to run the IOC. However, the stage is not responding when I do a caput to its VAL field of the motor record, in order to move. I believe that the device support is not able to load the PI commands, the reason for the stage not responding. Besides, I'm not sure if the PI's sources are a complete validated solution, since I didn't find the command set (used by start/build/end transaction) defined anywhere. What I did find were several methods inside the PIGCSController class which use the send/receive message function from asynOctetSyncIO interface in order to communicate with the stage. So I'm confused about using this driver:

- Calling these methods separately using the asynPortDriver methodology of pasynUnser->reason and OUT and INP fields;

- Or letting the device support to do all the job, in case of having the GCS command list loaded.



Since the intention is to obviously use the motor record, I'm obliged to go with the second approach.



Also, please find a log file attached.



--



EPICS IOC's files



  *   st.cmd



#!/usr/local/epics/synApps_6_0/support/motor-R6-10-1/motorExApp/WithAsyn/O.linux-x86_64/WithAsyn

< envPaths

## Register all support components

dbLoadDatabase("${TOP}/dbd/WithAsyn.dbd")
WithAsyn_registerRecordDeviceDriver(pdbbase)


drvAsynIPPortConfigure("tcpip_e712","10.0.9.74:50000",0,0,0)
asynOctetConnect("tcpip_e712", "tcpip_e712")
asynOctetSetInputEos("tcpip_e712",0,"\n")



< asynMotor.E-712.cmd



iocInit



  *   asynMotor.E-712.cmd



dbLoadTemplate("asynMotor.substitutions.E-712")

PI_GCS2_CreateController("PIasyn3", "tcpip_e712",3, 0,0, 10, 250)

dbLoadRecords("${TOP}/db/PI_Support.db","P=PIE712:,R=m1:,PORT=PIasyn3,ADDR=0,TIMEOUT=1")
dbLoadRecords("${TOP}/db/PI_Support.db","P=PIE712:,R=m2:,PORT=PIasyn3,ADDR=1,TIMEOUT=1")
dbLoadRecords("${TOP}/db/PI_Support.db","P=PIE712:,R=m3:,PORT=PIasyn3,ADDR=2,TIMEOUT=1")

dbLoadRecords("${TOP}/db/PI_SupportCtrl.db","P=PIE712:,R=m1:,PORT=PIasyn3,ADDR=0,TIMEOUT=1")





  *   asynMotor.substitutions.E-712



file "$(MOTOR)/motorApp/Db/basic_asyn_motor.db"

{

pattern

{P,      N,     M,         DTYP,      PORT,  ADDR,    DESC,        EGU,     DIR,  VELO,  VBAS,  ACCL,  BDST,  BVEL,  BACC, MRES,  PREC,  DHLM,  DLLM,  INIT, RTRY}

{PIE712:,  1,  "m$(N)",  "asynMotor",  "PIasyn3",  0,  "PI-STAGE-725-X",  um,  Pos,  1,     .1,    .2,    0,     1,     .2,  0.000001, 7,  0,     300,   "",  ""}

{PIE712:,  2,  "m$(N)",  "asynMotor",  "PIasyn3",  1,  "PI-STAGE-725-Y",  um,  Pos,  1,     .1,    .2,    0,     1,     .2,  0.000001, 7,  0,     300,   "",  ""}

{PIE712:,  3,  "m$(N)",  "asynMotor",  "PIasyn3",  2,  "PI-STAGE-725-Z",  um,  Pos,  1,     .1,    .2,    0,     1,     .2,  0.000001, 7,  0,     300,   "",  ""}

}



Thank you!

Best regards,
Allan S. B. Bugyi
Technology Development Analyst
[email protected]<mailto:[email protected]>
(+55 19) 3512-3520

SOL/Beamline Software Group
Brazilian Synchrotron Light Laboratory (LNLS)
Center of Research in Energy and Materials (CNPEM)
http://lnls.cnpem.br






________________________________

De: Mark Rivers <[email protected]<mailto:[email protected]>>
Enviado: segunda-feira, 8 de abril de 2019 11:30:23
Para: Allan Serra Braga Bugyi
Cc: [email protected]<mailto:[email protected]>
Assunto: Re: asynMotor device support and the motor specific driver (asynMotorContorller)



Hi Allan,


I am not sure I fully understand your question.  Have you tried to instantiate a controller and load a template file, and received errors, or are you not that far along?


Unfortunately motor does not seem to contain an example for your controller, but it does contain examples for lots of other controllers that use devMotorAsyn.c and asynMotorController.cpp.


Look in motor/iocBoot/iocWithAsyn/st.cmd.mcb4b for a simple example.


It creates a controller object with

MCB4BCreateController("MCB4B1", "serial1", 4, 100, 5000)


In your case I believe this would be:

PI_GCS2_CreateController(const char *portName, const char* asynPort, int numAxes, int priority, int stackSize, int movingPollingRate, int idlePollingRate)


and then loads a template file with several motor records:

dbLoadTemplate "motor.substitutions.mcb4b"

You need to create a template file for your motors.

The motor module is being split into separate repositories for each controller type.  Each repository will contain an example IOC to help with these types of questions.  These example IOCs will require help from the community, since at the APS we don't have all of the types of controllers that are supported, so we can't test examples.

Mark




________________________________
From: [email protected]<mailto:[email protected]> <[email protected]<mailto:[email protected]>> on behalf of Allan Serra Braga Bugyi via Tech-talk <[email protected]<mailto:[email protected]>>
Sent: Monday, April 8, 2019 8:39 AM
To: [email protected]<mailto:[email protected]>
Subject: asynMotor device support and the motor specific driver (asynMotorContorller)


Hello all,


I need a clarification about the motor module. The asynMotor device support (defined in 'motorApp/MotorSrc/devMotorAsyn.c') tries to find an asynDrvUser interface in init_record function, so that it can find the driver commands with findDrvInfo function. I'm using the asynMotorController driver that implements the PI's command set GCS. How can I connect this driver with the motor record through asynMotor device support?


Additional information:

A class diagram of the PI sources (please ignore the error message; using motor 6-11 now)

[cid:b8eb7e61-f6f9-41d6-8500-6813e6d2e809]


Thank you!
Allan S. B. Bugyi
Technology Development Analyst
[email protected]<mailto:[email protected]>
(+55 19) 3512-3520

SOL/Beamline Software Group
Brazilian Synchrotron Light Laboratory (LNLS)
Center of Research in Energy and Materials (CNPEM)
http://lnls.cnpem.br
<http://lnls.cnpem.br>



Aviso Legal: Esta mensagem e seus anexos podem conter informações confidenciais e/ou de uso restrito. Observe atentamente seu conteúdo e considere eventual consulta ao remetente antes de copiá-la, divulgá-la ou distribuí-la. Se você recebeu esta mensagem por engano, por favor avise o remetente e apague-a imediatamente.

Disclaimer: This email and its attachments may contain confidential and/or privileged information. Observe its content carefully and consider possible querying to the sender before copying, disclosing or distributing it. If you have received this email by mistake, please notify the sender and delete it immediately.

<pi563_iocLog_motor6-11_08-04.log>


Replies:
Re: asynMotor device support and the motor specific driver (asynMotorContorller) Allan Serra Braga Bugyi via Tech-talk
References:
asynMotor device support and the motor specific driver (asynMotorContorller) Allan Serra Braga Bugyi via Tech-talk
Re: asynMotor device support and the motor specific driver (asynMotorContorller) Mark Rivers via Tech-talk
Re: asynMotor device support and the motor specific driver (asynMotorContorller) Allan Serra Braga Bugyi via Tech-talk
RE: asynMotor device support and the motor specific driver (asynMotorContorller) Mark Rivers via Tech-talk
Re: asynMotor device support and the motor specific driver (asynMotorContorller) Allan Serra Braga Bugyi via Tech-talk
Re: asynMotor device support and the motor specific driver (asynMotorContorller) Mark Rivers via Tech-talk
Re: asynMotor device support and the motor specific driver (asynMotorContorller) Allan Serra Braga Bugyi via Tech-talk

Navigate by Date:
Prev: Re: asynMotor device support and the motor specific driver (asynMotorContorller) Allan Serra Braga Bugyi via Tech-talk
Next: RE: drvAsynIPPortConfigure and I/O Intr with asynRecord possible? Mark Rivers 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  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: asynMotor device support and the motor specific driver (asynMotorContorller) Allan Serra Braga Bugyi via Tech-talk
Next: Re: asynMotor device support and the motor specific driver (asynMotorContorller) Allan Serra Braga Bugyi 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  2021  2022  2023  2024 
ANJ, 08 Apr 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·