maskWrite

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

Описание

пример

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 значение.

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

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

Введенный в R2017a