В принципе все правильно объяснили, пускай и другими словами... Но термин обратная связь - не ВЫДУМКА этого форума... Вообще-то именно так и называется связь в схемотехнике. :)
Вид для печати
НЕТ, КАТЕГОРИЧЕСКИ НЕТ! :) Это не особенность!!! Вы опять же забываете, что такое линейная программа! :) Хорошо, как Вы представляете обработку сигналов в данном случае, чтобы схема корректно работала? Я же выше все подробно расписал особенности ЛЮБОЙ ЛИНЕЙНОЙ программы. я не только про OWEN Logic!
позволю себе предложить свой пример Т-триггера
(если я правильно понимаю, о чём речь)
Я не забываю ,так как я не программист ,а электронщик и воспринимаю овен лоджик как симулятор электронных цифровых схем ,как и большенство потребителей ПР ,а те кто "программирует" работаю на ПЛК.
Вот вам схема которая работает по разному в зависимости от того куда вы подключите выход ФБ (на какой выход ПР) это то же скажите " не особенность?:confused:
Речь идет только об овен лоджик ,а не вообще линейных программах,точнее о пользователях ПР.Жаль ,не то что началось не понимание ,а то что нет желания услышать другого (из другой области ).Если это не понятно ,неудобно ,не привычно мне (бог со мной),то значит ,что еще кому нибудь из электронщиков.
Не много найдется пользователей ПР которые будут разбираться в особенностях линейного программирования ,о которых ни слова в инструкциях.Да и кому это надо менять профессию.
Это что касается изменения анализа схемы...
http://www.owen.ru/forum/showpost.ph...6&postcount=24
http://www.owen.ru/forum/showpost.ph...4&postcount=33
Посмотрите те ветки подробнее... :)
это я видел...
я думал что речь про "обратные связи", что в них логика поменяется...
PS и ещё.... я как - то приводил пример, что цепочка из блоков AND, если цеплять их к верхнему контакту - может быть бесконечно большой, а если к нижнему, то стек переполняется на 15ом элементе...
Да, это я помню... Скорей всего оптимизации на высоком уровне в данном случае не будет. Я так понимаю, что в будущем будет реализован динамический стек в самом приборе, что естественно скажется и на программе верхнего уровня. Но когда это будет реализовано - пока сказать не могу...
не особенная схема
Как же не менять профессию ,если прежде чем использовать (правильно,безопасно,надежно) ПР вы предлагаете пройти курс по линейному программированию:) .не понял что есть и что будет и почему независимо от наших желаний (начальники запрещают вам или не возможно сделать).Для меня лично есть одна особенность реализации схем в программной среде -отсутствие временных задержек в используемых элементах,но с этим можно жить и даже где то облегчает проектирование электронных схем
Да нормально обьяснили ,только не все что очевидно для программиста,очевидно для пользователей ПР (электронщикам, киповцам,автоматчикам ....,тем кому знакомы основы цифровой схемотехнике).Поэтому ,что было меньше непоняток потом для пользователей-лучше пободаться сейчас.:rolleyes:
А вот примерно та же схема ,но по проще и то же не работает как надо
Это точно такты, циклы,итерации -это все последовательные действия . будем использовать ,давайте еще ,что там у вас:) в заначке.
Знаете, давно хотел спросить - почему вы на входе часто используете TON?
я понимаю, что это фильтрация дребезга, но ПР110 вроде сам это делает!?
и передаёт в программу уже отфильтрованный "сигнал"?
или я что-то не понимаю?
меня не покидает ощущение, что вы нас обманываете. никакие обратные связи, и никакая трижды линейная программа не могут давать A = !A.
по крайней мере, в нашей вселенной.
В любом случае, при схеме с обратной связью где-то (будь то на входе или на выходе) значение будет обновлено только на следующем такте. Но я считаю что в любой момент времени (под любым моментом понимается в конец любого цикла программы) выполнение функций элементов должны быть верны. Но с точки зрения отображения значений допустимо, что на одном конце связи одно значение, на другом будет другое... :) Может не понятно написал... Например, рассмотрев простейший случай, когда с выхода элемента идет связь на его же вход. Тогда значение на этом входе будет равно выходу на следующем такте. Надеюсь понятно объяснил. :)
То, что на данный момент схема ведет себя не адекватно в разных ситуациях было уже сказано мной http://www.owen.ru/forum/showpost.ph...&postcount=213.
ну не скажите.... вот типичный пример, который легко реализуется и на языке функциональных блоков
тут а<>а, НО а=а+1так же как и пример Т-триггер мне казался не важным, следующие два триггера тож мне кажутся просто баловством...Код:while True do
a:=a+1
end
но по "просьбам трудящихся" всё же опубликую...
верхняя часть - это D-триггер, а нижняя - просто детектор фронтов, причём обоих...
не понял про р-триггер
так по фронту есть встроенный...
или я не прав?
Нужен еще кольцевой целочисленный регистр сдвига ,с параллельной записью и сдвигом информации по синхроимпульсу ,с переменной(задаваемой) разрядностью:rolleyes:(количество бит).На булевой логике я это делал ,хорощо бы иметь и целочисленный вариант ,которые у вас хорошо получаются
ну тогда сразу давайте ссылку и на ваш вариант... (булевый)
Мне проше снова нарисовать ,чем искать .Вот регистр сдвига с параллельной записью и сдвигом .Цикличность обеспечивается обратной связью с нужного выхода на вход Di.
В целочисленном варианте количество разрядов лучше задавать по входу или константой внутри макроса
входной код числа=целочисленный
выходной код числа-целочисленный
входной код количество разрядов-целочисленный
входа стробов записи и сдвига -булевы
еще бы вход реверс
"проба пера"
ИМХО я бы SEL вынес за блок, т.е. не пихал бы в одну кучу память и сдвиг...
----------------
завтра предложу на обозрение два апгрейта этого варианта
1) сделаю булевый выход того бита, который переносится...
2) сделаю циклический сдвиг на любое число битов (но без п.1)
PS про тож реверс подумаю... но как я писал выше - не люблю загромождать схему..
в UNIX изначально была оч. мудрая концепция инструментов - программ, которые должны выполнять одно конкретное действие и делать это хорошо
т.е. если есть архиватор, то он только архивирует и делает это хорошо(!), а склеивает перед этим в один кусок папку со вложениями другая программа и тоже делает это хорошо(!)...
и наоборот, сначала архиватор разархивирует, а потом склейщик разрезает на файлы и раскладывает по папкам....
так и тут - если сдвигаем, то только сдвигаем.... если регистр памяти, то только регистр... а не всё в одну кучу....
поэтом программы на компах и разбухают - что в них заложено много того чего они в принципе реально не делают
т.е. если мне надо будет ТОЛЬКО сдвигать вправо, у меня эта функция несёт с собой ещё килограмм жира в виде регистра и реверса...
а потом разработчики ПР будут думать как увеличить память и стек, что бы схемы "с жирком" влазили в "узкие врата"...
При использовании логических элементов они автоматически становятся булевыми или целочисленными (хорошо) ,но если сделать макрос многовходового логического элемента,например 3ИЛИ,то они уже не работают с целочисленными автоматически (плохо),может можно что нибудь сделать в будущих версиях.?Или придется создавать аналогичные макросы ,но только целочисленные.
Что-то SEL не работает так как описано в документации
В документации ошибка ,при управлении о -на выходе V2,при управлении1,на выходе V3.
исправили в руководстве версия 5
Предложение - О всех принципиальных) изменениях в РЭ извещать пользователей(через сайт или форум) в момент внесения очередного изменения ,не важно кто ошибку нашел,разработчики или пользователи ,потому как версии появляются не часто и зачем ,например мне новая версия если там только запятые исправлены .Можно очень коротко информировать ,что внесены такие то изменения туда то,тогда то и всем будет хорошо
,тем более их немного.
Вопрос-можно ли теоретически реализовать в овен лоджик(или специальной программе) при работающем ПР считывание текущего состояние входов\выходов ПР?Как дополнительная опция ,при подключенном кабеле связи к ПК и отображение их в окне проекта или отдельном окне(без симуляции проекта).