Signal generator anomalies

I am using a signal generator to animate a fanuc style robot image. See picture below for settings. with the displayed settings, this works like a champ.
Incase the picture does not come through
Signal type: Triangular
Period: 8,000
Values/Period: 32
Upper Bound: 16.0
Lower Bound: 0.0

2021 07 21 Signal generator settings

If I change the Values/Period to 42, and the Upper Bound to 21 (There are 21 images), it will display from 0 to 21 on the count up. on the count down 21 to 18 are displayed, then it will start skipping numbers, and skips corresponding images until it gets back to 0. then will count up displaying properly, rinse and repeat

changed the Values/Period to 64, and Upper Bound to 32. That setting also worked flawlessly. Outside those two setting pairs I cannot get the system to display all the images on the countdown.

Has anyone seen this before?

Is there something I didn’t read and should have about the settings?

Was a patch released?

Any way to reliably have 21 images displayed with a triangle signal type through the entire cycle?

Any help is appreciated, thanks in advance,

Lee the ignition noob

Nothing works with anomalies for the signal generator. I see a perfect shape of triangle in the chart.
triangleSignal

Jespinmartin1, Thank you for the fast response. The signal generator on my side is doing just like yours is when set to 42/21. Counts up to 21 then back down to 0. The image being displayed will will be visible for the rising side of the triangle wave using the expression in each images property binding.

if({Root Container.Signal Generator 1.value} = 0, 1, 0)

and increment the first “0” to 21. One increment for each image.
The falling side of the wave however, the image that should be present for all 21 frames, is only Visible on the Values of 21, 20, 18,17,16, 13, 12, 9, and 4, during the countdown.

It then becomes visible at 0 and all the frames up to 21.

Thanks in advance for the help.

Lee

Sent this to Ignition support and they replied with this.

Aug 5, 2021, 2:54 PM PDT

Hi Lee,

it seems that the calculations on the way back down on the Triangular Signal mode are done a little differently and thus suffer from floating point precision, which means that the value from the signal generator is not not exactly at that number. What you can do is wrap the value from the signal generator in a toInt() expression to force it to an integer value instead of the double that the signal generator outputs. The revised expression would then look like if(toInt({Root Container.Signal Generator.value}) = 5, 1, 0) .

This worked, now the images appear as intended.

Hope this helps someone else

Lee