Анимация в DOP-B

Aleksandr_Sorokin
Сообщения: 25
Зарегистрирован: 11 дек 2014, 06:31

Re: Анимация в DOP-B

Сообщение Aleksandr_Sorokin »

Добрый день!

Прошу подсказать по анимации. Топикстартер указал, что сделал анимацию вентилятора с помощью макроса. У меня стоит та же задача (пока в режиме оффлайн эмуляции), но не могу никак понять, как это сделать через, например, Background макрос. Насколько я понимаю, данный тип макроса выполняется постоянно, то есть закончившись, начинается сначала. Я не могу понять как правильно написать код в этом случае, чтобы в во внутренний регистр панели поочерёдно записывать числа от 1 до 4 и повторять это действие постоянно, тем самым вызывая анимацию.

Спасибо.

bayk
Сообщения: 887
Зарегистрирован: 30 май 2015, 21:20

Re: Анимация в DOP-B

Сообщение bayk »

Он просто в макрос сделал генератор импульсов заданной частоты через if then или ещё что. И этот параметр считывал в стейт индикатора. А туда грузил стопицот разных картинок.

Aleksandr_Sorokin
Сообщения: 25
Зарегистрирован: 11 дек 2014, 06:31

Re: Анимация в DOP-B

Сообщение Aleksandr_Sorokin »

Сделал следующим образом, может кому-то будет полезно.

Код следующий:

IF $200.0 == ON
$80 = $80 + 1
IF $80 == 17
$80 = 0
ENDIF
ENDIF


$200.0 - бит включения анимации;
$80 - регистр Multistate indicator.

Выбрал картинку из банка ModernFan, там есть картинка вентилятора на 17 положений. В $80 выбрал Word, State - 17, все картинки загрузил туда. Соответственно, сколько положений, таким и должно быть число в коде. При изменении бита включения анимация продолжает работать именно с места остановки, никаких рывков нет. Выглядит довольно неплохо.

Сначала делал этот код через Clock macro, меняя скорость вращения посредством изменения Clock macro delay time. Работает нормально, но иногда чуть подтормаживает.

Лучше всего работает через Background macro, ничего не тормозит (в режиме оффлайн эмуляции). Скорость вращения можно менять с помощью Background macro update cycle.

Ответить