Советы по программированию на LabVIEW
Добавлено: 06 фев 2008, 21:51
Постараюсь в этой теме опубликовать советы начинающим, а может быть даже и продвинутым программистам. Сразу говорю что они не являются доктриной, но могут помочь избежать частых ошибок а так же спланировать ход действий при реализации проекта.
Если у вас возникнут вопросы, вы не согласны с каким либо пунктом или же вы хотите добавить в список что нибудь своё, то обсуждаем это здесь.
1. Старайтесь умещать блок диаграмму виртуального инструмента в размер экрана, а лучше ещё меньше. Создавайте подприборы, это поможет быстрее найти ошибки в программе и избежания редундантности кода. Ведь один и тот же подприбор можно использовать в программе много раз.
2. Используйте кластеры. Блок диаграммы с использованием кластеров "удобочитаемы", помогают при поиске ошибок в программе, уменьшают количество соединений, входов и выходов подприборов.
3. Не пытайтесь перепрограммировать код, написаный на другом языке программирования, в LabVIEW один к одному. Такие программы нерационально используют возможности LabVIEW, так как придуманы для другого языка. Лучше почитайте книги/уроки и изучите основы программирования на LabVIEW.
4. Очень важно понять самый главный принцип программирования на LabVIEW - это "Data Flow". То есть любой подприбор и узел в блок диаграмме начинает своё выполнение только тогда, когда на всех соединённых входах есть какое либо значение. Для сравнения: во многих текстовых языках следующая строка кода выполняется только тогда, когда выполнена предыдущая независимо от того какие значения имеют параметры функции. Это и является главным отличием текстовых языков программирования от LabVIEW.
5. Если вы не укажите зависимость/последовательность одной части диаграммы от другой например соединив эти части между собой проводом, то части будут выполнятся, что называется, почти параллельно и независимо друг от друга. Не думайте что часть кода, помещённая слева от другой части, но не соединённая с ней выполнится вперёд. А иногда даже и соединённые части кода выполняются не так как задумано. Обязательно узнайте что такое Data Flow, а так же Race Conditions, во избежании непонятных глюков в вашей программе.
6. Ведите соединения ровно, старайтесь избегать пересечения соединений и не прятать соединения под другие элементы блок диаграммы.
7. При создании подприборов выбирайте тип коннектора 4-2-2-4, то есть четыре входа слева, два сверху, два снизу и четыре выхода справа. При этом используйте нижний левый вход и нижний правый выход для соединения кластера ошибки.
8. Прорисовывайте иконки подприборов. Если вас не устраивает редактор иконок встроенный в LabVIEW загляните сюда, должно понравится.
9. Комментируйте блок диаграмму. Для этого всего лишь надо кликнуть мышкой два раза в любое место блок диаграммы и написать пару слов-пояснений.
10. Старайтесь не использовать какие либо переменные для временного сохранения а тем более для передачи данных в параллельные процессы. Для первого существуют сдвиговые регистры, а для второго палитра синхронизации.
11. Избегайте использования Express VIs в программах. Рано или поздно вы захотите добавить какую нибудь фичу, а Express VIs окажутся не настолько гибкими как надо и придётся многое переделывать.
12. Закрывайте все открытые референсы, файлы, порты и т.д., если референсированный объект далее в программе не используется.
13. Давайте приборам вменяемые имена, указывайте их назначение и принадлежность к библиотеке. Создавайте виртуальные папки в проектном браузере для группировки приборов.
Если у вас возникнут вопросы, вы не согласны с каким либо пунктом или же вы хотите добавить в список что нибудь своё, то обсуждаем это здесь.
1. Старайтесь умещать блок диаграмму виртуального инструмента в размер экрана, а лучше ещё меньше. Создавайте подприборы, это поможет быстрее найти ошибки в программе и избежания редундантности кода. Ведь один и тот же подприбор можно использовать в программе много раз.
2. Используйте кластеры. Блок диаграммы с использованием кластеров "удобочитаемы", помогают при поиске ошибок в программе, уменьшают количество соединений, входов и выходов подприборов.
3. Не пытайтесь перепрограммировать код, написаный на другом языке программирования, в LabVIEW один к одному. Такие программы нерационально используют возможности LabVIEW, так как придуманы для другого языка. Лучше почитайте книги/уроки и изучите основы программирования на LabVIEW.
4. Очень важно понять самый главный принцип программирования на LabVIEW - это "Data Flow". То есть любой подприбор и узел в блок диаграмме начинает своё выполнение только тогда, когда на всех соединённых входах есть какое либо значение. Для сравнения: во многих текстовых языках следующая строка кода выполняется только тогда, когда выполнена предыдущая независимо от того какие значения имеют параметры функции. Это и является главным отличием текстовых языков программирования от LabVIEW.
5. Если вы не укажите зависимость/последовательность одной части диаграммы от другой например соединив эти части между собой проводом, то части будут выполнятся, что называется, почти параллельно и независимо друг от друга. Не думайте что часть кода, помещённая слева от другой части, но не соединённая с ней выполнится вперёд. А иногда даже и соединённые части кода выполняются не так как задумано. Обязательно узнайте что такое Data Flow, а так же Race Conditions, во избежании непонятных глюков в вашей программе.
6. Ведите соединения ровно, старайтесь избегать пересечения соединений и не прятать соединения под другие элементы блок диаграммы.
7. При создании подприборов выбирайте тип коннектора 4-2-2-4, то есть четыре входа слева, два сверху, два снизу и четыре выхода справа. При этом используйте нижний левый вход и нижний правый выход для соединения кластера ошибки.
8. Прорисовывайте иконки подприборов. Если вас не устраивает редактор иконок встроенный в LabVIEW загляните сюда, должно понравится.
9. Комментируйте блок диаграмму. Для этого всего лишь надо кликнуть мышкой два раза в любое место блок диаграммы и написать пару слов-пояснений.
10. Старайтесь не использовать какие либо переменные для временного сохранения а тем более для передачи данных в параллельные процессы. Для первого существуют сдвиговые регистры, а для второго палитра синхронизации.
11. Избегайте использования Express VIs в программах. Рано или поздно вы захотите добавить какую нибудь фичу, а Express VIs окажутся не настолько гибкими как надо и придётся многое переделывать.
12. Закрывайте все открытые референсы, файлы, порты и т.д., если референсированный объект далее в программе не используется.
13. Давайте приборам вменяемые имена, указывайте их назначение и принадлежность к библиотеке. Создавайте виртуальные папки в проектном браузере для группировки приборов.