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

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

  1. #3501

    По умолчанию

    Цитата Сообщение от 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

  2. #3502

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от 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.

  4. #3504

    По умолчанию

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

  5. #3505

    По умолчанию

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

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

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

  6. #3506
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

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

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

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

  7. #3507

    По умолчанию

    Цитата Сообщение от 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 или просто формулы работать с отдельными битами числа (через точку).

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

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

    По умолчанию

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

  9. #3509

    По умолчанию

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

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

    По умолчанию

    о да , описался ! слезы глаза замутили....

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

Похожие темы

  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, 20:55

Ваши права

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