Initialize EIGEMEquipment & Load the setup file
The development includes creating an interface that acts as a bridge between c# and EIGEMSim. This dlls bring the whole EIGEMSim to your fingertips. For you to know, here are some insights into the code. Sounds interesting? Press the button below for exploring our product and EIGEMSim trial.
Explore EIGEMSim!
clientobj300.init(Callbackobj, “EIGEMConfig\\EIGEM.cfg”, “EIGEMConfig\\EIGEMLog.cfg”, false); // Automatic Server Start
//EIGEM300SocketClient.SERVER_HOSTNAME = “10.10.220.82”;
// EIGEM300SocketClient.SERVER_PORT = 2361;
How to handle collection events
Setup file:
5112=CJ, Control Job ID Used as variable data in CJ_STATE_CHANGE,,
5113=CJ, Control Job state Used as variable data in CJ_STATE_CHANGE,,L {A DV1} {A DV2}
5112=DV1,Example user defined data variable.,,DV,A,,0,0,,,A,
5113=DV2,Example user defined data variable.,,DV,A,,0,0,,,A,
Programming
clientobj.sendEvent(“ProcessingStarted”);
EIGEMVariableData objEIGEMVariableDatasendEventWithData = new EIGEMVariableData();
apiObj.API_name_label.Text = “sendEventWithData : eventName ,variableName ,variableValue(string)”;
apiObj.ShowDialog();
argcommasep = apiObj.textBox_arg.Text;
arglist = argcommasep.Split(‘,’);
objEIGEMVariableDatasendEventWithData.setVariableStandardName(arglist[1]);
objEIGEMVariableDatasendEventWithData.setVariableValue(arglist[2]);
List<EIGEMVariableData> objEIGEMUtilsEIGEMVariableDatasendEventWithData = new List<EIGEMVariableData>();
objEIGEMUtilsEIGEMVariableDatasendEventWithData.Add(objEIGEMVariableDatasendEventWithData);
clientobj.sendEventWithData(arglist[0], objEIGEMUtilsEIGEMVariableDatasendEventWithData)
How to program Remote Commands. There is no work in the setup file
public EIGEMRemoteCmdAck remoteCommand(String commandName, List<EIGEMCommandParameter> eIGEMCommandParameters)
{
EIGEMRemoteCmdAck obj = new EIGEMRemoteCmdAck();
MessageBox.Show(“remoteCommand”);
return obj;
}
SECS-II Message Logging is implemented using SEMI standard called XML SECS-II Message Notation (SMN)
Here is a short example of what this looks like
“On-line Data” : S1F2
< L [2]
<A MDLN = “LYNX”>
<A SOFTREV = “1.168-4”>
>
.
“Selected Equipment Status Request” : S1F3 W
< L [2]
<U4 7005>
<U4 5164>
>
.
“Selected Equipment Status Request” : S1F3 W
< L [11]
<U4 SVID = 7006>
<U4 SVID = 7030>
<U4 SVID = 7031>
<U4 SVID = 7008>
<U4 SVID = 7009>
<U4 SVID = 7010>
<U4 SVID = 7011>
<U4 SVID = 7012>
<U4 SVID = 7013>
<U4 SVID = 7014>
<U4 SVID = 7015>
>
.
“Selected Equipment Status Data” : S1F4
< L [1]
<A SV = >
>
.
“Status Variable Namelist Request” : S1F11 W
< L [0]
>
.
“Status Variable Namelist Reply” : S1F12
< L [1]
< L [3]
<U4 SVID = >
<A SVNAME = >
<A UNITS = >
>
>
.
“Establish Communications Request” : S1F13 W
< L [0]
>
.
“Establish Communications Request Acknowledge” : S1F14
< L [2]
<Bi COMMACK = 0x0>
< L [2]
<A MDLN = “LYNX”>
<A SOFTREV = “1.164”>
>
>
.
FAQs
What is EIGEMSim?
EIGEMSim is a semiconductor equipment simulator designed for SECS/GEM and GEM300 communication testing, development, and factory automation validation without requiring physical equipment.
Why is programming important in EIGEMSim?
Programming in EIGEMSim allows engineers to customize equipment behavior, simulate SECS/GEM messages, automate testing scenarios, and validate host communication before deployment in production environments.
Which programming languages are supported in EIGEMSim?
EIGEMSim commonly supports scripting and automation using languages such as C#, Python, and other Windows-compatible programming environments depending on integration requirements.
Can EIGEMSim simulate SECS/GEM and GEM300 communication?
Yes. EIGEMSim can simulate SECS/GEM, HSMS, and GEM300 communication workflows including alarms, events, data collection, recipe management, and equipment state transitions.
What are the benefits of using EIGEMSim for semiconductor automation testing?
EIGEMSim helps reduce development time, minimize integration risks, validate SECS/GEM communication, test MES connectivity, and improve semiconductor factory automation reliability before live equipment deployment.