При управлении прибором и объектом предусмотрено три вида записи настроек:
Запись значений параметров в прибор используется в следующих случаях:
Для проверки корректности записи параметров в прибор в момент установки
Для изменения значения параметра в одном приборе при наличии достаточной квалификации
Запись шаблона параметров в приборы используется в следующих случаях:
Для одновременного выполнения однотипных действий приборов.
Для записи уставки в многоканальные приборы.
Для одновременной записи в несколько приборов
Запись набора управляемых параметров (конфигурации) в прибор используется в следующих случаях:
Для хранения конфигурации («рецептов»). OwenCloud хранит до 5 рецептов. OwenCloud обеспечивает запись конфигурации в прибор и позволяет просматривать и сравнивать конфигурации.
Для отката изменений настроек и конфигурации. Если при настройке прибора были допущены ошибки, имеется возможность вернуть предыдущую конфигурацию
При замене прибора. Если прибор вышел из строя и требует замены, OwenCloud сохраняет настройки старого прибора и позволяет их установить для нового прибора.
Запись значений управляемых параметров в прибор
В главном окне OwenCloud выберите прибор и откройте вкладку Запись параметров / Активные команды на запись и параметры. Откроется окно:
В столбце Новое значение – введите значения только тех параметров, которые необходимо изменить. Нажмите кнопку Записать. Откроется окно:
Повторять попытки записи в течение – укажите время, в течении которого необходимо производить попытки записи при неудавшейся первой попытке.
Не записывать, если значения в приборе изменились к моменту записи – установите галочку для запрета записи нового значения параметра при изменившемся старом значении.
Нажмите кнопку Записать.
Для просмотра журнала команд откройте вкладку Запись параметров / Лог команд. Откроется окно:
Укажите интервал времени данных для отображения в отчете, выбрав Последние данные или Данные за период и установив соответствующие значения в поля С и По. Нажмите кнопку Показать.
Создание и запись параметров по шаблону в приборы
В разделе Администрирование откройте вкладку Шаблоны. Откроется окно:
Нажмите кнопку Добавить шаблон. Откроется окно:
Название – введите название шаблона.
Категории – выберите группы, к которым будет относиться шаблон.
Описание – введите описание шаблона.
Не записывать, если значения в приборе изменились к моменту записи – установите галочку для запрета записи нового значения параметра при изменившемся старом значении.
Нажмите кнопку Сохранить. Откроется окно:
Повторять попытки записи в течение – укажите время, в течении которого необходимо производить попытки записи при неудавшейся первой попытке.
Откройте вкладку Параметры. Откроется окно:
Выберите один или несколько приборов.
Установите значения параметров приборов, которые будут установлены при записи по шаблону.
Нажмите кнопку Сохранить. Откроется окно со списком шаблонов.
Запись набора управляемых параметров (конфигурации) в прибор (₽)
В главном окне OwenCloud выберите прибор и откройте вкладку Конфигурации / Текущие данные. Откроется окно, в котором отображаются значения текущей конфигурации:
При необходимости уставите новые значения параметров, нажав кнопку Записать.
Откройте вкладку Конфигурации / Все конфигурации. Откроется окно:
Выберите порядковые номера конфигураций для сравнения.
Цветовая индикация:
Желтый фон строки – строки с отличающимися значениями параметров.
Зеленый фон строки – параметр отсутствует в одной из сравниваемых конфигураций.
Красным выделено отличающееся значение, установленное в приборе на текущий момент.
Зеленым выделено отличающееся значение, ранее установленное в приборе.
Количество конфигураций доступных пользователю определяется тарифным планом (Просмотр информации о тарифе и смена тарифного плана).
Пользовательские программы (₽)
Функционал пользовательских программ предоставляется в бета-версии.
Пользовательские программы предназначены для автоматического управления объектами при выполнении определенных условий, заданных пользователем с помощью языка программирования Object Pascal.
Пользователю доступно:
запуск и остановка, просмотр статуса выполнения программы и значений текущих входных / выходных параметров;
Доступность просмотра, создания, редактирования и количество пользовательских программ определяется:
выбранным тарифом;
- .
Просмотр списка пользовательских программ
В разделе Администрирование откройте вкладку Программы. Откроется окно:
В списке пользовательских программ отображается следующая информация:
Название
— название программы;Прибор
— названия приборов, параметры которых содержит программа;Категория
— категории, в которые входит программа;Статус
— статус выполнения программы. Возможные варианты:Остановлен
В работе
Ошибка
Для просмотра и редактирования программы нажмите на название программы:
Создание и компилирование программ
В разделе Администрирование откройте вкладку Программы. Откроется окно:
При создании программы учитывайте следующие особенности:
Используйте язык программирования Object Pascal. Поддержаны модули:
Поддержаны системные переменные:
*имя_переменной*_lastTime — время последних данных. В формате UnixTime без учета часового пояса (GMT±0). Размер переменной 64 бита (LINT);
*имя_переменной*_fault — код ошибки, сгенерированный OwenCloud или код ошибки протокола Modbus. Размер переменной 64 бита (LINT).
Учитывайте ограничения имени переменной (зарезервированные слова Object pascal и модификаторы);
При написании программы не изменяйте сигнатуру функции;
Запрещается использовать циклические условия while…do, for…to, repeat...until;
Запись производится циклически с периодом 1 минута;
Запись значения из программы является приоритетной, если произошел обрыв связи с прибором или значение параметра было изменено извне, сервис выполнит запись ещё раз через минуту;
Отключение опроса параметров (снятие флагов «Оперативный», «Конфигурационный», «Управляемый»), удаление параметра или прибора из OwenCloud приведет к автоматической остановке выполнения программы и появлению статуса Ошибка;
Для создания пользовательской программы нажмите кнопку Добавить программу. Откроется окно:
Наименование – введите название пользовательской программы.
Категория – выберите группы, к которым будет относиться пользовательская программа.
Нажмите кнопку Продолжить. Откроется окно редактора программы:
Добавьте переменные и/или константы. Поддержаны следующие виды переменных:
локальные переменные. Значение переменной обновляется при каждом запуске функции. Локальные переменные назначаются в коде программы.
глобальные переменные. Значение перемененной определяется перед первым запуском в функции инициализации (procedure Init).
входные переменные. Параметры приборов, которые в программе доступны для чтения.
выходные переменные. Параметры приборов, которые в программе доступны для записи.
Нажмите кнопку Добавить и выберите переменную или константу для добавления. Возможные варианты:
входная переменная. Откроется окно:
Имя — введите название переменной;
Тип — отображается тип переменной;
Параметр — нажмите на кнопку и выберите параметр для переменной. Для переменных типа «Вход» отображаются параметры, которые имеют хотя бы один из типов: «Оперативный», «Конфигурационный» или «Управляемый»;
Описание — при необходимости добавьте описание переменной.
выходная переменная. Откроется окно:
Имя — введите название переменной;
Тип — отображается тип переменной;
Параметр — нажмите на кнопку и выберите параметр для переменной. Для переменных типа «Выход» отображаются параметры, которые имеют хотя бы один из типов: «Оперативный», «Конфигурационный» или «Управляемый»;
Описание — при необходимости добавьте описание переменной.
глобальная переменная. Откроется окно:
Имя — введите название переменной;
Тип — отображается тип переменной;
Формат — выберите формат переменной. Возможные варианты: INT, SINT, DINT, UINT, UDINT, ULINT, RAEL, LREAL, BOOL, STRING, BYTE, WORD, DWORD, LWORD;
Описание — при необходимости добавьте описание переменной.
константа. Откроется окно:
Имя — введите название переменной;
Тип — отображается тип переменной;
Формат — выберите формат переменной. Возможные варианты: INT, SINT, DINT, UINT, UDINT, ULINT, RAEL, LREAL, BOOL, STRING, BYTE, WORD, DWORD, LWORD;
Значение — введите значение переменной;
Описание — при необходимости добавьте описание переменной.
Запустите компиляцию программы и дождитесь успешного завершения процесса. При возникновении ошибки компилятор выдаст соответствующее сообщение.
Запуск и остановка пользовательской программы
Запуск и остановка пользовательской программы доступна пользователям с ролью «Управляющий программами».
В главном окне OwenCloud выберите пользовательскую программу. Откроется окно:
Во вкладке Программа отображаются текущие значения параметров и статус выполнения программы.
При необходимости запустите/остановите выполнение или перейдите в настройки программы.
Остановка программы производится по нажатию кнопки Запуск / Остановка или автоматически. Автоматическая остановка производится в следующих случаях:
Пользовательская программа приводит к нагрузке системы и/или не отвечает критериям безопасности;
При смене тарифного плана с наименьшим количеством пользовательских программ, запущенные программы сверх тарифного плана будут автоматически остановлены;
При отключении опроса или удалении параметра / прибора, входящего в программу, программа будет автоматически остановлена со статусом выполнения Ошибка.
При автоматической остановке программы производится отправка уведомлений на электронную почту пользователям компании с ролью «Управляющий программами» и «Управляющий командами».
Просмотр журнала изменений статуса программы
В журнале отображается в какое время каким пользователем или системой была произведена остановка или запуск программы. При автоматической остановке программы системой отображается причина остановки.
В главном окне OwenCloud выберите пользовательскую программу и откройте вкладку Журнал. Откроется окно:
Журнал содержит следующую информацию:
Дата и время — дата и время (UTC+3) изменения статуса программы;
Статус — статус программы. Возможные значения: запуск, остановка;
Инициатор — имя учетной записи, под которой изменился статус выполнения программы;
Комментарий — комментарии, которые были указаны при изменении статуса выполнения программы.
Просмотр журнала записи выходных параметров
В главном окне OwenCloud выберите пользовательскую программу и откройте вкладку Журнал записи параметров. Откроется окно:
В журнале записи параметров отображается следующая информация:
Дата и время
— дата и время (UTC+3) выполнения изменений параметров.Имя переменной
— название переменной в программе.Параметр
— измененный параметр. Формат: <название параметра>| <код параметра>.Прибор
— название прибора, которому принадлежит параметр.Записываемое значение
— значение параметра, записываемое программой в прибор.Статус команды
— статус отправленной команды. Возможные значения: в работе, ошибка, выполнено.
Примеры пользовательских программ
Запись по изменению
Запись значения в переменные в зависимости от значения других переменных осуществляется с помощью оператора If.
Полная конструкция:
If <условие> then // Если <условие> равно true, то
begin
[действия]
end
else // иначе
begin
[действия]
end
В данной конструкции может не использоваться:
else, если по алгоритму программы else не требуется;
блок begin … end, если выполняется только одно действие
Пример 1
Включение/выключение исполнительного механизма в зависимости от показаний датчика
Описание: Если температура больше 28 градусов, необходимо включение вентилятора. Если меньше 28, вентилятор отключается.
Код программы:
begin
If (temp >= 28) then
vent := 1
else vent := 0;
end
Пример 2
Двухпозиционное управление исполнительным механизмом.
Описание: При увеличении температуры до 28 градусов, вентилятор включается, температура начинает уменьшаться. При уменьшении температуры до 23 градусов вентилятор отключается, температура постепенно увеличивается.
Код программы:
procedure UserFunction; cdecl; export;
begin
If (temp >= 28) then vent := 1;
if (temp <= 23) then vent := 0;
end;
Запись по времени
Запись значений в определенное календарное время. Составление расписания по дням недели. Запись значений на определенное время по таймеру.
Пример 1
Описание: Вентилятор находится во включенном состоянии в рабочее время с 9:00 до 18:00 и в отключенном состоянии с 18:00 до 9:00.
Код программы:
var
hh_sys, min_sys, ss_sys, ms_sys : word;
work: boolean;
procedure UserFunction; cdecl; export;
begin
DecodeTime(Time, hh_sys, min_sys, ss_sys, ms_sys);
work := (hh_sys >= 9) and (hh_sys <= 17);
If (work) then vent := 1
else vent := 0;
end;
Пример 2
Добавим к прошлому примеру проверку на выходные дни.
Описание: Вентилятор находится во включенном состоянии в рабочее время с 9:00 до 18:00 и в отключенном состоянии с 18:00 до 9:00 за исключением субботы и воскресенья каждой недели.
Код программы:
var
hh_sys, min_sys, ss_sys, ms_sys : word;
work, weekend : boolean;
procedure UserFunction; cdecl; export;
begin
weekend := (DayOfTheWeek(now) = DaySaturday) or (DayOfTheWeek(now) = DaySunday);
If (not(weekend)) then
begin
DecodeTime(Time, hh_sys, min_sys, ss_sys, ms_sys);
work := (hh_sys >= 9) and (hh_sys <= 17);
If (work) then vent := 1
else vent := 0;
end;
end;
Работа с системными переменными
Для входных, выходных и глобальных переменных поддержаны системные переменные. Их можно получить следующим образом:
*имя_переменной*_lastTime — время последних данных. В формате UnixTime без учета часового пояса (GMT±0). Размер переменной 64 бита (LINT);
*имя_переменной*_fault — код ошибки, сгенерированный OwenCloud или код ошибки протокола Modbus. Размер переменной 64 бита (LINT).
Пример 1
Добавим валидацию на код ошибки для одного из предыдущих примеров.
Описание: Если потеряна связь с прибором, показывающим температуру, то выключаем вентилятор. Если проблем со связью нет, то выполняем необходимую нам логику.
Код программы:
procedure UserFunction; cdecl; export;
begin
If not(temp_fault = 255) then
If (temp >= 28) then vent := 1
else vent := 0
else vent := 0;
end;
Пример 2
Допустим используются два шлюза ПМ210, к которым по интерфейсу RS-485 подключены опрашиваемые приборы. Рассмотрим случай, когда теряется связь не с приборами за шлюзом (как в прошлом примере), а с самим шлюзом ПМ210.
Описание: При потере связи с первым шлюзом, подаем команду выключения вентилятора в прибор за вторым шлюзом. Если проблем нет, то выполняем необходимую логику.
Код программы:
var
user_time, data_time_gmt : TDateTime;
procedure UserFunction; cdecl; export;
begin
user_time := now;
data_time_gmt := IncHour(UnixToDateTime(temp_lastTime), 3);
If MinutesBetween(user_time, data_time_gmt) >= 5 then
begin
vent := 0;
end
else
If (temp >= 28) then vent := 1
else vent := 0
end;