📄 javaci.htm
字号:
<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 abCoilValues return
the coil on boolean format (true - On , false - Off).</p>
<p><strong>example</strong>:</p>
<p> //Reads coils 00020 ... 0056 from slave 17<br>
//abCoils(0) is 00020 , abCoils(0) is 00021 ...</p>
<p> short nQnt;<br>
short nErr;<br>
nQnt = (short)37;<br>
boolean[] abCoils;</p>
<p> abCoils = new boolean[nQnt];</p>
<p> nErr = objModbus.ReadOutputStatus((short)17,19 ,nQnt, abCoils);<br>
<br>
if (nErr!=Modbus.ERR_OK) {<br>
<br>
System.out.println("Error Reading Output
status"); <br>
<br>
}<br>
<br>
for (i=0;i<nQnt;i++) {<br>
System.out.println("["+(i+nDataStart)+"]="+abCoils[i]);<br>
} </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> </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& anRegValues);</strong></font></p>
<p> </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> short nQnt;<br>
short nErr;<br>
nQnt = (short)22;<br>
boolean[] abCoils;</p>
<p> abCoils = new boolean[nQnt];</p>
<p> nErr = objModbus.ReadInputStatus((short)17,196 ,nQnt, abCoils);<br>
<br>
if (nErr!=Modbus.ERR_OK) {<br>
<br>
System.out.println("Error Reading Input
status"); <br>
<br>
}<br>
<br>
for (i=0;i<nQnt;i++) {<br>
System.out.println("["+(i+nDataStart)+"]="+abCoils[i]);<br>
} </p>
<p> </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 nError;<br>
<br>
nErr = objModbus.PresetSingleRegister((short)17,(int)1,(double)3); //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> <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>
<br>
if (nErr!=Modbus.ERR_OK) {<br>
<br>
System.out.println("Error setting
Registers"); <br>
<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> </p>
<p><a name="Modbus.ForceMultipleCoils"></a><font size="5"><strong>ForceMultipleCoils</strong></font></p>
<p> <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> </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> </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">
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 + -