Обмен данными между разными платформами

Простейшие вопросы в области инженерной разработки
Ответить
Ros
interested
interested
Сообщения: 5
Зарегистрирован: 23 дек 2020, 20:12
Версия LabVIEW: 2014 Pro
Благодарил (а): 4 раза
Контактная информация:

Обмен данными между разными платформами

Сообщение Ros »

Создается АСУТП с довольно необычной (как следствие времени эффективных менеджеров и "импортозамещения") структурой, состоящей из двух систем - АИИС (все измерения, около 250 параметров, на оборудовании Информтеста) и АСУ (управление и автоматическое регулирование, в локальной сети АСУ - несколько компьютеров).
Среда разработки АСУ - LabVIEW, АИИС - C++, Qt, то есть, разные платформы, между которыми нужен обмен данными с частотой 20 Гц. Предполагается, что обмен может происходить на ПК, которому доступны обе сети, например, по протоколу TCP/IP - он легко реализуем и в LabVIEW, и на С++. По сравнению с безупречным протоколом NI-PSP (разделяемые переменные), который применяется в АСУ, у TCP есть свои недостатки, поэтому возникает вопрос:
Есть ли альтернатива TCP? Возможно ли использовать, например, оперативную память ПК (буфер FIFO) для обмена между C++ и LabVIEW?
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Обмен данными между разными платформами

Сообщение Kosist »

Насчет оперативной памяти не скажу, но альтернативы есть - например, Named Pipes (на форуме уже где-то поднималась подобная тема). По сети можно также общаться и используя брокер (MQTT например), или OPC. Но из всего - проще будет организовать TCP/IP передачу данных. Какие именно недостатки TCP/IP Вам нем не нравятся?
Мы делили апельсин - много наших полегло...
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 127 раз
Контактная информация:

Re: Обмен данными между разными платформами

Сообщение dadreamer »

По Pipes вот первоначальный пост: viewtopic.php?p=62077#p62077 И это пояснение сюда же: viewtopic.php?p=82027#p82027 По Shared Memory я вроде готовых обёрток под :labview: не встречал ни разу. Есть MSDN, можно попрактиковаться в настройке CLFN - Creating Named Shared Memory. Это если есть желание с этим разобраться детальней.
Ros
interested
interested
Сообщения: 5
Зарегистрирован: 23 дек 2020, 20:12
Версия LabVIEW: 2014 Pro
Благодарил (а): 4 раза
Контактная информация:

Re: Обмен данными между разными платформами

Сообщение Ros »

Пожалуй, только необходимость, в отличие от UDP, установления соединения. Кроме того, в нашем случае, обмен может происходить на одном компьютере, и использование сетевого протокола кажется избыточным. Но, конечно, возможным.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Обмен данными между разными платформами

Сообщение IvanLis »

Ros писал(а): 27 дек 2020, 11:50 Пожалуй, только необходимость, в отличие от UDP, установления соединения. Кроме того, в нашем случае, обмен может происходить на одном компьютере, и использование сетевого протокола кажется избыточным. Но, конечно, возможным.
Через localhost нормально все гоняется.
А на UDP накладывается еще и размер блока данных, точно не помню, но до 64 kByte
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: Обмен данными между разными платформами

Сообщение Borjomy_1 »

UDP капризный протокол. При его использовании готовьтесь к пропаданию пакетов при повышении общей загрузки даже в простейших сетях...
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Обмен данными между разными платформами

Сообщение IvanLis »

Borjomy_1 писал(а): 28 дек 2020, 01:01 UDP капризный протокол. При его использовании готовьтесь к пропаданию пакетов при повышении общей загрузки даже в простейших сетях...
Если через lacalhost нормально.
А по реальной сети, мало того что пакеты пропадать могут, так они могут и в не том порядке придти, как их отправили :wink: .
Ответить

Вернуться в «Для чайников»