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
>