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  <20122013  2014  2015  2016  2017  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017 
<== Date ==> <== Thread ==>

Subject: RE: "@init handler failed" , "Record initialization failed" and "No reply from device within 1000 ms"
From: Mark Rivers <rivers@cars.uchicago.edu>
To: "'???'" <hongchunxia@sinap.ac.cn>, "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
Date: Thu, 24 May 2012 15:44:58 +0000
> asynSetTraceMask("MOXA1",0,255)
> 2012/05/24 16:14:12.091 MOXA1 -1 exceptionOccurred calling exceptionUser
> But when asynSetTraceMask("MOXA1",0,1),there is no the error message.

The message you see above about "exceptionOccurred" is not an error, it is just for information.  So setting asynTraceMask to 255 is fine.

> 2012/05/24 16:14:15.200 192.168.127.254:4001 write.
> 2012/05/24 16:14:15.200 192.168.127.254:4001 write 11
> 2012/05/24 16:14:15.200 MOXA1 write
...
> 2012/05/24 16:14:15.201 192.168.127.254:4001 read.
> 2012/05/24 16:14:16.200 MOXA1 MOXA1:getPosition: No reply from device within 1000 ms

These messages are telling you that you have sent 11 bytes to the device, but that you got no reply from the device.  If set asynTraceMask to 255 you will see exactly what characters you sent to the device, and can verify that they are correct.  For some reason the device is not answering you.  That could be a problem with cabling (pins 2&3) or with baud rate, parity, etc.

You can set the baud rate, parity, etc. on the Moxa through a Web interface.

Mark


From: tech-talk-bounces@aps.anl.gov [mailto:tech-talk-bounces@aps.anl.gov] On Behalf Of ???
Sent: Thursday, May 24, 2012 4:22 AM
To: tech-talk@aps.anl.gov
Subject: "@init handler failed" , "Record initialization failed" and "No reply from device within 1000 ms"
Importance: High

Hello,everyone.

Now I want to use StreamDevice and ASYN to create EPICS device support for a serial, and the serial device connected to Ethernet/Serial converters, the serial device is 9x Series Motor Controllers/Drivers(Net Controls, LLC).

My epics base is 3.14.8.2 and ASYN is 4-6 and StreamDevice-2-5 and CALC is 2-6-3. After I modify some files and the compile is ok, but when I run st.cmd in the host of linux-x86, there are some problems. The error message is as follows:

---------------------- error message -------------------------------------

[saxs@localhost iocserial]$ ./st.cmd
#!../../bin/linux-x86/serial
## You may have to change serial to something else
## everywhere it appears in this file
< envPaths
epicsEnvSet(ARCH,"linux-x86")
epicsEnvSet(IOC,"iocserial")
epicsEnvSet(TOP,"/home/saxs/serial")
epicsEnvSet(SUPPORT,"/BLC/epics/synApps_5_2/support")
epicsEnvSet(ASYN,"/BLC/epics/synApps_5_2/support/asyn/4-6")
epicsEnvSet(CALC,"/BLC/epics/synApps_5_2/support/calc/2-6-3")
epicsEnvSet(STREAM,"/BLC/epics/synApps_5_2/support/stream-2-5")
epicsEnvSet(EPICS_BASE,"/BLC/epics/base")
cd /home/saxs/serial
## Register all support components
dbLoadDatabase("dbd/serial.dbd")
serial_registerRecordDeviceDriver(pdbbase)
epicsEnvSet("STREAM_PROTOCOL_PATH",".:../protocols")
drvAsynIPPortConfigure("MOXA1","192.168.127.254:4001",0,0,0)

asynSetTraceMask("MOXA1",0,255)
2012/05/24 16:14:12.091 MOXA1 -1 exceptionOccurred calling exceptionUser
But when asynSetTraceMask("MOXA1",0,1),there is no the error message.


## Load record instances
#dbLoadRecords("db/dbExample1.db","user=saxsHost")
#dbLoadRecords("db/dbExample2.db","user=saxsHost,no=1,scan=1 second")
#dbLoadRecords("db/dbExample2.db","user=saxsHost,no=2,scan=2 second")
#dbLoadRecords("db/dbExample2.db","user=saxsHost,no=3,scan=5 second")
#dbLoadRecords("db/dbSubExample.db","user=saxsHost")
dbLoadRecords("db/serial.db")
2012/05/24 16:14:12.092 asynManager connect queueCallback port:MOXA1
2012/05/24 16:14:12.092 Open connection to 192.168.127.254:4001
## Set this to see messages from mySub
#var mySubDebug 1
cd /home/saxs/serial/iocBoot/iocserial
iocInit()
Starting iocInit
############################################################################
###  EPICS IOC CORE built on Apr 24 2012
###  EPICS R3.14.8.2 $R3-14-8-2$ $2006/01/06 15:55:13$
############################################################################
2012/05/24 16:14:12.094 Opened connection to 192.168.127.254:4001
2012/05/24 16:14:12.094 MOXA1 -1 exceptionOccurred calling exceptionUser
2012/05/24 16:14:12.094 asynManager connect queueCallback port:MOXA1
2012/05/24 16:14:12.094 asynManager connect queueCallback port:MOXA1
2012/05/24 16:14:12.196 MOXA1 addr -1 queueRequest priority 0 not lockHolder
2012/05/24 16:14:12.196 MOXA1 callback
2012/05/24 16:14:12.196 MOXA1 addr -1 queueRequest priority 0 not lockHolder
2012/05/24 16:14:12.196 MOXA1 schedule queueRequest timeout
2012/05/24 16:14:12.196 MOXA1 callback
2012/05/24 16:14:12.196 MOXA1 flush
2012/05/24 16:14:12.196 192.168.127.254:4001 flush
2012/05/24 16:14:12.196 MOXA1 get Eos 0
2012/05/24 16:14:12.196 MOXA1 set Eos 0
2012/05/24 16:14:12.196 192.168.127.254:4001 write.
2012/05/24 16:14:12.196 192.168.127.254:4001 write 11
2012/05/24 16:14:12.196 MOXA1 write
2012/05/24 16:14:12.197 MOXA1 set Eos 0
2012/05/24 16:14:12.197 MOXA1 addr -1 queueRequest priority 0 from lockHolder
2012/05/24 16:14:12.197 MOXA1 schedule queueRequest timeout
2012/05/24 16:14:12.197 MOXA1 callback
2012/05/24 16:14:12.197 MOXA1 get Eos 0
2012/05/24 16:14:12.197 MOXA1 set Eos 2
2012/05/24 16:14:12.197 192.168.127.254:4001 read.


2012/05/24 16:14:13.196 MOXA1 MOXA1:setPosition: No reply from device within 1000 ms
2012/05/24 16:14:13.196 MOXA1 set Eos 0

2012/05/24 16:14:13.196 _main_ MOXA1:setPosition: @init handler failed
2012/05/24 16:14:13.196 _main_ MOXA1:setPosition: Record initialization failed
Bad init_rec return value  PV: MOXA1:setPosition ao: init_record
iocInit: All initialization complete
## Start any sequence programs
#seq sncExample,"user=saxsHost"


epics> 2012/05/24 16:14:15.200 MOXA1 addr -1 queueRequest priority 0 not lockHolder


2012/05/24 16:14:15.200 MOXA1 schedule queueRequest timeout
2012/05/24 16:14:15.200 MOXA1 callback
2012/05/24 16:14:15.200 MOXA1 addr -1 queueRequest priority 0 not lockHolder
2012/05/24 16:14:15.200 MOXA1 schedule queueRequest timeout
2012/05/24 16:14:15.200 MOXA1 callback
2012/05/24 16:14:15.200 MOXA1 flush
2012/05/24 16:14:15.200 192.168.127.254:4001 flush
2012/05/24 16:14:15.200 MOXA1 get Eos 0
2012/05/24 16:14:15.200 MOXA1 set Eos 0
2012/05/24 16:14:15.200 192.168.127.254:4001 write.
2012/05/24 16:14:15.200 192.168.127.254:4001 write 11
2012/05/24 16:14:15.200 MOXA1 write
2012/05/24 16:14:15.200 MOXA1 set Eos 0
2012/05/24 16:14:15.200 MOXA1 addr -1 queueRequest priority 0 from lockHolder
2012/05/24 16:14:15.200 MOXA1 schedule queueRequest timeout
2012/05/24 16:14:15.200 MOXA1 callback
2012/05/24 16:14:15.201 MOXA1 get Eos 0
2012/05/24 16:14:15.201 MOXA1 set Eos 2
2012/05/24 16:14:15.201 192.168.127.254:4001 read.
2012/05/24 16:14:16.200 MOXA1 MOXA1:getPosition: No reply from device within 1000 ms
2012/05/24 16:14:16.200 MOXA1 set Eos 0
2012/05/24 16:14:17.200 MOXA1 addr -1 queueRequest priority 0 not lockHolder
2012/05/24 16:14:17.200 MOXA1 schedule queueRequest timeout
2012/05/24 16:14:17.200 MOXA1 callback
2012/05/24 16:14:17.200 MOXA1 addr -1 queueRequest priority 0 not lockHolder
2012/05/24 16:14:17.200 MOXA1 schedule queueRequest timeout
2012/05/24 16:14:17.200 MOXA1 callback
2012/05/24 16:14:17.200 MOXA1 flush
2012/05/24 16:14:17.200 192.168.127.254:4001 flush
2012/05/24 16:14:17.200 MOXA1 get Eos 0
2012/05/24 16:14:17.200 MOXA1 set Eos 0
2012/05/24 16:14:17.200 192.168.127.254:4001 write.
2012/05/24 16:14:17.200 192.168.127.254:4001 write 11
2012/05/24 16:14:17.200 MOXA1 write
2012/05/24 16:14:17.200 MOXA1 set Eos 0
2012/05/24 16:14:17.200 MOXA1 addr -1 queueRequest priority 0 from lockHolder
2012/05/24 16:14:17.201 MOXA1 schedule queueRequest timeout
2012/05/24 16:14:17.201 MOXA1 callback
2012/05/24 16:14:17.201 MOXA1 get Eos 0
2012/05/24 16:14:17.201 MOXA1 set Eos 2
2012/05/24 16:14:17.201 192.168.127.254:4001 read.
2012/05/24 16:14:18.200 MOXA1 MOXA1:getPosition: No reply from device within 1000 ms
2012/05/24 16:14:18.200 MOXA1 set Eos 0
2012/05/24 16:14:19.200 MOXA1 addr -1 queueRequest priority 0 not lockHolder
2012/05/24 16:14:19.200 MOXA1 schedule queueRequest timeout
2012/05/24 16:14:19.200 MOXA1 callback
2012/05/24 16:14:19.200 MOXA1 addr -1 queueRequest priority 0 not lockHolder
2012/05/24 16:14:19.200 MOXA1 schedule queueRequest timeout
2012/05/24 16:14:19.200 MOXA1 callback
2012/05/24 16:14:19.200 MOXA1 flush
2012/05/24 16:14:19.200 192.168.127.254:4001 flush
2012/05/24 16:14:19.200 MOXA1 get Eos 0
2012/05/24 16:14:19.200 MOXA1 set Eos 0
2012/05/24 16:14:19.200 192.168.127.254:4001 write.
2012/05/24 16:14:19.200 192.168.127.254:4001 write 11
2012/05/24 16:14:19.201 MOXA1 write
2012/05/24 16:14:19.201 MOXA1 set Eos 0
2012/05/24 16:14:19.201 MOXA1 addr -1 queueRequest priority 0 from lockHolder
2012/05/24 16:14:19.201 MOXA1 schedule queueRequest timeout
2012/05/24 16:14:19.201 MOXA1 callback
2012/05/24 16:14:19.201 MOXA1 get Eos 0
2012/05/24 16:14:19.201 MOXA1 set Eos 2
2012/05/24 16:14:19.201 192.168.127.254:4001 read.
2012/05/24 16:14:19.808 Close 192.168.127.254:4001 connection.
2012/05/24 16:14:19.808 MOXA1 -1 exceptionOccurred calling exceptionUser
2012/05/24 16:14:19.808 MOXA1 MOXA1:getPosition: connection closed in read
2012/05/24 16:14:19.808 MOXA1 MOXA1:getPosition: I/O error after reading 0 bytes: ""
2012/05/24 16:14:19.808 MOXA1 MOXA1:getPosition: Protocol aborted

Can anyone help with this problem please?

Thank you very much.

hongchunxia
===================================================
No.239 Zhangheng Road
PuDong District
Shanghai Institute of Applied Physics CAS
Shanghai, China



---------------------- serial.proto -------------------------------------
Terminator = CR LF;

getPosition{
             out "Position?";
             in "Position %f nm";
}

setPosition {
    out "Position %.2f";
    @init {
         out "Position?";
         in "Position %f nm";
    }
}


---------------------- serial.db -------------------------------------
record (ai, "MOXA1:getPosition")
{
    field (DESC, "get Position")
    field (DTYP, "stream")
    field (SCAN, "2 second")
    field (PREC, "3")
    field (INP,  "@serial.proto getPosition MOXA1")
    #field (DRVL, "-10000")
    #field (DRVH, "10000")
    field (EGU,  "nm")
}

record (ao, "MOXA1:setPosition")
{
    field (DESC, "set Position")
    field (DTYP, "stream")
    field (SCAN, "Passive")
    field (PREC, "3")
    field (OUT,  "@serial.proto setPosition MOXA1")
    #field (DRVL, "-10000")
    #field (DRVH, "10000")
    field (EGU,  "nm")
}


---------------------- serialApp/src/Makefile ---------------------------

TOP=../..

include $(TOP)/configure/CONFIG
#----------------------------------------
#  ADD MACRO DEFINITIONS AFTER THIS LINE
#=============================

#==================================================
# Build an IOC support library

LIBRARY_IOC += xxxSupport

# xxxRecord.h will be created from xxxRecord.dbd
DBDINC += xxxRecord
# install devXxxSoft.dbd into <top>/dbd
DBD += xxxSupport.dbd

# The following are compiled and added to the Support library
xxxSupport_SRCS += xxxRecord.c
xxxSupport_SRCS += devXxxSoft.c

xxxSupport_LIBS += $(EPICS_BASE_IOC_LIBS)

#=============================
# build an ioc application

PROD_IOC = serial
# serial.dbd will be created and installed
DBD += serial.dbd

# serial.dbd will be made up from these files:
serial_DBD += base.dbd
serial_DBD += xxxSupport.dbd
serial_DBD += dbSubExample.dbd
serial_DBD += serialHello.dbd

serial_DBD += stream.dbd
serial_DBD += asyn.dbd
serial_DBD += drvAsynIPPort.dbd

# <name>_registerRecordDeviceDriver.cpp will be created from <name>.dbd
serial_SRCS += serial_registerRecordDeviceDriver.cpp
serial_SRCS_DEFAULT += serialMain.cpp
serial_SRCS_vxWorks += -nil-

# Add locally compiled object code
serial_SRCS += dbSubExample.c
serial_SRCS += serialHello.c

# The following adds support from base/src/vxWorks
serial_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary

serial_LIBS += xxxSupport

serial_LIBS += stream
serial_LIBS += asyn

# NOTE: To build SNL programs, SNCSEQ must be defined
# in the <top>/configure/RELEASE file

ifneq ($(SNCSEQ),)
    # This builds sncExample as a component of serial
    serial_SNCFLAGS += +r
    serial_DBD += sncExample.dbd
    serial_SRCS += sncExample.stt
    serial_LIBS += seq pv

    # The following builds sncProgram as a standalone application
    PROD_HOST += sncProgram
    sncProgram_SNCFLAGS += +m
    sncProgram_SRCS += sncProgram.st
    sncProgram_LIBS += seq pv
    sncProgram_LIBS += $(EPICS_BASE_HOST_LIBS)
endif

serial_LIBS += $(EPICS_BASE_IOC_LIBS)

#===========================

include $(TOP)/configure/RULES
#----------------------------------------
#  ADD RULES AFTER THIS LINE


Replies:
Re: "@init handler failed" , "Record initialization failed" and "No reply from device within 1000 ms" Eric Norum
References:
"@init handler failed" , "Record initialization failed" and "No reply from device within 1000 ms" 洪春霞

Navigate by Date:
Prev: Re: "@init handler failed" , "Record initialization failed" and "No reply from device within 1000 ms" Eric Norum
Next: Re: "@init handler failed" , "Record initialization failed" and "No reply from device within 1000 ms" Eric Norum
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017 
Navigate by Thread:
Prev: Re: "@init handler failed" , "Record initialization failed" and "No reply from device within 1000 ms" Eric Norum
Next: Re: "@init handler failed" , "Record initialization failed" and "No reply from device within 1000 ms" Eric Norum
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·