Linklist

14 Aralık 2015 Pazartesi

Circular Buffering

Keywords for a google search about the subject: Data bufferingbufferingqueue implementationFIFO buffer, ...

Lately I come across similar questions about buffering mechanism in automation engineering forums. I've already written a simple introduction to this problem two-three months ago in Turkish. When I see the same question in linked-in, I wanted to translate this blog into English...

The very first introduction is to understand when to decide to use a buffering mechanism.

Assume, there is conveyor and a camera is evaluating parts on the entrance of this conveyor. At the end of the conveyor, there is a gripper to pick&place the incoming parts, and a boxer is taking out the defected products out of the converyor belt. To make it simple, lets assume that any two parts gap distance is fixed. So a conveyor with a limited length can carry a fixed number of parts. Which can simply be calculated as;

iMaxPartNumberOnConveyor := iDistanceBetweenCameraAndConveyorEnd / (iPartLength + iGapLength);

So our buffer should have at least that much empty cells...