Перейти к содержанию
    

С языком G могут быть проблемы. Dataflow языки для описания алгоритма управления слабо подходят...

Ну это уже черезчур... . Графический язык G специально придуман для задач управления, причем любого уровня сложности. Например краш тест автомобилей, управление телескопом ХАББЛ. А ваш алгоритм трубопроводной автоматики с разогревом приведен в Labview в одном из разделов примеров для начинающих.

Разговор шел о Реалайм врезке от NI в винду, которая совместно с инсруметальными smart RT примочками позволяет укротить внутренние несанкционированные процессы в винде.

 

Осознал, что теме NI не место в этой ветке - комплект пакетов с даташитами занимает несколько гигабайт - это отдельная и весьма замороченная тема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

С языком G могут быть проблемы. Dataflow языки для описания алгоритма управления слабо подходят...

Ну это уже черезчур... . Графический язык G специально придуман для задач управления, причем любого уровня сложности. Например краш тест автомобилей, управление телескопом ХАББЛ. А ваш алгоритм трубопроводной автоматики с разогревом приведен в Labview в одном из разделов примеров для начинающих.

Разговор шел о Реалайм врезке от NI в винду, которая совместно с инсруметальными smart RT примочками позволяет укротить внутренние несанкционированные процессы в винде.

 

Осознал, что теме NI не место в этой ветке - комплект пакетов с даташитами занимает несколько гигабайт - это отдельная и весьма замороченная тема.

 

Не могли бы Вы поточнее указать решение обсуждаемой задачи на LabView? ну или выложить vi в файловую область?

 

Дело в том, что мы используем LabView, и в общем-то система нам нравится, позволяет создавать интерфейсную часть систем управления среднего класса, да и времена она обеспечивает заведомо меньшие, чем 10 мс, обсуждемые с подачи QNX-специалистов. Но описывать на LV сложные алгоритмы управления.... никому и не под каким видом не советуем - это безумие...

 

и, прошу прощения, должен сознаться, что Ваши слова насчет обсуждаемой задачи - воспринимаются мной, как сказанные в полемическом запале.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не могли бы Вы поточнее указать решение обсуждаемой задачи на LabView? ну или выложить vi в файловую область?

Делать Вашу систему, конечно, ломает. Но в сэмплы Lv7.0 слазил - \examples\apps\tankmntr.llb. Чуть подрихтовать. Да и вообще, условные алгоритмы управления, ИМХО, относятся к простейшим. Основная задача там- ввод/вывод сигналов РС.

Но описывать на LV сложные алгоритмы управления.... никому и не под каким видом не советуем - это безумие...

Ну, - всю Одессу устраивает... . Читайте Аппнотес от NI. Проще некуда - графический язык конечного пльзователя. После компиляции - реальный коммерческий продукт.

...и, прошу прощения, должен сознаться, что Ваши слова насчет обсуждаемой задачи - воспринимаются мной, как сказанные в полемическом запале.

Если был резковат, - извините.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не могли бы Вы поточнее указать решение обсуждаемой задачи на LabView? ну или выложить vi в файловую область?

Делать Вашу систему, конечно, ломает. Но в сэмплы Lv7.0 слазил - \examples\apps\tankmntr.llb. Чуть подрихтовать. Да и вообще, условные алгоритмы управления, ИМХО, относятся к простейшим. Основная задача там- ввод/вывод сигналов РС.

 

Дело в том, что это не "моя" система... это тестовая задача на проверку "вшивости" средства разработки. А проблема ввода-вывода сигналов PC в задаче вообще не рассматривается.

 

Кстати, ввод-вывод - это действительно задачи для LV. А вот "условные" алгоритмы (событийные, на самом деле) это как раз те алгоритмы, которые требуют control-flow возможностей. И тут уж data-flow подходы (LV, FBD-IEC61131-3, LD) проявляют себя не с лучшей стороны... а то, на что Вы указываете

даже по названию - просто мониторинг... а не управление. Именно для мониторинга LV и подходит, ну или что-то очень простое, типа SCADA. В общем эксперимент на столе.

 

Но описывать на LV сложные алгоритмы управления.... никому и не под каким видом не советуем - это безумие...

Ну, - всю Одессу устраивает... . Читайте Аппнотес от NI. Проще некуда - графический язык конечного пльзователя. После компиляции - реальный коммерческий продукт.

 

Увы. Графика, она хороша только низким порогом вхождения. А дальше идет непреодолимый барьер сложности... Именно по этой причине NI поддерживает более продвинутый продукт - LabWindows/CVI.

 

...и, прошу прощения, должен сознаться, что Ваши слова насчет обсуждаемой задачи - воспринимаются мной, как сказанные в полемическом запале.

Если был резковат, - извините.

 

Я не про резкость, а про недостаточную аргументацию высказываний. Цеплять в систему датчики, ЦАПы, видеокамеры, рисовать графики, это действительно удобно с помощью LV, но это и все... Грубо говоря, там, где встретилась необходимость использовать if-then-else, там и пришел конец возможностям LV.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... это действительно удобно с помощью LV, но это и все... Грубо говоря, там, где встретилась необходимость использовать if-then-else, там и пришел конец возможностям LV.

Функции условных и ситуативных переходов находятся в палитрах LV вместе с сотнями других и нормально работают, ничем не выделяясь.

В указанном мной примере они используются для управления клапанами и нагревателем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Увы. Графика, она хороша только низким порогом вхождения. А дальше идет непреодолимый барьер сложности... Именно по этой причине NI поддерживает более продвинутый продукт - LabWindows/CVI.

Вот тока не надо называть второстепенный продукт LabWindows/CVI более продвинутым, чем их флагман LabView (это как мне сказал представитель NI).

 

Да это и невооруженным глазом видно - CVI это ANSI-C с библиотеками NI, отстающими от LabView на единицу по номеру версии (примерно) и с более бедными графическими возможностями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все понял. Пора завязывать поход http://reflex-language.narod.ru против монстра мировой автоматики. Об этом у Крылова есть специальная басня.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все понял. Пора завязывать поход http://reflex-language.narod.ru против монстра мировой автоматики. Об этом у Крылова есть специальная басня.

 

Лучше откройте секрет, как в LV нормальные переменные поиметь, чтобы и на чтение и на запись...

или как в DLL реальный адрес LV-массива передать, а не адрес его копии...

у меня человек два дня бился, уже глобальный массив завел... а потом где-то в хелпах нашел маленькую строчку, что передается всегда не адрес массива, а адрес копии... (!!!) Зачем?!?!?!? Какой на дворе век?! АУ!!! Зачем копировать массив?! А если там 1000 элементов? А если миллион?

на форуме LV более тысячи сообщений на тему передачи массива в DLL... и все с невнятными ответами.

Как написать свое VI возвращающее массив, аналог Create Array? дело не для слабонервных.

 

Ну а структуры LV типа case, да sequence - это следствие ограниченности data-flow подхода...

как они реализованы в терминах внутреннего языка - темнейший лес, где водятся большие серые волки хотя бы в виде сумасшедших накладных расходов...

 

Опять же повторюсь, LV достаточно привлекательная и богатая встроенными возможностями страна, если порхать на поверхности... Но погружаться в вглубь страны LV можно только с крупнокалиберной двустволкой и группой поддержки в виде психолога или гештальт-терапевта, шаг влево или вправо - трясина, топь, дикие звери и опасность сойти с ума.

 

Что касается xxxmntr.lbb - надо разобраться, на днях посмотрю... тут еще второй вопрос возник, а почему такое странное расширение? а не VI-шка?

Изменено пользователем Владимир Е. Зюбин

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что касается xxxmntr.lbb - надо разобраться, на днях посмотрю... тут еще второй вопрос возник, а почему такое странное расширение? а не VI-шка?

Читать хелп-зто библиотека. Если ткнуть мышью под виндой, то откроется набор vi - ткнуть тот что в названии llb. Может убедитесь сами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лучше откройте секрет, ...

или как в DLL реальный адрес LV-массива передать, а не адрес его копии...

у меня человек два дня бился, уже глобальный массив завел... а потом где-то в хелпах нашел маленькую строчку, что передается всегда не адрес массива, а адрес копии... (!!!) Зачем?!?!?!? Какой на дворе век?! АУ!!! Зачем копировать массив?!

А Вы параметр как Type: Array передаете? (а как иначе - есс-но копия).

Так передавайте как Type: Numeric, Pass: Pointer

(за точность не ручаюсь - года два с тех пор прошло...)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лучше откройте секрет, ...

или как в DLL реальный адрес LV-массива передать, а не адрес его копии...

у меня человек два дня бился, уже глобальный массив завел... а потом где-то в хелпах нашел маленькую строчку, что передается всегда не адрес массива, а адрес копии... (!!!) Зачем?!?!?!? Какой на дворе век?! АУ!!! Зачем копировать массив?!

А Вы параметр как Type: Array передаете? (а как иначе - есс-но копия).

Так передавайте как Type: Numeric, Pass: Pointer

(за точность не ручаюсь - года два с тех пор прошло...)

 

 

Спасибо... попробую. А пробовали передавать по разному и как массив, и как указатель на массив... все одно - "тупИт" LV.

 

Но вопрос этот один из многих, которые при использовании LV возникают.

Кстати, сегодня ребята пробовали обработать двумерный массив примерно 50х350

средствами LV... Обработка примитивная: сдвиг каждой из строк на единицу в цикле...

один цикл обработки занимает примерно 1 сек... как-то это несерьезно выглядит.

Так и чешутся руки в Си это сделать... ;-) (будет в десять раз более наглядно и порядка на три-четыре быстрее... если удастся объяснить LV, что копия массива тут никому не нужна... ;-).

 

А это даже не управление... это простейшая обработка. 8-)

 

Опять же не отрицаю использование LV, но обращаю внимание на подводные камни... склоняемся к выводу, что массивы, структуры, циклы в LV лучше не использовать... и по этому поводу предстоит большая и трудоемкая работа по реверсивному инжинирингу внутреннего представления в LV всякой всячины...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не могли бы Вы поточнее указать решение обсуждаемой задачи на LabView? ну или выложить vi в файловую область?

Делать Вашу систему, конечно, ломает. Но в сэмплы Lv7.0 слазил - \examples\apps\tankmntr.llb. Чуть подрихтовать. Да и вообще, условные алгоритмы управления, ИМХО, относятся к простейшим. Основная задача там- ввод/вывод сигналов РС.

 

Прошу прощение за задержку с ответом. Наконец-то посмотрел указанный Вами пример.

К сожалению, он имеет очень слабое отношение к исходной задаче. Основная часть системы отсутствует (пуск/останов системы, клапаны, датчики, элементы системы - бутылки, конвейеры и т.п. )

 

По моим оценкам, Ваше "чуть подрихтовать" выльется в увеличение размера кода раза в три-четыре, а насколько сложнее станет алгоритм для восприятия затрудняюсь оценить.

 

Другой нехороший момент, который обнаружился - это отсутствие четкой границы между моделью объекта и алгоритмом управления... частично это связано с возможностями LV, как средства моделирования, ну а частично, пардон, и с реализацией. В результате - что-то подобное gif-картинке

на http://reflex-language.narod.ru/bottle/ani_bottle.htm.

 

Опять же, прошу не воспринимать эти слова как "наезд" на LV, LV достаточно полезный инструмент, но не для осуждаемых задач: в которых больше подходит событийные стратегии управления.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Люблю читать, что люди пишут о реальном времени.

А тут попалась интересная книга Microsoft Computer dictionary, Fourth Edition // Microsoft Press, 1999

[кстати, книга доступна в сети например через "осла" - MSPress-CompDict4.chm]

Достаточно внятно насчет реального времени написано... и об операционных системах реального времени тоже. Кратко, по крайней мере, хотя я бы лично немного подкорректировал определения. ;-)

 

 

real-time

adj. Of or relating to a time frame imposed by external constraints. Real-time operations are those in which the machine's activities match the human perception of time or those in which computer operations proceed at the same rate as a physical or external process. Real-time operations are characteristic of aircraft guidance systems, transaction-processing systems, scientific applications, and other areas in which a computer must respond to situations as they occur (for example, animating a graphic in a flight simulator or making corrections based on measurements).

 

real-time animation

n. Computer animation in which images are computed and updated on the screen at the same rate at which the objects simulated might move in the real world. Real-time animation allows dynamic involvement by the user because the computer can accept and incorporate keystrokes or controller movements as it is drawing the next image in the animation sequence. Arcade-style animation (such as in a flight simulator program) makes use of real-time animation in translating game plays into on-screen actions. In contrast, in animation done in virtual time, image frames are first calculated and stored and later replayed at a higher rate to achieve smoother movement. See also animation, bit block.

 

real-time clock

n. See clock (definition 2).

 

real-time conferencing

n. See teleconferencing.

 

Real-Time Control Protocol

n. A scalable transport control protocol that works with the Real-Time Protocol (RTP) to monitor real-time transmissions to multiple participants over a network-for example, during videoconferencing. The Real-Time Control Protocol, or RTCP, transmits packets of control information at regular intervals and is used to determine how well information is being delivered to recipients. Acronym: RTCP. See also Real-Time Protocol, Real-Time Streaming Protocol, Resource Reservation Setup Protocol.

 

real-time operating system

n. An operating system designed or optimized for the needs of a process-control environment. See also real-time system.

 

Real-Time Protocol

n. An Internet-standard network transport protocol used in delivering real-time data, including audio and video. The Real-Time Protocol, or RTP, works with both unicast (single sender, single recipient) and multicast (single sender, multiple recipient) services. RTP is often used in conjunction with the Real-Time Control Protocol (RTCP), which monitors delivery. Acronym: RTP. See also Real-Time Control Protocol, Real-Time Streaming Protocol, stream.

 

Real-Time Streaming Protocol

n. A control protocol for the delivery of streamed multimedia data over Internet Protocol (IP) networks. The Real-Time Streaming Protocol, or RTSP, was developed by Columbia University, Progressive Networks, and Netscape and has been submitted as a proposed standard to the IETF (Internet Engineering Task Force). RTSP is designed to deliver real-time, live, or stored audio and video efficiently over a network. It can be used either for groups of recipients or for on-demand delivery to a single recipient. Acronym: RTSP. See also Advanced Streaming Format, Real-Time Protocol, Resource Reservation Setup Protocol, stream.

 

real-time system

n. A computer and/or a software system that reacts to events before the events become obsolete. For example, airline collision avoidance systems must process radar input, detect a possible collision, and warn air traffic controllers or pilots while they still have time to react.

 

Microsoft Computer dictionary, Fourth Edition // Microsoft Press, 1999 [MSPress-CompDict4.chm]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость Доктор ТуамОсес2

Если используете, то скажите для каких микроконтроллеров используете

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"Когда не нужна ОС РВ?"

 

Наверное тогда когда не требуется многозадачность и повторное использование кода в других проектах :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...