Идеи для V6 и далее

Просмотр 15 сообщений - с 1 по 15 (из 24 всего)
  • Автор
    Сообщения
  • #26081
    manjey73
    Участник

    Давно назревал вопрос о возможности записи нескольких переменных одним запросом.
    Это поддерживают разные протоколы. Modbus, AllenBradley, вот еще облако Owen и наверняка многие другие.

    Как это возможно реализовать в версии 6 или в будущем?

    Еще вопрос по поводу подтверждения Event, нужна возможность получать(отправлять) в драйвер команды подтверждения Event-ов со списком подтвержденных.
    Например это можно использовать так же в драйвере Овен облака и возможно других.

    #26120
    Mikhail
    Модератор

    Отправляйте команду, которая в виде бинарных данных записывает несколько переменных, если драйвер поддерживает множественную запись. Формат данных в команде может быть таким, который Вам удобен. Формирование команды либо вручную оператором (что неудобно), либо с помощью Вашей собственной веб-формы.

    Плагин, который реализует подобную отправку, можно разработать. Но вряд ли он появится сам по себе без конкретного заказа.

    Еще вопрос по поводу подтверждения Event

    События выкачиваются драйвером из устройств?

    #26130
    manjey73
    Участник

    Да, события не только скачиваются при помощи API облака, но их вроде можно и подтверждать так же через API. По этому для Событий в Web было бы неплохо, если бы оно умело через Сервер дать команду Коммуникатору, что события прочитаны (подтверждены)

    #26131
    manjey73
    Участник

    Драйвер Modbus на данный момент поддерживает отправку на запись нескольких переменных каким-либо способом?

    Например Модулем Автоуправления?

    #26151
    Mikhail
    Модератор

    Чтобы отловить квитирование события, потребуется написать небольшой серверный модуль, в котором сформировать команду Коммуникатору. Кроме того, события потребуется однозначно идентифицировать между Rapid SCADA и сторонним облаком.

    В драйвере Модбас одна команда ТУ — один запрос. Если нужно отправить несколько запросов, то значит нужно отправить несколько команд. Это может сделать модуль автоуправления.

    #26156
    manjey73
    Участник

    Нет, речь идет именно об НЕСКОЛЬКО команд — Один запрос. Можно ли это выполнить на текущем драйвере при помощи Модуля Автоуправления и посылке бинарной команды или это глухой номер и надо перепахивать сам драйвер ?

    И такой возможности не хватает во многих вещах уже. Один запрос и много данных.

    #26157
    manjey73
    Участник

    Ну вот на будущее не помешало бы чтобы Web сервер отлавливал Квитирование и отправлял бы через Сервер Коммуникатору какую-то команду типа App.Квитирование(массив квитированных тегов) соответственно только строго по Устройству.

    #26203
    Mikhail
    Модератор

    Нет, речь идет именно об НЕСКОЛЬКО команд — Один запрос.

    Приведите пример, пожалуйста.

    чтобы Web сервер отлавливал Квитирование

    Как я уже написал, событие квитирования обрабатывается с помощью своего серверного модуля.

    #26281
    manjey73
    Участник

    1. банальная команда 0x10 в протоколе Modbus — ей можно записать сразу несколько регистров одним запросом, не только 2 регистра с одним значением float но и 10 регистров, в которых будет 4 float и один int
    И протоколом Modbus это не ограничивается

    2. По поводу Квитирования. Ну есть же из Драйвера создание Event-ов?
    Почему не добавить в Коммуникатор двунаправленные посылки из Сервера в Коммуникатор и обратно?
    Пример, мы жмем Квитирование в Web, это попадает в Сервер, который тут же перенаправляет в Коммуникатор инфу, если Event произошел в канале, связанным с переменной Коммуникатора
    Еще пример, мы отправляем в окне ввода Команду, она попадает в Коммуникатор, почему Коммуникатор не может вернуть обратно состояние выполнения команды и в том числе требуемый текст для отображения на Web ?

    Насколько понимаю, в целом механизмы есть, те же event. Вот просто расширить немного функционал. Тогда можно было бы обойтись без дополнительных формул в Сервере, если за какой-то частью может следить сам Коммуникатор.
    Прислал статус команды «Ок» окно тут же закрылось, либо предварительно сообщило о выполнении команды. Или прислало статус «Error» + текст, который необходимо вывести в окне Команды…

    #26289
    Romiros
    Участник

    А что Вам сейчас мешает реализовать алгоритм с квитированием? Доступ к событиям из драйвера у Вас есть. Отслеживайте нужное событие и при необходимости отправляйте в ответ другое.

    #26294
    manjey73
    Участник

    Откуда у меня доступ к нажатию «Квитирования» в RapidScada из драйвера ?

    #26299
    Romiros
    Участник

    Из события этого канала.

    #26302
    Mikhail
    Модератор

    1. Отправляйте данные в виде массива. Для удобного формирования этого массива можно разработать свой веб-плагин. Однако в драйвере Модбас адрес и размер команды заранее указывается в шаблоне. С технической точки зрения можно реализовать отправку команды с произвольного адреса и произвольной длины.

    2.

    Почему не добавить в Коммуникатор двунаправленные посылки из Сервера в Коммуникатор и обратно?

    В реализации достаточно сложный функционал, поэтому оставим его на будущее.

    #26309
    manjey73
    Участник

    по 2. И чего там сложного?

    пришла команда Коммуникатору, он ее
    а) выполнил и отправил Серверу — ОК + текст (если надо)
    б) не выполнил и опять отправил Серверу Error + текст (если надо)

    Текст есть — кинуть из Сервера Exception в форму ввода команды.
    Текста нет, все как обычно.

    Вот с Квитированием так и не понял, как драйвер, не зная номеров каналов что-то может отследить ?
    Тут как раз Сервер должен ума приложить, Мы нажали Квитирование на канале, сервер получил эти данные, и сразу кинул Коммуникатору соответствующей линии, что такой-то канал был Квитирован, это попало в буфер, Началась Сессия, проверяем есть чЁ нет от Сервера и принимаем какие-то шаги… Все.

    Если Квитировали несколько каналов, то все от одной линии лежат в массиве.

    • Этот ответ был изменен 1 год, 4 месяца назад от manjey73.
    #26311
    Romiros
    Участник

    а, б можете сделать в своем драйвере в виде событий. Я это ещё в пятой версии делал.

    По квитированию. Когда к сигналам коммуникатора привязаны каналы, он о них знает. Кроме того сейчас есть код тега, который будет известен заранее.

Просмотр 15 сообщений - с 1 по 15 (из 24 всего)
  • Вы должны авторизироваться для ответа в этой теме.