Addressing problem
Hi,
I am trying to read coils status from a slave PLC. I have used parts of the program random-
#include"
int main(void)
{
modbus_t *ctx;
int rc;
int nb_fail;
int nb_loop;
long int addr;
int nb;
uint8_t *tab_rq_bits;
uint8_t *tab_rp_bits;
uint16_t *tab_rq_registers;
uint16_t *tab_rw_
uint16_t *tab_rp_registers;
nb = 4;
addr = 30006;
ctx = modbus_
modbus_
if (ctx == NULL) {
fprintf(stderr, "Unable to create the libmodbus context\n");
return -1;
}
if (modbus_
printf("Connexion failed: %s\n",stderr);
modbus_free(ctx);
return -1;
}
tab_rq_bits = (uint8_t *) malloc(nb * sizeof(uint8_t));
memset(tab_rq_bits, 0, nb * sizeof(uint8_t));
rc = modbus_
if (rc != nb)
printf("ERROR modbus_
printf("Address = %d, nb = %d\n", addr, nb);
int i;
for(i=0;i<4;i++)
printf("\n %d \n",tab_
free(tab_rq_bits);
modbus_close(ctx);
modbus_free(ctx);
}
The output is:
#mymodbuscomm
ERROR modbus_read_bits
Address = 30006, nb = 4
0
0
0
0
I think this is an addressing problem. Any help/suggestions on this one would be appreciated.
Question information
- Language:
- English Edit question
- Status:
- Answered
- For:
- libmodbus Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Can you help with this problem?
Provide an answer of your own, or ask JM for more information if necessary.