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

Тема: Накопительный счетчик НА ПЛК100.30.M02

  1. #1

    По умолчанию Накопительный счетчик НА ПЛК100.30.M02

    Добрый день! Пишу программу учета тепла на CFC с использованием ФБ HEAT_METER из библиотеки oscat building и ФБ FLOW_METER из библиотеки oscat basic. Все бы хорошо, но после сброса питания накопительное значение джоулей в ФБ HEAT_METER сбрасывается на 0. Как мне сделать какой либо накопительный счетчик, в который записывается значение выхода ФБ HEAT_METER, которое не обнуляется при обнулении входа, сбросе питания, и которое продолжает накапливать цифру, прибавлять к остаточному значению данные с выхода HEAT_METER.

    То есть накрутил счетчик тепла на выходе ФБ HEAT_METER 300 000 джоулей, эти 300 000 джоулей так же на выходе отдельного счетчика, при сбросе питания ФБ HEAT_METER свой счетчик обнуляет и начинает считать заново, и нужно чтобы на отдельном счетчике цифра продолжала расти, складывая свою остаточную с данными счетчика ФБ HEAT_METER.

    Надеюсь понятно объяснил. Всю голову сломал, не могу понять как это сделать.

  2. #2
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    Ну вот примерно так:
    Безымянный.jpg
    Вложения Вложения

  3. #3

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Ну вот примерно так:
    Безымянный.jpg
    Так..прописал это дело себе в программу, пока что оно удваивает значение на выходе и после сброса питания не сохраняется... что не так?
    Изображения Изображения
    Вложения Вложения
    • Тип файла: pro hm.pro (271.7 Кб, Просмотров: 1)
    Последний раз редактировалось WELL; 25.06.2019 в 12:38.

  4. #4
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    В моем блоке семантическая ошибка. Должно быть вот так
    Trig(CLK:=Tact , Q=> );
    IF Trig.Q
    THEN OldHeat:=InHeat-OldHeat; (**)
    Heat:=Heat+OldHeat; (**)
    END_IF;
    OutHeat:=Heat; (**)
    Иначе трансляция сохраненных значений будет только по сигналу Tact.
    На счет удвоения не совсем понятно. В приложенном файле не нашел переменной enb.
    И да, я постоянно путаю R_TRIG и F_TRIG. Сорри. В данной задаче должен быть R_TRIG
    Кроме того, намудрил с алгоритмом подсчета.
    Исправленный вариант.
    Вложения Вложения
    Последний раз редактировалось Sulfur; 25.06.2019 в 13:03.

  5. #5

    По умолчанию

    Иначе трансляция сохраненных значений будет только по сигналу Tact.
    На счет удвоения не совсем понятно. В приложенном файле не нашел переменной enb.
    И да, я постоянно путаю R_TRIG и F_TRIG. Сорри. В данной задаче должен быть R_TRIG[/QUOTE]

    Поправил все. Но ведь в любом случае после восстановления питания на выходе OutHeat должно быть оставшееся значение, так? А у меня 0..

  6. #6
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

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

  7. #7

    По умолчанию

    [QUOTE=Sulfur;308298]Выше приложил исправленный вариант, добавлена еще одна переменная.
    А как часто в такт надо сигнал гнать?

  8. #8

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Выше приложил исправленный вариант, добавлена еще одна переменная.
    Переменная Heat точно сделана глобальной и ретайн? После перезаливки программы ретайн слетает.
    Вот теперь работает! Буду тестировать) Спасибо..поклон до земли!

  9. #9
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    А как часто в такт надо сигнал гнать?
    Можно хоть секундный BLINK на вход повесить, физическая запись во внутренний ретайн все равно будет выполнена в момент снятия питания с ПЛК.
    В принципе можно убрать Tact и сделать обновление Heat по изменению InHeat:

    IF OldHeat <> InHeat THEN далее по тексту. Тогда и триггер R_TRIG не нужен.

  10. #10
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Я бы сделал без БЛИНКа
    Захват-1.png
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Похожие темы

  1. Ответов: 6
    Последнее сообщение: 04.05.2022, 15:51
  2. Счетчик циклов на ПЛК100
    от Алекс2013 в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 26.04.2018, 13:36
  3. Ответов: 8
    Последнее сообщение: 06.04.2016, 08:00
  4. Счетчик импульсов Пульсар 10 модбас+ ПЛК100
    от Alber в разделе Трёп (Курилка)
    Ответов: 4
    Последнее сообщение: 09.07.2014, 08:24
  5. Спец. счетчик ПЛК100
    от Frayl в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 13.08.2012, 13:06

Ваши права

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