Показано с 1 по 7 из 7

Тема: Массив через OPC

  1. #1

    Lightbulb Массив через OPC

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

  2. #2

    По умолчанию

    Цитата Сообщение от Columbariy Посмотреть сообщение
    Подскажите пожалуйста, как правильно передать массив из плк в скаду используя только 1, ну или несколько тегов.
    Побайтно. Организуйте в ПЛК счетчик переданных байт и передавайте пока не передадите весь массив. В SKADA надо будет сделать разборку принятых байт.

  3. #3
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,656

    По умолчанию

    Счетчик надо как-бы "возвращать" из скады , дабы как-то засинхронизировать обмен.
    И не побайтно , а поэлементно и сразу скажу процесс очень не быстрый .
    Данные в OPC обновились , а (зачем в скаду массив передавать - наверное чтобы загнать его в SQL ) так вот надо время на обмен между скада и ОРС и на запись в б.д.

  4. #4

    По умолчанию

    Дополню. Надо задействовать два тега. Через один передавать в SKADA элемент массива, а через другой номер передаваемого элемента. SKADA должна подтверждать номер принятого элемента.

  5. #5

    По умолчанию

    Элемент массива и его номер должны быть в одном теге иначе фокусов с синхронизацией не избежать. Ведь OPC может опрашивать теги в любом порядке, может группой, а может по одному, потом СКАДА с этого OPC данные тоже может получать по разному, может сама читать, а может по подписке получать при обновлении и тут порядок не гарантируется. А когда тег один то и проблем нет Хотя тут чувствуется желание извратится и сэкономить на лицензиях ).

    В общем я бы использовал такой подход:
    берем тег c размером 2,4 или 8 байт (желательно целочисленного типа, а то кто его знает что там с ним могут OPC сервер со скадой сделать).
    затем в части битов храним номер элемента
    1 бит используем как признак запроса
    а остальные биты используем для данных.
    например: есть массив из 127 элементов типа Byte и его нужно передавать.
    Тогда объявляем один тег типа word. Первые 7 бит в нем номер элемента в массиве, 8 бит - признак запроса от скады, а оставшиеся 8 бит данные.
    Тогда опрос со стороны скады будет выглядеть так - она в этот тег записывает номер нужного ей элемента и в восьмом бите выставляет 1 - признак запроса со стороны скады, а оставшиеся биты обнуляет.
    И далее скада ждет когда в этом теге появится этот же номер элемента со сброшенным признаком опроса (т.е. в 8 бите будет 0). Ну и далее уже обрабатывает полученные данные. Тут только надо предусмотреть, что в этом теге может оказаться другой номер, например 0 т.к. контроллер мог перезапуститься или еще чего.

    Контроллер же тоже анализирует регистр соответствующий этому тегу и ждет когда в нем появится признак опроса от скады и затем размещает в него нужные данные с их номером и сброшенным признаком опроса. Тут еще нужно предусмотреть что могут запрашивать данные которых нет (например у контроллера массив 64 байта а запрашивают 68 байт и т.п.).
    Так же если массив не однобайтного типа а двух и более (например, word, float), то при передаче нужно как то вводить дополнительную защиту от модификации передаваемых данных или использовать теги с большим размером. Иначе может быть следующее, например, передаем по байтам 2 байтный тип типа word. Передали первый байт, собрались передавать второй и в этот момент этот элемент массива меняется. И скада, получив второй байт, получит какую то фигню в место нормального значения.

    А вообще это геморой вот так передавать данные.

  6. #6

    По умолчанию

    ps
    Да вообще для передачи архивов есть же opc hda или нужно именно через opc da такое сделать

  7. #7
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Сменить скаду, например на винсс, там одним тегом может выступать массив простых типов данных

Похожие темы

  1. Прямоугольный массив
    от Columbariy в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 12.02.2013, 13:36
  2. ТРМ148 через OPC на TraceMode6
    от Turistov в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 18.01.2011, 16:31
  3. массив
    от freak в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 01.07.2010, 03:14
  4. OPC через Ethernet
    от powerind в разделе Сетевые технологии
    Ответов: 7
    Последнее сообщение: 03.12.2008, 12:02
  5. Подключение ТРМ101_V03_0023 через OPC
    от незарегистрированный в разделе Сервисное ПО
    Ответов: 16
    Последнее сообщение: 01.02.2008, 14:06

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •