These basic objects are already predefined in the platform-specific system libraries (e.g. Step7, CoDeSys, etc.). For communications purposes, they can be connected with each other via communication channels. Use of the PLC coupler and terminal objects is not mandatory. They can also be represented using basic mechatronic objects. The PLC controller object, however, is always required if the program code is to be modeled in EEC, because this object is simultaneously used as a root object in the discipline structure. Regardless of the object being used, it is nevertheless important to pay attention to usage of the standard interfaces IController, ICoupler and ITerminal; otherwise, the IO generator cannot operate free of errors.