Если ОЛ это FBD, то почему нет классического en/eno и блока move. Очень сильно облегчит жизнь.
Вид для печати
Если ОЛ это FBD, то почему нет классического en/eno и блока move. Очень сильно облегчит жизнь.
sa_mut есть SEL как вариант замены move, хотя да, en\eno дают несколько больше возможностей, например отрабатывать некий участок кода или нет.
Хотя я как-то этот вопрос тоже обходил...
melky SEL не подходит под управляемое присваивание. SEL всегда работает и больше напоминает IF/THEN/ELSE. А мне необходим алгоритм IF/THEN. Связка EN+MOVE в этом случае работает идеально. Просто мне непонятно, почему недоступна эта функция. Управляющий вход EN это ведь одна из особенностей FBD. У меня обойти ситуацию не получается (((. Пробывал использовать макрос SAVE Вложение 28670 из онлайн библиотеке, но ОЛ не хочет писать в одну и ту же переменную с двух разных блоков. Видимо особенность среды. Вот и подал "прошение" на улучшение функционала.
Ну так переменную из разных блоков в один и выбирайте при помощи SEL. Так же можно использовать SEL с обратной связью (возможно даже прямой), выход SEL на вход себя же. Это позволяет удерживать переменную до очередного импульса на управляющем входе SEL. Тот же Move c EN получается.
Хм, посмотрел внутренности Save, зачем это при наличии SEL ?????
В ОЛ нет возможности измерять время. Этого не хватает. И про возможность управляемого отключения кусков кода тоже хорошо бы, в сложных программах обычно не надо всегда всё молотить что нарисовано. И еще потряс размер файлов исходников в ОЛ. Очень расточительно, и долго грузится. Размер исходников в ОЛ больше аналогичной программы в других языках в 2000 раз.
в ОЛ есть возможность измерять время, часы то есть...
На счет размера это да, так как вместо координат похоже сохраняется изображение рабочего стола целиком :)))
Серёга Букашкин товарищ petera написал прекрасные макросы Unix время. запомнили, на следующем цикле или по таймеру из нового отняли старое... вот вам и в миллисекундах
Время берется из часов ПР, так что время цикла побоку.
В часах ПР минимальный отсчет 1 секунда. Если бы был регистр еще с миллисекундами - вопроса бы не было. А если нужно мерить интервалы длительностью менее секунды? В стандартном макросе UNIX_TIME миллисекунд нет. Для его приложений они и не нужны.
В предложения по доработке ОЛ предлагается внести в переменные текущего времени еще миллисекунды. Это решит все проблемы с точностью измерения времени и измерения коротких интервалов.
Save рассматривал как вариант. С ним тоже не получилось.
мне нужна схема для реализации шагов 1-2-3, внутри шага определенные действия. Действия в шаге выполнились, можно переходить к следующему. Этакий SFC. На FBD я это делаю следующим образом: Вложение 28677. Таймер TON установлен для примера, там может быть любое действие, главное что переход будет возможен только при условии окончания текущего. Носителем информации о текущем этапе является переменная STEP.
P.S.: так как к ОЛ только присматриваюсь, то ищу пути реализации алгоритмов. Честно говоря пока много дается с трудом, к примеру не могу указать значение перемнной по умолчанию. Ввод в таблице не активен.Вложение 28676. Если кто подскажет, где нужно вводить значение по умолчанию, буду признателен.
по моему, надо галочку включить, тогда пункт активен будетЦитата:
Ввод в таблице не активен
Павел Братковский Спасибо, действительно так. Не понятно как связано начальное значение и энергонезависимость, но в эмуляторе введеное начальное значение подтягивается, только если поставлен чекбокс "энергонезависимость"
с другой стороны если булева переменная не энергонезависимая, ей смысл выставлять какое то значение......и вообще в теме голосуют там за что то...как вариант в курилку
sa_mut та пусть себе что-то выполняется, если иначе у вас никак, это не мешает поставить на выходе AND и разрешать работу выхода если = 0, 1 или 2... или не разрешать по другим условиям.
Значит нужно использовать информацию о времени цикла выполнения программы
Например так
Вложение 28679
Считаем сколько раз выполняется программа за одну секунду, а дальше все просто.
На выходе имеем аналог функции TIME() - время работы макроса в мс от момента включения ПР.
ЗЫ.
В эмуляторе на выходе макроса первоначальные значения появляются с некоторой задержкой.
Измеряем длительность сигнала на входе I4
https://www.youtube.com/watch?v=NPllItX-Czs
Измеряем длительность работы таймера TP
https://www.youtube.com/watch?v=iVzGdbbBRgs
Я примерно так и делаю, только за базу беру 2с, точнее выходит. И циклы считаю счетчиком. Косвенными методами можно многого достичь, но зачем усложнять только потому что в ОЛ нет средств счета в миллисекундах. Поэтому и прошу добавить средства чтобы упростить эту процедуру.
Ваш метод тоже интересен, но требует опытности в таких делах. Много расчетов производится ради элементарной по сути функции. И только потому что не решается напрямую.
Кстати это относится и к макросу FSEL. Нужен просто FB для этого. Но это вроде как обещают сделать в новом релизе.
Надо в ПР200 и ОЛ изменить управление пользовательским меню.
Где-то уже я писал об этом, очень не удобно если две строки и переход через SEL, надо нажать SEL потом кнопку вверх и если не то выбралось то нажать вниз потом опять SEL и вверх. Полная хрень, чё нельзя в ОЛ сделать что бы одна строка всегда была выделенной и при листании эта выделенность переходила от строки к строке и по нажатии на ввод осуществлялся вход в следующее меню.
http://www.owen.ru/forum/showthread....l=1#post228920
http://www.owen.ru/forum/showthread....EA%F0%E0%ED%E0
Это все мелкие доработки.
На самом деле ПР200 (и последующие приборы) имеют возможность создавать 2 и более независимо исполняемых программ ПР в режиме вытесняющей многозадачности.
При этом можно сделать одну программу высокоприоритетной и реализовывать в ней управление быстрыми процессами,
в другой разместить медленные ПИД, в третьей редкоиспользуемую логику настройки.
Т.к. Пр200 позволяет реализовать (на малой программе) цикл гораздо быстрее 1 мс - то можно резко увеличить сферу применения ПР.
И мегамакросы теперь не будут так тормозить цикл.
когда уже в человекочитаемый формат вывод чисел в режиме симуляции будет?
Вывод прост, чем полировать кузов, выжимая ещё 0,5 км/ч из машины, надо менять мотор и выжимать +200 км/ч
Ну а потом и полировочку.
Так уже пробовали заводить разговор про замену мотора. И в ПЛК и в ПР. Воз сами знаете где.
Параллельно обсуждаем и полировку. Но даже полировка едва движется.
Если уж окно протереть некому (см. http://www.owen.ru/forum/showthread....l=1#post247277 ), то кто моторы менять будет?
можно ничего не полировать. снизить цену, и всех все устроит...