Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 14 из 14

Тема: перезагрузка ПЛК73 при использовании функции из библиотеки modbus

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Вот прога за вычетом всего лишнего

    IF port_opened=2 THEN (*Удачно проинициализировали *)

    CASE Init OF
    1:
    MB_03( (*модбас функция 03*)
    Enable:=1 , (*разрешение работы блока *)
    Mode:=MB_RTU , (*режим передачи*)
    DevAddr:=4 , (*адрес*)
    FirstAddr:=16#1000, (*регистр*)
    Quantity:=1, (*количество регистров*)
    ComHandle:= Settings.Port, (*номер сом-порта*)
    TimeOut:=t#50ms , (*таймаут T#50ms*)
    Buffer:=Buffer, (* буфер данных *)
    );
    IF MB_03.Complete THEN
    x:=BYTE_TO_WORD(BUFFER[1]) OR SHL(BYTE_TO_WORD(BUFFER[0]),8);
    Init:=Init+1;
    END_IF;
    2:
    TON1(IN:=1,PT:=t#5s);
    IF TON1.Q THEN
    Init:=1;
    TON1(IN:=0);
    END_IF;

    END_CASE;
    END_IF;
    Добавил таймер, чтобы опрашивало каждые 5 секунд по совету lara197a. Не помогло.
    Для иллюстрации вот сделал скрин терминала.
    Безымянный.PNG

    На картинке синим выделил запрос, желтым нормальный ответ, красным ненормальный ответ, после которого ПЛК перезагружался.
    На первом красном ответе видно, что частотник пытался ответить правильно, поскольку ЦРЦ совпадает с правильным ответом, только вот первый байт вместо 04 - 82.
    Второй красный - полная чушь.
    После него значение в регистре изменилось, 4 правильных ответа, а потом опять чушь: 40 60 62 54 93, за ним сразу опять неверный ответ, который имеет много общего с предыдущим ответом b0 40 60 62 54 93. следующий неверный ответ потерял первый байт, ЦРЦ ответа правильного, затем опять чушь.


    Разобрался. В настройках порта количество стоповых бит 1 - означает 1,5, а 0 - 1. Ошибки связи не пропали, но ПЛК больше не перезагружается. Вдруг кто с таким же столкнется. Меня удивляет, что были правильные ответы при неправильных настройках.
    Последний раз редактировалось slonegd; 19.02.2015 в 09:17.

  2. #2

    По умолчанию

    Столкнулся с аналогичной проблемой, плк73 перезагружается и сбрасывает все значения. Пользуюсь овеновской библиотекой для Modbus. Заметил следующее.
    Работаю с двумя портами, на одном порту частотники с Modbus.lib, на втором модем с самописным слейвом(проблема не в нем, без этого блока так же перезагружается), подключил к ОРС для проверки работоспособности, отработала программа три дня без отключений. Потом пересоздавал конфигурацию ОРС и перепутал номера COM-портов, на одном интерфейсе оказалось два мастера, на втором три слейва без мастера, и контроллер уходил в постоянную перезагрузку. Найдя проблему подключился просто терминалом на порт с мастером и невпопад слал мастеру всякие символы. Контроллер с 5-10 посылки перезагружался. В отладочном режиме контроллер выдает причину перезагрузки сторожевой таймер.
    В итоге "на столе" с нормально настроенным OPC контроллер работает отлично, на объекте постоянно перезагружается.
    Это аппаратная защита интерфейса, возможно какое-нибудь наведённое напряжение от ПЧ в интерфейс, или всё таки проблема в Modbus.lib по той же причине? на функциях записи одного регистра используются While, контроллер долго отрабатывает точки останова не удалось проверить нормально на каком моменте происходит сбой.
    Последний раз редактировалось Балалай; 10.02.2020 в 11:30.

  3. #3

    По умолчанию

    Нельзя while использовать. представьте помеха собьёт передачу и while никогда не выполнится. ПЛК перегрузится как раз по сторожевому таймеру.
    Сделайте машину состояний. Тогда ПЛК будет работать, точки останова нормально отрабатывать и т.д.
    Тролль-наседка, добрый, нежный и ласковый

  4. #4

    По умолчанию

    Я это писал про Modbus.lib

    FUNCTION_BLOCK MB_UNI_IO
    7-я строчка

    Мастер использовался из библиотеки.
    Непросто разобраться в таком большом листинге, проще написать своего мастера, но мне просто интересна сама реакция ПЛК, на ситуацию когда "два мастера в сети", а в моем случае возможно просто помехи в порт шлют всякий мусор.
    Последний раз редактировалось Балалай; 10.02.2020 в 13:41.

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 09.02.2015, 21:40
  2. Какой тип датчиков выбрать при использовании ТРМ 133 ?
    от inovator в разделе Подбор Оборудования
    Ответов: 3
    Последнее сообщение: 16.03.2012, 11:36
  3. Ответов: 3
    Последнее сообщение: 18.12.2010, 21:14
  4. Перезагрузка при опросе по ModbusTCP
    от Vit74 в разделе ПЛК1хх
    Ответов: 29
    Последнее сообщение: 26.11.2010, 14:39

Ваши права

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