IvanovVladimir

Ответы в темах

Просмотр 15 сообщений - с 16 по 30 (из 45 всего)
  • Автор
    Записи
  • в ответ на: Управление пользователями #43675
    IvanovVladimir
    Участник

    конкретно эти строки B17E4E8B1A2A41B7AE884BC5265D37C5 я уже знаю как шифруются, нашел алгоритм в исходниках, это хеши паролей, а вот остальные символы ( яЮ и* ~> ) уже явно не часть паролей

    в ответ на: Управление пользователями #43674
    IvanovVladimir
    Участник

    Ну так смысл как раз в том чтобы менять данные можно было после передачи а не каждый раз лазить в администратор и там это делать, поэтому я смотрю файлы dat

    в ответ на: Управление пользователями #43670
    IvanovVladimir
    Участник

    Ну вот да, проблема. А сами файлы с информацией о ролях и пользователях хранятся в
    C:\Program Files\SCADA\BaseDAT
    role.dat и user.dat
    их содержимое из блокнота можно открыть, ты даже увидишь имена столбцов и их значения но в перемешку с байтами, которые не определяются
    »
    UserID и* Enabled яЮName Ґ<Password IкRoleID ЕDescr нК= ScadaWeb B17E4E8B1A2A41B7AE884BC5265D37C5 ~> ScadaComm F9A226BC671CB198C7D83ADEA0B1F2B8 b“: admin 1BE2E31C3FAC53701DC7BE55D1891B52 »Z: guest D353B3161AC1FFC43C79CE23FAE333EF V9
    MQTT 5ED0CDB7F51A4C13DB813EA19E9D1FE8 \Ы
    «

    в ответ на: Стартовая страница #43299
    IvanovVladimir
    Участник

    Надо было писать относительный путь, все понял
    ~/Abc/MyPage сработало для меня

    в ответ на: Из MQTT в ModBusTCP #43269
    IvanovVladimir
    Участник

    Спасибо за примеры, пока буду пробовать, завтра или на следующей неделе отпишусь получилось\нет

    в ответ на: Из MQTT в ModBusTCP #43266
    IvanovVladimir
    Участник

    Тогда почему если значение в канале отличается от полученного по mqtt то значение канала modbus меняется сразу, а не в течение минуты? По сути тогда все команды должны проходить с задержкой до минуты

    в ответ на: Из MQTT в ModBusTCP #43263
    IvanovVladimir
    Участник

    Это было бы здорово, я же могу сделать это непосредственно из модуля логики? Можешь подсказать команду?
    В любом случае исходный код я посмотрю, но это немного ускорит процесс)

    в ответ на: Из MQTT в ModBusTCP #43260
    IvanovVladimir
    Участник

    В целом мой метод работает идеально, кроме случая когда я получаю по mqtt такое же значение, как в канале к нему привязанном, не в канале который отправляет данные на плк по modbustcp, а в канале который привязан к данному mqtt. Почему то конкретно в этом случае изменение канала modbus идет с задержкой. Вопрос в том как мне искусственно кодом триггернуть сиюминутное изменение канала modbus и отправки команды на ПЛК? Что такого происходит когда значения канала mqtt отличается от полученного сообщения, чего не происходит когда они одинаковые

    https://disk.360.yandex.ru/i/NDlbF0qTr621dQ

    в ответ на: Из MQTT в ModBusTCP #43259
    IvanovVladimir
    Участник

    Это будет сильно нагружать систему ведь мне придется каждую итерацию опрашивать все каналы и при различии применять изменения, думаю при 5к+ каналов это начнет люто тормозить. В то время как OnCurrentDataProcessed вызывается по событию, что более правильно.

    в ответ на: Из MQTT в ModBusTCP #43257
    IvanovVladimir
    Участник

    Для реализации такого управления я начал писать модуль который будет перебрасывать значения с каналов mqtt на каналы modbustcp, чтобы посредством этого отправлялись команды на ПЛК

    в ответ на: Из MQTT в ModBusTCP #43256
    IvanovVladimir
    Участник

    Есть два канала, 101 и 102
    101 канал привязан к регистру плк через ModBusTCP
    102 канал привязан к значению получаемого пакета MQTT
    Запускаем веб
    101 — 1
    102 — —
    отправляем сообщение по mqtt со значением 0
    101 — 0 (изменена моим модулем)
    102 — 0
    *отправлена команда в ПЛК в связи с изменением значения канала 101
    в вебе изменяем значение канала 101 на 1
    101 — 1
    102 — 0
    *отправлена команда в ПЛК в связи с изменением значения канала 101
    отправляем сообщение по mqtt со значением 0, чтобы отключить регистр в ПЛК ранее включенный через вебморду скады
    101 — 1
    102 — 0
    *ждем до минуты пока сервер просканирует архив (я предполагаю что он это делает)
    101 — 0 (изменена моим модулем)
    102 — 0
    *отправлена команда в ПЛК в связи с изменением значения канала 101
    отправляем сообщение по mqtt со значением 1
    101 — 1 (изменена моим модулем)
    102 — 1
    *отправлена команда в ПЛК в связи с изменением значения канала 101

    То есть ждать отправки команды на плк приходится только в тех случаях когда значение канала 102 совпадает с тем значением что я вновь передаю на него по mqtt

    Алгоритм программы которая мне нужна максимально на самом деле прост:
    1) создается таблица привязок в свойствах модуля, где я указываю из какого канала (Х) в какой (У) мне необходимо передать значение (в примере из канала 102 в канал 101)
    2) при получении нового значения на Х, проверяется есть ли разница между полученным сообщением и значением У
    3) если значения разные то необходимо изменить значение У на значение Х, что должно приводить к немедленной отправки команды на ПЛК

    Если обобщить я хочу иметь возможность управлять ПЛК не только из веб-морды скады, но и используя команды mqtt из внешней системы. Чтобы я мог изменить значение регистров ПЛК как по MQTT, так и непосредственно из интерфейса скады

    в ответ на: Из MQTT в ModBusTCP #43243
    IvanovVladimir
    Участник

    Данная ошибка у меня возникает только с условием, если значение посылаемое по mqtt совпадает с тем значением канала к которому она привязана. Если текущее значение привязанного канала не совпадает с тем, что было получено в команде тогда отправка команды на плк происходит сразу.

    в ответ на: Из MQTT в ModBusTCP #43240
    IvanovVladimir
    Участник

    Уже пробовал, лог получаю аналогичный

    в ответ на: Из MQTT в ModBusTCP #43238
    IvanovVladimir
    Участник

    06.05.2026 16:08:05 Enterprise HaiWell HaiWell — M1 Определён, Вкл
    06.05.2026 16:08:43 Enterprise HaiWell HaiWell — M0 Определён, Вкл
    06.05.2026 16:26:52 Enterprise HaiWell HaiWell — M0 Хороший, Откл
    06.05.2026 16:26:52 Enterprise HaiWell HaiWell — M1 Хороший, Откл
    06.05.2026 16:26:53 Enterprise HaiWell HaiWell — M0 Определён, Откл
    06.05.2026 16:26:53 Enterprise HaiWell HaiWell — M1 Определён, Откл
    06.05.2026 16:27:04 Enterprise HaiWell HaiWell — M1 Определён, Вкл
    06.05.2026 16:27:05 Enterprise HaiWell HaiWell — M0 Определён, Вкл
    06.05.2026 16:27:28 Enterprise HaiWell HaiWell — M0 Хороший, Откл
    06.05.2026 16:27:28 Enterprise HaiWell HaiWell — M1 Хороший, Откл
    06.05.2026 16:27:29 Enterprise HaiWell HaiWell — M0 Определён, Вкл
    06.05.2026 16:27:29 Enterprise HaiWell HaiWell — M1 Определён, Вкл
    06.05.2026 16:27:30 Enterprise HaiWell HaiWell — M0 Определён, Откл
    06.05.2026 16:27:30 Enterprise HaiWell HaiWell — M1 Определён, Откл
    06.05.2026 16:27:43 Enterprise HaiWell HaiWell — M1 Определён, Вкл
    06.05.2026 16:27:43 Enterprise HaiWell HaiWell — M0 Определён, Вкл
    06.05.2026 16:28:28 Enterprise HaiWell HaiWell — M0 Хороший, Откл
    06.05.2026 16:28:28 Enterprise HaiWell HaiWell — M1 Хороший, Откл
    06.05.2026 16:28:29 Enterprise HaiWell HaiWell — M0 Определён, Вкл
    06.05.2026 16:28:29 Enterprise HaiWell HaiWell — M1 Определён, Вкл
    06.05.2026 16:28:29 Enterprise HaiWell HaiWell — M0 Определён, Откл
    06.05.2026 16:28:29 Enterprise HaiWell HaiWell — M1 Определён, Откл

    вот прям логи, тут я игрался со статусами, вдруг это триггер на изменение команды сразу будет, но нет
    там где статус Хороший это отложенная по какой то причине команда на изменение по mqtt, в них видно период ровно в 1 минуту, хотя отправлял я их сразу после включения каналов вручную без mqtt

    2026-05-06 16:26:52 Приём myparam2 = {
    «test»: {
    «i…
    Подписанные устройства: 2
    Hello from JS. Topic: myparam2

    2026-05-06 16:27:11 Приём myparam2 = {
    «test»: {
    «i…
    Подписанные устройства: 2
    Hello from JS. Topic: myparam2

    2026-05-06 16:27:52 Приём myparam2 = {
    «test»: {
    «i…
    Подписанные устройства: 2
    Hello from JS. Topic: myparam2

    в ответ на: Из MQTT в ModBusTCP #43237
    IvanovVladimir
    Участник

    Я уверен что команда отложенная так как ПЛК рядом со мной физически и я смотрю значения непосредственно как в администраторе так и в веб интерфейсе. Еще если действовать по тому алгоритму то в логах будет четко видно, что:
    12:00:00 — получена команда по mqtt
    12:00:39 — отправлена команда на плк
    12:00:43 — получена команда по mqtt
    12:01:39 — отправлена команда на плк
    12:01:23 — получена команда по mqtt
    12:02:39 — отправлена команда на плк

    то есть команда на плк отправляется после команды mqtt, но только ровно в конкретное время с интервалом в минуту, это не то чтобы задержка, это изменение применилось, но сервер его обработал только по минутному таймеру

Просмотр 15 сообщений - с 16 по 30 (из 45 всего)