две параллельные программы на cRio

две параллельные программы на cRio

Postby Elen on 16 Oct 2018, 10:49

Здравствуйте!

Помогите, пожалуйста, разобраться со следующей проблемой.

Разрабатываю ПО для управления испытательным стендом. На cRio будут подключены как приборы для измерения параметров так и управляющие устройства. Необходимо отделить измерительную часть от управляющей, для аттестации в последующем измерительной части.
Вопрос: могут ли на контроллере работать сразу 2 exe-шника - один для передачи данных от измерительных устройств, другой для работы с управляющими устройствами?

Заранее спасибо!
Elen
beginner
beginner
 
Posts: 46
Joined: 15 Oct 2014, 07:27
LabVIEW Version: 2013
Karma: 0

Re: две параллельные программы на cRio

Postby Artem.spb on 16 Oct 2018, 13:24

Сразу вопрос: как ПЛИС работает? если в scan mode, то шансов больше, если у каждого ехе свой бинарник, то сразу нет.

Дальше, прямо так не тестировал, но была у меня сложность со впихиванием большой программы в слабый FP (предыдущее поколение RT).
Решил так: стартует один ехе, смотрит состояние переключателя на морде контроллера, и в зависимости от его значения запускает одну из двух рабочих программ.
Да и в целом не вижу препятствий для параллельной работы, но.
Зачем так извращаться? Эти части же не будут работать в вакууме? они должны взаимодействовать, а значит, вы усложняете себе жизнь.
Нет никакой проблемы в аттестации функции, или измерительного канала.
Я делал системы, где в составе ПО был режим аттестации (как бы он ни назывался), когда мы можем подавать на измерительную часть эталонные сигналы, смотреть, что считывает система, и при необходимости вычислять калибровочные коэффициенты.
Artem.spb
expert
expert
 
Posts: 1427
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 246
CLD hardware I/O VIP freelance

Re: две параллельные программы на cRio

Postby Elen on 16 Oct 2018, 14:31

Спасибо за ответ.

ПЛИС будет работать в режиме scan mode.

"Зачем так извращаться? " Отвечаю. Согласно ТЗ ПО на систему измерения должна быть аттестована по ГОСТ Р 8.654. И чтобы не ограничивать себя в плане корректировки ПО, я и хотела в отдельный exe-шник выделить съем данных с датчиков, аттестовать эту часть и спокойно отлаживать управляющую часть. А если систему измерения не удастся выделить, то после каждой даже незначительной корректировки придется аттестовать все ПО.

Возможно мой вариант не очень удачный. Есть другие предложения?
Elen
beginner
beginner
 
Posts: 46
Joined: 15 Oct 2014, 07:27
LabVIEW Version: 2013
Karma: 0

Re: две параллельные программы на cRio

Postby Andrew Lunev on 16 Oct 2018, 15:33

Если посмотреть на реализацию подобных систем у других исполнителей, то все они стараются отделить метрологически значимую часть ПО от остальной и тем самым решают кучу потенциальных проблем. Вы стремитесь к тому же, но деление у вас крупнее. Обычно это не отдельный exe, а всего лишь библиотека (dll) у которой входы - исходные сигналы напряжения или тока, а на выходе физические единицы. Подобная библиотека создается, по ГОСТ формируется описание алгоритмов преобразования, она компилируется и рассчитывается ее контрольная сумма для внесения в реестр при аттестации. После этого вам нельзя изменять саму библиотеку, но можно менять как измерительную, так и управляющую часть основной программы. Например, в вашем случае если добавить или убрать один канал, то это изменения в программе и потребуется снова проводить всю процедуру аттестации так как изменится контрольная сумма. Если же у вас метрология вынесена в dll, то можете добавлять и удалять каналы сколько хотите, главное, чтобы они были однотипными и для пересчета использовалась аттестованная dll.
User avatar
Andrew Lunev
leader
leader
 
Posts: 871
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2018
Karma: 250
hardware I/O VIP teachers

Re: две параллельные программы на cRio

Postby Elen on 16 Oct 2018, 16:10

Andrew Lunev wrote:Если посмотреть на реализацию подобных систем у других исполнителей, то все они стараются отделить метрологически значимую часть ПО от остальной и тем самым решают кучу потенциальных проблем. Вы стремитесь к тому же, но деление у вас крупнее. Обычно это не отдельный exe, а всего лишь библиотека (dll) у которой входы - исходные сигналы напряжения или тока, а на выходе физические единицы. Подобная библиотека создается, по ГОСТ формируется описание алгоритмов преобразования, она компилируется и рассчитывается ее контрольная сумма для внесения в реестр при аттестации. После этого вам нельзя изменять саму библиотеку, но можно менять как измерительную, так и управляющую часть основной программы. Например, в вашем случае если добавить или убрать один канал, то это изменения в программе и потребуется снова проводить всю процедуру аттестации так как изменится контрольная сумма. Если же у вас метрология вынесена в dll, то можете добавлять и удалять каналы сколько хотите, главное, чтобы они были однотипными и для пересчета использовалась аттестованная dll.


Спасибо за совет

Надо подумать.
А если у меня измерения идут в цифре через RS-485, HART и CAnOpen, то в dll входным параметром будет ответ датчика, а в самой dll алгоритм расшифровки данного ответа?
Elen
beginner
beginner
 
Posts: 46
Joined: 15 Oct 2014, 07:27
LabVIEW Version: 2013
Karma: 0

Re: две параллельные программы на cRio

Postby Andrew Lunev on 16 Oct 2018, 17:11

Тут надо уточнить у метрологов, но мое мнение такое. Если по цифре идет значение уже в нужной физической величине, например с цифрового термометра идет измеренная температура в градусах Цельсия, то вся ваша программа является индикатором и логером и не требует никакой аттестации, если датчик в реестре. Так как измеряемая величина никак не преобразуется и не меняет свою точность. Если же надо выводить в градусах Фаренгейта, а датчик по цифре передает в градусах Цельсия, то требуется преобразование и оно будет так же внутри этой dll, то есть у нее одна из функций будет преобразование из Фаренгейта в Цельсия. Если датчик цифровой, то все метрологические преобразования находятся в алгоритмах внутри датчика. Мы же при переводе сигнала например из протокола RS-485 в Ethernet не требуем метрологическую аттестацию преобразованных данных. Да в внутри всякие уровни протокола так же не требуют аттестации, иначе на каждый коммутатор, шлюз и роутер требовались бы метрологические сертификаты.
С другой стороны, преобразование из кода, переданного по цифровому протоколу, в физическую величину проводит автор алгоритма и может ошибиться и тогда преобразование будет неверным. Вот здесь и надо уточнить у тех, кто будет проводить вашу аттестацию.
User avatar
Andrew Lunev
leader
leader
 
Posts: 871
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2018
Karma: 250
hardware I/O VIP teachers

Re: две параллельные программы на cRio

Postby Elen on 17 Oct 2018, 09:35

Спасибо за разъяснение
Elen
beginner
beginner
 
Posts: 46
Joined: 15 Oct 2014, 07:27
LabVIEW Version: 2013
Karma: 0

Re: две параллельные программы на cRio

Postby Kosist on 17 Oct 2018, 11:59

В число :labview: имплементации (без создания именно dll), можете использовать плагин-архитектуру. Измеритальная часть - отдельный плагин, управляющая - другой (или просто основная программа). Тогда плагин измерения можно тестировать и модифицировать отдельно от остального приложения...
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 899
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 253
CLAD I/O VIP students

Re: две параллельные программы на cRio

Postby dadreamer on 17 Oct 2018, 12:10

Kosist, DLL чем хороша, так это тем, что её можно подключить в любой другой среде, тогда как плагины (те же lvlibp) можно использовать только внутри :labview: .
User avatar
dadreamer
professor
professor
 
Posts: 3150
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 801
I/O VIP vision internet

Re: две параллельные программы на cRio

Postby Andrew Lunev on 17 Oct 2018, 15:46

Для задачи аттестации важно иметь именно отдельный файл, который должен иметь имя, версию, контрольную сумму. Именно эти параметры заносятся при аттестации в документацию и при их изменении требуется повторить процедуру заново, а это долго и дорого. Какой именно это будет файл - не важно. Но если это будет плагин, то он должен быть как-то отделен от остальной части программы, то есть обязательно должен быть отдельным файлом и именно этот файл должен использоваться в основной программе для расчета метрологии. То есть этот файл должны использовать и VI и exe. Мне в голову приходит только dll, но могут быть и какие-то другие варианты.
User avatar
Andrew Lunev
leader
leader
 
Posts: 871
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2018
Karma: 250
hardware I/O VIP teachers

Re: две параллельные программы на cRio

Postby Borjomy_1 on 17 Oct 2018, 16:37

Для задачи аттестации важно иметь именно отдельный файл, который должен иметь имя, версию, контрольную сумму. Именно эти параметры заносятся при аттестации в документацию и при их изменении требуется повторить процедуру заново, а это долго и дорого. Какой именно это будет файл - не важно. Но если это будет плагин, то он должен быть как-то отделен от остальной части программы, то есть обязательно должен быть отдельным файлом и именно этот файл должен использоваться в основной программе для расчета метрологии.

как насчет llb? вроде, условиям удовлетворяет
Borjomy_1
expert
expert
 
Posts: 1828
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 319
VIP

Re: две параллельные программы на cRio

Postby Vitekkz88 on 18 Oct 2018, 06:04

Borjomy_1, если у компании ничего кроме LabVIEW нет и менять вектор развития не планируется, то можно и llb, и плагины LabVIEW-шные, и отдельно палитру с subVI аттестовать. Но это всё будут LabVIEW-шные штучки, которые юзабельны только в LabVIEW.
.dll - наиболее универсальное средство с точки зрения использования в других средах разработки. Если трудности с созданием .dll на тех же плюсах, то можно сделать .dll в LabVIEW и вызывать её в LabVIEW. Год назад похожая тема была, если интересно:
viewtopic.php?f=84&t=3865&p=76904&hilit#p76904
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1047
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 301
hardware I/O VIP

Re: две параллельные программы на cRio

Postby Borjomy_1 on 18 Oct 2018, 12:01

Vitekkz88, я, может, не в теме, но что-то сомнительно, чтобы cRIO на арм процессоре и на ОСРВ поддерживал DLL, скопилированный для процессоров Intel и среды Windows
Borjomy_1
expert
expert
 
Posts: 1828
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 319
VIP

Re: две параллельные программы на cRio

Postby dadreamer on 18 Oct 2018, 12:16

Borjomy_1 wrote:Vitekkz88, я, может, не в теме, но что-то сомнительно, чтобы cRIO на арм процессоре и на ОСРВ поддерживал DLL, скопилированный для процессоров Intel и среды Windows

Смотря, какая ОСь стоит на контроллере. Elen не озвучила модель cRIO. VxWorks и PharLap ETS поддерживают подмножество Win32 с рядом ограничений, так что DLL без жёсткой привязки к WinAPI может запуститься.
Real-Time Controllers and Real-Time Operating System Compatibility
Verify Your DLL Is Executable in LabVIEW Real-Time on NI PharLap ETS
Если ОСь NI Linux, то ясен пень смысла в создании DLL нет (теоретически, .SO-шник, скомпиленный на Linux, мог бы пойти, но я не проводил подобные эксперименты).
Last edited by dadreamer on 18 Oct 2018, 12:22, edited 1 time in total.
User avatar
dadreamer
professor
professor
 
Posts: 3150
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 801
I/O VIP vision internet

Re: две параллельные программы на cRio

Postby Vitekkz88 on 18 Oct 2018, 12:30

Borjomy_1, ОСВР это будет или нет - без разницы, если ОС одного семейства. Если под линукс - то rpm(например) использовать. Тип устройства(контроллер это будет или процессор Intel) - не важен до тех пор, пока мы не касаемся самого ядра и ассемблера. Не так давно Вы работали с Raspberry Pi. У меня под рукой такой железки нет, но можете попробовать и убедиться, что .dll, собранная в ОС на ARM будет работать и на Intel-кристале, в рамках одной ОС.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1047
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 301
hardware I/O VIP


Return to CompactRIO

Who is online

Users browsing this forum: No registered users and 2 guests

cron