Вход

Просмотр полной версии : Массив в регистры Modbus



Boris_K
28.04.2014, 14:15
Подскажите, можно ли в конфиге ПЛК, когда создаю регистры для Modbus slave (например для связи с панелью СП270) задать сразу какой-то диапазон регистров для определённого массива из программы? Массив был объявлен как глобальный. Пробовал по всякому, не даёт.

Пробовал также вручную каждому регистру присваивать какой-либо элемент массива, тоже не даёт. Неужели только заводить много разных переменных для всех этих регистров, и в программе присваивать им значения из массива?

Валенок
28.04.2014, 14:52
pointer to

Boris_K
28.04.2014, 20:40
И что куда должно указывать? Сделать один регистр что-ли, в который записывать указатель на массив? И в каком тогда виде добавлять этот регистр (там не шибко много вариантов, 4 byte?) ?

amn
28.04.2014, 21:39
Создаем стурктуру из массива кратную 4 байтам (для выравнивания).
В конфигурации создаем нужное количество регистров, чтобы общий размер был как у структуры и даем имя первому регистру.



TYPE massiv :
STRUCT
b: ARRAY [0..3] OF WORD;
END_STRUCT
END_TYPE

VAR_GLOBAL
a:massiv;
END_VAR

VAR
ptr:POINTER TO massiv;
END_VAR

ptr:=ADR(mas); (*адрес первого регистра конфигурации*)
ptr^:=a; (*копируем массив в регистры конфигурации*)

Валенок
28.04.2014, 21:42
там не шибко много вариантов, 4 byte?
Там избыточное кол-во вариантов для создания куска памяти под любую структуру

PS
Куда уж лучше