Показано с 1 по 8 из 8

Тема: Ошибка связи между ПЛК110-60[М2] и модулями МВ110-224.8А

  1. #1

    По умолчанию Ошибка связи между ПЛК110-60[М2] и модулями МВ110-224.8А

    Имеется контроллер ПЛК110-60[М02] и аналоговые модули ввода МВ110-224.8А.
    Вылетает постоянно ошибка по RS-485 с кодом 81. При этом есть задержка на появление ошибок связи(см.код), при чем очень длительная(2m). И все равно время от времени она вылетает.
    С Codesys не работал лет 10, поэтому на всякий случай выкладываю код. :
    Код:
                     IF  MB_L_ADDR = 2 AND MB_L_ERR <> 0 AND NOT AlarmVariables.ErrorCode[2].6 THEN
    			(*Отсчет времени проверки ошибки*)
    			TON_Err38(IN := TRUE, PT := T#2m);
    			IF TON_Err38.Q THEN
    				(*Авария не ушла, выставляем флаг ошибки*)
    				(*Выставляем флаг аварии*)
    			 	AlarmVariables.ErrorCode[2].6 := TRUE;
    				(*Получаем последнюю ошибку модуля*)
    				LastError_A2 := MB_L_ERR;
    				(*Сброс квитирования звука*)
    				KvitErrors := FALSE;
    				(*Сброс таймера*)
    				TON_Err38(IN:= FALSE);
    			END_IF;
    		ELSE
    			(*Если флуктуация, то скидываем таймер*)
    			IF (TON_Err38.Q OR TIME_TO_DWORD(TON_Err38.ET) <> 0) THEN
    				(*Делаем сброс таймера*)
    				TON_Err38(IN:= FALSE);
    			END_IF;
    			(*Сбрасываем ошибку*)
    			IF NOT AlarmVariables.ErrorCode[2].6 AND LastError_A2 <> 0 THEN LastError_A2 := 0; END_IF;
    		END_IF;
    Данные модулей :
    ПЛК110-60[М2] -> прошивка - 1.2.42 , таргет - 3.3
    Модули МВ110-224.8А -> прошивка - 2.1

  2. #2

    По умолчанию

    Ты показал код, которым ты отслеживаешь ошибку. Но не показал то, как ты модуль опрашиваешь и при помощи чего.
    Вот тебе мои тезисы и идеи:
    1. Если читать .8А групповыми запросами (когда читаешь сразу много-много регистров подряд, как я тут писал - https://owen.ru/forum/showthread.php?t=35094) - иногда модуль отваливается с ошибкой. Так как читаю подряд - то на это пофиг, но сам факт - есть, да. И из-за него все обычные алгоритмы проверки на ошибки сразу и считают это потерей связи.
    2. В своих алгоритмах обработки ошибок я написал мутную (но рабочую) конструкцию, которая проверяет СЕРИИ ошибок подряд. Точнее, отсуствие серий ошибок подряд в течение заданного времени.
    Алгоритм там примерно такой, кривой:
    а) По каждой ошибке запускаем таймер времени TOF, чтобы он считал заданную выдержку. Пусть будет зваться tError.
    б) По его выходу запускаем таймер времени TON с выдержкой большей, чем у первого. Пусть будет зваться tSeries.
    С выхода tSeries забираем сигнал "Авария" (если он включен) или "ОКей" (если выключен).

    То есть, у меня тревога поднимается, условно "...если попёрли ошибки чаще чем tError в течение tSeries - тогда модуль отвалился".
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  3. #3

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Ты показал код, которым ты отслеживаешь ошибку. Но не показал то, как ты модуль опрашиваешь и при помощи чего.
    Вот тебе мои тезисы и идеи:
    1. Если читать .8А групповыми запросами (когда читаешь сразу много-много регистров подряд, как я тут писал - https://owen.ru/forum/showthread.php?t=35094) - иногда модуль отваливается с ошибкой. Так как читаю подряд - то на это пофиг, но сам факт - есть, да. И из-за него все обычные алгоритмы проверки на ошибки сразу и считают это потерей связи.
    2. В своих алгоритмах обработки ошибок я написал мутную (но рабочую) конструкцию, которая проверяет СЕРИИ ошибок подряд. Точнее, отсуствие серий ошибок подряд в течение заданного времени.
    Алгоритм там примерно такой, кривой:
    а) По каждой ошибке запускаем таймер времени TOF, чтобы он считал заданную выдержку. Пусть будет зваться tError.
    б) По его выходу запускаем таймер времени TON с выдержкой большей, чем у первого. Пусть будет зваться tSeries.
    С выхода tSeries забираем сигнал "Авария" (если он включен) или "ОКей" (если выключен).

    То есть, у меня тревога поднимается, условно "...если попёрли ошибки чаще чем tError в течение tSeries - тогда модуль отвалился".
    Уезжал на праздники, вот настройки из Codesys, опрос по 485. Все в скриншотах приложил. Настройки самих модулей(для аналоговых разные только адреса) и соответстенно, что в программе.

  4. #4

    По умолчанию

    Валенок Поддерживаю. ОВЕНский форум же даёт вставлять нормально картинки.

    W1nn1ep00h По криво рассмотренным картинкам вроде всё ОК. Можешь поиграться ил framing time (сделать его 2-5-10 мсек, если это не будет влиять на скорость), сделать по моему примеру через STRING (Валенок верно говорит, и спасибо ему за советы - тема офи**нская), и поиграться с самим алгоритмом-детектором ошибок.
    Последний раз редактировалось Алексеев Савр; 10.01.2022 в 08:40.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  5. #5

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Заместо рекламного дерьма выложил бы проект, пользы больше было б.


    PS
    Со строками проще : ​
    по 1 запросу для каждого 8А (2..3 сек polltime)
    + 1 запрос в 8Р (both по ходу)
    Я на автомате через хост картинок,извеняйте. По поводу сделать, через строки попробую. А вообще , я так понимаю это такая особенность 110+их же модулей? Или просто косячный таргет и нужно откатится на более проверенный(если да, то скажите какой)?

  6. #6

    По умолчанию

    W1nn1ep00h Я использую такие модули:
    * .16ДН
    * .32ДН
    * .16Р
    * .32Р
    * .8А
    * .6У

    Время опроса всех модулей на ПЛК110, кроме .8А у меня обычно окол 15-25 мсек. Время опроса .8А - 1-2 секунды.
    Вот сбои связи есть обычно только с .8А, и по ходу это фишка модуля - что иногда он тупит в ответах на запрос, что при обычном конфигурировании, что по STRING.
    Поэтому штатные средства опроса, которые на это сразу же выдают ошибку, меня не устраивали, и я написал свою обёртку, алгоритм которой сказал выше. Она на одиночные провалы связи не реагирует, а реагирует только на полный отвал модуля со связи, что мне и требуется.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  7. #7

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    W1nn1ep00h Я использую такие модули:
    * .16ДН
    * .32ДН
    * .16Р
    * .32Р
    * .8А
    * .6У

    Время опроса всех модулей на ПЛК110, кроме .8А у меня обычно окол 15-25 мсек. Время опроса .8А - 1-2 секунды.
    Вот сбои связи есть обычно только с .8А, и по ходу это фишка модуля - что иногда он тупит в ответах на запрос, что при обычном конфигурировании, что по STRING.
    Поэтому штатные средства опроса, которые на это сразу же выдают ошибку, меня не устраивали, и я написал свою обёртку, алгоритм которой сказал выше. Она на одиночные провалы связи не реагирует, а реагирует только на полный отвал модуля со связи, что мне и требуется.
    В алгоритме проверки ошибки модуля для tError и tSeries, какие обычно берете интервалы?

  8. #8

    По умолчанию

    tError - 500-1000 мсек, tSeries - 1500-2000 мсек
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

Похожие темы

  1. Ответов: 4
    Последнее сообщение: 23.06.2020, 18:05
  2. Потеря связи между ПЛК110-60 и МВ110 8А
    от werg в разделе Эксплуатация
    Ответов: 6
    Последнее сообщение: 05.03.2020, 10:18
  3. Ответов: 5
    Последнее сообщение: 27.06.2016, 09:40
  4. Ответов: 16
    Последнее сообщение: 05.03.2016, 07:58
  5. Ответов: 4
    Последнее сообщение: 01.11.2012, 09:58

Ваши права

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