у меня и так в начале стоит некая схема И
да хоть десять И каждая ветка будет продолжать работать, а в плк исключаемый код не будет выполнятся
Вид для печати
Отрисовка линий был и пока остается больным вопросом.
на счет внешнего вида блоков и макросов будет вот такое обновление
Вложение 17713
На счет реализации If и Case (в широком смысле). можно сделать и на лоджике, например вот так:
Вложение 17715
Case по аналогии, только надо добавить селектор.
Но в ПР будут обсчитаны обе ветки, исключать код он не умеет.
Здравствуйте capzap! К сожалению, я не смогу предоставить Вам доказательства, поскольку "прошивка" или, суть -- программа для микроконтроллера не лежит на диске, а сразу "улетает" в EEPROM последнего. Однако Вы, как профессионал, знаете, что на этапе компиляции (сборки) кода, исключаются, например, заведомо невыполняющиеся участки программы, ложные условия и прочее "ложное", если присутствует. Это про оборванную связь, о которой пишут выше. Однако, и любое ложное условие в любой программе (естественно) не выполняется. То есть процессор (микроконтроллер и т п) просто тем или иным образом "перепрыгивает" кусок кода. Очевидно, что реальная параллельность вычислений может быть достигнута только при соответствующих аппаратных возможностях, в остальных случаях псевдопараллельности вряд ли разумно, чтобы выполнялся тотально весь код без разбора. Равно как и так называемые RTOS -- операционные системы реального времени как бы не совсем реального времени. Так мануал одного достаточно известного микроконтроллера справедливо гласит: "Вы должны понимать, что обработка данных в реальном времени зависит от способа написания кода, имеющихся на текущий момент прерываниях (в том числе вложенных), а так же чем именно "занято" в данный момент времени ядро процессора... Кхм, да я просто Капитан Очевидность, чего мне меньше всего хочется.
Если речь идет о том, что ветвления в программе ПЛК можно программно отключать -- да, в ПР так нельзя. Но, понятно, что любая "часть" состояния конечного автомата, которыми являются и ПЛК, и ПР не исполнится при условии "ложно" на входе... Я все правильно понял? )
Вы почему то хотите меня втянуть в спор совершенно про другое. Я говорю про код который уже работает в ПР. Как там поступил программист на этапе создания проекта и компилятор меня не интересует, согласитесь заливать в контроллер условие,одна из ветвей которого никогда не будет выполнятся,мягко говоря нелогично. Поэтому я высказывась про то, что работает, с самим SEL вобще всё просто, обе ветви исполнятся и взависимосьи от состояния селектор выберет результат с соответствующей ветви, на картике я показывал, что и после,если ветка даже неучаствует более нигде она всё равно произведет свои вычисления
на том и порешим :rolleyes:сегодня стал Дедом :o.