This function writes the specified HOLDING REGISTERS to a modbus server.
|
i32 mbc_write_reg (i32 mbc, i32 offsHRStart, i32 nHR, i32 endian, source)
|
|
Handle value returned by mbc_init()
|
|
Initial index of the HOLDING REGISTER
|
|
Number of HOLDING REGISTERs to be written.
NOTE: The maximum number of HOLDING REGISTERs that can be written is 123.
|
|
Type of endian to be used:
|
|
0 [EM_B_16]
|
Big Endian in the single word. (default)
|
1 [EM_L_16]
|
Little Endian in the single word
|
2 [EM_B_32]
|
Big Endian in 32 bits
|
3 [EM_L_32]
|
Little Endian in 32 bits
|
4 [EM_MB_32]
|
Middle Big Endian in 32 bits
|
5 [EM_ML_32]
|
Middle little Endian in 32 bits
|
6 [EM_B_64]
|
Big Endian in 64 bits
|
7 [EM_L_64]
|
Little Endian in 64 bits
|
8 [EM_MB_64]
|
Middle Big Endian in 64 bits
|
9 [EM_ML_64]
|
Middle little Endian in 64 bits
|
|
|
Area where to take data to write.
Can be i16/u16/i32/float/real or array of i16/u16/i32/float/real
|
|
Returns:
|
|
0 [MBC_OK]
|
Command executed
|
-1 [MBC_INVAL]
|
Invalid arguments
|
-2 [MBC_BUSY]
|
Resource occupied
|
-3 [MBC_PERM]
|
Permission denied
|
-4 [MBC_CONN]
|
Connection failed
|
-5 [MBC_NOBUFS]
|
Buffer exhausted
|
-6 [MBC_NOMEM]
|
Insufficient memory
|
-7 [MBC_TX_ERR]
|
Transmission error
|
-8 [MBC_RX_ERR]
|
Receive error
|
-9 [MBC_TIMEOUT]
|
Blocking command timeout
|
-10 [MBC_EXC_CODE_1]
|
Response with exception 1 (function code not supported by server)
|
-11 [MBC_EXC_CODE_2]
|
Response with exception 2 (invalid address)
|
-12 [MBC_EXC_CODE_3]
|
Response with exception 3 (invalid quantity or value)
|
-13 [MBC_EXC_CODE_4]
|
Response with exception 4 (operation failed)
|
-14 [MBC_WRONG_ANSWER]
|
Invalid response
|
-15 [MBC_INVAL_MBC]
|
Invalid mbc id
|
|
|
Task
|
|
The function is blocking. Exits only when the task is completed
|