Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Надежность Modbus и регистры ошибок

  1. #1

    По умолчанию Надежность Modbus и регистры ошибок

    На шине RS-485/Modbus иногда случаются ошибки .

    Одна из причин - новые прошивки ПЛК (эта тема уже неоднократно поднималась). Похоже, выполнение советов по сокращению программы и увеличению времени цикла снижает их частоту, но не убирает полностью. Но сейчас не об этом. В конце концов, есть и другие причины. Например, слейв-устройство может притормозить и ответить с запозданием, дополнительно испортив ответ другого . При небольщой частоте ошибок с ними можно было бы жить, если научиться их отлавливать. Есть регистры last_address и last_error, только как ими воспользоваться?

    Вот простой пример. Имеются два слейва, например, МДВВ №1 с адресом 16 и МДВВ №2 с адресом 32. Отключим МДВВ №2 от 485 совсем и запустим такую программу (разумеется, назначив last_address и last_error на соответствующие %Q - а почему, кстати %Q, а не %I?)
    VAR
    mdvv1_fault: BOOL:=FALSE;
    mdvv2_fault: BOOL:=FALSE;
    mdvv1_ok: BOOL:=FALSE;
    mdvv2_ok: BOOL:=FALSE;
    END_VAR
    IF last_error<>0 AND last_address=16 THEN
    mdvv1_fault:=TRUE;
    END_IF
    IF last_error<>0 AND last_address=32 THEN
    mdvv2_fault:=TRUE;
    END_IF
    IF last_error=0 AND last_address=16 THEN
    mdvv1_ok:=TRUE;
    END_IF
    IF last_error=0 AND last_address=32 THEN
    mdvv2_ok:=TRUE;
    END_IF
    У меня обнаруживается, что через некоторое время все 4 переменные становятся TRUE! Ну ладно, допустим, mdvv1_fault ловит какие-то редкие ошибки исправного МДВВ, но как устанавливается mdvv2_ok?

    Может, не нужно углубляться в эти тонкости? Тогда ближе к практике - кто подскажет, как сделать такой ФБ:
    FUNCTION_BLOCK Reliable_Modbus_Input
    VAR_INPUT
    Input_Reg AT %I*: WORD;(* Регистр Modbus уст-ва *)
    END_VAR
    VAR OUTPUT
    Fault: BOOL;(* TRUE, если ни разу не удалось прочитать из устройства без ошибки за некоторое время, например,0.5 с *)
    Value: WORD;(* Значение, считанное при последнем удачом обмене *)
    END_VAR
    Т. е. единичные сбои нужно игнорировать, удерживая старое значение (Modbus-master при сбое выдает все нули, что во многих задачах совершенно недопустимо, даже если это случается раз в сутки!). А длительное прерывание обмена диагностировать как неисправность.
    Последний раз редактировалось alex1963; 30.01.2009 в 22:45.

  2. #2

    По умолчанию

    1. Оставьте контроль только ошибок.
    2. Условие должно выглядеть так:
    IF last_error=81 AND last_address=16 THEN

    <>0 - слишком общее.

  3. #3

    По умолчанию

    я пытался такой if сделать, чтобы проверять адрес и 81, но до конца не довел, ибо вот так в лоб все равно ошибки устанавливаются. 81 моргает периодически, так что когда разберусь с новой панелью, буду думать, как сюда таймер прикрутить или еще что, чтоб только статическую ошибку ловить.

  4. #4

    По умолчанию

    Здравствуйте.
    у меня ПЛК 150, по 485у подключены МВУ и МВА, протокол ModBus RTU, скорость максимальная 115200.
    Контролирую ошибку связи 81: в минуту проходит от трёх ошибок и больше. на ошибку стоит задержка в три минуты, но иногда ошибка длится дольше(даже когда система в ожидании и нет никаких вибраций) и у меня проходит авария.
    Подскажите, на какие настройки связи ПЛК, МВУ и МВА следует обратить внимание чтобы свести к минимуму эту ошибку?

  5. #5

    По умолчанию

    плиззз, ответе мне пожалуста сегодня,
    мне второй раз(впервый раз ограничился увеличением таймера ошибки, не помогло) из-за этой ошибки в москву в эту ночь переться нужно, а что делать я догадываюсь, но смутно...
    к тому же у них там на предприятии с интернетом туго (потолончикам))), а мой модем в ноуте тормознутый и очень не надёжный - поэтому от туда до форума я вряд ли доберусь..
    войдите в положение!!!пожалуйста!!!

  6. #6
    Пользователь
    Регистрация
    15.12.2006
    Адрес
    Калуга
    Сообщений
    157

    По умолчанию

    попробуйте уменьшать скорость обмена постепенно. если ошибки пропадут
    , надо смотреть электро магнитную совместимость (при условии если все остальное о*кей). с уважением михаил.

  7. #7

    По умолчанию

    спасибо, завтра попробую...
    думаю на этот раз всё получится,
    но на всякий случай возьму с собой бубны и шаманские палочки)))

  8. #8

    По умолчанию

    достали уже меня эти бубны....

  9. #9

    По умолчанию

    1. по любому протоколу и интерфейсу всегда будут ошибки в реальных условиях. важен их процент.
    2. неправильная настройка сети увеличивает процент ошибок.
    3. скорость максимальная 115200 - а какова длина линии? 115200 - это ну метра 2-3, максимум 5 хорошим кабелем. дальше без гарантии.
    4. вы под бубнами подразумеваете "надо что-то делать и читать документацию"? тогда да, продукция фирмы овен требует бить в бубен.

  10. #10

    По умолчанию

    длинна кабелюки малая, по 15 см от блока до блока. силовых рядом нет.
    оказалось что по скорости я ошибся,там стоит 38400. переделывать не стал. вместо этого уменьшил частоту опроса с 100мс до 1с - количество ошибочных пакетов на порядок уменьшилось, аж до 0.1% (примечательно что подавляющее количество ошибок по адресу 32-мву, по адрессу 8-мва даже не наблюдал). добавил архивацию ошибок.
    уезжал я в этот же день, на утро по приезду мне сообщили что на 15ом часе опять сработала ошибка связи по модбасу (задержка на всплытие ошибки 30с).
    ошибки у меня генерятся в одном месте, поэтому программный глюк маловероятен.
    на днях поеду снова, пробуду несколько дней, посмотрю архив, покурю бамбук и отключу нах эту ошибку, посмотрю что будет... о результатах сообщу...

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

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