Modbus RTU := eCockpit PFC100 (750-8100) + 750-652

I had the same issue. Digital Twins worked the best for me:

FUNCTION_BLOCK FbSpecialSlave EXTENDS FbDigitalTwinMbSlaveDevice
VAR_INPUT
	bUnitId					: BYTE := 1;
	tScanRate				: TIME := T#200MS;
END_VAR
VAR_OUTPUT
	xError					: BOOL;
	sInfo					: STRING;
	wValue1					: WORD;
	wValue2					: WORD;
	wValue3					: WORD;
END_VAR

VAR
	xTrigger				: BOOL;
	m_FbQuery_0				: WagoAppPLCModbus.FbQuery(THIS^);
	m_FbQuery_1				: WagoAppPLCModbus.FbQuery(THIS^);
	m_FbQuery_2				: WagoAppPLCModbus.FbQuery(THIS^);
	wState					: WORD;
	oDelay					: TON;
END_VAR


CASE wState OF
0:
	IF IMbMasterMultiQuery = 0 THEN
		RETURN;
	ELSIF NOT IMbMasterMultiQuery.xConnected THEN
		RETURN;
	ELSE
		wState := 10;
	END_IF
10:
	oDelay(
		IN		:= TRUE,
		PT		:= tScanRate );
	IF oDelay.Q THEN
		oDelay(
			IN	:= FALSE );
		m_FbQuery_0.bUnitId := bUnitId;
		m_FbQuery_0.bFunctionCode := 3;
		m_FbQuery_0.uiReadAddress := 0;
		m_FbQuery_0.uiReadQuantity := 1;
		protAttachMbQuery(m_FbQuery_0);
		
		m_FbQuery_1.bUnitId := bUnitId;
		m_FbQuery_1.bFunctionCode := 3;
		m_FbQuery_1.uiReadAddress := 1;
		m_FbQuery_1.uiReadQuantity := 1;
		protAttachMbQuery(m_FbQuery_1);
		
		m_FbQuery_2.bUnitId := bUnitId;
		m_FbQuery_2.bFunctionCode := 3;
		m_FbQuery_2.uiReadAddress := 2;
		m_FbQuery_2.uiReadQuantity := 1;
		protAttachMbQuery(m_FbQuery_2);
	END_IF
END_CASE

This FB has two methods
METH: onError

(*
	after each request with errors is method called
*)
METHOD onError : bool
VAR_INPUT
	IQuery		:	I_Query;
	utResponse	:	typMbResponse;
	oStatus		:	WagoSysErrorBase.FbResult;
END_VAR

xError := TRUE;
sInfo := oStatus.GetDescription();

METH onResponse:

METHOD onResponse : BOOL
VAR_INPUT
	IQuery		:	I_Query;
	utResponse	:	typMbResponse;
END_VAR

xError := FALSE;
sInfo := 'OK';

IF IQuery = m_FbQuery_0.IQuery THEN
	wValue1 := utResponse.awData[0];
ELSIF
	IQuery = m_FbQuery_1.IQuery THEN
	wValue2 := utResponse.awData[0];
ELSIF
	IQuery = m_FbQuery_2.IQuery THEN
	wValue3 := utResponse.awData[0];
END_IF

No use the FbMbMasterMultiQuerySerial as your Master. connect the IMbMasterMultiQuery from your master to the Slave Devices. I_Port ist the 750-652 Card.

I hope this helps.

Cheers

2 Likes