VladimirISвот это и пытался понять, следовательно если делать плагин с возможностью вызова нескольких экземпляров, то плагин сам должен уметь работать с любым количеством приборов на одной линии (одном COM порту).Никаких надстроек, опрос выполняет сам плагин
Второй экземпляр можно запустить только если другие приборы подключены к другому COM порту и так далее.
То есть в плагине надо думать как разруливать опрос нескольких приборов в одном экземпляре.
Вы точно понимаете, что такое bcd формат? байты 12 34 56 - это число 123456
Не шестнадцатиричная и десятичные системы parseInt( dec.toString(10),16); или я что-то не догоняю...
Изменять динамически можно?, добавлять записи в форме, удалять?Для вывода вкладки Параметры плагина используется formPluginCommon.json
IVMможет мама с папой ?И что вас сподвигло обосноваться в Чебоксарах ?
Последний раз редактировалось melky; 12.01.2022 в 23:08.
Если это один COM порт, вариантов нет. Что там можно разрулить кроме последовательного опроса. А вот порядок, в котором нужно опрашивать, зависимые запросы на уровне прикладной логики можно делать как того требует конкретное оборудование
Но это тоже достаточно просто. Правда одной строкой возможно не обойтись. Хотя давно не сталкивались.
Вы, вероятно, не совсем уловили суть: это ФОРМА для ввода, запись получается в результате. А вот поля - да, можно показывать и скрывать динамически в зависимости от значений других полей на форме. Это свойство hide, там нужно написать условное выражение.
Можете, опять же, посмотреть для примера форму плагина Modbus - для TCP на экране одни параметры, для RTU - другие.
Последний раз редактировалось VladimirIS; 13.01.2022 в 09:12.
Simple-Scada даже не Краснодар а в какой-то станице края...
Нет, меня интересует именно редактирование строк, кроме просто установки галочки "Использовать тег" или нет, необходимо редактирование.А вот поля - да, можно показывать и скрывать динамически в зависимости от значений других полей на форме
В Winform сейчас ковыряю для этого DataGridView, то есть могу в настройках драйвера создавать, редактировать шаблон устройства. До этого я просто создавал его руками в XmlNotePad ну или можно просто в текстовом редакторе.
Но у вас система Web полностью, в том числе и административная часть, вот и интересует, как быть в данном случае ?
На счет разруливать в плагине опрос нескольких однотипных устройств на одном Com порту в рамках запущенного экземпляра это не есть хорошо. Так как кроме разруливания нескольких устройств еще необходимо разруливать по времени опросы в одном устройстве. Плохо, что у вас нет какого-то арбитра для этого.
Ну пример, счетчики электроэнергии, если читать их для мониторинга сети, то постоянное чтение должно быть мгновенных значений (ток, напряжение, мощность, косинус и т.д.), читать при этом показания затраченной электроэнергии достаточно раз в час или в полчаса.
Ну и минимальный вариант - 2 ввода = 2 счетчика.
И все это надо разрулить в одном экземпляре плагина.
Счетчики это только пример, достаточно много приборов, чтение которых работает по похожему принципу. Еще можно добавить чтение параметра по запросу (всякие конфигурационные параметры приборов, которые читать даже раз в сутки не требуется), это третий вариант.
Вот если сделаете подобного арбитра, цены не будет. Правда тогда каждый экземпляр плагина будет отвечать за свой прибор, даже если несколько экземпляров будут запускаться на одном Com порту. Ну правда тогда нужны общие переменные для нескольких экземпляров, запускающихся на одной линии и точное понимание очередности запусков.
На счет редактирования, объясню. Modbus тот же, он достаточно унифицирован, можно придумать как будет выглядеть форма.
Но есть масса протоколов, где нет унификации, и к тому же, если используется ПЛК какой-нибудь свободнопрограммируемый, где разработчик что придумал, то и получилось...
Еще момент. Возможность загружать библиотеки C++ желательно с определением архитектуры и ОС и использовать функции из библиотек... Это доступно в NodeJS ?
Последний раз редактировалось melky; 13.01.2022 в 10:49.
Боюсь спросить, вы ответы читаете или просто генерируете вопросы, исходя из проблем с вашей десктопной скадой под Windows?
Да, можете, для этого редактируете не XML, а (сюрприз-сюрприз в 21 веке) json прямо через web интерфейс админки.
Не вижу ничего плохого. В закрытой части у нас есть плагины для некоторых счетчиков и частотников, которые по несколько лет работают у наших заказчиков.
Все работает без проблем.
Давайте составим общий план плагина (для простоты без обработки ошибок, хотя это очень важная часть):
1. При запуске запросить параметры у сервера.
Открыть порт, применив полученные параметры - РАЗРАБОТЧИК САМ ОПРЕДЕЛЯЕТ, какие параметры ему нужны
2. Разобраться с каналами (варианты также можно включить как опцию в параметры, например):
Вар 1 - Запросить список каналов с сервера - РАЗРАБОТЧИК САМ ОПРЕДЕЛЯЕТ шаблон канала
Вар 2 - Передать широковещательный запрос для нахождения устройств на шине, обработать ответы.
Передать список доступных устройств (каналов) на сервер, они появятся в админке
3. Выполнить какие-то операции по регистрации/инициализации.
4. Построить план опроса - ну вот это все:
5. Запуск основного цикла, например, так:
- взвести таймер на час/полчаса, или прямо на границу часа (чтобы снять значение ровно в xx:00)
- взвести таймер с минимальным периодом опроса
- Запустить чтение для первого устройства по минимальному таймеру
Ну вот, что и требовалось доказать. Именно поэтому встраивать все известные протоколы/способы опроса и обработки буферов/etc в ядро - это путь в никуда.
У меня предложение - если у вас действительно есть интерес к IntraSCADA - установите систему и посмотрите, что к чему.
Если же просто для общения - время сегодня самый ценный ресурс
сюрприз-сюрприз в виде json это необходимость в некоторых случаях, а не панацея. откровенно говенный стандарт по моему мнению, но придется с ним разбираться...
вот по 2. Да, передать список каналов серверу, но, в случае изменения каналов (например я решил через полгода исключить из опроса часть каналов) чтобы каналы в сервере никуда не сместились а продолжали записываться куда им положено.
Нет, встраивать протокол в ядро не планируется как раз. Пытаюсь понять схемотехнику того, что есть сейчас и как придется переделывать свои наработки...Ну вот, что и требовалось доказать. Именно поэтому встраивать все известные протоколы/способы опроса и обработки буферов/etc в ядро - это путь в никуда.
На счет установки, сейчас разгребусь с Бекхоффом, и как освобожусь, буду ставить и пробовать. Где-нибудь февраль-март месяц. Саму систему возможно на домашнем ПК поставлю раньше чтобы посмотреть... Меня больше волнует само программирование, так как NodeJS как и JavaScript в новинку будет.
А в исходниках у вас нет ни одного примера плагина с COM портом, более простого, чем Modbus имеется ввиду.
Ну и выше спрашивал, как и на чем прогать в NodeJS на Windows, так как не планируется ставить Linux специально для этого.
Есть ли режимы отладки, подсказок, аналогичные той же Visual Studio.... А то из меня программист не очень, ибо не проходил обучений и многих вещей просто либо не знаю, либо доходчиво никто не может объяснить...
А по опыту, при поиске решений либо примитивы на msdn либо от горе блоггеров программистов и все те же примитивы, только переобозванные. Пока найдешь на просторах в горе мусора решение, много времени уходит.
Блин, речь не об экземплярах, с этим понятно, речь об опросе нескольких устройств в рамках одного экземпляра.
В вашем случае это надо предусматривать внутри плагина, так как нет "арбитра", который бы разные устройства опрашивал бы через один экземпляр, так как линия одна. Ну тот же COM порт и несколько устройств на нем.
С пониманием протоколов у меня нет проблем, есть устройства, есть документация. Проблемы есть с пониманием того, как все организовать в системе, чтобы обеспечить именно свой способ опроса исходя из опыта и хотелок...
Последний раз редактировалось melky; 13.01.2022 в 13:27.
VladimirIS у вас есть пример настройки 2-х или более устройств на одном COM порту? то есть работа в одном экземпляре с несколькими устройствами
Ну и показать в плагине Modbus где реализация этого ? можно имя файла(ов) исходника, смотри строки с ... по ... ??
Аналогично для COM over TCP