Для начала попробуйте поменять Application.System.Regulators.P.Value.WordArray[0] и Application.System.Regulators.P.Value.WordArray[1] местами.
Т.е.
Application.System.Regulators.P.Value.WordArray[1]
Application.System.Regulators.P.Value.WordArray[0]
Если это не поможет - то, возможно, для вашей SCADA надо менять местами не регистры (WORD), а байты (BYTE).
Самый простой способ определить правильный порядок - записываете из SCADA в СПК значение типа REAL (например, 11.22). Смотрите, какой у него порядок байт.
После этого объявляете два экземпляра UNION.
Код:
TYPE Real2SCADA :
UNION
Value:REAL
ByteArray:ARRAY [0..3] OF BYTE;
Modbus: ARRAY [0..1] OF WORD;
END_UNION
END_TYPE
В одном из них задаете REAL, и копируете байты из него в другой UNION, при этом меняя их порядок на тот, который нужен SCADA. После этого привязываете к регистрам слэйва WORD из второго UNION.