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 2025 | 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 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Configuring serial communication with Lakeshore 331 via Moxa |
From: | "Wlodek, Jakub via Tech-talk" <tech-talk at aps.anl.gov> |
To: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Wed, 2 Feb 2022 17:25:53 +0000 |
Hi all,
I've been working to get an IOC up and running for a lakeshore 331 TC we have here at NSLS2, using the support for it I found in the ip module on github:
https://github.com/epics-modules/ip/blob/master/ipApp/Db/LakeShore331.db
To start, I have the IOC just creating the asyn port pointing at the TCP Server on the appropriate port on the moxa, and I load the asynRecord database, so I can test sending/receiving commands using the asynOctet interface. I configured the serial connection
on the moxa, asyn, and the device to 9600 baud, 8 data bits, and one stop bit, and I can see that I am communicating with the device on some level, however, the responses I am seeing don't seem correct; they are full for unexpected characters, and don't match
the format listed in the manual. I am guessing there is still something I missed in the configuration of the serial connection.
Current IOC startup:
[jwlodek@xf06bm-ioc2 ioclakeshore331]$ more st.cmd
#!../../bin/linux-x86_64/lakeshore331 epicsEnvSet("SYS", "XF:06BMB-CT") epicsEnvSet("IOC_P", "$(SYS){IOC:LS1}") epicsEnvSet("PREFIX", "XF:06BM-") < envPaths cd ${TOP} ## Register all support components dbLoadDatabase("$(TOP)/dbd/lakeshore331.dbd",0,0) lakeshore331_registerRecordDeviceDriver(pdbbase) drvAsynIPPortConfigure("LAKE1", "SOMEIP:SOMEPORT") asynOctetSetOutputEos("LAKE1", 0, "\r\n") #asynOctetSetInputEos("LAKE1", 0, "\r\x8a") asynSetOption("LAKE1", -1, "baud", "9600") asynSetOption("LAKE1", -1, "bits", "8") asynSetOption("LAKE1", -1, "parity", "odd") asynSetOption("LAKE1", -1, "stop", "1") dbLoadRecords("$(EPICS_BASE)/db/asynRecord.db", "P=$(PREFIX), R=LS331:01:serial, PORT=LAKE1, ADDR=0, OMAX=0, IMAX=0") var streamDebug 2 iocInit()
Also, while every command I send gets some (different) response, I seem to get a timeout error for the asynOctet interface, indicating something is not quite right:
Has someone configured such a device that has run into a similar issue? Or alternatively, does anyone know what could the cause be?
Thanks for the help!
Jakub
|