Дак а какой смысл писать заново Ваши блоки собраны на этой бибке, я же не просто отключил выхода 8А. а пересобрал ФБ, всего 16 регистров
CASE marker OF


0: get_modbus(
Enable:=trig.Q1 , (* разрешение работы блока *)
Mode:=Modd , (*режим передачи*)
DevAddr:=Addr , (*адрес*)
FirstAddr:=RegAddr1 , (*номер регистра*)
Quantity:=2, (*количество регистров*)
ComHandle:=handle ,(*номер COM-порта*)
TimeOut:=TimeOut , (*Таймаут T#50ms*)
Buffer:=Buffer , (* буфер данных *)
Complete=>cmpl , (* скопировать признак завершения операции *)
Exception=>Err , (* скопировать регистр ошибок *)
ByteCnt=>DataSize ); (*кол-во считанных байтов *)




IF cmpl THEN
IF Err=0 THEN (*Если нет ошибок, то получаем данные из буфера*)
inp1:=0;

ptr_x:=ADR(inp1);
ptr_x^:=buffer[7];
ptr_x:=ptr_x+1;
ptr_x^:=buffer[6];
ptr_x:=ptr_x+1;
ptr_x^:=buffer[5];
ptr_x:=ptr_x+1;
ptr_x^:=buffer[4];

marker:=1;
ErrCount:=0;
ELSE
IF (ErrCount >= ErCL) THEN
marker:=1;
ErrCount:=0;