Ok, thanks for the explanations!
Another question: i found the PIGCS2Src in the folder motorApp. As i understand it's the GCS-Support driver for PI Controllers. I'm using the E-665.SR Piezo-Controller which in turn has the E-816 computer interface submodule installed. According the the
E-816 manual (https://wiki.bnl.gov/nsls2controls/images/0/0b/E-816_User_PZ116E130.pdf) it also supports GCS Commands.
It looks like a more consistent way to communicate with Hardware from PI.
So i build another IOC with PIGCS2-Support, my substitution-file:
file "$(MOTOR)/motorApp/Db/asyn_motor.db"
{
pattern
{P, M, DTYP, PORT, ADDR, DESC, EGU, DIR, VELO, VBAS, ACCL, BDST, BVEL, BACC, MRES, PREC, DHLM, DLLM, INIT}
{PIE665:, "Piezo1", "asynMotor", "PIE816", 0, "Motor 1", deg, Pos, 2., 0.1, .2, 0, 0.1, .2, 1e-6, 5, 1000.0, 0.0, ""}
}
and the "st.cmd" file:
#!../../bin/linux-x86_64/iocPIGCS
## You may have to change iocPIGCS to something else
## everywhere it appears in this file
< envPaths
cd "${TOP}"
## Register all support components
dbLoadDatabase "dbd/iocPIGCS.dbd"
iocPIGCS_registerRecordDeviceDriver pdbbase
# serial communication
drvAsynSerialPortConfigure("PIE816_SERIAL","/dev/ttyS0",0,0,0)
asynSetOption("PIE816_SERIAL",-1,"baud","115200")
asynSetOption("PIE816_SERIAL",-1,"bits","8")
asynSetOption("PIE816_SERIAL",-1,"parity","none")
asynSetOption("PIE816_SERIAL",-1,"stop","1")
asynSetOption("PIE816_SERIAL",-1,"clocal","Y")
asynSetOption("PIE816_SERIAL",-1,"crtscts","Y")
# PI_GCS2_CreateController(portName, asynPort, numAxes, priority, stackSize, movingPollingRate, idlePollingRate)
PI_GCS2_CreateController("PIE816", "PIE816_SERIAL",1, 0,0, 100, 1000)
## Load record instances
#dbLoadRecords("db/xxx.db","user=ptb")
cd "${TOP}/iocBoot/${IOC}"
iocInit
## Start any sequence programs
this is what i get when i run the IOC:
~/iocPIGCS/iocBoot/iocPIGCS> ./st.cmd
#!../../bin/linux-x86_64/iocPIGCS
## You may have to change iocPIGCS to something else
## everywhere it appears in this file
< envPaths
epicsEnvSet("IOC","iocPIGCS")
epicsEnvSet("TOP","/home/ptb/iocPIGCS")
epicsEnvSet("MODULES","/soft/epics/modules/")
epicsEnvSet("ASYN","/soft/epics/modules//asyn")
epicsEnvSet("MOTOR","/soft/epics/modules//motor-R6-10-1")
epicsEnvSet("EPICS_BASE","/usr/local/epics/base")
cd "/home/ptb/iocPIGCS"
## Register all support components
dbLoadDatabase "dbd/iocPIGCS.dbd"
iocPIGCS_registerRecordDeviceDriver pdbbase
# serial communication
drvAsynSerialPortConfigure("PIE816_SERIAL","/dev/ttyS0",0,0,0)
asynSetOption("PIE816_SERIAL",-1,"baud","115200")
asynSetOption("PIE816_SERIAL",-1,"bits","8")
asynSetOption("PIE816_SERIAL",-1,"parity","none")
asynSetOption("PIE816_SERIAL",-1,"stop","1")
asynSetOption("PIE816_SERIAL",-1,"clocal","Y")
asynSetOption("PIE816_SERIAL",-1,"crtscts","Y")
# PI_GCS2_CreateController(portName, asynPort, numAxes, priority, stackSize, movingPollingRate, idlePollingRate)
PI_GCS2_CreateController("PIE816", "PIE816_SERIAL",1, 0,0, 100, 1000)
2019/09/19 11:18:12.592 read from PIE816_SERIAL: PI-E816 V3.25
2019/09/19 11:18:12.592 PIasynController: unknown controller type PIE816_SERIAL: PI-E816 V3.25
## Load record instances
#dbLoadRecords("db/xxx.db","user=ptb")
cd "/home/ptb/iocPIGCS/iocBoot/iocPIGCS"
iocInit
Starting iocInit
############################################################################
## EPICS R3.15.5
## EPICS Base built Jul 2 2019
############################################################################
iocRun: All initialization complete
## Start any sequence programs
epics>
It says it's an unknown controller type. In the file "PIGCSController.cpp" the E816 is not listed, is that the reason for the message?
According to the manual the E-816 has GCS-Support but still the EPICS
PIGCS2Src drivers are not supporting it?
Michael