Silly AB Programming Question about scp outputs

Russs

Guest
R
I wanted to monitor an exhaust duct temperature to see what the maximum value was.
The exhaust duct has an rtd. This input is converted via scp to an integer output.
Aside from the compare, which isn't an issue the move statement's location seems perplexing to me.
Initially the move statement was on the rung just before the scp. When trying to move the output word's value to another word it instead moved the analog value (from the rtd input???!!!). When I placed the move statement after the scp the desired integer value was moved.
But isn't the output word supposed to only be the Scaled with Parameter's output value? Why would the inputs value to in that location?


Just curious...


Thanks,
Russ
 
Russ,
I am thoroughly confused, but that's just being me.
Welcome to the forum, get on with the registration if you care to join. I have yet to receive any spam from registering on this site so I think it's OK. :site:
You can post your code (download a zip file) or get a screen shot inserted ino your reply window, or just simply double click on your rung and copy the text entry for the rung into your message. Then perhaps not only me, but many others may be able to better understand your question!

just a thought..

Bitmore
 
Bitmore I was thinking the exact same thing. Russ, please post the code or a picture of the code. I wasn't following your description either.

OG
 
OK - I know we shouldn't guess until he replies but I have one scenarion which is somewhat silly (hence his post title). If the analog value were initially copied into an integer register then the SCP were called with the output going INTO THAT SAME REGISTER then a MOV immediately befor the SCP would move the unscaled value while a MOV jsut after the SCP would move the scaled value. Let's see what comes up.
 
sounds like a great idea... give me a few minutes and I'll copy the exact code. :)
Gotta copy the code from laptop to pc...


Russ
 
Last edited:
With the code like this:



072----GEQ (A>=B)---------Mov----
a) N15:15 s) N15:15
b) N15:16 d) N15:16

073--------------------scp----
input) I:1.1
input min) 3277
input max) 16384
scaled min) -50
scaled max) 730
output) N15:15




the actual analog value (between 3277 and 16384) is mov'd into N15:16. But when the order of the rungs is changed (the scp rung is first) then the scaled value (-50 to 730) is mov'd to N15:16.
I looked in the logic for other occurrences of N15:15 and found a few. Two of them were for alarms (if the scaled N15:15>constant value then this output goes high). The other two occurrences deal with values outside of the input min/max range.
For instance is I:1.1<3277 then mov -50 to N15:15. Same for the max instance.

So there aren't any instances where the actual analog value from the input is mov'd to the word.
That is what's perplexing to me.....
 
If the tests for <min/>max are BEFORE the SCP instruction then the minimum and maximum UNSCALED value must be moved into N15:15. Please check that.
 
That's the crazy part... the min/max testing for signal out of range move the 'scaled' min/max value to the word...
But I found with the mov occurring before the scp the active analog input value was moved to the word (as in 9232, 9444, etc...). It was continuing to update itself as well.
Weird.....:unsure:
 
Actually - ignore my previous post - I'm not sure what I was thinking. It's too late for me to delete it.

Since what you are actually looking at (that is - the target of the move) is N15:16 please look for other occurances of it. Since you are only moving N15:15 to it when N15:15 is greater than N15:16, is there any place elese that might affect N15:16?
 
Last edited:
Russ,

if you're still having problems, how about just posting the entire program? ... in other words, zip up the whole doggone .RSS file and attach it ... we'd all be glad to take a look at it ...
 
I stared at that logic last night and could not come up with a reason why THAT logic would not be acting properly.

I plugged the logic into a controller here and as I suspected the rung order made no difference. The scaled output was always present. Never did the raw unscaled analog appear.

As bernie pointed out, there must be other logic affecting N15:16. Right-Click on N15:16 and choose Find All or Cross-Reference to help identify where. If you don't want to post a copy of your logic then maybe post a screenshot of the Find All results.

OG
 
Operaghost said:
I stared at that logic last night and could not come up with a reason why THAT logic would not be acting properly.

I plugged the logic into a controller here and as I suspected the rung order made no difference. The scaled output was always present. Never did the raw unscaled analog appear.

As bernie pointed out, there must be other logic affecting N15:16. Right-Click on N15:16 and choose Find All or Cross-Reference to help identify where. If you don't want to post a copy of your logic then maybe post a screenshot of the Find All results.

OG

that's what so amazing... I did both a find all and a cross reference before using N15:16.. yet came up with nothing.. there are no other occurrences of N15:16 anywhere, nor does it appear to have any part in an array...
 
Based on what you posted, it looks to me like N15:16 is used as a "historical maximum". If it isn't referenced anywhere else in your code (and you don't have a networked PLC/HMI writing the value on you), then the only time that N15:16 will be changed is if N15:15 is greater than N15:16.

As OG said - rung order should not matter. Also as OG said - I can't see how the "raw" analog could possibly be written to N15:16. If you are seeing something different, I'd be curious if you made a typo in your code posting . . .

I would look again at the Cross Reference, and I would also make sure that no networked equipment is writing to the N15:16 register.

Marc
 
The logic I'm talking about is ladder 2 rung 26 and 27. Rung 26 is the scp and rung 27 is the output...the scaled output word is N31:23 and my own max value word is N22:0.
When rung 27 occurs before the scp then N22:0 shows the analog value.. and I don't understand why. But at its current location it works fine....
The prog I use is RSLogix 500 Pro...


thanks,
Russ
 

Similar Topics

Is there a way to reset the count on the RS Logix BackUp?? XXXXX PROGRAM IN PROGRESS_BAK445.RSS XXXXX PROGRAM IN PROGRESS_BAK446.RSS XXXXX...
Replies
8
Views
268
Folks. Iv the luxury of replacing a PVP7 that got hosed down internally this morning. It happens here. I'm used to it. However, today, the...
Replies
16
Views
5,258
Hello everyone, this might be a stupid question but I will still ask lol I just start working at a new place and all the PLC programmer get...
Replies
3
Views
1,346
When assigning slave id's in Modbus, do the ID's need to be in the same sequential order as the devices in the chain? In other words, does the...
Replies
20
Views
4,678
I am installing my first Bardac PL DC Drive. Wiring and programming phase. I tried testing the drive healthy O/P. pulled the thermister and field...
Replies
2
Views
1,478
Back
Top Bottom