This is topic 300 идентичных объектов управления на одном контроллере in forum Редактор проекта TRACE MODE 6 / at Форум TRACE MODE: техническая поддержка.
День добрый. Есть проект в котором от одного контроллера управляются от 50 до 300 абсолютно идентичных независимых объектов управления. Т.е. каждому объекту соответствуют пяток экранов и несколько программ. Различаются объекты - только каналами ввода-вывода и наборами данных, с которыми оперируют экраны и программы. Желательно ведение единого архива. Каков рекомендуемый подход к проектированию такой системы?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Притакой общей постановке задачи ответить можно только рекомендациями общего характера.
Для мониторинга и управления этими объектами придется создавать каналы для каждого параметра конроля и управления в каждом объекте (по крайней мере, для архивируемых параметров). Все контролируемые параметры могут регистрироваться в общих архивах.
В Trace Mode 6 существуют методы перепривязки экранов и программ к различным объектам. Выбор методов зависит от проектных ограничений, накладываемых на процедуры математической обработки параметров и организацию опреаторского интерфейса.
Posted by com_net (Участник № / Member № 6104) on :
ок, уточню ситуацию. Есть много коробочек, в каждой из которых должна поддерживаться определенная температура. Соответственно в каждой коробочке есть датчик температуры и нагреватель. Каждой коробочке соответствуют: экран настройки поддерживаемых параметров, экран трендов, экран настройки пределов, при которых ситуация признается аварийной. Кроме этого есть три сводных экрана: "состояние системы" (отображает разноцветные квадратики - "норма/авария"), "общие настройки системы" и некая графика со схемой размещения коробочек и индикацией что включено, а что выключено. Что характерно - все процессы безумно медленные. Т.е. характерные времена изменения параметров - десятки минут, например от включения нагревателя до момента, когда можно зафиксировать отличимое от шума начало изменения температуры.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Экраны "настроек" и трендов отдельных объектов можно сделать в одном экземпляре каждый и перепривязывать по необходимости к разным объектам. Программа управления нагревателем и, возможно, диагностики (1 канал вызова), тоже может вызываться последовательно, с перепривязкой к каждому объекту.
Сводные экраны, видимо, будут общими и своими аргументами привязываются непосредственно к каналам, отображающим объекты.
Posted by com_net (Участник № / Member № 6104) on :
а нету ли где посмотреть работоспособный пример конструкции с а) перепривязкой агрументов экранов к разным каналам в зависимости от значения некоторой переменной (номер объекта управления) б) с последовательной перепривязкой шаблона программы к разным каналам по таймеру - чтобы программа включения печки последовательно обходила все объекты, анализировала условия и выдавала/снимала сигнал включения Н-го нагревателя. И совсем бестолковый вопрос - есть где н-ть на посмотреть работоспособный пример однократного срабатывания FBD программы по таймеру? Потому как всякими привязками каналов CALL к шаблонам программы пока удалось лишь поменять время, отведенное программе для работы, но не удается заставить ее остановиться после первого цикла. Собственно что к чему должно быть привязано: канал CALL, настроенный как "раз в секунду" к шаблону программы (поле "привязка" вкладки "дополнительно" на форме редактирования параметров канала) или же шаблон программы к оному каналу (поле "привязка" вкладки "информация" формы редактирования шаблона программы?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Готовых примеров нет.
Шаблон программы методом D&D перетащите в какую либо группу узла RTM. Там автоматически будет создан канал CALL.Program, вызывающий эту программу. Если необходимо, чтобы программа выполнялась с периодом, например, 2 минуты, надо в редакторе канала CALL.Program (на вкладке "Основные") задать "Период"=2 "Единица измерения"=мин
Чтобы программу включать принудительно на 1 цикл, надо сделать канал CALL.Program типа OUT и включать программу подачей "1" в атрибут 39 (EXEC) (от любой другой программы или с экрана).