Ну в общих чертах оно вроде понятно, но все такие непонимаю почему он нехочет отвечать.
Сейчас пробую так:
P:POINTER TO RBDATA;

IF
SetByte(0,'$2E',1)=1 THEN
P:=GetByte(0);
ELSE
error:=1;
end_if;

И запускаю пошагово. Получается что байт 2E он передает в прибор, а в ответ Нули.

По идее то при отправке единичного запроса он должен хоть чтото ответить.

И еще не дают мне покоя эти SOH, ETX,DLE. Почему мы отбрасываем их? Может быть прибор просто непонимает пустые 2Е?