1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Регистрация данных

Unity Pro (Control Expert), Quantum, Premium, M340, M580, Hybrid DCS, Process Expert, Zelio, Twido, M17*, M2**, SCADAPACK, SoMachine, MachineExpert, ZelioSoft, TwidoSoft, TwidoSuite, TelePace

Модератор: Специалисты SE

Ответить

Автор темы
OOOleg
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 07 фев 2019, 15:24
Имя: Олег
Страна: Молдова

Регистрация данных

Сообщение OOOleg »

Как сделать регистрацию данных с контроллера(TM241) на СД-кард ?

MaksimNT
освоился
освоился
Сообщения: 262
Зарегистрирован: 31 авг 2012, 06:30
Имя: Фоменко Максим Анатольевич
Страна: РФ
город/регион: гор. Нижнйи Тагил, Свердловской обл.
Благодарил (а): 3 раза
Поблагодарили: 76 раз

Регистрация данных

Сообщение MaksimNT »

Смотреть главу 22 в
http://www.electrocentr.com.ua/files/do ... 016_ru.pdf

в ветки есть ссылка на ресурс :ext_baby:
viewtopic.php?t=9587

там есть примеры :ext_secret:

se_sib
освоился
освоился
Сообщения: 281
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 5 раз
Поблагодарили: 74 раза

Регистрация данных

Сообщение se_sib »

1) Запись в log файлы.
В Somachine есть конфигуратор для создания и настройки лог файлов + ФБ и структуры для работы с ними(выполнение записи, принудительная выгрузка в файл из буфера ОЗУ, проверка наличия записей в ОЗУ...).
Запись строковых переменных в формате WSTRING(можно на русском).
SoMachine - Data Logging Functions DataLogging Library Guide: https://www.schneider-electric.com/en/d ... 000000551/
2) Запись в csv файлы.
Доступно с SoMachine V4.2, выполняется с помощью ФБ из библиотеки FileFormatUtility
Запись строковых переменных в формате STRING(только на англ.).
SoMachine - FileFormatUtility, Library Guide
https://www.schneider-electric.com/en/d ... 000002530/

Прикрепил пример проекта с записью в лог файл, с симуляцией из Веб-визуализации и просмотром лог файла в текстовом редакторе.
M241_LoggingEvents_V2.zip
У вас нет необходимых прав для просмотра вложений в этом сообщении.

beastmaster
освоился
освоился
Сообщения: 214
Зарегистрирован: 08 дек 2016, 11:55
Имя: Сергей
Страна: Россия
Благодарил (а): 24 раза
Поблагодарили: 8 раз

Регистрация данных

Сообщение beastmaster »

Немного усложню задачу. Если например часть данных поступает по Modbus RTU, и их нужно увязать с таблицей системы координат (которая задается один раз для всего проекта и которая жестко привязана к каждому значению данных, получаемому по ModBus). Причем данные, получаемые по ModBus могут меняться для одной и той же точки системы координат при каждом новом поступлении. Т.е. ПЛК посылает на устройства в сети ModBUS запрос на считывание данных, после получения данных записывает их в массив, где помимо координат и значений присутствуют еще метки даты и времени записи. И каждый такой запрос-получение данных нужно отдельно записывать, чтобы потом иметь возможность считать эти данные для обработки. Возможно ли такое в принципе выполнить в SoMachine?

se_sib
освоился
освоился
Сообщения: 281
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 5 раз
Поблагодарили: 74 раза

Регистрация данных

Сообщение se_sib »

beastmaster писал(а): 13 дек 2019, 16:46 Немного усложню задачу. Если например часть данных поступает по Modbus RTU, и их нужно увязать с таблицей системы координат (которая задается один раз для всего проекта и которая жестко привязана к каждому значению данных, получаемому по ModBus). Причем данные, получаемые по ModBus могут меняться для одной и той же точки системы координат при каждом новом поступлении. Т.е. ПЛК посылает на устройства в сети ModBUS запрос на считывание данных, после получения данных записывает их в массив, где помимо координат и значений присутствуют еще метки даты и времени записи. И каждый такой запрос-получение данных нужно отдельно записывать, чтобы потом иметь возможность считать эти данные для обработки. Возможно ли такое в принципе выполнить в SoMachine?
Отдельно записывать, т.е. каждый раз создавать новый файл?
Я думаю тут проблема может быть только в скорости записи. Как часто нужно выполнять запись?
Формируете массив для записи и выполняете запись в один файл, либо каждый раз в новый файл.

Обновленное руководство EcoStruxure Machine Expert - FileFormatUtility, Library Guide
https://www.se.com/ww/en/download/docum ... 000002785/

Пример из руководства:
CSV_Write_1.PNG
CSV_Write_2.PNG
У вас нет необходимых прав для просмотра вложений в этом сообщении.

beastmaster
освоился
освоился
Сообщения: 214
Зарегистрирован: 08 дек 2016, 11:55
Имя: Сергей
Страна: Россия
Благодарил (а): 24 раза
Поблагодарили: 8 раз

Регистрация данных

Сообщение beastmaster »

Спасибо за пример. Может быть и новый файл. Дело в том, что по ModBus нельзя одновременно получить данные со всех устройств, ведь опрос идет в порядке некоторой очереди, верно (запрос на первое устройство - получение ответа, проверка ответа, запрос на второе устройство и т.д.)? Т.е. временные метки для каждого последующего устройства будут отличаться на время, необходимое на тот самый запрос-ответ. Значит, для каждого цикла считывания нужно будет записывать время, скажем с точностью до 1 минуты (время, более цикла опроса), и эти данные записывать. Тут неверное предпочтительнее все писать в один трехмерный массив, с осями "Дата", "Время" и "Координаты". И если при такой периодичности данные будут писаться в течение года для скажем 100 опрашиваемых устройств, по 32 точки данных с устройства, т.е. 3200 точек данных в минуту, получим 3200*60*24*8760=40 366 080 000 записей, если я все правильно понимаю. Вот я и думаю, справится ли с этим ПЛК, или для записи предусмотреть какой-нибудь промышленный ПК? Я с программированием только разбираюсь, просто рассматриваю теоретическую возможность решения данной задачи, поэтому прошу не сильно ругаться, если мои заключения некорректны.

ogorsv
завсегдатай
завсегдатай
Сообщения: 577
Зарегистрирован: 02 дек 2015, 06:57
Имя: Огородников Сергей
Страна: РФ
Благодарил (а): 120 раз
Поблагодарили: 103 раза

Регистрация данных

Сообщение ogorsv »

Тяжело рассуждать про сферическую лошадь в вакууме.
Что вам дальше нужно делать с полученным массивом данных?
Просто держать на карте? Быстрее всего нет
Обозначьте полную задачу

Если объём данных слишком велик (даже для хранения, например, на SD-карте), рассмотреть можно:
- возможности SQL-клиента (новая опция появилась)
- SCADA с базой данных
СВ

se_sib
освоился
освоился
Сообщения: 281
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 5 раз
Поблагодарили: 74 раза

Регистрация данных

Сообщение se_sib »

M241 вряд ли потянет, слишком много операций с строковыми переменными, а вот M262 может.
Но я думаю это не лучший вариант, все же это не специализированный регистратор данных.
Просмотр только через текстовый редактор в Веб-визуализации ПЛК или использовать функции чтения из файла и в массив перекладывать, ну или выгружать файлы с ПЛК и смотреть в каком-нибудь ПО на ПК.
Для Log файлов используется по 2 байта на символ, для CSV используется по 1 байту на символ, в обоих случаях длина строки ограничена 255 символов. В вашем случае если только писать для каждого устройства 32 значения в отдельный файл, ну или с 2 устройств в файл, в зависимости сколько знаков для одного считываемого параметра.
Например 32 параметра по 3 знака это 96 символов + дата + время + разделители = примерно 144 символа. В случае с Log это 288 байт в минуту, в случае с CSV 144 байта в минуту.
Например для CSV 144 x 60 x 24 x 365 = 76Мб в год для 1 устройства, для 100 это 7,6 Гб.

Лучше ПК + SCADA + разбить RS485 сеть(если это возможно) на 3-4 сегмента.
Ответить

Вернуться в «ПЛК»