ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / WLanguage functions / Communication / Modbus functions
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Writes one or more registers (16-bit values) to a Modbus slave, starting at a specific address.
Remarks:
  • This function blocks the application until the slave acknowledges the message or until the session timeout is exceeded.
  • The single-bit write operation corresponds to Modbus function code 06 (Write Single Holding Register).
  • The multiple-bit write operation corresponds to Modbus function code 16 (Write Multiple Holding Registers).
New in version 2024
WEBDEV - Server codeWindows This function is now available for WEBDEV websites in Windows.
WEBDEV - Server codeLinux This function is now available for WEBDEV websites in Linux.
Example
// Create a session and connect to a Modbus server
Session is modbusSession
Session = ModbusConnectTCP("192.168.1.7")

// If the connection fails, display the error
IF ErrorOccurred = True THEN
Trace(ErrorInfo())
ELSE
// Write a sequence of 5 16-bit integers starting at address 0x42
IF NOT ModbusWriteRegister(Session, 0x42, [0xF8C5, 1637, -1542, 0, 0x00A8]) THEN
Trace(ErrorInfo())
END
END

// Disconnection
ModbusDisconnect(Session)
Syntax

Writing a 16-bit value to a Modbus slave Hide the details

<Result> = ModbusWriteRegister(<Session> , <Address> , <Value>)
<Result>: Boolean
  • True if written successfully,
  • False otherwise. To get more details on the error, use ErrorInfo with the errMessage constant.
<Session>: modbusSession variable
Name of the modbusSession variable that corresponds to the communication session with the Modbus slave.
<Address>: Integer
Value between 0 and 65,535 that corresponds to the address (slave) to which the value must be written.
<Value>: Integer
16-bit number that must be written to the register in the slave.

Writing multiple 16-bit values to a Modbus slave Hide the details

<Result> = ModbusWriteRegister(<Session> , <Address> , <Values>)
<Result>: Boolean
  • True if written successfully,
  • False otherwise. To get more details on the error, use ErrorInfo with the errMessage constant.
<Session>: modbusSession variable
Name of the modbusSession variable that corresponds to the communication session with the Modbus slave.
<Address>: Integer
Value between 0 and 65,535 that corresponds to the address (slave) to which the values must be written.
<Values>: Array
Array of 16-bit integers that must be written to the registers in the slave.
Remarks
CAUTION: Since write operations make it possible to control PLCs, it is recommended to test the different commands before the production phase to make sure the PLCs perform the required operations.
Business / UI classification: Neutral code
Component: wd290com.dll
Minimum version required
  • Version 26
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 12/14/2023

Send a report | Local help