User Tools

Site Tools


array

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
array [2016/09/07 22:12]
asiadmin ↷ Page moved from documentation:array to array
array [2019/04/18 23:33] (current)
Line 1: Line 1:
 +====== ARRAY MODULE for ARRAY Scanning ======
  
 +This manual section applies to the ''​ARRAY MODULE''​ firmware module. ​ With the ''​ARRAY MODULE''​ included in the firmware, the controller will support functions associated with moving to specific locations in a 2-dimensional XY array of positions. ​ The module includes support for commands to define the size and spacing of the array and the location of the first position in the array. ​ There are also commands to address particular positions and sequence through the array either automatically,​ or with external TTL or serial command control.  ​
 +
 +<WRAP center round important 60%>
 +Note: ARRAY module doesn'​t account for HOME button , ZERO button and[[commands:​zero| ZERO command]] properly. Avoid using them when relying on ARRAY module to move the stage. ​
 +</​WRAP>​
 +
 +
 +===== Setting up the Array =====
 +
 +The [[commands:​array|ARRAY command]] is used to define the number of array points and spacing between rows and columns. ​ The X and Y parameters specify the number of columns and rows respectively,​ and the Z and F parameters specify the signed move distance in millimeters between columns and rows.  The command to set up the array for a standard 96 well plate would be:
 +
 +<wrap cmd> ARRAY X=12 Y=8 Z=9.0 F=-9.0 </​wrap>​
 +
 +These happen to be the default settings. ​ The Y-axis distance between rows is set as a negative number because the direction of motion to go from row A to row B on the well plate is in the negative direction of motion of the stage.
 +
 +The location of the first position in the array, the 1,1 location, is specified by the [[commands:​ahome|AHOME command]]. ​ The default value for the coordinates of the 1,1 position are 0.0, 0.0 in the controller’s coordinate system. ​ You need not even use the ''​AHOME''​ command if the stage is manually moved to the location of the 1,1 array position and then the ZERO button is used to set the coordinate zero to that location. ​ The ''​AHOME''​ command, with out arguments, will establish the current stage position as the 1,1 array position. ​ Hence, if you move the stage manually to the 1,1 location and issue ''​AH'', ​ the stage will maintain its original coordinate system yet have the correct offsets for the fixed array moves.
 +
 +==== Controlling Moves to Array Positions ====
 +
 +There are three ways to control the movement to array positions. ​ They are random access serial moves with the [[commands:​aij|AIJ command]], automated self-scanning,​ and TTL or serial commanded moves to the next array position. ​ As with any commanded move, TTL output pulses can be programmed to indicate the completion of the move to the array location using the [[commands:​ttl|TTL command]].
 +
 +==== Random Access Using Serial Command ====
 +
 +The serial AIJ command will command the stage to the any row j and column i coordinate:
 +<wrap cmd> AIJ X=i Y=j </​wrap>​
 +
 +=== Self-Scanning ===
 +
 +The entire array can be visited sequentially in either a serpentine or raster pattern. ​ Scanning is initiated manually with a quick press and release of the @ button, or by issuing the ''​ARRAY''​ command without any arguments. ​  The sequence will start by moving to the 1,1 location. ​ When the stage arrives on target, it will delay for a period of time set by the command ''​RT Z=time_delay''​ before continuing on to the next position.
 +
 +<WRAP center round info 60%>
 +To Get @ button to do ARRAY moves , issue serial command [[commands:​bcustom|BCA X=7]]
 +</​WRAP>​
 +
 +
 +=== Commanded Next Position ===
 +
 +The array can be traversed in order with moves made “on command” using either a serial command or TTL trigger pulse. ​ Using the TTL command, set the TTL input function to the array trigger using ''​TTL X=7''​. ​ Either a TTL pulse on the IN0 input, or the [[commands:​rbmode|RM command]] without arguments, will send the stage to the next array position. ​ Move to the 1,1 array position and gracefully start this scanning mode is the command ''​RM X=0''​. ​ When started this way, the sequence will complete after the last position is processed and subsequent commands (TTL pulse of ''​RM''​) to move to the next position will be ignored. ​
 +
 +<WRAP center round info 60%>
 +Note: Until TTL X=7 is set , RM command without arguments won't work, and @ Button press will do a Self-Scanning move 
 +</​WRAP>​
 +
 +
 +=== LCD Display ===
 +
 +The bottom line of the LCD display will show the state of the ''​ARRAY MODULE''​ state machine as well as the coordinate location of the current array cell.  The LCD status line should look something like this:
 +
 +{{ array_lcd.png?​direct&​300 |}}
 +
 +For arrays with 4, 8, or 16 rows, the Y address is shown as the corresponding alphabet characters – as is the common practice for standard well plate formats. ​ The meanings of the various state indicators are described below.
 +
 +|I |IDLE|
 +|S  |START|
 +|M   ​ |MOVING|
 +|D |DELAY|
 +|A |ARRIVED|
 +|N |NEXT_POSITION|
 +|C |COMPLETE|
 +|E |ERROR|
 +
 +When the state characters are displayed in lower case on the LCD display, the TTL IN0 interrupt is disabled pending completion of the current move operation.
 + 
 +===== Stage Scanning Speed and Accuracy =====
 +
 +
 +The leadscrew pitch of the stage will largely determine where on the speed versus accuracy continuum the stage will operate. ​ The table below shows typical performance for various pitches of leadscrew for a rotary encoded stage when no backlash correction is used, and the Finish Error is set to the resolution shown in the last column.
 +
 +^Lead Screw Pitch ^Maximum Stage Speed (mm/​s) ^Rotary Encoder Resolution(nm) ^Typical Performance ^^^^
 +^::: ^::: ^::: ^Time to traverse 96 well-plate (s) ^Time /9 mm move (s) ^Time /0.2 mm move (ms) ^Fast Positioning Resolution (μm) ^
 +|A – 1.58mm |1.7 |5.5 |644 |6.7 |235 |0.08|
 +|B – 6.35mm |6.8 |22 |160 |1.67 |70  ​   |0.25|
 +|C – 12.7mm |13.5 |44 |79 |0.82 |49  ​   |0.5|
 +|D – 25.4mm |26 |88  ​   |47 |0.48 |40 |1.0|
 +
 +Opening up the Finish Error to about 10 rotary encoder counts allows the move to complete quickly rather than have to hunt for on-the-count precision.  ​
 +
 +===== Serial Commands =====
 +
 +Serial commands related to ARRAY MODULE
 +
 +{{topic>​array +commands}}
 +
 +
 +{{tag>​advanced_feature array ms2000 tiger}}
array.txt · Last modified: 2019/04/18 23:33 (external edit)