Вход

Просмотр полной версии : Копирование группы переменных



Carter
30.03.2016, 18:08
Добрый вечер. В конфигурации ПЛК154 создан Modbus Slave, который содержит некоторое количество переменных. Вопрос в том, что по некоторому условию мне необходимо присвоить группе переменных значения другой группы переменных, к примеру, всего переменных 40, и необходимо последним 20-ти присвоить значения первых 20-ти, то есть порядок сохранен. Понимаю, что индусятина вроде Var1_1:=Var2_1 неуместна и избыточна. Возможно это сделать с помощью указателей?

Валенок
30.03.2016, 19:15
да, возможно.
тут или индусятина или указатели
вариант с AT% за нормальный вариант не рассматриваю

Carter
31.03.2016, 12:14
да, возможно.
Был бы признателен, если показали на примере, я не совсем представляю как это реализовать...

Хотя, если я правильно понял, нужно взять адрес первой переменной и сдвигать на нужно количество переменных.

Yegor
31.03.2016, 13:41
SysLibMem с её SysMemCpy должна сработать, если участки непрерывные и один размер имеют.

Carter
31.03.2016, 17:54
Сделал так, вполне справляется с задачей:



VAR
VAR_IN:WORD; VAR_OUT:WORD;
ADR_1:POINTER TO WORD;
ADR_2:POINTER TO WORD;
U:INT;
END_VAR

FOR U:=0 TO 20-1 BY 2 DO
ADR_1:=ADR(VAR_IN)+U;
ADR_2:=ADR(VAR_OUT)+U;
ADR_2^:=ADR_1^;
END_FOR