PDA

Просмотр полной версии : Конфигуратор СП300 и Анимация движения



-=Vovka=-
16.10.2018, 10:10
Нарисовал квадрат. Нужно, чтобы используя биты, заставить его делать следующие действия:
1. Движение вверх
2. Движение вниз
3. Стать в крайнее нижнее положение
4. Стать в крайнее верхнее положение

В свойствах "Анимации движения" нет битов ни реверса движения, ни второго крайнего положения :(
Как быть?

Евгений Кислов
16.10.2018, 10:14
Нарисовал квадрат. Нужно, чтобы используя биты, заставить его делать следующие действия:
1. Движение вверх
2. Движение вниз
3. Стать в крайнее нижнее положение
4. Стать в крайнее верхнее положение

В свойствах "Анимации движения" нет битов ни реверса движения, ни второго крайнего положения :(
Как быть?

Добрый день.
Анимация движения предназначена для перемещения элемента по заранее известной траектории.

Вам лучше использовать элемент Статический текст (без текста он будет именно прямоугольником) и с помощью логики, написанной в ПЛК или самой панели, влиять на его регистры перемещения:

39241

Также рекомендую изучить пример:
http://www.owen.ru/uploads/example_animation.zip

-=Vovka=-
16.10.2018, 10:19
Добрый день. Дело в том. что у меня не совсем прямоугольник, а вагонетка, нарисованная несколькими прямоугольниками и с заливкой
39242

Евгений Кислов
16.10.2018, 10:26
Сгруппируйте ваши прямоугольники (выделить все элементы рамкой - ПКМ - Сгруппировать) - тогда в настройках появятся регистры перемещения.

-=Vovka=-
16.10.2018, 10:48
Спасибо, этот вариант подходит! Единственный минус, так это придется делать массив ХУ чтобы подобрать координаты перемещения

По поводу примера. В "Динамическое перемещение" кнопки Вверх и Вниз привязаны к регистру PSW281, а кнопки Влево и Вправо к PSW280.
Но вот нигде не нашел как они при нажатии изменяют значение их регистров?

Евгений Кислов
16.10.2018, 11:20
Спасибо, этот вариант подходит! Единственный минус, так это придется делать массив ХУ чтобы подобрать координаты перемещения

По поводу примера. В "Динамическое перемещение" кнопки Вверх и Вниз привязаны к регистру PSW281, а кнопки Влево и Вправо к PSW280.
Но вот нигде не нашел как они при нажатии изменяют значение их регистров?

Там в кнопке действие на зажатие подвязано:

39251

Проверка границ экрана - в макросах.

-=Vovka=-
16.10.2018, 11:27
Да, есть такое - не заметил. Спасибо.
Вот только движение, используя массив, не особо нравится: у меня нижние ху-координаты 497:640, а верхние 839:36. Большие массивы получаются для плавного движения... Может как-то проще можно сделать?

Евгений Кислов
16.10.2018, 11:29
Да, есть такое - не заметил. Спасибо.
Вот только движение, используя массив, не особо нравится: у меня нижние ху-координаты 497:640, а верхние 839:36. Большие массивы получаются для плавного движения... Может как-то проще можно сделать?

А зачем вам массивы? Инкрементируйте значение регистра в цикле с нужным вам шагом.

-=Vovka=-
16.10.2018, 11:38
Так в том-то и дело, что чтобы вагонетка ехала по заданной прямой, координату х придется инкрементировать с разным шагом: экран панели не квадратный и траектория не 45 градусов

Мимоход
16.10.2018, 15:33
Так в том-то и дело, что чтобы вагонетка ехала по заданной прямой, координату х придется инкрементировать с разным шагом: экран панели не квадратный и траектория не 45 градусов

А что формулу приращения координаты Y как функцию от приращения по X типа Y = k * X сложно добавить?

Мимоход
16.10.2018, 16:18
39269

Здесь к = - 310 / 110
310 - относительное расстояние по Y
110 - относительное расстояние по Х
формула
PSW257 = PSW256 * (-310) / 110

39270

-=Vovka=-
17.10.2018, 15:42
Спасибо, пробую...