Показано с 1 по 10 из 14

Тема: Помогите с ПЛК 308

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    03.03.2008
    Адрес
    Новосибирск
    Сообщений
    238

    По умолчанию

    Цитата Сообщение от ISh Посмотреть сообщение
    Разобрался - понравился.
    Только появилось два вопроса:
    1) Опрашиваю ПЛК Лектусом - данные идут.
    Перезагружаю ПЛК - связь не восстанавливается, всё время mbserv.xError = TRUE.
    Еще раз перезагружаю ПЛК - связь восстановилась.
    Как сделать, чтобы связь всегда поднималась?
    2) Для чего нужны строки:
    Код:
    IoDrvStartBusCycle := Errors.ERR_SOCK_NOTCONNECTED;
    IoDrvStartBusCycle := Errors.ERR_OK;
    И компилятор ругается, что "Идентификатор 'Errors' не задан".

    Вообще этот код я взял из встроенной справки. Здесь Errors - компонент биб-ки Cmperrors

  2. #2
    Пользователь
    Регистрация
    02.08.2011
    Адрес
    Архангельск
    Сообщений
    13

    По умолчанию

    Цитата Сообщение от 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".

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •