Hello
I'm still fairly new at PLC work, as my job requires much more than just PLC code, so I cant devote all my time to it, so please bear with me.
I have an application where the end customer will enter a desired time setpoint on a setup screen, generally 10 to 60 minutes. This timer will be triggered at the end of a process pumping cycle. When the main motor shuts off it triggers a change in pointer state that is on the enable rung of a TMRA timer. When the referenced timer times out, the system will change state again to its final idle state; where it waits for operator input to start another cycle.
I have it all written and functional, however I have issues with the display.
There is a status screen that will give a countdown value of this TMRA function and the display is being erratic. The numbers start fairly close, then actually increase in value before settling down and counting down to zero when the TMRA times out. When TMRA times out it resets itself and also drives another change in pointer state so that it will not be re-energized again until another run cycle is triggered and subsequently completed.
Here's the logic I am using:
I am using a 32 bit BCD input tag to a V1364 v-memory location to bring the user provided value. The C-More is scaling the value from minutes to tenths of a second for the TMRA preset.
The TMRA timer is reset by a rising pulse of its own output coil, or by the pump starting back up (if the user requests an immediate run).
The output countdown display of the TMRA function is obtained by taking the TMRA Preset and using the LDD function to load to the accumulator, SUBD subtracting the timer accumulated value; and then OUTD to write the result as a 32 bit BCD to a new Vmemory location, which I assigned to V1366.
Then the C-More takes V1366 and does another scaling back from the 32 bit BCD value in tenths of a second to minutes.
Like I said - it sorta works .... but if you watch the display carefully - its erratic.
If helpful I could maybe post screenshots of some of the relevant code.
suggestions ? and Thank You !
Jeff
I'm still fairly new at PLC work, as my job requires much more than just PLC code, so I cant devote all my time to it, so please bear with me.
I have an application where the end customer will enter a desired time setpoint on a setup screen, generally 10 to 60 minutes. This timer will be triggered at the end of a process pumping cycle. When the main motor shuts off it triggers a change in pointer state that is on the enable rung of a TMRA timer. When the referenced timer times out, the system will change state again to its final idle state; where it waits for operator input to start another cycle.
I have it all written and functional, however I have issues with the display.
There is a status screen that will give a countdown value of this TMRA function and the display is being erratic. The numbers start fairly close, then actually increase in value before settling down and counting down to zero when the TMRA times out. When TMRA times out it resets itself and also drives another change in pointer state so that it will not be re-energized again until another run cycle is triggered and subsequently completed.
Here's the logic I am using:
I am using a 32 bit BCD input tag to a V1364 v-memory location to bring the user provided value. The C-More is scaling the value from minutes to tenths of a second for the TMRA preset.
The TMRA timer is reset by a rising pulse of its own output coil, or by the pump starting back up (if the user requests an immediate run).
The output countdown display of the TMRA function is obtained by taking the TMRA Preset and using the LDD function to load to the accumulator, SUBD subtracting the timer accumulated value; and then OUTD to write the result as a 32 bit BCD to a new Vmemory location, which I assigned to V1366.
Then the C-More takes V1366 and does another scaling back from the 32 bit BCD value in tenths of a second to minutes.
Like I said - it sorta works .... but if you watch the display carefully - its erratic.
If helpful I could maybe post screenshots of some of the relevant code.
suggestions ? and Thank You !
Jeff
Last edited: