Сложные If LabVIEW
Предыстория: я пытаюсь настроить проигрыватель DMX в LabVIEW, у него есть два параметра поворота: грубый (360 градусов в 255 точках) и точный (1 градус в 255 точках). Мне нужно иметь возможность сначала выполнить команду, чтобы перейти к ближайшей доступной позиции DMX в грубом режиме, а затем компенсировать разницу в точном режиме.
например, я хочу повернуть на 90 градусов, это эквивалентно значению DMX, равному 63,75, однако оно округляется до 63. Реальное значение в градусах теперь составляет 88,94, поэтому мне нужно добавить дополнительные 1,06 градуса, используя точную настройку (Я могу сделать только 1 градус, но 89,94 достаточно близко к 90).
Я могу выполнить грубую настройку очень хорошо, однако мне нужно какое-то выражение "если", чтобы сказать "если реальное значение степени меньше входного значения, восполните разницу". Структуры Case не обеспечивают достаточного контроля для использования этого сложного оператора "if", что я могу использовать вместо этого?
2 ответа
255 грубых шагов * 255 мелких шагов на грубый шаг = 65025 возможных шагов.
360 градусов / 65025 = ~ 0,00536 градусов за шаг.
Разделите желаемый угол на эту константу, затем используйте его в качестве входного значения X для отношения и остатка. Y будет 255. Коэффициент будет представлять грубое значение для корректировки, а остаток представляет собой точное значение.
63 грубых шага и 191 точных шага.
Вам не нужно никаких условий. Используйте функцию отношения и остатка с 255/4, чтобы получить 63 и 0,75. Сделайте грубое движение 63, затем возьмите 0,75 и умножьте его на 360. Это скажет вам много прекрасных шагов, которые вам нужно сделать (270, то есть 255 + 15. Вы можете снова использовать Q&R, чтобы узнать, сколько всего ходов нужно сделать. и сколько у тебя осталось в последнем повороте).