N90:[n94:7]

Hi - this is called indirect addressing. We use it for managing recipes for bottle conveyors. Typically we would use a COP and copy a number of parameters.

So if we have bottle type 1 we would move 1 to N94:7. If we had bottle type 2 then we would move 2 to N94:7. And so on for all the different bottles.

What this means is that in your instruction for bottle type 1 your instruction N90:[N94:7] would reference to N90:1. For bottle type 2 it would reference to N90:2.

Cheers
Peter
 
it is indirect addressing using the integer file N90 as the destination and the N94 integer file as the index (or pointer), somewhere in your program the value held in N94:1, 2 ,3 & 4 is modified to increment them, so the N90:[N94:1] (if N94:1 value is say 3) is pointing to N90:3 and moving the source value there.

I hope this clarifies

Steve
 
Two words for you: Bounds Checking.

Do it, or your PLC dies.


Hey RootBoy.
Do you mean it will fault if his pointer is pointing to a location that does not exist in the processor?
Maybe a little explanation.

I have not done much with Indirect addressing but there is some in a few of my programs.
 
It won't fault if it points beyond the specific data table (which is a bad thing to allow - usually*) but it will if it would point beyond the last data table.

* exception example - We had a need for 1000 integers in a row addressable by a single indirect. We created 4 250 element 'N' data files and did the indirect relative to the first one. E.g. we created N20 through N23. The addresses were used as N20:[0] through N20:[999]
 
It won't fault if it points beyond the specific data table (which is a bad thing to allow - usually*) but it will if it would point beyond the last data table.

* exception example - We had a need for 1000 integers in a row addressable by a single indirect. We created 4 250 element 'N' data files and did the indirect relative to the first one. E.g. we created N20 through N23. The addresses were used as N20:[0] through N20:[999]

Clever. I'm not sure that I would have tried that, but it is good to know.

I nailed a Logix5k when I forgot to follow my own advice. I was accessing the most recently created data structure, so it most likely was the last data table.

@PLC Pie Guy: It can, and I have the scars to prove it... :)
 
Clever. I'm not sure that I would have tried that, but it is good to know.

I nailed a Logix5k when I forgot to follow my own advice. I was accessing the most recently created data structure, so it most likely was the last data table.

@PLC Pie Guy: It can, and I have the scars to prove it... :)

I suppose you are suggesting that the controller will suffer a recoverable fault. One that may require manually clearing the fault or worst case, require a download of the program. You are not suggesting that the PLC will become junk, are you?
 
I suppose you are suggesting that the controller will suffer a recoverable fault. One that may require manually clearing the fault or worst case, require a download of the program. You are not suggesting that the PLC will become junk, are you?

No, none of that. It will just (just...) stop your PLC, and the process that it is running at the time.

Clearing the fault, editing your code so it won't happen again, and then restarting the PLC and the process, will get you going again.
 
No, none of that. It will just (just...) stop your PLC, and the process that it is running at the time.

Clearing the fault, editing your code so it won't happen again, and then restarting the PLC and the process, will get you going again.

That's what I thought.
It just seemed the way you spoke about "Nailing the PLC" you were implying much more serious consequences. However, I do understand how serious sopping a process can be. Luckily, MOST of my work is in food plants. To interrupt a process in most cases is merely an inconvenience more so than a tragedy.

Thanks for clarifying!
 
Thanks guys....I got it:site:

Now get this.... you can also indirectly address the file number AND a bit address in a Binary or Integer data file.

Yours by example.. N90:[N94:7] - the word address in file N90 is being indirectly addressed.

N[N94:6]:6 - the file number is replaced by the value of N94:6, and that file, element number 6 is addressed.

N[N94:6]:[N94:7] - both the file number and the element number are indirectly addressed.

N90:[N94:7]/[N94:8] - the element number of file N90, AND the Bit number of that element are indirect.

NB. You can only replace up two of the three 'parameters' - so N[N94:6]:[N94:7]/[N94:8] will not be allowed.
 
I have a little trouble finding out why N92:2/0 goes high. Where does it come from. I can not use the "find all" function
 
Last edited:

Similar Topics

Hello there, we have a problem with booting Sattconn90 DECserver... Booting failed on service called "s90_Queue_Manager". The message that is...
Replies
3
Views
1,724
Back
Top Bottom