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

Тема: Контроль движения поезда и светофора на LD в Unity Pro

  1. #1

    Question Контроль движения поезда и светофора на LD в Unity Pro

    Добрый вечер!
    На этом форуме 1-й раз, поэтому заранее извиняюсь за свою узкую терминологию в АСУТП.
    Задание состоит в том, что бы создать в Unity Pro блок-участок железной дороги по которому движется поезд(нарисовав в конструкторе: путь показанный на картинке 1.) По параллельным линиям блок-участка, должны передаваться импульсы , а по вертикальным будет подаваться поезд(справа налево).
    Когда на П1 подается 3 импульса (зеленый сигнал светофора) то поезд начинает двигаться занимая (активируя) П1 , при этом Р1 и Р2 должны мигать голубым цветом. Продолжая двигаться справа налево и достигнув П2 , блок П1 должен отключится, а Р1 и Р2, загореться красным цветом , имитируя занятость пути. И т.д.
    Если же на блок П1 подается 2 импульса (желтый сигнал светофора), то поезд подается с большим замедлением (с меньшей скоростью).
    Если 1 импульс (красный сигнал светофора) , то поезд не должен подаваться.
    Соответственно далее он должен пройти весь участок по всем блокам и в конце: П5,Р7,Р8 - горят , например, красным цветом как "занятые"., а Р9 и Р10 мигают голубым предвещая остановку/замедление/подачу поезда.


    Если вопрос не понятен, прочитайте 2-й вариант формулировки:
    Блок участок железной дороги отделяется двумя светофорами С1 и С2. Когда на 2-м светофоре горит зеленый сигнал, то по горизонтальным блокам(которые имитируют рельсы): Р9 Р7 Р5 Р3 Р1 и Р10 Р8 Р6 Р4 Р2, передается 3 импульса (символизирующие: свободный участок и разрешение движения поезда) на 1-й светофор, после чего с помощью Бегущих огней , по блокам П1 П2 П3 П4 П5 должен проследовать поезд.
    Если со 2го светофора подать 2 импульса(символизирующие желтый цвет ) , то поезд должен проследовать с меньшей скоростью (в Unity Pro я так понимаю это означает большее замедление в блоке TOF)
    Если со 2-го светофора подается 1 импульс(символизирующий красный цвет) , то поезд не подается.

    Я знаю как создать бегущие огни, что для генерирования импульсов необходим блок TP , как я понял импульсы должны приходить в блок CTU и сравниваться со значением PV. Но у меня не получается собрать полноценную схему, если сможете, буду очень благодарен за любую помощь!

    b4bc5d025898.png

  2. #2
    Пользователь
    Регистрация
    11.07.2012
    Адрес
    г. МИНСК
    Сообщений
    522

    По умолчанию

    И что вы хотите? Предоставте свою версию и тогда вам подскажут ответ на конкретный вопрос.

  3. #3
    Пользователь
    Регистрация
    10.04.2010
    Адрес
    Алтайский край,г.Рубцовск
    Сообщений
    963

    По умолчанию

    Честно сказать я не сильно въехал что надо сделать написать в Codesys или нарисовать в Unity Pro, судя по названиям ФБ какую-то программу Вы написали вот и выложите её

  4. #4

    По умолчанию

    Объявление переменных:

    PROGRAM PLC_PRG
    VAR
    on: BOOL; *светофор вкючен/отключен
    TON_timer: TON;
    byt: BOOL;
    prbyt: BOOL;
    green: BOOL; *зеленая лампа (выход)
    red: BOOL; *красная лампа (выход)
    yellow: BOOL; *желтая лампа (выход)
    timer: BYTE;
    go: BOOL;
    tgreen: BYTE; *время горения зеленого сигнала в секундах (уставка)
    tred: BYTE; *время горения красного сигнала в секундах (уставка)
    sec: BYTE; *цифровое табло, сколько в секундах осталось до переключения светофора.
    END_VAR

    Сама программа:

    IF tred=0 THEN tred:=15; tgreen:=10;END_IF; *это на случай если настройки светофора не заданы
    TON_timer (IN:=TRUE ,PT:=t#0.5s);
    IF TON_timer.q=TRUE THEN TON_timer (IN:= FALSE ); byt:=NOT byt;END_IF;
    IF on=0 THEN green:=0;red:=0;
    IF byt<>prbyt THEN yellow:=NOT yellow;END_IF;
    ELSIF byt<>prbyt THEN
    IF timer=0 THEN
    IF go=0 THEN go:=1; green:=1; red:=0;yellow:=0; timer:=tgreen*2;
    ELSE go:=0; green:=0; yellow:=0; red:=1; timer:=tred*2; END_IF;
    ELSIF timer>0 THEN timer:=timer-1;IF timer<7 THEN
    IF go=1 THEN green:= NOT green; ELSE yellow:=1;END_IF;
    END_IF;
    END_IF;
    END_IF;
    sec:=timer/2;
    prbyt:=byt;

    Полноценный светофор на ST, полностью повторяет все фазы уличного светофора. Проект для плк150. При желании легко добавляется второй светофор для организации реверсивного движения.
    Вложения Вложения
    Последний раз редактировалось alexxx; 27.06.2015 в 23:01.

Похожие темы

  1. программирование на Ld
    от кубоша в разделе ПЛК1хх
    Ответов: 17
    Последнее сообщение: 06.04.2013, 18:28
  2. LD. программирование ПЛК на языке LD
    от 82Andrey в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 23.11.2012, 16:13
  3. Вызов POU на языке LD
    от ZPavel в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 28.02.2012, 00:55
  4. Как вывести сигналы на МДВВ в LD
    от Hex16 в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 19.09.2008, 10:57

Метки этой темы

Ваши права

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