Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.03.2009, 14:57   #1
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Оптимизация программ

Накопилось несколько вопросов по работе FBD и оптимизации программ по объему и быстродействию:
1. Компилируются ли в готовую программу неподключенные FBD и "входы"-"выходы" макросов и резервируются ли для них ресурсы?
2. Что более оптимально по по объему/быстродействию: "собрать" логику на отдельных FBD или использовать пару bool->int + MUX(bool)?
3. Какой сакраментальный смысл в "растяжках", например подключенных к "входам"-"выходам" SCADA?
Sergey Cherevko вне форума   Ответить с цитированием
Старый 05.03.2009, 18:02   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Оптимизация программ

1) Блоки - да. "Входы"/"выходы" - нет (это всего лишь указатели).

2) Вопрос слишком неконкретен. Чуть-чуть почитать можно здесь и пройтись поиском по форуму. Я где-то подробно расписывал.

3) Это есть в разделе Конструктора. Тема так и называется: Растяжка


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 05.03.2009, 19:48   #3
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Оптимизация программ

Цитата:
Сообщение от Arsie
2) ... Я где-то подробно расписывал.
Ну на самом деле не так уж подробно, иначе вопрос бы не возник.
Сколько памяти требуют и на сколько увеличивают время обработки программы входы-выходы FBD типа bool, int, long и real каждый?
Сколько памяти и времени обработки (хотя бы оценочно) тратится на FBD с количеством входов-выходов по умолчанию.
А вопрос подразумевался такой. Что оптимальнее по объему памяти и скорости обработки: на нескольких десятках логических FBD нарисовать автомат состояний или же всего на двух FBD (bool->int и MUX(bool), но с очень большим количеством входов у мультиплексора (2 в степени количества входных переменных)?
То есть один и тот же результат можно получить разными способами и с использованием разных FBD. Которые, наверное, обрабатываются с разной скоростью и занимают различный объем памяти....
Цитата:
Сообщение от Arsie
3) Это есть в разделе Конструктора. Тема так и называется: Растяжка
Эту тему я читал. Там написано: "Растягивает во времени то, что через него проходит". Это и так было понятно. Не понятена причина использования растяжки. Обрабатывается в середине программы, связи внутренних переменных все "желтые". Может я что-то важное упустил?
Sergey Cherevko вне форума   Ответить с цитированием
Старый 05.03.2009, 20:52   #4
Sinbad
Новичок
 
Регистрация: Jun 2007
Сообщения: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Оптимизация программ

+1
тоже задавался таким вопросом.
А можно ли получить информацию по времени выполнения различных блоков, в каких нибудь условных единицах, для сравнения?
Например в тактах микроконтроллера.
Sinbad вне форума   Ответить с цитированием
Старый 06.03.2009, 07:54   #5
Max2114
Senior Member
 
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 052
Благодарил(а): 20 раз(а)
Поблагодарили: 21 раз(а) в 21 сообщениях
По умолчанию Ответ: Оптимизация программ

нельзя
Max2114 вне форума   Ответить с цитированием
Старый 06.03.2009, 10:51   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Оптимизация программ

Я бы даже сказал, что нереально.

Если бы ядро писалось на ассемблере, ещё можно было как-то через пень-колоду посчитать (а ведь некоторые блоки имеют внутри циклы!).

А тут С++ с оптимизацией. Это после каждого выпуска ядра внутрисхемным отладчиком проверять, что там компилятор намудрил. Уж увольте. Пару месяцев работы можно пустить на более важные дела.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 06.03.2009, 11:15   #7
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Оптимизация программ

Цитата:
Сообщение от Sergey Cherevko
Ну на самом деле не так уж подробно, иначе вопрос бы не возник.
Сколько памяти требуют и на сколько увеличивают время обработки программы входы-выходы FBD типа bool, int, long и real каждый?
Сколько памяти и времени обработки (хотя бы оценочно) тратится на FBD с количеством входов-выходов по умолчанию.
А вопрос подразумевался такой. Что оптимальнее по объему памяти и скорости обработки: на нескольких десятках логических FBD нарисовать автомат состояний или же всего на двух FBD (bool->int и MUX(bool), но с очень большим количеством входов у мультиплексора (2 в степени количества входных переменных)?
То есть один и тот же результат можно получить разными способами и с использованием разных FBD. Которые, наверное, обрабатываются с разной скоростью и занимают различный объем памяти....
Насколько можно корректно, настолько я и писал. Добавить мне, в принципе, нечего, т.к. пойдут всякие "если", "может быть" и "наверное", что наверняка неслабо запутает и вас и меня самого

Как я уже писал, мультиплексор - это самый быстрый блок. Количество его входов влияет только на занимаемый объём памяти.

Входы - это указатели, они ничего, кроме памяти, не потребляют. Это в любом случае адрес (2 или 4 байта). Если это открытый вход, то он указывает на константу, хранящуюся в ПЗУ (ещё плюс 1, 2 или 4 байта на хранение константы).

Любой блок - это набор входов и выходов + идентификатор блока.



Цитата:
Сообщение от Sergey Cherevko
Эту тему я читал. Там написано: "Растягивает во времени то, что через него проходит". Это и так было понятно. Не понятена причина использования растяжки. Обрабатывается в середине программы, связи внутренних переменных все "желтые". Может я что-то важное упустил?
Чтобы гарантировать доставку данных до Автоскады в заданных при проектировании условиях. Место и вид обработки не важен.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 06.03.2009, 19:37   #8
Sinbad
Новичок
 
Регистрация: Jun 2007
Сообщения: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Оптимизация программ

Еще вопросик, проверка числа на не равенство !=0 можно выполнить либо
блоком CMP(int)
Либо блоком int->bool
Какой способ лучше с точки зрения скорости и размера.
Sinbad вне форума   Ответить с цитированием
Старый 10.03.2009, 10:19   #9
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Оптимизация программ

У блока int->bool меньше входов/выходов, типы одинаковые с cmp(int), следовательно он занимает меньше памяти.

Если вы предлагаете использовать преобразование, как сравнение с нулём, значит вам знакома следующая комбинация:

or a,a
jnz label1
...

И значит вы знаете, что преобразование в бул выполняется много быстрее, чем сравнение интов.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 22.01.2019, 16:13   #10
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Оптимизация программ

Цитата:
Сообщение от Arsie Посмотреть сообщение
3) Это есть в разделе Конструктора. Тема так и называется: Растяжка
ссылка умерла. можно её как-то обновить?


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 23.01.2019, 03:27   #11
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Оптимизация программ

Цитата
Сообщение от LordN Посмотреть сообщение
ссылка умерла. можно её как-то обновить?
В тексте этого обсуждения вся суть существования растяжки уже раскрыта.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 23.01.2019, 09:12   #12
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Оптимизация программ

Цитата:
Сообщение от Arsie Посмотреть сообщение
В тексте этого обсуждения вся суть существования растяжки уже раскрыта.
это не суть, а набор букв.


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 23.01.2019, 23:41   #13
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Оптимизация программ

Цитата
Сообщение от LordN Посмотреть сообщение
это не суть, а набор букв.
Чтобы гарантировать доставку данных до Автоскады в заданных при проектировании условиях.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 24.01.2019, 11:36   #14
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Оптимизация программ

Цитата:
Сообщение от Arsie Посмотреть сообщение
Чтобы гарантировать доставку данных до Автоскады в заданных при проектировании условиях.
ну это опять постановка задачи, а не одно из возможных решений
мне же хочется увидеть пример решения устранения "зацикливания"


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 24.01.2019, 12:38   #15
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Оптимизация программ

Цитата
Сообщение от LordN Посмотреть сообщение
ну это опять постановка задачи, а не одно из возможных решений
мне же хочется увидеть пример решения устранения "зацикливания"
Растяжка не решает проблем зацикливания. Она решает именно то, для чего она предназначена.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 22.06.2020, 11:40   #16
Fater
Senior Member
 
Регистрация: Feb 2016
Адрес: Москва
Сообщения: 294
Благодарил(а): 3 раз(а)
Поблагодарили: 6 раз(а) в 6 сообщениях
По умолчанию Ответ: Оптимизация программ

Цитата:
Сообщение от Arsie Посмотреть сообщение
1) Блоки - да. "Входы"/"выходы" - нет (это всего лишь указатели).

2) Вопрос слишком неконкретен. Чуть-чуть почитать можно здесь и пройтись поиском по форуму. Я где-то подробно расписывал.

3) Это есть в разделе Конструктора. Тема так и называется: Растяжка
Арсений, ссылки не работают(


__________________
Работа есть величина физическая, измеряется в Джоулях...
Fater вне форума   Ответить с цитированием
Старый 22.06.2020, 12:43   #17
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 302
Благодарил(а): 0 раз(а)
Поблагодарили: 254 раз(а) в 250 сообщениях
По умолчанию Ответ: Оптимизация программ

Ага

Цитата В тексте этого обсуждения вся суть существования растяжки уже раскрыта.


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. сейчас на форуме   Ответить с цитированием
Старый 22.06.2020, 12:44   #18
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Оптимизация программ

Цитата
Сообщение от Fater Посмотреть сообщение
Арсений, ссылки не работают(
https://forum.segnetics.com/showpost...61&postcount=4


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация текстов LordN Вопросы о программировании 1 15.04.2020 19:30
Разработка программ на C (решено) aabogomolov Вопросы о Trim5 6 25.04.2017 10:13
Загрузка программ через RS-485. Почему может быть неустойчивой или невозможной Arsie Библиотека 1 10.07.2013 09:57
Установка дополнительных программ - как? ZZYbeR Вопросы о SMH-2G(i) 9 24.05.2011 11:40
Заливка программ в Pixel Powerlines Связь с внешним миром 5 04.02.2011 16:17


Часовой пояс GMT +4, время: 17:42.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023