Считайте данные из сервера 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'int16uint32int32uint64int64единственный, и 'double'. Этот аргумент является дополнительным, и значением по умолчанию является 'uint16'.
Обратите внимание на то, что precision не относится к типу возврата, который всегда является 'double'. Это задает, как интерпретировать данные о регистре.
Этот пример читает 6 регистров временного хранения информации, запускающихся в адресе 2 использования точности 'uint32'.
Пример: read(m,'holdingregs',2,6,'uint32');
Типы данных: char
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.