Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Задачи для начинающих

5160   12 13 14 15 16 17 18 19 20 21 22 все
AlexNek патриот18.02.21 20:26
AlexNek
NEW 18.02.21 20:26 
в ответ anly 18.02.21 20:20
надо где то так:

И дальше.. что с этой простыней делать?

Сидеть вручную удалять ненужное.

Переменные или свойства - совершенно по барабану.

Но по крайней мере, выявили проблему.

anly патриот18.02.21 20:31
anly
NEW 18.02.21 20:31 
в ответ AlexNek 18.02.21 20:23

работа с функциональными блоками (Ампелем в нашем случае)

сводится к:

- запись входных параметров

- вызов блока

- чтение выходных параметров

Проклят нарушающий межи ближнего своего (Втор.27:17)
AlexNek патриот18.02.21 20:33
AlexNek
NEW 18.02.21 20:33 
в ответ anly 18.02.21 20:24
Ты можешь только читать выходы и больше ничего.

Ну я именно так и делаю. Я читаю, что пишется в шину цифровых выходов. Когда именно там изменяется сигнал во время функции или внутри нее, я не имею понятия. Не имеет права контроллер мерцать цифровым выходом.

Я просто проводками соединил шину с моей линейкой светодиодов.

anly патриот18.02.21 20:33
anly
18.02.21 20:33 
в ответ AlexNek 18.02.21 20:26
Сидеть вручную удалять ненужное.
не понял...
Проклят нарушающий межи ближнего своего (Втор.27:17)
anly патриот18.02.21 20:37
anly
NEW 18.02.21 20:37 
в ответ AlexNek 18.02.21 20:33, Последний раз изменено 18.02.21 20:40 (anly)
Не имеет права контроллер мерцать цифровым выходом.
он и не мерцает.

эти выходные переменные R,G,Y не являются лампочками, чтобы им мерцать при каждой записи.

значения этих переменных присваиваются реальным лампочкам (не в процессе работы, а) уже после вызова всех программ контроллера, т.е. после вызова Process.

Проклят нарушающий межи ближнего своего (Втор.27:17)
AlexNek патриот18.02.21 20:43
AlexNek
NEW 18.02.21 20:43 
в ответ anly 18.02.21 20:33
не понял...

Ну вот старый код в желаемом исполнении. Есть разница с той табличкой что была ранее?

+------+-----+-----+
|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|

anly патриот18.02.21 20:43
anly
NEW 18.02.21 20:43 
в ответ anly 18.02.21 20:37

т.е. так в цикле:

- вызвать Процесс

- присвоить выходы реальным лампочкам

Проклят нарушающий межи ближнего своего (Втор.27:17)
AlexNek патриот18.02.21 20:45
AlexNek
NEW 18.02.21 20:45 
в ответ anly 18.02.21 20:37
значения этих переменных присваиваются реальным лампочкам (не в процессе работы, а) уже после вызова всех программ контроллера, т.е. после вызова Process

Ну а на кой мне тогда симуляция на шарпе, если я не могу проверить реальное устройство?

anly патриот18.02.21 20:46
anly
NEW 18.02.21 20:46 
в ответ AlexNek 18.02.21 20:43

вроде правильна табличка.

Проклят нарушающий межи ближнего своего (Втор.27:17)
anly патриот18.02.21 20:49
anly
NEW 18.02.21 20:49 
в ответ AlexNek 18.02.21 20:45
Ну а на кой мне тогда симуляция на шарпе, если я не могу проверить реальное устройство?
как это на кой?! прежде чем подключать реальное устройство, лучше проверить на шарпе. Но повторяю, ты не должен модифицировать мой код (по нормальному у тебя его даже не должно быть, а только DLL), ты можешь только им пользоваться, т.е. читать выходы и дергать Процесс.
Проклят нарушающий межи ближнего своего (Втор.27:17)
anly патриот18.02.21 20:54
anly
NEW 18.02.21 20:54 
в ответ anly 18.02.21 20:49, Последний раз изменено 18.02.21 20:57 (anly)

функциональные блоки не работают напрямую с реальными устройствами.

юзер делает свою логику и потом, в системе программирования, связывает в таблице логические выходы с физическими лампочками.

А система работает так циклически:

- вызывает все программы (т.е. у каждой Process)

- перезаписывает выходы в реальное железо (что юзер в табличке указал)

Проклят нарушающий межи ближнего своего (Втор.27:17)
AlexNek патриот18.02.21 22:03
AlexNek
NEW 18.02.21 22:03 
в ответ anly 18.02.21 20:46
вроде правильна табличка.

А если с этой сравнить? Видна разница?

+------+-----+-----+
|Pdestr|Auto |Delay|
|  R G |R Y G| [s] |
|------+-----+-----|
|  *   |    *|0.031|
|      |  *  |10.016|
|    * |*    |2.016|
|  *   |  *  |5.015|
|  *   |    *|1.016|
|      |  *  |10.015|
|    * |*    |2.016|
AlexNek патриот18.02.21 22:05
AlexNek
NEW 18.02.21 22:05 
в ответ anly 18.02.21 20:54
функциональные блоки не работают напрямую с реальными устройствами.

Никогда еще не сталкивался с этим. Хотя может нам уже готовое давали.

anly патриот18.02.21 22:07
anly
NEW 18.02.21 22:07 
в ответ AlexNek 18.02.21 22:03, Последний раз изменено 18.02.21 22:15 (anly)

и эта вроде правильна по логике переключения лампочек. но чего там времена значат тебе виднее

........

пардон там с зеленым пешеходу похоже проблемы...в момент желтого у машин

Проклят нарушающий межи ближнего своего (Втор.27:17)
anly патриот18.02.21 22:10
anly
NEW 18.02.21 22:10 
в ответ AlexNek 18.02.21 22:05, Последний раз изменено 18.02.21 22:13 (anly)
Никогда еще не сталкивался с этим. Хотя может нам уже готовое давали.

логика отделена от физики.

производитель программ управления продаёт логику. а эту логику цепляют к разной физике, причем связываться с физикой может просто адресом на шине, а может и адресом по интернету - зависит от системы.

в твоем случае "физикой" является консоль. а у меня здесь - симулятор.

Проклят нарушающий межи ближнего своего (Втор.27:17)
AlexNek патриот18.02.21 22:20
AlexNek
NEW 18.02.21 22:20 
в ответ anly 18.02.21 22:10
Хотя может нам уже готовое давали..... логика отделена от физики.

Я хотел сказать немного другое. Когда нам нужно было работать с контроллером от Сименса, не было никаких дополнительных связываний. Или у них другие, чем у вас?

anly патриот18.02.21 22:28
anly
NEW 18.02.21 22:28 
в ответ AlexNek 18.02.21 22:20

сименс конечно может продавать и готовую систему уже связанную.

Проклят нарушающий межи ближнего своего (Втор.27:17)
anly патриот18.02.21 22:29
anly
NEW 18.02.21 22:29 
в ответ AlexNek 18.02.21 22:03

вот это попробуй

Проклят нарушающий межи ближнего своего (Втор.27:17)
anly патриот18.02.21 22:36
anly
NEW 18.02.21 22:36 
в ответ anly 18.02.21 22:29

перед ampel.Process();

там стоило бы записать типа

ampel.Button = %IX100.33.10


вот эти % в настоящей системе задают адрес устройства чтения одного бита.

ну а у тебя надо может нажатие на кнопку клавиатуры туда записать.

Проклят нарушающий межи ближнего своего (Втор.27:17)
AlexNek патриот18.02.21 22:37
AlexNek
NEW 18.02.21 22:37 
в ответ anly 18.02.21 22:29

интересный трик - сравнивать текстовый результат смущ

Завтра уже...