maskWrite

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

Синтаксис

maskWrite(m,address,andMask,orMask)
maskWrite(m,address,andMask,orMask,serverId)

Описание

пример

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

пример

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

Примеры

свернуть все

Можно изменить содержимое регистра временного хранения информации с помощью функции 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)

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

Адрес сервера, чтобы отправить маску пишет команду в, заданный как двойное. ID сервера должен быть задан после имени объекта, адреса, маски 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, результатом является просто логическое Выполнение операции "И" текущего содержимого и andMask. Если значение andMask 0, результат равен значению orMask.

Введенный в R2017a