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

Тема: Fast Counter - баг в овеновской документации или в моей голове?

  1. #1

    По умолчанию Fast Counter - баг в овеновской документации или в моей голове?

    Пытался разобраться с тем как работать с быстрыми счетчиками...
    В овеновском рук-ве писано:
    Модуль «Высокочастотный Счетчик» (Fast Counter) является модулем, заме-щающим модуль быстрых дискретных входов.
    Счетчик считает количество импульсов, пришедших на быстрый дискретный вход за один цикл ПЛК. По завершению каждого цикла ПЛК значение в счетчике об-нуляется. Подсчет импульсов осуществляется по переднему (возрастающему) фронту импульса. Таким образом, для использования и обработки значения данного канала, необходимо считывать его каждый раз в начале цикла пользовательской программы. Например, ввести в программу дополнительную переменную, и в начале цикла передавать в эту переменную значение переменной, привязанной к счетчику.

    Если счетчик обнуляется в конце цикла, то как же присваивать дополнительной переменной значение обнуленного счетчика в начале нового цикла ПЛК? Может все таки значение счетчика нужно считывать в конце цикла?

  2. #2

    По умолчанию

    И чем занимается счетчик во время выполнения процессором сервисных функций после завершения цикла ПЛК? Ведь в это время также могут приходить импульсы.

  3. #3

    По умолчанию

    Здравствуйте Владимир
    В документации написано всё правильно да действительно так оно и работает!
    Просто в программе необходимо к итоговой сумме счетчика (объявленного в программе) прибавлять значение из ПЛК-конфигурации В КАЖДОМ ЦИКЛЕ!!!

    Например:
    dwCounterImpuls1:=dwCounterImpuls1+iwdCounter1;

    где dwCounterImpuls - это переменная объявленная в программе и есть итоговое значение счетчика импульсов.
    iwdCounter1 - это переменная объявленная в ПЛК-конфигурации (Ваш быстрый дискретный вход).

    Если есть возможность поиграйтесь на реальном железе. Так гораздо быстрее получится разобраться.
    Автоматизация Диспетчеризация Сервис
    e-mail: ads-kaluga@mail.ru

  4. #4
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,247

    По умолчанию

    А в то время когда цикл окончен и к примеру выполняются сервисные функции или минимальное время цикла велико и контроллер просто стоит.В счетчике накапливаются данные для считывания в новом цикле.

  5. #5

    По умолчанию

    Цитата Сообщение от Gans Посмотреть сообщение
    Просто в программе необходимо к итоговой сумме счетчика (объявленного в программе) прибавлять значение из ПЛК-конфигурации В КАЖДОМ ЦИКЛЕ!!!
    Да, это понятно, что нужно суммировать значение выхода счетчика в каждом цикле. Просто в док-ции пишется, что это нужно делать в начале цикла. (То есть в начале программы). А я считаю, что в конце программы. Так как за время выполнения программы счетчик может насчитать импульсы, которые обнулятся в конце цикла и будут не учтены.

  6. #6

    По умолчанию

    Цитата Сообщение от vladimir_prg Посмотреть сообщение
    Да, это понятно, что нужно суммировать значение выхода счетчика в каждом цикле. Просто в док-ции пишется, что это нужно делать в начале цикла. (То есть в начале программы). А я считаю, что в конце программы. Так как за время выполнения программы счетчик может насчитать импульсы, которые обнулятся в конце цикла и будут не учтены.
    В документации наверно не совсем корректно написано. Данные счетчика из ПЛК-конфигурации перед началом цикла передаются в программу и обнуляются, а если в ходе выполнения цикла придут несколько импульсов Вы их получите в начале следующего цикла :-) В ходе цикла данные из ПЛК-конфигурации НЕ СЧИТЫВАЮТСЯ!!!

    Выглядит это примерно так:
    1. Данные собираются ПЛК-конфигурацией.
    2. Передаются в программу.
    3. Начинает выполнятся один цикл программы.
    4. По окончанию цикла программы все расчетные значения передаются в ПЛК-конфигурацию.
    6. Далее возвращаемся в пункт №1.

    P. S. Начинается новый цикл программы даже если ПЛК-конфигурация не успела собрать ВСЕ ДАННЫЕ! Опрос датчиков температуры можно сделать и раз в пять секунд, а программа в ПЛК должна работать по чаще :-)
    Автоматизация Диспетчеризация Сервис
    e-mail: ads-kaluga@mail.ru

  7. #7
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,650

    По умолчанию

    Цитата Сообщение от vladimir_prg Посмотреть сообщение
    Так как за время выполнения программы счетчик может насчитать импульсы, которые обнулятся в конце цикла и будут не учтены.
    Как же не учтены, если Вам пишут
    в то время когда цикл окончен ... в счетчике накапливаются данные для считывания в новом цикле
    то накопленное значение и прибавиться в начале цикла, а вот как раз если Вы будете присваивать в конце цикла, в Вашем присваивании не будут учтены те пришедшие импульсы во время исполнения Вашего кода

  8. #8

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Как же не учтены, если Вам пишутто накопленное значение и прибавиться в начале цикла, а вот как раз если Вы будете присваивать в конце цикла, в Вашем присваивании не будут учтены те пришедшие импульсы во время исполнения Вашего кода
    Во-первых, я обсуждаю официальную документацию, которая является эталоном описания алгоритма работы контроллера. Так как по идее исходит от того кто ЗНАЕТ, как работает контроллер, а не ДОГАДЫВАЕТСЯ.

    Во-вторых, lara197a указал, про накопление значений после того как цикл закончен во время простоя и выполнение сервисных функций, (выполнение сервисных функций не входит в цикл контроллера).

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

    Не совсем хорошо если ваши расчеты будут врать на несколько импульсов, только из-за того, что в документации не совсем точно описан алгоритм работы контроллера.

  9. #9
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,650

    По умолчанию

    накопление происходит постоянно, но накопленное значение выдается в контроллер вместе с передачей значений от фиксированных входов, все согласно принципа работы контроллеров.
    ЗЫ вроде Вы начинали правилино или или, а теперь выходит документация неверная, а Вы истина первой инстанции

  10. #10

    По умолчанию

    Про что это все? Псевдоаппаратный счетчик у овна считает всегда и никуда не сбрасывается! Мало того - его сбросить невозможно даже если это нужно! Читайте его где хотите и когда хотите. Частота входных импульсов должна быть не выше 10 кГц, хотя это толком и не работает, реально меньше 5 кГц.

Похожие темы

  1. Создание документации
    от АлексPetr в разделе Трёп (Курилка)
    Ответов: 11
    Последнее сообщение: 20.02.2011, 10:32
  2. Как запустить Counter 16bit[VAR]
    от kpv8 в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 02.07.2010, 14:46
  3. запутался в документации
    от klochkov в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 27.05.2010, 11:35
  4. По Овеновской библиотеке PID ?
    от mar154 в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 28.10.2008, 12:32
  5. FREQ_MEASURE И COUNTER В PLC150
    от YURI в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 01.03.2007, 04:03

Ваши права

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