Fan Rotation Animation Problem

I was wondering if anyone can give me a solution to an animation issue I have been having.

I have a template that I am using that has fans rotating. I have taken a fan from the symbol factory and removed the background. I have only kept the black circle, and the fan. To get the animation of the of the fan spinning, I have a signal generator running (running property is bound of the fan status tag) and the angle property of the fan bound to the signal generator value. The fans spin correctly for about 15 minutes, and then they start to wonder off the page. I have had luck in the past, but for some reason this application doesn't want to cooperate.

I make sure that the height and width of the fans are the same.

My signal generator has an upper bound of 360, and a lower bound of 0.

I have tried locking the group in its size and location.

Any suggestions would be appreciated.

image

The solution, which also happens to also align with HMI standards, is to not animate the fans spinning. This exact issue has been discussed before and there has been no other solution, aside from using static image frames and controlling their visibility.
In an HMI, animations are a distraction for operators. Distractions should be reserved for fault conditions only, not normal operation conditions.

2 Likes

Thanks for your opinion, but it was requested by the operator :slight_smile:

Sometimes operators are their own worst enemy :smile:

If that's what they want then the only solution is to use the fixed frame method

1 Like

The problem arises from accumulated floating point error in the position properties due to the slight inaccuracies.
Kapture 2022-12-22 at 13.26.46

In Vision, there's no great solutions for this.
One option would be to use a script, instead of a binding, to update the angle. Immediately after updating the angle, force the position properties to the nearest whole number; that should prevent accumulating error (and thus drift) over time.

That can only occur if accumulating them instead of recalculating from (x, y) * r * (sin θ, cos θ). :frowning_face:

I know this isn't a popular option, but use a GIF and be done with it. :grinning:

1 Like

Try adding a style value of "transform-origin: center" to the impeller group, or the group controlling the animation. It is not in the drop-down, but it works.

While this topic isn't flagged as Vision, fairly certain this was Vision, not Perspective.

2 Likes

I would use one of the Ignition sample tags, like Randominteger1, and attach it to the Angle Tag. (Group_impeller_blades) then use a boolean on the visibility to let you know whether the fan is running or not.