-
ПЛК как modbus-master
может ли плк, являясь мастером модбаса, делать групповое чтение/запись регистров? если да, то подскажите как это настроить. чтение/запись строки - не годится.
-
это почему не годится? это и есть групповое чтение/запись
-
Насколько я понял, он работает только со строками.
Например, через String output module (AT Str_Out %QB9.8.1.0: STRING[79]) я хочу записать сразу два регистра.
Но Str_Out имеет тип строковый и подсунуть ему я могу только строку.
Str_Out := '1234';
Тогда в регистры попадёт 0х3132 и 0х3334
А если мне нужно в регистры записать 0х0012 и 0х0034 ?
Каким образом это делается?
-
Если взять указатель на строку (POINTER TO BYTE) и работать побайтно - можете записать любые значения. Единственно они не будут корректно отображаться в CoDeSys.
К сожалению, в конфигурации нельзя использовать массивы.
-
да, действительно так всё работает. спасибо.
-
И ещё вопрос в догонку:
Например, имеем ПЛК и МВУ. ПЛК, используя String output module записывает в МВУ значение выходов. Все восемь выходов сразу в одной посылке. В проекте ПЛК идёт расчёт значений для выходов и запись их через указатели в строку для String output module.
Проект в ПЛК и Modbus-мастер - задачи асинхронные. Значит возможна ситуация, когда в посылке будет часть значений последнего цикла и часть из предпоследнего.
Как сделать так, чтобы пока проект не заполнит всю строку новыми значениями, она не отсылалась в МВУ?
Как засинхронизировать модбас-мастер и проект в ПЛК, чтобы в посылке к МВУ содержались только последние расчёты?
Можно ли из проекта управлять работой модбас-мастера? Если да, то как?
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума