Страница 1 из 1

Certified LabVIEW Developer - CLD

Добавлено: 12 июн 2008, 14:00
Eugen Graf
Собираюсь в ближайшем будущем сдать экзамен на CLD, пора готовиться. И так на сайте NI нашёл примеры заданий. Хотелось бы узнать зачем они в примере светофора использовали Queued State Machine, когда можно было использoвать обычную?

http://zone.ni.com/devzone/cda/epd/p/id/1665

Сэнкс

Re: Certified LabVIEW Developer - CLD

Добавлено: 01 сен 2008, 22:43
mzu2006
Зачем в примере про светофор нужна Queued State machine - мне тоже непонятно. Я бы тоже использовал нормальную State Machine. Например так как в приложенном решении. Документация в решении отсутствует, по всем остальным вопросам - просьба критиковать.

То, что я реализовал управление временем, которое светофор проводит в одном из состояний через ожидание Notifier который приходит только по нажатию кнопки "стоп", я считаю правильнее, чем каждый раз подсовывать то же состояние на вход очереди, как в примере у NI.

Re: Certified LabVIEW Developer - CLD

Добавлено: 01 сен 2008, 22:54
Eugen Graf
Я так понимаю нотифаер ты использовал лишь для того, чтобы можно было остановить прогу в любой момент?
Иначе и нотифаер тоже лишний, т.к. можно просто использовать обычную задержку, а для остановки цикла саму кнопку стоп.

Я в таких случаях использую задержку около 1 секунды в цикле for. А количество итераций задаётся из автомата. Тогда прогу тоже можно остановить, правда с задержкой в 1 секунду. Но есть и позитивная сторона - можно обойтись всего одним циклом.

Ну а что же будет если я на экзамене так и сделаю? Мне засчитают пункты или не засчитают?

Re: Certified LabVIEW Developer - CLD

Добавлено: 01 сен 2008, 23:04
mzu2006
Я так понимаю нотифаер ты использовал лишь для того, чтобы можно было остановить прогу в любой момент?
Да, именно так.
Тогда прогу тоже можно остановить, правда с задержкой в 1 секунду
В спецификации задачи, сказано, что время реакции не должно превышать 100ms. :(
Иначе, ты совершенно прав, нечего городить огород, можно обойтись просто одним циклом и кнопкой стоп в этом цикле.

В списке пунктов по которым оценивается экзамен пункт про 100ms упомянут прямо.

Re: Certified LabVIEW Developer - CLD

Добавлено: 01 сен 2008, 23:05
Eugen Graf
Ну так можно сделать и 100 мс, а количество итераций умножать на 10. Какие проблемы. :wink:

Или они всё таки больше налегают именно на знание моей на самом деле любимой палитры синхронизации?

Re: Certified LabVIEW Developer - CLD

Добавлено: 01 сен 2008, 23:33
mzu2006
Ну так можно сделать и 100 мс, а количество итераций умножать на 10.
в принципе можно. Но NI не рекомендуют этот метод. В своём webcast http://zone.ni.com/wv/app/doc/p/id/wv-179 сказано, что такой метод будет подвержен дрожанию (jitter). Всякая задержка (timeout в том числе) определяется с точностью до одного timeslice. В винде он зависит от архитектуры компа и от версии винды. Составляет он порядка 20ms (Я сейчас не помню точное значение). Иными словами, 40 итераций по 100 ms могут вылиться в 40*(100+-20), т.е. время ощутимо уйдёт . При этом каждый раз немного по другому. Когда ты делаешь задержку на 4 секунды одной командой, то дрожание в 20ms незаметно.

Есть второе "высочайше одобренное" решение: поставить задержку в 2ms, но при этом завести lv2 функциональную переменную для хранения стартового времени (примерно как в примере с мойкой машин). При переходе в каждое новое состояние она инициализируется. А потом, переход к следующему - только при достижении заданного времени. Погрешность примерно такая же, как и с notifier, но можно что-то сделать в промежутке. (например, отображать оставшееся время)

Оба этих подхода можно успешно совместить: Для больших приложений, я делал специальную нить таймера, которая раз в 100ms высылала сообщение, всем другим подписавшимся нитям. Тогда, прождав ровно n сообщений можно чётко контроллировать паузу, а к тому же, делать что-то параллельно ожиданию, не нарушая синхронизации. Но реализовывать это на экзамене ... времени не хватит по моему :)
моей на самом деле любимой палитры синхронизации
Моей тоже :)

Re: Certified LabVIEW Developer - CLD

Добавлено: 01 сен 2008, 23:39
Eugen Graf
Всё, спасибо большое. Весь смысл сказанного понятен.

Ну а как вообще экзамен то? Отношение времени и сложности задания? Что надо было делать кроме основного задания? Какая версия LabVIEW была на экзамене?

Ну а самое главное - может ли человек, имеющий каждодневынй 4-х летний опыт работы на LabVIEW сдать этот экзамен?

Кстати, на счёт критики. Вместо нотифаера в который ты вписываешь какой то ненужный ноль, я бы использовал то что сюда больше подходит - occurence. Так как тебе всего лишь надо генерировать один единственный event "стоп".

Re: Certified LabVIEW Developer - CLD

Добавлено: 02 сен 2008, 02:23
mzu2006
Вместо нотифаера <пропущено> я бы использовал <пропущено> occurence
Согласен. Так элегантнее

Re: Certified LabVIEW Developer - CLD

Добавлено: 07 авг 2014, 06:51
Oleg B.
Несколько минут назад получил подтверждение, что CLD экзамен успешно преодолён.

Re: Certified LabVIEW Developer - CLD

Добавлено: 07 авг 2014, 07:45
ESeid
Oleg B., мои поздравления!

Re: Certified LabVIEW Developer - CLD

Добавлено: 08 авг 2014, 08:47
Pavel Krivozubov
Олег, поздравляю!

Re: Certified LabVIEW Developer - CLD

Добавлено: 24 июл 2018, 18:51
K0sinus
Почему с 2014 года никто не пишет? Никто больше не сдает экзамены? Или уже все сдали? Я правильно понял, что теперь можно сдавать CLD не имея CLAD?

Re: Certified LabVIEW Developer - CLD

Добавлено: 30 июл 2018, 22:18
Kosist
K0sinus писал(а):Я правильно понял, что теперь можно сдавать CLD не имея CLAD?
Да, теперь можно сразу сдавать CLD без CLAD сертификата.