rs logix 500 registers

simmo231

Member
Join Date
Mar 2011
Location
newtown
Posts
12
Hi All,
I currently have a machine controlled with a micrologix 1100 programmed via rs logix 500, machine function is to control a Telesis (sic) that marks products with a unique datamatrix which is then verified for quality via a Cognex camera. after each cycle I move that string of information (ten digits) into a register (s:30/1) and then compare this string with the next one being printed, if the string of numbers are unique I then move the current set of numbers into s:30/1 and print the next product and so on, this only protects me for one unique number match and nothing that has gone before. my question is :- is it possible to move each string after the compare function is complete upto 2000 ten digit strings one string at a time to somewhere that they can all be compared each cycle against the current number being printed and then be removed for a new batch at the start of a new shift ???
 
What you want to do is probably possible in the ML1100, but it won't be easy. I say probably because that controller lacks some capability with string file indirection, only allows data file sizes of 256 elements, and doesn't have much memory for user data. So it would require multiple data files to store the compare strings.

This would be something that would be better offloaded to a programmable HMI or PC based application.
 
OkiePC,
thanks for reply, when you say offload to hmi, can you give me a bit more info on what you mean, I do have a panel view 800 attached to this machine but unsure if any use for your suggestion Â…
 
I doubt that you can do this with a Panelview 800. If you were to trade it for a Red Lion, then you stand a chance with a function like this:

Code:
/* This function accepts a string input parameter
 and returns the number of matches found in the data 
 array St_Data.  If no matches are found it returns -1 */
 
match := 0;
int i;
for (i :=0 ; i < 2000; i ++ )
	if (St_Data[i] == St_Input) {
		match++;
		}
if ( match == 0 ) match := -1;
return match;

There might be some Allen Bradley HMI users out there who could translate this to function in one of their offerings...I don't use Allen Bradley HMIs unless absolutely forced into it and paid excessively to deal with them...
 
It has been a long time since I have used onw but I think the Telesis unit has some serialization capabilities. At least the ones I came across many moons ago. Maybe you can use that?
 
It should be possible to do this on the 1100, depending how much memory is available beyond the existing code and data, but I agree it would be better to offload it to summat else.

Tl;dr

A linear search/compare might cause watchdog timeouts, so a binary search would be best, 2000 DINTs might work if the 10-digit numbers are less than 4Gig, requiring 8 256-DINT data files as FIFOs, and maybe another one for caching so the binary (or even linear) search does not have to be duplicated 8 times, ...

yada yada, do it someplace else
 

Similar Topics

I'm having trouble preparing some data for use with Modbus. I have to send and receive each parameter over 2 16 bit registers and the I can't...
Replies
6
Views
2,594
Hi Everyone, I am not proficient in RSLogix 500 so I have a question regarding the evaluation of N7:0 data as an input. So as I understand in...
Replies
1
Views
80
I have been working on this for a while now and I can't seem to get it. I was finally able to view the 1500 on the PanelView under the serial...
Replies
1
Views
78
I have a little bit of experience with Allen-Bradley. I have a Micrologix 1500 (RSLogix 500) and a PanelView Plus 7 (FactoryTalk View Studio ME)...
Replies
3
Views
159
buen dia. tengo una falla al pasar los tags de mi plc SLC 5 0/4 a mi panel me aparece un error Problem writing value " " to item <tag name>...
Replies
1
Views
81
Back
Top Bottom