Цитата Сообщение от VitSSSSS Посмотреть сообщение
А такой вариант:
...
VAR
...
source: ARRAY [0..MAX_ELEMENT] OF BYTE := 8, MAX_ELEMENT(8);
destination: ARRAY [0..MAX_ELEMENT] OF BYTE;
sourcePtr: POINTER TO ARRAY [0..MAX_ELEMENT] OF BYTE;
...
END_VAR

Код:
...
2: sourcePtr:= ADR(source);
destination:= sourcePtr^;
...
у меня на компе это за 32ms, а с SysMemLib за 125ms.
?
Этот вариант я исключил из рассмотрения сразу, т.к. размер копируемого блока данных задается в момент компиляции не может быть изменен в процесс выполнения программы. Это, мягко говоря, не удобно.

Но я его протестировал.

Код №4. Используется указатель на массив.
Время выполнения 78 мс.
Код:
sourcePtr2: POINTER TO ARRAY [0..MAX_ELEMENT] OF BYTE;

FOR j:= 1 TO ITERATIONS_NUMBER DO
	sourcePtr2:= ADR(source);
	destination:= sourcePtr2^;
END_FOR
Время выполнения точно такое же, как и в варианте с SysMemLib. Подозрительно . Похоже в этом варианте скрытно вызывается функция sysMemMove(). А результат 32 мс вы получили, потому что выполняли копирование 1 раз, а не в цикле .

Цитата Сообщение от Игорь Петров Посмотреть сообщение
Будут наказаны за вранье. Кстати, с какого языка они переводили описание ПЛК1хх?
Не понял, к кому этот вопрос, но на всякий случай отвечу - не знаю.