Ответы в темах
-
АвторЗаписи
-
talbutdinov
УчастникЕще вопросик: как можно получить из текущего подключения данные, а именно Host, TcpPort, а также пользовательские параметры линии.
talbutdinov
УчастникПерезалил все на сервер вручную, окно со свойствами так и не отображается, но попытка вставить данные в архив уже начала работать, но с ошибками, с чем прошу помочь разобраться. Описаний работы с переменными и классами нет, так что методом тыка.
Итак собственно код, что в нем не так может подскажите:
base.Session(); TagSrez srez = new TagSrez(1); srez.DateTime = DateTime.Now; srez.KPTags[1] = KPTags[1]; SetCurData(1, 1, 1); srez.TagData[1] = curData[1]; srez.KPTags[2] = KPTags[2]; SetCurData(2, 2, 1); srez.TagData[2] = curData[2]; srez.Descr = "Дата обновления " + DateTime.Now; AddArcSrez(srez); CommLineSvc.FlushArcData(this); CalcSessStats();Если я все правильно понял, то этой строкой создаем срез
TagSrez srez = new TagSrez(1);только не совсем ясно что за параметр (1) и что он означает.Дальше в срезе указываем ссылки на свои теги
srez.KPTags[1] = KPTags[1];
Дальше задаем значение, только не совсем понял для чегоSetCurData(1, 1, 1);
Дальше присваиваем заданное значение в срезsrez.TagData[1] = curData[1];Вот такая ошибка в итоге у меня получается:
2019-06-24 17:09:40 Ошибка при выполнении сеанса опроса КП 1 "Прачка": Index was outside the bounds of the array.Подскажите пожалуйста где я что-то не так сделал?
talbutdinov
УчастникВсе нашел, спасибо! Теперь еще один вопрос по драйверам. Первоначальную версию 1.0.0.1 я загрузил в коммуникатор для тестирования без формы настройки, просто для теста. Все подгрузилось и все отображалось. Далее я добавил форму настройки и вывод тестовых значений и обозвал версией 1.0.0.2 и перезалил в коммуникатор. Такое ощущение у меня, что версия не изменилась в конфигурации так как при нажатии на кнопке свойства выдает сообщение, что такого нет в данном драйвере, а значения тестовые так и не выводятся. Как правильно менять одну версию драйвера на другую?
talbutdinov
УчастникВега хорошо описывает свои устройства, в частности:
API по работе с сервером http://iotvega.com/content/ru/soft/server/API%20VEGA-lora%20rev23.pdf
Описание устройства и его пакетов http://iotvega.com/content/ru/si/si11/01-%D0%92%D0%95%D0%93%D0%90%20%D0%A1%D0%98-11%20%D0%A0%D0%9F_rev%2021.pdftalbutdinov
УчастникИтак, изучив некоторые материалы, переосмыслив все, возвращаюсь к теме. Я программист со стажем, но в части SCADA систем ранее не работал, и буду иногда писать «глупые» вещи, так что прошу отнестись с пониманием. Для того чтобы начать писать драйвер для устройства, которые мы используем, я для начала хочу описать логику работы всего комплекса, чтобы возможно вы меня поправили.
За основу взято оборудование производства компании Вега-Абсолют, которая поставляет вместе со своими устройствами и серверную часть. Сначала я посмотрел, что есть драйвер подключения к БД напрямую, но отказался от этого варианта, так как сервер Вега может использовать распределенную систему БД и не будет возможность отправлять команды в устройства.
Сначала, если я все правильно понял, идет Линия связи, которая создается в режиме TCP-клиент и подключается к серверу. По сути это будет простое подключение к ресурсу, который принимает запрос и отдает ответ в формате JSON, попросту говоря web-страница. На линии оставаться не будем, подключились, получили данные отключились. В параметрах линии прописываем логин и пароль для подключения и получения данных от устройства.
Дальше за работу берется КП (те само устройство), которое по выбранному каналу связи через выбранный драйвер осуществляет забор информации. Если рассматривать для начала устройство СИ-11, оно имеет 4 входных канала, считает импульсы на этих каналах, а потом с заданным интервалом в виде пакета передает на сервер, пусть будет один час. Так как адрес КП задается только целым числом, а адрес устройства выглядит типа ‘383336385A368B0F’, то прописываем его в позывной. В настройках коммуникатора мы указываем, что период опроса устройства 1 час.
Далее мы создаем линии из КП, описание количества входных каналов и каналов управления я так понимаю будут описаны в драйвере, разработкой которого планирую заняться. По сути, через драйвер в определенный момент времени я буду через JSON забирать пакет, разбирать его и значения раскидывать по выходным каналам. У СИ-11 их 4 счетчика + он отправляет температуру и состояние заряда батареи, т.е. 6 входных каналов, каналов управления нет.
По сути все, раз в час он будет подключаться, брать у сервера пакет, разбирать его, отправлять данные в каналы и отключаться. Если что-то не так описал в логике, поправьте пожалуйста. Если верно мыслю, буду начинать разработку драйвера.
talbutdinov
УчастникОднозначно придется! Очень хочется этим заняться. На сегодняшний день имеется развернутый сервер Веги, который дает возможность получать данные с БД сервера по API посредством JSON. Уже вытаскиваем необходимые нам данные посредством PHP, те логика запросов к серверу и разбора ответов ясна, нужно только это переложить в драйвер. Есть мануал по написанию драйверов?
talbutdinov
УчастникПрозрачный режим не всегда к сожалению подходит, особенно при использовании стандартных приложений для обмена данными с устройствами, так как таймаут обычно не настроен на такой длительный период ответа. По этому и интересно направление, когда отправляется запрос и опрос ответа происходит через некоторое время, возможно уже в виде пакета с данными с сервера LoRaWAN. Тем более в ЛоРе есть устройства, которые не опрашиваются, а самостоятельно в определенный период отправляют данные на сервер в виде пакетов, что тоже с одной стороны удобно, остается только брать пакеты с сервера, разбирать их и отображать.
talbutdinov
УчастникВот пустая моя голова! Спасибо, все заработало!
talbutdinov
УчастникДоброго времени суток! Планируется ли размещать статью по поводу связи с устройствами LoRaWAN? Очень интересно посмотреть результат, так как на самом деле технология сбора данных по данному протоколу специфична и имеется ряд ограничений:
1. Некоторые устройства самостоятельно отправляют пакеты на сервер, который занимается опрос устройств по данному протоколу и обратиться к ним напрямую нельзя, можно лишь брать данные в виде передаваемых пакетов из архива сервера по АPI и разбирать их.
2. Очередность опроса устройств тоже вносит свои коррективы, так как нет возможности опрашивать несколько устройств сразу, только если устройства подпадают в радиус действия нескольких базовых станций. Таким образом при запросе данных с устройства (как вариант через функцию прозрачного модема), время ответа будет зависеть не только от время отклика самой сети, но и от очередности выполнения запросов.
3. Некоторые устройства (например вычислители) имеют как показания на текущий момент, так и архивные данные (например часовые), которые тоже необходимо подтягивать для анализа ситуации.
Если что-то получилось, если можно, поделитесь опытом.talbutdinov
УчастникДоброго времени суток! Подскажите как правильно настроить Конфигуратор для связи с сервером. В Конфигураторе прописал все данные, но там идет ссылка на порт 10002, на сервере он не открыт. Серверная часть установлена на Ubuntu. Читал про то, что для работы конфигуратора нужен Агент, но на серверной части его не нашел. Подскажите, в какую сторону двигаться!
-
АвторЗаписи