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

Тема: Таймер

  1. #1

    Question Таймер

    У меня стоит ПЛК107, мне нужно снимать показания с влагомера каждую секунду и каждые 10сек высчитывать среднее значение. До етого работал только с визуализацией на СПК, помогите справиться с етим вопросом.

  2. #2
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Создайте массив из 10 элементов. Каждую секунду присваиваем очередному элементу массива текущее значение влажности. Когда заполнили весь массив вычисляем среденее значение. И так по кругу.

  3. #3

    По умолчанию

    А можете пример хоть какой нибуть показать, а то я даже безпонятия с чего начать и чем закончить

  4. #4
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Сделал пример без использования массива согласно Вашей задаче.

    Код:
    FUNCTION_BLOCK medium_value
    VAR_INPUT
    	sens: REAL;	(*показание датчика влажности*)
    END_VAR
    VAR_OUTPUT
    	rh: REAL;	(*усредненное показание датчика влажности*)
    END_VAR
    VAR
    	TON_1sec: TON;(*таймер для генератора импульсов*)
    	sum: REAL;	(*сумма десяти значений показаний датчика*)
    	count: BYTE;	(*счетчик импульсов, нам надо получить 10 импульсов*)
    END_VAR
    _______________________________________________________________________
    
    TON_1sec(IN:= NOT TON_1sec.Q , PT:=t#1s);	(*генератор импульсов раз в секунду*)
    
    (*Каждую секунду считаем импульсы и суммируем текущее значение влажности.*)
    IF TON_1sec.Q THEN		(*если пришел импульс от генератора*)
    	sum:=sum+sens;	(*добавляем текущее значение датчика к общей сумме*)
    	count:=count+1;	(*считаем от 0 до 9*)
    	IF count>9 THEN	(*если получили 10 импульсов и сумму показаний датчика*)
    		rh:=sum/10;	(*вычисляем среднее значение*)
    		sum:=0;		(*обнуляем сумму*)
    		count:=0;	(*обнуляем счетчик*)
    	END_IF
    END_IF

  5. #5

    По умолчанию

    Вставил ваш образец, добавил визуализацию на ввод sens и вывод rh, когда ввожу sens и жму один цикл программа останавливаеться. Как можно вручную проверить всё ето, влагомера пока что нету. Спасибо за ваш труд.

  6. #6
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    С таймерами пошагово не прокатит, они же работают в реальном времени. Запускаете программу на выполнение и в визуализации меняете sens с учетом того, что раз в секунду результат суммируется. За 10 секунд успеете поменять несколько раз. Можно еще в визуализацию вывести sum, тогда будет видна сумма. А так во время работы программы в разделе объявления переменных видны все значения переменных, можно и там посмотреть.

  7. #7

    По умолчанию

    ок, спасибо, пошёл запускать панель)

  8. #8

    По умолчанию

    Загрузил всё в ПЛК, меняю sens но ничего не происходит.
    Когда навожу на свой POU(функциональный блок написано offline).
    Невидит переменных в функциональном блоке, я их повторно в глобальные переменные вписывал, но наверно нужно привязать ФБ к программе что бы были переменные видны?
    Последний раз редактировалось Deoxes; 16.07.2014 в 12:03.

  9. #9

    По умолчанию

    Всё разобрался, Большое спасибо

Похожие темы

  1. Таймер с обнулением
    от NiGHT в разделе Подбор Оборудования
    Ответов: 1
    Последнее сообщение: 11.12.2012, 13:56
  2. Таймер в Codesys
    от Frayl в разделе ПЛК1хх
    Ответов: 19
    Последнее сообщение: 16.08.2012, 11:15
  3. Таймер(ы)
    от AntoNechayuk в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 23.08.2011, 20:39
  4. Таймер УТ1М
    от Kibernetik в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 23.01.2010, 10:52

Ваши права

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