дистанционный + местный режимы

Автор LazyG, 29 апреля 2025, 05:16:05

« назад - далее »

LazyG

Доброго времени суток. В наших проектах зачастую дается выбор пользователю, какой именно режим использовать - напрямую с уставок в ПЛК или с уставок, задаваемых по Modbus. В свободное время вынашиваю идею объединения этих режимов - чтобы не было необходимости подходить к шкафу, менять режим управления и заодно менять все необходимые уставки, это муторно. Легче было бы просто управлять программой по последнему изменению переменной или хотя бы иметь возможность такого управления.
Функциональную часть хоть и не особо корректно, но получилось сделать, но что с экраном контроллера делать пока придумать не получается. Единственная в настоящий момент мысль - полностью все перерисовывать с 0 и продумывать логику перемещения по уставкам на экране и т.д., играть видимостью и Бог знает чем еще.
Может быть есть у кого-то идеи/наработки/решения, которые помогут мне придумать, как это прорисовать красиво и просто? Заранее спасибо!
P.S. заодно приложу программную реализацию записи параметра по изменению, на этот счет советы тоже приветствуются :)

Konstantin

Доброго времени. Как я понял задачу, реализовать ее использовав глобальную переменную и записывать в нее из меню и по Modbus. Если нужно сохранять в ПЗУ поставить соответствующую галочку.

LazyG

Все верно, с этим ни проблем, ни вопросов не возникает. Проблема в визуальной составляющей, вдруг есть у кого-то наработки/варианты/идеи, как это обставить красиво и достаточно просто. Можно было бы конечно выводить и уставку локальную, и уставку общую, что-то по типу того, как изображено в файле, но это совсем топорно выглядеть будет..

Konstantin

На дисплей добавить список параметров и присвоить параметру вашу переменную.
Посмотрите готовые программы там все доступно и понятно сделано.

LazyG

Цитата: Konstantin от 29 апреля 2025, 08:16:50На дисплей добавить список параметров и присвоить параметру вашу переменную.
Посмотрите готовые программы там все доступно и понятно сделано.
Очень хорошо, эта переменная, которую Вы привяжете к списку параметров, будет меняться из этого самого списка параметров в контроллере, и она будет в нашем контексте "локальной". Мне же нужно каким-то образом визуализировать то, что я в контроллер внесу переменную, она отобразится в этом списке параметров, а потом чтобы я по сети передал другое значение, и оно именно в этом месте и отобразилось бы.
Приведу пример.
Как происходит сейчас:
- человек А подходит, выбирает параметр "режим работы" = "дистанционный"
- по RS-485 задает те уставки, которые ему нужны
- человек А заболел или уехал, его компьютер выключен, соответственно чтобы эти уставки (например, поддерживаемую температуру воздуха) поменять человек Б должен подойти к шкафу, выбрать "режим работы" = "местный" и задать все уставки заново
Как я хотел бы чтобы происходило:
- человек А задал уставки по RS
- человек А заболел
- человек Б подошел и просто 1 переменную в контроллере поменял, это значение записалось в ту уставку, в которую человек А записывал свое значение по RS, и дальше в программе используется значение от человека Б.
Основная моя проблема в чем? Записывать значения из разных источников в одну переменную несложно, в 1 сообщении я грубый макет уже показал, основная проблема, с которой я и обратился - как показать это на экране.
Если я буду использовать стандартный список параметров, то в какую переменную я записал значение, она в этом списке параметров и отобразится. А я пытаюсь придумать как переменную X записать в список параметров, потом переменную Y передать по RS и чтобы результирующая переменная Z отобразилась в том списке параметров, куда я записывал переменную Х.
Как-то так...