Страница 351 из 361 ПерваяПервая ... 251301341349350351352353 ... ПоследняяПоследняя
Показано с 3,501 по 3,510 из 3608

Тема: Фичи и баги OWEN Logic

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

    По умолчанию

    Цитата Сообщение от SoulGoodman Посмотреть сообщение
    Добрый день, возможно, что то не то делаю или не в той ветке задаю вопрос, прошу понять. При использовании таймера TP на языке ST в функциональном блоке, таймер не сбрасывается после первой итерации, то есть задаю время задержки включения отключения и подвязываю выход, в симуляции подаю сигнал на разрешение работы таймера, таймер отрабатывает как должен, но в пследующем при повторной подаче разрешающего сигнала, таймер не запускается. Такой проблемы нет если я использею FB блок, я его подключил к тому же разрешающему входу, отрабатывает как надо. Программируемое реле ПР200, в живое железо не заливал, так как в симуляции не могу нормльно проверить.
    А показать текст программы религия не позволяет?

  2. #3502

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    А показать текст программы религия не позволяет?
    Ага))
    function_block Ottaika1 //Работа оттайки.

    var_input //объявление входных переменных
    u_Isparenie: udint;
    b_Enable: bool := false;
    end_var

    var_output //объявление выходных переменных
    b_Ten : bool := false;
    b_Obratka : bool := false; //Обратка
    end_var

    var //объявление локальных переменных

    TP_Ob: SYS.TP;
    t_Isparenie : TIME;
    end_var

    t_Isparenie := udint_to_time(u_Isparenie);

    if b_Enable then
    b_Ten := true;
    //Испарение
    TP_Ob(I := b_Enable, T := t_Isparenie, Q => b_Obratka);
    else
    b_Obratka := false; //Обратка
    end_if

    end_function_block

  3. #3503

    По умолчанию

    Цитата Сообщение от SoulGoodman Посмотреть сообщение
    Ага))
    function_block Ottaika1 //Работа оттайки.
    end_function_block
    Вызов таймера надо вынести из конструкции IF, а в ней уже управлять входом таймера.
    Время, если в секундах, то надо умножать на 1000.
    Последний раз редактировалось kondor3000; 17.03.2024 в 11:36.

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

    По умолчанию

    Цитата Сообщение от SoulGoodman Посмотреть сообщение
    Ага))
    Я бы так сделал

    Скрытый текст:

    Код:
    function_block Ottaika1 //Работа оттайки.
    
    var_input //объявление входных переменных
        u_Isparenie: udint; //Время в мс
        b_Enable: bool := false;
    end_var
    
    var_output //объявление выходных переменных
        b_Ten : bool := false;
        b_Obratka : bool := false; //Обратка
    end_var
    
    var //объявление локальных переменных
        TP_Ob: SYS.TP;
    end_var
    
        TP_Ob.T := udint_to_time(u_Isparenie);
        //Испарение
        TP_Ob(I := b_Enable, Q => b_Obratka);
        b_Ten := b_Obratka; //Или b_Ten := b_Enable, в зависимости как вы входом управляете
    
    end_function_block


    Правда, не знаю, правильно ли ТЭН выключаю (но у вас, вообще, ТЭН не выключается)
    Последний раз редактировалось Dimensy; 17.03.2024 в 13:03.

  5. #3505

    По умолчанию

    Спасибо за ответы, понял, по ТЭНу там все нормально когда лишнее удалял и в else удалил Ten := false; Там суть была, что входом enable, я включаю или выключаю работу таймеров, просто не думал, что таймер в условии if ведет себя таким образом. И ответа после гугления не нашел, надо проверить.
    Последний раз редактировалось SoulGoodman; 17.03.2024 в 17:59.

  6. #3506

    По умолчанию

    При обработке битовой маски в целом числе, полученном по сети, хотел на ST выделить нужные биты оператором AND. Но ST не поддерживает эту операцию - пришлось реализовать получением остатка от деления MOD.

    Хотя на FBD выделение по маске оператором AND прекрасно выполняется.

    Если это не ограничение согласно стандарту на ST - может быть есть смысл добавить битовые операции над целыми числами?

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

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    При обработке битовой маски в целом числе, полученном по сети, хотел на ST выделить нужные биты оператором AND. Но ST не поддерживает эту операцию - пришлось реализовать получением остатка от деления MOD.

    Хотя на FBD выделение по маске оператором AND прекрасно выполняется.

    Если это не ограничение согласно стандарту на ST - может быть есть смысл добавить битовые операции над целыми числами?
    Чем точка не устраивает?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  8. #3508

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Чем точка не устраивает?
    В случае вычислений, например, масштабирование - умножение в целых числах на 0,00512
    https://owen.ru/forum/showthread.php...l=1#post432043
    вместо выделения 16 младших разрядов по маске AND, пришлось делить.
    Код:
        // преобразование входного значения во внутренний формат с учётом умножения на (2^9) = 512
        A2 := shr(Reg0x1300, 32-9);
        A1 := shr(Reg0x1300, 7) mod (max_value + 1);
        A0 := shl(Reg0x1300, 9) mod (max_value + 1);
    В случае выделения бит состояния устройства и каких-то действий.
    В слове состояния устройства три младших бита показывают 000 - останов, 001 - неисправность, 010 - работа по байпасу, 011 - разгон, 100 - торможение
    Хотел выделить эти биты по маске и через case выполнить какие-то действия.

    Конечно, можно через if или просто формулы работать с отдельными битами числа (через точку).

    Если стандарт против - попрошу прощения за нелепое предложение.

  9. #3509
    Пользователь
    Регистрация
    14.01.2024
    Адрес
    Новосибирск
    Сообщений
    13

    По умолчанию

    Добрый день. Не не могу понять почему: есть импорт переменных в csv файл но нет экспорта . Зачем нужен импорт? у меня переезд на другую платформу , fb & st перенес, спасибо помогли. А на список переменных смотрю и плачу .

  10. #3510

    По умолчанию

    Цитата Сообщение от Sbersh Посмотреть сообщение
    Добрый день. Не не могу понять почему: есть импорт переменных в csv файл но нет экспорта . Зачем нужен импорт? у меня переезд на другую платформу , fb & st перенес, спасибо помогли. А на список переменных смотрю и плачу .
    Точнее наоборот - экспорт есть, импорта нет

Страница 351 из 361 ПерваяПервая ... 251301341349350351352353 ... ПоследняяПоследняя

Похожие темы

  1. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Среда программирования OWEN Logic
    Ответов: 404
    Последнее сообщение: 25.08.2020, 15:17
  2. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Программируемые реле
    Ответов: 401
    Последнее сообщение: 28.07.2016, 19:46
  3. OWEN Logic 1.2.0.14b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 40
    Последнее сообщение: 21.02.2011, 14:16
  4. OWEN Logic 1.1.0.11b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 58
    Последнее сообщение: 12.10.2010, 21:55

Ваши права

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