Считайте данные из сервера MODBUS
Если цель чтения является обмотками, функция читает значения из 1–2000 непрерывных обмоток в удаленном сервере, запускающемся в заданном адресе. Обмотка является одним выходным битом. Значение 1
указывает, что обмотка включена и значение 0
средние значения это выключено.
Считайте 8 обмоток, запускающихся в адресе 1. address
параметр является начальным адресом обмоток, чтобы читать, и count
параметр является количеством обмоток, чтобы читать.
read(m,'coils',1,8)
ans = 1 1 0 1 1 0 1 0
Если цель чтения является входными параметрами, функция читает значения из 1–2000 непрерывных дискретных входных параметров в удаленном сервере, запускающемся в заданном адресе. Дискретный вход является одним входным битом. Значение 1
указывает, что вход включен и значение 0
средние значения это выключено.
Считайте 10 дискретных входных параметров, запускающихся в адресе 2. address
параметр является начальным адресом входных параметров, чтобы читать, и count
параметр является количеством входных параметров, чтобы читать.
read(m,'inputs',2,10)
ans = 1 1 0 1 1 0 1 0 0 1
Если цель чтения вводится регистры, функция читает значения из 1–125 непрерывных входных регистров в удаленном сервере, запускающемся в заданном адресе. Входной регистр является 16-битным регистром только для чтения.
Считайте 4 входных регистра, запускающиеся в адресе 20. address
параметр является начальным адресом входных регистров, чтобы читать, и count
параметр является количеством входных регистров, чтобы читать.
read(m,'inputregs',20,4)
ans = 27640 60013 51918 62881
Если цель чтения является регистрами временного хранения информации, функция читает значения из 1–125 непрерывных регистров временного хранения информации в удаленном сервере, запускающемся в заданном адресе. Регистр временного хранения информации является 16-битным регистром чтения-записи.
Считайте 5 регистров временного хранения информации, запускающихся в адресе 2. address
параметр является начальным адресом регистров временного хранения информации, чтобы читать, и count
параметр является количеством регистров временного хранения информации, чтобы читать.
read(m,'holdingregs',2,5)
ans = 27640 60013 51918 62881 34836
Можно считать любой из четырех типов целей и также задать дополнительные параметры для ID сервера, и можно задать точность для двух типов регистров. Можно установить или опцию отдельно или установить обоих serverId
опция и precision
опция вместе. Обе опции должны быть перечислены после обязательных аргументов.
Считайте 8 регистров временного хранения информации, запускающихся в адресе 1 использование точности 'uint32'
с сервера ID 3.
read(m,'holdingregs',1,8,3,'uint32');
Можно считать непрерывные значения различных типов данных (точность) путем определения типа данных для каждого значения. Можно сделать это в синтаксисе read
функция или настроенные переменные, содержащие массивы количеств и точности. Оба метода показывают здесь.
Считайте непрерывные регистры совпадающего типа данных.
read(m,'holdingregs',500,10,'uint32');
В том примере целевой тип является регистрами временного хранения информации, начальным адресом является 500
, количеством является 10
, и точностью является uint32
.
Если вы хотели иметь эти 10 значений, имеют смешанные типы данных, можно использовать этот синтаксис:
read(m,'holdingregs',500,[3 2 3 2],{'uint16', 'single', 'double', 'int16'});
Вы используете массив значений в рамках команды и для количества и для точности. В этом случае количества равняются 3, 2, 3, и 2. Команда считает 3 значения типа данных uint16
, 2 значения типа данных single
, 3 значения типа данных double
, и 2 значения типа данных int16
. Регистры непрерывны, запускающийся в адресе 500
.
Вместо того, чтобы использовать массивы в команде чтения как показано на предыдущем шаге, можно также использовать массивы в качестве переменных в команде. Эквивалентный код для того же примера:
count = [3 2 3 2] precision = {'uint16', 'single', 'double', 'int16'} read(m,'holdingregs',500,count,precision);
Используя переменные удобно, когда у вас есть много значений, чтобы читать, и они имеют смешанные типы данных.
target
— Целевая область, чтобы читатьЦелевая область, чтобы читать в виде вектора символов или строки. Можно выполнить операцию чтения MODBUS на четырех типах целей: обмотки, входные параметры, вводят регистры и регистры временного хранения информации, соответствуя значениям 'coils'
, 'inputs'
, 'inputregs'
, и 'holdingregs'
. Цель должна быть первым аргументом после имени объекта. Этот пример читает 8 обмоток, запускающихся в адресе 1.
Пример: read(m,'coils',1,8)
Типы данных: char
address
— Начальный адрес, чтобы читать изНачальный адрес, чтобы читать из в виде двойного. Адрес должен быть вторым аргументом после имени объекта. Этот пример читает 10 обмоток, запускающихся в адресе 2.
Пример: read(m,'coils',2,10)
Типы данных: double
count
— Количество значений, чтобы читатьКоличество значений, чтобы читать в виде двойного. Количество должно быть третьим аргументом после имени объекта. Если вы не задаете количество, значение по умолчанию 1
используется. Этот пример читает 12 обмоток, запускающихся в адресе 2.
Пример: read(m,'coils',2,12)
Типы данных: double
serverId
— Адрес сервера, чтобы отправить команду чтения вАдрес сервера, чтобы отправить команду чтения в в виде двойного. ID сервера должен быть задан после имени объекта, цели, адреса и количества. Если вы не задаете serverId
, значение по умолчанию 1
используется. Допустимыми значениями является 0-247
, с 0
быть широковещательным адресом.
Что некоторые устройства называют slaveID
свойство, может работать serverID
свойство в интерфейсе MODBUS. Для некоторых производителей ведомый ID иногда упоминается как ID сервера. Если ваше устройство использует slaveID
свойство, это может работать, чтобы использовать его в качестве serverID
свойство с командой чтения, аналогичной описанному здесь.
Этот пример читает 8 обмоток, запускающихся в адресе 1 с сервера ID 3.
Пример: read(m,'coils',1,8,3);
Типы данных: double
precision
— Формат данных регистра, считанного из на сервере MODBUSФормат данных регистра, считанного из на сервере MODBUS в виде вектора символов или строки. Точность должна быть задана после имени объекта, цели, адреса и количества. Допустимыми значениями является 'uint16'
int16
uint32
int32
uint64
int64
единственный
, и 'double'
. Этот аргумент является дополнительным, и значением по умолчанию является 'uint16'
.
Обратите внимание на то, что precision
не относится к типу возврата, который всегда является 'double'
. Это задает, как интерпретировать данные о регистре.
Этот пример читает 6 регистров временного хранения информации, запускающихся в адресе 2 использования точности 'uint32'
.
Пример: read(m,'holdingregs',2,6,'uint32');
Типы данных: char
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.