Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 33

Тема: Работа CTN внутри макросов

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

    По умолчанию

    Такая конструкция работать не будет. SEL будет всегда будет показывать выход CTN1 если тот не 0.
    пробовал с такой конструкцией, только управление SEL было иное, ничего путнего не получается.

    Пришел к выводу, что надо убрать СTN2 и делать на SEL без 2-ого счетчика вообще

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

  2. #12

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Такая конструкция работать не будет. SEL будет всегда будет показывать выход CTN1 если тот не 0.
    пробовал с такой конструкцией, только управление SEL было иное, ничего путнего не получается.
    Естественно. Он будет показывать номер ячейки, в которую была записана последняя авария. Этот номер будет подаваться на EPROM. Или я что-то не понимаю в работе этих макросов?

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

    По умолчанию

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

    все равно это зачаточный вариант из-за отсутствия возможности управлять кнопками...

  4. #14

    По умолчанию

    Привязывать события к кнопкам всё равно в обозримом будущем не предвидится, насколько я понял. Хошь-не хошь, придётся извращаться. Я потому и советую листать экраны не кнопками, а переменными, что тогда мы к переходу на экран аварий можем привязать, например, сброс счётчиков. В схеме с SEL я имел в виду, что такое значение будет иметь переменная Read в момент перехода на экран аварий. А потом мы сможем её менять счётчиком CTN2, как и было в схеме изначально.

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

    По умолчанию

    не получится менять ее счетчиком, тоже пробовал. Делал WriteToFB номера ячейки в счетчик.
    Еще хуже получается.

  6. #16

    По умолчанию

    Короче, получилась такая кракозябра, и вроде даже работает. В ПР не зашивал, смотрел в эмуляторе. Когда код аварии =0, считаю, что аварии нет. Когда код меняется, происходит запись в ячейку памяти. Счётчик CTN1 показывает следующую ячейку, а в переменную Read пишется номер текущей ячейки. Происходит переход на экран аварий. ПР отображает последнюю аварию. По переменной R (она же NEXT) листаем список аварий вниз и по кругу. Ежели в это время придёт новая авария, переменная Read поменяется в макросе, и новая авария отобразится на экране. Всего лог содержит 9 аварий, по числу ячеек макроса EEPROM.
    Кста, RTRIG2 в макросе можно смело убрать, он нужен только для испытаний в редакторе макроса, а так у нас R всегда импульс длиной в цикл, и в детекторе переднего фронта нужды нет.

    Но, повторюсь, испытывать прогу на реальном ПР нет времени, а Лоджик -- это, увы не та программа, где все элементы И на 4 входа (хе-хе), и эмуляции экранов тут нет. Как точно ведут себя экраны, сказать не могу.
    Вложения Вложения

  7. #17

    По умолчанию

    Подправил переход на экран. Так должно работать.

    PPS: Чтобы всё было "по-взрослому", надобно ещё предусмотреть очистку памяти аварий и организовать подсчёт заполненности памяти, дабы не выводить на экран нули из пустых ячеек.
    Вложения Вложения
    • Тип файла: owl melky1.owl (1.74 Мб, Просмотров: 11)
    Последний раз редактировалось dan75; 06.12.2019 в 01:31.

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

    По умолчанию

    Доберусь до работы, гляну. Все равно спасибо.
    А макрос был заброшен когда-то как раз из за отсутствия человеческого управления.
    Да вот понадобился. Основная цель, передать время в UTC (надо ещё переменную разделить на два регистра) и код аварии по сети в Scada. А отображение на экране просто для местного просмотра.
    Аварий 0 это тоже надо, так как время фиксируется. Ну и потом на стек перейти.
    Да,, вести количество тоже надо, чтобы пустоту не показывать.

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

    По умолчанию

    з.ы. спасибо, работает. смотрю 0 заблокировали (в принципе подумаю, а нужен ли мне он? хотя есть код ошибки, где хотелось бы видеть его отсутствие).

    Вообще надо время передавать не в UTC в идеале, а в DateTime, который понимается C#. чтобы сразу без всяких скриптов показывать... Но это наверное будет сильно жестко для ПР. Потому что с этим временем надо будет работать и внутри программы тогда.

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

    По умолчанию

    dan75 спасибо за помощь. Окультурил, протестил на ПР. Моя вполне удовлетворен
    Главное что по сети я увижу и битовую маску ошибок и время ее возникновения.
    з.ы. можно убрать проверку на ноль внутри макроса, тогда можно видеть и время снятия ошибки соответственно.

    Время бы только победить, и фиг бы с ними, с 4-мя регистрами...

    В проекте полноценный макрос (з.ы. макросы, не относящиеся к макросу Alarm_log не удалял из проекта, так что экспорт, импорт в новый проект перенесут только нужное). Ну и пример настроенного экрана аварий. Все остальное почистил.
    Вложения Вложения
    Последний раз редактировалось melky; 06.12.2019 в 14:53.

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Похожие темы

  1. Обсуждение макросов для OWEN Logic
    от Ревака Юрий в разделе Среда программирования OWEN Logic
    Ответов: 737
    Последнее сообщение: 24.02.2024, 09:54
  2. Не появляются именя макросов в блоке ФБ
    от smashrod в разделе Среда программирования OWEN Logic
    Ответов: 4
    Последнее сообщение: 30.03.2019, 10:52
  3. Локальная база макросов.
    от SF_Axel в разделе Среда программирования OWEN Logic
    Ответов: 40
    Последнее сообщение: 05.03.2017, 21:54
  4. Ошибка онлайн базы макросов
    от Владимир Геннадьевич в разделе Программируемые реле
    Ответов: 11
    Последнее сообщение: 04.07.2016, 12:35
  5. Отображение имён входов у макросов
    от Владимир Ситников в разделе Среда программирования OWEN Logic
    Ответов: 15
    Последнее сообщение: 06.04.2016, 18:40

Ваши права

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