⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 javaci.htm

📁 串口调试工具 用于串口调 试的很方便
💻 HTM
📖 第 1 页 / 共 2 页
字号:

<p><font size="3">nQtd - number of registers to read </font></p>

<p>abCoilValues<font size="3"> - array with coils read.</font></p>

<p><font size="3"><strong>Remarks</strong></font></p>

<p>Reads the status of discrete outputs (0<i>x</i> references, coils) in the slave, the
first coil 00001 is 0, second 00002 is 1 and so on. The array&nbsp; abCoilValues return
the coil on boolean format (true - On , false - Off).</p>

<p><strong>example</strong>:</p>

<p>&nbsp; //Reads coils 00020 ... 0056 from slave 17<br>
&nbsp; //abCoils(0) is 00020 , abCoils(0) is 00021 ...</p>

<p>&nbsp;&nbsp; short&nbsp; nQnt;<br>
&nbsp; short nErr;<br>
&nbsp; nQnt = (short)37;<br>
&nbsp; boolean[] abCoils;</p>

<p>&nbsp; abCoils = new boolean[nQnt];</p>

<p>&nbsp; nErr = objModbus.ReadOutputStatus((short)17,19 ,nQnt, abCoils);<br>
<br>
&nbsp; if (nErr!=Modbus.ERR_OK) {<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(&quot;Error Reading Output
status&quot;); <br>
<br>
&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; for (i=0;i&lt;nQnt;i++) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(&quot;[&quot;+(i+nDataStart)+&quot;]=&quot;+abCoils[i]);<br>
&nbsp;&nbsp;&nbsp; } </p>

<p><font size="3"><strong>See also: <a href="ModbuEx.htm">ModbusException</a> , <a
href="Errors.htm">Error Codes</a> .</strong></font></p>

<p>&nbsp;</p>

<p><a name="Modbus.ReadInputStatus"></a><font size="5"><strong>ReadInputStatus</strong></font></p>

<p><font size="3"><strong>WORD ReadOutputStatus( WORD nAddr, WORD nDataStart ,WORD nQtd
,CByteArray&amp; anRegValues);</strong></font></p>

<p>&nbsp;</p>

<p><font size="3"><strong>Return Value </strong></font></p>

<p><font size="3">A error code if the function failed or Modbus.ERR_OK if succeed. Use <a
href="#Modbus.ErrorMessage">ErrorMessage</a> to return a error description.</font></p>

<p><font size="3"><strong>Parameters </strong></font></p>

<p><font size="3">nAddr - Slave Address</font></p>

<p><font size="3">nDataStart - Starting Address</font></p>

<p><font size="3">nQtd - number of registers to read </font></p>

<p><font size="3">anRegValues - array with registers read.</font></p>

<p><font size="3"><strong>Remarks</strong></font></p>

<p>Reads the status of discrete inputs (1<i>x</i> references) in the slave, the first
input 10001 is 0, second 10002 is 1 and so on. CByteArray return the input on BOOL format
(TRUE - On , FALSE - Off).</p>

<p><strong>example</strong>:</p>

<p>//Reads inputs 10197 ... 10218 from slave 17<br>
//abCoils(0) is 10197 , abCoils(0) is 10198 ...</p>

<p>&nbsp; short&nbsp; nQnt;<br>
&nbsp; short nErr;<br>
&nbsp; nQnt = (short)22;<br>
&nbsp; boolean[] abCoils;</p>

<p>&nbsp; abCoils = new boolean[nQnt];</p>

<p>&nbsp; nErr = objModbus.ReadInputStatus((short)17,196 ,nQnt, abCoils);<br>
<br>
&nbsp; if (nErr!=Modbus.ERR_OK) {<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(&quot;Error Reading Input
status&quot;); <br>
<br>
&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; for (i=0;i&lt;nQnt;i++) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(&quot;[&quot;+(i+nDataStart)+&quot;]=&quot;+abCoils[i]);<br>
&nbsp;&nbsp;&nbsp; } </p>

<p>&nbsp;</p>

<p><font size="3"><strong>See also: <a href="ModbuEx.htm">ModbusException</a> , <a
href="Errors.htm">Error Codes</a> .</strong></font></p>

<p><a name="Modbus.PresetSingleRegister"></a><font size="5"><strong>PresetSingleRegister</strong></font></p>

<p><strong>public short PresetSingleRegister(short nAddr, int nRegister , short nRegValue)</strong></p>

<p><strong>public short PresetSingleRegister(short nAddr, int nRegister , int iRegValue)</strong></p>

<p><strong>public short PresetSingleRegister(short nAddr, int nRegister ,float
fRegValue,int nRealType)</strong></p>

<p><strong>public short PresetSingleRegister(short nAddr, int nRegister ,double
dRegValue,int nRealType)</strong></p>

<p><font size="3"><strong>Return Value </strong></font></p>

<p><font size="3">A error code if the function failed or Modbus.ERR_OK if succeed. Use <a
href="#Modbus.ErrorMessage">ErrorMessage</a> to return an error description.</font></p>

<p><font size="3"><strong>Parameters </strong></font></p>

<p><font size="3">nAddr - Slave Address</font></p>

<p><font size="3">nRegister - Register Address</font></p>

<p><font size="3">nRegValue - Preset Data</font></p>

<p><font size="3">wRealType - inverse the order of registers when reading real number
REAL_NORMAL (not reversed) REAL_REVERSE (reverse order).</font></p>

<p><font size="3"><strong>Remarks</strong></font></p>

<p>Presets a single holding register (4<i>x</i> reference). , the first register 40001 is
0, second 40002 is 1 and so on. When the data is a float number you are actually setting 2
registers and with a double number 4 registers are set.</p>

<p><strong>example</strong>:</p>

<p>short&nbsp; nError;<br>
<br>
nErr = objModbus.PresetSingleRegister((short)17,(int)1,(double)3);&nbsp; //preset register
40002 to 03 in slave device 17 </p>

<p><font size="3"><strong>See also: <a href="ModbuEx.htm">ModbusException</a> , <a
href="Errors.htm">Error Codes</a> ,<a href="#Modbus.PresetMultipleRegisters">PresetMultipleRegisters</a>
,<a href="#Modbus.ReadOutputRegisters">ReadOutputRegisters</a></strong></font></p>

<p><a name="Modbus.ForceSingleCoil"></a><font size="5"><strong>ForceSingleCoil</strong></font></p>

<p>&nbsp;&nbsp;&nbsp; <strong>public short ForceSingleCoil(short nAddr, int nRegister,
boolean bCoilValue)</strong></p>

<p><font size="3"><strong>Return Value </strong></font></p>

<p><font size="3">An error code if the function failed or Modbus.ERR_OK if succeed. Use <a
href="#Modbus.ErrorMessage">ErrorMessage</a> to return an error description.</font></p>

<p><font size="3"><strong>Parameters </strong></font></p>

<p><font size="3">nAddr - Slave Address</font></p>

<p><font size="3">nCoil - Coil Address</font></p>

<p><font size="3">bCoilValue - Force Data - true (ON) , false (OFF).</font></p>

<p><font size="3"><strong>Remarks</strong></font></p>

<p>Force a single Coil (0<i>x</i> reference) , the first coil 00001 is 0, second 00002 is
1 and so on.</p>

<p><strong>example</strong>:</p>

<p>short wError;<br>
wError = objModbus.<font size="3">ForceSingleCoil((short)17,172,</font>true) ; //force
coil 173 ON in slave device 17</p>

<p><font size="3"><strong>See also: <a href="ModbuEx.htm">ModbusException</a> , <a
href="Errors.htm">Error Codes</a> ,<a href="#Modbus.PresetMultipleRegisters">PresetMultipleRegisters</a></strong></font></p>

<p><a name="Modbus.PresetMultipleRegisters"></a><font size="5"><strong>PresetMultipleRegisters</strong></font></p>

<p>public short PresetMultipleRegisters(short nAddr, int nDataStart , short nQtd , short
anRegValues[])</p>

<p>public short PresetMultipleRegisters(short nAddr, int nDataStart , short nQtd , int
aiRegValues[]) </p>

<p>public short PresetMultipleRegisters(short nAddr, int nDataStart , short nQtd , float
afRegValues[],int nRealType)</p>

<p>public short PresetMultipleRegisters(short nAddr, int nDataStart , short nQtd , double
adRegValues[],int nRealType)</p>

<p><font size="3"><strong>Return Value </strong></font></p>

<p><font size="3">Error code if the function failed or Modbus.ERR_OK if succeed. Use <a
href="#Modbus.ErrorMessage">ErrorMessage</a> to return an error description.</font></p>

<p><font size="3"><strong>Parameters </strong></font></p>

<p><font size="3">nAddr - Slave Address</font></p>

<p><font size="3">nDataStart - Starting Address</font></p>

<p><font size="3">nQtd - number of registers to set. When setting 1 float number you are
actually setting 2 registers and 1 double means 4 registers.</font></p>

<p>anRegValues - Presets values Data</p>

<p><font size="3">wRealType - inverse the order of registers when reading real number
REAL_NORMAL (not reversed) REAL_REVERSE (reverse order).</font></p>

<p><font size="3"><strong>Remarks</strong></font></p>

<p>Presets values of holding registers (4<i>x</i> references) , the first register 40001
is 0, second 40002 is 1 and so on. When the data is a float number you are actually
setting 2 registers and with a double number 4 registers are set.</p>

<p><strong>example</strong>:</p>

<p>short nError;<br>
int aiRegs[];<br>
<br>
//preset two registers starting at 40002 to 000A and 0102 hex, in slave device 17. </p>

<p>aiRegs=new int[2]</p>

<p>aiRegs[0]=0x000A;<br>
aiRegs[1]=0x0102;<br>
nErr = objModbus.PresetMultipleRegisters((short)17,1 ,(short)2 ,aiRegs);<br>
&nbsp;&nbsp;&nbsp; <br>
if (nErr!=Modbus.ERR_OK) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(&quot;Error setting &nbsp;
Registers&quot;); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
}</p>

<p><font size="3"><strong>See also: <a href="ModbuEx.htm">ModbusException</a> , <a
href="Errors.htm">Error Codes</a> ,<a href="#Modbus.PresetSingleRegister">PresetSingleRegister</a></strong></font></p>

<p>&nbsp;</p>

<p><a name="Modbus.ForceMultipleCoils"></a><font size="5"><strong>ForceMultipleCoils</strong></font></p>

<p>&nbsp;&nbsp;&nbsp; <strong>public short ForceMultipleCoils(short nAddr, int nDataStart
, short nQtd , boolean abCoilValues[])</strong></p>

<p><font size="3"><strong>Return Value </strong></font></p>

<p><font size="3">Error code if the function failed or Modbus.ERR_OK if succeed. Use <a
href="#Modbus.ErrorMessage">ErrorMessage</a> to return an error description.</font></p>

<p><font size="3"><strong>Parameters </strong></font></p>

<p><font size="3">nAddr - Slave Address</font></p>

<p><font size="3">nDataStart - Starting Address</font></p>

<p><font size="3">nQtd - number of registers to read </font></p>

<p>abCoilValues - Force values Data true (ON) , false (OFF).</p>

<p><font size="3"><strong>Remarks</strong></font></p>

<p>Force values of coils (0<i>x</i> references). , the first coil 00001 is 0, second 00002
is 1 and so on.</p>

<p><strong>example</strong>:</p>

<p>short nError;<br>
boolean anCoils[];<br>
<br>
//force a series of 2 coils starting at coil 00020 in slave device 17. </p>

<p>anCoils= new boolean[2]</p>

<p>anCoils(0)=true; //ON<br>
anCoils(1)=false;//OFF</p>

<p>nError = objModbus.<font size="3">ForceMultipleCoils((short)17,19,</font>(short)2,anCoils)
;</p>

<p><font size="3"><strong>See also: <a href="ModbuEx.htm">ModbusException</a> , <a
href="Errors.htm">Error Codes</a> ,<a href="#Modbus.ForceSingleCoil">ForceSingleCoil</a></strong></font></p>

<p>&nbsp;</p>

<p><a name="Modbus.ErrorMessage"></a><font size="5"><strong>ErrorMessage</strong></font></p>

<p>public String ErrorMessage(int iErrorNumber) {</p>

<p><font size="3"><strong>Return Value </strong></font></p>

<p>String message with error description.</p>

<p><font size="3"><strong>Parameters </strong></font></p>

<p>iErrorCode - An Error code returned by CModbus class function.</p>

<p><font size="3"><strong>Remarks</strong></font></p>

<p><font size="3">The return string is empty if the </font>wErrorCode is not found.</p>

<p><font size="3"><strong>See also: <a href="ModbuEx.htm">ModbusException</a> , <a
href="Errors.htm">Error Codes</a></strong></font></p>

<p><a name="Modbus.Retries"></a><font size="5"><strong>Retries</strong></font></p>

<p>public int Retries()<br>
public void Retries(int iRetries);</p>

<p><font size="3"><strong>Remarks</strong></font></p>

<p>Get/Set number of times the message is sent to a slave before the function return an
error code. For instance,</p>

<p>if Retries() = 3 , when a messages is sent to a device and occur an error, that message
will be sent again more 2 times.</p>

<p>&nbsp;</p>

<p><a name="Modbus.ThrowException"></a><font size="5"><strong>ThrowException</strong></font></p>

<p>public boolean ThrowCommException()</p>

<p>public void ThrowCommException(boolean bThrow)</p>

<p><font size="3"><strong>void ThrowException(BOOL bThrow);</strong></font></p>

<p><font size="3"><strong>Remarks</strong></font></p>

<p><font size="3">When this property is true, the Modbus class functions throw <a
href="ModbuEx.htm">ModbusException</a> instead of returning an error code. By Default this
property is false.</font></p>

<p><strong>example</strong></p>

<p><font size="2">objModbus.</font>ThrowCommException<font size="2">(true);</font></p>

<p><font size="2">try {</font></p>

<blockquote>
  <p><font size="2">//It's not needed to verify each call for errors</font></p>
  <p><font size="2">objModbus.ForceSingleCoil((short)17,172,true) ; //force coil 173 ON in
  slave device 17<br>
  objModbus.PresetSingleRegister((short)17,1,3) ; //preset register 40002 to 03 in slave
  device 17 </font></p>
</blockquote>

<p><font size="2">}</font></p>

<p><font size="2">catch(ModbusException e) {</font></p>

<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(e.ErrorNumber<font size="2">());<br>
}</font></p>

<p><font size="3"><strong>See also: <a href="ModbuEx.htm"></a> <a href="ModbuEx.htm">ModbusException</a></strong></font></p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -