![]() |
![]() ![]() |
|
Библиотека Здесь сосредоточены познавательные статьи, раскрывающие те или иные аспекты оборудования или условий его применения |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]()
В данной статье будут рассмотрены вопросы быстродействия контроллеров.
На написание статьи меня натолкнуло неоднократное упоминание в переписке на то, что наши контроллеры "по слухам" не могут обработать много аналоговых сигналов. Что нет у них ресурсов программных для этого. Также иногда всплывает вопрос, сколько точек сигналов может обработать контроллер. Не знаю, кто и где распускает эти слухи, но реальность следующая. --------------------------- Вопрос: В нашей схеме всего 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. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 17.02.2023 в 12:52 |
![]() |
![]() |
![]() |
#2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]() Таблица быстродействия контроллеров в математике Важное уточнение! Невозможно правильно указать быстродействие на одну операцию, т.к. перед выполнением математических действий контроллер оптимизирует расчёты исходя из размерностей и значений операндов. Поэтому будут указаны два значения: * Наилучшее значение, полученное в случае хорошей оптимизируемости операндов. Это те случаи, когда один из операндов равен нулю или нацело делится на двойку и другие. * Наихудшее значение, полученное в случае, когда ни одна из оптимизаций не сработала. --------------------------------- 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 |
![]() |
![]() |
![]() |
#3 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 345
Благодарил(а): 15 раз(а)
Поблагодарили:
606 раз(а) в 554 сообщениях
|
![]() Таблица быстродействия контроллеров в логике Тестовая программа из 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 |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пожарный сертификат для контроллеров 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 |