Разделение цикла опроса модулей и UI
-
- assistant
- Сообщения: 118
- Зарегистрирован: 05 ноя 2020, 08:26
- Версия LabVIEW: 18, 20.0f1
- Благодарил (а): 23 раза
- Поблагодарили: 4 раза
- Контактная информация:
Re: Разделение цикла опроса модулей и UI
В общем имеется возможность переделать опрос модулей с CVT на принцип FIFO, но и соответственно отказаться от некоторых пост-обработок, если время их выполнения будет превышать время следующего взятия блока из FIFO. И я считаю, что это лучшее решение, т.к. машину, куда это всё установится, улучшить нет возможности, а как бы я не пытался разделять потоки/уменьшать количество действий с программами и прочее, 100% гарантии это всё равно не даст, а терять данные совершенно не желательно (ещё один аргумент в сторону FIFO). Спасибо всем за обсуждение и подсказки, на многие вещи обратил внимание и буду в будущем следить, по возможности ещё буду возвращаться и отписываться по поводу успехов и неудач.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Разделение цикла опроса модулей и UI
Зачем надо натягивать сову на глобус? Задачи жёсткой синхронизации и тактирования решаются аппаратно. Для этого есть cRIO, FPGA.
-
- assistant
- Сообщения: 118
- Зарегистрирован: 05 ноя 2020, 08:26
- Версия LabVIEW: 18, 20.0f1
- Благодарил (а): 23 раза
- Поблагодарили: 4 раза
- Контактная информация:
Re: Разделение цикла опроса модулей и UI
cRIO рассматривали, но там большие два НО:
1) Число каналов в совокупности = 256, это минимум 2 cRIO, которые как-то нужно настроить.
2) Такое число оборудования просто не закупят, поэтому и приходится с этой старой и полудохлой совой работать.
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Разделение цикла опроса модулей и UI
Вам нужно прям по одному элементу?Sergey Puzanov писал(а): ↑20 дек 2021, 09:56 В общем имеется возможность переделать опрос модулей с CVT на принцип FIFO, но и соответственно отказаться от некоторых пост-обработок,
Не на аппаратных уровнях вопрос решается выборкой массива и его обработкой, что позволяет "плавать" по частоте цикла-обработчика, главное чтобы он успевал вытащить всё.
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Разделение цикла опроса модулей и UI
На надо мучить птичку..
Мне лично любопытно, реально ли разделяет потоки, и почему на слабых машинах не-UI поток всё равно страдает из-за UI-активности.
Ладно бы загрузка была 100%, но судя по "отчёту" ujin1 там ещё есть запас.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Разделение цикла опроса модулей и UI
Если выдавать ничего не надо с такими-же таймингами, то никакого смысла искать задержки нет в принципе. Необходимо только обеспечить аппаратную буферизацию, которую обеспечивает практически любая плата сбора. Потребность выцарапывать миллисекунды стабильности нужна только когда обеспечивается обратная связь (и она обладает такими требованиями, в том числе по инерционности системы). А вот попытки сделать систему истинно реального времени на Windows - это, извините, принципиально ошибочная стратегия.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Разделение цикла опроса модулей и UI
Скорее всего задействовано одно ядро для всего процесса (так построена программа) и его не хватает для работы в условиях перегрузки.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Разделение цикла опроса модулей и UI
Вообще можно, если туда вкорячить IntervalZero RTX/RTX64, INtime и т.п. или перескочить на RT-Linux (можно и самому ядро пересобрать на основе rt-kernel). Однако в первых двух случаях Windows как основная система всё равно будет необходима по ряду причин: API ядра, HAL, функции лицензирования, да хотя бы GUI хоть какой-то для оператора. Ну, и придётся разделить программу на два модуля: для обычной системы и для RT-прослойки. RT-часть, естественно, придётся писать на C/C++ и потом сопрягать по IPC с .
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение