Все празднуют... С Рождеством!
Michael_K писал(а):- Я вижу, что параметры для функций (для блоков, кубиков... или как правильно назвать) - это в основном константы.
Так ли это на самом деле?
Да, Михаил. В стандартном Роболаб нет веревок данных между командами, весь обмен реализован через переменные-контейнеры или константы, которые называются модификаторами. Правда, там есть начинка Лабвью, которую можно достать через режим Исследователь (Projects->Oprions->Controls/Function Palettes->Palette View->Investigator 5new), в ней найдется всякое.
Чистых "веревок данных" (которые бы соединяли источник данных с получателем) я не увидел.
Это неудобно, или это ограничения языка, или это трудно в понимании?
Здесь некоторая недоработка. Например, детям не предлагается возможность прицепить на вход ветвления результат работы логического выражения (только через глубоко зарытые возможности Labview с преобразованием логики в число).
- Используются ли пользовательские функции (подпрограммы, субвиайчики)? Насколько широко?
- Существует ли механизм передачи в них (в пользовательские функции) параметров и получения из них результатов? Или все это делается через ручное назначение контейнеров ("баночек")?
Широко используются подпрограммы. Их может быть до 8 шт. Вызываются по номеру, причем, что удобно, номер можно параметризовать. Обмен данными исключительно через глобальные переменные (контейнеры).

- Подпрограмма с номером 1 вызывается через 4 с вращения мотора
- Sub.JPG (10.06 КиБ) Просмотров: 2593
Программист может создать свой блок (полноценную функцию) с любым количеством входов и выходов и зашить туда подпрограмму, но для этого придется немного разобраться в лабвьюшном коде (который появляется при двойном щелчке по блоку на поле программы). Для пользователя это будет черный ящик, как для нас любой из блоков.
Насколько такие параметрические подпрограммы и механизмы нужны или полезны на начальных этапах обучения?
Можно ли использовать одну и ту же пользовательскую функцию в разных (параллельно исполняющихся) задачах?
Подпрограммы становятся нужны довольно быстро, как только появляются повторяющиеся куски кода в разных частях программы. Семиклассники активно используют передачу данных через глобальные параметры, но это нечитаемо, кошмар.
С параллельными задачами надо быть поосторожнее. Использовать подпрограммы можно, но обращение к моторам или датчикам из разных задач приводит к неожиданным последствиям. Поэтому мы предпочитаем в одной задаче производить чтение показаний в контейнеры или управление моторами, а из других задач эти контейнеры использовать или менять параметры управления.
- Если уж говорить о многозадачности и роболабе: как в роболабе реализован обмен данными между задачами, через ручное назначение глобальных контейнеров? Читал в юзер-гайде про какие-то евенты (события), но не нашел примеров использования.
Тоже через "глобальные" контейнеры.
Обработчики событий штука мощная, покруче безусловных переходов. Там даже возможны задания диапазонов значений, при которых срабатывает обработчик. Работают только в рамках одной задачи.

- Объявляется событие нажатия на кнопку, стартует мониторинг события, бесконечно играется мелодия, а при нажатии на кнопку управление передается на метку перехода
- Events.JPG (6.27 КиБ) Просмотров: 2592
Вообще в Роболабе есть хороший встроенный Help с примерами и контекстная подсказка. Для вызова надо установить блок на поле программы и через контекстное меню выбрать Help или нажать Ctrl-H и водить курсором по блокам.
- И совсем дурацкий вопрос... что-то везде по-разному пишут - там арифметика с плавающей точкой вообще есть?
Есть. Имеется тип float, а блок f(x) понимает основной набор математических функций. Для этого нужен патч 2.9.4.