Стартовая страница › Форумы › Понять, как работает ПО › Вывод текстовой информации вместо цифровой
- В этой теме 17 ответов, 4 участника, последнее обновление 6 лет, 8 месяцев назад сделано Mikhail.
-
АвторСообщения
-
11.01.2017 в 09:06 #4007manjey73Участник
В базе данные в виде цифровых значений в формате double.
В табличном представлении мы можем видеть только цифры.
А есть ли возможность выводить вместо цифровых данных текстовые при отображении ?
Например у меня есть массив цифровых значений от источника (прибора), при чем могут идти не подряд 1,-,7 а иметь разрывы. 10, 12, 14, 22, 24, 35 и т.д.
Каждому значению соответствует некое описание.
Ну на примере цифр подряд это роза ветров. 1 — сервер, 2 — северо-восток, 3 — восток и т.д.
Или если значения не подряд 10 — облачно, 12 — дождь и т.д.Вот как имея в базе данных цифровое значение 10, вывести на экран текст «облачно» или 12 — «дождь» ну и т.д.
Есть такая возможность ?
11.01.2017 в 11:31 #4011MikhailМодераторДа, конечно можно.
Заведите в таблицы Размерности размерность Погода. Посмотрите по аналогии, как указать значения для неё. Затем для входного канала установите тип — ТС, Вашу размерность и формат — Текст.11.01.2017 в 11:33 #4012MikhailМодераторЕсли значения имеют разрывы, то нужно написать формулу типа
double ConvertWeather() { int val = (int)Cnl; switch (val) { case 10: return 1; default: return 0; // по умолчанию } }
11.01.2017 в 12:10 #4013manjey73УчастникСпасибо, попробую разобраться…
09.07.2017 в 21:09 #6444RainproofУчастникА что за тип канала ТС? у меня такого нет в выпадающем списке. Названия на английском — Real, Discrete и т.п.
09.07.2017 в 21:58 #6449manjey73УчастникТеле Сигнал, по идее Discrete
10.07.2017 в 09:08 #6452MikhailМодераторЗначит, Вы скачали Rapid SCADA с нашего англоязычного сайта, где в дистрибутив входит англоязычная база. Вы можете скачать русский дистрибутив с http://rapidscada.ru и переписать C:\SCADA\BaseSDF\ScadaBase.sdf, а также настройки Коммуникатора в C:\SCADA\ScadaComm\Config
Переустановка не требуется24.07.2017 в 16:14 #6727OlegУчастникЗдравствуйте. Вопрос по этой же теме.
Есть контроллер, в котором ошибки работы агрегата записываются в блок данных размером 200 байт. Количество типов ошибок 200х8=1600. Есть список этих ошибок в текстовом виде типа:
«ошибка 100.0″=»Ошибка автомата»
«ошибка 100.1″=»Ошибка предохранителя»Есть какой либо более простой способ выводить ошибки на веб страницу, чем создание 1600 входных каналов + создание 1600 строк в таблице Размерности с описанием ошибки для каждого канала?
У меня был вариант создания 50 входных каналов для считывания 50 переменных типа DWORD что с разрядностью контроллера составит 50 двойных слов х 4 байта х 8 бит = 1600 бит. Далее каждый канал раскладывать по битам и брать те каналы, значение которых равно 1, т.е. ошибка активна. Далее, зная номер канал с активной ошибкой мы можем с помощью формулы взять описание ошибки из референсного текстового файла на сервере, например «ошибка 100.0″=»Ошибка автомата».
Но как это описание вывести в табличное представление или на схему?- Этот ответ был изменен 6 лет, 9 месяцев назад от Oleg.
24.07.2017 в 16:17 #6729manjey73Участникограничение текста 8 знаков для ASCII или выходит 4 знака для Unicod. Это если формулой формировать текст
Так что наверное все таки через размерности пока.
Как вариант сделать сотню картинок, например SVG и через коллекцию по значениюКстати для Коллекции не хватает вывода текста а не только картинок.
24.07.2017 в 16:25 #6733MikhailМодераторВариант 1.
1600 входных каналов. Имя ошибки при этом — это имя входного канала, а значение ошибки — Есть или Нет. То есть забивать множество размерностей не потребуется.Вариант 2.
Если Вы можете сократить названия ошибок до 8 латинских или 4 кириллических символа, то можно написать формулу, которая будет выдавать ошибку в виде текста. Правда формулу придётся разбить на несколько, из-за ограничений размера текста формулы.
Т.к. в значении входного канала 32 бита, то Вы правильно написали, что потребуется несколько входных каналов. Формула будет базироваться на них.Если несколько ошибок возникнет одновременно, то какой текст выдавать?
24.07.2017 в 16:26 #6734MikhailМодераторКак вариант сделать сотню картинок
Насколько я понял, потребуется 1600 картинок 🙂
24.07.2017 в 16:28 #6735MikhailМодераторПри таком количестве допустимых значений создание формулы или ввод каналов надо как-то автоматизировать. У Вас же наверное есть готовый текстовый список?
24.07.2017 в 19:53 #6738manjey73Участниккстати да, можно хранить файл а формулой читать код ошибки и брать его из файла.
з.ы. можно чуть еще изменить функциональность и показывать ошибки в цикле с задержкой 3-5 секунд. Делали подобное на экране программируемого реле. Надо будет покумекать как реализовать это в Scada.
Потребуется всего 2 канала. один для количества ошибок, второй для отображения.
Ну еще 3-й чтобы номер(код) текущей ошибки показывать.з.ы. Коллекция для текста тут бы могла очень пригодиться, чуть даже дальше посмотреть можно. Брать коллекцию из файла txt, чтобы не набирать каждый раз в настройках.
Если пару-тройку текстовых сообщений, можно и так прописать. Если много, то указываем файл. В котором первое значение это значение с которым сравнивать, знак что сравниваем > , <, >= и так далее, номер канала для сравнения ну и сам текст. Типа все одной строкой с разделителем делать. Например CSV файлик чтобы понимал29.07.2017 в 13:02 #6817OlegУчастникПолучается самый «простой вариант» это создание 25 вх. каналов телеизмерения.
Получаем 25*35=1600 бит. Плюс нужно создать 1600 вх. каналов дорасчетных — каждый канал для своей ошибки. В каждый из 25 каналов вставить формулу, которая будет устанавливать значение 0 или 1 для 1600 каналов в соответствии с диапазоном:
1 вх. канал телеизмерение <—> 1..32 вх. канал дорасчетный
………………………………………………….
25 вх. канал телеизмерение <—> 1568..1600 вх. канал дорасчетныйЕсли создавать 1600 вх. каналов телеизмерения типа bool заметно тормозит коммуникатор — обновление данных происходит не раз в секунду, а раз в три или пять секунд. Возможно большая нагрузка на OPC сервер. Если переменных около 200 — все нормально.
Нет, создавать 1600 картинок — это вех мазохизма 🙂
По кругу тоже не вариант — хочется списком и фиксация появления/сброса ошибки в событиях.Да, у меня есть текстовый файл со списком ошибок. В файле 1600 строк.
Если несколько ошибок по выводить нужно конечно все ошибки.
Сократить до 8 символов не получится, точнее получится шифр) Тога проще выдавать номер ошибки и сверяться с табличкой, что означает этот номер.
Сопоставление бита ошибки строке в файле сделать можно, но вот как вывести в веб — это опрос конечно.29.07.2017 в 13:14 #6821OlegУчастникКак можно импортировать хотя бы названия этих каналов в базу Администратора? Я так понимаю у файла базы проприетарный формат
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.