Критиков нужно пропускать мимо ушей, а полезные советы наматывать на ус. :) Поэтому благодаря Анатолию(rovki) и AI!, я теперь и сам неплохо разбираюсь в ОЛ.
Вид для печати
Критиков нужно пропускать мимо ушей, а полезные советы наматывать на ус. :) Поэтому благодаря Анатолию(rovki) и AI!, я теперь и сам неплохо разбираюсь в ОЛ.
Не бог весть, есть ошибки в логике, наращивание было постепенным, поэтому нет оптимизации, которая бы радовала глаз многих.
Так вот при выделении элемента, с которым я еще не решил что делать по левой кнопки мыши, проходит 2-3 секунды на ПК с i5
Ресурсы в ПР еще пихать и пихать... 5 мс выполнение программы на ПР, 2-3 секунды выделение одного элемента на ПК... это ли не тормоза ?
Да, и спасибо Овену за применение макросов iChange, fChange, они в проекте только благодаря разработчикам, которые накосячили незнамо когда, на версии 51 все работало и без этого.
всё не то, просто кто то перешл с плк на ПР из-за дешевизны и пытается впихнуть невпихуемое. Поэтому разговоры о ресурсах и т.п. тут ни к чему не приведут
При первом же беглом взгляде (не критика, вопрос), для чего нужен выделенный элемент? Задержка на цикл, или для чего?
Вложение 30800
Не, стояло два датчика напряжения до автомата и после если выбьет по нагрузке (контроль автомата без допконтакта состояния) и генератор не пытался заводиться, если все равно нагрузку подключить не может. Сейчас была смена генератора и пока один датчик отключен, поэтому в схеме добавлен ИЛИ, чтобы пока на одном датчике работало.
melky, ваш пример действительно тормозит, примерно 1-1,5 сек на перетаскивании ФБ мышкой.
Почему то кажется, что из-за обилия внутренних переменных, которые можно заменить обычными связями (неэстэтично будет, согласен)
Проверю, напишу.
Я уже написал, что благодаря разработчикам там даже лишние FB есть, которых в принципе там быть не должно. Все для того, чтобы были энергонезависимые переменные, управляемые через сетевые.
capzap, зачем задавать детские вопросы ? Из того что написано в посте #38 явствует, что из-за жутких тормозов в ОЛ задействовать больше 30% ресурсов ПР200 не возможно. Чем больше схема, тем сильнее тормоза вплоть до того, что полдня придется ждать реакции ОЛ на движение мышки. Вы согласны ждать полдня ? ;)
Еще раз повторю, что писал раньше: ПР200 - отличный прибор, ОЛ - посредственный продукт.
Для информации, кому интересно.
Провел лабораторную работу с целью исследования "тормозов" Owen Logic
1. Разместил на рабочем поле 800 ФБ (элементы ИЛИ), никуда не подключенных. Время реакции( на моем ПК) при наведении мышкой 6 сек.
2. Сделал макрос для 21 элемента. Разместил 50 макросов - больше тысячи элементов. Время реакции минимально, как при наведении на макрос, так и при редактировании внутри макроса.
Вывод: Больше макросов хороших и разных.
Макросы- Наше ВСЕ! 1000 раз об этом говорилось .Только толку от макросов в котором 2,3,4,5 элементов мало .В Макросы надо запихивать функционално законченные блоки схем большего размера с минимальным количеством входов\выходов .
SA104 ,спасибо за примеры ,не поленились.
Что ище интересно - ввиду того что элементы не соеденены ,в двух вариантах вычисляеется время выполнения проекта в ПР 1мс .А зависания наблюдаем только в первом вариане .Значит зависания не определяются временем выполнения и не определяются % памяти - в двух вариантах % минимальны (ввиду того что элементы не соединены),а количеством отображаемых самих элементов на одном поле
А вот ваш пример но только 4000элементов на 4 макросах и зависаний нет в схеме ,а внутри маросов есть .
Вывод -в очень сложных проектов стремитесь к количеству макросов равному корень из 2 от общего количества элементов ,с количеством элементов внутри каждого макроса также корень из 2 .Например 1000элементов - 33 макроса по 33 элемента ,теоритически для получения минимального времени реакции в ОЛ .Для ПР думаю это не имеет значения .
К стати обьем проекта то же вырос в почти 4 раза.
Если же вам нужны мелкие ,повторяющиеся макросы ,то делайте вложения -Макрос в макросе .И не нужно будет футбольное поле , достатчно будет 10 шахматных досок ;) для схемы.
Проверил ваш пример, результат аналогичный.
Что делать, если код получается разветвленным и макросами сложно обойтись ?
Макрос - это повторяющийся код в схеме, а ни как не требование запихивать куски схемы просто для того, чтобы получился один блок вместо 10.
Я же как раз и говорю о функционально законченных блоках,которые не обязательно должны повторятся,значит еще укрупните макрос,сделайте макрос в макросе) ,которые нужно запихнуть в макрос .Да ,не люблю и коробит употребление слова КОД применимо к ПР ,ОЛ.
Если нет такой возможности (законченная функция) ,то разбейте исходя из минимума входов\выходов .
Таким образом зависания связаны с графикой (элементы,связи),библиотеками ,а не компиляцией ...
Диагнос поставлен ,лечитесь и будьте здоровы ;)
Вы через строчку читаете? Связи есть между элементами ,но не подключены в выходам.входам ,но это не влияет на тормоза .В одном примере тормоза 5-6 сек ,а в другом точно та же схема ,но в макрасах тормозов не имеет .
Не делайте скорополительных ,не проверенных выводов ,подключение выходов не влияеет на тормоза ,проверено ,в отличие от вас . Подключенные выводы увеличат размер памяти в ПР и время цикла ,а на ОЛ это не влияет .
Естественно чем сложнее схема тем больше время цикла и больше требуется ресурсов от ПР ,но Тормоза ОЛ связаны только с количеством элементов и связей (переменных) на поле СХЕМА (или поле Макроса) .Разбейте схему на макросы нормальные и можете ПР загрузить на 100%.
Но схему с 1000 фб трудно представить для ПР
Даже в таком примитивном проекте тормоза ощущаются и при открытии проекта и при редактировании. Размер файла первого макроса гигантский - 13,7 Мб. В проекте с макросами вообще связей нет и говорить там не о чем.
Да что ж такое :mad: Я же говорю ,я подключал выходы ,разницы для тормозов нет .Тормозят бибилиотеки графические и разницы нет для них куда подключен или нет вывод. Уже пять раз сказал и проверил ,а вы все свое .Создайте свой пример и опровергайте ,а не бла-бла -бла .
Если еще так и не поняли как избежать тормозов ,то флаг вам в руки .Делать больше нечего ,как выводы делать ....и людей в заблуждение вводить .Тогда зачем писать ??? Здесь орденов не даеют за количество постов ...
Оно тормозит в макросе безбожно даже с отключенными входами/выходами
Про то и речь и память ноль и время 1мс ;)
Хоть в схеме много элементов ,хоть в макросе .Поэтому и говорю большую схему чикать на куски большие .Графика в графическом языке много кушает времени ,это вам не текстовый язык ,когда на экран несколько десятков строк .Тут на поле сотни элементов впихивают ...
Убедили, открыл для прикола Logo Soft, там конечно столько элементов не впихнешь, но поставил максимум, что программа сказала больше не могу.
Выделение, перетаскивание вместе с кусками программы (связями) в лет на i5
ОЛ - УДРУЧАЕТ в этом плане. А ведь в лого тоже графический язык. Так кто виноват ? графика или программисты ?
Вот посмотрите и сравните ваш макрос наработка и мой. У вас избыточный код.
Вложение 30810 Вложение 30811 и во многих макросах так.
И так почти у всех программистов ,потому как мыслят по другому ;)Вот если бы они сами покупали бы и паяли микросхемы ,то они быстро бы перестроились .А тут рисуй что хочет ,бумага (поле) стерпит , а главное если что- будут виноваты бумага и карандаш ;) (инструменты).
Так держать , Василий!!!
Сегодня делал расчет CRC, там надо 2 массива по 255 переменных как константы, итого ~500 констант, просто объявлены, тоесть 500 простых чисел загнаны в 2 массива, а codesys приуныл и тупил жестко при прокручивании этих переменных, чего там говорить о блоках, которых будет 1000.
Вот истина,проверенная опытом ...Поэтому если используешь графику ,то подчиняйся ее законам....если нет ,то в писатели (хорошие) ...
Думаю ,основательно проработали тему и нашли общие требования .Тема закроется ,но выводы из нее нужно выписать крупными буквами и повесить над столом тем кто хочет из-за дешевизны использовать ПР для реализации крупных проектов и помнить -по Сеньке шапка , и не винить шапку ,из-за того что у него голова большая .
Василий Кашуба когда-то rovki заметил, что я неправильно обозвал этот макрос "макросом наработки", в данном примере он просто используется для этой функции.
Мой умеет считать бутылки в ящиках :) и умеет производить инициализацию заданными переменными при прошивке ПР (например обновлении программы с сохранением наработанного). И так же сбрасывать значения если это требуется логикой.
Ваш то же самое выполнит ? не проверял просто еще, рисовать сейчас лень..
И простите, что это внизу за сек на EQ на 4,3E+09 ? а если я последним значении установлю 100 ? открывать макрос и редактировать ? или выносить для редактирования переменную во вне ?
з.ы. не смотрите на название, смотрите на работу
Scream у вас что-то с памятью, расчет CRC через таблицы выполняется быстрее, чем просто в коде. Что-то вы там намудрили скорее всего.
По теме сказать нечего ? И правильно ,но не надо переводить разговоры на другие темы и обьвинять Василия и Скрима в чем то бы то не было ибо примеры они приводиди для аргументации при обсуждении темы ,а вы ее пытаетесь увести в строну ,обвиняя их что первый что то не понял и второй что то напутал .Доказательства привел я ,меня и ругайте ,а они были свидетелями и предоставили факты .
А то вы сказали ,что вас убедили по теме ,но в отместку накидываетесь на тех кто свидетельствовал,что бы потом опровергнуть решение "суда" или внести смуту в в ряды "присяжных " (умы читающих тему).Тема закрыта (проблема решена),но не для разработчиков .