Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 12 из 12

Тема: Установка нескольких бит в перем-ой типа WORD

  1. #11

    По умолчанию

    Цитата Сообщение от stdenits Посмотреть сообщение
    Переменная ERR содержит флаги возникших ошибок вввиде битов, установленных в 1, например, при превышении уставки или при ошибке DECODE_FLOAT.
    Функция set_state_value_16b() позволяет без изменения остальных битов переменной variable устанавливать (обнулять или выставлять) новые значения только для определенных битов с использованием маски.
    Вроде так должно быть и функция начинает работать 1 Работа функции.jpg
    Код:
    FUNCTION set_state_value_16b : WORD
    VAR_INPUT
        variable : POINTER TO WORD;
        mask : WORD;
        val : WORD;
    END_VAR
    VAR
    END_VAR
    
    set_state_value_16b  := (variable^ AND NOT mask) OR (val AND mask);
    Вложения Вложения
    Последний раз редактировалось kondor3000; 24.04.2024 в 15:22.

  2. #12

    По умолчанию

    @kondor3000,
    Остановился на варианте с возвращением результата работы функции.
    Для выставления одного бита буду пользовать точку.
    Спасибо за помощь.
    Последний раз редактировалось stdenits; 25.04.2024 в 13:27.

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Word to bytes
    от Scream в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 10.04.2024, 11:31
  2. Ответов: 6
    Последнее сообщение: 25.02.2022, 12:35
  3. 2 WORD В DINT
    от А1дар в разделе СПК1xx (архив)
    Ответов: 5
    Последнее сообщение: 19.02.2021, 10:56
  4. WORD <-> BOOL
    от ASo в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 08.09.2013, 15:12
  5. Mscada не записыв. перем. в плк100, opc csys
    от Андрей Ш в разделе Master SCADA 3
    Ответов: 7
    Последнее сообщение: 26.04.2010, 13:38

Метки этой темы

Ваши права

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