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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: Horner PLC %T readout |
From: | Mark Rivers <[email protected]> |
To: | "'Eric Norum'" <[email protected]>, EPICS Tech-Talk <[email protected]> |
Date: | Thu, 13 Jun 2013 21:21:51 +0000 |
In their table they list the Modbus offset for the %T1 register as 06000. I interpret that as octal 6000, because Modbus traditionally use octal, and they put a leading
0. But in your drvModbusAsynConfigure command you did not put a leading 0, so it is interpreting it as decimal 6000. Now you also need to figure out if T513 is 513 decimal from the beginning, or 513 octal! Mark From: [email protected] [mailto:[email protected]]
On Behalf Of Eric Norum Has anyone used the EPICS Modbus support to read %T ("Coil Status") values from a Horner PLC? The document describing the mapping to Modbus register offsets is The vendor that supplied the equipment with a Horner PLC embedded in it provided a spreadsheet that shows the interlock status values as T513 through T624, inclusive. According to the table, T513 would be Modbus offset 6512 and read with function code 1 (Read Coil Status). The IOC startup script has the following line
which says to read 112 registers starting at offset 6512 with function code 1. The first binary-in record is
which says that it gets its value from the first register in the block read by the command shown above. This all looks right to me. But….. all the interlock binary-in records always show a value of 0. I'm clearly doing something wrong, but I can't tell what. Advice, suggestions, etc. gratefully accepted. -- |