Hardware-specific Pin Mapping for Modbus Synchronization
masterWhen synchronizing Modbus data with physical Controllino pins, the pin assignments depend on the hardware model being used. Ensure both Server and Client use the same definitions to maintain synchronization.
Controllino MAXI
- Digital Coils/Inputs: Uses
NUMBER_INPUTS_COILS(5). - Analog Registers: Uses
NUMBER_IN_HOLD_REGISTERS(5). - Analog Start Pin:
CONTROLLINO_A5.
Controllino MEGA
- Digital Coils/Inputs: Uses
NUMBER_INPUTS_COILS(11). - Analog Registers: Uses
NUMBER_IN_HOLD_REGISTERS(5). - Analog Start Pin:
CONTROLLINO_A11.
Pin Initialization Pattern
To map Modbus data to pins, iterate through the configured counts and use pinMode or analogWrite to initialize the hardware state.
// Example for MAXI digital pin setup
for (int i = 0; i < NUMBER_INPUTS_COILS; i++) {
pinMode(CONTROLLINO_A0 + i, INPUT);
pinMode(CONTROLLINO_R0 + i, OUTPUT);
digitalWrite(CONTROLLINO_R0 + i, LOW);
}
// Example for Analog pin setup
for (int i = 0; i < NUMBER_IN_HOLD_REGISTERS; i++) {
pinMode(FIRST_ANALOG_INPUT_PIN + i, INPUT);
pinMode(CONTROLLINO_D0 + i, OUTPUT);
analogWrite(CONTROLLINO_D0 + i, 0);
}