Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > SCADA-системы и контроллеры стандарта IEC (МЭК) > Контроль движения поезда и светофора на LD (Unity


Автор: axeluk 3.4.2015, 20:13
Добрый вечер! 
На этом форуме 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. Но у меня не получается собрать полноценную схему, если сможете, буду очень благодарен за любую помощь!

user posted image

Автор: ama_kid 5.4.2015, 09:10
Ну приложил бы файл проекта для unity и описал бы, что именно не получается.  Без конкретики сложно понять суть. В целом идея ясна, но что именно нужно - не разобрать.

Автор: axeluk 5.4.2015, 12:17
В файле в основном банальщина (бегущие огни) 
Вопрос в том, куда приткнуть блок TP и CPU 

Автор: ama_kid 5.4.2015, 15:59
axeluk, думаю, ты в курсе, что одну и ту же задачу в программировании можно решить сотнями способами. Куда конкретно приткнуть блоки TP и CTU - зависит от того, как ты будешь реализовывать задачу. Именно поэтому я и говорю - начни реализовывать, а там видно будет.
Лично я бы организовал функциональный блок, обрабатывающий группу из трех элементов типа Р1, Р2 и П1, а в основной секции организовал бы их цепочку. Таким образом, получилось бы, что блок ТР находится снаружи (в основной секции) и генерирует импульсы, а блок СТU - внутри функционального вспомогательного блока и осуществляет подсчет входных импульсов. Ну, это в случае, если я правильно понял задачу, она как-то излишне избыточно описана (например, непонятно чем алгоритмически отличается элемент Р1 от Р2 (Р3 от Р4 и т.д.). Если они одинаковы - то зачем они оба участвуют в условии. 

Автор: axeluk 5.4.2015, 20:23
Они нужны просто для понимания,  импульсы могут идти только по одной горизонтальной полосе блоков (P9 P7 P5 P3 P1)
Да вы правильно поняли задачу, но я не совсем понимаю как создать тот самый функциональный блок (Р1 Р2 П1) и как после этого графически отобразить проезд поезда. Ведь нужно будет задействовать и остальные блоки а не только эти три(Р1 Р2 П1)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)