Rapid SCADA 6.х

Просмотр 15 сообщений - с 91 по 105 (из 105 всего)
  • Автор
    Сообщения
  • #21443
    Romiros
    Участник

    Тогда много типов данных должно поддерживаться скадой. Например в драйвере, который сейчас пишу char, byte, string, Int32, Int16, float, double, short, ushort. Не знаю, есть ли в этом смысл на уровне скады?

    #21444
    manjey73
    Участник

    @Romiros при создании структуры на основе каналов, даже если они все будут double смысл есть. Преобразования на уровне ядра достаточно делать только в моменты вызова или передачи структуры.

    #21445
    Romiros
    Участник

    Преобразование на уровне ядра т.е. в формуле? Или ещё какой-то промежуточный слой? Типа отдельная таблица со структурами из номеров каналов, где можно указать тип данных?

    #21446
    manjey73
    Участник

    Да, создаем структуру, с указанием типов данных. Если это отображение на мнемосхеме, ну и пусть себе выводит канал как есть с указанием D.D или DD не важно.
    Но если надо передать в устройство как данные команды, сделать преобразование согласно указанного типа, даже возможно как в Modbus с настройкой перестановки байт например. Так же и при приеме структуры из устройства.

    #21452
    manjey73
    Участник

    @Mikhail по поводу поддержки массивов можно подробнее?

    А то у меня тут и массивы образовались в ПЛК, каким образом их читать и писать в ПЛК и взаимодействовать со Scada ?

    #21453
    manjey73
    Участник

    Например вот такие есть
    ARRAY [0..255] OF WORD указано BitSize 4096 — соответственно 512 байт, как раз 256 значений Word. Если я ее скачаю из ПЛК, то каким образом мне, зная, что это Word запихнуть это в идеале в один канал, чтобы потом из него выводить на мнемосхему, или например изменять ?

    Еще есть ARRAY [0..3, 0..11] OF BOOL а это уже не однорядный массив — как быть с таким ?

    #21460
    manjey73
    Участник

    В КП на линии связи неплохо бы добавить столбцы таблиц

    | Сигнал | Наименование | Значение | Канал |

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

    Bool, Int, UInt, DWord и так далее. При чем с возможностью отключения и включения хотя бы и не на лету а при перезапуске драйвера. При отладке и в целом было бы полезно.

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

    Массив — это последовательность каналов, например, 101…110. При этом в базе просто указывается канал 101 длины 10. Канал может иметь тип Double, Int64, DateTime или строка. Элемент массива 8 байт. Массивы строк не поддерживаются, т.к. длина означает количество каналов, выделяемое на строку.

    Чтобы получить массив из ПЛК, драйвер Коммуникатора тоже должен поддерживать массивы. В частности это будет реализовано в драйвере OPC UA, если OPC-тег является массивом.
    Какой у Вас протокол для обмена данными с ПЛК?

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

    Вы можете сами выдавать информацию по КП, которая будет выводиться в файл, переопределив соответствующий метод. Правда формировать табличку из символов не самое приятное занятие.

    #21464
    manjey73
    Участник

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

    Формирование таблички требует дополнительных пробелов, чтобы не расползалось?

    Собственно если есть намеки на реализацию, поделитесь кодом, как в Коммуникаторе передать в Scada массив С и ПО такой-то каналы.
    Так понимаю, просто надо, чтобы массив был 8-ми байтовым и только?
    Или это только в версии 6 уже будет ?

    • Этот ответ был изменен 4 месяца назад от manjey73.
    #21467
    Mikhail
    Модератор

    Табличка склывается из символов — | + и пробелов. Наверное на данном этапе нет смысла заморачиваться, потому что в 6-й версии код формирования таблички сильно изменился.

    > Собственно если есть намеки на реализацию, поделитесь кодом
    Очень просто:

    DeviceData.SetDoubleArray(TagCode.RA, randomArray, CnlStatusID.Defined);
    

    Взято отсюда

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

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

    #21470
    manjey73
    Участник

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

    #22896
    Madiyar Bakytuly
    Участник

    Добрый день! Прошу Вас добавить след.опций:
    1. Компонент динамический надпись дополнить условием обозначение верхних и нижних пределов и соответственно выбора цвета текста. Данная опция очень важна для контроля критических параметров В Скада системе.
    2. Нужно проработать использование формул с БД PostgreSQL. Данный момент мы используем SQL скрипты. ПО этому прошу расширить возможность использование формул.
    3. Прошу проработать вопрос использование двух Скада системы с возможностями ссылночного перехода и привязки авторизаций 1 Скада системы по всем другим.
    4. Автоматизировать расчет среднего значение для выбранного периода в графике про или в таблице.

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

    Дублируется здесь

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