## 5 Discussion
### Engineering  
An important objective in SICS is the use of IEC 61131-3 programs which, as is usual in the classical PLC technology, are created with professional programming systems, such as CoDeSys (3S), PC WORK (Phoenix Contact) or STEP7/TIA Portal (Siemens). The basis for implementing of IEC 61131 programming with SISC is the representation of the control programs in the uniform format PLCopen XML. For the programming systems PC WORK, CoDeSys, STEP7 (TIA Portal) and openPCS, a special research study [20] analyzed the conformity with the PLCopen standard; and the capabilities of those tools to export and import PLC programs as PLCopen-compliant XML programs. The results of the study can be summarized as follows:  
* Classic PLC programs exported as PLCopen XML programs by CoDeSys in the notation structured text (ST) or instruction list (IL) exported by PC WORK can form the basis for a SICS control program.  
openPCS is not suitable as a programming environment for SICS because of instability during export of a PLCopen XML program. By means of STEP 7 (TIA-Portal), presently it is not possible to export a PLCopen XML according the standard IEC 61131-3.  
The exported PLCopen XML programs in the IL or ST notation must be converted into the internal SICS-RT programming language (JavaScript) for executability in the SICS-RT. Two versions were developed and tested:  
Version 1:  
For a SICS-CM (Figure 5(b)), the IL program was executed after being translated (transformation of the PLCopen XML program into an internally suitable form) by loading the program into the SICS-RT using an interpreter. The interpreter was an inseparable part of the SICS-RT.  
Version 2:  
A separate ST compiler was developed for the SICS-SMM and SICS-SM, which compiles the PLCopen XML programs into directly executable JavaScript programs. The ST compiler was based on server-side JavaScript with node.js and functions as a web service for all SICS instances. The compiler is housed in a docker container and can be operated on any server.  
Regardless of the programming language notation in the PLCopen XML program, however, there are some limitations to SICS engineering compared to the traditional setup of a PLC program, since the PLC engineering world does not have a common area within the Internet world (at least not right now). Among others, these include:  
* Online debugging with PLC programming tools available on the market is not possible. Therefore, additional web-based testing possibilities (e.g., step operation and the output of step commands in the browser console) were introduced into the SICS controllers.
* Absolute addresses must be used for the I/O process data in the program. This can be easily implemented during the creation of the IEC 61131-3 control program
* The use of libraries or several tasks is up to now not possible. Thereto the compiler should be extended.  
The lack of online debugging in the source code of the IEC 61131-3 program makes testing a SICS controller more difficult and increases the time required to develop an error-free SICS control program.  
In summary, for SICS engineering, the engineering applied to industry, with a slightly higher cost compared to traditional PLC programming, is possible and can be used safely in a transitional period for the first SICS application solutions. In the long term, however, it is essential for smart control services to develop appropriate cloud and web-based engineering tools that fit seamlessly into the globally networked world of Industry 4.0 and the Industrial Internet of Things.