Запись данных с внешнего устройства cRIO
-
- beginner
- Сообщения: 30
- Зарегистрирован: 20 мар 2011, 15:43
- Версия LabVIEW: 2010
- Контактная информация:
Запись данных с внешнего устройства cRIO
Здравствуйте!
Подскажите пожалуйста в таком вопросе. Нам необходимо записывать данные с внешнего устройства через cRIO-9074 и модули 9208 (http://russia.ni.com/sites/default/file ... %D0%B8.pdf) и 9213 (термопарный модуль). Но при программировании FPGA есть не все функции записи в файл. Задача состоит в следующем: есть установка (ГТД) и с нее надо снимать показания (ток, напряжение, частота, вибрация и температура). Эти параметры необходимо записывать в отчет, хотя бы в текстовый файл (желательно в форме таблицы). Также необходимо сделать привязку ко времени, т.е. чтобы каждое измерение сопровождалось временем измерения. Подскажите пожалуйста как можно организовать запись в таком случае? Если не сложно то приведите пожалуйста код программы, буду очень благодарен.
Подскажите пожалуйста в таком вопросе. Нам необходимо записывать данные с внешнего устройства через cRIO-9074 и модули 9208 (http://russia.ni.com/sites/default/file ... %D0%B8.pdf) и 9213 (термопарный модуль). Но при программировании FPGA есть не все функции записи в файл. Задача состоит в следующем: есть установка (ГТД) и с нее надо снимать показания (ток, напряжение, частота, вибрация и температура). Эти параметры необходимо записывать в отчет, хотя бы в текстовый файл (желательно в форме таблицы). Также необходимо сделать привязку ко времени, т.е. чтобы каждое измерение сопровождалось временем измерения. Подскажите пожалуйста как можно организовать запись в таком случае? Если не сложно то приведите пожалуйста код программы, буду очень благодарен.
-
Vasiliy Baev
- leader
- Сообщения: 545
- Зарегистрирован: 31 окт 2011, 09:02
- Награды: 4
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Благодарил (а): 9 раз
- Поблагодарили: 10 раз
- Контактная информация:
Re: Запись данных с внешнего устройства cRIO
Функции записи в файл доступны только при программирование RT приложения, на ПЛИС писать в файл нельзя.
Как вариант передаем данные с FPGA на RT и записываем их в TDMS или передаем данные через сетевые переменные на ПК и записываем в файл.
Для передачи данных с FPGA на RT используйте DMA FIFO: http://zone.ni.com/devzone/cda/tut/p/id/4534
На форуме NI много тем посвященному этому вопросу к примеру: http://forums.ni.com/t5/LabVIEW/Best-wa ... 062/page/2
С какой частотой планируете снимать измерения и записывать?
Как вариант передаем данные с FPGA на RT и записываем их в TDMS или передаем данные через сетевые переменные на ПК и записываем в файл.
Для передачи данных с FPGA на RT используйте DMA FIFO: http://zone.ni.com/devzone/cda/tut/p/id/4534
На форуме NI много тем посвященному этому вопросу к примеру: http://forums.ni.com/t5/LabVIEW/Best-wa ... 062/page/2
С какой частотой планируете снимать измерения и записывать?
-
- beginner
- Сообщения: 30
- Зарегистрирован: 20 мар 2011, 15:43
- Версия LabVIEW: 2010
- Контактная информация:
Re: Запись данных с внешнего устройства cRIO
Частота записи в память 50 Гц.
С английским у меня не то чтобы совсем никак, но и далеко не так хорошо как хотелось бы. Поэтому боюсь, что я просто не найду нужной темы. Если Вас не затруднит, не могли бы Вы дать ссылки на форуме хотя бы на несколько тем схожих с моей.
А как можно сделать привязку ко времени?
С английским у меня не то чтобы совсем никак, но и далеко не так хорошо как хотелось бы. Поэтому боюсь, что я просто не найду нужной темы. Если Вас не затруднит, не могли бы Вы дать ссылки на форуме хотя бы на несколько тем схожих с моей.
А как можно сделать привязку ко времени?
-
Vasiliy Baev
- leader
- Сообщения: 545
- Зарегистрирован: 31 окт 2011, 09:02
- Награды: 4
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Благодарил (а): 9 раз
- Поблагодарили: 10 раз
- Контактная информация:
Re: Запись данных с внешнего устройства cRIO
ashrag, мне кажется, что целесообразно записывать данные на ПК, а не хранить их в PAC и не занимать память, которой там и так не много. Хотя и запись на PAC тоже можно рассмотреть. Если в вашей программе нет необходимости работать на больших частотах, то Вы можете и не спускаться на ПЛИС, а ограничиться RT приложением (до 1кГц). Для привязки ко времени используйте внутренние часы PAC (формат UTC). Выставить правильное время на PAC можно в MAX или синхронизировать время с ПК или другим контроллером написав для этого небольшой код (так же существует вариант поднять *временной* сервер на ПК, подобный тому которые используют наши ОС для синхронизации времени. Никогда такого не делал, но подобные темы на NI.com видел). Слышал, что для LW 2011 есть специальная палитра, предназначенная именно для синхронизации времени. Сетевые переменные имеют терминал TimeStamp, можете использовать его при записи данных на ПК. Ссылки поищу чуть позже.
-
- beginner
- Сообщения: 30
- Зарегистрирован: 20 мар 2011, 15:43
- Версия LabVIEW: 2010
- Контактная информация:
Re: Запись данных с внешнего устройства cRIO
Vasa, Спасибо за советы. Да данные мы планируем записывать на ПК. А могли бы Вы по подробнее рассказать про привязку к времени? Как ее можно организовать? Т.е. можно просто использовать подприборы из палитры timing?
Можно ли организовать запись в файл прямо из RT-системы или надо передавать данные на ПК и только потом их записывать? Я спросил об этом техподдержку NI мне сказали, что можно, но надо перевести само шасси cRIO в scan mode. Я не совсем понимаю как это сделать. Можете подсказать как это сделать?
Мы собрали приложение для передачи данных из FPGA в RT, а затем передачи их на ПК и последующей записи, оно не работает (фото, см. ниже). Возможно вы могли бы подсказать в чем может быть причина?
Можно ли организовать запись в файл прямо из RT-системы или надо передавать данные на ПК и только потом их записывать? Я спросил об этом техподдержку NI мне сказали, что можно, но надо перевести само шасси cRIO в scan mode. Я не совсем понимаю как это сделать. Можете подсказать как это сделать?
Мы собрали приложение для передачи данных из FPGA в RT, а затем передачи их на ПК и последующей записи, оно не работает (фото, см. ниже). Возможно вы могли бы подсказать в чем может быть причина?
- Вложения
-
- Сохранение данных.zip
- (239.36 КБ) 194 скачивания
-
Vasiliy Baev
- leader
- Сообщения: 545
- Зарегистрирован: 31 окт 2011, 09:02
- Награды: 4
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Благодарил (а): 9 раз
- Поблагодарили: 10 раз
- Контактная информация:
Re: Запись данных с внешнего устройства cRIO
ashrag, я нарисую Вам пример FPGA-RT-PC после праздников.
Если вы пишите данные на PAC, то конечно используйте приборы из палитры Timing. Про Scan Interface: при добавлении контроллера в проект, LW спрашивает в каком режиме вы будете использовать ваш контроллер (Scan/FPGA) или в проекте зайдите в свойства шасси и выберете необходимый. Про запись на ПК прямо из PAC я Вам ничего не скажу (будет минутка попробую на 9012 и отпишусь) в книгах таких примеров не видел.
Ваше приложение оставлю без комментариев пока. Как я понял Вам не важны абсолютно все снятые значения (на ПЛИС цикл будет >50Гц?) так что DMA можно оставить в покое. Вы планируете на ПК отображать данные, возможно управлять установкой?
Если вы пишите данные на PAC, то конечно используйте приборы из палитры Timing. Про Scan Interface: при добавлении контроллера в проект, LW спрашивает в каком режиме вы будете использовать ваш контроллер (Scan/FPGA) или в проекте зайдите в свойства шасси и выберете необходимый. Про запись на ПК прямо из PAC я Вам ничего не скажу (будет минутка попробую на 9012 и отпишусь) в книгах таких примеров не видел.
Ваше приложение оставлю без комментариев пока. Как я понял Вам не важны абсолютно все снятые значения (на ПЛИС цикл будет >50Гц?) так что DMA можно оставить в покое. Вы планируете на ПК отображать данные, возможно управлять установкой?
-
- adviser
- Сообщения: 221
- Зарегистрирован: 18 май 2009, 10:50
- Награды: 1
- Версия LabVIEW: 8.6
- Откуда: Москва
Re: Запись данных с внешнего устройства cRIO
RT-система позволяет реализовать сохранение данных многими способами:ashrag писал(а):Vasa
Можно ли организовать запись в файл прямо из RT-системы или надо передавать данные на ПК и только потом их записывать? Я спросил об этом техподдержку NI мне сказали, что можно, но надо перевести само шасси cRIO в scan mode. Я не совсем понимаю как это сделать. Можете подсказать как это сделать?
Мы собрали приложение для передачи данных из FPGA в RT, а затем передачи их на ПК и последующей записи, оно не работает (фото, см. ниже). Возможно вы могли бы подсказать в чем может быть причина?
1. Гнать данные в контроллер ( через фифо буфер, прямое чтение из ПЛИС или scan mode), там их обрабатывать и обработанные данные гнать уже по TCP/IP в ПК и там уже их сохранять. При такой реализации можно сделать дублирование сохранения в память контроллера (только контроллер желательно с USB разъемом, 256 Мб контроллера 9074 маловато). При такой реализации более 10000 изм/сек вряд ли удастся передавать.
2. Читать данные напрямую из фифо буфера ПЛИС в ПК и затем сохранять (у меня удавалось таким образом передавать 400000 изм/сек).
К сожалению вы не написали какая скорость вам нужна.
Пример реализации второго способа в архиве.
Для переключения в режим scan mode нужно удалить в проекте FPGA Target и добавить потом New => C series module. либо при формировании проекта указать scan interfese а не FPGA.
Для передачи данных из контроллера в ПК рекомендую ознакомится с библиотекой STM http://zone.ni.com/devzone/cda/tut/p/id/4095#toc7.
- Вложения
-
- тест FIFO Folder.zip
- (634.2 КБ) 171 скачивание
-
- beginner
- Сообщения: 30
- Зарегистрирован: 20 мар 2011, 15:43
- Версия LabVIEW: 2010
- Контактная информация:
Re: Запись данных с внешнего устройства cRIO
Насколько я уже понял ПЛИС как таковой нам не нужен. Нам просто надо считывать показания датчиков через модули (9208 и 9213) и сохранять данные с частотой 50 Гц. Периодичность вывода на экран 0,1 сек. Управлять установкой пока не планируется, только считывать показания и строить графики изменения их во времени.
В приведенном мной ранее примере мы пытались передать данные через Network Streams, но у нас почему то они не передаются. На входе блока Write Single Element to Stream (на уровне RT) данные есть они отображаются на индикаторе, а на выходе из блока Read Single Element from Stream (на уровне ПК) их нет. Мы также вводили задержку результат тот же. Мы также сверили нашу программы с другими примерами и вроде должно работать, но данные все равно не передаются.
Помимо этого мы нашли пример передачи данных через FIFО, но у нас также ничего не получилось. Мы нашли этот пример на сайте тот здесь http://zone.ni.com/devzone/cda/tut/p/id/4534.
Мы не знаем почему не работает.
А через TCP передавать также как и через другие: открыть-записать-закрыть на RT-системе и открыть-считать-закрыть на ПК? Или нужно что-то дополнительно использовать?
В приведенном мной ранее примере мы пытались передать данные через Network Streams, но у нас почему то они не передаются. На входе блока Write Single Element to Stream (на уровне RT) данные есть они отображаются на индикаторе, а на выходе из блока Read Single Element from Stream (на уровне ПК) их нет. Мы также вводили задержку результат тот же. Мы также сверили нашу программы с другими примерами и вроде должно работать, но данные все равно не передаются.
Помимо этого мы нашли пример передачи данных через FIFО, но у нас также ничего не получилось. Мы нашли этот пример на сайте тот здесь http://zone.ni.com/devzone/cda/tut/p/id/4534.
Мы не знаем почему не работает.
А через TCP передавать также как и через другие: открыть-записать-закрыть на RT-системе и открыть-считать-закрыть на ПК? Или нужно что-то дополнительно использовать?
-
Vasiliy Baev
- leader
- Сообщения: 545
- Зарегистрирован: 31 окт 2011, 09:02
- Награды: 4
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Благодарил (а): 9 раз
- Поблагодарили: 10 раз
- Контактная информация:
Re: Запись данных с внешнего устройства cRIO
Как вариант, имеющий право на жизнь для потоковой передачи данных с частотой <50Гц.
Для частот > 50Гц данные архивируют и посылают пачками, если Вам будет интересно - я нарисую пример.
Данные пример очень прост и требует доработки.
Для частот > 50Гц данные архивируют и посылают пачками, если Вам будет интересно - я нарисую пример.
Данные пример очень прост и требует доработки.
- Вложения
-
- cRIO.rar
- 9012+9103
- (613.67 КБ) 146 скачиваний
Последний раз редактировалось Vasiliy Baev 03 май 2012, 08:31, всего редактировалось 1 раз.
-
- beginner
- Сообщения: 30
- Зарегистрирован: 20 мар 2011, 15:43
- Версия LabVIEW: 2010
- Контактная информация:
Re: Запись данных с внешнего устройства cRIO
Спасибо за помощь. Мы попробуем. Скажите пожалуйста в чем именно требуется доработка? И если вам не сложно не могли бы Вы выложить программу?
-
Vasiliy Baev
- leader
- Сообщения: 545
- Зарегистрирован: 31 окт 2011, 09:02
- Награды: 4
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Благодарил (а): 9 раз
- Поблагодарили: 10 раз
- Контактная информация:
Re: Запись данных с внешнего устройства cRIO
ashrag, извините, в спешке забыл приложить файл. Добавил к посту выше.
На верхнем уровне добавить проверку подключения к PAC, вывод графиков на экран. На RT, если приложение конфигурируемое, то добавить сохранения настроек в *.ini (или любой удобный для Вас), читать их в разделе инициализации (Настройки PID регулятора, фильтров и тп и тд).
Настройте время на PAС в MAX - выставите время для вашего региона (по умолчанию UTC).
Другой вариант приложения/передачи данных выложу после выходных - не дают у себя на работе посидеть
На верхнем уровне добавить проверку подключения к PAC, вывод графиков на экран. На RT, если приложение конфигурируемое, то добавить сохранения настроек в *.ini (или любой удобный для Вас), читать их в разделе инициализации (Настройки PID регулятора, фильтров и тп и тд).
Настройте время на PAС в MAX - выставите время для вашего региона (по умолчанию UTC).
Другой вариант приложения/передачи данных выложу после выходных - не дают у себя на работе посидеть
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 3 Ответы
- 505 Просмотры
-
Последнее сообщение Artem.spb
-
- 5 Ответы
- 253 Просмотры
-
Последнее сообщение AndreyDmitriev
-
- 12 Ответы
- 599 Просмотры
-
Последнее сообщение Sergey Puzanov
-
- 3 Ответы
- 875 Просмотры
-
Последнее сообщение IvanLis
-
- 13 Ответы
- 1225 Просмотры
-
Последнее сообщение Boxa