Ни понимаю почему не ввести новый тип данных JSON и просто парсить его и превращать в обхект. Допусти я подключился переменной sensor_1 к топику и там
{ "temperature": 27, "pressure": 1 }. Сделал это типом JSON и теперь могу указывать sensor_1.temerature. В реале это единственный тип данных который нужно добавить.
Все можно сделать средствами СКАДА. Добавил переменную JSON, и потом добавил под-переменные или свойства и определил их типы. Или можно сделать мета-JSON для такой переменной. Например.
[{
"name": "temperature",
"type": "float",
"sign": "C",
"minimum": "30.2"
},{
"name": "pressure",
"type": "int",
"sign": "Pa",
"minimum": "120"
}]JSON сам по себе уже стандарт. Свойсвто : Значение. Ведь не важно их очередность в документе. И потом если я отправляю данные в тему, то я не буду использовать JSON а просто отправлю чистые данные. JSON нужен для того что бы получать данные с устройств готовых уже сделаных производителям и там уже не поменяешь что ты хочешь получить. Он просто выдет тебе что прописано. В этом случае от все равно фиксированый.
Короче выход можно найти.
Эмм... можете прикинуть здесь содержимое типичного топика которое должна "увидеть" скада, для системы газонополива в 10 зон, которые должны запускаться в определенное время, на х минут, в определенный день недели.
О чем вы говорите? При чем тут 10 зон и ден недели? Это решает программа. MQTT это просто альтернатива передачи данных. И потом для ответа нужно понять кто, что передает. Зачем вообще ей что то видеть? Просто запустите полив на 10 зон раз в неделю, зачем вам что то принимать? Если вы хотите учитывать текущую влажность например, берете датчик влажности, подключаете к контроллеру, и с контроллера шлете эти данные в топик МКТТ а в скаде принимаете, и берете эти данные в расчет.
Бонусом для самого протокола учтите, что кроме скады еще есть визуализация контроллера и 2 панели, с которых могут задаваться те-же параметры одновременно.
Ну в этом и прелесь МКТТ. Если есть контроллер который например получает данные от датчика влажности, применяет фильтра, делает предварительно обсчет, и публикует в топик МКТТ, то и визуализиции, и скады, все смогут подписаться на этот топик, и если нужно изменить то и постить в этот топик.
А еще мне кажется что вы так и не поняли что такое ОРС вообще. ОРС, изначально, вовсе не протокол СВЯЗИ. Это внутренний протокол виндового DDE.
Как в не поймете. Мне все равно что это с технической точки зрения, протокол, буфер, поток, сокет или еще что. Мне вообще нет до этого дела с той перспективы с которой я говорю. Как ОПС решает технически совю задачу это не суть. Суть в том что МКТТ и ОПС решают одну и туже задачу. Они совершенно разные, но сделаны для одного и тогоже и занчит могут друг друга заменить. Это как поезд и самолет. Они вообще по разным средам передвигаются, по земле и по воздуху, разные технические решения, но решают оду и туже задачу, перемещать объекты в пространстве.
И я не спорю что и у того и у другого есть свои приимущества и недостатки, один быстрей, но требует больше ресуров, качественней запчастей, другой дольше но проще в ослуживании и т.д.
По этому ОБА имеют право на существование.
Я не говорю что нужно убрать ОПС. Да пользуйтесь вы ей на здоровье сколько хотите.
Моя идею в том что бы ДОБАВИТЬ МКТТ к тому что уже есть. Надесь моя позиция стала понятней. Пожалйста, не надо мне больше расказывать о том какой ОПС хороший. Я это знаю. Я согласен. Я им сам пользуюсь. Но сегодня мне этого мало. Мне нужно поддержка МКТТ.
Двайте я привиде пример почему. МКТТ кроме устрйоств еще можно использовать в приложениях. Например у меня вебсайт, я на сайте нажал кнопочку и отправил данные в тему, а тема взяла и выключила выход на контроллере. Как такое сделать с ОПС? Как мне из приложения, отправлять данные в ОПС Серевер если мое приложение размещено в облаке вообще? Ипользовать HTTP не всегда безопастно да и не всегда вобще допустимо по тойже причине.
Тоже самое и обратно. Допустим мой ПЛК, получил данные с термодатчика и оправил в топик, мой сайт сможет это прочесть и отобразить а так же скада, визуализация, другой контроллер или несколько конроллеров. Не только сайт. Например я пишу мобильное приложение, для умного дома.