Передача данных по UDP

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

    Подскажите, пожалуйста, возможно ли в Rapid SCADA 6.4 реализовать дублирование данных, получаемых с физического контроллера, на внешний ПК по протоколу UDP с самостоятельным формированием пакета?
    На данный момент есть собственный драйвер для Communicator, который отображается в списке и успешно отправляет по UDP тестовые данные (значения, сгенерированные в коде). Однако возникла трудность: я не могу получить в коде этого драйвера значения конкретных каналов (например, номера 101, 105, 140…), которые были получены Communicator’ом от основного опрашиваемого устройства, чтобы затем отправить их на внешний ПК. (Передача только по UDP без использования внешних скриптов)

    #42755
    manjey73
    Участник

    Посмотрите исходники, как реализованы механизмы источника данных Коммуникатора для OPC UA и вроде для MQTT.
    Ещё там в источниках данных вроде можно настроить передачу на другой сервер Scada.

    Возможно это поможет в решении.

    #42756
    user
    Участник

    Разрешена только односторонняя передача данных по UDP. Вопрос как сформировать и отправить пакет в Rapid SCADA. Пример (0–1 — 2 байта ‘х’, ‘х’ — Маркер начала; 2–21 — 20 байта — 20 дискретных сигналов (DS) Каждый байт: 0=выкл, 1=вкл, 2=нет; 22–31 — 10 байт — 40 контроллеров (упакованы по 2 бита на контроллер) — Биты: чётный – связь, нечётный – состояние + 40 дискретных сигналов контроллеров (DS) + маркер конца) и другого варианта нету.

    #42757
    manjey73
    Участник

    Вам ИЗ RapidScada в контроллер?

    Может просто формировать пакет драйвером, а в настройках линии указать UDP ?

    Ну и поиграться в драйвере в каждой Сессии выполнять отправку?

    #42760
    user
    Участник

    Разобрался надо делать через модуль сервера, а не через драйвер коммуникатора

    #42761
    manjey73
    Участник

    Ну, по идее можно и так и так, больше зависит от задачи наверное. Если лучше модуль, тогда модуль.

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

    Добрый день!
    На мой взгляд, более правильно сделать через драйвер Коммуникатора, если не нужно передавать расчётные каналы.
    Близкий драйвер: DrvDsMqtt — он публикует данные, полученные Коммуникатором на MQTT-брокер.

    #42781
    user
    Участник

    Спасибо за совет, я его тоже рассматривал, но если нужно публиковать только сырые данные, которые приходят в коммуникатор от устройств, то наверно драйвер (типа DrvDsMqtt). Модуль сервера имеет прямой доступ к любому тегу, независимо от его источника (коммуникатор, формула, OPC, ручной ввод …) что расширяет твои возможности (на перспективу), и в модуле сервера это делается обычным кодом на C# (задача выполнена)

Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
  • Для ответа в этой теме необходимо авторизоваться.