maskWrite

Выполните операцию записи маски в регистр удержания

Описание

пример

maskWrite(m,address,andMask,orMask) записывает данные в объект MODBUS m в регистр держателя по адресу address, с использованием указанных значений маски. Функция может устанавливать или удалять отдельные биты в определенном регистре удержания. Это операция чтения/изменения/записи, в которой используется комбинация маски AND, маски OR и текущего содержимого регистра.

пример

maskWrite(m,address,andMask,orMask,serverId) дополнительно задает serverId как адрес сервера, на который отправляется команда write.

Примеры

свернуть все

Изменить содержимое регистра хранения можно с помощью maskWrite функция. Функция может устанавливать или удалять отдельные биты в определенном регистре удержания. Это операция чтения/изменения/записи, в которой используется комбинация маски AND, маски OR и текущего содержимого регистра.

Создайте AND и OR переменные.

andMask = 6
orMask = 0

Установите бит 0 в адрес 20 и выполните операцию записи маски. Начиная с andMask является 6, которая очищает все биты, кроме битов 1 и 2. Биты 1 и 2 сохранены.

maskWrite(m,20,andMask,orMask)

Используйте serverId аргумент для указания адреса сервера, на который отправляется команда записи маски.

Установите бит 0 в адрес 20 и выполните операцию записи маски в ID 3 сервера.

maskWrite(m,20,6,0,3)

Входные параметры

свернуть все

Зарегистрируйте адрес для выполнения операции записи маски, заданный как double. Адрес должен быть первым аргументом после имени объекта. Этот пример устанавливает бит 0 по адресу 20 и выполняет операцию записи маски.

Пример: maskWrite(m,20,andMask,orMask)

Типы данных: double

Значение AND для использования в операции записи маски, заданное как double. andMask должен быть вторым аргументом после имени объекта. Допустимая область значений значений 0–65535.

Этот пример устанавливает бит 0 в адрес 20 и выполняет операцию записи маски, используя 6 в качестве значения И.

Пример: maskWrite(m,20,6,0)

Типы данных: double

Значение OR для использования в операции записи маски, заданное как double. orMask должен быть третьим аргументом после имени объекта. Допустимая область значений значений 0–65535.

Этот пример устанавливает бит 0 в адрес 20 и выполняет операцию записи маски, используя 0 в качестве значения OR.

Пример: maskWrite(m,20,6,0)

Типы данных: double

Адрес сервера, на который отправляется команда записи маски, заданный как double. Идентификатор сервера должен быть указан после имени объекта, адреса, маски AND и маски OR. Если вы не задаете serverId, по умолчанию 1 используется. Допустимые значения 0–247, с 0 являясь широковещательным адресом. Этот пример устанавливает бит 0 по адресу 20 и выполняет операцию записи маски в ID 3 сервера.

Пример: maskWrite(m,20,6,0,3)

Типы данных: double

Совет

Алгоритм функции работает следующим образом:

 Result = (register value AND andMask) OR (orMask AND (NOT andMask))

Для примера:

                 Hex    Binary
Current contents  12   0001 0010
And_Mask          F2   1111 0010
Or_Mask           25   0010 0101
(NOT And_Mask)    0D   0000 1101

Result            17   0001 0111

Если на orMask значение 0, результатом является просто логический ANDing текущего содержимого и andMask. Если на andMask значение 0, результат равен orMask значение.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2017a