А вот так не пробовали делать?Блок управления насосами.JPG
А вот так не пробовали делать?Блок управления насосами.JPG
Ну вообще то в представленном примере используются именно переменные (созданные в таблице переменных). А именованные связи в ZelioSoft точно не жрут памяти. Я это проверял, когда пытался впихнуть в контроллер слишком большой проект (честно говоря я это проверил в первую очередь, когда кончилась память). Да и LogoSoftComfort от сименса (ещё одна среда где они используются) так же была проверенна на это дело. И то же в использовании памяти контроллера для именованных соединений замечено не было. Ну и естественно в FLProg где они применяются это точно просто другой способ отображения соединения.Тут я могу сказать точно.
Я думаю, что "переменные" в проекте ОЛ никак не являются "переменными, используемыми в контроллере". Любой "промежуточный результат" - это "переменная", не важно как она называется в проекте - "именованное соединение" или "переменная". Так что, насчёт оптимизации памяти МК, и то, и другое - абсолютно равнозначно. Если, конечно, не использовать энергонезависимые или сетевые переменные, которые, действительно, занимают физическую память в конкретной физической области.
Вообще-то, это "таблица переменных" существует только в проекте на компьютере. Очень удивлюсь, если она как-то (статически) живёт в конечном коде программы контроллера. Не должна эта таблица жрать память (контроллера) сама по себе. А экономить память в проекте...
Т.е., смотрите. При наличии в проекте "именованных цепей" в проекте наверняка есть "таблица цепей", в дополнении к "таблице пользовательских переменных". Разница - только в названии, т.к. в конечном коде не будет ни "цепей", ни "пользовательских переменных"
Последний раз редактировалось pop70; 23.07.2017 в 20:19.
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Если ОЛ так сделано, то это бредовый подход. В этом просто нет необходимости, гробить память на глобальные переменные для промежуточных значений. Те переменные которые создаются в таблице тэгов - это глобальные переменные (они не возвращаются в кучу после отработки цикла), и под них сразу отводится память. Как реализовано обсчитывание логики в ОЛ я не знаю, но уверен что они не настолько тупы что бы использовать глобальные переменные для всех входов и выходов блоков.
ну примерно так - собираю проект, проверяю его - не хватает 20 байт, перевожу часть соединений в линии - проверяю -не хватает 20 байт, оптимизирую проект (меняю логику, убираю блоки, меняю алгоритмы) , проект влазит (около 0 запаса памяти). ОК. Перевожу все соединения в текст, проект влазит, свободного места столько - же. Как то так..... Результат - именованные соединения не жрут памяти.