PDA

Просмотр полной версии : ПЛК 110, модбас и массивы структур.



lttn
01.12.2018, 16:18
День добрый всем присутствующим.
Пытался решить задачу правильно - не получилось, сдал заказчику проект вида ctrl-c+ctrl-v, но хочется понять как это делать правильно: имеем: установку состоящую из нескольких десятков идентичных узлов, каждый из которых независимо управляется по модбасу.
Логично - создать структуру, которая описывает данные одного узла и массив таких структур, описывающий установку в целом.
Соответственно HMI имеет дело с одним элементом массива и все хорошо, проблем с местным управлением нет.
А теперь пытаемся отразить все это в модбас карту - и ничего не получается, поскольку руками отредактировать связь нельзя, а перетаскивание приводит к ссылке из модбас переменной на имя массива, что глупость.
Есть где посмотреть пример как это делается по уму?
Кстати - почему попытка развернуть в дереве массив структур показывает список первого уровня вложенности и дальше не разворачивается?
Да, забыл сказать - мы про MS4d

lara197a
02.12.2018, 10:51
вы внесите в структуру к примеру номер+ данные. По номеру данные в ПЛК записываются в нужные регистры массиива.
поиск нужной структуры в массиве выполняется с помощью функции FOR и Exit.
Пример: есть некий архив, для поиска нужной информации задаем дату. По дате находится нужная структура в массиве и данные выводятся в регистр модбас.
если разрешена запись в панели, то можно еще и изменить данные.
Так же возможно вам подойдет функция "рецепты".

lttn
15.10.2019, 14:29
это, к сожалению, совсем не про то.
Упростим проблему: есть структура с условным названием "настройки". В ней, к примеру, несколько целочисленных полей.
Эти поля должно быть возможно читать и изменять как через регистры модбас, так и с веб-интерфейса контроллера, например с использованием компонента "текстовый ввод".
Как это сделать?

Филоненко Владислав
15.10.2019, 20:21
2 варианта.
Правильный
создаёте 3 структуры, 1-я для доступа по modbus - отображаем её на область I/O ModBus. Вторая для визуализации - используем в визуализации.
3-я хранится в retain и используется алгоритмом ПЛК.
Диспетчер данных (придётся написать) выбирает откуда брать данные (стратегии могут быть разными) и синхронизирует 3 структуры.

1 структура, отображена в modBus slave, он уже в retain, с этой же областью работают остальные потребители.
Куча подводных камней, но для закрытого решения, где Вы пишите все- приемлемо.

KrAssor
16.10.2019, 11:35
2 варианта.
Правильный
создаёте 3 структуры, 1-я для доступа по modbus - отображаем её на область I/O ModBus. Вторая для визуализации - используем в визуализации.
3-я хранится в retain и используется алгоритмом ПЛК.
Диспетчер данных (придётся написать) выбирает откуда брать данные (стратегии могут быть разными) и синхронизирует 3 структуры.

1 структура, отображена в modBus slave, он уже в retain, с этой же областью работают остальные потребители.
Куча подводных камней, но для закрытого решения, где Вы пишите все- приемлемо.

я бы как раз по 2 варианту и делал. Отслеживать и синхронизировать, откуда пришли изменения (по модбасу или из формы) надо по-любому. Иначе только геммор заработаешь.

lttn
16.10.2019, 16:10
2 варианта.
Правильный
создаёте 3 структуры, 1-я для доступа по modbus - отображаем её на область I/O ModBus.

-- уже не работает. Нельзя никаким способом отобразить компонент структуры на внешний канал. Можно структуру целиком, но тогда связь создастся, но проект не соберется с сообщением "Error: 'Система.PLC110_30 1.Внешние каналы.структура' ссылается на атрибут, не назначенный в задачу : 'Объекты.Объект 1.структура' Источник: 'Система.PLC110_30 1.Внешние каналы.структура'".


...
1 структура, отображена в modBus slave, он уже в retain, с этой же областью работают остальные потребители.
Куча подводных камней, но для закрытого решения, где Вы пишите все- приемлемо.
-- та же фигня. Нельзя связать внешний канал с компонентом структуры. И с элементом массива нельзя. Только с отдельностоящей переменной.

Филоненко Владислав
17.10.2019, 07:52
Я протупил и почему то думал, что речь о ПЛК с КоДеСис.
P.S. Валенок, хватит уже флудить. Для флуда пикабу и башорг есть!

приборист
17.10.2019, 22:01
Я протупил и почему то думал, что речь о ПЛК с КоДеСис.
P.S. Валенок, хватит уже флудить. Для флуда пикабу и башорг есть!
ОМГ, башорг.
;)

P.S.
Фишки.нет и Яплакалъ постарше будут пикабу, однако