Experimental Physics and
| |||||||||||||||||
|
Hi Torsten, Just for the sake of completeness I rebuilt my whole environment from source (git):https://github.com/epicsdeb/pmacasyn $ cat st.cmd #!../../bin/linux-x86_64/tpmac < envPaths epicsEnvSet("STREAM_PROTOCOL_PATH","${PMACUTIL}/pmacUtilApp/protocol") epicsEnvSet("PREFIX","LABTEST:STPC01") dbLoadDatabase("${TOP}/dbd/tpmac.dbd",0,0) tpmac_registerRecordDeviceDriver(pdbbase) pmacAsynIPConfigure("P0","<ip redacted>:1025") #asynSetOption("P0",0,"disconnectOnReadTimeout","Y") pmacCreateController("motor","P0",0,2,100,1000) pmacCreateAxis("motor", 1) pmacCreateAxis("motor", 2) dbLoadTemplate("$(TOP)/db/labTest.substitutions") iocInit() $ cat labTest.substitutions file "$(TOP)/db/motor.db" { # ADDR ---> axis # # NOTE ---> 2 asyn ports: 1) lowel comms ("P0"), and 2) Motor Record ("motor") pattern { P, M, MOTOR, PORT, ADDR, DESC, DTYP, EGU, MRES,PREC } { "LABTEST:", "STPC01:M1", "motor", "P0", 1, "Axis 1", asynMotor, "mm", 0.00079375, 2 } { "LABTEST:", "STPC01:M2", "motor", "P0", 2, "Axis 2", asynMotor, "mm", 0.00079375, 2 } } $ cat db/motor.db record(motor,"$(P)$(M)") { field(DESC,"$(DESC)") field(DTYP,"$(DTYP)") field(OUT,"@asyn($(MOTOR),$(ADDR))") field(RTRY,"0") # Use of MRES is deliberate on the following line. # This sets the retry deadband to the smallest possible size. field(RDBD,$(MRES="1")) field(MRES,$(MRES="1")) field(EGU,$(EGU="None")) field(PREC,$(PREC="0")) } epics> dbl LABTEST:STPC01:M1 LABTEST:STPC01:M2 As soon as I turn off the controller, these messages appear: epics> 2018/02/15 10:12:19.085 P0 read pmacFlush failed - thisRead=0, eomReason=0, status=1 2018/02/15 10:12:29.095 P0 read pmacReadReady failed status=1,retval=02018/02/15 10:12:29.095 pmacController::lowLevelWriteRead: Error from pasynOctetSyncIO->writeRead. command: ??? 2018/02/15 10:12:29.095 pmacController::getGlobalStatus: Error reading ???. 2018/02/15 10:12:29.095 pmacController::poll: Error reading or setting params. 2018/02/15 10:12:29.095 drvPmacAxisGetStatus: not all status values returned. Status: 0 Command :#1 ? F P Response:2018/02/15 10:12:29.095 drvPmacAxisGetStatus: not all status values returned. Status: 0 Command :#2 ? F P Response:2018/02/15 10:12:30.096 pmacController::getGlobalStatus: Error reading ???. nvals: -1, response: 2018/02/15 10:12:30.096 pmacController::poll: Error reading or setting params. 2018/02/15 10:12:30.096 drvPmacAxisGetStatus: not all status values returned. Status: 0 Command :#1 ? F P Response:2018/02/15 10:12:30.096 drvPmacAxisGetStatus: not all status values returned. Status: 0 Command :#2 ? F P Response:2018/02/15 10:12:31.096 pmacController::getGlobalStatus: Error reading ???. nvals: -1, response: 2018/02/15 10:12:31.096 pmacController::poll: Error reading or setting params. 2018/02/15 10:12:31.096 drvPmacAxisGetStatus: not all status values returned. Status: 0 Command :#1 ? F P Response:2018/02/15 10:12:31.096 drvPmacAxisGetStatus: not all status values returned. Status: 0 Command :#2 ? F P Response: After 20 min (see below), I powered the controller back on, but the messages continued. As Mark mentioned, it seems that Linux takes some time to shutdown the socket. My previous tests (using pasynManager->isConnected to probe for connection status) seemed to show that it takes ~15min on this particular system for isConnected to go from 1 to 0. It also seems that by turning the controller back on isConnected goes from 0 to 1. So my current suspicion is in agreement with Mark's comments: something might be off in the interpose code. I will continue investigating. Thanks! Bruno On Thu, Feb 15, 2018 at 2:15 AM, Torsten Bögershausen <[email protected]> wrote: On 12/02/18 20:45, Bruno Martins wrote:
| ||||||||||||||||
ANJ, 15 Feb 2018 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |