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

Тема: ПР200 на четырёхзначной логике

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    По умолчанию

    Должен признать, что в OwenLogic на данный момент недостаточно возможностей для полноценной реализации алгоритма на четырёхзначной логике, поэтому приведу пример с Открытием/Закрытием ворот в языке программирования ЧПУ Балт-Систем

    В данном языке ST переменные уже объявлены и представляют собой «пакеты» (I входа , U-выхода) для которых выделены рабочие зоны. У сигнала U00K00 две составляющие U00 и K00 и память заполняется следующим образом
    U00K00, U00K01, U00K02 U00K03, U00K04, U00K05, … U00K31 (U00 – 32 шт.)
    U01K00, U01K01, U01K02 U01K03, U01K04, U01K05, … U01K31 (U01 – 32 шт.)

    На основе двоичных переменных формируются переменные, состоящие из 8 бит или СЛОВА (Word) с которыми можно работать как с битами 1111 1111 и как с числами 255
    W00K00, W00K01, W00K02, W00K03 (W00 – 4 шт. По 8 бит.)
    W01K00, W01K01, W01K02, W01K03 (W01 – 4 шт. По 8 бит.)
    Логические двоичные операции записываются символами И – (*) ИЛИ – (+) НЕ – (/)

    Код:
    ; Входные сигналы
    ; I00A00 – Кнопка ворота открыть 
    ; I00A01 – Кнопка ворота закрыть
    ; I00A02 – Кнопка ворота стоп
    ; I00A03 – Датчик препятствия
    ; I00A04 – Конечник открыто
    ; I00A05 – Конечник закрыто
    
    ; Выходные сигналы
    ; U00A00 – Ворота открыть 
    ; U00A01 – Ворота закрыть
    ; U00A02 – Лампа Стоп
    ; U00A03 – Лампа Открытие
    ; U00A04 – Лампа Закрытие
    ; U00A05 – Лампа Авария
    
    ; -------- формирование состояний на основе событий -----------------
    
    ; Если  (Кн. ворота стоп+ Датчик препятствия + Конечник открыто + Конечник закрыто)
    DOF: I00A02 + I00A03 + I00A04 + I00A05
       W20K0=0 ; состояние СТОП 
     ENDF
    ; Если  (Кн. ворота открыть + Ворота отрыть)
    DOF: I00A00 + U00A00
       W20K0=1 ; состояние Открытие ворот 
     ENDF
    
    ; Если  (Кн. ворота закрыть + Ворота закрыть)
    DOF: I00A01 + U00A01
       W20K0=2 ; состояние Закрытие ворот 
     ENDF
    ; Если  (Ворота открыть * Ворота закрыть)
    DOF: U00A00 * U00A01
       W20K0=3 ; состояние Авария 
     ENDF
    
    ; --------------- Алгоритм -------------------
    ; Ворота открыть =  Кн. ворота открыть + Ворота открыть * /Состояние СТОП * /Состояние Авария
    U00A00 = (I00A00 + U00A00) * /[W20K0=0] * /[W20K0=3]
    ; Ворота закрыть =  Кн. ворота закрыть + Ворота закрыть * /Состояние СТОП * /Состояние Авария
    U00A01 = (I00A01 + U00A01) * /[W20K0=0] * /[W20K0=3]
    ; Лампа Стоп
    U00A02  =  [W20K0=0]
    ; Лампа Открытие
    U00A03 = [W20K0=1]
    ; Лампа Закрытие
    U00A04 = [W20K0=2]
    ; Лампа Авария
    U00A05 = [W20K0=3]
    Вложения Вложения
    Последний раз редактировалось Geenerator; 30.04.2025 в 13:38.

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 08.01.2025, 19:16
  2. ПР200 на троичной логике
    от Geenerator в разделе Программируемые реле
    Ответов: 177
    Последнее сообщение: 04.07.2021, 21:14
  3. ПР200 + ПР200 (или МВ110, МУ110)
    от antonlis в разделе Программируемые реле
    Ответов: 32
    Последнее сообщение: 27.06.2017, 12:07
  4. ПР200 Пропадание связи USB - ПР200. Решено
    от PGK в разделе Программируемые реле
    Ответов: 0
    Последнее сообщение: 18.01.2017, 11:37
  5. ПР200+НПТ1 Пределы измерения ПР200 в режиме 4-20ma
    от Алексей Геннадьевич в разделе Программируемые реле
    Ответов: 13
    Последнее сообщение: 06.04.2016, 20:19

Ваши права

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