Сообщение от
kgsh82
Вообще этот код я взял из встроенной справки. Здесь Errors - компонент биб-ки Cmperrors
Добавив явно библиотеку Cmperrors - компилятор ругаться перестал.
Ни с помощью справки, ни с документацией, ни с гуглом разобраться, что же такое IoDrvStartBusCycle, не получилось.
По поводу прекращения работы Модбас:
Если ПЛК не опрашивать, то перезугрузки ПЛК работу Модбас не останавливают.
Если ПЛК опрашивается, то Модбас отваливается, и далеко не с первой перезагрузкой удается восстановить его работу.
Переписал код на следующий:
Код:
mbserv.xEnable := En;
IF ( mbserv.xError ) THEN
CounterReset:= CounterReset + 1;
mbserv.xReset := TRUE;
IoDrvStartBusCycle := Errors.ERR_SOCK_NOTCONNECTED;
ELSE
mbserv.xReset := FALSE;
IoDrvStartBusCycle := Errors.ERR_OK;
END_IF
mbserv( );
связь стала восстанавливаться примерно за 60 секунд.
Так и должно быть?
Из справки следует, что связь должна восстанавливаться уже на следующий цикл:
"In case of a socket error the reset flag is set, normal request processing then should continue in the next cycle".