Ответы в темах
-
АвторЗаписи
-
DaniilOpushnev
УчастникВсем добрый день!
Есть устройство, которое передает данные формата json (например{"time": 1625097600, "type": 5, "temp": 250, "hum": 500, "status": 1, "signal": 2}), а так же простые строчные сообщения типа get, end. При простом скрипте парсинга json, при появлении сообщения на входе не формата json, значения в тегах сбрасываются, т.к. была ошибка выполнения скрипта. В скрипте реализовал игнорирование данные не json формата, но в таком случае все равно значения в тегах сбрасывались, доработал код, хотел, чтобы при получении обычной строки в теги передавались последние значения json пакета, но максимум добился того, что данные в тегах не сбрасываются, а устанавливаются на 0. Полагаю, так происходит из-за того, что при вызове и завершении скрипта, сохраненные данные в коде стираются.
Может кто то сталкивался с похожей проблемой? Как сделать так, чтобы данные в тегах не сбрасывались/обнулялись?
Использую 5ю версию scada.-
Ответ изменён 1 год, 1 месяц назад пользователем
DaniilOpushnev. Причина: пояснение
DaniilOpushnev
УчастникДа я тоже об этом подумал, поэтому поставил период в 10 минут, это хотя бы позволит избавиться от «дребезга» значений. А так в 5й версии в модуле автоуправление есть функция опрос КП, буду тестировать ее в понедельник.
DaniilOpushnev
УчастникВ код команды тоже работает, спасибо!
И просто выставить период тоже работает, все проще чем казалось..) Спасибо! С периодичностью и на 5й версии заработает.DaniilOpushnev
УчастникГалку «Оставаться на связи» снял, все в норму пришло. Все работает как надо.
Всем спасибо!А на 5ю версию есть подобная команда?
DaniilOpushnev
УчастникКартинки не заработали почему то, вставлю просто ссылками:
Настройка канала: https://disk.yandex.ru/i/rTdNAjUn4vPZhg
Настройка модуля контроля: https://disk.yandex.ru/i/KKlBijY7w1FPWQ
Лог линии: https://disk.yandex.ru/i/xNB7M9sqavieYg
DaniilOpushnev
УчастникНастроил через команду App.Comm.PollDevice. Настройки следующие:
Первый опрос в нужное время проходит успешно, но следующий с ошибкой:
Но эта ошибка, скорее всего, связана с самим устройством. Понаблюдаю еще как будет проходить опрос с часовым интервалом.
DaniilOpushnev
УчастникА можете рассказать в общих чертах хотя бы, какие файлы нужны для создания плагина и как его потом установить? Никогда этого не делал, представления вообще никакого нет.
DaniilOpushnev
УчастникЗабыл дополнить, версия 5.
Цель этого следующая: В холодильном помещении размещены датчики климат-мониторинга с интервалом замера раз в минуту. Данные эти хранятся в БД SQL Server и заносятся туда другой системой. Собственно рапид дергает эти данные из БД. И задача такая, чтобы пользователь открыл таблицу и смог увидеть все измерения, не формируя никакие отчеты.Еще вопрос родился. Раз табличные представления это плагин, то значит ли что можно полностью изменить структуру табличного представления? То есть записывать новые данные не в каждый последующий столбец, а в каждую последующую строчку таблицы. Так будет удобнее отслеживать большие таблицы.
И где можно найти файл плагина в директории SCADA?DaniilOpushnev
УчастникВсем спасибо, разобрался с кодом скрипта, все заработало!
DaniilOpushnev
УчастникПакет json мне приходит в таком виде:
{ "time": 1688035347, "type": 5, "temp": 251, "hum": 461, "press": 0, "status": 192, "signal": 80 }, приходят они в топик temp/000000000000, где 000000000000 — серийный номер датчика. Если я вас правильно понял, вы предлагаете подписаться на топик temp/000000000000/hum, например, но так работать не будет. А так я и подписан на конкретный топик temp/000000000000.DaniilOpushnev
УчастникКстати, с кодом из примера, передача данных работала частично, то есть, посылал пакет { «Val»: 12.3, «Stat»: 1 } и отображалось в таблице как MyTag = 12.300, значение Stat никак не отражалось.
DaniilOpushnev
УчастникВ примере был следующий код:
var data = JSON.parse(InMsg); jsvals[0].TagName = "My tag"; jsvals[0].Stat = data.Stat; jsvals[0].Val = data.Val;Мой код выглядит так:
var data = JSON.parse(InMsg); jsvals[0].time = data.time; jsvals[0].type = data.type; jsvals[0].temp = data.temp; jsvals[0].hum = data.hum; jsvals[0].press = data.press; jsvals[0].status = data.status; jsvals[0].signal = data.signal;Вроде как отличий по синтаксису нет.
У нас уже есть функционирующий проект на версии 5, поэтому на 6 версию достаточно проблематично перейти, хотелось бы все реализовать на 5.
Может как то влиять настройка входных каналов во вкладке «Система» на отображение значений в таблице текущих данных?
DaniilOpushnev
УчастникP.S.S. При отправке данных не в формате json, показание отображается в таблице текущих данных КП.
-
Ответ изменён 1 год, 1 месяц назад пользователем
-
АвторЗаписи