правильно переставить байты переменной Real для SCADA

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
Post Reply
a_gricaj
Posts: 181
Joined: Wed Mar 19, 2008 1:12 pm
Location: Ukraine

правильно переставить байты переменной Real для SCADA

Post by a_gricaj » Sat Oct 07, 2017 8:44 am

Здравствуйте,
Подскажите пж как правильно переставить байты в переменной тип REAL - это нужно для корректного отображения переменной на SCADA стороннего производителя,

Rex2701
Posts: 249
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: правильно переставить байты переменной Real для SCADA

Post by Rex2701 » Sat Oct 07, 2017 8:55 am

0 <-> 3
1 <-> 2

a_gricaj
Posts: 181
Joined: Wed Mar 19, 2008 1:12 pm
Location: Ukraine

Re: правильно переставить байты переменной Real для SCADA

Post by a_gricaj » Sat Oct 07, 2017 9:02 am

Ну, это понятно, спс, а как это сделать в SCL? Может есть какая-то стандартная функция ???

Rex2701
Posts: 249
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: правильно переставить байты переменной Real для SCADA

Post by Rex2701 » Sat Oct 07, 2017 10:20 am

Стандартной нет.
В STL есть инструкции CAW и CAD.
А на чистом SCL придётся использовать конструкцию AТ, чтобы на входной и выходной REALы наложить массивы из 4-х байт.

Schtiel
Site Admin
Posts: 1098
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

Post by Schtiel » Sat Oct 07, 2017 8:35 pm

Code: Select all

VAR_TEMP
...
rValue : REAL;
rValueBytes AT rValue : ARRAY[0..3] OF BYTE ;
bTmp : BYTE ;
...
END_VAR
...
bTmp := rValueBytes[0];
rValueBytes[0] := rValueBytes[3];
rValueBytes[3] := bTmp;
bTmp := rValueBytes[1];
rValueBytes[1] := rValueBytes[2];
rValueBytes[2] := bTmp;
...

Post Reply