Страница 86 из 89 ПерваяПервая ... 36768485868788 ... ПоследняяПоследняя
Показано с 851 по 860 из 883

Тема: Макросы в онлайн базе OWEN Logic

  1. #851

    По умолчанию

    Спасибо за развёрнутый ответ.
    Попробовал на практике с настройкой аналогового входа 300кОм + программный модуль. Получилась (как справедливо замечено) дичь.
    Использовалось 2 датчика, измеряли температуру в двух одинаковых ёмкостях. Начальное сопротивление на датчиках было 54.4 Ом. На контроллер приходили значения 50.1 и 51.2
    Кроме того после начала нагрева приходящие значения сопротивления вообще начали падать.
    Далее эксперимент был признан неудачным и заказаны НПТ-3.

  2. #852
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    237

    По умолчанию

    Блок определения максимального числа не работает? Или я что-то не понимаю?
    Снимок экрана 2024-11-15 104441.png

  3. #853
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    237

    По умолчанию

    Цитата Сообщение от Рогов Алексей Посмотреть сообщение
    Все нормально
    Не понял вас, что нормально? Что ФБ выдает неправильное значение?
    Да и при чем здесь пузырьковая сортировка? В этом блоке ее нет. Выводиться должно максимальное значение и номер входа с максимальным значением.

  4. #854

    По умолчанию

    Цитата Сообщение от Солнечный заяц Посмотреть сообщение
    Блок определения максимального числа не работает? Или я что-то не понимаю?
    Снимок экрана 2024-11-15 104441.png
    Этот блок выдает 0, если будет 2 и более максимальных.

    Если будет достаточно значения и индекса 1-го максимального, попробуйте:
    Код:
    function_block MAX10_
    
        var_input
            X1 : udint;
            X2 : udint;
            X3 : udint;
            X4 : udint;
            X5 : udint;
            X6 : udint;
            X7 : udint;
            X8 : udint;
            X9 : udint;
            X10 : udint;
        end_var
    
        var_output
           VMax : udint;
           NMax : udint;
        end_var
    
        VMax := X1; NMax := 1;
        if X2 > VMax  then VMax := X2;  NMax := 2; end_if
        if X3 > VMax  then VMax := X3;  NMax := 3; end_if
        if X4 > VMax  then VMax := X4;  NMax := 4; end_if
        if X5 > VMax  then VMax := X5;  NMax := 5; end_if
        if X6 > VMax  then VMax := X6;  NMax := 6; end_if
        if X7 > VMax  then VMax := X7;  NMax := 7; end_if
        if X8 > VMax  then VMax := X8;  NMax := 8; end_if
        if X9 > VMax  then VMax := X9;  NMax := 9; end_if
        if X10 > VMax then VMax := X10; NMax := 10; end_if
    
    end_function_block
    Последний раз редактировалось EFrol; 15.11.2024 в 11:16.

  5. #855
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    237

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    Этот блок выдает 0, если будет 2 и более максимальных.
    Да, опасная особенность. Не ожидал такого подвоха. Да, я понимаю, что в описании ФБ есть упоминание этой "фичи", но все же. Впреть буду пользоваться онлайн библиотекой с большей осторожностью.

  6. #856
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    237

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    Если будет достаточно значения и индекса 1-го максимального, попробуйте:
    код:
    Код:
    function_block MAX10_
    
        var_input
            X1 : udint;
            X2 : udint;
            X3 : udint;
            X4 : udint;
            X5 : udint;
            X6 : udint;
            X7 : udint;
            X8 : udint;
            X9 : udint;
            X10 : udint;
        end_var
    
        var_output
           VMax : udint;
           NMax : udint;
        end_var
    
        VMax := X1; NMax := 1;
        if X2 > VMax  then VMax := X2;  NMax := 2; end_if
        if X3 > VMax  then VMax := X3;  NMax := 3; end_if
        if X4 > VMax  then VMax := X4;  NMax := 4; end_if
        if X5 > VMax  then VMax := X5;  NMax := 5; end_if
        if X6 > VMax  then VMax := X6;  NMax := 6; end_if
        if X7 > VMax  then VMax := X7;  NMax := 7; end_if
        if X8 > VMax  then VMax := X8;  NMax := 8; end_if
        if X9 > VMax  then VMax := X9;  NMax := 9; end_if
        if X10 > VMax then VMax := X10; NMax := 10; end_if
    
    end_function_block
    Да, это не проблема. Я уже сделал свой вариант. Просто в начале поленился, решил использовать готовый блок из библиотеки. Ваша реализация, конечно, намного лучше существующей. Было бы здорово обновить ФБ в библиотеке, это кого-нибудь спасет.

  7. #857

    По умолчанию

    Покажите пожалуйста пример как вызвать макрос Pt100 в ST функции
    Так же 50М.
    Последний раз редактировалось novinky; 10.12.2024 в 14:01.

  8. #858

    По умолчанию

    Цитата Сообщение от novinky Посмотреть сообщение
    Покажите пожалуйста пример как вызвать макрос Pt100 в ST функции
    Так же 50М.
    Не помню, чтобы пользовательские ФБ можно было вызывать из ST - только системные.
    Хотя если переписать ФБ на ST, то - можно.
    Последний раз редактировалось EFrol; 10.12.2024 в 18:03.

  9. #859

    По умолчанию

    Полиномы термопреобразователей описаны в ГОСТ - можно взять коэффициенты из него, добавить проверки на обрыв и короткое замыкание.

    Помню, что в действующем ГОСТ для термопар для какого-то редкого случая содержится ошибка - все коэффициенты полинома неправильные, обещали исправить в следующих редакциях. Но тут вопрос про термопреобразователях сопротивления, с ними всё в порядке.

  10. #860
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,562

    По умолчанию

    Цитата Сообщение от novinky Посмотреть сообщение
    Покажите пожалуйста пример как вызвать макрос Pt100 в ST функции
    Так же 50М.
    А нафига его вызывать где-то внутри функции? Это ведь преобразователь входной величины - их, обычно, снаружи располагают

Страница 86 из 89 ПерваяПервая ... 36768485868788 ... ПоследняяПоследняя

Похожие темы

  1. Универсальные макросы для OWEN Logic
    от rovki в разделе Среда программирования OWEN Logic
    Ответов: 876
    Последнее сообщение: 10.12.2024, 12:52
  2. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Среда программирования OWEN Logic
    Ответов: 404
    Последнее сообщение: 25.08.2020, 15:17
  3. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Программируемые реле
    Ответов: 401
    Последнее сообщение: 28.07.2016, 19:46
  4. ПО OWEN Logic !!!
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 3
    Последнее сообщение: 11.10.2011, 15:33
  5. OWEN Logic 1.2.0.14b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 40
    Последнее сообщение: 21.02.2011, 14:16

Ваши права

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