PDA

Просмотр полной версии : Свап



Роман_33
12.07.2020, 12:09
Здравствуйте! Подскажите или ткните носом. Получаю данные с весового терминала в формате REAL, а так как приходят они криво,надо переставить слова или байты. Пытался через реальные адреса кувыркнуть, так он не пересылает (MOVE) почему то на реальный адрес типа AT%MD10. Просто ноль на выходе функции. Как еще можно сделать?

capzap
12.07.2020, 14:18
Можно ещё сделать, это почитать документацию на Конфигуратор или воспользоваться поиском на форуме

TOPan
12.07.2020, 14:27
Пример функции перестановки слов
FUNCTION fSwapReal : REAL
VAR_INPUT
fVal : REAL;
END_VAR
VAR
pReal : POINTER TO ARRAY[0..1] OF WORD;
pResult : POINTER TO ARRAY[0..1] OF WORD;
END_VAR


pReal := ADR( fVal );
pResult := ADR( fSwapReal );
pResult^[ 0 ] := pReal^[ 1 ];
pResult^[ 1 ] := pReal^[ 0 ];

Роман_33
12.07.2020, 14:40
Вы хотите сказать, что можно в конфигураторе так сделать,что нормальный результат сразу будет? Вы простите моё невежество, просто всю дорогу с Симатиком работал,а тут с импортозамещением это чудо подсунули,изучать просто некогда.

petera
12.07.2020, 18:37
Вы хотите сказать, что можно в конфигураторе так сделать,что нормальный результат сразу будет? Вы простите моё невежество, просто всю дорогу с Симатиком работал,а тут с импортозамещением это чудо подсунули,изучать просто некогда.

В UMD, в котором читаете REAL, поменять значение Byte Sequence
50135

Роман_33
12.07.2020, 19:42
Вот спасибо,добрый человек,завтра попробую.

Роман_33
13.07.2020, 05:52
В UMD, в котором читаете REAL, поменять значение Byte Sequence
50135

Все получилось. Еще раз спасибо, Вы сэкономили мне кучу времени.

Rask
13.07.2020, 09:08
это чудо подсунули
Ну что за люди, подсунули, чудо - вот зачем?