Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 21 по 30 из 41

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

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

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

    По умолчанию

    Каких битовых функций в Модбасе Вам, Валенок, не хватает?
    Тролль-наседка, добрый, нежный и ласковый

  2. #2

    По умолчанию

    Лично я на 110-х по Ethernet работаю только через библиотеки.
    А так, после разработки ПЛК200 - перешёл на них. Там всяко проще 3-4 кликами разнести опрос по разным потокам
    Ведущий инженер проектов
    Линейки шлюзов сетевых Пх210
    Линейки модулей ввода/вывода Мх210

  3. #3

    По умолчанию

    Ну хотя бы тем, что вместо чтения/записи четырёх регистров (2х32Bit) надо будет читать/писать 24 регистра. И вместо булевых функций оперировать числовыми. А суть останется та же, мониторим обратную связь выхода по регистру и по обратной связи конкретного регистра задаём новую уставку исходя из реальной на данный момент. Режим работы выходов надо будет перевести в ШИМ, и с другого мастера также писать числовые уставки и там также придётся поменять булевую логику на числовую.
    В следствие чего такая простая конструкция типа: dword1.0:=(dword1.1 or dword2.2) and not(dword3.3); превращается в полноценное "трёхэтажное" условие.

  4. #4

    По умолчанию

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

  5. #5

    По умолчанию

    А можно немного подробнее почему в моём случае надо использовать счётчики и не надо так часто опрашивать? Что не так? Или что может произойти? Цикл выполняется за 2-3 мс почему бы не опрашивать каждые 10мс, если оборудование позволяет это делать? Ошибок по обмену нет, совсем, сеть для этого оборудования выделена отдельная, чисто физически между щитами проложены отдельные линии. Почему вы мне так явно навязываете счётчики? Если у меня всего по 20-50 нажатий в сутки, но случиться они могут в любое время. Почему все так усердно пытаются навязать какую-то альтернативу, которая больше, сложнее, неудобнее, а результат тот же?

    Когда тогда надо использовать битовую маску входов? И есть ли какие-то критерии использования тех или иных способов учёта входящих сигналов? Я вот, допустим, думаю, что если частота входящего импульса больше 10 Гц, то следует использовать счётчики, всё что ниже - битовая маска.

  6. #6

    По умолчанию

    Parovoz Я делаю на счётчиках весь опрос кнопок.
    Кайф этого решения в том, что даже если будут потери связи, то нажатие по счётчику не потеряется никогда.
    Это работает так, что даже если ткнуть на кнопку ОЧЕНЬ быстро (я - барабанщик, я могу быстро ткнуть), то нажатие всё равно отлавливается.
    Я смотрю текущее число счётчика импульсов и предыдущее и сравниваю. Если разница по модулю > 1 - то было нажатие.
    Дополню. Если у нас отвалилась связь (например, потеряли несколько пакетов с данными из-за лага сети), а кнопку нажимали - то потом мы всё равно про это узнаем.
    Последний раз редактировалось Cs-Cs; 29.03.2021 в 15:13.

  7. #7

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Parovoz Я делаю на счётчиках весь опрос кнопок.
    Кайф этого решения в том, что даже если будут потери связи, то нажатие по счётчику не потеряется никогда.
    Это работает так, что даже если ткнуть на кнопку ОЧЕНЬ быстро (я - барабанщик, я могу быстро ткнуть), то нажатие всё равно отлавливается.
    Я смотрю текущее число счётчика импульсов и предыдущее и сравниваю. Если разница по модулю > 1 - то было нажатие.
    Дополню. Если у нас отвалилась связь (например, потеряли несколько пакетов с данными из-за лага сети), а кнопку нажимали - то потом мы всё равно про это узнаем.
    Я не барабанщик, но с опросом в 10мс у меня ни разу не получилось ткнуть кнопку так, чтобы было потеряно нажатие, я это делал специально, неспециально это вообще нереально сделать. Ради интереса поставлю завтра счётчик ошибок по опросу. Чтобы проверить возникают они или нет, если за сутки не наберётся ни одной, могу констатировать метод счётчиками неоправданно сложным.

  8. #8
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,334

    По умолчанию

    Cs-Cs ну да, из-за дребезга контакта выключателя у вас пришел счетчик > на 2 - что вы должны сделать? включить свет и выключить свет или ничего не делать ?

  9. #9

    По умолчанию

    melky Так я отлавливаю >1. А дальше имитирую R_TRIG, и после обработки (в задаче, может раз в 100 мсек) привожу всё в исходное состояние.
    Я не знаю, как пояснить... ну, высчитали дельту по модулю. Если она > 0 - пошли в ветку обработки нажатия и что-то сделали.
    И там же сказали, что countPrevious := countCurrent;, после чего дельта снова равна нулю. Так как мы это делаем после обработки, то пока идёт обработка - хоть обнажимайся - пофиг.

    Поэтому если это будет ситуация вида "ни фига не было, а тут раз - и 25 импульсов", то обработается как однократное одинарное нажатие.
    Если же будет так, что только-только моя задача обработала нажатие, и снова дельта > 0 - то обработает как второе нажатие.

    А если подразниться - дык во всех модулях IO у ОВЕНа есть защита от дребезга, которую я всегда включаю.

  10. #10

    По умолчанию

    А так у меня товарищ есть с подобным подходом к делу, который вместо одного микрокомпьютера Raspberry PI воткнул два полноценных системника, запитанных от бесперебойника, на одном из которых завёл резервное копирование первого системника. После некоторой беседы о целесообразности использования средств соразмерно решаемой задаче оптимизировали состав оборудования и пришли к одной "малине" и простой флешке на которую скидываются бекапы. При этом за 3 года работы она так и не понадобилась.

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

Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Похожие темы

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

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

Ваши права

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