Hi all,
reading out parameters from a Weg CFW500 VFD using a Siemens S7-1214 CPU over Modbus RTU (CB1241). Using the PLC's built-in Modbus instructions, I'm able to communicate with the VFD. I'm having a bit of an issue though, as there are multiple parameters I'd like to read out, and the parameter numbers are not consecutive. In one modbus master command, I can read out up to 125 consecutive modbus holding registers. However, I've noticed that if the VFD skips a parameter (i.e. goes from P0007 to P0009), if the missing word is included in the address range to be read, that read will return nothing for all parameters. In order to get around this, I'm reading one parameter at a time using a loop. However, this is time intensive; each execution is something like 35ms, so reading 12 parameters is already almost half a second, whereas a single read of 8 parameters was 45ms.
1) Does anyone know of a way to read multiple non-consecutive modbus holding registers with a single modbus master instruction call?
2) Also, does anyone know why the existence of a missing parameter returns nothing for all variables, and if there are any other ways around this?
Thanks.
reading out parameters from a Weg CFW500 VFD using a Siemens S7-1214 CPU over Modbus RTU (CB1241). Using the PLC's built-in Modbus instructions, I'm able to communicate with the VFD. I'm having a bit of an issue though, as there are multiple parameters I'd like to read out, and the parameter numbers are not consecutive. In one modbus master command, I can read out up to 125 consecutive modbus holding registers. However, I've noticed that if the VFD skips a parameter (i.e. goes from P0007 to P0009), if the missing word is included in the address range to be read, that read will return nothing for all parameters. In order to get around this, I'm reading one parameter at a time using a loop. However, this is time intensive; each execution is something like 35ms, so reading 12 parameters is already almost half a second, whereas a single read of 8 parameters was 45ms.
1) Does anyone know of a way to read multiple non-consecutive modbus holding registers with a single modbus master instruction call?
2) Also, does anyone know why the existence of a missing parameter returns nothing for all variables, and if there are any other ways around this?
Thanks.