И всё-таки зачем и откуда в ПЛК строка длиннее 255 символов?

строка легко может быть превращена в массив байт, а он может быть и больше 255
Нет необходимости. Строка — уже массив. И она может быть сколь угодно длинной.

Код:
VAR
	s1: STRING;
	s2: STRING(480);
	s3: STRING(560);
	tail, caret: POINTER TO BYTE;
END_VAR

tail := ADR(s1);
caret := ADR(s3);

WHILE tail^ <> 0 DO
	caret^ :=  tail^;
	tail := tail + 1;
	caret := caret + 1;
END_WHILE

tail := ADR(s2);

WHILE tail^ <> 0 DO
	caret^ :=  tail^;
	tail := tail + 1;
	caret := caret + 1;
END_WHILE