Hoe kunnen we helpen?
Status van spoel 0x (FC=01) lezen in Modbus RTU met HMI
Deze handleiding behandelt alleen de Modbus Master-functie van de FC01 HMI. Dit is een speciale functie voor speciale gevallen en experts.
Functiecode Read Coil Status 0x (FC=01) in de HMI Modbus
Standaard leest de functiecode Read Coil Status 0x (FC=01) in de HMI Modbus het bitregister in bytes.
Dit betekent dat om het bit in register 34 te lezen, de HMI een “Read Coil Status FC01”-opdracht stuurt om register 32 (INT(34/8)*8) te lezen met een lengte van 8 bits (d.w.z. bit 32 tot 40). Vervolgens wordt bit 34 opgehaald.
Dus om bits 33, 34, 35 en 36 van hetzelfde scherm te lezen, stuurt het een enkel verzoek (register 32 lengte 8)
Sommige apparaten ondersteunen dit type lezen echter niet.
Lees alleen de gevraagde bits, niet per byte
In de afbeelding rechts kunnen we zien dat we register 34 alleen voor lengte 1 van de spoel lezen.
- Kopieer deze 2 bestanden (modbus_rtu_master.dll en modbus_rtu_master.so) naar hun respectievelijke directory’s waar de HMI-Tool software staat (C:\NProgram Files (x86)\NHMITool7.0)

- Voeg deze macro toe aan “Init Script”.
#include "MacroInit.h"
void Macro_main(IN *p)
{
MarcoInit
//ToDo
//RemoveHMIError = 0;// Voor de juiste "ReadCoilStatus FC=01": Voeg de bestanden modbus_rtu_master.dll en modbus_rtu_master.so toe
LocalWord[50100]=1; // Instellen op 1 voor een "ReadCoilStatus FC=01" die per bit leest en niet per byte
}
- Zorg ervoor dat de symbolen (Bit Lamp,…) voor de bits die je wilt lezen op een ander scherm staan dan het opstartscherm (er moet een schermverandering zijn om dit effect te laten hebben)
- Laad het project en test het!