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

Тема: Передача времени и даты из Modbus master OPC в MasterScada

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию Передача времени и даты из Modbus master OPC в MasterScada

    Добрый день!

    Modbus masterOPC universal опрашивает устройство и получает от него несколько меток времени. Формат меток: 32 бита, время пересчитано в секундах с начальной даты 0:00:00 01.01.2004 года.

    Требуется передавать эти данные в мастерскаду. В некоторых случаях в скаде требуется только дата (число, месяц, год) в некоторых полная DATE_AND_TIME.
    Как правильней передавать время в скаду?
    Для ОРС напишу скрипт по пересчёту времени, но в какой формат пересчитывать? В ОРС видимо будет uint32.
    В самой Мастерскаде какой тип переменной выбрать для привязки переменной с ОРС? "Время" или "вещественный двойной точности"?
    А далее, чтобы в Мастерскаде из переменной выделить дату добавлять в дерево объекта "Установку метки времени"?

  2. #2

    По умолчанию

    Цитата Сообщение от Al-Al Посмотреть сообщение
    Modbus masterOPC universal опрашивает устройство и получает от него несколько меток времени. Формат меток: 32 бита, время пересчитано в секундах с начальной даты 0:00:00 01.01.2004 года.

    Требуется передавать эти данные в мастерскаду. В некоторых случаях в скаде требуется только дата (число, месяц, год) в некоторых полная DATE_AND_TIME.
    Как правильней передавать время в скаду?
    Наш ОРС сервер не поддерживает передачу типа "Время", поэтому вы можете передавать в скаду количество секунд, а преобразование во время делать уже в секундах.
    Для преобразования во время в MasterSCADA, можно использовать модуль "Расчет". Используйте функцию Int2Date( ) - с ее помощью вы получите 01.10.2004 года. затем прибавьте к результату ваше количество секунд - будет итоговая дата.
    Спасибо.

  3. #3

    По умолчанию

    Спасибо. Буду пробовать сделать так.

    Ещё как вариант, можно передавать часы минуты секунды в отдельных тегах, но нерационально растёт количество тегов (имеется лицензия на 500) и увеличивается время на привязку к переменным СКАДы

  4. #4

    По умолчанию

    Действительно совершенно непонятно почему продукты (Мастерскада и Codesys) - имеют разные типы данных, что требует усилий по конвертированию.
    Так например:
    TIME представляет длительность интервалов времени в миллисекундах. Максимальное значение для типа TIME : 49d17h2m47s295ms (4194967295 ms).
    Формат "Время" Мастерскады нигде толком не описано(не нашел) и он явно больше, так как содержит и год

    Причем в Мастерскаде присутствуют инструменты работы со временем, но не временем ПЛК, а своим типом данных.
    Ниже даю примеры скриптов, конвертирующие одно в другое.
    https://yadi.sk/d/meqCJK5y_zcViw
    С уважением,
    Лапшин Вячеслав

  5. #5

    По умолчанию

    Цитата Сообщение от krollcbas Посмотреть сообщение
    Действительно совершенно непонятно почему продукты (Мастерскада и Codesys) - имеют разные типы данных, что требует усилий по конвертированию.
    Почему это непонятно?

    Цитата Сообщение от krollcbas Посмотреть сообщение
    Формат "Время" Мастерскады нигде толком не описано(не нашел) и он явно больше, так как содержит и год
    OLE Variant Time.
    Для получения времени есть функция Расчет. С ее помощью можно легко получить время из отдельных элементов времени или из UnixTime
    Спасибо.

  6. #6

    По умолчанию

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

  7. #7

    По умолчанию

    Так как она у вас сделана?
    И что нужно в итоге? Когда была остановка режиме исполнения в последний раз?
    Спасибо.

  8. #8

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    Так как она у вас сделана?
    И что нужно в итоге? Когда была остановка режиме исполнения в последний раз?
    Метка времени меняется при подключении устройства (при условии Истина). Необходимо, чтобы после остановки проекта и последующего запуска метка времени (или какая-то переменная) сохраняло то значение, которое было при подключении.

    Пример как должно быть:
    16:00:00 Устройство подключилось, на Вход в метке времени поступил сигнал Истина и метка времени (или какая-то переменная) изменила значение на 16:00:00
    16:05:00 Проект остановлен.
    16:20:00 Проект запущен, у метки времени (или какой-то переменной) значение 16:00:00

  9. #9

    По умолчанию

    Можно в событии с помощью функции OPC Qualtiy отслеживать признак качества переменной прибора. Если она GOOD, то выполняем действием - присваивание текущего времени какой то команде. У команды включаем восстановление при рестарте.
    Мудрить с меткой времени - смысла нет, если вы опрашиваете Modbus устройство, то разница будет небольшая.
    Спасибо.

Похожие темы

  1. Передача журнала событий (файла) из ПЛК в OPC через модем
    от Alex12345 в разделе Сетевые технологии
    Ответов: 0
    Последнее сообщение: 14.05.2015, 12:51
  2. трм132+Master OPC+ MasterSCADA. Есть проблема.
    от ganz72 в разделе Master SCADA
    Ответов: 27
    Последнее сообщение: 25.08.2014, 16:31
  3. Ответов: 7
    Последнее сообщение: 19.06.2014, 10:35
  4. СП20 передача даты и времени в ПЛК
    от Михаил74 в разделе Панели оператора (HMI)
    Ответов: 0
    Последнее сообщение: 14.01.2012, 14:11
  5. Передача времени и даты с ИП320 нп ПЛК154
    от ksn33 в разделе Панели оператора (HMI)
    Ответов: 3
    Последнее сообщение: 31.08.2009, 19:50

Ваши права

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