Claramente mis dudas se deben en grandisima parte a que no es mi fuerte la programación pero siguiendo la libreria encuentro esto:
// flush receive buffer before transmitting request
while (_serial->read() != -1);
// transmit request
if (_preTransmission)
{
_preTransmission();
}
for (i = 0; i < u8ModbusADUSize; i++)
{
_serial->write(u8ModbusADU[i]);
}
u8ModbusADUSize = 0;
_serial->flush(); // flush transmit buffer
if (_postTransmission)
{
_postTransmission();
}
// loop until we run out of time or bytes, or an error occurs
u32StartTime = millis();
A partir de linea Nº 600 de https://github.com/4-20ma/ModbusMaster/blob/master/src/ModbusMaster.cpp
por lo que entiendo la funcion "ModbusMasterTransaction" es la que genera la trama y la envia..