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

Тема: Обнуление счетчика МВ11-16ДН

  1. #1

    По умолчанию Обнуление счетчика МВ11-16ДН

    Снова здравствуйте! Никак не могу разобраться, как обнулять счетчик модуля дискретных входов МВ110-16ДН. В инструкции написано, что надо записывать 0 в соответствующий регистр, но создание Register output module постоянно обнуляет счетчик, что бессмысленно.

    В похожей теме прочитал, что надо использовать библиотеку Modbus.lib, но там, походу, надо как-то открывать СОМ-порт на контроллере, но все мои попытки не увенчались успехом.

    Посоветуйте, как правильно его обнулять?
    Последний раз редактировалось Juan Esteban; 23.03.2021 в 13:02.

  2. #2

    По умолчанию

    Да вот читаю целый день, но походу не там. Подскажите направление поиска: как можно сделать эту запись по команде?

  3. #3

    По умолчанию

    А разве можно одно устройство в модбас-мастере два раза прописывать? Потому что мне надо по времени опрашивать счётчик и по запросу обнулять, если выставить оба режима, он будет так же по времени его обнулять, что мне не нужно.

  4. #4

    По умолчанию

    Спасибо, буду пробовать. Если бы пальцем не ткнули, вряд ли бы нашел.

  5. #5

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А зачем вообще обнулять? Пока обнуляете, есть риск потерять импульс (по задаче конечно же)
    Надо по ТЗ. Счетчик считает среду, один импульс - 10 л, при объемах в десятки кубов не принципиален, плюс обнуление будет проводится по команде оператора, т.е. без расхода в линии.

  6. #6

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    В ТЗ так и написано - записать 0 в модуль ввода ? ))
    Нет, конечно. Я решил отталкиваться от того, что написано в инструкции к модулю. Может быть, можно сделать и иначе - но тогда, скорее всего, надо будет следить за переполнением счетчика.

    Вообще, у вас странная манера - задавать вопросы, плавно подводящие к тому, что я болван и все делаю неправильно, вместо того, чтобы прямо написать, что задачу можно решить еще так-то и так-то, что это лучше потому-то и потому-то. Это же форум, а не экзамен.

  7. #7

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Вы прочли только то что на картинке или заглянули всё же в документацию, как насчет раздела 3.2.2 это несколько ниже того текста который на скрине
    Добрался сегодня до оборудования, попробовал опрос по команде - почему-то не работает. Сделал элементы Register input module State с командными переменными, установил режим работы By command, в подпрограмму опроса дискретных модулей добавил в начале присвоение 255 командной переменной. Запускаю - опрос не идет, лампочка на модуле не мигает. Командная переменная показывает то 255, то 0, а собственно переменная входов не реагирует на замыкание входов.

    Что я делаю не так? Как этот опрос/запись по команде правильно делать?

    upd. Обнаружил, что он-таки реагирует, но только при стопе программы. То есть значения переменной входов обновляются при остановке программы. При запуске - также ноль реакции.
    Последний раз редактировалось Juan Esteban; 23.03.2021 в 08:01.

  8. #8

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    там не написано что то вроде того что один раз запуск системы, а второй раз триггер записи
    Написано. Я пробовал два раза присваивать, и в разных местах, но без особого толку.

  9. #9

    По умолчанию

    Короче, проблему я решил следующим образом: у своего модуля дискретных входов переменную входов и переменную счетчика оставил обычными Register input module (не State, т.е без управляющих переменных), а переменную для обнуления сделал в виде Register output module State, т.е. с управляющей переменной). При этом режим работы я оставил By polling time. Чтобы обнулить счетчик пришлось по сигналу на обнуление:
    1) передать 255 в управляющую переменную,
    2) через 1 с по таймеру еще раз передать 255 в управляющую переменную,
    3) выключить сигнал на обнуление,
    4) еще через 1 с по таймеру передать 254 в управляющую переменную для остановки записи 0 в счетчик.

    Возможно, сделал я это через задницу, но оно, по крайней мере, работает.

    Таким образом, выяснилось следующее:
    1) для записи по запросу не надо выставлять режим работы в By command на модуле, достаточно добавить State-выход и посылать на него управляющие сигналы.
    2) для того, чтобы эти сигналы отрабатывали, нужно время, для чего пришлось добавлять таймеры. Время таймеров задано исходя из времени опроса модуля (у меня 1 с), меньше - не работает.
    Последний раз редактировалось Juan Esteban; 23.03.2021 в 13:02.

  10. #10
    Пользователь Аватар для A.Simonov
    Регистрация
    11.07.2017
    Адрес
    Москва
    Сообщений
    459

    По умолчанию

    Цитата Сообщение от Juan Esteban Посмотреть сообщение
    Короче, проблему я решил следующим образом: у своего модуля дискретных входов переменную входов и переменную счетчика оставил обычными Register input module (не State, т.е без управляющих переменных), а переменную для обнуления сделал в виде Register output module State, т.е. с управляющей переменной). При этом режим работы я оставил By polling time. Чтобы обнулить счетчик пришлось по сигналу на обнуление:
    1) передать 255 в управляющую переменную,
    2) через 1 с по таймеру еще раз передать 255 в управляющую переменную,
    3) выключить сигнал на обнуление,
    4) еще через 1 с по таймеру передать 254 в управляющую переменную для остановки записи 0 в счетчик.

    Возможно, сделал я это через задницу, но оно, по крайней мере, работает.

    Таким образом, выяснилось следующее:
    1) для записи по запросу не надо выставлять режим работы в By command на модуле, достаточно добавить State-выход и посылать на него управляющие сигналы.
    2) для того, чтобы эти сигналы отрабатывали, нужно время, для чего пришлось добавлять таймеры. Время таймеров задано исходя из времени опроса модуля (у меня 1 с), меньше - не работает.
    Добрый день.

    Сегодня проверил режим by comand
    Режим работает.

    Алгоритм такой:
    1) Создаете в конфигурации modbus мастера
    2) Создаете в конфигурации universal modbus device (режим работы ставите by comand)
    3) Добавляете переменную register output module State

    Порядок произведения записи
    1) Записать желаемое значение переменной в канале register output module State
    2) В командный канал переменной register output module State необходимо записать 255 (это нужно сделать один раз, чтобы включить канал в работу)
    3) После того как в канале опять появится 0, нужно еще раз записать туда 255, это произведет запись. Далее после каждой записи 255 в канал будет происходить запись переменной в slave устройство)

    P.S.
    Если записать в канал 254 - это отключит его, и тогда нужно будет опять два раза записать 255 туда, чтобы вновь записать переменную.
    Александр Андреевич Симонов
    Инженер по продуктам «ПЛК, модули и OwenCloud»
    e-mail: support@owen.ru
    e-mail: a.simonov@owen.ru

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

Похожие темы

  1. Модуль мв11-8а по протоколу mudbus
    от shel в разделе Мх110
    Ответов: 2
    Последнее сообщение: 13.08.2020, 11:05
  2. Обнуление счетчика МВ110-16ДН
    от nestor в разделе ПЛК3хх
    Ответов: 11
    Последнее сообщение: 11.08.2018, 16:21
  3. Обнуление переменной
    от Алексей87 в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 23.03.2017, 12:31
  4. ПЛК 100 и МВ110-16ДН Сброс счетчика
    от Malyshevsergey в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 20.12.2011, 11:45
  5. Ответов: 6
    Последнее сообщение: 15.03.2010, 10:53

Ваши права

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