Просмотр полной версии : Бэта-версия OWEN Logic 1.9
Василий Кашуба
23.07.2017, 19:51
Ну я так и поступил.
32186
Но это не всегда возможно и не совсем оптимально. Всё таки переменные занимают память. Например в той схеме которая у Вас в цитате, я воевал за каждый байт. Именованное соединение не занимает памяти, это просто другое отображение соеденительной линии - то есть бесплатное улучшение читаемости.
А вот так не пробовали делать?32187
Ну а теперь представьте схемку посложнее (четыре насоса, каруселька, автоматическая замена выведенного ... и.д.)
32182
Я даже пробовать не буду его переводить на линии - страшно)))) а в таком виде даже читабельно (извините за мелкий размер, на одном экране не помещалось крупнее)
Это помесь ФБД и СТ .Схема должна читаться параллельно ,а не последовательно (обрывками)....Прочитал переменную ,а потом ищи ее по всей схеме и так сто раз ...
Запомните золотое правило разработчика (если хотите что бы от Вас не отвернулись заказчики) - "Любая схема должна быть читабельна". Вы нарисовали и забыли. А кому то её обслуживать и возможно изменять. Я последние четыре года работаю в обслуге, и меня очень радует политика Сименса. Они везде корректно пишут названия тэгов, все подробно комментируют. Это помогает нам при поиске проблем, а так же позволяет не дёргать их по каждому чиху. Так что даже самая простая схема должна быть понятна и легко читабельна.
Только правила чтения разные для разных языков ....используйте макросы ,что бы не плодить на схеме промежуточные переменные ,которые нужно читать по буквам .
Вы дезасемблировали все среды разработки, что уверенно говорите что в ОЛ используются временные переменные, а в других ПО этого нет, ведь если их не видно не значит что их нет
Ну вообще то в представленном примере используются именно переменные (созданные в таблице переменных). А именованные связи в ZelioSoft точно не жрут памяти. Я это проверял, когда пытался впихнуть в контроллер слишком большой проект (честно говоря я это проверил в первую очередь, когда кончилась память). Да и LogoSoftComfort от сименса (ещё одна среда где они используются) так же была проверенна на это дело. И то же в использовании памяти контроллера для именованных соединений замечено не было. Ну и естественно в FLProg где они применяются это точно просто другой способ отображения соединения.Тут я могу сказать точно.:cool:
Вы наверное не работали с действительно большими проектами. Если схема большая, как вы её задокументируете? Стандартный чертёж - это формат А4 или А3. Как Вы там расположите схему с несколькими сотнями датчиков и несколькими сотнями исполнительных устройств? Или как у нас например - проект АСУ турбины, состоящий из нескольких десятков тысяч чартов (аналог листа схемы, содержащий законченную логическую схему). Они соединяются между собой как раз ссылками. Я не зря говорил про осмысленные названия соеденений. Это конечно отдельное умение - давать осмысленные названия соединениям, и непосредственно участкам схемы, и этому надо учится. Тогда не надо будет прыгать по ссылкам. Например рассмотрим один кусочек схемы:
32184
Включение автомата ДГ произойдёт если:
"Режим автомат" И "Автомат ДГ отключён" И "Нет напряжения на вводе 1" И "Нет неисправности на вводе 1" И "Нет неисправности на вводе ДГ" И "Есть напряжение на вводе ДГ" И "Ввод 1 отключён"
И не потребовалось прыгать по схеме, всё понятно из названий. Любую сложную схему можно разбить на отдельные законченные кусочки., которым всегда можно дать осмысленное название. В этом и заключается мастерство промышленного программиста, схемотехника, да и простого програмиста то же. Везде идеология одинакова -"Разделяй и властвуй";)
Сравните опыт 4 и 40 лет ...ссылки хороши внутри щита или между щитами ,но не внутри программы .С ними большой проект не сделать ,если у каждой двухвходовки подписи делать ....
Ну я так и поступил.
32186
Но это не всегда возможно и не совсем оптимально. Всё таки переменные занимают память. Например в той схеме которая у Вас в цитате, я воевал за каждый байт. Именованное соединение не занимает памяти, это просто другое отображение соеденительной линии - то есть бесплатное улучшение читаемости.
Я думаю, что "переменные" в проекте ОЛ никак не являются "переменными, используемыми в контроллере". Любой "промежуточный результат" - это "переменная", не важно как она называется в проекте - "именованное соединение" или "переменная". Так что, насчёт оптимизации памяти МК, и то, и другое - абсолютно равнозначно. Если, конечно, не использовать энергонезависимые или сетевые переменные, которые, действительно, занимают физическую память в конкретной физической области.
Ну вообще то в представленном примере используются именно переменные (созданные в таблице переменных).
Вообще-то, это "таблица переменных" существует только в проекте на компьютере. Очень удивлюсь, если она как-то (статически) живёт в конечном коде программы контроллера. Не должна эта таблица жрать память (контроллера) сама по себе. А экономить память в проекте... :)
Т.е., смотрите. При наличии в проекте "именованных цепей" в проекте наверняка есть "таблица цепей", в дополнении к "таблице пользовательских переменных". Разница - только в названии, т.к. в конечном коде не будет ни "цепей", ни "пользовательских переменных"
Ну вообще то в представленном примере используются именно переменные (созданные в таблице переменных). А именованные связи в ZelioSoft точно не жрут памяти. Я это проверял, когда пытался впихнуть в контроллер слишком большой проект (честно говоря я это проверил в первую очередь, когда кончилась память). Да и LogoSoftComfort от сименса (ещё одна среда где они используются) так же была проверенна на это дело. И то же в использовании памяти контроллера для именованных соединений замечено не было. Ну и естественно в FLProg где они применяются это точно просто другой способ отображения соединения.Тут я могу сказать точно.:cool:
как Вы проверяли, читали ассемблер и только в ОЛ есть складывание в аккумулятор Как это понимать: тестирование - впихнуть большой проект.
Я думаю, что "переменные" в проекте ОЛ никак не являются "переменными, используемыми в контроллере". Любой "промежуточный результат" - это "переменная", не важно как она называется в проекте - "именованное соединение" или "переменная". Так что, насчёт оптимизации памяти МК, и то, и другое - абсолютно равнозначно. Если, конечно, не использовать энергонезависимые или сетевые переменные, которые, действительно, занимают физическую память в конкретной физической области.
Если ОЛ так сделано, то это бредовый подход. В этом просто нет необходимости, гробить память на глобальные переменные для промежуточных значений. Те переменные которые создаются в таблице тэгов - это глобальные переменные (они не возвращаются в кучу после отработки цикла), и под них сразу отводится память. Как реализовано обсчитывание логики в ОЛ я не знаю, но уверен что они не настолько тупы что бы использовать глобальные переменные для всех входов и выходов блоков.
как Вы проверяли, читали ассемблер и только в ОЛ есть складывание в аккумулятор Как это понимать: тестирование - впихнуть большой проект.
ну примерно так - собираю проект, проверяю его - не хватает 20 байт, перевожу часть соединений в линии - проверяю -не хватает 20 байт, оптимизирую проект (меняю логику, убираю блоки, меняю алгоритмы) , проект влазит (около 0 запаса памяти). ОК. Перевожу все соединения в текст, проект влазит, свободного места столько - же. Как то так..... Результат - именованные соединения не жрут памяти.
Я вообще не понимаю ,зачем заказчику или пользователю читать схему .Если бы он была сделана на микросхемах ,то да нужно найти неисправную и заменить .В проекте же так не бывает .Или работает как надо или не работает .Если речь о разработчике (что бы не забыл, что для чего)-то делайте как вам привычней и читабильней ,только не говорите что это самое совершенство представления схемы принципиальной электрической...
ну примерно так - собираю проект, проверяю его - не хватает 20 байт, перевожу часть соединений в линии - проверяю -не хватает 20 байт, оптимизирую проект (меняю логику, убираю блоки, меняю алгоритмы) , проект влазит (около 0 запаса памяти). ОК. Перевожу все соединения в текст, проект влазит, свободного места столько - же. Как то так..... Результат - именованные соединения не жрут памяти.Переходите на другую платформу.
Сравните опыт 4 и 40 лет ...ссылки хороши внутри щита или между щитами ,но не внутри программы .С ними большой проект не сделать ,если у каждой двухвходовки подписи делать ....
А у каждой и не нужно. "Двухвходовки" собираются в макросы, ответственные за "основную логику". А подписать осмысленные сигналы, чтобы легче ЧИТАЛАСЬ логика программы ничего не стоит, но при обслуживании и отладке это сильно помогает. Это как подписи входов/выходов макросов или компонентов эс. Увидел на триггере R и S входы - и уже пофиг как там внутри он организован. Так и с подписями сигналов.
так в чем проблема в ОЛ это макросы
да макросы это хорошо. Я как раз про это и говорю, разбиение на маленькие кусочки. Я так же использую макросы в Zelio (в моей программе это пользовательские блоки), но не все таки текстовый вид соеденений нравится больше чем линии. Тут конечно каждому свое, но было бы неплохо что бы можно было выбирать что использовать, кому нравятся линии - могут использовать их, кому нравится текст - использует текст. Это и есть забота о ВСЕХ пользователях. Самое главное что сделать это не очень сложно, говорю как человек сделавший это в своей программе.
Переходите на другую платформу.
Вы это заказчику объясните ))). Предложишь другой контроллер (раза в два дороже - следующий по цене и возможностям контроллер -S7-1200) - потеряешь тендер. Так и приходится крутиться)))))
Если ОЛ так сделано, то это бредовый подход. В этом просто нет необходимости, гробить память на глобальные переменные для промежуточных значений. Те переменные которые создаются в таблице тэгов - это глобальные переменные (они не возвращаются в кучу после отработки цикла), и под них сразу отводится память. Как реализовано обсчитывание логики в ОЛ я не знаю, но уверен что они не настолько тупы что бы использовать глобальные переменные для всех входов и выходов блоков.
Кто Вам такое сказал?
Я ж и пишу о том, что выделять память под "пользовательские переменные" просто "чохом" было бы, мягко говоря, не оптимально. Эти "переменные" внутри в "глобальном" виде нужны ровно так же, как "глобальная переменная" на каждую связь из Вашей схемы.
"Пользовательские переменные" - это ТОЧНО ТАКАЯ ЖЕ таблица, как "таблица цепей". "Оптимизация" таблицы пользовательских переменных в общем случае никак не относится к оптимизации кода для контроллера. Эти переменные всёравно никак и нигде, кроме как в самой программе недоступны.
ну примерно так - собираю проект, проверяю его - не хватает 20 байт, перевожу часть соединений в линии - проверяю -не хватает 20 байт, оптимизирую проект (меняю логику, убираю блоки, меняю алгоритмы) , проект влазит (около 0 запаса памяти). ОК. Перевожу все соединения в текст, проект влазит, свободного места столько - же. Как то так..... Результат - именованные соединения не жрут памяти.Проект крутится в ОЗУ, к нему точно не походит не хватает 20 байт
В ОЛ тоже есть способ определения загрузки ресурсов, в статусной строке в процентах, кому не лень могут привести примеры как изменяется загрузка ресурсов, если пользовать линии или имена
да макросы это хорошо. Я как раз про это и говорю, разбиение на маленькие кусочки. Я так же использую макросы в Zelio (в моей программе это пользовательские блоки), но не все таки текстовый вид соеденений нравится больше чем линии. Тут конечно каждому свое, но было бы неплохо что бы можно было выбирать что использовать, кому нравятся линии - могут использовать их, кому нравится текст - использует текст. Это и есть забота о ВСЕХ пользователях. Самое главное что сделать это не очень сложно, говорю как человек сделавший это в своей программе.
Так есть такая возможность. Через "переменные". Просто, таблица "именованных цепей" совмещена с таблицей "пользовательских переменных". Названия разные, а суть одна.
Я вообще не понимаю ,зачем заказчику или пользователю читать схему .Если бы он была сделана на микросхемах ,то да нужно найти неисправную и заменить .В проекте же так не бывает .Или работает как надо или не работает .Если речь о разработчике (что бы не забыл, что для чего)-то делайте как вам привычней и читабильней ,только не говорите что это самое совершенство представления схемы принципиальной электрической...
Вы когда ни будь работали в эксплуатации? Это происходит где то так: Механы просят вывести новый параметр. Киповцы ставят датчик, и подключают его. Ну а асушники допиливают программу (с предложением вызвать для этого сименсов к руководству лучше не соваться - дорого, долго, да и вообще - "а зачем Вы то здесь, асушники"). То же касается и изменения алгоритмов (под изменившиеся внешние условия например, или устаревания оборудования, замена модулей новым поколением и т.д.). И это не шарашкина контора, а Роснефть.
Вы когда ни будь работали в эксплуатации? Это происходит где то так: Механы просят вывести новый параметр. Киповцы ставят датчик, и подключают его. Ну а асушники допиливают программу (с предложением вызвать для этого сименсов к руководству лучше не соваться - дорого, долго, да и вообще - "а зачем Вы то здесь, асушники"). То же касается и изменения алгоритмов (под изменившиеся внешние условия например, или устаревания оборудования, замена модулей новым поколением и т.д.). И это не шарашкина контора, а Роснефть.
разочарование года какое то, тот же Ситников извинятся десять раз заставит за несоблюдение правил, стандартов, с которыми профессионально работает только он. А тут, то эксплутационники сперва я так понимаю нанимают не сертифицированных исполнителей, затем в обход технологии правят на свое усмотрение программы, то оказывается роснефть перешла на бюджетный вариант, не желает вызывать специалистов, там видимо точно карманы набивают, вместо инвестиций в производство
Вообще-то, это "таблица переменных" существует только в проекте на компьютере. Очень удивлюсь, если она как-то (статически) живёт в конечном коде программы контроллера. Не должна эта таблица жрать память (контроллера) сама по себе. А экономить память в проекте...
Т.е., смотрите. При наличии в проекте "именованных цепей" в проекте наверняка есть "таблица цепей", в дополнении к "таблице пользовательских переменных". Разница - только в названии, т.к. в конечном коде не будет ни "цепей", ни "пользовательских переменных"
Я думаю, что "переменные" в проекте ОЛ никак не являются "переменными, используемыми в контроллере". Любой "промежуточный результат" - это "переменная", не важно как она называется в проекте - "именованное соединение" или "переменная". Так что, насчёт оптимизации памяти МК, и то, и другое - абсолютно равнозначно. Если, конечно, не использовать энергонезависимые или сетевые переменные, которые, действительно, занимают физическую память в конкретной физической области.
Кто Вам такое сказал?
Я ж и пишу о том, что выделять память под "пользовательские переменные" просто "чохом" было бы, мягко говоря, не оптимально. Эти "переменные" внутри в "глобальном" виде нужны ровно так же, как "глобальная переменная" на каждую связь из Вашей схемы.
"Пользовательские переменные" - это ТОЧНО ТАКАЯ ЖЕ таблица, как "таблица цепей". "Оптимизация" таблицы пользовательских переменных в общем случае никак не относится к оптимизации кода для контроллера. Эти переменные всёравно никак и нигде, кроме как в самой программе недоступны.
Так есть такая возможность. Через "переменные". Просто, таблица "именованных цепей" совмещена с таблицей "пользовательских переменных". Названия разные, а суть одна.
Так, похоже необходимо провести ликбез:confused:
Существует два вида переменных, глобальные и временные. Для глобальных (которыми и являются пользовательские переменные) место в ОЗУ отводится при компиляции программы, и оно заранее занято (под них в ОЛ отводится 32 килобайта, можете посмотреть в статусной строке программы). Для временных переменных существует так называемая "куча" - какой то объём памяти в ОЗУ. Во время выполнения программы при необходимости из этой кучи берется место под временную переменную. Одна и та же временная переменная (собственно говоря адрес в ОЗУ, и размер выделенной памяти) может использоваться в программе насколько раз, в совершенно разных операциях. Это необходимо для оптимизации использования памяти. После выполнения необходимых операций эта память возвращается в "кучу". То есть значения в этих переменных не сохраняются между циклами выполнения программы (официально цикл программы называется сканом программы). Соединения могут использовать как раз временные переменные, а глобальные используются для хранения значений между циклами программы и не могут быть переиспользованы.
разочарование года какое то, тот же Ситников извинятся десять раз заставит за несоблюдение правил, стандартов, с которыми профессионально работает только он. А тут, то эксплутационники сперва я так понимаю нанимают не сертифицированных исполнителей, затем в обход технологии правят на свое усмотрение программы, то оказывается роснефть перешла на бюджетный вариант, не желает вызывать специалистов, там видимо точно карманы набивают, вместо инвестиций в производство
Ну вообще то у нас все асушники сертифицировны (у меня 6 сертификатов от сименса), ну и доработки оборудования (разработанные нами) согласовываем с Сименсом естественно. Бывают и замечания. Исправляем. Тут деньги большие завязаны, и той же Роснефти выгоднее иметь сертифицированных асушников у себя в штате и регулярно обучать их, чем вызывать разработчиков.
Так, похоже необходимо провести ликбез:confused:
Для глобальных (которыми и являются пользовательские переменные)
Вот я Вас и спрашиваю. Кто Вам такое сказал?
Зачем "пользовательские переменные" делать "глобальными", если "время жизни" их не превышает цикла программы? (не считая "линий задержки", сетевых и энергонезависимых переменных) Так же, как значение сигнала любой "именованной цепи".
Всё остальное вытекает из этого Вашего утверждения.
Соединения могут использовать как раз временные переменные, а глобальные используются для хранения значений между циклами программы и не могут быть переиспользованы.Покажите пример "пользовательской переменной" в ОЛ, которая хранит значения между циклами. Может быть, Вы правы. Но, на сколько я вижу, они даже инициализируются (получают значение) только в цикле, и между циклами вообще не существуют.
Отладки "в железе" нет, из цикла в цикл ничего не хранится... Нафига их делать "глобальными"?
Вы когда ни будь работали в эксплуатации? Это происходит где то так: Механы просят вывести новый параметр. Киповцы ставят датчик, и подключают его. Ну а асушники допиливают программу (с предложением вызвать для этого сименсов к руководству лучше не соваться - дорого, долго, да и вообще - "а зачем Вы то здесь, асушники"). То же касается и изменения алгоритмов (под изменившиеся внешние условия например, или устаревания оборудования, замена модулей новым поколением и т.д.). И это не шарашкина контора, а Роснефть. Сначала начальники пилили бюджет ,заказав разработку у сименса ,потом асушники премии получают ,меняя ,доделывая ...Надо отечественных искать разработчиков ,что бы потом в течении времени вносили изменения при необходимости ...или самим делать ,если такие грамотные и сертифицированные ...
Надо отечественных искать разработчиков ,что бы потом в течении времени вносили изменения при необходимости ...или самим делать ,если такие грамотные и сертифицированные ...
Отечественных разработчиков можно искать только у отечественных производителей... А они только нефть и производят.
Или Вы правда думаете, что отечественный разработчик на сименсах сделает быстрее, лучше и дешевле, чем сименс?
Ну вообще то у нас все асушники сертифицировны (у меня 6 сертификатов от сименса), ну и доработки оборудования (разработанные нами) согласовываем с Сименсом естественно. Бывают и замечания. Исправляем. Тут деньги большие завязаны, и той же Роснефти выгоднее иметь сертифицированных асушников у себя в штате и регулярно обучать их, чем вызывать разработчиков.
я вобще то имел ввиду не прохождение курсов у сименса, как работать с ихним ПО, а о технологических познаниях в своей сфере производства.
Вот я Вас и спрашиваю. Кто Вам такое сказал?
Зачем "пользовательские переменные" делать "глобальными", если "время жизни" их не превышает цикла программы? (не считая "линий задержки", сетевых и энергонезависимых переменных) Так же, как значение сигнала любой "именованной цепи".
Всё остальное вытекает из этого Вашего утверждения.
Покажите пример "пользовательской переменной" в ОЛ, которая хранит значения между циклами. Может быть, Вы правы. Но, на сколько я вижу, они даже инициализируются (получают значение) только в цикле, и между циклами вообще не существуют.
Отладки "в железе" нет, из цикла в цикл ничего не хранится... Нафига их делать "глобальными"?
Вот посмотрите пример
32189
Что тут происходит? В каждом цикле программе к переменной А прибавляется 1. А теперь скажите откуда контроллер в начале нового цикла будет знать какое значение было в конце предыдущего цикла? Это глобальная переменная, состояние которой сохраняется между циклами.
А теперь посмотрим другой пример:
32190
Здесь в каждом цикле к переменной А прибавляется 1 а затем это значение умножается на 10 и кладётся обратно в переменную А.
Цепь помеченная стрелочкой (промежуточное значение) может использовать временную переменную. Значение в этой цепи нам не нужно в следующем цикле, в нём оно снова пересчитается. Причём эта временная переменная после записи значения в переменную А больше не нужна и может быть использована для хранения временных значений в другом вычислении как например в рисунке ниже
32191
Сначала начальники пилили бюджет ,заказав разработку у сименса ,потом асушники премии получают ,меняя ,доделывая ...Надо отечественных искать разработчиков ,что бы потом в течении времени вносили изменения при необходимости ...или самим делать ,если такие грамотные и сертифицированные ...
А нету их. Нас собирали (10 человек) шесть лет. Но надо стремиться. Я например стараюсь привлечь молодёжь к специальности АСУ с помощью своей программы (FLProg), и даже вроде что то получается, Овен считает эту затею коммерчески невыгодной (почитайте здесь ветку про ПР-КИТ), занятия в кружках для детей очень дорогие (что удивляться, все они на конструкторах ЛОГО - а цены на них заоблачные), ну а уровень обучения в наших институтах честно говоря упал ниже плинтуса. В почёте только экономические специальности, технические так, для галочки.
Вот посмотрите пример
32189
Что тут происходит? В каждом цикле программе к переменной А прибавляется 1. А теперь скажите откуда контроллер в начале нового цикла будет знать какое значение было в конце предыдущего цикла? Это глобальная переменная, состояние которой сохраняется между циклами.
А теперь посмотрим другой пример:
32190
Здесь в каждом цикле к переменной А прибавляется 1 а затем это значение умножается на 10 и кладётся обратно в переменную А.
Цепь помеченная стрелочкой (промежуточное значение) может использовать временную переменную. Значение в этой цепи нам не нужно в следующем цикле, в нём оно снова пересчитается. Причём эта временная переменная после записи значения в переменную А больше не нужна и может быть использована для хранения временных значений в другом вычислении как например в рисунке ниже
32191
Посмотрел.
Обратите внимание на предупреждение.
Т.е., с распознаванием "обратных связей" проблем нет.
А значит, нет проблем и с тем, чтобы выбрать переменные, которые требуют "глобальности", и которые её не требуют.
И всё это во время компиляции проекта.
Отечественных разработчиков можно искать только у отечественных производителей... А они только нефть и производят.
Или Вы правда думаете, что отечественный разработчик на сименсах сделает быстрее, лучше и дешевле, чем сименс?
Да я например так думаю. И быстрее и дешевле.. У меня в среднем сейчас проходит 2-5 проектов в месяц.(занимаюсь фрилансем на свободную вахту) Часть на сименсе, часть на шнейдере, вот и овены попадаться начали. Заказчики разные. От РЖД до частников.(естественно работаю через официальные фирмы друзей). Да и остальные ребята у нас подрабатывают. Всё равно же месяц через месяц дома сидим)). У нас получается действительно дешевле и быстрее чем через официальных разработчиков сименса.
я вобще то имел ввиду не прохождение курсов у сименса, как работать с ихним ПО, а о технологических познаниях в своей сфере производства.
Ну во первых для этого в штате есть технологи, и непосредственно ТЗ мы получаем от них. Ну и во вторых практически все из наших ребят поработали разработчиками и имеют опыт. Все доработки проходят по всей цепочке (технологи, отдел кип, механики, если необходимо - РЗА, асушники, согласование с Сименсом), а уж потом реализуется. Только разработкой занимаемся мы а не сименс, сименс только проверяет и согласовывает.
Да я например так думаю. И быстрее и дешевле.. У меня в среднем сейчас проходит 2-5 проектов в месяц.(занимаюсь фрилансем на свободную вахту) Часть на сименсе, часть на шнейдере, вот и овены попадаться начали. Заказчики разные. От РЖД до частников.(естественно работаю через официальные фирмы друзей). Да и остальные ребята у нас подрабатывают. Всё равно же месяц через месяц дома сидим)). У нас получается действительно дешевле и быстрее чем через официальных разработчиков сименса.
И где же Роснефть потом будет искать "фрилансера"?
В конце концов, представьте что Вам нужно "всего-то" выиграть тендер у сименса :) Если получится - то нет проблем. Вот только "фирмы друзей" согласятся ли?
Что то совсем уже отклонились от темы. Мое мнение, например раз уж зашла тем по Сименс, приехав в Германию, Вы же не требуете чтоб с Вами говорили по русский, так и здесь, есть ПО, на нем можно строить работоспособные проекты, конкурентоспособные, движения в сторону улучшения тоже имеются
И где же Роснефть потом будет искать "фрилансера"?
В конце концов, представьте что Вам нужно "всего-то" выиграть тендер у сименса :) Если получится - то нет проблем. Вот только "фирмы друзей" согласятся ли?
А Роснефть не будет искать фрилансера. Они своих разрабов имеет (нас то есть). Ну а те кто не имеет, обращаются в фирмы. А они работают с нами (не думаете же вы что я напрямую работаю с РЖД или Лентой).
И ещё пара скринов.
Как видите, лишние "пользовательские переменные" ничего не сожрали.
Так что, оптимизация - штука не однозначная. И где и как она делается - просто так не скажешь.
Что то совсем уже отклонились от темы. Мое мнение, например раз уж зашла тем по Сименс, приехав в Германию, Вы же не требуете чтоб с Вами говорили по русски
А это зависит от того, кому этот приезд нужнее. :)
И от "разумности требований". С меня требовать говорить по-немецки - бесполезно. Я и по-английски не свободно... А вот наоборот - вполне реально.
Посмотрел.
Обратите внимание на предупреждение.
Т.е., с распознаванием "обратных связей" проблем нет.
А значит, нет проблем и с тем, чтобы выбрать переменные, которые требуют "глобальности", и которые её не требуют.
И всё это во время компиляции проекта.
Посидел, поизучал выделение памяти глобальных переменных в ОЛ. Молодцы, научились на лету определять куда определять переменные из таблицы, в глобальные или в локальные (например если переменную используеш в экране, или её значение действительно нужно между циклами, она улетает в глобальные, в противном случае остается временной). Уважаю. У меня в программе пока это не получается, но буду думать)))). Так что признаю, был не прав, идея с использованием переменных из таблицы в качестве именованных связей вполне прокатит. Надо будет посмотреть у других производителей как это реализовано. У сименса такого точно нет, там необходимо сразу ручками объявлять, глобальная это переменная или временная. Ну а все тэги сразу привязываются непосредственно к адресам памяти (то есть по умолчанию являются глобальными)
Отечественных разработчиков можно искать только у отечественных производителей... А они только нефть и производят.
Или Вы правда думаете, что отечественный разработчик на сименсах сделает быстрее, лучше и дешевле, чем сименс?
Элементарно -отечественным разработчикам отечественные ПЛК, ПР .Роснефть надеюсь еще Российская компания (как и Газпром) .
Элементарно -отечественным разработчикам отечественные ПЛК, ПР .Роснефть надеюсь еще Российская компания (как и Газпром) .
Хм..... Посмотрите в интернете фамилию и гражданство генерального.... и всей верхушки...
Извините, насчет генерального я ошибся. Но кто же к нам приезжал.... ?
Мужики ,тема интересная но не в той теме .Модераторы в курилку скинут ...
А если резюмировать - в ОЛ есть замечательный инструмент (не знаю есть ли он у семена ,в таком виде) это МАКРОСЫ .Разбивайте на функционально законченные блоки схему и описывайте их ,а что там внутри ни кому не интересно .Мы же не интересуемся как там счетчик построен на триггерах или еще дальше - транзисторы или тот же PID регулятор ни кто не полезет внутрь править (если не нравится такой ,сделай свой) .Вот бы такие макросы в ФЛПрог ,не пользовательские блоки которые пишутся на СИ ,а на том языке ,что и сама схема (FBD) ,тогда сложную схему можно свести к десятку макросов и не нужно будет иметь много экранов (плат).
Николаев Андрей
24.07.2017, 14:00
Политика и обсуждение кто с какой фамилией в курилку, пожалуйста.
Как и дешевые провокации :)
Тема по OL 1.9
Тема по OL 1.9
http://www.owen.ru/forum/showthread.php?t=12264&p=253133&viewfull=1#post253133
Николаев Андрей
24.07.2017, 14:51
Да, спасибо, мы видели.
Ребята проверяют.
Уважаемый Николаев Андрей. Я прекрасно понимаю что Овен испытывает затруднение в работе по улучшению Овен Лоджик. Но возможно вы пойдете на встречу пользователям и сможете убедить Ваше руководство о необходимости смены приоритетов разработки функционала ОЛ. Поставить как задачу на ближайшей релиз возможность работы пользователя с кнопками на лицевой панели ПР в программе.
Николаев Андрей
26.07.2017, 11:40
Добрый день, Игорь.
Эта задача стоит в следующем релизе (от того, который УЖЕ в работе).
Уточню что можно с этим сделать в ближайшее время.
Владимир Ситников
03.08.2017, 10:56
Попробовал как ОЛ 1.9 реагирует на линии задержки, расположенные в макросах.
Оказалось -- никак, что огорчает.
Для теста достаточно простого макроса: "вход ==> NOT --линия-задержки--> выход"
32393
На основном холсте замыкаю выход на вход этого макроса, и ОЛ начинает паниковать, что "у вас цикл-цикл!".
Хотя, по-факту, цикла-то нет. Линия задержки-то есть (она внутри макроса), всё как положено.
32391
Ну и в симуляции поведение этого макроса отличается от такой же цепочки, сделанной без макроса:
32392
ОЛ 1.9.125.10819
Получается "заменятор связей на линии задержки" выполняется до раскрытия макросов?
Это печально, т.к. из-за подобного эффекта в схему добавляются лишние задержки. Например, "НЕ-с-задержкой" в виде макроса меняет состояние раз в 2 цикла (это реже, чем ожидается), а то же самое, но без макроса меняет состояние каждый цикл (как и ожидается)
А как же обещанное "ОЛ видит сквозь макросы"?
Project M
04.08.2017, 11:58
Добрый день, Игорь.
Эта задача стоит в следующем релизе (от того, который УЖЕ в работе).
Уточню что можно с этим сделать в ближайшее время.
Андрей, здравствуйте!
В дополнение к просьбе.
Возможно ввести системную переменную, доступную для пользовательской программы, с номером отображаемого в данный момент экрана?
Столкнулся с проблемой, при работе с внешней клавиатурой, не всегда отображается нужный экран на дисплее ПР200.
Сергей0308
05.08.2017, 05:37
Андрей, здравствуйте!
В дополнение к просьбе.
Возможно ввести системную переменную, доступную для пользовательской программы, с номером отображаемого в данный момент экрана?
Столкнулся с проблемой, при работе с внешней клавиатурой, не всегда отображается нужный экран на дисплее ПР200.
Ну и к чему эти полумеры? Тогда уже и сделать чтобы по значению этой переменной перейти на нужный экран!
На днях решил открыть ОЛ, пропало окно холста, окно с набором блоков тоже вроде не было, но как то его вытащил, прикрепляя его к бортам ОЛ, он раскрывался на всю используемую площадь, т.е. холст явно отсутствовал а не спрятался где то невидимым. Нельзя ли добавить в меню пункты с добавлением любого элемента визуализации среды, чтоб не возникала потребность переустанавливать, что собственно и помогло решить проблему
На днях решил открыть ОЛ, пропало окно холста, окно с набором блоков тоже вроде не было, но как то его вытащил, прикрепляя его к бортам ОЛ, он раскрывался на всю используемую площадь, т.е. холст явно отсутствовал а не спрятался где то невидимым. Нельзя ли добавить в меню пункты с добавлением любого элемента визуализации среды, чтоб не возникала потребность переустанавливать, что собственно и помогло решить проблему
Добавить в меню пункт "переустановить" :).
Следующий раз как нарвусь на развал гуя, надо попробовать найти следы ол в профиле пользователя винды и вычистить их. По идее, должно помочь.
На днях решил открыть ОЛ, пропало окно холста, окно с набором блоков тоже вроде не было, но как то его вытащил, прикрепляя его к бортам ОЛ, он раскрывался на всю используемую площадь, т.е. холст явно отсутствовал а не спрятался где то невидимым. Нельзя ли добавить в меню пункты с добавлением любого элемента визуализации среды, чтоб не возникала потребность переустанавливать, что собственно и помогло решить проблему
В 1.9.131 есть отдельно пункт меню на такой случай. В списке изменений я расписывал как ОЛ борется с этой проблемой. К сожалению, "ноги" этого бага растут из сторонней библиотеки, и не использовать ее мы не можем по веским причинам. В ОЛ 1.9.131 я заложил ряд методов борьбы с этим.
Эдуард_Н
08.08.2017, 16:14
Что новенького в 1.9.131?
ParuSnow
08.08.2017, 17:00
Добавить в меню пункт "переустановить" :).
Следующий раз как нарвусь на развал гуя, надо попробовать найти следы ол в профиле пользователя винды и вычистить их. По идее, должно помочь.
Нет лучше зделать функцию удаления xmlов
http://www.owen.ru/forum/showthread.php?t=27195&p=254611&viewfull=1#post254611
У меня исправляется!
Хатя там есть один xml в котором записаны последние проекты, его не надо удолять . и тп
Василий Кашуба
08.08.2017, 18:43
Баг в новой ОЛ1.9.131, после редактирования макроса, как и было описано на транспаранте, переключением между экранами, запись изменений не происходит, но и кнопки или меню для записи я не нашел, только при закрытии окна редактора макросов, спросили сохранять или нет. Ответил сохранить, но в закладке макросов, данный макрос исчез. Данных макросов, в редакторе схем, было два. Они подсвечивались жёлтым, поэтому и стал редактировать. Открыв макрос, попробовал сохранить его через меню "Сохранить как" и макрос появился на вкладке макросов, хотя в старых версиях, при открытии макроса, его имя в списке скрывалось. Я закрыл редактор макросов, и так как цвет макросов на схеме не изменился, я решил переустановить макросы на схеме, но не смог. Смотрите скриншот.
32519
Баг в новой ОЛ1.9.131, после редактирования макроса, как и было описано на транспаранте, переключением между экранами, запись изменений не происходит, но и кнопки или меню для записи я не нашел, только при закрытии окна редактора макросов, спросили сохранять или нет. Ответил сохранить, но в закладке макросов, данный макрос исчез. Данных макросов, в редакторе схем, было два. Они подсвечивались жёлтым, поэтому и стал редактировать. Открыв макрос, попробовал сохранить его через меню "Сохранить как" и макрос появился на вкладке макросов, хотя в старых версиях, при открытии макроса, его имя в списке скрывалось. Я закрыл редактор макросов, и так как цвет макросов на схеме не изменился, я решил переустановить макросы на схеме, но не смог. Смотрите скриншот.
32519
Кнопка Сохранить в тулбаре Редактора макросов, самая первая. Можно проект скинуть? Попробую повторить описанные Вами действия...
Открыв макрос, попробовал сохранить его через меню "Сохранить как" и макрос появился на вкладке макросов, хотя в старых версиях, при открытии макроса, его имя в списке скрывалось.
,
Подробнее можно? Я сделал вроде то же самое... Создал макрос "1", сохранил как "2". И макроса "2" на вкладке не было...
Василий Кашуба
09.08.2017, 12:39
Кнопка Сохранить в тулбаре Редактора макросов, самая первая. Можно проект скинуть? Попробую повторить описанные Вами действия...
Дискета перед сеткой? Тогда вот ещё один в другой программе, с использованием этой кнопки.
32532 проекты прилагаю.
Василий Кашуба
09.08.2017, 14:18
Просто откройте макрос для редактирования и ничего не меняя, закройте редактор макросов. Макрос, который открывали, пропадает из списка макросов проекта.
Сергей0308
09.08.2017, 15:06
Просто откройте макрос для редактирования и ничего не меняя, закройте редактор макросов. Макрос, который открывали, пропадает из списка макросов проекта.
У меня кстати не так, пропадает из списка не тот, который открывали, а тот, который открывал последним, а ранее открытые появляются!
Андрей Сотников
09.08.2017, 15:59
У меня кстати не так, пропадает из списка не тот, который открывали, а тот, который открывал последним, а ранее открытые появляются!
Это если у Вас макрос не один в списке, а если один, то пропадает его отображение из списка. Приходится щёлкнуть по "Группировка по папкам" и обратно "Показать все компоненты" - тогда список отображается полностью до очередного редактирования, и так по кругу.
Просто откройте макрос для редактирования и ничего не меняя, закройте редактор макросов. Макрос, который открывали, пропадает из списка макросов проекта.
Пофиксил... Выпущу в ближайшее время исправление.
Дискета перед сеткой? Тогда вот ещё один в другой программе, с использованием этой кнопки.
32532 проекты прилагаю.
Подробности... Что-то с переименованием макроса связано? По шагам можно расписать, как получилось?
Василий Кашуба
10.08.2017, 15:32
Подробности... Что-то с переименованием макроса связано? По шагам можно расписать, как получилось?
Внесите в макрос изменения и сохраните не меняя имени.
Василий Кашуба
17.08.2017, 16:05
В 136 Ол выскочил вот такой баг, после перемещения одновременно, константы и ФБ.
32679
Василий Кашуба
17.08.2017, 16:31
Попробовал перемещать только константу, та же фигня, извините БАГ.:(
32681
Project M
17.08.2017, 16:46
У меня такая-же история. Просто передвинул блок с константой и он пропал :eek:
32682
Эдуард_Н
17.08.2017, 18:27
И у меня такая-же история. Что скажет уважаемый wal79? Одно лечим другое калечим?
Сергей0308
17.08.2017, 18:32
Что вы напали на человека, может быть так и было задумано!
Одно лечим другое калечим?
не только же он сталкивается с ошибками, вот например "головная боль" есть у всех https://habrahabr.ru/company/parallels/blog/335858/?utm_source=tw&utm_medium=social&utm_campaign=pochemu-nelzya-polagatsya-na-polzovatel
ParuSnow
17.08.2017, 18:46
:confused: и ещё Почему FB write меняет только целочисленные значения?
А кагже С плавающей точкой!
Например для Blink:confused:
32683
:confused: и ещё Почему FB write меняет только целочисленные значения?
А кагже С плавающей точкой!
Например для Blink:confused:
32683
Потому что время задается в мс . И при этом минимальный цикл может быть несколько мс. зачем тогда доли мс.
32683
TO_INT равноценно в других языках Math.round, какой результат Вы ожидали от округления?
ParuSnow
17.08.2017, 19:52
Потому что время задается в мс . И при этом минимальный цикл может быть несколько мс. зачем тогда доли мс.
Не.. Суть в том что fb write.. предназначен только для чисел!
А кагже изменить числа с точкой?
:confused:
например чтобы ускорить blink надо писать 0.001 числа с точкой?:confused:
TO_INT равноценно в других языках Math.round, какой результат Вы ожидали от округления?
TO_INT образно подставил!:)
Н
А кагже изменить числа с точкой?
...
например чтобы ускорить blink надо писать числа с точкой?
Какой блок записывает через write вещественные? Про блинк Вам уже сказали, записывайте 1000 чтоб получить длительность в одну секунду
ParuSnow
17.08.2017, 20:04
Какой блок записывает через write вещественные? Про блинк Вам уже сказали, записывайте 1000 чтоб получить длительность в одну секунду
Мне нужно 0.01-0.001 мс менять!:)
Вы о чем ?О каких микро секундах речь? Вам же сказали ,что мин. время импульса 1мс ,а фактически -время цикла .C такими временами вам ПЛК или ардуино ,а не ПР.
ParuSnow
17.08.2017, 21:14
Вот вариант генератора: который должен был ускоряться после каждого такта!
к сожелению он замедляется после каждого такта:rolleyes:32684.
Вы чего хотите то ? Всю информацию вам дали ,делайте выводы .Поставьте задачу шире .
ParuSnow
17.08.2017, 21:52
Вы чего хотите то ? Всю информацию вам дали ,делайте выводы .Поставьте задачу шире .
чтобы добавили блок write to FB для чисел с плавающей точкой:) итд
Для каких ФБ ,для счетчиков что ли ?Про генератор вам ответили ,что минимальное время в ОЛ -1мс .Или вы хотите задавать время 0,001 часа?тогда 0,001х1000х60х60 =3600 мс и задавайте как флоат(0,001часа) ,но потом в инт после умножения .
ParuSnow
17.08.2017, 22:31
rovki..... была такая идея что генератор через счётчик ускорял бы сам себя тоесть от 1с 1мс и ниже И сам себя в расход пустил:)! Как то так...
Василий Кашуба
17.08.2017, 22:50
rovki..... была такая идея что генератор через счётчик ускорял бы сам себя тоесть от 1с 1мс и ниже И сам себя в расход пустил:)! Как то так...
Так и сделайте 1001 мс.
rovki..... была такая идея что генератор через счётчик ускорял бы сам себя тоесть от 1с 1мс и ниже И сам себя в расход пустил:)! Как то так...
Так это делается элементарно но не менее 1мс .Я даже делал генератор качающейся частоты.
ParuSnow
17.08.2017, 23:40
Так это делается элементарно но не менее 1мс .Я даже делал генератор качающейся частоты.
Типа набирает ско..... от ми до се. потом обратно! :)
Надо чтобы уходил в бесконечность и по команде замедлялся Без придела!!!
anthrwpos
18.08.2017, 05:49
чтобы добавили блок write to FB для чисел с плавающей точкой:) итд
Берете ваш float, умножаете на 1000. переводите в int, затем обратно в float и делите на 1000. Вычитаете то что получилось из изначального float. Получаете неучтенную прибавку. Неучтенные прибавки накапливаете и пытаетесь прибавить к исходному float.
когда там накопится 0,001, она пролезет в int. В результате вы получаете импульсы длительностью в среднем стремящиеся к вашему float числу.
Это очень распространенная техника.
Типа набирает ско..... от ми до се. потом обратно! :)
Надо чтобы уходил в бесконечность и по команде замедлялся Без придела!!!
Еще раз повторю бесконечность это 1мс.
anthrwpos
18.08.2017, 13:13
Программисты, атас. В последнем релизе нельзя двигать константы. Они превращаются в голую цифру, при наведении на которую курсора мышки выскакивает ошибка "object reference not set to an instance of an object".
Андрей Посохов
18.08.2017, 14:17
Программисты, атас. В последнем релизе нельзя двигать константы. Они превращаются в голую цифру, при наведении на которую курсора мышки выскакивает ошибка "object reference not set to an instance of an object".
Здравствуйте!
Спасибо, вопрос в проработке.
Инженер по продукту АН «Программируемые реле» /
Инженер группы технической поддержки ОВЕН
Посохов Андрей Владимирович
Программисты, атас. В последнем релизе нельзя двигать константы. Они превращаются в голую цифру, при наведении на которую курсора мышки выскакивает ошибка "object reference not set to an instance of an object".
Исправили. 137 релиз.
Неоднократно озвучивал... Большая просьба о багах сообщать в ветке "Фичи и баги". Здесь желательно оставлять свои пожелания, обсуждать наработки в ОЛ 1.9, отписываться что удобно, что нет. Тяжело отыскивать баги по всему форуму.
anthrwpos
18.08.2017, 21:01
Спасибо за оперативность, буду иметь ввиду)
Relaymen
29.08.2017, 10:05
Вот вариант генератора: который должен был ускоряться после каждого такта!
к сожелению он замедляется после каждого такта:rolleyes:32684.
Не удивительно что он замедляется, так как время периода растет, что бы он разгонялся нужно в CTN значение N задать например 1000, а импульсы от BLINK подавать на вход D. как то так32881
ParuSnow
29.08.2017, 11:08
Relaymen....:)
Это неудавшееся идея генератора.
Идея была в том чтобы: допустим от нуля вверх 0-536... и вниз 0-0.00000001,
Но из-за отсутствия write to fb для чисел с запятой это провалилось:mad:
жаль что в ол есть только fbd
Relaymen
29.08.2017, 11:29
Relaymen....:)
Это неудавшееся идея генератора.
Идея была в том чтобы: допустим от нуля вверх 0-536... и вниз 0-0.00000001,
Но из-за отсутствия write to fb для чисел с запятой это провалилось:mad:
жаль что в ол есть только fbd
Ну учитывая что write to fb записывает значение в BLINK в миллисекундах то наименьшее время выдержки 0,01с как и время такта ПР, так что диапазон задания получается от 0,01 секунды до 655,35 секунд
Relaymen....:)
Это неудавшееся идея генератора.
Идея была в том чтобы: допустим от нуля вверх 0-536... и вниз 0-0.00000001,
Но из-за отсутствия write to fb для чисел с запятой это провалилось:mad:
жаль что в ол есть только fbd
представляете всемирное время идет в миллисекундах, а когда нам надо секунды и так далее, мы делим на соответствующее значение и получаем нужную единицу, кроме того целочисленная арифметика выполняется быстрее вещественной, поэтому поводов расстраиваться нету
ParuSnow
29.08.2017, 13:59
Всё равно Должен быть такой write.!!!
Relaymen .......
Ещё остались добавить к вводам ctu
u и d переключатель из and,
Допустим прогресс доходит: от 0 до 100 (U), переключается на (D) от 100 до 0!:)
Как-то так, но это очень мелкий диапазон
anthrwpos
31.08.2017, 11:54
Думаю, для обсуждения работы над ОЛ 1,9 эта более подходящая тема
макрос должен себя вести также как в редакторе в режиме симуляции. Так вот, Для выполнения этого требования при встрече макроса на своем пути анализатор вычисляет его полностью один раз. Алгоритмы те же самые что и у схем проектов. Логика проста. Но в чем преимущества ЛЗ? В том что они выполняются в высоком приоритете. Именно это дает эффект выполнения обратной связи, которую задумал пользователь.
Мне лично представляется, что ЛЗ внутренне есть разрыв между итерациями цикла.
То есть конец ЛЗ - это значение предыдущей итерации, оно проходит программу и попадает в начало ЛЗ.
На основании такого понимания я проектирую свои схемы.
Можно сказать, что оно так работает? А если нет, то какие можно привести примеры, когда оно не будет так работать?
Так вот, если вы задумали какой-то алгоритм обернуть в макрос, то нужно понимать, что это "закрытый" будет алгоритм, что он будет вычисляться как отдельная схема. Надеюсь, понятно разъяснил.
Тоже хочется знать примеры того, когда некая схема обернутая в макрос, начинает выполняться по-другому, чтобы научиться их проектировать с учетом этих особенностей.
Таких примеров будет полностью достаточно для понимания работы ОЛ пользователями безо всяких "спецификаций".
PS в обновлении касающегося отмены "прозрачности макросов" есть некая иллюстрация очень маленького размера.
Выложите её где нибудь в нормальном размере посмотреть, пожалуйста. Там может быть что нибудь полезное для понимания.
Тоже хочется знать примеры того, когда некая схема обернутая в макрос, начинает выполняться по-другому, чтобы научиться их проектировать с учетом этих особенностей.
Таких примеров будет полностью достаточно для понимания работы ОЛ пользователями безо всяких "спецификаций".
Не будет достаточно.
Вот Вам один из таких примеров.
Оберните в макрос просто ЛЗ.
И попробуйте в схеме соединить выход этого макроса со входом.
ОЛ поставит ещё одну ЛЗ.
Нужна она? Нет. Никакой необходимости с точки зрения "развёрнутой" схемы в ЛЗ здесь не будет.
Но ОЛ мерещится в данном случае, что для вычисления значения на выходе такого макроса, необходимо точно знать значение на его входе.
Т.е., схема с макросом, в котором только лз, и схема с лз, не "обёрнутой" макросом, абсолютно по-разному анализируется и считается.
И эта ситуация не всегда очевидна так, как в этом примере. И в какой именно схеме, и какая из лз внутри макроса даст "артефакты" "неразворачивания" макроса при анализе и вычислении, зависит от многих факторов.
Т.е., необходим анализ КАЖДОЙ КОНКРЕТНОЙ СХЕМЫ, содержащей КОНКРЕТНЫЙ МАКРОС, чтобы понять как она себя поведёт.
anthrwpos
07.09.2017, 07:24
Оберните в макрос просто ЛЗ.
И попробуйте в схеме соединить выход этого макроса со входом.
ОЛ поставит ещё одну ЛЗ.
Нужна она? Нет. Никакой необходимости с точки зрения "развёрнутой" схемы в ЛЗ здесь не будет.
Но ОЛ мерещится в данном случае, что для вычисления значения на выходе такого макроса, необходимо точно знать значение на его входе.
Похоже проблема следующая.
Программа в ОЛ есть цикл. У цикла есть начало и конец. Конец цикла находится либо в выходе, либо в начале ЛЗ, начало цикла - во входе, либо в конце ЛЗ.
Макрос вставляется в цикл между элементами так, что сначала входы передаются первым элементам макроса. Затем мы доходим до конца ЛЗ и записываем туда полученное значение. Предыдущее значение считываем из буфера и вычисляем макрос до выходов.
Именно так получается лишняя задержка.
Как сделать так, чтобы она не появлялась и всё работало корректно пока не понятно. Банальное решение вычислять элементы от концов ЛЗ первыми до выходов макроса явно приведет к ошибкам.
Похоже проблема следующая.
Программа в ОЛ есть цикл. У цикла есть начало и конец. Конец цикла находится либо в выходе, либо в начале ЛЗ, начало цикла - во входе, либо в конце ЛЗ.
Макрос вставляется в цикл между элементами так, что сначала входы передаются первым элементам макроса. Затем мы доходим до конца ЛЗ и записываем туда полученное значение. Предыдущее значение считываем из буфера и вычисляем макрос до выходов.
Именно так получается лишняя задержка.
Как сделать так, чтобы она не появлялась и всё работало корректно пока не понятно. Банальное решение вычислять элементы от концов ЛЗ первыми до выходов макроса явно приведет к ошибкам.
Нет здесь особых проблем.
Просто, при анализе схемы, нужно учитывать макрос не как "функцию" (значение на выходе которой зависит только от того, что на входе), а как конкретный набор элементов, и анализировать и считать схему с "развёрнутым" макросом.
Когда макрос - это исключительно созданная этим же инструментом схема, проблем никаких. А написание ФБ другими инструментами, как я понял, никто не собирается реализовывать.
Т.е., неявно вместо графического представления макроса подставляются его "внутренности" столько раз, сколько встречается в схеме макрос, и анализируется и расчитывается полная развёрнутая схема.
anthrwpos
23.10.2017, 12:54
Хочется, чтобы можно было сохранять и загружать значения энергонезависимых переменных по умолчанию в текстовых конфигурационных файлах.
У меня каждый проект используется в нескольких разных объектах с разными заданными там калибровками, заданиями и прочими вещами.
После смены программы приходится вбивать списки значений перед заливкой программы на каждый объект руками. Часто можно запутаться или что-то пропустить.
Plpp2014
25.11.2017, 19:11
Нашел баг с сетевыми переменными, при попытке удалить переменную из списка предварительно удалив на неё ссылку в проекте то ОЛ выдает 3132431325 и не удаляет переменную, и если снова поместить ссылку в проект то ОЛ выдает это 3132631327 ссылка создается но при попытке удалить переменную Ол все равно выдает что элемент уже не существует
Как решается проблема найдено?
OWEN Logic 1.9.144
В онлайн базе макросов два одинаковых раздела "Таймеры и счетчики"
34352
Ревака Юрий
28.11.2017, 13:44
OWEN Logic 1.9.144
В онлайн базе макросов два одинаковых раздела "Таймеры и счетчики"
34352
Добрый день, да есть такое, пока не могу найти в чем причина.
Андрей Посохов
28.11.2017, 14:26
Как решается проблема найдено?
Добрый день.
Вопрос программистам передали. Пока же удалить можно после сохранения проекта и его перезапуске.
anthrwpos
07.12.2017, 05:27
Еще два пожелания.
Чтобы количество знаков после запятой в редакторе экрана по умолчанию было "авто", так как это самое частое используемое значение
Чтобы список переменных можно было упорядочивать. Переменные в порядке их добавления это не удобно. Можно рассортировать по алфавиту, но это тоже не удобно.
Кто подскажет, в чем проблема.
Обновил до версии 1.9.142.11811, пришел к клиенту перешить ПР110 и попал на "НЕТ СВЯЗИ С ПРИБОРОМ".
Что делать?
Ревака Юрий
07.12.2017, 14:24
Кто подскажет, в чем проблема.
Обновил до версии 1.9.142.11811, пришел к клиенту перешить ПР110 и попал на "НЕТ СВЯЗИ С ПРИБОРОМ".
Что делать?
Проверить подключение ПР-КП, появился ли он в диспетчере устройств, подано ли питание, попробовать подключиться из под старой версии OL на которой Вы работали до этого. Так же проверить номер COM порта в программе и диспетчере устройств.
Сергей0308
07.12.2017, 14:50
По 110 не знаю, на 114 бывало при заливе программы происходил сбой и загоралась авария, итог - нет связи, приходилось ставить перемычку и принудительно перезаливать, иначе - никак!
Эдуард_Н
21.12.2017, 09:56
И опять, что за изменения в новой версии?
Ревака Юрий
21.12.2017, 11:43
И опять, что за изменения в новой версии?
Обновили http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/infoOf1_9.html
Эдуард_Н
21.12.2017, 11:49
Обновили http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/infoOf1_9.html
обновить то обновили, а скачать нельзя.
Ревака Юрий
21.12.2017, 12:14
обновить то обновили, а скачать нельзя.
Странно, я обновил из OWENLogic, все ОК, а Вы откуда качаете? на ftp тоже все ОК.
Серёга Букашкин
21.12.2017, 12:42
а Вы откуда качаете? на ftp тоже все ОК.
http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/Setup/Archive/
Эдуард_Н
21.12.2017, 13:23
Странно, я обновил из OWENLogic, все ОК, а Вы откуда качаете? на ftp тоже все ОК.
http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/infoOf1_9.html
Ревака Юрий
21.12.2017, 14:06
http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/Setup/Archive/
А зачем его из архива брать, версия только вышла, туда попадет после выхода новой. Тут http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/1.9/Setup/ все есть.
Удалось узнать, что это глючит сервер обновлений, обновляйте версию через OL, там не должно быть проблем.
Серёга Букашкин
21.12.2017, 14:29
обновляйте версию через OL, там не должно быть проблем.
Рады бы, но как тогда обновить на компе где выход в интернет запрещен. Поэтому новую версию пока игнорируем.
Ревака Юрий
21.12.2017, 14:44
Рады бы, но как тогда обновить на компе где выход в интернет запрещен. Поэтому новую версию пока игнорируем.
Как вариант, установить программу там где есть интернет, и перенести на флешке в папку с OL, надеюсь доступ к USB не закрыли?
majevgenij
07.01.2018, 20:04
обещать видимо могли только это http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/infoOf1_9.html
Не работает фича сохранения макроса при симуляции, проверено и не раз
Василий Кашуба
08.01.2018, 20:48
Не работает фича сохранения макроса при симуляции, проверено и не раз
Она и не должна работать в режиме симуляции.
В последней версии заявлена возможность сохранения.
Василий Кашуба
09.01.2018, 14:12
В последней версии заявлена возможность сохранения.
Приведите цитату.
Релиз 1.9.147
Устранены следующие замечания:
Ошибка при вводе новых значений в окне просмотра переменных в режиме симуляции
Допустимо сохранение макроса в режиме симуляции
http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/infoOf1_9.html - видимо написано не на русском...
Или разработчики имели ввиду что-то совершенно иное...
Василий Кашуба
10.01.2018, 00:05
Релиз 1.9.147
Устранены следующие замечания:
Ошибка при вводе новых значений в окне просмотра переменных в режиме симуляции
Допустимо сохранение макроса в режиме симуляции
http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/infoOf1_9.html - видимо написано не на русском...
Или разработчики имели ввиду что-то совершенно иное...
Поясняю, было допустимо, и при сохранении происходил сбой , но это устранили и теперь стало не допустимо.
Тогда в описании релиза надо было писать ИНАЧЕ. сразу видно, что программисты не от мира сего :)
офигеть.... поставил версию 1.9 и удивился количеству обнаруженных циклических связей. Вот объясните мне, ГДЕ программа увидела циклическую связь (обозначила мне желтым) с выхода 4OR на NOT, с выхода TOF на NOT, с выхода FTRIG на вход S (RS триггера)
и много других подобных.....
интересно программа за нас думает....
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot