Vous êtes sur la page 1sur 53

Table of Contents

Project Introduction ................................................................................................................ 3-12


Project Description........................................................................................................................................ 3
Network Block Diagram .............................................................................................................................. 4
Menu ............................................................................................................................................................ 5

Order Sheet .....................................................................................................................................6


PV Order Summary Screen .............................................................................................................7
CLX Panel .......................................................................................................................................7
Order 1 & 2 .....................................................................................................................................8
Sample Orders ........................................................................................................................... 9-10
Project Schedule ............................................................................................................................11
Project Logbook ............................................................................................................................12
Factory Talk View Interface ................................................................................................. 13-19
Human Entry Mode .......................................................................................................................13
Order Display Screen .....................................................................................................................14
VFD Control ..................................................................................................................................15
Sequencer Indexing Modes ............................................................................................................16
Order Display Screen18

Network Screen ..............................................................................................................................19


Control Logix Program ......................................................................................................... 20-25
FIFO Instruction.............................................................................................................................20
BTD Instruction .............................................................................................................................21
Condition Handler..........................................................................................................................21
Entrance Conveyor ........................................................................................................................22
Math Functions ..............................................................................................................................22
DNET and Barcode ........................................................................................................................23
Analog VFD ...................................................................................................................................24
Communication Module and Write Data .......................................................................................24
Auto Mode and Sequencer Steps ...................................................................................................25
Robot Programming .............................................................................................................. 26-30

Start Order Logic and Table Color ................................................................................................26


Card Suits .......................................................................................................................................27
Pallet Exit .......................................................................................................................................27
KAREL Calling Routines and DT Files ........................................................................................29
Circular Motion on TP and Conditions Handlers ..........................................................................30
Conclusions ............................................................................................................................. 31-37
Conclusion, Mitchell Moore .................................................................................................... 31-33
Conclusion, Nick MacDonald.................................................................................................. 34-37
Appendix A ............................................................................................................................. 38-54
Network Block Diagram ................................................................................................................39
Group and Digital I/O Configuration.............................................................................................40
Tool Frame and User Frame ..........................................................................................................41
Product Code..................................................................................................................................41
Teach Pendant Files .......................................................................................................................42
Robot Data .....................................................................................................................................43
Factory Talk Screen Data and Tags ......................................................................................... 44-54

Project Introduction

Project Description

The Texas Hold-Em Heads Up Generator project idea originated from our love of the game. The
application of this project delivers orders for two separate poker hands represented by the HERO and
VILLAIN cards. The order selection allows for a suit (,,,) and card value for Hero card #1, Hero
card #2, Villain card #1 and Villain card #2, table shape (Hexagon or Oval) and table/card border colour.
This is accomplished by implementing Human Entry Mode and Automatic ID order entry. Human Entry
mode is applied by human selection on the HMI and Automatic ID uses a barcode scanner that loads
orders based on the pallet entering for the next order. For these order operations to be applied, the
communication paths needed to be established: The Panel View and PC communicate by Ethernet,
barcode scanner on DeviceNET and the robot on RIO to complete orders (figure #2, Network and Control
system diagram). The projects intention is to have a relatable feel to a poker environment. This is why
both the robot drawing and HMI are designed to resemble a poker table similar to the drawing below
(figure #1).

Figure #1: Order Example


3

MENU

Figure #3: Menu Sheet for Order Selection

Order Sheet
Order Selection #1
Hero

Villain

Hero Card 1

Hero Card 2

Villain Card 1

Villain Card 2

Table Shape

Table & Card Border

Number

Suit

Number

Suit

Number

Suit

Number

Suit

Oval

Hexagon

Black
Blue

Table Shape

Table & Card Border

Order Selection #2
Hero

Villain

Hero Card 1

Hero Card 2

Villain Card 1

Villain Card 2

Number

Suit

Number

Suit

Number

Suit

Number

Suit

Oval

10

Hexagon

Black
X

Blue

Order Selection #3
Hero

Villain

Hero Card 1
Number

Hero Card 2
Suit

Number

Villain Card 1
Suit

Number

Villain Card 2
Suit

Number

Suit

Table Shape

Table & Card Border

Oval

Black

Hexagon

Blue

Table Shape

Table & Card Border

Order Selection #4
Hero

Villain

Hero Card 1
Number

Hero Card 2
Suit

Number

Villain Card 1
Suit

Number

Villain Card 2
Suit

Number

Suit

Oval

Black

Hexagon

Blue

Order Selection #5
Hero

Villain

Hero Card 1
Number

Hero Card 2
Suit

Number

Villain Card 1
Suit

Number

Villain Card 2
Suit

Number

Suit

Table Shape

Table & Card Border

Oval

Black

Hexagon

Blue

Figure #3: Order Selection Table


6

PanelView order summary screen

Figure #4: Human Entry Mode Screen displaying orders

The order selection objects on the left of the screen are linked to separate tags. The values in
these tags are then moved to a single tag for the FIFO input. The FIFO stack is seen on the right
containing the two place orders followed by the FIFO output (current order) on the bottom.

CLX Panel

Figure #5: I/O chassis

We implemented the Ethernet module (slot 9), RIO (slot 10) and DeviceNET (slot 11) in this
project from the 13-slot AB I/O chassis.
7

Order 1 (A,2,8,9, Oval, Blue)

Figure #6: Order 1 in action from the Order sheet above

In this photo the robot is finishing the first order entered. When this order is executed the robot is
programmed to grab the black pen for card numbers if the DIN[X] for border color is blue.

Order 2 (Q,K,10,J, Hex, Black)

Figure #7: Robot is finishing the second order entered.

The robot is programmed to compare the GINs[X-X] for the card number suits. Since the
black pen is in the gripper the robot draws all black suits first before drawing red suits.
8

10

11

12

Factory Talk View Interface


Human Entry Mode

Figure #8: Human Entry order screen implemented with a FIFO

The input objects on the left represent all requirements to make a complete order. When Human Entry
mode is enabled the values in the tags are moved to a product code tag using BTD instructions to specify
the length and bit level to be copied within. When the DEALING button is pressed the FIFO loads the
order from the product code and is visible in the order 1 row. SHUFFLING simply manually unloads the
FIFO although it is important to make note that the FIFO automatically unloads when the pallet is lifted
on the lift locate unit.

13

Order Display Screen

Figure #9: Displays the current placed order

The table shapes (hexagon and oval) have visibility animations

Table shape and card borders have colour animations

VS text has visibility linked base on card border colour

Card suits are multistate indicators

Card numbers are multistate indicators

Series of multistate indicators on the top of the screen represent the barcode or FIFO
order output

14

Analog VFD control

The blue analog VFD enable object is a


maintained pushbutton that is interlocked with the
digital speed select. The configured PB writes a
configuration to the VFD for a 0-10,000 range, 075Hz analog. The configuration PB does not need
to be reapplied again unless the analog
configuration ever gets reconfigured. The ENT
ENTRY object is the 5-75Hz select for the
forward speed and EXT ENTRY is the 5-75Hz

Figure #10: Cropped from Auto Mode

select for the reverse speed.

Digital VFD control


The digital control list selector selects preset VFD
speeds. Each Hz value displayed is linked to a value
that equals control list selector plus 10 (xHz+10) to
energize the required VFD bits for the selected speed.
In the sequencer steps where the pallet moves on the
entrance conveyor, calculations are made for timer
presets based on the speed versus time.

Figure #11: Cropped from Auto Screen

15

Sequencer Indexing Modes

The Order can be cycled based on three sequencer modes:


Pushbutton Indexing, Time Based Indexing and Event
Driven Indexing. All three methods index the same
sequencer which means the same sequence of steps are used
to move the pallet through the work cell. These sequencer
modes can be changed on the fly and work with complete
order operations. To reset the sequencer to step 1 at any
time, the RESET PB must be pressed.

Figure #13: Cropped from Auto Screen

Push button Indexing: In this indexing mode, workcell I/O are changing for each step based on the
number of times the ADVANCED PB is pressed. If the lift locate is raised with the pallet present and
Robot Bypass is not active, the sequencer ADVANCE PB is not functional while the order is in motion.
Once the robot is done working the user is able to then advance the sequence.

Time Based Indexing: For sequence steps to change automatically, an array of timer presets are used to
change a Time Based Indexing Timer based on the sequencer step. This is done by using indirect
addressing where a MOV is implemented to change the timer preset. For example, the Source for the
MOV could be Timer_Presets[Sequencer_Control.POS] to destination Time_Base_Indexing_Timer.PRE.

Even Driven Indexing: This indexing modes operation is the best choice of the three. This is because
photocells and proximitys are used to track the pallet location and advance to the next sequencer step for
efficient movement through the workcell.

16

Order Display Screen

Figure #14: Robot and Cell feedback

The PanelView needed to have robot feedback displayed. To accomplish this we declared GOUT
values at specific stages of the order. A specified GOUT was used for motion status, pen status and
gripper status. The multistate captions and colours change based on each GOUT value. Examples of the
robot status caption could be Robot at Perch Position, Robot above pen rack, Robot drawing Oval etc.
Examples of the Pen Status could be Dropping Black Pen, Grabbing Blue Pen and No Pen etc. The
objects related to I/O change based on the pallet location to give the operator an idea of where the pallet is
in relation to the robot order.

17

Network Screen

Figure #15 Network Status Screen

This screen displays the main devices, their network addresses and communications paths used for this
project. The symbols are all static except for the red X and green check marks. When Ethernet, RIO or
DNET are disconnected the red x appears. This was accomplished using status bits from the modules.
For DNET the Local:11:I.StatusRegister.DeviceFailure bit changes from 0 or 1 based on the device
status. RIO status was accomplished using FPROJECT_MMNM:I.RackStatus.0. The blue message
indicators are linked to FactoryTalk View Studio system status tags.

18

ControlLogix Program
FIFO
To place a single order, the data from each order selection is stored in a DINT named
PRODUCT_CODE in a sequence. To accomplish this, control list selectors were tagged to our order
selections. For example, the image below (figure #15) shows HERO_CARD1_NUM which holds a value
from 1-13(A to K) and our PRODUCT_CODE.

Product Code

The first four bits of the PRODUCT_CODE


represent our first GIN[HeroCard1]. This process is
used for all order selection options. For example,
for Hero Card two the tag would become
HERO_CARD2_NUM and PRODUCT_CODE
would be at bit levels .4, .5, .6, and .7 representing
GIN[HeroCard2]. Once the order is set, pressing
the ORDER_LOAD_PB loads the FFL and copies
the data from PRODUCT_CODE to

Figure #15: Moving data to Product Code

ORDER_STACK[0]. The order is displayed in the


row labeled (1) from figure #4 and has 4 more empty rows capable of holding orders. This is proven in
the Length field found in both instructions. To send an order to the robot the FFU instruction must be
enabled meaning unload the FIFO. This can be done manually with the ORDER_UNLOAD_PB or by
the FIFO_BOOL tag which makes a false to true transition when the pallet is present and raised on the lift
locate unit. When the FIFO unloads it takes the last position of the ORDER_STACK[X] where X is the
FIFO position and moves it the FFU destination ORDER_OUTPUT.

FFL and FFU

Figure #16: FIFO Load and Unload


19

BTD Instruction
To move a range of values from the ORDER_OUTPUT to the
Robot the BTD is very useful. Since each card number has a GIN
using 4 bits of data this will consume a word of its own. As seen in
Figure #17 on the left, the length of the first BTD instruction is 16
bits. So this instruction takes 16 bits from ORDER_OUTPUT
starting at bit 0 (Source Bit = 0) and moves them to the robot input
data [4] starting at bit 0 (Dest Bit 0). At this point now the FIFO is
unloading one order each time the pallet is present on the raised
LLU and moving card values to our GINs. The same procedure is
done in the second BTD. This instruction is moving 8 bits starting
at bit 16 (Source Bit = 16) and moving it to the robot input data [5]
starting at bit 0 (Dest Bit 0) being the value of 4 GINs for card
suits. This same procedure done for the third BTD sending two
bits of data for two digital inputs being table shape and border
Figure #17: Sending order to Robot

colour.

Condition Handler

Figure #18: Start and Stopping Robot Opertation


Using a Karel File loaded on the Memory Drive, Condition Handlers were implemented to start and
stop the robot order without losing the line in the program. Conditions run in the background of a TP file
and are only activated when associated I/O come true. Therefore when the robot is in motion and
ROBOT_IOMMNM:O.Data[3].12 becomes false the condition in the Karel file becomes true and robot
motions stop. The associated output on the first rung then enables robot motion when Cell Cycle Start is
pressed.\
20

Entrance Conveyor

Time Seconds

ENT CONV Calc

y = 207x-0.954

50
45
40
35
30
25
20
15
10
5
0
0

10

20

30

40

50

60

70

80

VFD Speed Hz

Figure #19: Entrance conveyor calculation for Timer Presets

To change the entrance conveyor speeds on the fly without disrupting the sequence and keeping
efficiency, the Timer Preset values for Time based Indexing and Event Driven Indexing needed to
change. To accomplish this, time measurements were taken at speed intervals of 5Hz each from the LTU
proximity to the end of the entrance conveyor. Once recorded, the graph above (figure #18) was created
in excel and a power equation trend line was assigned resulting in the formula y = 207x-0.954. The logic
for this math equation is below.

Math Function

Figure #20: Implementing the Entrance Conveyor time calculation


The math function above shows the MUL instruction taking the output value from the equation and
multiplying it by 1200. This multiplication is done to turn seconds into milliseconds with an added
200ms multiplied through to ensure the pallet reaches both ends of the conveyor. With our new
knowledge of function block these math functions necessary for the VFD would have been cleaner to
implement.
21

DNET RUN mode

Figure #21: DeviceNET CommandRegister.Run


The device used in this project in relation to DeviceNET was the Barcode Scanner. For DeviceNET to
be running the logic above (Figure #20) must be implemented. We had it always running when RSLogix
was in RUN mode. To operate the Barcode Scanner the logic below is used (Figure #20).

Handshake
The purpose of the above logic is for message flow
control known as handshaking. This allows CLX to
know that data is available and to stop the Barcode
Reader from sending messages faster than CLX can
receive them. It is important to note that the Barcode
Scanner reads in ASCII so a conversion to decimal
must be done.
Figure #22: Barcode Handshaking Logic

Trigger

Figure #23: Barcode Trigger Logic


The barcode trigger simply causes the barcode scanner to read the present barcode and transmit the
read when it returns false. The barcode automatically triggers when the sequencer is on sequence step 6.
This step occurs when the pallet is stopped on the gate prestop.
22

Analog VFD Control

Figure #24: Masked Move for configuration


The Analog Output module (1794-OF4I) Write Configuration Block has four possible channels for
configuration in Word 5. The MVM above is currently moving the configuration 1010 to all four
channels for a 4-20mA 0-10,000 output value range. The VFD analog output data applies when the
entrance conveyor speed select bits all equal 0.

Write Data

Figure #25: Enable to Module


To break down the figure above, this is the configuration rung for the Block Transfer Write.
Analog_Write_Data[6].14 is a module enable bit and Analog_Wrie_Data[6].15 tells that module to check
the configuration in word 5 of the Write Block.

Communication w Module
Communication to the module is
done through the bidirectional BTW
and BTR above. The BTW sends the
data table values to the analog outputs
while the BTR retrieves the module
status information and stores it in the
processor.

Figure #26: BTW & BTR


23

Auto Mode
The Sequencer functions in steps where outputs
energize based on the sequencers position.
SEQ_Steps[0] is a DINT array that has specific bits
assigned to outputs. To energize an output in the
program at an assigned step a 1 is entered into the bit
field. The table below is an organized layout of the
sequence of operation we want the workcell outputs

Figure #27: Sequencer control

to energize in (figure #28). The Mask (SEQ_Mask)


is used to select what bits from SEQ_Steps[0] you want to pass by entering 1s into the bit fields. For our
operation 1s were entered for all selections. The sequencer moves through steps based on the position
value in Sequencer_Control.POS. When the positions changes the values from SEQ_Steps[0] are moved
to the Output_Control. Therefore before all outputs used in the steps an Output_Control.X bit is placed
where X is replaced with the assigned value from the bit table. It is important to make not that the
Sequencer ignores data in position 0 as it is not a valid position and the length of the Sequence data must
be greater than the total steps.

LTU_Raise_Solenoid

PreStop_Lower_Solenoid

13

0
1
1
1
0
0
0
0
0
0
1
0

0
0
0
0
0
1
0
1
1
0
0
0

0
0
0
0
0
0
1
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0

VFD_Start_Bit

LTU_Lower_Solenoid

10

VFD_Stop_Bit

Pre-stop to Next Cell

11

VFD_Rev_Bit

Trans_Convr_FWD

12

VFD_Speed_Bit_1

Trans_Convr_REV

13

VFD_Speed_Bit_2

Lift_Raise_Solenoid

14

VFD_Speed_Bit_3

Lift_Lower_Solenoid

0
0
0
0
0
1
0
0
0
0
0
0

0
0
0
0
0
0
0
0
1
0
0
0

0
0
0
0
0
0
0
0
1
0
0
0

0
0
0
0
0
1
0
0
1
0
0
0

0
0
0
0
0
1
0
0
1
0
0
0

0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
Figure #28: Sequencer Bit Table
Not Used

STEP1
STEP2
STEP3
STEP4
STEP5
STEP6
STEP7
STEP8
STEP9
STEP10
STEP11

1
5
0
0
0
0
0
0
0
0
0
0
0
0

Gate_FWD_Starter

Gate_REV_Starter

Sequencer Steps

Numeric
Entry
Object
Decimal
Value

0
17536
17536
17408
256
8550
4352
8448
8526
512
17920
128

24

Start Order Logic


To have the robot start operation when the
pallet reaches the LLU a handshake between
the CLX and the robot was created. If the
pallet at LLU prox, LLU raise prox and
entrance conveyor PC blocked bit are true
then DI[33:PALLET_AT_LLU]=ON. DI[38]
represents the robot bypass which can be
enabled from the TP or CLX. When the
Figure #29: Robot and CLX Handshake

bypass is in a false state robot operation can


commence. If these two conditions are met TP

code jumps to line 6 and begins robot operation.

If Line 4 is not true the TP code constantly jumps

back to LBL[2] on line 3 checking the status of these two conditions. Now that the robot as jumped to
line 7 a DO[63] unloads the FIFO in CLX. DO[62] knocks out the FIFO unload operation, entrance
conveyor, and LLU control. This ensures that a new order can be loaded for the next operation without
changing the current robot order.

Table Shape and Colour


The Table colour selection has two options
which allowed us to use two IF statements
where it selects either the black pen or green
pen based on the state (0 or 1). The same case
goes for the table shape where it is either a
hexagon or oval (the card border routine is the
same colour as the table colour selected). The
card numbers ordered are always drawn in
Figure #30: IF statements for initial drawing

black, therefore line 27 was implemented. If the

robot still has the black pen in the gripper then the robot begins to draw spades or clubs by jumping past
the blue drop and black grab routine.

25

Spades and Clubs

Figure #33a: IF statements for black suits


At this stage of the program the robot has the black pen in the gripper. The IF statements from line 44
to 47 call Karel files for drawing the selected suits (2=club and 3=spade) based on GIN[8-11]. If these
statements are completed or no black suit was selected the robot returns the pen.

Hearts and Diamonds

Figure #33b: IF statements for red suits


Now that the robot has returned the black pen we wanted to make sure that there was a red suit entered
for a card before having a call function grabbing the red pen. This is the purpose of line 51 to see any of
the cards have suit GIN value less than less than 2. If any suit is red the robot will draw the ordered red
suits than return the pen. Otherwise the order is complete.

Pallet Exit
To enable the LLU to lower and run the entrance conveyor in
reverse for the next sequence step, the IN_CYCLE interlock
needs to be false. DO[64] makes a true to false transition to
enable the sequencer to continue to the next step than disable
itself. Lastly DI[2] is a signal from CLX to only jump back to the
Figure #34: Pallet exit handshake

top of the program when the pallet has left the LLU to ensure the
cycle does not repeat itself.

26

Karel Calling Cards & Suits


24 BEGIN
25 SELECT GIN[H_CARD1_NUM] OF -26 CASE(1): OPEN FILE C('RO','MC:\fp_1a.DT') -- READ DT FILE FOR #A
27 CASE(2): OPEN FILE C('RO','MC:\fp_2a.DT') -- READ DT FILE FOR #2

38 CASE(13): OPEN FILE C('RO','MC:\FP_13a.DT') -- READ DT FILE FOR #K

Figure #35a: Calling a DT file Hero Card 1 based on GIN


In the figure above, the quotations represent a sequence of case selects for each card from ace to king.
Since there are 13 possible numbers to be called for each card, case selects were used to insert file calls
into a variable for the DT file read. This concept was implemented for all four cards and suits.

Reading DT File
14 VAR
15 NUM,COUNT:INTEGER
16 X,Y,Z,XX,YY,ZZ:REAL
17 REF_POINT:POSITION
18 P1,P2:XYZWPR
19 -20 C:FILE
40 READ C (X,Y,Z,XX,YY,ZZ)
41 -42 NUM=TRUNC(Z) -- CONVERT REAL
NUMBER TO INTEGER
43 P1= REF_POINT -- P1 SET TO
REFERENCE REF POINT
44 $SPEED=150;$MOTYPE=LINEAR;$TERMTYPE=FINE
45 -46 FOR COUNT=1 TO NUM DO
47 READ C (X,Y,Z,XX,YY,ZZ)
48 -49 IF (XX=0) AND (YY=0) THEN -- LINEAR
50 $MOTYPE=LINEAR
51 P1.x=P1.x+X;P1.y=P1.y+Y;P1.z=P1.z+Z
52 MOVE TO P1
53 -54 ELSE -- CIRCULAR MOTION
55 P1.x=P1.x+X;P1.y=P1.y+Y;P1.z=P1.z+Z
56 P2=P1
57 P2.x=P2.x+XX;P2.y=P2.y+YY;P2.z=P2.z+ZZ
58 $MOTYPE=CIRCULAR
59 MOVE TO P2 VIA P1
60 P1=P2
61 -62 ENDIF
63 ENDFOR
64 $MOTYPE=LINEAR
65 CLOSE FILE C

At this point in the program, a file has


been called in the C:File. Karel needs to
read the file and trunc the first number in
the Z row. Trunc converts a real to an
integer. Now Karel knows how many
lines to read within the DT file by
referencing the NUM:INTEGER. As see
on line 46 the DT file is read from the
first row of data to the last. The first line
is based off of your drawing reference
point stated on line 43. Now each time it
moves through the file to the next line it
adds the X,Y,Z,XX,YY,ZZ coordinates
to the last position based off line 56 and
60. In this project circular motion was
used. To accomplish this circular motion
is declared on line 58 if XX and YY do
not equal 0. Therefore if they do equal
0 then the robot motion type is linear.
This use of file reads were implemented
for all suits and card numbers.

Figure #35b: Using positions from excel file

27

Developing Positions
Y
To develop the numbers and suits

+Z is towards pallet

for the project AutoCAD was used.


In the drawing on the left (figure #39)
the heart is dimensioned once for all
four positions for the four cards. The
one unique position for each suit or
card is the first points position in
relation to the reference position for
all drawing objects.

Figure #36a: AutoCAD drawing for DT files

DT Tables
X

XX

YY

ZZ

13

This DT file table (figure #40) relates to the


above AutoCAD drawing (figure#39) and the Read

94.8

-87.0

-100

DT file logic (Figure #37). As stated, line one

100

represents the NUM value for the amount of lines

-3.28

1.23

-3.28

-1.23

with positional data to be read. Each following line

-1.32

-3

1.3

-3

is a position based of the previous point. So line 2

1.36

-0.87

1.36

-0.87

is the first point dimensioned from the reference

-1.36

-0.87

-1.36

-0.87

point above the page, Line 3 moves to the paper,

-1.36

-3

1.3

-3

and line 4 is the first motion drawn. Since values

3.28

-1.23

3.28

1.23

are greater than 0 in XX and YY in line 4 the robot

moves in circular motion up 3.28mm and left

1.24

0.77

1.24

0.77

1.23mm followed by up 3.28mm and right

-1.24

-1.24

1.23mm. This point is now used as the reference

-9

position for line 5 in the table. Once the robot as

-100

made all 13 motions the DT file is closed followed


by the Karel File. The TP program now continues.

Figure #36b: DT File positions

28

Condition Handler
4 PROGRAM FP_COND
5 -6 CONST
7 COND=34
8 CONDD=37
9 Begin
10 Condition[1]:
11 When DIN[CONDD]=False Do
12 HOLD
13 Enable Condition[1]
14 Enable Condition[2]
15 EndCondition
16 Condition[2]:
17 WHEN DIN[COND]=True Do
18 UNHOLD
19 EndCondition
20 Enable Condition [1]
21 Enable Condition [2]
22 End FP_COND

A Condition Handler uses external


conditions to execute actions globally
through a program or locally. In the case
of this project, the global Actions used
were Hold (line 12) and UNHOLD (line
18). This program only needs to be
executed once and will be effective for
the entirety of the program. After each
Condition is met it is enabled again to
always monitor those conditions to be
effective for unlimited executions. In the
case of this code, the DIN for the HOLD
execution is always true unless any of
robot motion stop pushbuttons are
pressed. The UNHOLD condition is true

Figure #37: Start and Stop Robot motion

when pushbuttons linked to robot start


motion become true. This logic effecting
starts and resume robot motion.

Circular Motion on TP

Teach Pendant Programming was used


to implement the VS associated with
the card borders. This was accomplished
by using circular motion positions that
were taught to the robot, using the teach
pendant. Positions were taught in order to
locate the robot pen tip in the appropriate
position for the VS to be executed. From
here we taught 2 positions, one point at
the desired location for the curve to end,
and a via position, where the pen would
travel through in order to create the curve

Figure #38: Start and Stop Robot motion

required for the S in VS.

29

Conclusion
Mitchell Moore
o What did you learn?
This project reinforced a lot of previous learning experience from lab classes. Taking
concepts and implementing them in your own creative project gets you thinking about subjects
you do not constantly practice. This relates to configuring the robot I/O with the CLX to
develop group input/output integer values for our order operations, moving those values from
the HMI to the FIFO, implementing the sequencer to move the pallet through the workcell
using multiple indexing methods, the robot handshake with the CLX to start the drawing
operation on the robot and releasing the pallet. These concepts made me more efficient and
knowledgeable when developing and troubleshooting. The specific subjects that were new to
me consist of BTW and BTRs for communicating with the Analog VFD module, condition
handlers and using case selects with DT file calling. Learning about condition handlers are
key because now I can implement them into projects such as SCADA to receive robot
positional feedback for a symbol animation. In relation to the VFD it was the more
challenging idea to understand. Looking through supplement notes referencing the module
manual helped me grasp following a procedure to get new instructions functioning.

o How would you approach this project differently if you could do it again?
When the project started my confidence on what direction to head in lacked. I was used to
following lab procedure without little difficulty since I never strayed far off. It felt as if it was
my first time creating a TP and Karel file. Now that I have completed the project my ability to
create TP, Karel, and a RSLogix file for this project would be faster and more efficient
resulting in more features being applied that use more in-depth concepts such as structured text
and or function block. With my previous knowledge an idea I would have implemented was
adding a calculated offset from the reference position in the Karel file for each number and
suit for all four positions rather than making 4 sets of DT files for each number and suit. This
would have eliminated more than seventy five percent of time spent on creating and
troubleshooting these files.

30

o What was the most challenging aspect of the project?


The most challenging aspect of this project was time, access and teamwork. The workload
is heavy combined with the semester course load. In my opinion to achieve success and meet
expectations in all courses more than 10 hours a day must be spent 7 days a week to cover all
of each courses content with complete understanding. With a project that took 250+ hours to
complete time management is crucial. Since the project is partner based you have to cooperate
and share work load with the time you have while sharing the use of the work cell with other
students. I found myself absorbing much of the blow for getting the project in motion because
of work ethic. One of my biggest challenges in education was always the ability complete
work outside of class hours whether it is outside of or on campus. This project got to my
senses when I realized the amount of time that needed to be spent to meet the requirements. I
have always been able to do labor intensive work for long hours but never at late hours of the
day. At the beginning of the semester this made it challenging to meet deadlines when the
work was pilling up and I had trouble staying awake when trying to complete assignments at
late hours. By demonstration one I had to overcome two of my biggest challenges related to
this project. I found myself doing 12 hour plus days on campus into the late hours of the night
completing this project. My attitude towards school changed completely and I was finishing
assignments in other classes shortly after their assigned date. In time I found myself not only
overcoming these time management, access and teamwork aspects of the project but I was
enjoying the workload, production and on school work after hours.

o What was the most satisfying aspect of the project?


The best aspect of this project is our ability to choose what topic the order will relate to.
Having the robot operation create something related to cards made each progress demo a
happy day to reach. Along with this, the fact we were able to develop this project from our
education made me feel more confident and knowledgeable. I went from being in an auto
pilot state meeting lab procedures week by week to having an in depth understanding of the all
aspects of our courses with more freedom and independence. On Durham Colleges Open
House I was able to share with my family this project. This was a big deal for me because my
parents had problems grasping what I am doing at school. It is satisfying knowing that we
made it third year and could finish and share this project.
31

o What advice would you give next years students to be successful with their project?
When coming up with the concept for the project it is important to come up with a concept
that meets specifications quickly with features that can be managed. By doing this we would
have had more time to develop our thoughts on where to start to develop our code. It is key to
not underestimate this project. We found ourselves saying many times that a task would only
take a few hours meanwhile it would turn into a period of days solving. This is why for our
extra concepts it is important that we declared them as possible outcomes for the project
depending on development time to make sure the workload would be manageable. I think
that before diving right into the project it would be beneficial to go over concepts from
Integrated Auto II and Automation Systems. This would have given us a more efficient
approach to the integration of all the components instead of actively troubleshooting and
referring to notes. Along with this I feel that some research into new instructions and logic
would have actually saved time in the long run. We started off with a base of code for moving
order data to a product code which did not function. With some research we were able to find
a simple instruction that took hardly any time to integrate in comparison to the time we spent
developing the original code. This relates back to time management. This is a project done in
pairs and it is important to work together but at some stages taking turns completing one
subject matter can be ineffective. You may find yourself spending more time solving the
others logic then completing it yourself. Troubleshooting something that is not created in
your style also is ineffective. If you are able to work effectively and use good time
management skills it would be beneficial to go for bonus marks on progress demo one. These
bonus marks could include some AutoCAD, robot handshake, DT files or some Karel
programming. If you are able to complete the expectations of progress demo one, having
insight on the second stage of the project will set you up in a good position. This would
hopefully set you up with more time at the finalization of the project for your extra concepts
and or touch ups.

32

Nick MacDonald

What did you learn?


Through the process of this final project, many of the ideas and concepts we learned previously were
reinforced. From mapping group inputs and outputs, configuring the VFD, programming the movement
of the pallet through the workstation, calculating speed selections for VFD and for shapes with DT files,
and teaching robot positions and programs with KAREL and Teach Pendant programming. Since most of
our old labs were incorporated into this Capstone project, we were given the opportunity to revisit our old
assignments with a new understanding of the world of robotics and programming. The main things that I
better understand now are calculations for VFD speeds and DT file calculations, especially while
calculating rounded edges for objects such as the clubs and spades through DT files. Another concept that
I now better understand is Teach Pendant programming and KAREL code. A big chunk of the final
project was tinkering with positions and writing if statements in teach pendant. While working with the
robot (among other workstation equipment) I became more efficient and more comfortable while working
in and around the work cell. After much review of old notes and old labs, and many hours in the lab, this
final project made me much more confident in my abilities and more efficient in my work flow.

How would you approach this project differently if you could do it again?
When we began the final project, we lacked direction and were unsure of how we would execute many
of the main tasks required. I think that keeping an agenda and journal in order to organize our thoughts,
ideas, future jobs and current goals would have helped us organize our thoughts better and be more
prepared for checkpoint demos etc. As with most projects, time management is always the biggest factor
in being successful and organized. There were many late, late nights, days or hours before a demo, where
we would be scrambling to be prepared or have to sacrifice marks in order to be done on time. So instead
of leaving work until a week before, we could have allotted time in previous weeks so that we would be
more prepared, come demo day. Lastly, in terms of organization, I noticed while we complied this final
report, looking at our controller tags, we had more than one hundred unused tags, not only in control
logix, but in all of our programming software, more housekeeping would have kept our heads clear and
our thoughts more concise.

33

What was the most challenging aspect of the project?


There were many challenging aspects of the final project. Calculating the VFD speeds was one of the
more difficult tasks, as well as calculating DT files, and creating the code for Teach Pendant and KAREL.
Calculating the VFD was done at a time when we were not yet masters or y=mx+b. Calculating the slopes
and creating the formulas for dynamic VFD control proved to be very difficult. Looking back, the
calculations and math done was relatively simple, but at the time, these concepts took a while to wrap our
heads around. Calculating rounded corners for DT files was only difficult because we had not yet learned
this concept. Once we understood how to calculate rounded corners, it was difficult to be very accurate
with our drawings, with some of our DT files still not being on hundred percent complete. Lastly, writing
the KAREL and TP programs was not necessarily difficult, but I was cumbersome and took a lot of
attention to detail in order to make them all work together correctly. This step is where we spent our most
time troubleshooting. Overall these concepts became almost second nature through the duration of our
semester.

What was the Most satisfying aspect of the project?


My situation is somewhat unique. As you are aware, this semester came at the cost of one extra year of
my life since last year at this at this time when I was just thinking about how I would manage this year,
the concepts all still seemed so foreign, especially when 5th semester was such a struggle for me the first
time around. It was very satisfying to work through my 4th year of school with a better understanding of
the concepts, and to be able to put my skills to the test with the final project. It felt good to finally be able
to complete this program, which all added up, really, to this class. Another noteworthy experience during
this process was demonstrating our final project to the public during the open house. Over the years of
learning in this program, all of the concepts we have come to know as common practice or simple ideas,
are viewed as alien, from the outside looking in. It was very interesting to see how people perceive our
work, and to explain our project in a simpler and understandable way. It was also very exciting to show
our project to students who were interested in our program. Quite a few students that approached us were
intrigued with our project since It was such a relatable easy to understand concept. As soon as we told
them that it was a poker hand generator, they became more attentive. Lastly, it was very cool to show
friends and family what I have been doing for the past 4 years. After going home and telling people close
to me what I did at school today, it was very fulfilling to finally be able to say this is what I DO at

school, so they could see the work and time and understanding that goes into a lab.

34

What advice would you give next years students to be successful?


To advise next years students, I would go as far back as to say, make sure you are giving 100% in
labs from the beginning of 5th semester! knowing what I know now (despite how many times you and
Beau would tell us) this program is much like a deck of cards. If you want to make it to the top, you first
need to build a strong foundation. Understanding how the FIFO and Sequencer labs worked, and
understanding how the VFD works, and knowing how to program KAREL correctly, and many other
ideas, are vital to being successful in the final project. Looking back, I can see how how much easier this
project would have been if I completely understood all of the concepts before I began the final project,
instead of having to relearn much of what we did, or redo a lab that was not completed correctly. Of equal
importance, is time management. Being on top of our work was the biggest struggle of the year. I would
tell next years students to organize their time accordingly, and plan to be done a week before the due
date, instead of the night before. This gives more time to work out any kinks before demo days, and prove
to you (Brent) that you are prepared and organized. Like I mentioned earlier, I believe that a journal or
agenda would have been very beneficial to organize our time more appropriately. Lastly, and most
importantly from a real job perspective. During the early hours of development, be realistic (again,
something you already told us, that we then ignored), plan to accomplish something that is reasonable and
reachable, and not to complex. Make your goal to fulfill everything on the rubric, instead of everything in
your mind. Relating this to a career, it is important to allot time accordingly and understand what tasks
take what amount of time, in order to maximize your earnings!

35

Appendix A

36

37

Mapping for Group Input


Group Input
Rack
GI[8:HCARD1_SUIT] 16
GI[9:HCARD2_SUIT] 16
GI[10:VCARD1_SUIT] 16
GI[11:VCARD2_SUIT] 16
GI[12:HCARD1]
16
GI[13:HCARD2]
16
GI[14:VCARD1]
16
GI[15:VCARD2]
16
Figure 39a) Group input configuration

Slot
1
1
1
1
1
1
1
1

Start Point
49
51
53
55
65
69
73
77

# of Points
2
2
2
2
4
4
4
4

Mapping for Group Output


Group Output
GO[1]
GO[3]
GO[4]
GO[5]

Rack
16
16
16
16

Slot
1
1
1
1

Start Point
17
65
69
73

# of Points
16
4
4
4

Figure 39b) group output configuration

Mapping for Digital Output


Digital Output
Rack
DO[62:IN_CYCLE]
16
DO[63:ORDER_UNLOAD] 16
DO[64:ROBOT_DONE]
16
Figure 39c) Digital output configuration

Slot
1
1
1

Start Point
62
63
64

Range
61-64
61-64
61-64

Start Point
33
35
36

Range
33-39
33-39
33-39

Mapping for Digital Input


Digital Input
Rack
DI[33:PALLET_AT_LLU] 16
DI[35:TABLE_COLOR]
16
DI[36:TABLE_SHAPE]
16
Figure 39d) Digital input configuration

Slot
1
1
1

38

Tool Frame

User Frame

X= 0.0

X= 773.1

Y= 0.0

Y= 457.8

Z = -310.0

Z = 563.8

W= 0.0

W= -180

P = 0.0

P = 0.0

R = 0.0

R = 0.0

The tool frame center point is configured where


the positive direction is toward the pen drawing
operation. This was done using direct entry.

The user frame is configured where the origin is


the back right corner of the pallet and the X and Y
origin are from its relative corners. This was done
use three point method.

Product Code data


Order 1

Conversion

0000

Card
Value
2

0001

01

0010

10

Hero Card 1

Binary

Hero Card 2

Villain Card 1

Villain Card 2

Binary

Card Suit

11

00

0011

Binary

Table Style

10

11

12

13

14

15

0100

Oval

0101

Hexagon

Villain
Card 2
Suite

0110

Binary

Table Color

Hero
Card 1
Suite

Hero
Card 2
Suite

16

17

18

19

20

21

22

23

0111

Black

1000

10

Blue

Table
Style
24

Table
Color
25

0
Oval

Villain
Card 1
Suite

1001

1010

1011

Blue

1100

39

Product ID (2 Words)
0
0
14
1

1
1
15
1

2
1
16
0

3
0
17
1

4
0
18
0

5
0
19
1

6
1
20
1

7
1
21
1

8
0
22
1

9
0
23
0

10
1
24
0

11
0
25
1

12
0

13
0

11
1
25
1

12
0

13
1

Figure #39e: Example order in Product Code

Order 2
Hero Card 1

Hero Card 2

Villain Card 1

Villain Card 2

10

11

12

13

14

15

7
Hero Card 1 Suite

7
Hero Card 2 Suite

Villain Card 1 Suite

Villain Card 2 Suite

16

17

18

19

20

21

22

23

Table Style

Table Color

24

25

1
Hexagon

1
Blue

Product ID (2 Words)
0
0
14
0

1
1
15
1

2
1
16
0

3
1
17
1

4
0
18
1

5
1
19
0

6
1
20
1

7
1
21
1

8
0
22
0

9
1
23
0

10
0
24
1

Figure #40: Example order #2 in Product Code

40

TP
Teach Pendant File

Number of Lines

FP_MMNM

70

FP_OPEN

FP_CLOSE

FP_CB

41

FP_VS

16

FP_HEX

21

FP_OV

22

FP_RG

15

FP_RD

15

FP_GG

15

FP_GD

15

FP_BG

15

Total

FP_BD

15

283

Figure #41 TP Files and # of Lines

Variables
Names

Digital

Names

Group

Names

Robot

PALLET_AT_LLU

DI[33]

ROBOT_STATUS

GO[3]

Open_Gripper

RO[1]

ROBOT_BYPASS

DI[38]

PEN_STATUS

GO[4]

Close_Gripper

RO[2]

ORDER_UNLOAD

DO[63]

GRIPPER_STATUS

GO[5]

IN_CYCLE

DO[62]

HCARD1_SUIT

GI[8]

TABLE_COLOR

DI[36]

HCARD2_SUIT

GI[9]

TABLE_SHAPE

DI[35]

VCARD1_SUIT

GI[10]

ROBOT_DONE

DO[64]

VCARD2_SUIT

GI[11]

NO_PALLET

DI[2]

Close_Gripper

RO[2]

Open_Gripper

RO[1]

Figure #42 All TP Variables

41

KAREL Files
Karel File

Number of Lines

FP_COND

22

HCard1_N

69

HCard2_N

69

VCard1_N

69

VCard2_N

69

HCard1_S

64

HCard2_S

64

VCard1_S

64

VCard2_S

64

Total

554

Figure #43 All Karel Files and # Number of Lines

KAREL Variables
Names

Type

COND

DIN[34]

COND

DIN[37]

FILE

NUM

INTEGER

COUNT

INTEGER

X,Y,Z,XX,YY,ZZ

REAL

REF_POINT

POSITION

P1,P2

XYZWPR

H_CARD1_NUM

GIN[12]

H_CARD2_NUM

GIN[13]

V_CARD1_NUM

GIN[14]

V_CARD2_NUM

GIN[15]

Figure #44 All Karel Variables used

42

DT Files
DT File
Name

# Of
Lines

DT File
Name

# Of
Lines

FP_1A.DT
FP_1B.DT
FP_1C.DT
FP_1D.DT
FP_2A.DT
FP_2B.DT
FP_2C.DT
FP_2D.DT
FP_3A.DT
FP_3B.DT
FP_3C.DT
FP_3D.DT
FP_4A.DT
FP_4B.DT
FP_4C.DT
FP_4D.DT
FP_5A.DT
FP_5B.DT
FP_5C.DT
FP_5D.DT
FP_6A.DT
FP_6B.DT
FP_6C.DT
FP_6D.DT
FP_7A.DT
FP_7B.DT

12
12
12
12
8
8
8
8
8
8
8
8
7
7
7
7
8
8
8
8
9
9
9
9
6
6

FP_7C.DT
FP_7D.DT
FP_8A.DT
FP_8B.DT
FP_8C.DT
FP_8D.DT
FP_9A.DT
FP_9B.DT
FP_9C.DT
FP_9D.DT
FP_10A.DT
FP_10B.DT
FP_10C.DT
FP_10D.DT
FP_11A.DT
FP_11B.DT
FP_11C.DT
FP_11D.DT
FP_12A.DT
FP_12B.DT
FP_12C.DT
FP_12D.DT
FP_13A.DT
FP_13B.DT
FP_13C.DT
FP_13D.DT

6
6
8
8
8
8
8
8
8
8
10
10
10
10
6
6
6
6
10
10
10
10
13
13
13
13
452

TOTAL # of Lines
Figure #55 All DT Files & Total # of Lines

Positions
Total Taught Positions

Total Calculated

Combined Total

102

400

502

Figure #56 Total Positions


43

FT View Screens
Screen Name

Total

Human Entry Mode


Main Screen
Manual Control Screen
Monitor Screen

Network Screen
Order Display Screen
Sequencer
Workcell Inputs
Workcell Outputs

Figure #57 All FT View Screens

Main Screen
Tag Name

Data Type

Type of Object

Auto_Barcode_Display

BOOL

Momentary Pushbutton

Manual_Mode_Screen

BOOL

Momentary Pushbutton

Auto_Mode_Screen

BOOL

Momentary Pushbutton

Human_Entry_Mode_Screen BOOL

Momentary Pushbutton

Monitor_Screen_PB

BOOL

Momentary Pushbutton

Network_Screen_PB

BOOL

Momentary Pushbutton

workcell_INPUTS_pb

BOOL

Momentary Pushbutton

worckcell_OUTPUTS_pb

BOOL

Momentary Pushbutton

Emergency_Stop

BOOL

Momentary Pushbutton

ShutdownButton1
GotoConfigureModeButton1

ShutdownButton1

Shut Down Button

GotoConfigureModeButton1

Goto Configure Mode

Figure #58 Human Entry Mode Tag Table

44

Human Entry Mode


Tag Name

Data Type

Type of Object

HERO_CARD1_NUM

INT

Multistate Indicator

HERO_CARD1_NUM

INT

Numeric Input Enable

HERO_CARD2_NUM

INT

Multistate Indicator

HERO_CARD2_NUM

INT

Numeric Input Enable

VILLAIN_CARD1_NUM

INT

Multistate Indicator

VILLAIN_CARD1_NUM

INT

Numeric Input Enable

VILLAIN_CARD2_NUM

INT

Multistate Indicator

VILLAIN_CARD2_NUM

INT

Numeric Input Enable

HERO_CARD1_SUIT

INT

Control List Selector

HERO_CARD2_SUIT

INT

Control List Selector

VILLAIN_CARD1_SUIT

INT

Control List Selector

VILLAIN_CARD2_SUIT

INT

Control List Selector

TABLE_SHAPE

INT

Multistate Indicator

TABLE_SHAPE

INT

Numeric Input Enable

TABLE_COLOR

INT

Multistate Indicator

TABLE_COLOR

INT

Numeric Input Enable

Human_Entry_Mode

BOOL

Multistate Indicator

Emergency_Stop

BOOL

Momentary Pushbutton

Human_Entry_Mode_Start

BOOL

Momentary Pushbutton

Human_Entry_Mode_Stop

BOOL

Momentary Pushbutton

Auto_Barcode_Display

BOOL

Momentary Pushbutton

Manual_Mode_Screen

BOOL

Momentary Pushbutton

Auto_Mode_Screen

BOOL

Momentary Pushbutton

Main_Screen

BOOL

Momentary Pushbutton

OrderOuput_Animation

BOOL

Polygon(x10)

Order0_Animation

BOOL

Polygon(x10)

Order1_Animation

BOOL

Polygon(x10)

Order2_Animation

BOOL

Polygon(x10)

Order3_Animation

BOOL

Polygon(x10)

Order4_Animation

BOOL

Polygon(x10)

Order5_Animation

BOOL

Polygon(x10)

ORDER_LOAD_PB

BOOL

Momentary Pushbutton

ORDER_UNLOAD_PB

BOOL

Momentary Pushbutton

Figure #59 Human Entry Mode Tag Table

45

Manual Control Screen


Tag Name

Data Type

Type of Object

Emergency_Stop

BOOL

Momentary Pushbutton

Stop_PB_PV1000

BOOL

Momentary Pushbutton

Start_PB_PV1000

BOOL

Momentary Pushbutton

Man_Mode_ON

BOOL

Multistate Indicator

Trans_Convr_REV_PB

BOOL

Momentary Pushbutton

Trans_Convr_FWD_PB

BOOL

Momentary Pushbutton

Prestop_PB

BOOL

Maintained Pushbutton

Lift_Locate_PB

BOOL

Momentary Pushbutton

Auto_Barcode_Display

BOOL

Momentary Pushbutton

LTU_Posn_Select

SINT

Control List Selector

TRIGGER_BARCODE_PB

BOOL

Momentary Pushbutton

Auto_Barcode_Display

BOOL

Momentary Pushbutton

MANUALTRIGGER

BOOL

Momentary Pushbutton

Gate_Convr_REV_PB

BOOL

Momentary Pushbutton

Gate_Convr_FWD_PB

BOOL

Momentary Pushbutton

Entrance_FWD_PB

BOOL

Momentary Pushbutton

Entrance_REV_PB

BOOL

Momentary Pushbutton

Robot_Bypass_LT

BOOL

Multistate Indicator

Robot_Bypass

BOOL

Momentary Pushbutton

Entrance_exit_Speed_Select

SINT

Control List Selector

Entrance_Speed_Select

SINT

Control List Selector

Main_Screen

BOOL

Momentary Pushbutton

Human_Entry_Mode_Screen

BOOL

Momentary Pushbutton

HZ_DISPLAY1

REAL

Numeric Display

Entrance_Speed_FPM

REAL

Numeric Display

ANALOG_ENTRY_ENABLE

BOOL

Maintained Pushbutton

READ_BIT

BOOL

Momentary Pushbutton

VFD_ANALOG_ENTRY

REAL

Numeric Input Enable

VFD_ANALOG_EXITY

REAL

Numeric Input Enable

Entrance_Speed_FPM1

REAL

Numeric Display

HZ_DISPLAY

REAL

Numeric Display

46

Lift_Locate_Message

SINT

Multistate Indicator

LTU_Message

SINT

Multistate Indicator

Trans_Convr_Message_PV1000

SINT

Multistate Indicator

Gate_Convr_Message

SINT

Multistate Indicator

Entrance_Convr_Message

SINT

Multistate Indicator

Prestop_Message

SINT

Multistate Indicator

Figure #60 Manual Control Screen Tag Table

Order Display Screen


Tag Name

Data Type

Type of Object

Emergency_Stop

BOOL

Momentary Pushbutton

Monitor_Screen_PB

BOOL

Momentary Pushbutton

Manual_Mode_Screen

BOOL

Momentary Pushbutton

Auto_Mode_Screen

BOOL

Momentary Pushbutton

OSTableShape

INT

Ellipse

OSTableShape

INT

Polyline

OSCard1Num

DINT

Multistate Indicator(x2)

OSCard2Num

DINT

Multistate Indicator(x2)

OSCard3Num

DINT

Multistate Indicator(x2)

OSCard4Num

DINT

Multistate Indicator(x2)

OSCard1Suit

DINT

Multistate Indicator(x2)

OSCard1Suit

DINT

Multistate Indicator(x2)

OSCard1Suit

DINT

Multistate Indicator(x2)

OSCard1Suit

DINT

Multistate Indicator(x2)

OSTABLECOLOR

INT

Rounded Rectangle(x4)

OSTABLECOLOR

INT

Multistate Indicator

OSTableShape

INT

Multistate Indicator

Figure #63 Order Display Screen Tag Table

47

Monitor Screen
Tag Name

Data Type

Type of Object

Emergency_Stop

BOOL

Momentary Pushbutton

Auto_Barcode_Display

BOOL

Momentary Pushbutton

Main_Screen

BOOL

Momentary Pushbutton

RED_STACK_LIGHT

BOOL

Rounded Rectangle

Yel_Stack_LT

BOOL

Rounded Rectangle

GREEN_STACK_LIGHT

BOOL

Rounded Rectangle

Gate_REV_Starter

BOOL

Polygon

Gate_FWD_Starter

BOOL

Polygon

Prestop_Lower_Solenoid

BOOL

Polygon(x3)

FPROJECT_MMNM:I.Data[2].4

BOOL

Polygon

FPROJECT_MMNM:I.Data[2].3

BOOL

Polygon

FPROJECT_MMNM:I.Data[0].9

BOOL

Polygon

LTU_POSTION_OBJECT

BOOL

Polygon(x2)

LTU_Raise_Solenoid

BOOL

Polygon(x2)

LTU_Lower_Solenoid

BOOL

Polygon(x2)

VFD_Rev_Bit

BOOL

Polygon

Entrance_FWD_Indicator

BOOL

Polygon

FPROJECT_MMNM:I.Data[1].3

BOOL

Polygon

FPROJECT_MMNM:I.Data[1].2

BOOL

Polygon

Trans_Convr_REV

BOOL

Polygon

Trans_Convr_FWD

BOOL

Polygon

FPROJECT_MMNM:O.Data[3].13

BOOL

Polygon

Robot_Status

DINT

Multistate Indicator

Robot_Status1

DINT

Multistate Indicator

Robot_Status3

REAL

Multistate Indicator

Figure #61 Monitor Screen Tag Table


48

Network Screen
Tag Name

Data Type

Type of Object

Emergency_Stop

BOOL

Momentary Pushbutton

ROBOT_IO_MMNM:I.RackStatus.0

BOOL

Line(x8)

Enet

BOOL

Line(x4)

Local:11:I.StatusRegister.DeviceFailure

BOOL

Line(x4)

@CLXPresentScanTime

FTView System tag

Numeric Display

@Status

FTView System tag

String Display

ROBOT_IO_MMNM:I.RackStatus

DINT

String Display

Main_Screen

BOOL

Momentary Pushbutton

Figure #62 Network Screen Tag Table

Sequencer Screen
Tag Name

Data Type

Type of Object

Emergency_Stop

BOOL

Momentary Pushbutton

Robot_Bypass

BOOL

Momentary Pushbutton

Robot_Bypass_LT

BOOL

Multistate Indicator

Auto_Mode_Indicator

BOOL

Momentary Pushbutton

Start_SEQ

BOOL

Momentary Pushbutton

Sequencer_Stop_PB

BOOL

Momentary Pushbutton

AUTOON

BOOL

Momentary Pushbutton

AUTOOFF

BOOL

Momentary Pushbutton

AutoEnable

BOOL

Multistate Indicator

Main_Screen

BOOL

Momentary Pushbutton

Manual_Mode_Screen

BOOL

Momentary Pushbutton

Human_Entry_Mode_Screen

BOOL

Momentary Pushbutton

Monitor_Screen_PB

BOOL

Momentary Pushbutton

Auto_Barcode_Display

BOOL

Momentary Pushbutton

Advance_Sequence_PB

BOOL

Momentary Pushbutton

Reset_Sequencer_PB

BOOL

Momentary Pushbutton
49

Indexing_Selection

INT

Control List Selector

Sequencer_Control.POS

DINT

Numeric Display

timer_time.pre

DINT

Numeric Display

Timer_Time.ACC

DINT

Numeric Display

Entrance_Speed_Select1

SINT

Control List Selector

Entrance_exit_Speed_Select1

SINT

Control List Selector

HZ_DISPLAY1

REAL

Numeric Display

Entrance_Speed_FPM

REAL

Numeric Display

ANALOG_ENTRY_ENABLE2

BOOL

Multistate Indicator

AUTO_SPEED_SELECT_REV

SINT

Numeric Input Enable

AUTO_SPEED_SELECT_FWD

SINT

Numeric Input Enable

READ_BIT

BOOL

Momentary Pushbutton

ANALOG_ENTRY_ENABLE2

BOOL

Maintained Pushbutton

Entrance_Speed_FPM1

REAL

Numeric Display

HZ_DISPLAY

REAL

Numeric Display

GATE_REV_Indicator

BOOL

Multistate Indicator

Gate_FWD_Indicator

BOOL

Multistate Indicator

LL_Lower_Indicator

BOOL

Multistate Indicator

LL_Raise_Indicator

BOOL

Multistate Indicator

Transfer_REV_Indicator

BOOL

Multistate Indicator

Transfer_FWD_Indicator

BOOL

Multistate Indicator

LTU_Lower_Indicator

BOOL

Multistate Indicator

LTU_Raise_Indicator

BOOL

Multistate Indicator

Pre_Stop_Down_Indicator

BOOL

Multistate Indicator

Speed_Select_3_Indicator

BOOL

Multistate Indicator

Speed_Select_2_Indicator

BOOL

Multistate Indicator

Speed_Select_1_Indicator

BOOL

Multistate Indicator

VFD_Rev_Indicator

BOOL

Multistate Indicator

VFD_Stop_Indicator

BOOL

Multistate Indicator

VFD_Start_Indicator

BOOL

Multistate Indicator

Figure #64 Sequencer Screen Tag Table

50

Workcell Inputs Screen


Tag Name

Data Type

Type of Object

FPROJECT_MMNM:I.Data[0].0

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].1

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].2

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].3

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].4

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].5

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].6

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].7

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].8

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].9

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].10

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].11

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].12

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].13

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[1].1

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[1].2

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[1].3

INT

Multistate Indicator

FPROJECT_MMNM:I.Data[1].4

DINT

Multistate Indicator

FPROJECT_MMNM:I.Data[1].5

DINT

Multistate Indicator

FPROJECT_MMNM:I.Data[1].6

DINT

Multistate Indicator

FPROJECT_MMNM:I.Data[1].7

SINT

Multistate Indicator

FPROJECT_MMNM:I.Data[1].8

SINT

Multistate Indicator

FPROJECT_MMNM:I.Data[1].9

REAL

Multistate Indicator

FPROJECT_MMNM:I.Data[1].10

REAL

Multistate Indicator

FPROJECT_MMNM:I.Data[1].11

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[2].2

SINT

Multistate Indicator

FPROJECT_MMNM:I.Data[2].3

SINT

Multistate Indicator

FPROJECT_MMNM:I.Data[2].4

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[2].5

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[2].6

REAL

Multistate Indicator

51

FPROJECT_MMNM:I.Data[2].10

REAL

Multistate Indicator

FPROJECT_MMNM:I.Data[2].15

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].14

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].15

BOOL

Multistate Indicator

Figure #65 Workcell Inputs Screen Tag Table

Workcell Outputs Screen


Tag Name

Data Type

Type of Object

FPROJECT_MMNM:O.Data[2].2

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].1

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].2

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].4

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].5

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].6

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].7

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].8

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].9

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].10

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].11

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].12

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].13

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].14

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[3].15

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[4].0

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[4].1

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[4].2

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[4].3

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[4].4

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[4].11

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[4].12

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[4].13

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[4].14

BOOL

Multistate Indicator

52

FPROJECT_MMNM:O.Data[4].15

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[5].0

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[5].2

BOOL

Multistate Indicator

FPROJECT_MMNM:O.Data[5].5

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[2].5

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[2].6

REAL

Multistate Indicator

FPROJECT_MMNM:I.Data[2].10

REAL

Multistate Indicator

FPROJECT_MMNM:I.Data[2].15

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].14

BOOL

Multistate Indicator

FPROJECT_MMNM:I.Data[0].15

BOOL

Multistate Indicator

Figure #66 Workcell Outputs Screen Tag Table

53

Vous aimerez peut-être aussi