SoftwareJanitor
Member
First of all, my thanks to the following members who tolerated my recent bellyaching about the scaling of input values in the thread "ControlLogix (RSLogix5000 Scaling Mystery)" :
jkerekes, Ron Beaufort, nhatsen, scott.lawrence, dmargineau, proof, daba, ryangriggs, Dravik, robertmee, rdrast, ASF, OKiePC, and mellis. Thanks to you all.
Just amazing how much assistance you can get on a site like this - from people all over the world - at virtually any time of the day or night. The joys of the Internet, right?
=================
But after all that discussion about scaling and what to do with out-of-range values, the following enhancement came to mind:
Give the ability to qualify the out-of-range values as a percent of (engineering) scale. Call it "Calibration Percent". So, in my case, after specifying my 4-20mA raw, and 0-10,000 ppm engineering scales, I would also enter 1% in the "Calibration Percent" box, which would automatically either set a bit, or alternately trigger an event of some kind. This would be better than the bit which currently exists (which only tells part of the story).
Also, instead of having to create a second input tag to copy the "clipped" out-of-range input to, why not change the alias tag to be a *separate* tag (call it "Engineering" tag) that the I/O Card automatically copies the "clipped" value to.
So now, you actually have some "automation" in your automation code. All you have to do is configure it up-front. The card takes care of:
1.) Storing the raw I/O input into the ugly-named I/O tag (so you can still display it)
2.) "Clipping" the raw I/O input value per the engineering range and storing into the "engineering" tag for use in your logic.
3.) Determining via the "Calibration Percent" value whether the instrument is out of calibration or not
4.) Setting the "Out of Calibration" Bit (to be read in the program, or trigger an event).
============
To me, anything that any software developer is doing repeatedly, all the time, and pretty much the same way across the board, is a candidate to be automated via macro or hardware implementation. This solution would remove all that unnecessary logic in ladder programs.
What do you think?
jkerekes, Ron Beaufort, nhatsen, scott.lawrence, dmargineau, proof, daba, ryangriggs, Dravik, robertmee, rdrast, ASF, OKiePC, and mellis. Thanks to you all.
Just amazing how much assistance you can get on a site like this - from people all over the world - at virtually any time of the day or night. The joys of the Internet, right?
=================
But after all that discussion about scaling and what to do with out-of-range values, the following enhancement came to mind:
Give the ability to qualify the out-of-range values as a percent of (engineering) scale. Call it "Calibration Percent". So, in my case, after specifying my 4-20mA raw, and 0-10,000 ppm engineering scales, I would also enter 1% in the "Calibration Percent" box, which would automatically either set a bit, or alternately trigger an event of some kind. This would be better than the bit which currently exists (which only tells part of the story).
Also, instead of having to create a second input tag to copy the "clipped" out-of-range input to, why not change the alias tag to be a *separate* tag (call it "Engineering" tag) that the I/O Card automatically copies the "clipped" value to.
So now, you actually have some "automation" in your automation code. All you have to do is configure it up-front. The card takes care of:
1.) Storing the raw I/O input into the ugly-named I/O tag (so you can still display it)
2.) "Clipping" the raw I/O input value per the engineering range and storing into the "engineering" tag for use in your logic.
3.) Determining via the "Calibration Percent" value whether the instrument is out of calibration or not
4.) Setting the "Out of Calibration" Bit (to be read in the program, or trigger an event).
============
To me, anything that any software developer is doing repeatedly, all the time, and pretty much the same way across the board, is a candidate to be automated via macro or hardware implementation. This solution would remove all that unnecessary logic in ladder programs.
What do you think?
Last edited: