Hello An,
First thing I would check is the terminator. CR vs NL vs CR NL.
Typing manually and using asynInterposeDelay has in common the slow rate at which characters are sent. Have you tried to
paste the whole string into telnet instead of typing it?
Different terminal servers may use different timing. Some may try to accumulate bytes before sending them on (but that
is typically when reading, not when writing). Also check handshake options. If our device supports hardware handshake
and the port server does too, try to use it. If not try software handshake.
If you have one, you may want put a serial port analyzer between the port server and your device to see if all bytes are
sent correctly (and maybe even what the timing looks like). Using an oscilloscope can work too but is harder to read. Or
connected a computer with serial port to the other end and read what it gets.
Maybe you can try a different (slower) baud rate? High rates may corrupt the signal on long cables, also depending on
the output voltage of the specific port server.
To compare the network traffic (e.g. bytes sent individually vs sent in one message) you may check with
wireshark/tcpdump/etherreal.
We use both, Moxa and Digi port servers and have never needed asynInterposeDelay. I wrote it because of a request from
ESS where someone had problems similar to yours. But I have seen other strange things, for example that everything
worked with a serial tester (the small boxes with LEDs for the lines) in between the port server and the device, but not
without. Never found out why. Simply left it in. Serial communication is full of strange magic.
Dirk
On Mon, 2022-07-25 at 18:50 +0000, Le, An via Tech-talk wrote:
> Hello,
>
> I’m having trouble using StreamDevice to communicate with a TDK Lambda Genesys 30-110 power supply that’s talking to a
> Moxa NPort 6000 Series terminal server. We are running the same asyn code on another model, the Genesys 50-200, but it
> has no issue talking to a Moxa or a Digi.
>
> When my IOC sends “ADR 06” to the 30-110 all at once, the power supply returns “C01” (illegal command or query), but
> when I enter the same command manually using telnet, I get “OK” as expected. I also get “OK” if I use
> asynInterposeDelay and a slow scan rate.
>
> However, when my IOC sends this command as one string to a Digi terminal server, I also get “OK”. Is there any reason
> why I need to use asynInterposeDelay when using one terminal server but not for another?
>
> We have a network person looking at the configuration of the terminal servers, but the basic web interface parameters
> are quite similar. In the meantime, do you have any suggestions?
>
> Thanks,
> An Le
> SLAC National Accelerator Laboratory
- References:
- StreamDevice issues (Genesys power supply, Moxa) Le, An via Tech-talk
- Navigate by Date:
- Prev:
RE: Substituting every period scan in EPICS MODBUS by I/O Interrupt Mark Rivers via Tech-talk
- Next:
Re: Delta Tau issue Knap, Giles (DLSLtd,RAL,LSCI) via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
<2022>
2023
2024
- Navigate by Thread:
- Prev:
StreamDevice issues (Genesys power supply, Moxa) Le, An via Tech-talk
- Next:
Delta Tau issue Mark Rivers via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
<2022>
2023
2024
|