(* WORKING STATE MACHINE *)
CASE (instruction) OF
mbMFC_READ_HOLDING_REGISTERS:
mbReadHolding.enable := 1;
mbReadHolding.pStation := ADR(mb_station);
mbReadHolding.startAddress := register_address;
//mbReadHolding.value := register_value;
mbReadHolding.pData := ADR(input_values);
mbReadHolding.dataSize := SIZEOF(input_values);
xstatus:=mbReadHolding.status;
mbReadHolding(); (* call function block *)
IF (mbReadHolding.status <> ERR_FUB_BUSY) THEN
fub_status := mbReadHolding.status;
check_status := TRUE; (* flag to check status *)
instruction_ready := TRUE; (* flag marks instruction "ready" *)
END_IF
END_CASE
mbReadHolding.enable = 1;
mbReadHolding.pStation = &mb_station;
mbReadHolding.startAddress = register_address;
mbReadHolding.pData = &input_values;
mbReadHolding.dataSize = sizeof(input_values);
xstatus=mbReadHolding.status;
mbReadHolding();
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?