The software controlling ASML’s TWINSCAN tool is split into different hierarchies. In the lower layers – closer to the hardware -, the software controls the moves of individual actuators. In higher layers, the moves of multiple actuators are synchronized with each other. Further up in the hierarchy these combined moves are abstracted away and bundled up into actions which then, together with other actions, need to be executed in the right sequence.
The software controlling this sequence of actions is event-driven: the controller triggers an action and its progress is reported back to it by means of discrete events – there is no notion of time.
The sequence of actions that needs to be dispatched by the controlling software is determined by several factors, such as:
Mechanical limitations
Data computations
Machine configuration
Specific use cases
All these constraints are stated as requirements which are implemented by the controlling software. These requirements are validated by means of testing.
Some of ASML’s event-driven controllers are implemented using Coco, which is a tool that allows the developer to describe a system in terms of state machines and is capable of automatically verifying that the described software is correct. By using this tool, the developer can spend more time in describing the intended system behavior rather than in debugging its implementation. While this tool ensures that the specified software behaves correctly, the developer remains responsible of ensuring that the modelled system fulfills all intended functional requirements (in other words, the correct implementation guaranteed by the usage of Coco does not imply that all given requirements are met).
The event-driven controllers in ASML’s software are too complex to be contained within a single Coco model. A controller is therefore broken down and split into a set of Coco models. Coco’s verification ensures correctness on a per-model basis, however, properties modelled across multiple models can’t be verified by the tool. The correctness of the modelled system as a whole depends on the implementation designed by the developer, making this modelling-software task an error-prone one. Extensive testing is required to validate that the modelled software complies with the functional requirements. Regardless of how thorough the testing is, frequently there are corner-cases that remain uncovered and this increases the chances of releasing software with bugs in it.
Your assignmentThe goal of this assignment is to reduce the chances of introducing software bugs by human error when developing a supervisory controller, and reduce the dependency on (extensive) functional testing when validating it.
The pursued approach is to develop a tool or framework that, given a number of (sub-)system requirements, enables the following:
Synthesizing a supervisory controller that realizes these requirements.
Creating a plant simulator that shall be used to validate the synthesized controller – model-based testing.
Some of the challenges to be taken into account for this assignment are:
Identify a suitable and feasible (sub-)system within the software in scope for the study.
Identify all requirements applicable to the selected system.
Define metrics to measure the achieved improvements.
The defined tool/framework should be easily extensible and scalable (easy to apply to different event-driven controllers within the TWINSCAN software stack).
Additional good-to-have / stretched objective:
Investigate the benefits and feasibility of using the Coco tool for the objectives in this assignment – for example: having the synthesized controller and / or the plant simulator specified in Coco state machines.
Your profileTo be a match for this internship, you:
Are a master student in Computer Science, Control Systems or a related field.
Have experience with Event-driven controllers and preferably with CIF - Compositional Interchange Format
Are familiar with model-based engineering, finite state machine and requirements engineering (nice-to-haves).
Have good communication and writing skills in English;
Have good technical communication skills and are pro-active.
This is a Master apprentice or graduation internship for a minimum of 6 months, for 4 to 5 days per week (at least 3 days onsite). The start date of this internship is flexible.
Other requirements you need to meet
You are enrolled at an educational institute for the entire duration of the internship;
You are located in the Netherlands to perform your internship. In case you are currently living/studying outside of the Netherlands, your CV/motivation letter includes the willingness to relocate;
If you are a non-EU citizen, studying in the Netherlands, your university is willing to sign the documents relevant for doing an internship (i.e., Nuffic agreement).
Diversity and inclusionASML is an Equal Opportunity Employer that values and respects the importance of a diverse and inclusive workforce. It is the policy of the company to recruit, hire, train and promote persons in all job titles without regard to race, color, religion, sex, age, national origin, veteran status, disability, sexual orientation, or gender identity. We recognize that diversity and inclusion is a driving force in the success of our company.
Need to know more about applying for a job at ASML? Read our frequently asked questions.