Это мне не интересно.

Но интересно вот что. Можно ли этот код на ST переписать на FBD?

Код:
PROGRAM MHO
VAR
	ItemTank: INT := 0;
	ItemConsole: INT := 0;
	TankItem: POINTER TO Tank;
	ConsoleItem: POINTER TO Console;
	PumpItem: POINTER TO Pump;
END_VAR

FOR ItemTank := 1 TO 12 DO
	TankItem := ADR(Tank[ItemTank]);

	IF TankItem^.IdPump > 0 THEN
		PumpItem := ADR(Pump[TankItem^.IdPump]);

		IF TankItem^.IdConsole > 0 THEN
			ConsoleItem := ADR(Console[TankItem^.IdConsole]);

			IF PumpItem^.OnTMR.Q THEN
				ConsoleItem^.LampStart := 0.5;
			ELSE
				ConsoleItem^.LampStart := 1;
			END_IF

			IF TankItem^.Level1 AND NOT TankItem^.AlarmLevelD THEN
				IF ConsoleItem^.KeyStart AND ConsoleItem^.KeyStop THEN 
					PumpItem^.State := TRUE;
				END_IF
			ELSE
				PumpItem^.State := FALSE;
			END_IF

			IF NOT ConsoleItem^.KeyStop AND NOT ConsoleItem^.KeyStart THEN
				PumpItem^.State := FALSE;
			END_IF
		END_IF
	END_IF
END_FOR