Segnetics

Вернуться   Segnetics > База знаний > Библиотека

Библиотека Здесь сосредоточены познавательные статьи, раскрывающие те или иные аспекты оборудования или условий его применения

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

В данной статье будут рассмотрены вопросы быстродействия контроллеров.

На написание статьи меня натолкнуло неоднократное упоминание в переписке на то, что наши контроллеры "по слухам" не могут обработать много аналоговых сигналов. Что нет у них ресурсов программных для этого.

Также иногда всплывает вопрос, сколько точек сигналов может обработать контроллер.

Не знаю, кто и где распускает эти слухи, но реальность следующая.

---------------------------

Вопрос: В нашей схеме всего 184 канала ввода/вывода. Я так, с первого взгляда, понял, что Segnetics не располагает штатно модулями, чтобы покрыть нужное нам количество каналов. Это предполагает использование модулей сторонних производителей по RS-485? 112 каналов подразумевается именно по системной шине или всего на контроллер, включая и те, что будут на RS-485?

Ответ: В описании подразумеваются именно штатные модули расширения по шине. По RS485 можно подключить до 31 сторонних модуля или же ещё 31 любой контроллер (например, Pixel25) с ещё 8 модулями расширения - эти контроллеры будут банально предоставлять входы/выходы, типа как это делают "коммутаторы" модулей расширения у того же Сименса.

Если говорить о валовой производительности, то для SMH2G(i) предельное число точек ввода/вывода находится за гранью разумного, т.е. 65535 точек на ввод и 65535 точек на вывод.


Вопрос: Ну просто Cray, как минимум. Хочется Вам верить, что все так лучезарно.

Ответ: 2x 65535 - это ограничение программной обработки. Лично я не вижу способа ввести столько точек внутрь алгоритма, не затрачивая при этом уймы времени на сам ввод/вывод. Сила крэя не в синтетической обработке данных, а в том, что его узлы могут поставлять данные и отводить результаты с той скоростью, с которой он их образует. Хотя, опять же, всё дело во времени, т.к. за 100 мсек данных в программу ввести можно однозначно меньше, чем за секунду. Я же ориентируюсь на цикл обработки данных, равным именно 100 мсек.


Вопрос: Так как на данный момент есть указание от Заказчика на "имопортозамещение", параллельно рассматриваем **** и Segnetics. У последнего есть сложности с большим объемом контролируемых каналов, а точнее - ограничение по ПИДам на единичном контроллере в одном программном цикле.


Ответ: Я скажу на это следующее. Если задаться временем программного цикла, равным 100 мсек - этого времени с лихвой хватает на любые задачи ИТП/ЦТП/Вентиляции, то самый слабый наш контроллер, Пиксель-12, без проблем отработает 56 регуляторов за 78 мсек. Подтверждение на прилагаемой картинке - это скриншот из режима отладки, в этом режиме контроллер работает медленнее на 30%. Обратите внимание на выход "RealTick" блока Device(kernel) - это реальное время выполнения полного цикла программы.

Для сравнения, та же программа на контроллере SMH2G(i) - время выполнения 3 мсек. И дополнительно скриншот с более, чем 36000 FBD (смотрите на счётчик внизу справа), набранных именно ПИД-регуляторами. Сколько их штук получилось я, если честно даже не готов сказать - не считал, просто давил "Ctrl+V, вставить из буфера", на калькуляторе получилось больше полутора тысяч. Обратите внимание на время выполнения полного цикла - 38 мсек.

Trim5 имеет в разы бОльшее быстродействие. SMH4 процентов на 10 быстрее Trim5. Matrix имеет быстродействие, аналогичное SMH4.
Миниатюры
Нажмите на картинку для увеличения

Название:  Безымянный.png
Просмотров: 593
Размер:  105.7 Кбайт   Нажмите на картинку для увеличения

Название:  Безымянный1.png
Просмотров: 320
Размер:  110.7 Кбайт   Нажмите на картинку для увеличения

Название:  Безымянный2.png
Просмотров: 390
Размер:  92.4 Кбайт  


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

Добро всегда побеждает зло. Кто победил - тот и добрый.

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

Таблица быстродействия контроллеров в математике


Важное уточнение! Невозможно правильно указать быстродействие на одну операцию, т.к. перед выполнением математических действий контроллер оптимизирует расчёты исходя из размерностей и значений операндов. Поэтому будут указаны два значения:

* Наилучшее значение, полученное в случае хорошей оптимизируемости операндов. Это те случаи, когда один из операндов равен нулю или нацело делится на двойку и другие.

* Наихудшее значение, полученное в случае, когда ни одна из оптимизаций не сработала.

---------------------------------

SMH2010, 1000 FBD

Сложение и вычитание, тип INTEGER: 30 мсек / 30 мсек

Умножение, тип INTEGER: 33 мсек / 33 мсек

Деление, тип INTEGER: 50 мсек / 50 мсек

Сложение и вычитание, тип LONG: 32 мсек / 32 мсек

Умножение, тип LONG: 37 мсек / 37 мсек

Деление, тип LONG: 95 мсек / 85 мсек

Сложение и вычитание, тип REAL: 36 мсек / 41 мсек

Умножение, тип REAL: 36 мсек / 48 мсек

Деление, тип REAL: 35 мсек / 71 мсек



SMH2G, 1000 FBD

Сложение и вычитание, тип INTEGER: 28 мсек / 28 мсек

Умножение, тип INTEGER: 30 мсек / 30 мсек

Деление, тип INTEGER: 48 мсек / 49 мсек

Сложение и вычитание, тип LONG: 30 мсек / 30 мсек

Умножение, тип LONG: 35 мсек / 35 мсек

Деление, тип LONG: 100 мсек / 83 мсек

Сложение и вычитание, тип REAL: 35 мсек / 45 мсек

Умножение, тип REAL: 34 мсек / 57 мсек

Деление, тип REAL: 35 мсек / 110 мсек



SMH2G(i), 1000 FBD

Сложение и вычитание, тип INTEGER: 0.5 мсек

Умножение, тип INTEGER: 0.4 мсек

Деление, тип INTEGER: 0.7 мсек

Сложение и вычитание, тип LONG: 0.5 мсек

Умножение, тип LONG: 0.4 мсек

Деление, тип LONG: 0.9 мсек

Сложение и вычитание, тип REAL: 0.9 мсек

Умножение, тип REAL: 1.2 мсек

Деление, тип REAL: 1.6 мсек


TRIM5, SMH4, Matrix, 1000 FBD

Сложение и вычитание, тип INTEGER: 0.4 мсек

Умножение, тип INTEGER: 0.4 мсек

Деление, тип INTEGER: 0.4 мсек

Сложение и вычитание, тип LONG: 0.4 мсек

Умножение, тип LONG: 0.3 мсек

Деление, тип LONG: 0.4 мсек

Сложение и вычитание, тип REAL: 0.4 мсек

Умножение, тип REAL: 0.4 мсек

Деление, тип REAL: 0.4 мсек


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

Добро всегда побеждает зло. Кто победил - тот и добрый.

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

Таблица быстродействия контроллеров в логике



Тестовая программа из 1000 блоков AND, OR, XOR и NOT в равных долях.

SMH2010: 20 мсек

SMH2G: 20 мсек

SMH2G(i): 0.4 мсек

TRIM5, SMH4, Matrix: 0.3 мсек



Тестовая программа из 1000 блоков MUX() и DMUX() в равных долях.

SMH2010: 47 мсек

SMH2G: 47 мсек

SMH2G(i): 0.8 мсек

TRIM5, SMH4, Matrix: 0.5 мсек



Тестовая программа из 1000 блоков RS.


SMH2010: 33 мсек / 33 мсек

SMH2G: 34 мсек / 35 мсек

SMH2G(i): 0.5 мсек / 0.5 мсек

TRIM5, SMH4, Matrix: 0.2 мсек / 0.2 мсек



Тестовая программа из 1000 блоков CTU(16) и CTD(16) в равных долях.


SMH2010: 45 мсек / 45 мсек

SMH2G: 43 мсек / 44 мсек

SMH2G(i): 0.8 мсек / 0.8 мсек

TRIM5, SMH4, Matrix: 0.5 мсек / 0.5 мсек



Тестовая программа из 1000 блоков CTUD(16).


SMH2010: 45 мсек / 45 мсек

SMH2G: 43 мсек / 44 мсек

SMH2G(i): 0.8 мсек / 0.8 мсек

TRIM5, SMH4, Matrix: 0.5 мсек / 0.5 мсек



Тестовая программа из 1000 блоков CNTR(16).


SMH2010: 49 мсек / 52 мсек

SMH2G: 48 мсек / 49 мсек

SMH2G(i): 0.8 мсек / 0.9 мсек

TRIM5, SMH4, Matrix: 0.5 мсек / 0.5 мсек



Тестовая программа из 1000 блоков ROR(16), ROL(16), SHR(16) и SHL(16) в равных долях.


SMH2010: 42 мсек

SMH2G: 42 мсек

SMH2G(i): 0.4 мсек

TRIM5, SMH4, Matrix: 0.1 мсек



Тестовая программа из 1000 блоков ^D и D в равных долях.


SMH2010: 28 мсек / 30 мсек

SMH2G: 28 мсек / 30 мсек

SMH2G(i): 0.5 мсек / 0.5 мсек

TRIM5, SMH4, Matrix: 0.2 мсек / 0.2 мсек



Тестовая программа из 1000 блоков ^REG(int) и REG(int) в равных долях.


SMH2010: 30 мсек / 33 мсек

SMH2G: 31 мсек / 34 мсек

SMH2G(i): 0.6 мсек / 0.65 мсек

TRIM5, SMH4, Matrix: 0.2 мсек / 0.25 мсек



Тестовая программа из 1000 блоков ^REG(long), REG(long), ^REG(real) и REG(real) в равных долях.


SMH2010: 33 мсек / 39 мсек

SMH2G: 34 мсек / 39 мсек

SMH2G(i): 0.65 мсек / 0.95 мсек

TRIM5, SMH4, Matrix: 0.3 мсек / 0.5 мсек



Тестовая программа из 1000 блоков CMP(int).


SMH2010: 37 мсек / 37 мсек

SMH2G: 38 мсек / 34 мсек

SMH2G(i): 0.6 мсек / 0.6 мсек

TRIM5, SMH4, Matrix: 0.2 мсек / 0.2 мсек



Тестовая программа из 1000 блоков CMP(long).


SMH2010: 39 мсек / 39 мсек

SMH2G: 37 мсек / 37 мсек

SMH2G(i): 0.6 мсек / 0.6 мсек

TRIM5, SMH4, Matrix: 0.2 мсек / 0.2 мсек



Тестовая программа из 1000 блоков CMP(real).


SMH2010: 41 мсек / 42 мсек

SMH2G: 52 мсек / 52 мсек

SMH2G(i): 1.3 мсек / 1.3 мсек

TRIM5, SMH4, Matrix: 0.5 мсек / 0.5 мсек



Тестовая программа из 1000 блоков MINMAX(int).


SMH2010: 33 мсек / 33 мсек

SMH2G: 34 мсек / 35 мсек

SMH2G(i): 0.6 мсек / 0.6 мсек

TRIM5, SMH4, Matrix: 0.2 мсек / 0.2 мсек



Тестовая программа из 1000 блоков MINMAX(long).


SMH2010: 37 мсек / 37 мсек

SMH2G: 39 мсек / 39 мсек

SMH2G(i): 0.6 мсек / 0.6 мсек

TRIM5, SMH4, Matrix: 0.2 мсек / 0.2 мсек



Тестовая программа из 1000 блоков MINMAX(real).


SMH2010: 40 мсек / 41 мсек

SMH2G: 53 мсек / 55 мсек

SMH2G(i): 1.3 мсек / 1.3 мсек

TRIM5, SMH4, Matrix: 0.5 мсек / 0.5 мсек


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

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 28.02.2022 в 18:54
Arsie вне форума   Ответить с цитированием
Благодарность от:
Ответ

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

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пожарный сертификат для контроллеров Segnetics New Форум Segnetics 54 14.02.2019 11:33
Нужны изображения контроллеров Scorpio Форум Segnetics 8 24.06.2013 20:27
Использование контроллеров в системах ДУ New Форум Segnetics 8 22.05.2010 22:50
(2009 год) Проблема с аналоговыми входами контроллеров Pixel Arsie Сообщения об ошибках 0 10.05.2010 17:11
Применение контроллеров Segnetics в системе мониторинга "Сарум" Sergunya Новости 0 22.09.2009 15:45


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


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