Стартовая страница › Форумы › Понять, как работает ПО › Использование формул › Статус входного канала по нажатию кнопки
- В этой теме 28 ответов, 5 участников, последнее обновление 3 года, 8 месяцев назад сделано Mikhail.
-
АвторСообщения
-
04.08.2020 в 17:10 #16845vgУчастник
Здравствуйте!
Из текстового файла считываю данные (числа и даты) во входные каналы. Образуется несколько «наборов»(то есть несколько экземпляров данных, вычисленных в разное время). В представлении (схема) отображается лишь один набор.
Задача:
По нажатию кнопки менять отображения наборов.Собственно я пытаюсь реализовать это с помощью модуля автоматического управления. Сделал триггер на команду ТУ, добавил команды. Создал каналы управления, в которых задаю в «пустой» канал значения в зависимости от нажатой кнопки. То есть формула SetVal(n, val) отрабатывает. А SetStat(n, stat) или SetData(n, val, stat) не проходят. Не понимаю причины. Пробовал задавать передаваемое значение статуса и переменными и константными числами.
04.08.2020 в 17:20 #16850vgУчастникПоправка:
При использовании SetData значение канала меняется, а статус нет.
Цвет фона в элементе Динамический текст установлен на Status.
Тип команд использую Стандартные.- Этот ответ был изменен 3 года, 8 месяцев назад от vg.
04.08.2020 в 17:23 #16853MikhailМодераторДобрый день!
На схемах отображаются текущие данные. Сделайте, пожалуйста, скриншоты настроек, и опубликуйте логи, которые поясняют проблему.04.08.2020 в 17:40 #16854vgУчастникhttps://ibb.co/k96wdPP Настройка модуля автоматического управления
https://ibb.co/CWqbnmg Входные каналы, в которых меняю значения
https://ibb.co/JpVBkcz Каналы управления
Лог ScadaServerSvc:
2020-08-04 17:27:34 Служба ScadaServerService 5.1.3.0 запущена
2020-08-04 17:27:34 Загружен модуль из файла C:\SCADA\ScadaServer\Mod\ModAutoControl.dll
2020-08-04 17:27:34 Проверка существования директорий данных выполнена успешно
2020-08-04 17:27:34 Проверка существования файлов базы конфигурации выполнена успешно
2020-08-04 17:27:34 Входные каналы считаны из базы конфигурации. Количество активных каналов: 551
2020-08-04 17:27:34 Каналы управления считаны из базы конфигурации
2020-08-04 17:27:34 Пользователи считаны из базы конфигурации
2020-08-04 17:27:34 Формулы считаны из базы конфигурации
2020-08-04 17:27:34 Исходный код формул калькулятора откомпилирован
2020-08-04 17:27:34 Прослушиватель соединений запущен
2020-08-04 17:27:34 Запуск работы сервера
2020-08-04 17:27:34 Соединение с клиентом 127.0.0.1
2020-08-04 17:27:34 Пользователь ScadaComm успешно аутентифицирован
2020-08-04 17:27:34 Текущий срез загружен
2020-08-04 17:27:34 Соединение с клиентом 127.0.0.1
2020-08-04 17:27:34 Пользователь ScadaWeb успешно аутентифицирован
2020-08-04 17:27:35 Проверка имени и пароля пользователя operator. Результат: верно
2020-08-04 17:27:38 Получена команда 0x06 (команда ТУ) от клиента 127.0.0.1
2020-08-04 17:27:38 Команда ТУ: канал упр. = 201, ид. польз. = 14
2020-08-04 17:27:38 Команда ТУ: канал упр. = 290, ид. польз. = 14
2020-08-04 17:28:41 Отключение клиента 127.0.0.1В логах проблемы не вижу.
- Этот ответ был изменен 3 года, 8 месяцев назад от Mikhail.
04.08.2020 в 17:48 #16855vgУчастникЯ нажимаю на кнопку, у которой в свойствах заданы «Канал управления» — 201, Действие — Отправить команду сразу.
В модуле автоматического управления создан триггер на канал 201. К триггеру добавлена команда ТУ — 290.
Если я правильно понял, то по нажатию кнопки и срабатыванию триггера на канал 201 происходит выполнение команды 290.
По крайней мере значения в канале и на представлении «схема» изменяются.- Этот ответ был изменен 3 года, 8 месяцев назад от vg.
05.08.2020 в 10:14 #16858a80808УчастникКоллеги, может не в тему — а как читать из текстового файла? Это можно сделать формулами?
Я пытался в версии 5.6 читать методом System — пишет «Метод не поддерживается»…Буду весьма признателен…
05.08.2020 в 13:26 #16860vgУчастникНапример так:
string path = «путь к файлу»;
…какая то функция…
{
string[] readResult = System.IO.File.ReadAllLines(path, Encoding.UTF8);
return Convert.ToDouble(readResult[номер нужной строки]);
}- Этот ответ был изменен 3 года, 8 месяцев назад от vg.
05.08.2020 в 14:00 #16862vgУчастникВ общем как это обычно и бывает сам ошибся, сам исправился.
Изменив тип канала, для которого я по кнопке задавал значение, на «Телеизмерение» статус также стал меняться.
05.08.2020 в 17:28 #16868vgУчастникСтолкнулся с другой проблемой:
По умолчанию во входных каналах, значения которых отображаю на схеме, нет никаких значений (флаг «Исп. формулу» отсутствует).
По нажатию кнопки устанавливаю один из «наборов». Появляется значение, и индикация в зависимости от статуса. Но по прошествию некоторого времени статус всех этих каналов сбрасывается на 5(Параметр недостоверен). То есть он определён, но недостоверен.
Каким образом определяется недостоверность?
Вероятно проблема в том, что каналы «телеизмерение» некоторое время находятся неактивными, но с «дорасчётными» не меняется статус.
Беда прям)
- Этот ответ был изменен 3 года, 8 месяцев назад от vg.
05.08.2020 в 17:34 #16870manjey73УчастникВременем определяется, судя по всему надо статус подтверждать. Не совсем понятно, что вы хотите получить… ?
a80808 я читал и писал файлы в формулах retain, которую делал для Raspberry, в теме формул должно быть.
05.08.2020 в 17:34 #16871vgУчастникМожно ли установить постоянное значение и статус во входной канал без флага использования формулы через каналы управления?
05.08.2020 в 17:37 #16872vgУчастникmanjey73
Хочу добиться отображения «набора» данных с индикацией по статусу. Но задавать какой набор отображать нажатием кнопки. Есть конечно идея формулами реализовать, но с помощью модуля автоматического управления выглядит симпатичнее, на мой вкус.
05.08.2020 в 17:37 #16873manjey73УчастникТИ и ТС каналы обрабатываются иначе, если не ошибаюсь им важна связь с Коммуникатором.
Вам нужно задавать какое-то значение для дальнейших действий ? типа уставки или что ?
Используйте дорасчетные каналы.не совсем понимаю о чем вы пишите. При чем тут статусы ?
и что такое «набор» данных ?- Этот ответ был изменен 3 года, 8 месяцев назад от manjey73.
05.08.2020 в 17:40 #16875manjey73УчастникМодуль автоуправления позволяет сравнивать несколько условий.
например дорасчетный канал 0 — один набор И статус другого канала х — набор такой то
канал 1 И статус другого канала y — набор иной.05.08.2020 в 17:49 #16876vgУчастникНет, уставки реализованы уже. Там порядок.
У меня есть софт, который выдаёт результаты диагностики в БД.
Я забираю из БД эти данные и формирую текстовый файл, который содержит в себе данные по этим диагностикам. Но диагностик нужно несколько, чтобы иметь возможность просмотреть всё это с помощью SCADA (грубо говоря архив диагностик). Данные по одной из диагностик это и есть один набор. Таких наборов соответственно несколько. Но чтобы отобразить несколько одного экрана мало. Поэтому хочу менять отображение наборов данных нажатием кнопки. Но так как полученные параметры это числа я хочу осуществить индикацию ячеек, в которых эти числа отображены. Поэтому по нажатию кнопки, например «1», я хочу отобразить набор №1 с соответствующей индикацией. А динамическая индикация реализуется в свою очередь через определение статуса. Поэтому по нажатию кнопки мне нужно установить и значение и статус.И моя идея заключалась в том, чтобы разместить значения из файла в каналы (все наборы), а затем нажатием кнопки присваивать «пустым» каналам значения каналов «не пустых».
- Этот ответ был изменен 3 года, 8 месяцев назад от vg.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.