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 2025 | 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 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | 回覆: 回覆: EPICS support for PI E-500 piezo controller |
From: | Chiang, Liang-Chih [江良志] via Tech-talk <tech-talk at aps.anl.gov> |
To: | Kevin Peterson <kmpeters at anl.gov>, Torsten Bögershausen <Torsten.Bogershausen at ess.eu>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Thu, 21 Sep 2023 03:28:59 +0000 |
Hi, mates,
I tried two approaches.
1.(suggested by Torsten Bögershausen)
Use the latest main branch of GitHub motorPIGCS2, and
>b) increase the number of parameters (the 10 from below)
>with 16, giving 26, if I count right. >PIasynController::PIasynController(const char *portName, const char* asynPort, int numAxes, int priority, int stackSize, > int movingPollPeriod, int idlePollPeriod) > : asynMotorController(portName, numAxes, 10, 26 is not enough. 28 is ok.
2.
Use the PIGCS2Src in motorR6-11, and applied the following 2 commits:
Change from Steffen Rau: Added detection of E-518
https://github.com/epics-motor/motorPIGCS2/commit/70da0e81885652c14b6dcd5f9a6b938f909152c7
Changes from Steffen Rau to eliminate errors due to missing FRF, TRS and SRG commands for the PI E-518 controller.
Both approaches seemed ok.
I can successfully create the motor record for E-518.
My E-518 is not connected to the piezo actuator, so it will show error message once I send some command.
Best regards.
NSRRC Beamline group email:chiang.lc at nsrrc.org.tw 寄件者: Kevin Peterson <kmpeters at anl.gov>
寄件日期: 2023年9月20日 下午 11:29 收件者: Torsten Bögershausen <Torsten.Bogershausen at ess.eu>; Chiang, Liang-Chih [江良志] <chiang.lc at nsrrc.org.tw>; tech-talk at aps.anl.gov <tech-talk at aps.anl.gov> 主旨: Re: 回覆: EPICS support for PI E-500 piezo controller A newer version of motor is required to work with the master branch of
motorPIGCS2. I don't know which version is required but I would expect motor-R7-2 or later to work. Kevin On 9/20/23 10:17, Torsten Bögershausen via Tech-talk wrote: > I think that there are 2 possibilties here: > > a) Upgrade the asyn module > > (not sure out of my head, when the number of parameters became obsolete, > > but the latest works) > > b) increase the number of parameters (the 10 from below) > > with 16, giving 26, if I count right. > > PIasynController::PIasynController(const char *portName, const char* > asynPort, int numAxes, int priority, int stackSize, int > movingPollPeriod, int idlePollPeriod) > > : asynMotorController(portName, numAxes, 10, > > *From: *Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of "Chiang, > Liang-Chih [江良志] via Tech-talk" <tech-talk at aps.anl.gov> > *Reply to: *"Chiang, Liang-Chih [江良志]" <chiang.lc at nsrrc.org.tw> > *Date: *Wednesday, 20 September 2023 at 15:21 > *To: *"tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> > *Subject: *回覆: EPICS support for PI E-500 piezo controller > > Hello EPICS mates, > > I'm trying to control PI E-518 which is the communication interface > module of the PI E-500 piezo controller system. > > EPICS base: 3.14.12.5 > > Motor module: 6-11 > > The folder PIGCS2Src in Motor module 6-11 seems not support E-518. > > So I updated the folder with the newest files from GitHub > > https://github.com/epics-motor/motorPIGCS2/tree/master/pigcs2App/src > <https://github.com/epics-motor/motorPIGCS2/tree/master/pigcs2App/src> , > > and passed the compiling. > > When creating motor record for E-518, it shows two kinds of error > messages(excerpted): > > 2023/09/20 15:02:55.455 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_KP_A to list 0, too many parameters > > and > > 2023/09/20 15:02:55.457 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 94 in list 0, bad index > > I don't know how to fix it. Would you provide some suggestions? > > The full error messages: > > # > ============================================================================ > > # PI E-518 motor controller is connected via Ethernet, > > # at IP address 192.168.2.31, TCP port 50000 > > # > ============================================================================ > > drvAsynIPPortConfigure("PIE518", "192.168.2.31:50000", 0, 0, 0) > > asynSetTraceMask(PIE518,-1,0x21) # 0x09, 0x03, 0x01 > > asynSetTraceIOMask(PIE518,-1,0x1) # 0x02, 0x01, 0x00 > > # PI E-518 uses GCS(General Command Set). PI_GCS2_CreateController > parameters: > > # (1) portName > > # (2) asynPort > > # (3) numAxes > > # (4) priority > > # (5) stackSize > > # (6) movingPollingRate > > # (7) idlePollingRate > > # HFMAB angle > > PI_GCS2_CreateController("PIE518-1P", "PIE518", 1, 0, 0, 100, 1000) > > 2023/09/20 15:02:55.434 read from PIE518: (c) 2016 Physik Instrumente > (PI) GmbH & Co. KG, E-518.I3, 119053229, 3.70 > > PIasynAxis::PIasynAxis() 0: A > > 2023/09/20 15:02:55.455 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_KP_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_KI_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_KFF_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_NTCHFR1_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_NTCHFR2_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_NTCHRJT1_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_NTCHRJT2_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_NTCHBDWDT1_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_NTCHBDWDT2_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_RBKP_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_RBKI_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_RBKFF_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_RBNTCHFR1_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_RBNTCHFR2_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_RBNTCHRJT1_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_RBNTCHRJT2_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_RBNTCHBDWDT1_A to list 0, too many parameters > > 2023/09/20 15:02:55.456 asynPortDriver:createParam: port=PIE518-1P error > adding parameter PI_SUP_RBNTCHBDWDT2_A to list 0, too many parameters > > # optional PI_Support.db > > dbLoadRecords("/blsw/13a/software/epics/3.14.12.5/support/motor-R6-11/db/PI_Support.db","P=27a:,R=PIE518-1P:,PORT=PIE518-1P,ADDR=0,TIMEOUT=1") > > # asyn record > > dbLoadRecords("/blsw/13a/software/epics/3.14.12.5/support/asyn-4-26/db/asynRecord.db", "P=27a:,R=PIE518-1P:Asyn,PORT=PIE518,ADDR=0,OMAX=256,IMAX=256") > > ############################################################################### > > iocInit > > 2023/09/20 15:02:55.457 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 94 in list 0, bad index > > 2023/09/20 15:02:55.457 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 95 in list 0, bad index > > 2023/09/20 15:02:55.457 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 96 in list 0, bad index > > 2023/09/20 15:02:55.457 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 97 in list 0, bad index > > 2023/09/20 15:02:55.457 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 98 in list 0, bad index > > 2023/09/20 15:02:55.457 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 99 in list 0, bad index > > 2023/09/20 15:02:55.457 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 100 in list 0, bad index > > 2023/09/20 15:02:55.457 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 101 in list 0, bad index > > 2023/09/20 15:02:55.457 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 102 in list 0, bad index > > ############################################################################ > > Starting iocInit > > ## EPICS R3.14.12.5 $Date: Tue 2015-03-24 09:57:35 -0500$ > > ## EPICS Base built Nov 6 2017 > > ############################################################################ > > 2023/09/20 15:02:55.563 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 94 in list 0, bad index > > 2023/09/20 15:02:55.563 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 95 in list 0, bad index > > 2023/09/20 15:02:55.563 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 96 in list 0, bad index > > 2023/09/20 15:02:55.563 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 97 in list 0, bad index > > 2023/09/20 15:02:55.563 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 98 in list 0, bad index > > 2023/09/20 15:02:55.563 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 99 in list 0, bad index > > 2023/09/20 15:02:55.563 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 100 in list 0, bad index > > 2023/09/20 15:02:55.563 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 101 in list 0, bad index > > 2023/09/20 15:02:55.563 asynPortDriver:setDoubleParam: port=PIE518-1P > error setting parameter 102 in list 0, bad index > > The .cmd file: > > #Load motor records > > dbLoadTemplate("live/pie518_motors.substitutions") > > #Load pseudo motor records > > dbLoadTemplate("live/pie518_pseudoMotors.substitutions") > > < live/pie518.doAfterIocInit > > # > ============================================================================ > > # PI E-518 motor controller is connected via Ethernet, > > # at IP address 192.168.2.31, TCP port 50000 > > # > ============================================================================ > > drvAsynIPPortConfigure("PIE518", "192.168.2.31:50000", 0, 0, 0) > > asynSetTraceMask(PIE518,-1,0x21) # 0x09, 0x03, 0x01 > > asynSetTraceIOMask(PIE518,-1,0x1) # 0x02, 0x01, 0x00 > > # PI E-518 uses GCS(General Command Set). PI_GCS2_CreateController > parameters: > > # (1) portName > > # (2) asynPort > > # (3) numAxes > > # (4) priority > > # (5) stackSize > > # (6) movingPollingRate > > # (7) idlePollingRate > > # HFMAB angle > > PI_GCS2_CreateController("PIE518-1P", "PIE518", 1, 0, 0, 100, 1000) > > # optional PI_Support.db > > dbLoadRecords("$(MOTOR)/db/PI_Support.db","P=27a:,R=PIE518-1P:,PORT=PIE518-1P,ADDR=0,TIMEOUT=1") > > # asyn record > > dbLoadRecords("$(ASYN)/db/asynRecord.db", > "P=27a:,R=PIE518-1P:Asyn,PORT=PIE518,ADDR=0,OMAX=256,IMAX=256") > > Best regards. > > LiangChih Chiang > > NSRRC Beamline group > > email:chiang.lc at nsrrc.org.tw > > ------------------------------------------------------------------------ > > *寄件者**:*Chiang, Liang-Chih [江良志] <chiang.lc at nsrrc.org.tw> > *寄件日期**:*2023年9月9日上午09:49 > *收件者**:*Kevin Peterson <kmpeters at anl.gov>; tech-talk at aps.anl.gov > <tech-talk at aps.anl.gov> > *主旨**:*回覆: EPICS support for PI E-500 piezo controller > > Thanks Kevin. > > I later found out that E-500 is the name of the system. > > Its communication interface module is E-518 > > which is supported by motorPIGCS2 module. > > https://github.com/epics-motor/motorPIGCS2 > <https://github.com/epics-motor/motorPIGCS2> > > ps. The label "E-518" is not in an obvious place of the E-500 chassis. > > Best regards. > > LiangChih Chiang > > NSRRC Beamline group > > email:chiang.lc at nsrrc.org.tw > > ------------------------------------------------------------------------ > > *寄件者**:*Kevin Peterson <kmpeters at anl.gov> > *寄件日期**:*2023年9月8日下午10:37 > *收件者**:*Chiang, Liang-Chih [江良志] <chiang.lc at nsrrc.org.tw>; > tech-talk at aps.anl.gov <tech-talk at aps.anl.gov> > *主旨**:*Re: EPICS support for PI E-500 piezo controller > > The E-500 isn't in the list of supported controllers, but it still may > be supported by the motorPIGCS2 module: > > https://github.com/epics-motor/motorPIGCS2 > <https://github.com/epics-motor/motorPIGCS2> > > The communication interface card might of the E-500 might report a > different version string in response to the "*IDN?" command, which is > what the motor driver queries: > > > https://github.com/epics-motor/motorPIGCS2/blob/0a452b905d2754dd774701013de3046e4c1f2f16/pigcs2App/src/PIasynController.cpp#L120 <https://github.com/epics-motor/motorPIGCS2/blob/0a452b905d2754dd774701013de3046e4c1f2f16/pigcs2App/src/PIasynController.cpp#L120> > > and then uses to determine the controller type: > > > https://github.com/epics-motor/motorPIGCS2/blob/0a452b905d2754dd774701013de3046e4c1f2f16/pigcs2App/src/PIGCSController.cpp#L43-L109 <https://github.com/epics-motor/motorPIGCS2/blob/0a452b905d2754dd774701013de3046e4c1f2f16/pigcs2App/src/PIGCSController.cpp#L43-L109> > > Kevin > > On 9/8/23 01:37, Chiang, Liang-Chih [江良志] via Tech-talk wrote: > > Dear EPICS mates, > > > > Is there a EPICS support module for PI E-500 piezo controller? > > > > I can't find it in Support Modules webpage > > https://epics.anl.gov/modules/index.php > <https://epics.anl.gov/modules/index.php> > > <https://epics.anl.gov/modules/index.php > <https://epics.anl.gov/modules/index.php>> > > and in PI GitHub > > https://github.com/epics-motor/motorPI > <https://github.com/epics-motor/motorPI> > > <https://github.com/epics-motor/motorPI > <https://github.com/epics-motor/motorPI>> > > > > Are there any other PI controller models similar to E-500? > > From which I can modify the source code of the support module. > > > > > > > > Best regards. > > > > > > > > LiangChih Chiang > > > > NSRRC > > > > Beamline Group > > > > email:chiang.lc at nsrrc.org.tw > |