Professional Documents
Culture Documents
Change record
Date Name Version Comments
02/26/2008 Stefan Rosskopf 1.0.0 Initial version
Index
2 REFERENCES...............................................................................................................
REFERENCES...............................................................................................................4
4
3 INTRODUCTION............................................................................................................
INTRODUCTION............................................................................................................4
4
3.1 Purpose...............................................................................................................................................
Purpose............................................................................................................................................... 4
3.2 Scope...................................................................................................................................................
Scope................................................................................................................................................... 4
4 GENERAL DESCRIPTION.............................................................................................
DESCRIPTION.............................................................................................5
5
5 CONFIGURATION.......................................................................................................
CONFIGURATION.......................................................................................................13
13
6.2 Configuration....................................................................................................................................
Configuration.................................................................................................................................... 13
7.1 event_load.........................................................................................................................................
event_load......................................................................................................................................... 14
7.2 event_unload....................................................................................................................................
event_unload.................................................................................................................................... 14
7.3 event_start........................................................................................................................................
event_start........................................................................................................................................ 14
7.4 event_stop.........................................................................................................................................
event_stop......................................................................................................................................... 14
8.1 msg_setev_ack.................................................................................................................................
msg_setev_ack................................................................................................................................. 15
8.2 msg_startev_ack..............................................................................................................................
msg_startev_ack.............................................................................................................................. 15
8.3 msg_keepalive..................................................................................................................................
msg_keepalive.................................................................................................................................. 15
8.4 msg_pcbcheckin..............................................................................................................................
msg_pcbcheckin.............................................................................................................................. 15
8.5 msg_pcbcheckout............................................................................................................................
msg_pcbcheckout............................................................................................................................ 17
8.6 msg_loadcomp.................................................................................................................................
msg_loadcomp................................................................................................................................. 19
8.7 msg_unloadcomp.............................................................................................................................
msg_unloadcomp............................................................................................................................. 21
8.8 msg_changecomp............................................................................................................................
msg_changecomp............................................................................................................................ 23
8.9 msg_loadkitting................................................................................................................................
msg_loadkitting................................................................................................................................ 23
10 OTHER CONSIDERATIONS....................................................................................
CONSIDERATIONS....................................................................................27
27
2 References
“MES. Equipment Generic Setup & Machine Cycle Interaction V1.0.0.ppt”
Shows to Equipment supplier how to talk with MES across TCP/IP messages
"FujitraxHostSystemInterfaceSpecificationV1.0.0_Update.pdf"
Interface specification provided by Fuji.
"HostSystemInterface_Update.pdf"
Addon update of interface specification provided by Fuji.
"Specification LineControl.doc.pdf Version 1.2"
Specification of MES LineControl Server and Client module.
3 Introduction
3.1 Purpose
This document provides a detailed design specification to develop a ComCell filter dll for connection a Fuji
NXT machine to the Conti electronic plants MES.
3.2 Scope
This document provides the basic specification for writing the FraMES ComCell application for the Fujitrax.
4 General Description
The ComCell filter dll, together with ComCell framwork provides the communication interface between the
FujiTrax event base messages for Conti MES and the MES FraMES api. It als includes the process specific
part of the business logic which is not covered by MES.
The filter dll can be used to connect to a Fujitrax Central Server for one Fuji NXT machine a also to a
Fujitrax Kitting Station. This can be set in the ComCell configuration for the filter dll.
Here an overview ot the functions with a short description covered by the filter dll:
NXT machine
event message id equipment action MES action
Component load LOADCOMP One or several feeders Components are set to batch
with reels are loaded on positions of the MES station.
the NXT machine. The components are not
assigned to a WIP
order/operation at this time.
Component unload UNLOADCOMP One or several feeders Components are released from
with reels are unloaded batch positions of the MES
from the NXT machine or station.
the reels run out of
components
Component change CHANGECOMP One or several reels are Components are set to batch
changed due to splicing positions of the MES station.
transitions The components are not
assigned to a WIP
order/operation at this time.
Checkin PCB PCBCHECKIN A PCB goes into the the Validate the WIP unit for the
first module of the NXT MES station and load the
associated WIP definitions into a
WIPMaMa slot
Checkout PCB PCBCHECKOUT A PCB comes out from Find the corresponding
the last module of the WIPMaMa slot and assign all
NXT provided components to that
slot, if they are not assigned
(use). Release all not provided
components from that slot.
(unuse)
Record quantities of used
components in WIPMaMa.
Process the WIP unit.
Kitting Station
event message id equipment action MES action
Prepare kitting LOADKITTING A feeder is set at a The component reel is assigned
Fujitrax Kitting Station to a feeder carrier in CarMa
(Kitting Stand)
MES Server
Fujitrax
Central Server
Verifier/Profiler EPI EPI EPI
Fujitrax Fujitrax
Fujitrax
Central Server Central Server
Kitting Station
Client Client
For each NXT machine one connection to a MES ComCell Application is required. Target is to install the
MES ComCell Application at the same computer as the “Fujitrax Central Server Client”. In that case no
network commication for the EPI are needed. Therefore one Fujitrax Central Server Client is needed for
each NXT machine.
For the “Kitting Station” an additional instance of the MES ComCell application for Fujitrax is used.
MES Server
CAPS DLB
One LineControl Server is used for one SMD Line. It is used to select the material that has to be produced.
It also can be configured to additionally select the MES order. When the material has been selected, a
LineControl configuration Testplan is loaded from the EVAPROD database. This testplan provides several
common LineControl configuration parameters:
The MES ComCell Application for Fujitrax communicates to the LineControl Server by using the LineControl
EPI.
event_start
SETEV
Fujitrac
SETEV_ACK
STARTEV
msg_
setev_ack
STARTEV_ACK
msg_
startev_ack
MLTB entry
lnc_GetParameter(“MLTB2")
multiboard
S car_GetCarrierPositions
handling?
P
wpm_GetSlotForUnit
wpm_GetSlotForUnit
no,
slot returned ? no wpm_GetUnitLoss next
position
slot returned ? no
yes
checkin checkin
wpm_UnitCheckin wpm_UnitCheckin
required ? required ?
last MLTB
position?
MLTB entry
MLTB exit
lnc_GetParameter(“MLTB2")
multiboard
S car_GetCarrierPositions
handling?
P
wpm_GetSlotForUnit
wpm_GetSlotForUnit
yes
wpm_UnitCheckin wpm_UnitFinish
last MLTB
position?
MLTB exit
5 Configuration
There are two types of configurations for the ComCell application. One is done by entries in the FraMES.cfg
file. The other one is done via the settings of the LineControl server.
6.2 Configuration
All configuration parameters which are stored in the LineControl testplan are retrieved from the LineControl
Server. These are:
7.1 event_load
Load the ComCell Fujitrax configuration from the FraMES.cfg.
Load application specific GUI and place it in a tab of the WPPanel.
7.2 event_unload
Relase application specific GUI.
7.3 event_start
Create and send the SETEV message to Fujitrax. The message depends on the configuration:
EQUIPMENT_TYPE=NXT:
SETEV<TAB>SeqID<TAB>MachineName<TAB>NumList<CR>
LOADCOMP<TAB>Ack<CR>
UNLOADCOMP<TAB>Ack<CR>
CHANGECOMP<TAB>Ack<CR>
PCBCHECKIN<TAB>Ack<CR>
PCBCHECKOUT<TAB>Ack<CR>
LineControl message:
<STX>TS_INI:WRS:machine name<ETX>
Parameters to send
SeqID 1
MachineName configured parameter: MACHINE_NAME
NumList 5
Ack 1
EQUIPMENT_TYPE=KITTING:
SETEV<TAB>SeqID <TAB>MachineName<TAB> NumList <CR>
LOADKITTING<TAB>1<CR>
Parameters to send
SeqID 1
MachineName configured parameter: MACHINE_NAME
NumList 1
Ack 1
The answer for the message will be send to the ComCell message function msg_setev_ack. The sequence
id is set to 1 and can be checked by the msg_setev_ack.
7.4 event_stop
8.1 msg_setev_ack
This function is called after the function "event_start" has sent an "SETEV" to the Fujitrax and Fujitrax
replies a "SETEV_ACK" message to the ComCell. There for a global variable is used to check the sequence
id set by the event_start function.
Additional to that, the machine name and the result (0=OK 1=NOK) is checked.
Parameters to send
SeqID 2
MachineName configured parameter: MACHINE_NAME
The sequence id is set to 2, as this is the second message of the communication.
8.2 msg_startev_ack
This function is called after the function "msg_setev_ack" has sent a "STARTEV" message to the Fujitrax
and Fujitrax replied a "STARTEV_ACK" to the ComCell. The function doesn't have to reply a message to
Fujitrax.
8.3 msg_keepalive
This function provides the ComCell application part of the "Keep Alive" mechanism. This function always
sends back an "KEEPALIVE_ACK" message to notice that the application is still runnning.
Reply message:
KEEPALIVE_ACK<TAB>SeqID
Parameters to send
SeqID received SeqID
8.4 msg_pcbcheckin
This function is called wenn a PCB goes into the first module of the NXT machine. MES ComCell has to
validate if the unit is OK for that process step and sends back result=0 for ok or result=1 for not OK.
Tasks:
- Check the "Machine Name"
- Check if the unit is valid with the function wpm_GetSlotForUnit
- Check the ProgramName, if it fits to the material number of the unit
- Check if the material number is the same as the selected material number in the LineControl configuration
lnc_GetWIPMaterial
- Check if the critical msl remaining time is long enough lnc_GetParameter
Flowchart:
msg_pcbcheckin
MLTB entry
msg_pcbcheckin
The flow “MLTB entry” is displayed in the section “Multi Board Handling” of the “General Description”-
LineControl messages:
<STX>TS_GET:MAT<ETX> Get Materialnumber from LCS
<STX>TS_GET:SID<ETX> Get panel identification type
<STX>TS_GET:PID<ETX> Get single identification type
<STX>TS_PAR:MLTB:2<ETX> Get LineControl tesplan parameter for type ofmultiboard
handling
Parameters to send
SeqID received SeqID
Result 0 for OK / 1 for not OK
MachineName received and checked MachineName
LaneNo received LaneNo
ProgramName received and checked ProgramName
PanelID received and validated PanelID
8.5 msg_pcbcheckout
This function is called when a PCB goes out of the last module of the NXT machine. MES ComCell has to
validate if the unit and if its component traceability information is OK for that process step, stores the
traceability information in MES and sends back result=0 for OK or result=1 for not OK.
Although the feeder positions are controlled by the events “LOADCOMP”, “UNLOADCOMP” and
“CHANGECOMP”, the usage of the position for the slot in WIPMaMa are managed in the function
msg_pcbcheckout.
Tasks:
- Check the "Machine Name"
- Check if the unit is valid with the function wpm_GetSlotForUnit
- Check if the material number is the same as the selected material number in the LineControl configuration
wpm_GetSlotInfo lnc_GetWIPMaterial
- Get partlist setup for this slot to check if component us or unuse is required wpm_GetPartlistSetup
- For each component:
- check if position is already set with that component
- unuse position if needed wpm_UnusePosition
- if needed create batch unit in MaMa using the function wpm_CreateBachtUnit
- if needed set position in WIPMaMa by using the function wpm_SetPosition
- use position for current slot wpm_UsePosition
- use quantity for current slot and position with function wpm_UseQtyPosition
- reduce quantity for position with function wpm_DecQtyPosition
- Unuse all positions not in the list provided by the message "PCBCHECKOUT" wpm_UnusePosition
- Finish the PCB unit by calling the function wpm_UnitFinish.
Flowchart:
msg_pcbcheckout
MLTB entry
wpm_GetPartlistSetup
wpm_ReleasePosition
no
wpm_UseQtyPosition
wpm_DecQtyPosition
all components
checked ?
wpm_UnitFinish
Error
yes
apeared?
no
msg_pcbcheckout
Parameters to send
SeqID received SeqID
Result 0 for OK / 1 for not OK
MachineName received and checked MachineName
LaneNo received and checked LaneNo
ProgramName received and checked ProgramName
PanelID received and checked PanelID
8.6 msg_loadcomp
This event occurs when feeders with components are put to a module of the NXT machine., or when a reel
id is scanned during splicing.
Tasks:
- Check the "Machine Name"
- For each component:
- Check if ReelId is a batch unit in MaMa, if not create batch unit: wpm_CreateBatchUnit
- Check if FeederID is a carrier in CarMa. If not, create the carrier. car_CreateCarrier
- Check if ReelId belongs to FeederID. If not use CarMa to assign ReelID to FeederID
car_CarrierUsePosition
- Check if position is set. If not, set position with ReelID: wmp_SetPosition
- Id needed, adjust batch unit quantity wpm_DecQtyPosition
Flow:
msg_loadcomp
msg_changecomp
wpm_GetBatchUnitInfo
car_GetCarrierPosition
(car_CreateCarrier)
reel on that feeder
(car_CarrierReleasePosition) OK? no
carrier
car_CarrierUsePosition
No,
next
component
wpm_GetPosition
Position already
no wpm_SetPosition OK? no
set?
yes
last component?
yes
reply message OK
msg_loadcomp
msg_changecomp
Parameters to send
LOADCOMP_ACK Message name
SeqID Received SeqID
MachineName Received machine name
ModuleNo Received module no
NumList Received number of loaded components
Components
8.7 msg_unloadcomp
This event occurs when feeders with components are taken from a module of a NXT machine or when the
component is not longer available because the splice position is reached.
Tasks:
- Check the "Machine Name"
- For each component:
- Check if FeederID is a carrier in CarMa. If not, create the carrier. car_CreateCarrier
- Check if ReelId belongs to FeederID. If not use CarMa to assign ReelID to FeederID
car_CarrierUsePosition
- Id needed, adjust batch unit quantity wpm_DecQtyPosition
- Check if position is set. If yes release position: wmp_ReleasePosition
Flow:
msg_unloadcomp
wpm_ReleasePosition
No,
next reply message NOK for
component OK? no
this component
last component?
yes
reply message
msg_unloadcomp
8.8 msg_changecomp
This event occurs when the new reel id is valid because the splice position is reached. The FraMES
application can handle that like the "LOADCOMP" event.
The event “CHANGECOMP” is treated as the event “LOADCOMP”.
Parameters to send
CHANGECOMP_ACK Message name
SeqID Received SeqID
MachineName Received machine name
ModuleNo Received module no
NumList Received number of loaded components
Components
8.9 msg_loadkitting
This event occurs when a a feeder is set at the Kitting Station.
- Check the "Kitting Name"
- Check if FeederID is a carrier in CarMa. If not, create the carrier. wpm_CreateCarrier
- Check if ReelId belongs to FeederID. If not use CarMa to assign ReelID to FeederID
wpm_UseCarrierPosition
- If ReelID is not set by the Kitting Station, release position in CarMa. wpm_ReleaseCarrierPosition
Flow:
msg_loadkitting
wpm_GetBatchUnitInfo
yes
car_GetCarrierPosition
car_CreateCarrier
reel on that feeder
no car_CarrierReleasePosition OK?
carrier
car_CarrierUsePosition
yes
no
msg_loadkitting
Kitting Station
Seq. Number of
MES ComCell
No. Comment events Fujitrax Kitting Station
Connect TCP/IP server
1 Socket Connection 1
Accept Client Connection
SETEV
2 Send a list of all required events 1
SETEV_ACK
STARTEV
3 Send start signal start with events 1
STARTEV_ACK
Kitting station sends load kitting LOADKITTING
4 events 1..n
LOADKITTING_ACK
Feeder
Event Feeder Pos Reel Id Comment
LOADCOMP feeder1 pos1 reel1 verify reel, create batch unit in MaMa
change feeder carrier
set batch position
LOADCOMP feeder1 pos1 reel2 verify reel, create batch unit in MaMa
change feeder carrier
LOADCOMP feeder1 pos1 reel3 verify reel, create batch unit in MaMa
change feeder carrier
Feeder
Event Feeder Pos Reel Id Comment
LOADCOMP feeder1 pos1 reel1 verify reel, create batch unit in MaMa
change feeder carrier
set batch position
UNLOADCOMP feeder1 pos1 reel1 ReleasePosition
LOADCOMP feeder1 pos1 reel2 verify reel, create batch unit in MaMa
change feeder carrier
set batch position
UNLOADCOMP feeder1 pos1 reel2 ReleasePosition
LOADCOMP feeder1 pos1 reel3 verify reel, create batch unit in MaMa
change feeder carrier
set batch position
10 Other considerations