Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 41

Тема: Как ускорить считывание регистров?

  1. #11

    По умолчанию

    Parovoz Так. Я вижу совсем другое. Которое называется "Перемудрил". Я не совсем спец (но по моим постам можно найти то, почему я Мх210 для УД не люблю), но то, что я подумал - это что оптимизация "By value change" приводит только к тому, что к каждому модулю IO создаётся куча TCP/TP-соединений вместо одного.
    А вот сколько ПЛК110 может этих соединений держать - это кто-то проверял? И смотрели ли сетку сниффером?

    И то, что советовал народ - это надо сделать ОБЯЗАТЕЛЬНО. Надо ПАКОВАТЬ (ррр, да, да, да!!) данные в массив STRING (байтов), чтобы максимально сократить объём данных, которые передаются на Сервак.

    Ещё я слазитл в конфигурацию задач. Да, я в курсе про минимальное время цикла и всё такое. Но я бы прописал бы явно вызов PLC_PRG и задал бы ему время в 10-20 мсек и посмотрел бы, как это будет работать.

  2. #12

    По умолчанию

    Про группировку и упаковку это понятно, ещё просто не реализовывал. Там вопрос закрытый.

    Меня сейчас интересует задержка в связке: модуль ввода-плк-модуль вывода. Там считывание по паре регистров на устройство всего.
    "By value change" сделано с той целью, чтобы можно было управлять модулями с других мастеров, в противном случае контроллер перезаписывает свои значения.

    Время цикла задано нулевое, я так понимаю тогда оно само варьируется в нужном диапазоне. По работе цикл занимает в среднем примерно 2-3мс.
    Тут основной косяк в том, что запись/чтение модбас долго работает сам цикл выполняется моментально.

    Я эти модули уже использовал до этого на считывание импульсов датчиков вращения, пытался считывать в реальном времени, импульсы начали теряться, переделал на чтение счётчиков из модулей ввода и периодичное сравнение значений этих счётчиков и вычисление частоты вращения. При этом проверку импульсов в реальном времени делал, когда был подключен один модуль, с изменением количества модулей ситуация субъективно не меняется т.е. реакция не замедляется и не ускоряется. Один модуль или десять модулей частота определяемых импульсов в реальном времени примерно такая же в пределах 5 Гц в лучшем случае, дальше импульсы теряются.
    Последний раз редактировалось Parovoz; 25.03.2021 в 21:20.

  3. #13

    По умолчанию

    Блин, мне не понятен концепт.
    Я у себя вовсю юзаю модули Mx110. С ними проблем нет, и когда они стоят напрямую в щите, и ПЛК ими рулит на 115 200 по RS-485 - всё летает. Я ставлю тогда на опрос DI время в 5-10 мсек на модуль, на выходы - такое же, и на всякие AI - по 300-500 мсек.
    С Mx210 я сделал один щит, и дальше от них отказался, так как по Ethernet у меня был неудачный опыт, мне не понравилось. И от моих реле модули глючили ещё.

    Я не всё умею, то ты может можешь посмотреть состояние сетки при помощи сниффера? Это такие программы, которые могут отследить все TCP и прочие запросы, которые ходят в сети. И записать их в лог по времени. Вот тогда и можно будет увидеть и понять, нормально ли ПЛК открывает TCP-соединения, правильно ли работают запросы и сколько времени проходит перед ответом модуля.

    Так как мне распределённые концепты не нравятся, то я думал, что у меня сердцем будет сам ПЛК, а уже к нему по ОДНОМУ TCP-соединению будет коннектиться этот рапсберри. Причём я думал так, что я сам с нуля возьму библиотеку и напишу обработку TCP не на уровне ПЛК (когда приходится в конфигурации создавать кучу фигни и пытаться это ускорить), а сам - например, открою соединение до сервера и буду гонять туда хоть килобат, но в своём формате -- чтобы быстрее было. Одним запросом.

    И, кстати, ещё. Может быть тебе посмотреть в эту сторону вообще? Взять либу (SysLibSockets.lib) и нафигачить на ней опрос модулей? Тогда ты сам сможешь реализовать к ним длинные запросы или писать по изменению, а не создавать тьму регистров в конфигурации ПЛК?

  4. #14

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Блин, мне не понятен концепт.


    И, кстати, ещё. Может быть тебе посмотреть в эту сторону вообще? Взять либу (SysLibSockets.lib) и нафигачить на ней опрос модулей? Тогда ты сам сможешь реализовать к ним длинные запросы или писать по изменению, а не создавать тьму регистров в конфигурации ПЛК?
    Концепция в распределённом управлении, если контроллер с клавишами отвалился можно тыкать дальше с айпада. В MBRTU может быть только один мастер.

    Данная концепция была согласована с заказчиком в целях улучшения надежности системы: отвалился айпад - тыкаем выключатели, отвалился контроллер - тыкаем айпад. В случае с Мх110 после отвала контроллера наступает blackout.
    Плюс разные элементы автоматизации реализуются на айпаде напряму в homekit, т.е. мне не надо пробрасывать всю коммуникацию через контроллер, что дало свои плоды, с homekit всё работает просто моментально.

    Дополнительно развёрнут VPN и можно удалённо конфигурировать модули ввода/вывода, настраивать доп функционал через owencloud да банально просто на коленке поднять скаду на мобильнике и с любого андроида параллельно тыкать дом, в общем как ни крути но Мх210 лучше, современнее, функциональнее и сами модули в итоге работают достаточно быстро, недостаточно быстро почему-то работает обмен с контроллером.

  5. #15

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    накой весь опрос по tcp пихнули в одного мастера ?
    Потому что мне так сказала тех поддержка несколько лет назад. Когда я делал на каждое устройство отдельный мастер у меня валились ошибки связи. Я звонил в тех поддержку, мне сказали, что надо сделать одного мастера на интерфейс, что одним интерфейсом может управлять только один мастер и в него уже надо пихать все устройства подключенные к интерфейсу, в противном случае мастеры будут конфликтовать за право пользования интерфейсом, как-то так, почти дословно.

    т.е. на каждое устройство надо создавать отдельного мастера? это ускорит обмен? но опять же, когда я только начинал работать с этими модулями, если мне память не изменяет, я добавил один модуль, чтобы проверить максимальную частоту считываемых импульсов в реальном времени, и она там была в пределах 5 Гц, чуть быстрее, но не 20Гц как предполагает опрос в 50мс.

    Тем не менее сегодня попробую перекроить состав устройств. О результате сообщу.

  6. #16

    По умолчанию

    Угу. И получается, что ради распределённости автор перемутил, а теперь мучается.
    Если ляжет ПЛК - то надо иметь его горячую замену. Не думаю, что ПЛК110 стоит прям вот дороже айпада или самого щита.
    В общем, я за свой концепт. И за то, чтобы Автор наконец-то глянул трафик в сетке сниффером! Вот тогда-то и будет ясно, кто тормозит.

  7. #17

    По умолчанию

    1. Один мастер за один раз может опросить один модуль. Учитывая что в нём 44 модуля, в самом наидеальном случае (мгновенный ответ, минимальный цикл опроса ВСЕХ модулей будет 44 мс). В реале учитывая дискретность времени, даже минимальные задержки ответов в 1 мс - уже около 100 мс.
    2. Непонятно для чего пишутся значения в выхода и они же считываются. Зачем? Узнать что запись не произошла можно по коду ошибки. А еще надёжнее поставить режим both, поставив период принудительной записи несколько секунд.
    3. Все опросы по периоду вынести в отдельный мастер(ы)
    4. Если ожидается одновременная смена значений у нескольких модулей и хочется быстроты реакции - разделить из по разным мастерам.
    Тролль-наседка, добрый, нежный и ласковый

  8. #18

    По умолчанию

    Цитата Сообщение от Parovoz Посмотреть сообщение
    Потому что мне так сказала тех поддержка несколько лет назад. Когда я делал на каждое устройство отдельный мастер у меня валились ошибки связи. Я звонил в тех поддержку, мне сказали, что надо сделать одного мастера на интерфейс, что одним интерфейсом может управлять только один мастер и в него уже надо пихать все устройства подключенные к интерфейсу, в противном случае мастеры будут конфликтовать за право пользования интерфейсом, как-то так, почти дословно.

    т.е. на каждое устройство надо создавать отдельного мастера? это ускорит обмен? но опять же, когда я только начинал работать с этими модулями, если мне память не изменяет, я добавил один модуль, чтобы проверить максимальную частоту считываемых импульсов в реальном времени, и она там была в пределах 5 Гц, чуть быстрее, но не 20Гц как предполагает опрос в 50мс.

    Тем не менее сегодня попробую перекроить состав устройств. О результате сообщу.
    Речь шла о 485!!!
    Тролль-наседка, добрый, нежный и ласковый

  9. #19

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    2. Непонятно для чего пишутся значения в выхода и они же считываются. Зачем? Узнать что запись не произошла можно по коду ошибки. А еще надёжнее поставить режим both, поставив период принудительной записи несколько секунд.
    Это сделано с целью синхронизации состояния выходов, т.к. управление приборами производится с разных мест, то можно на айпаде включить свет, а выключателем выключить, плк мониторит фактическое состояние выходов на модуле вывода и при нажатии клавиши инвертирует его, в противном случае пришлось бы нажимать выключатель дважды ведь плк бы изначально полагал, что канал выключен. А с учетом того, что идёт перезапись регистра целиком, то складывалась очень забавная ситуация. Ходишь по дому, включаешь свет с айпада, и тут термостатный блок решил открыть термоголовку и весь свет потух, т.к. перезаписался целиком регистр точнее два в которых включена только термоголовка, а свет выключен, теперь же всё работает корректно. Можно включать и выключать свет исходя из фактического состояния светильника.

    По делу, вывел один модуль ввода в отдельный мастер, прописал ему время опроса 10 мс таймаут 50мс. Всё наладилось, все осечки по нажатиям исчезли, как бы быстро я не тыкал клавишу. Выключатель работает будто аналоговый ни намёка на задержку по нажатию. Буду делать для каждого устройства теперь мастер. Ошибок по обмену данными также не фиксируется.

  10. #20

    По умолчанию

    Цитата Сообщение от Parovoz Посмотреть сообщение
    Это сделано с целью синхронизации состояния выходов, т.к. управление приборами производится с разных мест, то можно на айпаде включить свет, а выключателем выключить, плк мониторит фактическое состояние выходов на модуле вывода и при нажатии клавиши инвертирует его, в противном случае пришлось бы нажимать выключатель дважды ведь плк бы изначально полагал, что канал выключен. А с учетом того, что идёт перезапись регистра целиком, то складывалась очень забавная ситуация. Ходишь по дому, включаешь свет с айпада, и тут термостатный блок решил открыть термоголовку и весь свет потух, т.к. перезаписался целиком регистр точнее два в которых включена только термоголовка, а свет выключен, теперь же всё работает корректно. Можно включать и выключать свет исходя из фактического состояния светильника.

    По делу, вывел один модуль ввода в отдельный мастер, прописал ему время опроса 10 мс таймаут 50мс. Всё наладилось, все осечки по нажатиям исчезли, как бы быстро я не тыкал клавишу. Выключатель работает будто аналоговый ни намёка на задержку по нажатию. Буду делать для каждого устройства теперь мастер. Ошибок по обмену данными также не фиксируется.
    Для каждого не надо! Надо только для тех, у кого важна скорость реакции.
    Тролль-наседка, добрый, нежный и ласковый

Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя

Похожие темы

  1. Считывание программы из ПЛК
    от MasterZ в разделе ПЛК1хх
    Ответов: 29
    Последнее сообщение: 30.12.2020, 20:24
  2. Считывание времени
    от Василий_S в разделе ПЛК1хх
    Ответов: 24
    Последнее сообщение: 08.06.2020, 12:47
  3. Считывание архива с ПЛК 304
    от Шевцов Игорь в разделе ПЛК3хх
    Ответов: 18
    Последнее сообщение: 15.09.2016, 09:08
  4. Считывание температуры
    от shtorm в разделе Эксплуатация
    Ответов: 7
    Последнее сообщение: 27.05.2012, 20:50
  5. Как ускорить процесс опроса для мастера ModBus
    от AWA1971 в разделе Сетевые технологии
    Ответов: 14
    Последнее сообщение: 15.10.2010, 01:58

Метки этой темы

Ваши права

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