« Close

Datasheets and User Guides

App Notes

Software & Driver


2.3.12 - eWriteAddressByteArray

Write consecutive byte values, specified by an address.


LJM_ERROR_RETURN LJM_eWriteAddressByteArray(
                      int Handle,
                      int Address,
                      int NumBytes,
                      const char * aBytes,
                      int * ErrorAddress)


Handle [in]
A device handle. The handle is a connection ID for an active device. Generate a handle with LJM_Open or LJM_OpenS.
Address [in]
The address that specifies the Modbus register(s) to write.  Address can be found throughout the device datasheet or in the Modbus Map.
NumBytes [in]
The number of consecutive bytes.
aBytes [in]
An array of bytes to be transferred to the device. The array size should be equal to NumBytes.
ErrorAddress [out]
If error, the address responsible for causing an error.


LJM errorcodes or 0 for no error.

This function will append a 00 byte to aBytes for odd-numbered NumBytes.

If NumBytes is large enough, these functions will automatically split writes into multiple packets based on the current device's effective data packet size. Using both non-buffer and buffer registers in one function call is not supported.


The Name version of this function is LJM_eWriteNameByteArray.


[C/C++] Write a Lua script to LUA_SOURCE_WRITE

int LJMError;
int ErrorAddress;
const char * luaScript =
    "LJ.IntervalConfig(0, 1000)\n"
    "while true do\n"
    "  if LJ.CheckInterval(0) then\n"
    "    print(LJ.Tick())\n"
    "  end\n"
const unsigned scriptLength = strlen(luaScript) + 1;

// handle comes from LJM_Open()
LJMError = LJM_eWriteAddressByteArray(
if (LJMError != LJME_NOERROR) {
    // Deal with error