Моя модель программирования

Общие принципы, проектирование, модуляризация, темплейты и шаблоны
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Моя модель программирования

Сообщение Konstantin Sumenko »

Я редко, но применяю сдвиговые регистры для ошибок, в таком случае ввожу дополнительный кейс, где самые тяжелые ошибки вылетают предупреждением на экран (вроде истечения таймаута при общении с прибором и т.д.).
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Моя модель программирования

Сообщение Eugen Graf »

Но а при чём тут сдвиговый регистр? Покажи примерчик если не трудно.
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Моя модель программирования

Сообщение Konstantin Sumenko »

Примерно так.
Вложения
Error.vi
(25.71 КБ) 399 скачиваний
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Моя модель программирования

Сообщение Eugen Graf »

Ага, понятно. Если я и использую кластер ошибки то по-другому:
Вложения
ErrorHandler.png
ErrorHandler.png (7.28 КБ) 12721 просмотр
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Моя модель программирования

Сообщение Konstantin Sumenko »

По большому счету это одно и то же :drink:
Понятно.
Аватара пользователя
Nemo
user
user
Сообщения: 97
Зарегистрирован: 26 июн 2008, 11:48
Версия LabVIEW: 8
Откуда: Россия
Контактная информация:

Re: Моя модель программирования

Сообщение Nemo »

Здорово, а я то же хочу научится пользоваться Event структурой, но пока не получается, дальше линейного программирования не продвинулся, вот :dntknw:
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Моя модель программирования

Сообщение mzu2006 »

Про shift register для ошибки. Я использую его, например, так: т.е. ошибка из кадого текущего состояния передаётся
наружу, и при необходимости система переходит в состояние Error. Это состояние единственное, которое использует ошибку, входящую через shift register
Вложения
1.JPG
Confocal
assistant
assistant
Сообщения: 104
Зарегистрирован: 15 авг 2008, 11:55
Версия LabVIEW: 8.5
Откуда: Россия, Московская область
Контактная информация:

Re: Моя модель программирования

Сообщение Confocal »

eg писал(а):Если потоку пришла команда на постоянное чтение порта например, то стартуется цикл считывания. Если во время считывания пришла новая команда, то цикл заканчивается и выполняет эту новую команду.
При чтении данных с порта, наверно, сама процедура чтения унифицируется для всех возможных вариантов ответов с порта или же делаются специфические варианты чтения. Т.е само чтение порта находится в одном месте потока?
Helga
user
user
Сообщения: 89
Зарегистрирован: 14 мар 2010, 10:14
Версия LabVIEW: 9
Контактная информация:

Re: Моя модель программирования

Сообщение Helga »

Может быть кто знает, что это за темплет?
Не знаем, так не знаем.
Последний раз редактировалось Helga 10 ноя 2011, 23:39, всего редактировалось 2 раза.
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Моя модель программирования

Сообщение mzu2006 »

мелкие надписи не все читаемы на рисунке. Прикрепите скрин к посту, вместо выкладывания его на радикале.
А так, напоминает Producer-Consumer с UI циклом и общим механизмом управления ссылками на очередь.
Helga
user
user
Сообщения: 89
Зарегистрирован: 14 мар 2010, 10:14
Версия LabVIEW: 9
Контактная информация:

Re: Моя модель программирования

Сообщение Helga »

Очень удобный темплет, но понятия не имею, кто его написал и где его распространяют. Может быть на курсах NI.
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Моя модель программирования

Сообщение mzu2006 »

Вот, если угодно, ещё 1 приятный template: http://lavag.org/files/file/168-tlb-top-level-baseline/
Пока, правда, в реальных проектах не применял.
Igor_G
assistant
assistant
Сообщения: 126
Зарегистрирован: 06 ноя 2011, 14:10
Версия LabVIEW: 2012-2016
Контактная информация:

Re: Моя модель программирования

Сообщение Igor_G »

Eugen Graf писал(а):А вот так выглядит мой Unified Cluster, который получают все параллельные потоки в моей программе. Общение между потоками идёт через очереди и юзер ивенты, находящиеся в этом кластере.
Евгений считаю твою модель программирования самой читаемой, т.е. понятной.

Единственное, что я не понял - как ты создал твой универсальный Unified Cluster вместе с Enum Typedef.
Здесь я к сожалению конкретно туплю.
Пробовал не получается даже что-то подобное.

Нельзя ли выложить твой Unified Cluster.ctl ??? Как конкретный пример.
Я делаю обычно толстый массив кластеров, как ctl и использую его. Но это намного корявей твоего решения.
Заранее благодарен, Игорь
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Моя модель программирования

Сообщение Eugen Graf »

Игорь, мой Unified Cluster состоит из массивов очередей, юзер ивентов и нотифаеров, enum typedefs он в себя не включает, это команды в виде цифр 1,2,3,4,5 .... Просто они при передаче команды преобразуются в цифры, а при чтении преобразуются обратно в enum. Посмотри Tasking2 Library, мы ей у нас на фирме серьёзно пользуемся, и пока мне не приказали её убрать из нета, её ещё можно скачать.
AI233
user
user
Сообщения: 73
Зарегистрирован: 22 ноя 2011, 12:23
Версия LabVIEW: 2011
Контактная информация:

Re: Моя модель программирования

Сообщение AI233 »

А вот фича, которая позволяет завершать параллельные циклы.

Изображение

Есть проблема. Нельзя установить ожидание появления элемента очереди.
Может кто-нибудь подскажет как устранить сей недостаток?

Изображение
Вложения
Actions.vi
(23.87 КБ) 314 скачиваний
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Модели программирования»