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

Тема: ПР200 и энергонезависимые переменные

  1. #1

    По умолчанию ПР200 и энергонезависимые переменные

    Коллеги, добрый вечер!

    В рамках подготовки к решению предстоящей задачи, решил попробовать сделать лог на 5 событий в памяти ПР200. В эмуляции все выглядит не плохо, но на практике не запоминаются необходимые переменные в энергонезависимой памяти. На данный момент задумка тестовой программы такая. Читаем системное время, и по переднему фронту входа I1 запоминаем событие - день, месяц, часы, минуты, а в качестве кода события - секунды. События пишутся последовательно в энергонезависимую память, в соответствие с состоянием счетчика записи событий. Счетчик записи событий энергонезависимый, кольцевой - как только достигает 5, сбрасывается в единицу. Есть еще счетчик считывания событий, он тоже энергонезависимый, его значение устанавливается с экрана ПР200.
    Так вот. Не запоминается ничего, кроме счетчика считывания.
    Программа в прикреплении. На экране: 1-я строка - текущее время-дата, потом 5 строк - время и код события, последняя строка - счетчик считывания, состояние входа I1 и код события, считываемый из энергонезависимой памяти в соответствие со значением счетчика считывания.
    Возможно, я не прав даже на концептуальном уровне, но как-то я не могу понять в чем не прав. Прошу направить в нужное русло и сильно не пинать
    Вложения Вложения

  2. #2
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    9,438

    По умолчанию

    Цитата Сообщение от Hemann Посмотреть сообщение
    Коллеги, добрый вечер!

    В рамках подготовки к решению предстоящей задачи, решил попробовать сделать лог на 5 событий в памяти ПР200. В эмуляции все выглядит не плохо, но на практике не запоминаются необходимые переменные в энергонезависимой памяти. На данный момент задумка тестовой программы такая. Читаем системное время, и по переднему фронту входа I1 запоминаем событие - день, месяц, часы, минуты, а в качестве кода события - секунды. События пишутся последовательно в энергонезависимую память, в соответствие с состоянием счетчика записи событий. Счетчик записи событий энергонезависимый, кольцевой - как только достигает 5, сбрасывается в единицу. Есть еще счетчик считывания событий, он тоже энергонезависимый, его значение устанавливается с экрана ПР200.
    Так вот. Не запоминается ничего, кроме счетчика считывания.
    Программа в прикреплении. На экране: 1-я строка - текущее время-дата, потом 5 строк - время и код события, последняя строка - счетчик считывания, состояние входа I1 и код события, считываемый из энергонезависимой памяти в соответствие со значением счетчика считывания.
    Возможно, я не прав даже на концептуальном уровне, но как-то я не могу понять в чем не прав. Прошу направить в нужное русло и сильно не пинать
    Вот когда-то запоминали дату и время события:
    Контроль состояния_7.owle
    Короче, в теме на форуме это подробно обсуждалось, мне кажется в одной переменной всё поместится, в смысле дата-время и код события!
    Сейчас прикинем: день - 5 бит, месяц - 4 бита, часы - 6 бит, минуты - 6 бит, код события - 3 бита, короче хватает с избытком, даже 8 бит остаётся в резерве!
    Кажется здесь обсуждали: https://owen.ru/forum/showthread.php?t=26216&page=24
    Последний раз редактировалось Сергей0308; 15.07.2024 в 03:41.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  3. #3
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,908

    По умолчанию

    Цитата Сообщение от Hemann Посмотреть сообщение
    Коллеги, добрый вечер!

    В рамках подготовки к решению предстоящей задачи, решил попробовать сделать лог на 5 событий в памяти ПР200. В эмуляции все выглядит не плохо, но на практике не запоминаются необходимые переменные в энергонезависимой памяти. На данный момент задумка тестовой программы такая. Читаем системное время, и по переднему фронту входа I1 запоминаем событие - день, месяц, часы, минуты, а в качестве кода события - секунды. События пишутся последовательно в энергонезависимую память, в соответствие с состоянием счетчика записи событий. Счетчик записи событий энергонезависимый, кольцевой - как только достигает 5, сбрасывается в единицу. Есть еще счетчик считывания событий, он тоже энергонезависимый, его значение устанавливается с экрана ПР200.
    Так вот. Не запоминается ничего, кроме счетчика считывания.
    Программа в прикреплении. На экране: 1-я строка - текущее время-дата, потом 5 строк - время и код события, последняя строка - счетчик считывания, состояние входа I1 и код события, считываемый из энергонезависимой памяти в соответствие со значением счетчика считывания.
    Возможно, я не прав даже на концептуальном уровне, но как-то я не могу понять в чем не прав. Прошу направить в нужное русло и сильно не пинать
    Вы не правильно ячейку памяти сделали.
    Вот так попробуйте
    Безымянный.png

    Ну, или, вот так (очистка журнала тоже должна присутствовать)
    Безымянный.png
    Последний раз редактировалось Dimensy; 14.07.2024 в 06:50.

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

    По умолчанию

    делал на 16 событий с сохранением времени в Unix time. В том числе с просмотром с экрана и передачей последней в сеть.
    Применялись макросы времени petera и макросы ППЗУ Сергей0308

    Вообще поищите темы Журналы аварий, было много реализаций.

  5. #5
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,908

    По умолчанию

    А счетчик можно чуть оптимизировать

    Код:
    function_block WRCount //имя функционального блока.
    
    // функциональный блок счетчика записей в логе. после достижения 5 записей - сбрасывается в 1
    // работает по фронту сигнала Wr
    // обязательно делать обратную связь с выхода NewCnt на вход CurCnt
    
        var_input //объявление входных переменных
           Wr : bool; //сигнал записи с типом данных bool
           CurCnt : udint; //текущий счетчик событий лога с типом данных udint
         end_var
    
        var_output //объявление выходных переменных
           NewCnt : udint; //обновленный счетчик событий лога с типом данных udint
        end_var
    
        var //объявление локальных переменных
           RTrig : bool; //переменная для определения переднего фронта на входе «U»
        end_var
    
        NewCnt := CurCnt;
        if NewCnt = 0 then NewCnt := 1; end_if //Инициализация, не обязательно
        if Wr and not RTrig then   
           NewCnt := (NewCnt mod 5) + 1;   
        end_if    
        RTrig := Wr;
        
    end_function_block

  6. #6

    По умолчанию

    В библиотеке элементов Овен существует запароленный макрос Events предназначенный для сохранения событий.
    Сохраняет не много 5-10 шт.

    Хотя и разработать собственный тоже хорошо.

  7. #7

    По умолчанию

    Друзья, всем огромное спасибо! Доработка ячейки памяти от Dimensy решила вопрос с сохранением. Пока не совсем корректно работает счетчик событий записи, но будем бороться. Еще раз всем большая благодарность! Если что - буду еще задавать вопросы.

Похожие темы

  1. Энергонезависимые переменные на ПР200
    от Ivanvn в разделе Среда программирования OWEN Logic
    Ответов: 6
    Последнее сообщение: 20.02.2024, 09:52
  2. Энергонезависимые переменные в блоках ST
    от alexey001 в разделе Среда программирования OWEN Logic
    Ответов: 8
    Последнее сообщение: 25.10.2023, 19:55
  3. Стерлись энергонезависимые переменные!!!
    от Алексей 1 в разделе Программируемые реле
    Ответов: 28
    Последнее сообщение: 31.03.2021, 21:42
  4. ПР200 + ИП320, энергонезависимые переменные.
    от Aleksey Efremov в разделе Программируемые реле
    Ответов: 40
    Последнее сообщение: 21.03.2017, 15:51
  5. Поддерживаются ли ПР энергонезависимые переменные?
    от Vasily777 в разделе Программируемые реле
    Ответов: 1
    Последнее сообщение: 20.02.2017, 08:30

Ваши права

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