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

Тема: Универсальные макросы для OWEN Logic

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для Serhioromano
    Регистрация
    15.09.2015
    Адрес
    Бишкек
    Сообщений
    265

    По умолчанию

    Представляю свою версию маркоса регистрации ошибок.




    Макрос ALERT16 предназначен для регистрации ошибок и передачи их в разные сценарии по обработке ошибок. Макрос может принять 16 ошибок. Макрос регистрирует ошибку и блокирует ее. Даже если сигнал ошибки на входе исчез, макрос продолжает сообщать об ошибке пока не будет произведен сброс.

    Входы

    • Сброс - BOOL - Сброс ошибки. Так же сбрасывает выход Сирена и Мигание даже если на входах до сих пор есть сигнал ошибки.
    • Причина 1-16 - BOOL - Сигналы ошибок. Что бы ошибка была зарегистрирована достаточно просто импульса, но можно и постоянный сигнал.


    Выхода

    • Ошибка 1-16 - BOOL - Это просто трансляция входной переменной Причина 1-16 на выход
    • Упак. WORD - WORD - Ошибки упакованы в переменную типа WORD где каждый бит это значение ошибки. Такая переменная нужно например для панели оператора ИП320. В списке ошибок, можно вводить адреса, только следующие один за други, по этому все ошибки должны распологаться в ряд. А в ПР, каждая сетевая переменная даже если булевая, попадает в новый регистр.
    • Ошибка - BOOL - Если хотябы на одном входе есть сигнал, то он будет и тут. Это сумирование всех ошибок. Можно например вывести на световую индикацию ошибки. Если на входах причин, ошибок нет то и тут исчезает. Удобно использовать для блокировки процессов при наличии ошибок.
    • Сирена - BOOL - Если на любой из входов придет сигнал, то тут появиться тоже сигнал. Разнице между предыдущим выходом в том, что если нажать сброс, этот выход сброситься даже если на входах есть сигналы ошибок. Выход сирена регистрируется через передний фронт сигнала ошибок. Что бы выход снова сработал после сброса, сначала все ошибки должны исчезнуть, а потом появиться хотя бы одной. Удобно использовать для звуковой сигнализации, что бы можно было отключить звук, даже если ошибка все еще присутствует.
    • Мигание - BOOL - это выход который будет мигать кодом ошибки. Это регистрация. Даже если на входах уже нет сигналов ошибок, выход будет мигать пока не будет произведен сброс. На ПР200 я обычно на светодиод сажаю. Будет мигать столько раз, какой номер входа задействован. После серии миганий, пауза. Мигания подбирал так что бы было удобно считать не сбиваясь, при этом что бы было как можно быстрей.
    • Посл. Номер - INT - Номер последней ошибки. Тоже регистрация. если даже ошибка ушла, номер будет виден, пока не произвести сброс. Это удобно использовать в динамических текстах. Создается список ошибок который автоматически нумеруется, и привязывается к переменной. На экране можно прочесть что за ошибка.
    Изображения Изображения
    Вложения Вложения

  2. #2
    Пользователь
    Регистрация
    30.11.2017
    Адрес
    Егорьевск
    Сообщений
    164

    По умолчанию

    Добрый день. Предлагаю вам, коллеги, оценить мои первые макросы.
    Первый вычитает целые числа без отрицательного числа в итоге - выводит 0 пока разница отрицательна.
    Второй - это энергонезависимый 32bit счетчик. А то CTN - 16-битный, а CTN32 не энергонезависимый. В моем счетчике при достижении максимального значения CTN в 65535 выходное значение на длительность одного цикла принимает значение =65535*(х+1), где х - это номер круга от 0 до 65535 счетчика CTN. Для моего применения это не критично, но если кто-то придумает, как этого избежать, буду благодарен.
    Вложения Вложения
    Последний раз редактировалось Чили-Рома; 28.05.2018 в 16:29.

  3. #3
    Пользователь Аватар для Василий Кашуба
    Регистрация
    20.11.2011
    Адрес
    Ставрополь
    Сообщений
    2,552

    По умолчанию

    Цитата Сообщение от Чили-Рома Посмотреть сообщение
    Добрый день. Предлагаю вам, коллеги, оценить мои первые макросы.
    Первый вычитает целые числа без отрицательного числа в итоге - выводит 0 пока разница отрицательна.
    Второй - это энергонезависимый 32bit счетчик. А то CTN - 16-битный, а CTN32 не энергонезависимый. В моем счетчике при достижении максимального значения CTN в 65535 выходное значение на длительность одного цикла принимает значение =65535*(х+1), где х - это номер круга от 0 до 65535 счетчика CTN. Для моего применения это не критично, но если кто-то придумает, как этого избежать, буду благодарен.
    Счётчик CTN32 энергонезависимый уже делали на простой логике.счётчик.png

  4. #4
    Пользователь
    Регистрация
    30.11.2017
    Адрес
    Егорьевск
    Сообщений
    164

    По умолчанию

    Цитата Сообщение от Василий Кашуба Посмотреть сообщение
    Счётчик CTN32 энергонезависимый уже делали на простой логике.счётчик.png
    Да, этот гораздо проще. Спасибо.
    Вот только жаль, что эту схему не сохранить, как макрос.
    Последний раз редактировалось Чили-Рома; 29.05.2018 в 08:25.

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

    По умолчанию

    Цитата Сообщение от Чили-Рома Посмотреть сообщение
    Да, этот гораздо проще. Спасибо.
    Вот только жаль, что эту схему не сохранить, как макрос.
    Интересно почему?
    Захват-2.png

    Захват-1.png


    ЗЫ
    Ну и по поводу макроса SUBw/oNEG (Вычитание целых чисел с защитой от отрицательного числа)
    Захват-3.png
    Последний раз редактировалось petera; 29.05.2018 в 10:36.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #6
    Пользователь
    Регистрация
    30.11.2017
    Адрес
    Егорьевск
    Сообщений
    164

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Интересно почему?

    Ну и по поводу макроса SUBw/oNEG (Вычитание целых чисел с защитой от отрицательного числа)
    Я думал, что помешает то, что в копиях макроса будет одна и та же переменная. Оказывается - не мешает. Странно тогда, что этого счетчика нет в Онлайн-базе макросов. Надеюсь, что вскоре добавят.
    Ну и, конечно, ваше решение с вычитанием гораздо лаконичнее. Спасибо за науку.

  7. #7

    По умолчанию

    Цитата Сообщение от Чили-Рома Посмотреть сообщение
    Я думал, что помешает то, что в копиях макроса будет одна и та же переменная. Оказывается - не мешает. Странно тогда, что этого счетчика нет в Онлайн-базе макросов. Надеюсь, что вскоре добавят.
    Ну и, конечно, ваше решение с вычитанием гораздо лаконичнее. Спасибо за науку.
    Постараюсь добавить в ближайшее время.
    С уважением, Ревака Юрий.
    Инженер группы технической поддержки компании "ОВЕН"
    e-mail: yu.revaka@owen.ru

    Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
    Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
    Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ

Похожие темы

  1. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Среда программирования OWEN Logic
    Ответов: 404
    Последнее сообщение: 25.08.2020, 15:17
  2. Хотелки в OWEN Logic
    от maks_dmm в разделе Программируемые реле
    Ответов: 4
    Последнее сообщение: 20.02.2016, 13:56
  3. ПО OWEN Logic !!!
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 3
    Последнее сообщение: 11.10.2011, 15:33
  4. OWEN Logic 1.2.0.14b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 40
    Последнее сообщение: 21.02.2011, 14:16
  5. OWEN Logic 1.1.0.11b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 58
    Последнее сообщение: 12.10.2010, 20:55

Ваши права

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