PDA

Просмотр полной версии : Распред.система: ПЛК110+дискретные IO( 10шт). Цикл до 50мс. Реально ли?



pt200
23.08.2018, 16:27
Как прикинуть время цикла в распределенных системах( предполагаю что обмен будет занимать основную часть цикла)?

Если с Modbus RTU все более менее понятно( без учета ошибок связи): ( время подготовки и передачи запроса + время подготовки и передачи ответа модулем) * 10
хотя даже этих цифр что то не встречал
1) А ПЛК100.30 с двумя 485ми параллельно опрашиваеТ?

То с Modbus TCP вообще мрак:
1) запросы оправляются параллельно или железки по одной опрашиваются?
2) хоть какие нибудь тайминги?

P.S. Где посмотреть количество одновременных соединений по 485 и/или eth, master/slave?

Филоненко Владислав
24.08.2018, 08:36
Как прикинуть время цикла в распределенных системах( предполагаю что обмен будет занимать основную часть цикла)?

Если с Modbus RTU все более менее понятно( без учета ошибок связи): ( время подготовки и передачи запроса + время подготовки и передачи ответа модулем) * 10
хотя даже этих цифр что то не встречал
1) А ПЛК100.30 с двумя 485ми параллельно опрашиваеТ?

То с Modbus TCP вообще мрак:
1) запросы оправляются параллельно или железки по одной опрашиваются?
2) хоть какие нибудь тайминги?

P.S. Где посмотреть количество одновременных соединений по 485 и/или eth, master/slave?

По 485, естественно, 1 модуль за раз.
Для TCP (говорим про М02) можно одновременно организовать до 12 потоков опроса. Каждый master - отдельный поток. До 38 одновременных соединений с модулями.
т.е. если всё правильно настроить - 50 мс легко.

_Pavel_
24.08.2018, 09:04
По 485, естественно, 1 модуль за раз.

Даже при наличии 2-х COM-портов на ПЛК ?

pt200
24.08.2018, 09:49
...Для TCP (говорим про М02) можно одновременно организовать до 12 потоков опроса. Каждый master - отдельный поток. ........т.е. если всё правильно настроить - 50 мс легко.
т.е. если я сделаю в конфигураторе 10 TCP мастеров, то создастся 10 потоков и опрос будет параллельный?

если из модуля надо вычитать 2 региона адресов, то быстрее:
1) в одном мастере читать оба
2) создать 2 мастера на каждый из регионов( если модуль тянет несколько подключений)


...До 38 одновременных соединений с модулями.
т.е. 38 TCP master может быть, а сколько при этом еще и клиентов?

P.S. Не до конца понял, для данной задачи Modbus TCP однозначно лучше?

Филоненко Владислав
24.08.2018, 10:10
Даже при наличии 2-х COM-портов на ПЛК ?

1 за раз на порт. :)

Филоненко Владислав
24.08.2018, 10:16
т.е. если я сделаю в конфигураторе 10 TCP мастеров, то создастся 10 потоков и опрос будет параллельный?

если из модуля надо вычитать 2 региона адресов, то быстрее:
1) в одном мастере читать оба
2) создать 2 мастера на каждый из регионов( если модуль тянет несколько подключений)


т.е. 38 TCP master может быть, а сколько при этом еще и клиентов?

P.S. Не до конца понял, для данной задачи Modbus TCP однозначно лучше?

Редкий модуль реально поддерживает параллельный доступ, а не просто 2 соединения. И накладные расходы по любому на 2 пакета больше чем на один групповой.

38 - это число открытых одновременно соединений., т.е. до 38 Universal Modbus device будет, теоретически, держать соединения с различными slave одновременно и не будет задержек на переконнект.

ModBusTCP всегда лучше, т.к. и bodrate выше и параллельный опрос возможен.

pt200
24.08.2018, 10:34
Редкий модуль реально поддерживает параллельный доступ, а не просто 2 соединения. И накладные расходы по любому на 2 пакета больше чем на один групповой.
А что это за групповой пакет( комбинированных/мульти запросов в модбасе вроде бы нет) или имеется ввиду что в ТСР пакет паровозиком загоняется сразу несколько запросов?

Трофимов Артем
24.08.2018, 11:07
групповой это значит что вы не запрашиваете каждый регистр (идущие в памяти последовательно) отдельно, а одним запросом

pt200
24.08.2018, 11:23
групповой это значит что вы не запрашиваете каждый регистр (идущие в памяти последовательно) отдельно, а одним запросом

А я под "вычитать 2 региона адресов" имел ввиду что надо вычитать:
10000..10011( биты) + 30016..30039( слова)
что за 1 запрос вроде никак

Трофимов Артем
24.08.2018, 11:45
да, тут два запроса потребуются.

Спорягин Кирилл
24.08.2018, 12:06
По скорости опроса модулей, можете посмотреть тут: http://www.owen.ru/forum/showthread.php?t=25519

_Pavel_
04.12.2018, 08:32
38 - это число открытых одновременно соединений., т.е. до 38 Universal Modbus device будет, теоретически, держать соединения с различными slave одновременно и не будет задержек на переконнект.

Владислав, уточните пожалуйста ещё разок: вот так будут отдельные соединения с каждым Universal Modbus device и параллельные запросы, или нужно каждый Universal Modbus device запихивать в свой Master ? (речь про MB TCP и M[02])40199

Филоненко Владислав
04.12.2018, 14:09
Владислав, уточните пожалуйста ещё разок: вот так будут отдельные соединения с каждым Universal Modbus device и параллельные запросы, или нужно каждый Universal Modbus device запихивать в свой Master ? (речь про MB TCP и M[02])40199

В идеале да.
В реале можно их сгрупировать по 5-6 (с учётом времени ответа от устройств и темпа опроса)

pt200
04.12.2018, 15:17
В идеале да.
В реале можно их сгрупировать по 5-6 (с учётом времени ответа от устройств и темпа опроса)
а где его( время)можно увидеть( в свое время( да и только что) так и не углядел в документации)?

P.S. любите Вы почему то интересные вещи скрывать( параметры "сухого" входа / времена / ...), за то чтобы задать дефолтное состояние дискретного выхода в "1" надо почему то 1000 ввести( а чтобы враг не догадался) :)

ASo
04.12.2018, 15:28
Эээээээ... Про 1000 написано в РЭ, там сказано про то, что задаётся уровень ШИМ в 0,1%

pt200
04.12.2018, 15:45
Эээээээ... Про 1000 написано в РЭ, там сказано про то, что задаётся уровень ШИМ в 0,1%
Это то понятно, только идет вразрез лично с моим жизненным опытом где дискретный выход это 0 или 1( а ШИМ, у меня, больше с аналогом ассоциируется( но при этом, почему то, влияет на дискретный)), но что то мы отвлеклись от темы( про утаивание важной информации :) ).

P.S. Да и кто эти инструкции читает

Филоненко Владислав
07.12.2018, 10:57
а где его( время)можно увидеть( в свое время( да и только что) так и не углядел в документации)?

P.S. любите Вы почему то интересные вещи скрывать( параметры "сухого" входа / времена / ...), за то чтобы задать дефолтное состояние дискретного выхода в "1" надо почему то 1000 ввести( а чтобы враг не догадался) :)

Время ответа определяется самостоятельно, т.к. оно зависит от внешних факторов. Для 210-х ориентируйтесь на 3-5мс.

pt200
21.02.2019, 18:58
Вдогонку, а каково время TCP retransmission timeout при потере пакета у железок?
А то эта штука может сильно обмен запороть из за 1го битого пакета

Филоненко Владислав
22.02.2019, 17:46
Вдогонку, а каково время TCP retransmission timeout при потере пакета у железок?
А то эта штука может сильно обмен запороть из за 1го битого пакетав понедельник точные цифры дам

Филоненко Владислав
25.02.2019, 08:49
Задержка повторной передачи от 210 до 3000 мс. Значение рассчитываемое на ходу, стартовое значение 2000мс.

pt200
25.02.2019, 22:00
Задержка повторной передачи от 210 до 3000 мс. Значение рассчитываемое на ходу, стартовое значение 2000мс.
:(

А можно расписать поведение системы, если таймаут у мастера будет 50мс( например)?

т.е.:
1) мастер оправляет запрос
2) пакет бьется
3) у мастера уже таймаут, а у ТСР стека все нормально( еще даже таймаут не истек + еще и ретрансмиты, наверное, есть?)
что мастер делает дальше?

P.S. не думали в сторону своего велосипеда через UDP для таких задач?

Филоненко Владислав
28.02.2019, 08:17
:(

А можно расписать поведение системы, если таймаут у мастера будет 50мс( например)?

т.е.:
1) мастер оправляет запрос
2) пакет бьется
3) у мастера уже таймаут, а у ТСР стека все нормально( еще даже таймаут не истек + еще и ретрансмиты, наверное, есть?)
что мастер делает дальше?

P.S. не думали в сторону своего велосипеда через UDP для таких задач?

Мастер посылает ещё запрос. Если старый всё-же когда-нибудь дойдёт - он будет отброшен по устаревшему номеру последовательности.

pt200
28.02.2019, 10:00
Мастер посылает ещё запрос. Если старый всё-же когда-нибудь дойдёт - он будет отброшен по устаревшему номеру последовательности.
А ошибку связи он выдаст по таймауту?

т.е. ( в звезде( на 1м комутаторе), без цепочек)можно смело ставить таймаут 10мс и 4 попытки, чтобы получить максимально надежную связь( для цикла 50мс)?

Филоненко Владислав
28.02.2019, 11:24
Выдаст, конечно

pt200
11.03.2019, 19:51
Наблюдаю интересные эффекты:

Подключен только 3й модуль( 10.100.1.23)
соединение: ПЛК<>{комплектный патч от модуля ВВ}<>МВ210-302<>ПК

Глазом вижу проскакивающие ошибки связи 81, 85 и 89 у этого мастера.
Чтобы это значило???


P.S. По началу таймаут был 10мс, проскакивали: 81 и 85. Увеличил до 20мс, пошли 81, 85, 89

pt200
11.03.2019, 20:25
1) Виноват
2) Однако у модуля до 4х линков заявлено
3) не помогло ни разу
-------------------------------------------------------
4) и кстати потом будет 2 подключения( на входа и выхода)

Чего то обмен мне не нравиться ( sssl1_pcapng.zip) ( к сожалению нет нормального TAP"а чтобы адекватно посмотреть обмен)
-------------------------------------------------------
Переехал на новую прошивку ПЛК 1.0.04 со старым таргетом, та же фигня
----------------------------------------------
Еще и модуль иногда отваливается!!!!
После этого стабильно 81, 89

Не большой спец в сетях( MV210_pcapng.zip: 1я половина от ПЛК к модулю, 2я в обратную сторону), но могу предположить что модуля закончились сокеты, т.к. ПЛКашка при проблемах связи пытается переподключиться, а старые, как предполагаю, у модуля почему то не закрываются - 100% НЕ СПЕЦ :)
--------------------------
хотя модуль ACKшки вроде присылает
т.е. стек в модуле скорее жив, чем мертв, а вот таска модбаса померла, т.к. ответов не прилетает


Господа разработчики просьба не затягивать с решениями проблемы, т.к. через пару недель запланирована пусконаладка сортировочной линии, а с такими непонятками по связи этого 100% не будет.

Филоненко Владислав
12.03.2019, 08:23
хм. а логи чего такие половинчатые? можно лог целиком?, а то не ясно кто где пакеты теряет или ещё чего делает.
И я наблюдаю одновременно множество независимых попыток коннекта, с одного IP, в течении нескольких ms.

1. В проекте один модуль (23) опрашивается сразу 2-мя мастерами. Зачем? Быстрее опрос от этого не будет. Причем 2-й запросы не шлёт, т.к. нет переменных. Т.е. просто мешает.
4 линка не для того, чтобы реализовать QuadSPI :), а для удобства работы с РАЗНЫМИ клиентами.
1-й - ПЛК, частый опрос
2-й - панель - редкий
3-й - конфигуратор, эпизодически
4-й - про запас.

Если прибор отвечает на запрос по 1-му каналу, другие он в этот момент обработать не может. Иначе будет одновременный доступ к данным.
Перенесите весь опрос в 1 мастер.
уменьшите или вообще отключите повторы. При таком таймауте любая заминка в сети (а бродкасты там частые гости, как видно) приведет к дополнительным повторам, которые не нужны. Повторы эффективны в сети rs485, по TCP сам протокол позволяет перепослать сообщение.

3. Вместо Debug-232 вставьте empty (это в порядке общего совершенствования)

pt200
12.03.2019, 09:44
хм. а логи чего такие половинчатые? можно лог целиком?, а то не ясно кто где пакеты теряет или ещё чего делает.
И я наблюдаю одновременно множество независимых попыток коннекта, с одного IP, в течении нескольких ms.

Насчет логов писал, нет у меня агрегирующего ТАРа( и даже свитча с зеркалированием порта), а пассивным самопалом можно только в одну сторону смотреть( половина).
Да и смотреть нечего: TCP АСКшки от модуля идут, а вот Modbus ACK/ответы нет.
3 попытки и ПЛКашка переподключается



1. В проекте один модуль (23) опрашивается сразу 2-мя мастерами. Зачем? Быстрее опрос от этого не будет. Причем 2-й запросы не шлёт, т.к. нет переменных. Т.е. просто мешает.
4 линка не для того, чтобы реализовать QuadSPI :), а для удобства работы с РАЗНЫМИ клиентами.
1-й - ПЛК, частый опрос
2-й - панель - редкий
3-й - конфигуратор, эпизодически
4-й - про запас.

Если прибор отвечает на запрос по 1-му каналу, другие он в этот момент обработать не может. Иначе будет одновременный доступ к данным.
Перенесите весь опрос в 1 мастер.
уменьшите или вообще отключите повторы. При таком таймауте любая заминка в сети (а бродкасты там частые гости, как видно) приведет к дополнительным повторам, которые не нужны. Повторы эффективны в сети rs485, по TCP сам протокол позволяет перепослать сообщение.

см. название темы( "Распред.система: ПЛК110+дискретные IO( 10шт). Цикл до 50мс. Реально ли? (http://www.owen.ru/forum/showthread.php?t=29283)")
Вот когда буду делать многоканальный мониторинг температуры, тогда и забью на всякие таймауты и тд, а сейчас извините сортировка, через 200мс уже можно что нибудь сломать!



3. Вместо Debug-232 вставьте empty (это в порядке общего совершенствования)
Учту.
---------------------
Учел. Не помогло.


Ну собственно, я правильно понимаю, что у Вас на столе обмен идеален и виноваты торсионные поля в моей местности???

pt200
12.03.2019, 10:46
Модуль стабильно падает через несколько минут "работы".
( прошивки везде последние)

Что делать дальше?

pt200
12.03.2019, 11:23
Добавил в в стенд еще один модуль( .20) и в проект залил ваш стандартный конфиг "МК210-302(312)"
периодически: 81, 89, 84, 85

Какого твориться :mad: ?????

pt200
12.03.2019, 16:39
Записал обмен
1) не вижу ретрансмитов через 20мс( таймаут)!!! только запросы каждые 50мс( период опроса)
2) Modbus модуля может ответить через 30мс, а может и 150мс молчать - что за фигня!!!

pt200
12.03.2019, 17:57
А вот "кино"( с самого включения практически) про отвал модуля

собственно лажает и второй модуль( .20), который в щадящем режиме опрашивается :confused:


P.S. а я думал что это он в прошлый раз не помер - ПЛК то в стопе был! А в рабочем режиме стабильно мин за 10 падает.

Филоненко Владислав
14.03.2019, 08:34
А вот "кино"( с самого включения практически) про отвал модуля

собственно лажает и второй модуль( .20), который в щадящем режиме опрашивается :confused:


P.S. а я думал что это он в прошлый раз не помер - ПЛК то в стопе был! А в рабочем режиме стабильно мин за 10 падает.

1. Обмен с периферией через конфигурацию не отключается и в стопе.


2. В логе я вижу регулярно, 2 подряд запроса от ПЛК к модулю с разрывом 2 мкс! с разными командами и разными №транзакции.
Это очень странно.
Отключите повторы опроса, 2 мастера и пр., увеличьте таймаут ожидания ответа. Добейтесь, чтобы модуль отвечал на тот запрос, который ему шлют без ещё кучи запросов.
Еще раз, ретрансмиты для 485 интерфейса, на TCP они бессмысленны и даже вредны.
А так по логу модуль отвечает в течении единиц мс. Причем есть модуль с IP 20, где обмен настроен нормально.

Теперь обрывы: Ясно видны 2 одновременных потока данных к модулю, создающихся синхронно (разрыв 2 мкс! стабильно, время работы стека IP), причем обращение идут к одному и тому же регистру. Зачем? Только уменьшаете в 2 раза поток обмена. Если хочется проверять - то анализируйте коды ошибок и если есть ошибка - то тогда прочитывайте.

Причем при записи в режиме polling новое значение прилетит, я полагаю, раньше, чем запустится процедура исправления битого пакета, т.е. в режиме polling исправлять ошибки вообще лишено смысла.
Возможно, в таком необычном режиме модуль и может зависнуть, так мы никогда не тестировали, но проверить что он действительно завис просто:
3 теста:
1. разъедините ethernet-кабель на 20 секунд - восстановилось?
2. Перегрузите модуль - восстановилось?
3. Перегрузите программу ПЛК - восстановилось?

pt200
14.03.2019, 09:53
Господа я у вас тестером на зарплате не сижу!
Так что предлагайте работающие варианты( а не тут почеши, а тут приласкай)!
Или в паспорте должно быть:
Раз в 5мин работы модуля( мини ТО):
1. разъедините ethernet-кабель на 20 секунд
2. Перегрузите модуль
3. Перегрузите программу ПЛК


А если не придираться к мелочам( насчет 2х мастеров, которые вроде не запрещены) и глянуть последний дамп( отфильтровать горячелюбимый .20 с фирменным опросом), то как то у меня язык не поворачивается назвать это НОРМАЛЬНО:
Любуемся на метку времени( а дальше еще чаще пойдут)

P.S. Болячка то где то в прошивке модуля, а по падению можно предположить еще и утечку памяти( т.к. примерно через одинаковый промежуток падает)

_Pavel_
14.03.2019, 10:05
Добавил в в стенд еще один модуль( .20) и в проект залил ваш стандартный конфиг "МК210-302(312)"
периодически: 81, 89, 84, 85

Какого твориться :mad: ?????

Подтверждаю! У меня то же самое с модулями вывода и ввода вывода. С модулями ввода - нет ошибок.

Вот моя история общения с техподдержкой:
Здравствуйте!

Приобрели набор модулей ввода-вывода Ethernet: MK-210-302 - 1 шт., МУ-210-410 - 4 шт., МВ210-302 - 5 шт.

Проблема: заметил что периодически отваливается наглухо связь с одним из модулей MK-210-302 или МУ-210-41. А в процессе работы периодически возникает ошибка связи 81 с модулями МУ-210-410. С модулями МВ210-302 проблем не наблюдается.

Обмен с модулями реализован через штатный конфигуратор CDS на ПЛК-110 [M02].

Когда пропадает связь с модулем он пингуется, но доступа по MB TCP нет и конфигуратором подключиться также не удаётся. На передней панели модуля моргает красная лампочка. Это происходит примерно через сутки работы. Помогает перезагрузка модуля по питанию.

Здравствуйте, Иван Викторович!
Отключение перехода в безопасное состояние на модуле МК-210-302 помогло, теперь он не отваливается насмерть, но при опросе проскакивают ошибки 81-89. Без перехода в безопасное состояние при отсутствии опроса использовать этот модуль невозможно. Скорее всего у вас в прошивке прибора ошибка.
Перенастроил модули как Вы рекомендовали (конфигурация во вложении), однако это не помогло убрать периодическии появляющиеся ошибки опроса 81-89. Думаю имеется проблема в прошивке приборов. Повторюсь, это проявляется только с модулями дискретного вывода и ввода-вывода. Модули ввода работают нормально.

Филоненко Владислав
14.03.2019, 10:11
Господа я у вас тестером на зарплате не сижу!
Так что предлагайте работающие варианты( а не тут почеши, а тут приласкай)!
Или в паспорте должно быть:
Раз в 5мин работы модуля( мини ТО):
1. разъедините ethernet-кабель на 20 секунд
2. Перегрузите модуль
3. Перегрузите программу ПЛК


А если не придираться к мелочам( насчет 2х мастеров, которые вроде не запрещены) и глянуть последний дамп( отфильтровать горячелюбимый .20 с фирменным опросом), то как то у меня язык не поворачивается назвать это НОРМАЛЬНО:
Любуемся на метку времени( а дальше еще чаще пойдут)

P.S. Болячка то где то в прошивке модуля, а по падению можно предположить еще и утечку памяти( т.к. примерно через одинаковый промежуток падает)

Мы нигде в документации также не пишем, что нельзя по модулю ездить на танке. И что?
Существует ровно 2 варианта решения проблемы:
1. Мы совместно сотрудничаем (а это подразумевает и выполнение наших рекомендаций) и как можно быстрее находим источник проблем и решаем его.
2. В ходе плановых работ мы, конечно же проверим модули на возможные проблемы со связью и исправим их, если они есть.

pt200
14.03.2019, 10:33
Как уже вам 100% известно( и при чем еще давно): модули падают и передергивание питания модуля 100% помогает

Ваш ход( плановые работы у вас там на когда запланированы)?

Филоненко Владислав
14.03.2019, 10:38
Выполните рекомендации по настройке опроса и тестированию на "зависание"

pt200
14.03.2019, 13:54
Больше для истории:
опрос с одного мастера:

упал также мин через 10( в течении этого времени не прекращающиеся "конвульсии"( ошибки связи))

pt200
14.03.2019, 14:49
Прошу пардону, подрихтовал для удобства работы с модулями ВВ и забыл про это

Филоненко Владислав
15.03.2019, 13:36
Вот, цикл запись в выход->чтение записанного->инкремент.

Среднее время цикла 30-34 мс.

Мы обнаружили, что прибор иногда подтормаживает, поэтому до выхода новой прошивки маленькие таймауты не рекомендуются.

capzap
15.03.2019, 14:04
я тоже тогда на последок выложу, раз уж стояло на прогоне
на скрине:
udTRE - максимальное время от момента отправки до момента получения ответа
udQUA - максимальное время после реконекта между двумя отправками запроса
udVIS - максимальное время отправки запроса
кейсы 3 и 4 заглушки по времени, при среднем цикле 4.5мс на них тратится порядка 10мс, убрав их запросы пойдут чаще, но ошибки увеличаться