Ответы в темах
-
АвторСообщения
-
Kazam
УчастникКстати, считаю что архивы с СПТ вообще не стоит хранить в базе данных скады. Только внешнее хранилище.
Я делал так: текущие и тотальные считываться в соответствии с графиком работы КП.
Архивы: часовые раз в час, суточные раз в сутки. Если КП только добавили, то ищем в SQL последний архив и дочитываем, то чего не хватает. Есть обобщенный драйвер с поддержкой:
СПТ 941, 942, 943 (стандартный протокол)
СПТ 941.10 (расширенный, но еще не М4)
СПТ 941.20, 944 (М4).
Выложил бы в паблик, но он слишком заточен под структуру нашего софта, если у кого есть желание поковыряться, могу на почту кинуть. Там еще интеграция с Телеграм, которая у нас сильно востребована.
Пример: сотруднику нужно посмотреть текущие показания по СПТ, он делает запрос боту и получает срез входных каналов)Kazam
УчастникРекомендую избавиться от OPC и опрашивать ОВЕН по протоколу Modbus встроенным драйвером Rapid SCADA.
самый верный ответ )
Технология OPC устарела настолько, что в новых инсталляциях ее вообще не стоит рассматривать. Прямые драйверы показывают существенно большую скорость и гибкость.Kazam
УчастникКаким образом можно изменить для второй и следующих скад-серверов
входную страницу со my_ip/scada/ на например my_ip/scada1/например с помощью ngnix
и можно ли один из скfда-серверов сделать контроллером домена
или нужен специальный маршрутизатор ?роль AD вообще не рекомендуют совмещать с другими ролями или сервисами.
Я бы поступил так: на Hyper-V или ESXi поднял необходимые виртуальные машины ( AD, Scada1, Scada2) — windows, и отдельную машину на Linux ( любой) на нем ngnix и виртуальные каталоги со ссылками на Scada-Web1 и Scada-Web2.
Так вы получите внятную модульность и намек на информационную безопасность )
так будет по Фэн-шуй )Kazam
Участникчисто по опыту общение с Уралтехнологией, скажу так — проще реализовать отдельный драйвер для общения с приборами. Скажите в личку почту, скину нашу реализацию
Kazam
УчастникМожет USB-RS485 конвертеры перегорают и остается одна видимость в диспетчере устройств?
элементарно, по 485 шине что-то прилетело и микросхема склеила ласты. А микро, которая обслуживает USB вполне жива )
Kazam
Участникприкольно посмотреть ) мы такую штуку заказывали у Михаила. А потом допиливали для остальных типов приборов + чтение архивов )
Kazam
Участникименно так
Kazam
Участникчто-то с картинкой не так. Ссылку даю так : https://ibb.co/nksp8jT
Kazam
УчастникНаше вам =)
Приятно, что не я один ковыряю вегу с точки зрения стороннего софта.Прошу простить, что статья про лору еще не вышла. Но есть объективные причины в виде большого количества заказов.
На данный момент разработка КП для работы с LoraWan остановлена в связи с изменением концепции итогового решения.
Некоторые вводные: 230 типовых прибором работающих по ModBus.
Задача: раз в интервал, получать значения регистров с каждого прибора, их интерпретировать и визуализировать. При этом должна быть возможность отправлять запрос на изменения некоторых.
Первоначально была идея использовать прозрачный канал обмена через приложение LoraToTCP. Но при увеличении количества объектов, время сеанса связи возросло до неприличия, да и отсутствие гарантии что ответ будет получен, тоже не торт.
А потому стал внимательно смотреть, на то что предоставляет API.После переговоров с Вегой Абсолют, была выпущена специальная прошивка под ModBus устройства, которая позволяет вписать регистры прямо в модем и он (модем) будет их спрашивать с modbus, а потом выдавать в эфир в виде Lora кадром специального формата (так же согласованного с производителем).
Чего я добился: инициатором сеанса связи стал модем. Что значительно сократило время занятия эфира всей сети (ведь раньше БС постоянно отправляла кадры на каждый модем).
На React JS было написано приложение, позволяющее асинхронно по websocket получать уже обработанные кадры Lora и реализующее логику работы с конечным устройством.Выглядит приложение вот так:
Kazam
УчастникУх ты! Еще кто-то СПТ мучает =))) сорри за офтоп
Kazam
Участникотправил )
Kazam
Участникбыла такая задача у меня. Клонировал 300 мнемосхем, могу скинуть проект на C#
Kazam
Участникесть для ТРМ212, много общего:
<?xml version="1.0" encoding="utf-8"?> <DevTemplate> <Settings> <ZeroAddr>false</ZeroAddr> <DecAddr>true</DecAddr> <DefByteOrder2 /> <DefByteOrder4 /> <DefByteOrder8 /> </Settings> <ElemGroups> <ElemGroup active="true" tableType="HoldingRegisters" address="5" name="Рабочие параметры"> <Elem name="Переход на внешнее управление" type="short" byteOrder="" /> <Elem name="Выходной сигнал регулятора" type="ushort" byteOrder="" /> <Elem name="Запуск\остановка регулятора" type="ushort" byteOrder="" /> <Elem name="Запуск\остановка процесса автонастройки" type="ushort" byteOrder="" /> </ElemGroup> <ElemGroup active="true" tableType="HoldingRegisters" address="4104" name="Оперативные параметры"> <Elem name="Статус" type="short" byteOrder="" /> <Elem name="Измеренная температура" type="float" byteOrder="" /> <Elem name="Уставка регулятора" type="float" byteOrder="" /> <Elem name="Текущее значение уставки" type="float" byteOrder="" /> <Elem name="Выходная мощность регулятора" type="float" byteOrder="" /> </ElemGroup> <ElemGroup active="true" tableType="HoldingRegisters" address="768" name="Параметры регулятора"> <Elem name="Нижняя граница задания уставки" type="short" byteOrder="" /> <Elem name="Верхняя граница задания уставки" type="short" byteOrder="" /> <Elem name="Тип управления при регулировании" type="short" byteOrder="" /> <Elem name="Режим саморегулирования" type="short" byteOrder="" /> <Elem name="Период следования импульсов" type="short" byteOrder="" /> <Elem name="Режим быстрого выхода на уставку" type="short" byteOrder="" /> <Elem name="Полоса пропорциональности регулятора" type="short" byteOrder="" /> <Elem name="Интегральная составляющая" type="ushort" byteOrder="" /> <Elem name="Дифференциальная составляющая" type="short" byteOrder="" /> <Elem name="Зона нечувствительности регулятора" type="short" byteOrder="" /> <Elem name="Скорость изменения уставки" type="ushort" byteOrder="" /> <Elem name="Минимальная выходная мощность" type="short" byteOrder="" /> <Elem name="Максимальная выходная мощность" type="short" byteOrder="" /> <Elem name="Максимальная скорость изменения выходной мощности" type="short" byteOrder="" /> </ElemGroup> </ElemGroups> <Cmds> <Cmd tableType="HoldingRegisters" multiple="true" address="779" elemType="ushort" elemCnt="1" byteOrder="" cmdNum="1" name="Min можность" /> <Cmd tableType="HoldingRegisters" multiple="true" address="780" elemType="ushort" elemCnt="1" byteOrder="" cmdNum="2" name="Max мощность" /> <Cmd tableType="HoldingRegisters" multiple="true" address="2" elemType="ushort" elemCnt="1" byteOrder="" cmdNum="3" name="Уставка" /> <Cmd tableType="HoldingRegisters" multiple="true" address="774" elemType="ushort" elemCnt="1" byteOrder="" cmdNum="4" name="Полоса пропорциональности" /> <Cmd tableType="HoldingRegisters" multiple="true" address="775" elemType="ushort" elemCnt="1" byteOrder="" cmdNum="5" name="Интегральная постоянная" /> <Cmd tableType="HoldingRegisters" multiple="true" address="776" elemType="ushort" elemCnt="1" byteOrder="" cmdNum="6" name="Дифференциальная постоянная" /> <Cmd tableType="HoldingRegisters" multiple="true" address="5" elemType="ushort" elemCnt="1" byteOrder="" cmdNum="7" name="Управление авто\ручное" /> <Cmd tableType="HoldingRegisters" multiple="true" address="6" elemType="ushort" elemCnt="1" byteOrder="" cmdNum="8" name="Выходной сигнал" /> </Cmds> </DevTemplate>Kazam
УчастникСкорее всего, Вы можете не убирать дополнительные столбцы. Они не должны влиять на приложения Rapid SCADA. Но надо пробовать, конечно.
Пробовал. В некоторых случаях работает, а в некоторых нет )) с таблицей входных каналов нет)
-
АвторСообщения