Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 46

Тема: Оценка быстродействия проекта для ПР110

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Проделал следующий эксперимент:
    1.Загрузил пустой проект - время цикла 0,54 мс
    2.Загрузил проект 2ИЛИ - время цикла 0,64 мс
    3.Загрузил проект 2ИЛИ-НЕ - время цикла 0,69 мс
    4.Загрузил проект 3ИЛИ-НЕ - время цикла 0,79 мс
    5.Загрузил проект 4ИЛИ-НЕ - время цикла 0,90 мс

    Таким образом время выполнения функции 4ИЛИ-НЕ превышает время выполнения функции 2ИЛИ на 0,26 мс.
    Если бы функция 4ИЛИ-НЕ была оформлена в виде ФБ, то их время должно было бы совпадать.

    Я понимаю, что в некоторых применениях (например открытие шлюза Саяно-Шушенской ГЭС) этой разницей можно пренебречь.
    А вот при использовании в аварийной защите (например скоростные сервоприводы) это уже будет играть существенную роль.

    Надеюсь я достаточно обосновал свою позицию по поводу быстродействия выполнения алгоритма, записанного в прибор.

    По поводу состава библиотек ФБ в OL: посмотрите палитру компонентов Borland C++, их там столько...

    Я не призываю делать что-либо по моему хотению для ПР110, я думаю мои хотелки будут небесполезны и для других семейств ПРххх.

    Я не понимаю почему введение в состав библиотеки нового ФБ приведет к увеличению объема прошивки, особенно если в прошивке этот блок не используется.

    По поводу:

    "Но ещё придётся написать реализацию этого блока для существующих и готовящихся к выходу моделей ПР. А ещё протестировать и задокументировать этот блок.
    Внимание, вопрос: а какая будет польза от такого блока?"
    - встречный вопрос: а какая польза от перехода с WIN7 на WIN10?

    По поводу введения временных меток в режиме симуляции ИДЕ: конечно же это не обязательно, можно обойтись и без них, но с ними было бы проще...

    Ну и напоследок: я не считаю что "Вам нужно перестраивать свое мышление из МК на плк" большим "шагом вперед", скорее наоборот...

    С уважением, Vish57.

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    Цитата Сообщение от Vish57 Посмотреть сообщение
    Я понимаю, что в некоторых применениях (например открытие шлюза Саяно-Шушенской ГЭС) этой разницей можно пренебречь.
    А вот при использовании в аварийной защите (например скоростные сервоприводы) это уже будет играть существенную роль.

    Надеюсь я достаточно обосновал свою позицию по поводу быстродействия выполнения алгоритма, записанного в прибор.
    да в очередной раз Вы бред написали, Вы еще на АЭС порекомендуйте ПР ставить
    Цикл в ПР не выполняется меньше 1мс, поэтому не важно сколько показывает среднее время
    Если перешли на работу с ПР/ПЛК будте любезны использовать законы программирования таких устройств, а не МК, так что совет тоже не в тему
    Хотите померяться письками, давайте, в войсках я кроме дырочек на бумажной ленте с другим не работал, но я же не агитирую использовать такую методику
    ai_aykzwazpcg0exemwstjskuxu.png
    Последний раз редактировалось capzap; 15.02.2018 в 18:30.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    да в очередной раз Вы бред написали, Вы еще на АЭС порекомендуйте ПР ставить
    Цикл в ПР не выполняется меньше 1мс, поэтому не важно сколько показывает среднее время
    Если перешли на работу с ПР/ПЛК будте любезны использовать законы программирования таких устройств, а не МК, так что совет тоже не в тему
    Хотите померяться письками, давайте, в войсках я кроме дырочек на бумажной ленте с другим не работал, но я же не агитирую использовать такую методику
    ai_aykzwazpcg0exemwstjskuxu.png
    Так ведь и я никого не агитирую! Я просто высказываю свои "хотелки" и пытаюсь обосновать их полезность, не более того...
    Писками меряться у меня тоже никакого желания нет (см. предыдущее предложение).
    Более того я не отказываюсь "использовать законы программирования таких устройств, а не МК"

    Начиная эту тему я хотел получить от техподдержки или от уважаемых форумчан простые ответы на свои простые вопросы примерно так:
    1. Время обработки входа (всех входов одновременно) составляет ~0,55 мс.
    2. Время обработки одного ФБ типа ИЛИ (как вариант -любого ФБ из библиотеки) составляет ~0,1 мс.
    3. Время сетевой переменной составляет ~0,хх мс.
    4. Время обработки выхода (всех выходов одновременно) составляет ~0,55 мс.
    Этого бы было вполне достаточно!

    А теперь по поводу "злополучного" ФБ 4ИЛИ-НЕ, на который ополчился Владимир.
    Почему должно совпадать?
    Как-никак, а процессору как-то нужно будет выполнить эти самые 3 операции ИЛИ и одну операцию НЕ. Откуда уверенность, что время выполнения должно совпасть?
    Поправьте меня, если я не прав: ФБ из библиотеки представляет собой подпрограмму, вызываемую из библиотеки ИДЕ OL при компиляции проекта.
    А реализовать можно так:
    1. Подпрограмма пишется на С, либо другом языке, либо вообще на ассемблере и ничего не знает о наличии других ФБ в библиотеке OL.
    Главное - то, что она правильно выполняет предписанный ей функционал при записи в прибор.
    2. Алгоритм работы подпрограммы - выборка значения из массива таблицы истинности, зашитой в память программ процессора, в
    соответствии с комбинацией входных сигналов.
    Кстати для реализации функций 2ИЛИ, 2ИЛИ-НЕ,3ИЛИ,3ИЛИ-НЕ,4ИЛИ,4ИЛИ-НЕ потребуется только 1 массив на
    16 элементов.
    И выполняться эта подпрограмма в процессоре будет единицы, а не десятки-сотни микросекунд, и при этом время выполнения любой из
    указанных функций будет одинаковым!

    С уважением, Vish57

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    Цитата Сообщение от Vish57 Посмотреть сообщение
    Начиная эту тему я хотел получить от техподдержки или от уважаемых форумчан простые ответы на свои простые вопросы примерно так:
    1. Время обработки входа (всех входов одновременно) составляет ~0,55 мс.
    2. Время обработки одного ФБ типа ИЛИ (как вариант -любого ФБ из библиотеки) составляет ~0,1 мс.
    3. Время сетевой переменной составляет ~0,хх мс.
    4. Время обработки выхода (всех выходов одновременно) составляет ~0,55 мс.
    Этого бы было вполне достаточно!
    1) Math.max(1,время_цикла)
    2) ~Math.max(1,время_цикла)/количество_элементов_в_проекте
    3) ХЗ, зависит от скорости, помехи в кaнaле
    4) Math.max(1,время_цикла)


    злополучный элемент можно воспроизвести на одних константах и арифметике, не используюя ни одного элемента ИЛИ,НЕ, будет слекга громоздко, но зато принципиально не будет использоваться опыт работы с сериями логических микросхем
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #5

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    1) Math.max(1,время_цикла)
    2) ~Math.max(1,время_цикла)/количество_элементов_в_проекте
    3) ХЗ, зависит от скорости, помехи в кaнaле
    4) Math.max(1,время_цикла)


    злополучный элемент можно воспроизвести на одних константах и арифметике, не используюя ни одного элемента ИЛИ,НЕ, будет слекга громоздко, но зато принципиально не будет использоваться опыт работы с сериями логических микросхем
    Спасибо.
    Хочу уточнить по п2: получается, что время выполнения ЛЮБОГО ФБ из библиотеки всегда одинаково и не зависит от сложности выполняемой функции, это действительно так?

  6. #6

    По умолчанию

    Цитата Сообщение от Vish57 Посмотреть сообщение
    Цитата Сообщение от capzap Посмотреть сообщение
    2) ~Math.max(1,время_цикла)/количество_элементов_в_проекте
    Спасибо.
    Хочу уточнить по п2: получается, что время выполнения ЛЮБОГО ФБ из библиотеки всегда одинаково и не зависит от сложности выполняемой функции, это действительно так?
    Почему же?
    capzap, скорее всего, имел ввиду, что "если элементов на схеме мало, то ПР будет выдерживать паузу, чтобы цикл длился 1 мс минимум".
    Откуда он это взял -- загадка, но оно неважно.

    Длительность выполнения элемента OR (который подключен к входам-выходам, а не висит мёртвым грузом) не зависит от того, сколько этих элементов в схеме.
    Поэтому, чтобы узнать длительность работы этого самого OR, нужно взять схему с большим количеством элементов, узнать какая длительность цикла получится и поделить на количество элементов.

    Аналогично и для других элементов. Измерьте, посмотрим что будет. Заодно можно будет сравнить с производительностью самого железа. Вроде как обещают, что в ПР110 находится PIC18 18Mhz.

    Умножение деление (вроде, доступен же в ПР110 блок умножения целых?), очевидно, должны занимать гораздо больше времени, т.к. процессор там PIC18 (8-и битный), и команд для умножения/деления 32 битных чисел у него нет. Значит, там длинные портянки для этого самого умножения, значит оно работать должно дольше.

    Не хотелось бы верить, что интерпретатор ПР110 настолько медленный, что накладные расходы на выполнение блока OR превышают длительность умножения 32bit чисел.
    Последний раз редактировалось Владимир Ситников; 16.02.2018 в 11:40.

  7. #7
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Откуда он это взял -- загадка, но оно неважно.
    правильнее конечно обратится к ТУ наверное, но я могу на это сослаться
    Изображения Изображения
    • Тип файла: png owen.png (121.3 Кб, Просмотров: 16)
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  8. #8

    По умолчанию

    Цитата Сообщение от Vish57 Посмотреть сообщение
    2. Алгоритм работы подпрограммы - выборка значения из массива таблицы истинности, зашитой в память программ процессора, в
    соответствии с комбинацией входных сигналов.
    Тут вы ошибаетесь. В ПР не заливается таблица истинности. В ПР заливается программа.
    Например, если в ОЛ схеме написано "сложение/умножение чисел", то это вычисление проводит и ПР. "Таблица истинности" для умножителя 32 битных чисел вообще никуда не поместится. Да и согласно теореме Райса невозможно сказать соответствует ли "таблица истинности" ОЛ схеме.


    Цитата Сообщение от Vish57 Посмотреть сообщение
    Кстати для реализации функций 2ИЛИ, 2ИЛИ-НЕ,3ИЛИ,3ИЛИ-НЕ,4ИЛИ,4ИЛИ-НЕ потребуется только 1 массив на
    16 элементов.
    И выполняться эта подпрограмма в процессоре будет единицы, а не десятки-сотни микросекунд, и при этом время выполнения любой из
    указанных функций будет одинаковым!
    Какая подпрограмма? В каком процессоре?
    Вы о чём вообще?

    Я задавал прямой вопрос: "Как, по-вашему, работает ОЛ схема в железе?" Вы тут пишете про таблицу истинности, про массивы. По-вашему, ПР выполняет таблицу истинности, которую генерит ОЛ?
    Последний раз редактировалось Владимир Ситников; 15.02.2018 в 22:50.

  9. #9
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

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



    Какая подпрограмма? В каком процессоре?
    Вы о чём вообще?

    Я задавал прямой вопрос: "Как, по-вашему, работает ОЛ схема в железе?" Вы тут пишете про таблицу истинности, про массивы. По-вашему, ПР выполняет таблицу истинности, которую генерит ОЛ?
    А зачем Вы вопросы такие задаете, Вы же рекомендавали оставаться мыслить понятиями МК-шника, кстати чем там закончилась Ваша история с привнесением в контроллеры своих идей каких то непонятных функций с постоянными ретурнами, тоже не хотели же перестраиваться
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  10. #10

    По умолчанию

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



    Какая подпрограмма? В каком процессоре?
    Вы о чём вообще?

    Я задавал прямой вопрос: "Как, по-вашему, работает ОЛ схема в железе?" Вы тут пишете про таблицу истинности, про массивы. По-вашему, ПР выполняет таблицу истинности, которую генерит ОЛ?
    Отвечаю на прямой вопрос - в железе выполняется последовательность микрокоманд, определяемых архитектурой процессора, который даже не подозревает о существовании OL в этой Вселенной, также как и о существовании таблиц истинности, массивов, и т.д. и т.п.
    Задача ИДЕ OL - сгенерировать правильную последовательность микрокоманд соответствующую схеме, нарисованной на холсте и потом "залить" ее в прибор.
    Подпрограмма - часть последовательности микрокоманд обеспечивающая выполнение заданной функции. В терминологии OL это ФБ библиотеки.
    Метод и способ преобразования схемы OL в последовательность микрокоманд определяется разработчиком OL. Вариантов бесконечное множество и их рассмотрение выходит далеко за рамки данной темы.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Оценка стоимости работ по SCADA (WinCC OA)
    от krollcbas в разделе Другие SCADA системы
    Ответов: 26
    Последнее сообщение: 20.06.2016, 07:50
  2. В поиске быстродействия.
    от Anton58 в разделе Программируемые реле
    Ответов: 130
    Последнее сообщение: 24.03.2015, 17:49
  3. Оценка ПЛК Овен в частном случае.
    от saifullin в разделе Трёп (Курилка)
    Ответов: 28
    Последнее сообщение: 27.03.2013, 12:29
  4. Оценка ПЛК Овен в частном случае.
    от saifullin в разделе Разработки
    Ответов: 5
    Последнее сообщение: 24.03.2013, 22:06
  5. Проблемы быстродействия
    от soi в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 27.06.2008, 10:27

Ваши права

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