Добрый день.
Проблема есть при работе СПК1хх М01 с ModBus RTU (slave).
Панели подключаем к нашим контролерам по в ModBus режиме slave.
Пишем и читаем с СПК функции 0х06 и 0х03. От 30 до 80 регистров.
Из 30 регистров обычно один совсем не записывается не читается.

Пара регистров периобически сбоят. То ли пакеты ломаные то ли

нет ответа (сказать не могу). После перепрошивки неисправность

переходит на другой регистр. Неисправный регистр просто не

использовал. Но на последнем объекте неответы стали перемещатся

с одного регистра на другой. Изменение таймаута в обмене ничего

не меняет.
Как с этим боротся?
Какой TASK отвечает за работу ModBus?
Стоит библиотека ModBus-slave 3.5.4.2.

Вот код программы из примера.


stComSettings.sPort := 1;
stComSettings.byStopBits := 1;
stComSettings.byParity := 0;
stComSettings.ulBaudrate := 38400;

stComSettingsEx.byByteSize := 8;

bySlaveID:= 80;
bSlaveEnable:= TRUE;

fbComService
(
Enable:= TRUE ,
Settings:= stComSettings,
sets_ex:= stComSetting****
Task:= ComSerice.COM_TSK.OPEN_TSK,
Ready=> ,
handle=>
);

IF bSlaveEnable AND fbComService.Ready THEN

fbModbus_Slave
(
ComHandle:= fbComService.handle,
DevAddr:= bySlaveID,
pBuffer:= ADR(awSlaveBuffer),
BufSize:= SIZEOF(awSlaveBuffer),
NewData=> ,
Error=>
);