EPICS Controls 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  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Nozzle Exchange Command Error...
From: Mark Rivers <[email protected]>
To: mujin park <[email protected]>, "[email protected]" <[email protected]>
Date: Mon, 28 Dec 2015 13:39:53 +0000
First, you appear to have an error in your protocol file because you are getting this error:

2015/12/28 16:21:42.753 _main_ devNozzleExchange.proto line 30: in variable assignment 'in = ...'
2015/12/28 16:21:42.753 _main_ devNozzleExchange.proto line 29: in protocol 'getrobotnozzleoffsta'
2015/12/28 16:21:42.753 _main_ while reading protocol 'GetCryoBackSta' for 'BL5C:NOZZLE:GetCryoBackS

However you did not send us the complete protocol file, you only sent the part for GetRemoteSta.

Please send the entire protocol file.

Please also send the entire output as the IOC starts up. We need to see any errors that occur before and after iocInit.

> i think the send command is wrong.
> i want to send ascii code(convert  out "!50SWS" to ascii code)

It appears to me that it is sending that command correctly.  The asynTrace output shows that it is sending the string you want.

However, it is not receiving the reply you expect.  It is receiving "ER=1\r\n" not "?501\r\n" for example.

You need to read the manual for the device and see what the ER=1 response means.  It looks like it is probably an error code.

The best way to debug this kind of thing is to either to:

- Stop the IOC and telnet directly to the device.  Send the commands manual and look at the response.

- Run the IOC but set those records to Passive rather than 0.2 second scan.  Load an asynRecord for that PORT and open the asynOctet.adl screen.

- Send commands from the asyn record and look at the response.

Mark


________________________________
From: [email protected] [[email protected]] on behalf of mujin park [[email protected]]
Sent: Monday, December 28, 2015 7:06 AM
To: [email protected]
Subject: Nozzle Exchange Command Error...

Hello.

i'm in trouble with Nozzle Exchange Device..

-------------------------------
devNozzleExchange.proto
----------------------------------
@writetimeout { disconnect; }
@replytimeout { disconnect; }
@readtimeout  { disconnect; }
@mismatch     { disconnect; }

ReplyTimeout = 1200;
#InTerminator = 92 114 92 110;
InTerminator = "\r\n";
OutTerminator = "\r\n";
#OutTerminator = 92 114 92 110;
#
# Measure current
#
GetRemoteSta {
    out "!50SWS";
    #out 33 53 48 83 87 83 92 114;
    #out 33 53 48 83 87 83 67 114;

    in "?50%1d";
    #in 63 53 48 37 49 100 92 114;
    ExtraInput = Ignore;
}
--------------------------------------------
devNozzleExchange.db
------------------------------------

#
# Reading
#
record(bi, "$(P)$(D):GetRemoteSta")
{
    field(DESC, "Local/Remote Status")
    field(DTYP, "stream")
    field(INP,  "@devNozzleExchange.proto GetRemoteSta $(PORT) $(A)")
    field(ZNAM, "Local")
    field(ONAM, "Remote")
    field(SCAN, ".2 second")
    field(FLNK, "$(P)$(D):GetCryoSolSta")
}
-----------------------------------------
ioc console....
-------------------------------------------
2015/12/28 21:38:31.714 192.100.100.20:4009<http://192.100.100.20:4009> write 8
!50SWS\r\n
2015/12/28 21:38:31.915 192.100.100.20:4009<http://192.100.100.20:4009> read 6
ER=1\r\n
2015/12/28 21:38:31.915 MX1_9 BL5C:NOZZLE:GetRemoteSta: Input "ER=1" mismatch after 0 bytes
2015/12/28 21:38:31.916 MX1_9 BL5C:NOZZLE:GetRemoteSta: got "ER=1" where "?50" was expected
----------------------------------------
Nozzle Device Description
------------------------------
-Local/Remote Switch status request

 state request = "! + 50 + SWS +Cr/Lf"
 return state = "? + 50 + x1 + Cr/Lf" ( 6 bite ascii receive)
 x1 = 0 : Local , x1 = 1 : Remote

------------------------------------------------------
i think the send command is wrong.

i want to send ascii code(convert  out "!50SWS" to ascii code)

how can i do it?

is it  .proto function?

is it  another solution?



References:
Nozzle Exchange Command Error... mujin park

Navigate by Date:
Prev: Nozzle Exchange Command Error... mujin park
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Nozzle Exchange Command Error... mujin park
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 28 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·