Задачи для начинающих
Ты можешь только читать выходы и больше ничего.
Ну я именно так и делаю. Я читаю, что пишется в шину цифровых выходов. Когда именно там изменяется сигнал во время функции или внутри нее, я не имею понятия. Не имеет права контроллер мерцать цифровым выходом.
Я просто проводками соединил шину с моей линейкой светодиодов.
Не имеет права контроллер мерцать цифровым выходом.он и не мерцает.
эти выходные переменные R,G,Y не являются лампочками, чтобы им мерцать при каждой записи.
значения этих переменных присваиваются реальным лампочкам (не в процессе работы, а) уже после вызова всех программ контроллера, т.е. после вызова Process.
не понял...
Ну вот старый код в желаемом исполнении. Есть разница с той табличкой что была ранее?
+------+-----+-----+ |Pdestr|Auto |Delay| | R G |R Y G| [s] | |------+-----+-----| | * | *|0.047| | * | *|0.500| | * | *|0.500| | * | *|0.500| | * | *|0.515| | * | *|0.500| | * | *|0.500| | * | *|0.500| | * | *|0.500| | * | *|0.500| | * | *|0.500| | * | *|0.500| | * | *|0.500| | * | *|0.500| | * | *|0.500| | * | *|0.500| | * | *|0.500| | * | *|0.500| | * | *|0.500| | * | *|0.500| | | * |0.500| | | * |0.500| | | * |0.500| | | * |0.500| | | * |0.500| | | * |0.500| | * |* |0.500| | * |* |0.500| | * |* |0.500| | * |* |0.500| | * |* |0.500| | * |* |0.500| | * |* |0.500| | * |* |0.500| | * |* |0.500| | * |* |0.500|
Ну а на кой мне тогда симуляция на шарпе, если я не могу проверить реальное устройство?как это на кой?! прежде чем подключать реальное устройство, лучше проверить на шарпе. Но повторяю, ты не должен модифицировать мой код (по нормальному у тебя его даже не должно быть, а только DLL), ты можешь только им пользоваться, т.е. читать выходы и дергать Процесс.
функциональные блоки не работают напрямую с реальными устройствами.
юзер делает свою логику и потом, в системе программирования, связывает в таблице логические выходы с физическими лампочками.
А система работает так циклически:
- вызывает все программы (т.е. у каждой Process)
- перезаписывает выходы в реальное железо (что юзер в табличке указал)
вроде правильна табличка.
А если с этой сравнить? Видна разница?
+------+-----+-----+ |Pdestr|Auto |Delay| | R G |R Y G| [s] | |------+-----+-----| | * | *|0.031| | | * |10.016| | * |* |2.016| | * | * |5.015| | * | *|1.016| | | * |10.015| | * |* |2.016|
и эта вроде правильна по логике переключения лампочек. но чего там времена значат тебе виднее
........
пардон там с зеленым пешеходу похоже проблемы...в момент желтого у машин
Никогда еще не сталкивался с этим. Хотя может нам уже готовое давали.
логика отделена от физики.
производитель программ управления продаёт логику. а эту логику цепляют к разной физике, причем связываться с физикой может просто адресом на шине, а может и адресом по интернету - зависит от системы.
в твоем случае "физикой" является консоль. а у меня здесь - симулятор.
перед ampel.Process();
там стоило бы записать типа
ampel.Button = %IX100.33.10
вот эти % в настоящей системе задают адрес устройства чтения одного бита.
ну а у тебя надо может нажатие на кнопку клавиатуры туда записать.