I am trying to simulate a production counter that would be stored in a PLC using the Ramp-Soak Interface. I would like the tag to count up by 1's to 65535, then reset to 0 and immediately restart counting back up. However, I can't get the interface to exhibit this exact behavior. The goal would be to have the ramp/soak excdesc look something like: (31.8,65535)(0,0)(29.6,65535)(0,0)(34.8,65535)(0,0)(57.6,65535)(0,0)(46.7,65535)(0,0)(23.5,65535)(0,0)(33.8,65535)(0,0)(23.6,65535)(0,0)(39.1,65535)(0,0). I want to vary the length of time it takes to reach the count. When I put the equation in like the above, I get something that looks like:
So, I have been experimenting. In blue, I simply put (1,65535)(0,0) and it repeats the saw tooth pattern I want. However, if I add a second repeat like this: (1,65535)(0,0)(1,65535)(0,0), then I get the pattern between the blue and the green. In green, I made a stationary tag that will vary between 24 and 60 and made the configuration look like ('my stationary tag',65535)(0,0) and it ramped up really quickly and back to 0 with slight pauses in between. In red, I did something like (1,65535)(2,0)(1,65535)(2,0) and the repeat happened immediately. So, it seems like the ramp soak configuration doesn't like a reset to 0 and an immediate ramp up afterwards. So, how do I do this simulation? I have thought of using a performance equation, but the ramp-soak behavior is what I want, but more immediate response.
I also note that numbers less than 1 get truncated - i.e. if I try to hold a value for 0.5 minutes or 30 seconds, it treats the 0.5 as 0 - i.e. the 0.5 at 65535 would be 0 seconds long: (1,65535)(0.5,65535)(0,0). Is this true and does the ramp-soak interface play well with floating point numbers or does it all need to be integers?