PDA

Просмотр полной версии : ПР и база данных



Vadik2881
15.03.2026, 08:38
Ребята привет. Тут задачка возникла. Надо с ПР225 у которой есть Ethernet, данные (10 регистров) периодически сохранять через сеть на сервере.
Подскажите кто как решал. В принципе это делается через Simple Scada которая уже есть. Так же есть arOPС сервер.
Нужно так что бы на ПР нажать ввод и данные с числом, датой, временем - записались в файл.

melky
15.03.2026, 09:05
Ну и сделайте контроль булевой переменной из scada, если в пр true, scada что-то вычитывает и сохраняет в файл и потом сбрасывает вашу переменную в пр в false.

Vadik2881
15.03.2026, 10:20
Да, и так у меня уже работает передача данных с плк s7-1200. Но у него хотя бы встроенный OPC.
А в варианте с ПР ещё опс придётся задействовать. В общем рабоче, но громоздко.
Подумал, может есть какие готовые приложения для работы непосредственно с ПР...
А owencloud не поможет в данной задаче?

melky
15.03.2026, 12:35
А при чем тут Клауд?
Ну вы сами выбрали скада, которая с Модбас умеет работать только через ОРС

Собственно, если скада уже его читает, и записать надо те же регистры, которые уже читаются, то у вас добавляется всего одна переменная. Если же это новые регистры, тогда не знаю. Есть ли там чтение по команде, хватит ли места в пр и т.д.

Vadik2881
15.03.2026, 14:22
Да хотелось бы сделать более интересно).
Немного помониторил, в принципе есть готовые скрипты на том же питоне для чтения регистров modbus tcp. И можно читать данные с периодичностью.
В принципе для моей задачи и даже может подошло бы.
Но в идеале ПР мастер и она должны давать запрос на запись.
Это я сейчас гадаю конечно, но получается ПО на компьютере должно постоянно мониторить регистр записи и как только он true произвести запись данных?

EFrol
15.03.2026, 17:07
Запись в файл или в базу данных?
А записываю прямиком в MS SQL через Lectus (https://insat.ru/lectus/lectus-modbus-opc-server/)

Vadik2881
15.03.2026, 17:14
Запись в файл или в базу данных?
А записываю прямиком в MS SQL через Lectus (https://insat.ru/lectus/lectus-modbus-opc-server/)
Вот! С ПР без проблем?
Не работал с базами, но видимо можно попробовать и туда.
Так а какой принцип записи, кто тригер расскажите пожалуйста?

EFrol
15.03.2026, 18:39
Я создаю в Lectus узел, как сервер ModbusTCP (если у ПР есть Ethernet) или узел, который работает как Slave-устройство для ПР (подключаю через АС4 или любой преобразователь Ethernet - RS485). Узлу даю имя, например "Server". В него добавляю нужные переменный (тип, адрес и указываю куда дублировать записанное значение).
Добавляю еще один базовый узел с именем "SQL" и добавляю те же переменные, но с типом "SQL".
Для каждой переменной можно записать скрипты на Transact-SQL для чтения и для записи значения.
Получается, что как только ПР запишет новое значение в Modbus-переменную, Lectus дублирует это значение в SQL-переменную, вызывая, например скрипт
INSERT INTO myTable (val1) VALUES (Item(<переменная>))
который вставляет запись в таблицу myTable, в которой в поле val1 запишет значение Modbus-переменной.
Я использую хранимую процедуру (EXEC SetValue Item(<переменная>)), которая выполняет всякую дополнительную обработку:
- разложение на биты
- масштабирование
- преобразование
- округление
- логирование
- передача в другую SQL-переменную
короче всё что умеет Transact-SQL.

Далее уже 1С программисты выуживают из SQL что им надо.
Формируют графики, журналы и отчеты.

Ещё можно из SQL записывать в ПР.
Lectus может подключаться к OPC-серверам как OPC-клиент и перегонять из Modbus в не-Modbus.
Т.е. приборы, которые имеют свой хитрый протокол и свой OPC-сервер, тоже можно подключить к Lectus
и данные перегонять в SQL и обратно.

Vadik2881
18.03.2026, 08:22
Да, вариант крутой но и не простой...
Вообще, в идеале, что бы ПР писала на свою флэшку, а когда нужны данные - подключаться и скачивать, как в обычном автомобильном регистраторе.
Не, не вариант?

melky
18.03.2026, 10:05
а у ПР есть флешка? :)

з.ы. посмотрите варианты журналов Аварий для ПР. Я делал на макросах от Сергей308 на 16-ть записей.
в Scada я вижу последнюю и ее время. На экране ПР могу выбрать и посмотреть по журналу.
Время передавал в UTC - два регистра. + регистр на битовые аварии потом разложить. Изменение любого бита приводит к новой записи.

з.ы. могу поделиться, но версия ОЛ старая, я не обновляюсь.
И кстати где-то выкладывал свой вариант аварий на 16 записей в тех темах про аварии.

EFrol
18.03.2026, 10:10
Да, вариант крутой но и не простой...
Вообще, в идеале, что бы ПР писала на свою флэшку, а когда нужны данные - подключаться и скачивать, как в обычном автомобильном регистраторе.
Не, не вариант?

Я использую бюджетный аналог МСД200 (https://owen.ru/product/msd200) (на базе esp8266).

Vadik2881
18.03.2026, 15:35
Я использую бюджетный аналог МСД200 (https://owen.ru/product/msd200) (на базе esp8266).

Он как понял только USB и интеграция с ЛВС затруднительна...

Vadik2881
18.03.2026, 15:35
а у ПР есть флешка? :)

А ты ж точно... Переоценил пр225

EFrol
18.03.2026, 16:18
Я использую бюджетный аналог МСД200 (https://owen.ru/product/msd200) (на базе esp8266).

Можно и в ЛВС https://owen.ru/forum/showthread.php?t=40983&p=458372&viewfull=1#post458372
Аналог имеет WiFi.