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

Тема: Фичи и баги 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
    Адрес
    Ставрополь
    Сообщений
    1,912

    По умолчанию

    Цитата Сообщение от 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
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,590

    По умолчанию

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

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

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

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

  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 из 427 ПерваяПервая ... 251301341349350351352353361401 ... ПоследняяПоследняя

Похожие темы

  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

Ваши права

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