Создается АСУТП с довольно необычной (как следствие времени эффективных менеджеров и "импортозамещения") структурой, состоящей из двух систем - АИИС (все измерения, около 250 параметров, на оборудовании Информтеста) и АСУ (управление и автоматическое регулирование, в локальной сети АСУ - несколько компьютеров).
Среда разработки АСУ - LabVIEW, АИИС - C++, Qt, то есть, разные платформы, между которыми нужен обмен данными с частотой 20 Гц. Предполагается, что обмен может происходить на ПК, которому доступны обе сети, например, по протоколу TCP/IP - он легко реализуем и в LabVIEW, и на С++. По сравнению с безупречным протоколом NI-PSP (разделяемые переменные), который применяется в АСУ, у TCP есть свои недостатки, поэтому возникает вопрос:
Есть ли альтернатива TCP? Возможно ли использовать, например, оперативную память ПК (буфер FIFO) для обмена между C++ и LabVIEW?
Обмен данными между разными платформами
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Обмен данными между разными платформами
Насчет оперативной памяти не скажу, но альтернативы есть - например, Named Pipes (на форуме уже где-то поднималась подобная тема). По сети можно также общаться и используя брокер (MQTT например), или OPC. Но из всего - проще будет организовать TCP/IP передачу данных. Какие именно недостатки TCP/IP Вам нем не нравятся?
Мы делили апельсин - много наших полегло...
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Обмен данными между разными платформами
По Pipes вот первоначальный пост: viewtopic.php?p=62077#p62077 И это пояснение сюда же: viewtopic.php?p=82027#p82027 По Shared Memory я вроде готовых обёрток под не встречал ни разу. Есть MSDN, можно попрактиковаться в настройке CLFN - Creating Named Shared Memory. Это если есть желание с этим разобраться детальней.
-
- interested
- Сообщения: 5
- Зарегистрирован: 23 дек 2020, 20:12
- Версия LabVIEW: 2014 Pro
- Благодарил (а): 4 раза
- Контактная информация:
Re: Обмен данными между разными платформами
Пожалуй, только необходимость, в отличие от UDP, установления соединения. Кроме того, в нашем случае, обмен может происходить на одном компьютере, и использование сетевого протокола кажется избыточным. Но, конечно, возможным.
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Обмен данными между разными платформами
Через localhost нормально все гоняется.
А на UDP накладывается еще и размер блока данных, точно не помню, но до 64 kByte
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Обмен данными между разными платформами
UDP капризный протокол. При его использовании готовьтесь к пропаданию пакетов при повышении общей загрузки даже в простейших сетях...
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Обмен данными между разными платформами
Если через lacalhost нормально.
А по реальной сети, мало того что пакеты пропадать могут, так они могут и в не том порядке придти, как их отправили .
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...