Can somone help me understand this?

Bullzi

Lifetime Supporting Member
Join Date
Jun 2012
Location
Colorado
Posts
1,530
Hi everyone,
In the attached screen shot I am using a SCLP to scale a 0-100% input to 0-61681 to send to a Flex I/O Analog Output Module. The input is at 100 and the output is showing -3855. I know I am getting full scale on the output but why is the display showing -3855 instead of 61681?
It is working so I am not all that concerned about it but I would like to know why this is happening?

Thanks for the help.

Capture.JPG
 
Can you tell us the catalog number of the flex I/O module ?

I don't know of any analog output module that requires a raw data value that high
0-32767 maybe. I could be wrong though.
 
Last edited:
I think it is the 1794-OF4 module. Don't have the computer runnining now.
I have it set up for 4-20mA digital.
 
Check to see how the card is configured 2"s complement or binary. (see picture)post #7

If configured for 2's complement (or change it to it) then use 30840 for your "ScaleMax" value in your "SCLP" instruction.

I am not familiar with ControlLogix controllers, but my guess is the data format for tag
OUTPUT_FLEX_IO_RACK1:7:0.Ch1Data is a signed integer. Guru's please checkin.
 
Last edited:
I meant to put Binary in my last post. Not Digital. Long day!
Thanks for the info. It isn't a big deal just kind of strange to look at when you are troubleshooting.
 
I don't have any Point I/O to try and simulate it, maybe can try with something else.

It would be interesting to find out what was going on with that though.

Did you ever look and see what Data type your tag was?

If you do get this figured out please post back and let us know what it was.

Regards,
BCS
 
The actual bits for 61681 and -3855 are identical. It is just how they are interpreted that changes. By default, all integer values in Logix are signed, so that is how they are displayed. The Flex I/O module will interpret them as configured.

If you really want to eliminate the ambiguity, you could make your output a DINT memory tag, and then mask off the top 16 bits before MOVing it to your output module. I wouldn't bother though, better to just get used to numbering systems and their constraints.
 
I looked at the data type for the Output Channel and it is a INT. So I am sure that is why It looks weird. I am ok with keeping it that way. I just couldn't explain it to the customer what was going on.
 

Similar Topics

Please see attached file. I need this program in Function Block form but I am totally lost on this. Any help would be appreciated. Thanks!
Replies
2
Views
107
Took a new job and the controls schemes are fairly old and I'm used to Allen Bradley and Siemens. I'm looking to replace a pair of Superior...
Replies
1
Views
71
Hello, I have a question about fuses and how to calculate their required size. I understand that determining the appropriate fuse size isn't...
Replies
0
Views
90
I'm creating an HMI that has a recipe with 288 data point. It has 3 pieces of data for 96 segments. I need help with VBA code to copy all 288...
Replies
0
Views
105
I have a network with 4 PLCs PLC1 is controllogix and PLCs 2-4 are compactlogix and they all need to communicate. The current way I have this...
Replies
8
Views
200
Back
Top Bottom