Queueing data on a AB SLC 500

Pinheiro

Member
Join Date
Feb 2011
Location
Hamilton, NZ
Posts
3
I am using RSLogix 500 to program an AB SLC 500. I need to queue weights from a checkweigher into the SLC 500 memory for late retrieval by another application.

Is it best to use the FFL and FFU commands, or is it better to use indirect addressing?

Does anyone have a code that I could use as starting point for either solution?
 
I am using RSLogix 500 to program an AB SLC 500. I need to queue weights from a checkweigher into the SLC 500 memory for late retrieval by another application.

Is it best to use the FFL and FFU commands, or is it better to use indirect addressing?

Does anyone have a code that I could use as starting point for either solution?

It all depends on how the other application is retrieving the data, how often, what happens if it doesn't, etc.

A FIFO can only have a fixed number of elements, and the other application can only read one element at a time so that the PLC can move the FIFO pointer accordingly. It can all get messy....

Much better IMHO to store the data in logical "blocks" that the other application can read 'en masse'.

Indirect addressing in Logix500 will (by default) only allow you to address within 1 data file (256 elements), although you can disable the file boundary constraints and use multiple contiguous files as a "big file".

More detail of your applications data-retrieval requirements is needed to advise better.
 
Hi daba, thanks for the help.

The external application is retrieving data via OPC, one record at a time. I was thinking of using a handshake bit to be latched by the PLC once data is available and unlatched by the external application once the top record from the queue is retrieved.

Each record would consist of the following elements: weight, overweight limit, overweight flag, underweightr limit, underweight flag, and the production lot of the current run.

If the external application does not retrieve the data, the PLC code would keep on overflowing the old data with new data once the queue is full.

Could you please expand (or point me in the right direction) on your comment about storing data on logical blocks for en masse retrerieval? I am not aware on how to do that but I got very interested.
 
Questions....

How frequently does the check-weigher weigh something ?

How frequently does the external application request the weight data ?

What is the external application ?

What SLC500 are you using ?

How much free memory does it have now ?

Need to know more about the dynamics of what you are trying to do.
 
Checkweigher weighs something every 30 seconds.
We can not guarantee the external application operation.
The external application is an in-house data collection application based on OPC technology.
We use different models of SLC 500's and PLC 5's.
We have plenty of memory available.
No timestamp and no product stamp at PLC level. The external application will timestamp the records once retrieved.
 
I use a rolling queue on each end. There are pointers that are shared between the controllers. I store up to 256 records total.

The receiving PLC sends it's pointer to the other controller at all times and reads the pointer in the scale system at all times.

The scale also sends the data corresponding to the PLC side pointer (barcode, weight, time, sort lane).

The PLC pokes this data into those positions in its files (indirect addressing with the PLC pointer).

The PLC then compares the pointers and increments its's own if they are not equal. (If they are equal, it is "caught up".)

This in turn triggers the next message.

This allows the systems to be disconnected for up to 256 packages before data would be lost.

My setup does up to 28 cases per minute, so this is a pretty short time.

My system will fail to sort if the message from the scale is not delivered within about 4 seconds but my rolling queue does allow for intermittent comms rates and commonly runs 1 to 3 messages "behind". I figured there was no penalty to use whole files (I had plenty of memory too) to do this since there's no data shuffling going on.

I can't post the code.
 
Last edited:

Similar Topics

So I have wrote up a queueing sequence for a set of conveyors on one of my food production lines. The way the conveyors function is all the...
Replies
3
Views
1,994
Has anyone migrated Proficy Historian data to a new server? I followed the guide to move all the data over, but when I run the utility, it stops...
Replies
0
Views
33
I cannot add SLC500 analog input tag (I: 8.3) to EZSeries Touch Panel Editor (V 5.3). I used all the listed tag datatype but it all says "Invalid...
Replies
8
Views
140
Hi, Wy we log data in PLC using DLG instruction, when we have option to log data in HMI
Replies
1
Views
71
Hi, I cannot find the DLCA1764.EXE utilty software for data retrieving. Can someone share the link to download this software. Thanks!
Replies
4
Views
89
Back
Top Bottom