Rzonca-Developing A Multiplatform Control Environment
Rzonca-Developing A Multiplatform Control Environment
Rzonca-Developing A Multiplatform Control Environment
Journal of
of Automation,
Automation,Mobile
MobileRobotics
Roboticsand
andIntelligent
IntelligentSystems
Systems VOLUME
VOLUME 13,13, N°N°4 4 2019
2019
Dariusz Rzońca, Jan Sadolewski, Andrzej Stec, Zbigniew Świder, Bartosz Trybus, Leszek Trybus
73
73
Journal
Journal of
of Automation,
Automation,Mobile
MobileRobotics
Roboticsand
andIntelligent
IntelligentSystems
Systems VOLUME
VOLUME 13,13, N°
N°44 2019
2019
sion compiled ST programs into intermediate Virtual and plant model written in ST. HT‑PLC [26] runs LD
Machine Assembler (VMASM) executed by runtime programs on Arduino with Ethernet. Among relevant
VM on AVR and MCS51 8‑bit microcontrollers. It alre‑ solutions in other areas one may mention security‑
ady involved certain provisions to facilitate porting to oriented IoT environment [32] involving SIL interme‑
different hardware and interfacing communications. diate language, C/C++/Java‑to‑SIL compiler and VM.
Over the following years CPDev has been exten‑ Scan cycle, important particularly in manufactu‑
ded on 32/64‑bit processors, augmented with transla‑ ring, can be decreased by direct execution at a dedi‑
tors of graphical languages, HMI design tool and multi‑ cated processor, as shown in [39] for a Toshiba CPU.
project runtime (initially applied in FPGA [18]). PhD Nowadays hardware processors are designed in FPGA
research has been supported by Model Driven Deve‑ technology, as demonstrated by early double proces‑
lopment and unit‑testing extensions [29], [27]. So far sor for a PLC [6] and in [42], [35] for current multi‑
several Small and Medium Scale (SMES) manufactu‑ core solutions. Comparison of execution times for a
rers use the environment. few PLCs and FPGA has been presented in [18]. A num‑
The early paper [47] and the others have focu‑ ber of FPGA designs can be found in the proceedings
sed on CPDev functionalities rather than on explaining of PDES conferences (Programmable Devices and Em‑
how they have been created. Therefore the purpose of bedded Systems).
this paper is to present technical aspects of: Details of IEC 61131‑3 compilers are typically not
‑ portability of the compiler and VM to different CPUs disclosed. As an exception the early paper [31] descri‑
‑ implementation of interfaces for various target plat‑ bes structure of the compiler, code optimization and
forms support of logic operations by a programmable de‑
vice. Nevertheless, one may generally expect that most
‑ translators of graphical languages of the compilers apply Static Single Assignment (SSA)
‑ structure of device‑independent HMI tool syntax and corresponding translation described for
‑ data for binding variables to communication inter‑ instance in [8]. Occasionally semantic‑driven transla‑
faces. tion can also be encountered [13]. SSA syntax has been
This paper is thus organized as follows. Next recently applied for inference of types in dynamic lan‑
section reviews related work concerning IEC 61131‑ guages [45], such as Python. Parametrization of GCC
3 environments. Section 3 summarizes basic features compiler due to limited resources has been presented
of CPDev. Section 4 overviews VMASM language, pa‑ in [44].
rametrized compiler and presents example running Activity on Vertex (AOV) graph transformation al‑
throughout the paper. Architecture of the VM, im‑ gorithms are typically used to translate LD diagrams
plementation of target platform interfaces and multi‑ into IL or ST [12], [20]. Direct translation of AOV into
project runtime are described in Section 5. Section 6 ST is applied in CPDev. More advanced Enhanced Data
presents translators of graphical languages and struc‑ Flow Graphs from [36] can implement IL, LD and SFC
ture of the HMI tool. List of data required to bind varia‑ programs.
bles to communication interfaces and some characte‑ Parametrized formal semantics for execution of
ristic industrial implementations are shown in Section SFC diagrams has been proposed in [4] to avoid am‑
7. biguities of IEC 61131‑3 standard. Unsafe components
of SFCs created using CODESYS semantics (also app‑
lied in CPDev) can be detected by static analysis [49].
2. Related Work
Principles of HMI design for control applicati‑
An interest in virtual machines, i.e. abstract pro‑ ons have been described in [14]. German standard
cessors for speci�ic languages implemented by soft‑ VDI/VDO 3699 [51] also covers this area. Future ad‑
ware on particular hardware platforms has been in‑ vanced solutions may involve 3D graphics and virtual
creasing since Java Virtual Machine (JVM) appeared reality [50]. Some features of industrial operator pa‑
over 20 years ago [55], followed later by Common Lan‑ nels and in‑vehicle infotainment systems [34] are cle‑
guage Runtime (CLR) for .NET framework [46]. In par‑ arly the same.
ticular, most of ARM‑based mobile phones implement Implementation guidelines and technical details
JVM processors in Jazelle technology. concerning industrial communications can be found
VM‑based control solutions with the standard IL as for instance in [59]. Comparison of industrial and pu‑
the intermediate language appeared in literature in si‑ blic networks taking into account control, standardi‑
milar time as the early paper [47] (besides commer‑ zation and dependability is discussed in [15].
cial ISaGRAF). VM of [58] was written in C and app‑
lied in 8‑bit C8051 CPU. Whimori CDU [48] educati‑
onal tool translated LD into IL. UniSim [11], although 3. CPDev Overview
restricted to a few data types, provided graphical pro‑ The CPDev tool, initially providing just ST pro‑
gramming. IL was also used in [57] for VM implemen‑ gramming, supports now all IEC 61131‑3 languages,
tation of ARM‑based softcontroller. HMI design, documentation generator and research‑
More recently, IEC 61131‑3 applications have been oriented extensions. Multi‑project runtime for com‑
executed by CLR, i.e. a .NET VM [5]. Development plex software is also available. Steps of control pro‑
of various educational tools continues. For example, gram processing are shown in Fig. 1. ST and IL pro‑
WEB PLC Simulator [41] executes control algorithm grams are compiled into mnemonics of the intermedi‑
74
74 Articles
Journal
Journal of
of Automation,
Automation,Mobile
MobileRobotics
Roboticsand
andIntelligent
IntelligentSystems
Systems VOLUME
VOLUME 13,13, N°N°4 4 2019
2019
ate VMASM. LD, FBD and SFC diagrams are translated up to 16 operands where the �irst one denotes the re‑
to ST and then compiled. Assembler converts the mne‑ sult. Procedures shown in Table 1 (examples) are ty‑
monics into executable binary code uploaded into VM. pical for machine languages, so they control program
The VM is written in C, so may be implemented in va‑ �low, call subprograms, copy memory, etc.
rious CPUs.
Tab. 1. Procedures of the VMASM language
SFC FBD LD
Mnemonic Meaning
JMP Unconditional jump
JZ Conditional jump
Translators JR Unconditional relative jump
CALB Subroutine call
RETURN Return from subroutine
IL ST MCD Initialize data
MEMCP Copy memory block
FPAT Fill memory block
Compiler
Syntax of VMASM instructions is the following:
[:label] instruction [operand1]
VMASM [,operand2][,operand3]...
mnemonics
Label is optional, instruction speci�ies number of
operands, i.e. variables, labels or constants. Since in
case of functions operand1 denotes a variable (result),
Assembler
so the syntax expresses memory‑to‑memory type of
operation. Question mark ? at the beginning indicates
Binary
label or in ?LR? pre�ix a temporary variable created by
code the compiler. Dot operator (.) selects components of
arrays or structures.
Runtime
Note that in IL language, often used as intermedi‑
VM ate (Sec. 2), result of a command is kept in Current Re‑
sult (CR) register equivalent to accumulator. Later the
Fig. 1. Processing of control programs CR is copied into a variable. By placing the result in the
operand1, VMASM combines these two steps into one.
Basic functionalities of CPDev are practically the The notion of accumulator does not exist in VMASM.
same as in other control environments. Automatic 4.2. Parametrized Compiler
connections provided by LD and FBD editors may be
an exception (A* algorithm [19]). HMI tool applies To ensure portability of implementations one has
components from device‑independent libraries. Data to take primarily into account sizes of addresses requi‑
for interfacing communications and I/Os are genera‑ red by CPUs, so typically 16 or 32 bits. Also some data
ted by the compiler as an XML �ile. types may be not needed. To provide such features
Model Driven Development extension translates the CPDev compiler is parametrized by means of an
SysML diagrams [40] into templates of programs or XML Library Con�iguration File (LCF) involving de�i‑
communication tasks [29]. Another extension sup‑ nitions of hardware resources, data types, instructions
ports unit testing of POUs (Program Organization and conversions. Given the parametrized LCFs dedica‑
Units) [27]. All CPDev modules have XML interfaces ted compilers and VMs for particular platforms can be
to enable agile and round‑trip software development created from one general compiler and generic VM.
[28].
<HARDWARE>
Extended runtime environment besides the VM for
<AddressSize>2</AddressSize>
control functions involves HMI runtime for the inter‑
<MaxCodeAddress>0xFFFF</MaxCodeAddress>
face. The VM and HMI runtime are executed in parallel
<MaxDataAddress>0xFFFF</MaxDataAddress>
exchanging data by means of global variables.
</HARDWARE>
<TYPES>
4. Intermediate VMASM and Compilation <type name="UINT" implement="alias">
4.1. Overview of VMASM <alias name="WORD"/>
As an IEC 61131‑3‑oriented language, Virtual Ma‑ </type>
chine Assembler accepts all elementary data types <deny-type name="LREAL" />
except WSTRING. Number of types required by parti‑ </TYPES>
cular application may be restricted by parametrizing
the compiler. VMASM instructions consist of functions Fig. 2. Specification of hardware and data types
and procedures. Functions are the same as in the stan‑
dard, so ADD, OR, EQ, CONCAT, EXPT, etc. They admit Sample speci�ication of <Hardware> resources in
75
Articles 75
Journal
Journal of
of Automation,
Automation,Mobile
MobileRobotics
Roboticsand
andIntelligent
IntelligentSystems
Systems VOLUME
VOLUME 13,13, N°
N°44 2019
2019
the LCF �ile is shown in Fig. 2 (upper part) with initializes TON1.PT (4 bytes, TIME) with #B80B0000,
AddressSize and MaxAddresses of code and data me‑ i.e. 2000 ms (little endian form). Final CALB calls code
mories available for VM. 2 as AddressSize means 2 of TON1 block from IEC_61131 library. Value testing
bytes needed for 16‑bit addressing of up to 64 kB me‑ and jumps could be avoided by writing the Boolean ex‑
mory (0xFFFF). 4 represents 32‑bit addressing of 4 pression in function form as AND(IN,TON2.Q)).
GB. Note that the AddressSize de�ines addressing for Translation of TON2 call is similar. OUT statement
VM only, so 16‑bit VM may be executed by a 32 or 64‑ is translated in the same way as the expression for
bit CPU. TON1.IN. Optimization of the mnemonic translation to
<TYPES> part of the LCF �ile (Fig. 2) de�ines data minimize the number of temporary variables precedes
types available in particular implementation. By using generation of binary code.
deny-type one can remove not needed types, for in‑
stance LREAL. The deny-type option enables con�i‑ 5. Binary Code and Virtual Machine
guration of the environment for so‑called made‑to‑ 5.1. Assembling the Mnemonics
measure PLCs, suitable particularly for IoT and Indu‑
To generate the binary code, VMASM instructions
stry 4.0 applications.
are de�ined in the LCF �ile by means of digital identi‑
Given the LCF �ile, scanner and parser of the com‑
�iers vmcode composed of group ig and type it sub‑
piler translate the source program into a �ile with
identi�iers as shown in Fig. 4a. In case of functions
VMASM mnemonics. By using another set of keywords
ig indicates name, so ADD, MUL, AND, EQ, etc., whereas
the ST scanner also processes IL, where ad hoc tempo‑
it refers to data type, BOOL, INT, TIME and so on.
rary variables replace CR register. The parser applies
In this way type‑speci�ic functions such as ADD:INT,
top‑down syntax‑directed translation [8]. Basic com‑
AND:BOOL and others may be expressed in digital form.
ponents of the compiler are de�ined as classes in C�
Fig. 4b (upper part) shows de�inition of AND:BOOL
language. Internal data are kept in lists.
where ig=08 denotes AND and it=*0 indicates BOOL
4.3. Compilation Example (0) and varying number of inputs (*).
All VMASM procedures belong to one group ig=1C
ST program for switching OUT on‑and‑off in 3+2 se‑
with it choosing speci�ic procedure. �e�inition of MCD
conds cycle while IN is a active, and VMASM transla‑
that initializes data memory beginning from DST (des‑
tion of the �irst TON1 call are shown in Fig. 3. A warning
tination) relative label (:rdlab) with imm1 bytes (im‑
light may be triggered in this way.
mediate value) from the source imm2 of varying type
(*) is also in Fig. 4b (lower part).
ig it
�rou� �de�t���er t��e �de�t���er
(a)
TON1(IN:=IN AND NOT TON2.Q, PT:=T#3s);
TON2(IN:=IN AND TON1.Q, PT:=T#2s); <function name="AND" vmcode="08*0" return="BOOL">
OUT := IN AND NOT TON1.Q; <args>
JZ IN, :?WARN?AN10 <arg no="*" name="arg*" type="BOOL"/>
NOT ?LR?AN11, TON2.Q </args>
JZ ?LR?AN11, :?WARN?AN10 <comment>Binary AND of BOOL operands</comment>
MCD TON1.IN, #01, #01 </function>
JMP :?WARN?EA14 <sysproc name="MCD" vmcode="1C15">
:?WARN?AN10 <args>
MCD TON1.IN, #01, #00 <arg no="0" name="DST" type=":rdlabel"/>
:?WARN?EA14 <arg no="1" name="imm1" type=":imm.BYTE"/>
MCD TON1.PT, #04, #B80B0000 <arg no="2" name="imm2" type=":imm.*"/>
CALB TON1, :?IEC_61131.TON?CODE </args>
<comment>Initializes data at arg0 address with area
Fig. 3. ST code and part of VMASM translation size arg1 and source pattern arg2.</comment>
</sysproc>
The compiler translates Boolean expressions in‑ (b)
volving in�ix operations like IN AND TON2.Q by me‑
ans of value testing and jumps. Hence the VMASM Fig. 4. a) Structure of vmcode, b) specification of
translation begins with jump JZ to :?WARN?AN10 la‑ function and procedure
bel if IN is zero. If not, NOT of TON2.Q is evaluated
in ?LR?AN11 temporary variable, followed by anot‑ Having the �ile with VMASM mnemonics all pro‑
her JZ to the same label if the variable is zero. If gram modules are consolidated and assembled into bi‑
not, MCD instruction sets 1 byte (�irst #01) at TON1.IN nary code by replacing:
to 1 (second #01), followed by unconditional JMP to ‑ instruction mnemonics by digital identi�iers vmcode
:?WARN?EA14. At the :?WARN?AN10 label another MCD (ig and it)
sets TON1.IN to 0 (#00). The third MCD at :?WARN?EA14 ‑ names of variables by addresses in data memory
76
76 Articles
Journal
Journalof
ofAutomation,
Automation,Mobile
MobileRobotics
Roboticsand
andIntelligent Systems
Intelligent Systems VOLUME
VOLUME 13,13, N°N°44 2019
2019
77
Articles 77
Journal
Journal of
of Automation,
Automation,Mobile
MobileRobotics
Roboticsand
andIntelligent
IntelligentSystems
Systems VOLUME
VOLUME 13,13, N°
N°44 2019
2019
78
78 Articles
Journal
Journal of
of Automation,
Automation,Mobile
MobileRobotics
Roboticsand
andIntelligent
IntelligentSystems
Systems VOLUME
VOLUME 13,13, N°N°4 4 2019
2019
next_step_flag
IN
SFC STEP
X T
N S R L D ...
SFC ACTION CONTROL
A
IF A THEN action_code
END_IF
79
Articles 79
Journal
Journal of
of Automation,
Automation,Mobile
MobileRobotics
Roboticsand
andIntelligent
IntelligentSystems
Systems VOLUME
VOLUME 13,13, N°
N°44 2019
2019
in Fig. 13 for IN and OUT variables from the running 7.2. Characteristic Implementations
example. The successive entries denote: As may be concluded from above, the implementa‑
‑ LName – local name inside current variable scope tion engineer can port CPDev environment to particu‑
‑ PName – physical name including project name scope lar platform after development of:
‑ target platform interface
‑ Addr – hexadecimal address (16‑bit version in ‑ communication and I/O con�iguration tool
Fig. 13)
‑ deployment module to upload the binary code and
‑ AddrType – address type; :gdlabel means global con�iguration data into the controller.
data label Upgrading existing devices such as dedicated con‑
‑ Size – variable size in bytes trollers, distributed I/O units or data loggers with
IEC 61131‑3 capabilities has been the main purpose
‑ Type – variable type of the implementations so far. Therefore the engineers
could use major portions of low‑level software while
‑ PType – physical type; $Default scope involves sy‑
porting. Deployment has involved Ymodem for serial,
stem elements
ftp or tftp for Ethernet and GSM/GPRS for wireless.
‑ VarFlags – �lags related to variable. Power management, propulsion control, heading
Variables imported from libraries have control and other subsystems belonging to Mega‑
LIBRARY.VARIABLE as physical name to avoid con‑ Guard ship automation and navigation system from
�licts. �esides elementary types, AddrTypes include Praxis [43] are most signi�icant implementations of
data label relative to current POU (:rdlabel), global CPDev. Each subsystem involves a control processor,
or relative labels to code (:gclabel, :rclabel), I/O unit (units) and TFT touch‑panel (as in Fig. 11), all
array and structures indicated by ?ARRAY?NUM and of them equipped with ARM CPUs. CAN is applied for
?STRUCT?NUM (unique NUM). Flags involve: 1 – retain, communication with I/O and Ethernet (redundant)
4 – constant, 8 – variable with address de�ined by for TFT. The processor for controlling a setup com‑
AT, 0x4000 – global, 0x800000 – data channel. Other posed of diesel engine, electric generator and circuit
�lags may be de�ined. breaker is shown in Fig. 14. Praxis software is writ‑
ten in ST. TFT displays consist of components from
<VAR LName="IN" PName="RevSwitchST.IN" Addr="0000" user‑de�ined libraries. NMEA serial/Ethernet protocol
AdrType="gdlabel" Size="1" Type="BOOL" is used by marine electronic devices.
PType="$DEFAULT.BOOL" VarFlags="00004000" />
<VAR LName="OUT" PName="RevSwitchST.OUT" Addr="0001"
AdrType="gdlabel" Size="1" Type="BOOL"
PType="$DEFAULT.BOOL" VarFlags="00004000" />
80
80 Articles
Journal
Journal of
of Automation,
Automation,Mobile
MobileRobotics
Roboticsand
andIntelligent
IntelligentSystems
Systems VOLUME
VOLUME 13,13, N°N°4 4 2019
2019
81
Articles 81
Journal
Journal of
of Automation,
Automation,Mobile
MobileRobotics
Roboticsand
andIntelligent
IntelligentSystems
Systems VOLUME
VOLUME 13,13, N°
N°44 2019
2019
Virtual Machine”. In: 2016 IEEE 21st In‑ gies and Factory Automation (ETFA), vol. 1, 2018,
ternational Conference on Emerging Technolo‑ 1047–1050, 10.1109/ETFA.2018.8502464.
gies and Factory Automation (ETFA), 2016, 1–8, [18] Z. Hajduk, B. Trybus, and J. Sadolewski, “Archi‑
10.1109/ETFA.2016.7733632. tecture of FPGA Embedded Multiprocessor Pro‑
[6] M. Chmiel and E. Hrynkiewicz, “Concurrent ope‑ grammable Controller”, IEEE Transactions on In‑
ration of processors in the bit‑byte CPU of a PLC”, dustrial Electronics, vol. 62, no. 5, 2015, 2952–
Control and Cybernetics, vol. 39, no. 2, 2010, 559– 2961, 10.1109/TIE.2014.2362888.
579.
[19] P. E. Hart, N. J. Nilsson, and B. Raphael, “A For‑
[7] J. Cisek, W. Mikluszka, Z. Swider, and L. Try‑ mal Basis for the Heuristic Determination of Mi‑
bus, “A Low‑Cost DCS with Multifunction Instru‑ nimum Cost Paths”, IEEE Transactions on Systems
ments and CAN Bus1”, IFAC Proceedings Volumes, Science and Cybernetics, vol. 4, no. 2, 1968, 100–
vol. 34, no. 29, 2001, 64–69, 10.1016/S1474‑ 107, 10.1109/TSSC.1968.300136.
6670(17)32794‑5.
[20] L. Huang, W. Liu, and Z. Liu, “Algorithm of trans‑
[8] K. D. Cooper and L. Torczon, Engineering a formation from PLC ladder diagram to structu‑
Compiler, Morgan Kaufmann: Boston, 2012, red text”. In: 2009 9th International Conference
10.1016/C2009‑0‑27982‑7. on Electronic Measurement Instruments, 2009, 4–
[9] COPA‑DATA France. “STRATON–PLC”. www. 778–4–782, 10.1109/ICEMI.2009.5274701.
straton-plc.com. Accessed on: 2020‑02‑28. [21] ICS Triplex. “ISaGRAF”. www.isagraf.com.
[10] W. Dai, V. Vyatkin, J. H. Christensen, and V. N. Accessed on: 2020‑02‑28.
Dubinin, “Bridging Service‑Oriented Architec‑ [22] IEC. “IEC 61131‑3 – Programmable controllers –
ture and IEC 61499 for Flexibility and In‑ Part 3: Programming languages”, 2013.
teroperability”, IEEE Transactions on Industrial
[23] IEC. “IEC 61499 – Function Blocks”, 2012.
Informatics, vol. 11, no. 3, 2015, 771–781,
10.1109/TII.2015.2423495. [24] iGrid T&D. www.igrid-td.com. Accessed on:
2020‑02‑28.
[11] G. De Tommasi and A. Pironti, “An educational
open‑source tool for the design of IEC 61131‑3 [25] Instrument Science Systems, Inc. www.issi.
compliant automation software”. In: Automation com.ph/. Accessed on: 2020‑02‑28.
and Motion 2008 International Symposium on Po‑ [26] H. I. Inzunza Villagó mez, B. Pé rez Arce, S. I.
wer Electronics, Electrical Drives, 2008, 486–491, Herná ndez Ruiz, and J. A. Ló pez Corella, “De‑
10.1109/SPEEDHAM.2008.4581144. sign and implementation of a development en‑
[12] G. Fen and W. Ning, “A Transformation Algorithm vironment on ladder diagram (HT‑PLC) for Ar‑
of Ladder Diagram into Instruction List Based duino with Ethernet connection”. In: 2018 IEEE
on AOV Digraph and Binary Tree”. In: TENCON International Conference on Automation/XXIII
2006 ‑ 2006 IEEE Region 10 Conference, 2006, 1– Congress of the Chilean Association of Automa‑
4, 10.1109/TENCON.2006.343937. tic Control (ICA‑ACCA), 2018, 1–6, 10.1109/ICA‑
ACCA.2018.8609850.
[13] E. Ferreira, R. Paulo, C. D. Da, and P. Henriques,
“Integration of the ST language in a model‑based [27] M. Jamro, “POU‑Oriented Unit Testing of IEC
engineering environment for control systems: 61131‑3 Control Software”, IEEE Transactions on
An approach for compiler implementation”, Com‑ Industrial Informatics, vol. 11, no. 5, 2015, 1119–
puter Science and Information Systems, vol. 5, no. 1129, 10.1109/TII.2015.2469257.
2, 2008, 87–101, 10.2298/CSIS0802087F. [28] M. Jamro and D. Rzonca, “Agile and hierarchical
[14] J.‑Y. Fiset, Human‑machine interface design for round‑trip engineering of IEC 61131‑3 control
process control, Instrumentation, Systems, and software”, Computers in Industry, vol. 96, 2018,
Automation Society: Research Triangle Park, NC, 1–9, 10.1016/j.compind.2018.01.004.
2009. [29] M. Jamro, D. Rzonca, and W. Rząsa, “Testing com‑
[15] P. Gaj, J. Jasperneite, and M. Felser, “Compu‑ munication tasks in distributed control systems
ter Communication Within Industrial Distribu‑ with SysML and Timed Colored Petri Nets mo‑
ted Environment—a Survey”, IEEE Transactions del”, Computers in Industry, vol. 71, 2015, 77–87,
on Industrial Informatics, vol. 9, no. 1, 2013, 182– 10.1016/j.compind.2015.03.007.
189, 10.1109/TII.2012.2209668. [30] M. Jamro and B. Trybus, “IEC 61131‑3 program‑
[16] GEB Automation. “GEB IDE”. www. mable human machine interfaces for control de‑
gebautomation.com. Accessed on: 2020‑02‑28. vices”. In: 2013 6th International Conference on
[17] P. Gsellmann, M. Melik‑Merkumians, and G. Schit‑ Human System Interactions (HSI), 2013, 48–55,
ter, “Comparison of Code Measures of IEC 10.1109/HSI.2013.6577801.
61131–3 and 61499 Standards for Typical Au‑ [31] H. S. Kim, J. Y. Lee, and W. H. Kwon, “A com‑
tomation Applications”. In: 2018 IEEE 23rd In‑ piler design for IEC 1131‑3 standard langua‑
ternational Conference on Emerging Technolo‑ ges of programmable logic controllers”. In:
82
82 Articles
Journal
Journal of
of Automation,
Automation,Mobile
MobileRobotics
Roboticsand
andIntelligent
IntelligentSystems
Systems VOLUME
VOLUME 13,13, N°N°4 4 2019
2019
SICE ’99. Proceedings of the 38th SICE An‑ [46] J. Richter, CLR via C#, Microsoft Press: Redmond,
nual Conference. International Session Papers Washington, 2012.
(IEEE Cat. No.99TH8456), 1999, 1155–1160, [47] D. Rzoń ca, J. Sadolewski, A. Stec, Z. S� wider, B. Try‑
10.1109/SICE.1999.788715. bus, and L. Trybus, “Mini‑DCS system program‑
[32] Y. Lee, J. Jeong, and Y. Son, “Design and imple‑ ming in IEC 61131‑3 structured text”, Journal of
mentation of the secure compiler and virtual ma‑ Automation Mobile Robotics and Intelligent Sys‑
chine for developing secure IoT services”, Fu‑ tems, vol. 2, no. 3, 2008, 48–54.
ture Generation Computer Systems, vol. 76, 2017, [48] S. Shin, M. Kwon, and S. Rho, “Whimori CDK:
350–357, 10.1016/j.future.2016.03.014. A Control Program Development Kit”. In:
[33] Light OPC Server. www.ipi.ac.ru. Accessed on: Engineering and Information 2009 Internatio‑
2020‑02‑28. nal Conference on Computing, 2009, 115–118,
10.1109/ICC.2009.33.
[34] D. Massonie, C. Hacker, and T. Sowa, “Modeling
Graphical and Speech User Interfaces with Wid‑ [49] H. Simon and S. Kowalewski, “Static analy‑
gets and Spidgets”. In: Speech Communication; sis of Sequential Function Charts using ab‑
11. ITG Symposium, 2014, 1–4. stract interpretation”. In: 2016 IEEE 21st In‑
ternational Conference on Emerging Technolo‑
[35] A. Milik, “Multiple‑Core PLC CPU Implementa‑ gies and Factory Automation (ETFA), 2016, 1–4,
tion and Programming”, Journal of Circuits, Sy‑ 10.1109/ETFA.2016.7733648.
stems and Computers, vol. 27, no. 10, 2018,
[50] T. Skripcak, P. Tanuska, U. Konrad, and
1850162, 10.1142/S0218126618501621.
N. Schmeisser, “Toward Nonconventional
[36] A. Milik and E. Hrynkiewicz, “Distributed PLC Ba‑ Human–Machine Interfaces for Supervisory
sed on Multicore CPUs ‑ Architecture and Pro‑ Plant Process Monitoring”, IEEE Transactions on
gramming”, IFAC‑PapersOnLine, vol. 49, no. 25, Human‑Machine Systems, vol. 43, no. 5, 2013,
2016, 1–7, 10.1016/j.ifacol.2016.12.001. 437–450, 10.1109/THMS.2013.2279006.
[37] Nauka i Technika. www.nit.pl. Accessed on: [51] VDI/VDE 3699 Process control using display
2020‑02‑28. screens, 2015.
[38] nxtControl GmbH. www.nxtcontrol.com/. [52] K. Thramboulidis, “A cyber–physical system‑
Accessed on: 2020‑02‑28. based approach for industrial automation sys‑
tems”, Computers in Industry, vol. 72, 2015, 92–
[39] M. Okabe, “Development of processor directly
102, 10.1016/j.compind.2015.04.006.
executing IEC 61131‑3 language”. In: 2008
SICE Annual Conference, 2008, 2215–2218, [53] E. Tisserant, L. Bessard, and M. de Sousa, “An
10.1109/SICE.2008.4655032. Open Source IEC 61131‑3 Integrated Develop‑
ment Environment”. In: 2007 5th IEEE Internati‑
[40] OMG. “OMG Systems Modeling Language, V1.3”, onal Conference on Industrial Informatics, vol. 1,
2012. 2007, 183–187, 10.1109/INDIN.2007.4384753.
[41] L. B. Palma, V. Brito, J. Rosas, and P. Gil, “WEB PLC [54] B. Trybus, “Development and Implementation
simulator for ST programming”. In: 2017 4th Ex‑ of IEC 61131‑3 Virtual Machine”, Theoretical
periment@International Conference (exp.at’17), and Applied Informatics, vol. 23, no. 1, 2011,
2017, 303–308, 10.1109/EXPAT.2017.7984410. 10.2478/v10179‑011‑0002‑z.
[42] C. G. Penteado, E. D. Moreno, and F. D. Pereira, [55] B. Venners, Inside the Java Virtual Machine,
“A microcontroller multicore in FPGAs: detailed McGraw‑Hill: New York, 1997.
architecture and case studies of embedded cri‑ [56] B. Vogel‑Heuser, D. Schü tz, T. Frank, and C. Legat,
tical applications”, International Journal of Grid “Model‑driven engineering of Manufacturing Au‑
and Utility Computing, vol. 8, no. 3, 2017, 169, tomation Software Projects – A SysML‑based ap‑
10.1504/IJGUC.2017.087815. proach”, Mechatronics, vol. 24, no. 7, 2014, 883–
[43] Praxis Automation Technology B.V. www. 897, 10.1016/j.mechatronics.2014.05.003.
praxis-automation.nl. Accessed on: 2020‑ [57] M. Zhang, Y. Lu, and T. Xia, “The Design and Im‑
02‑28. plementation of Virtual Machine System in Em‑
[44] L. Pé rez Cá ceres, F. Pagnozzi, A. Franzin, and bedded SoftPLC System”. In: 2013 International
T. Stü tzle, “Automatic Con�iguration of GCC Conference on Computer Sciences and Applicati‑
Using Irace”. In: E. Lutton, P. Legrand, P. Par‑ ons, 2013, 775–778, 10.1109/CSA.2013.185.
rend, N. Monmarché , and M. Schoenauer, eds., [58] C. Zhou and H. Chen, “Development of a PLC Vir‑
Arti�icial Evolution, Cham, 2018, 202–216, tual Machine Orienting IEC 61131‑3 Standard”.
10.1007/978‑3‑319‑78133‑4_15. In: 2009 International Conference on Measuring
[45] J. Quiroga and F. Ortin, “SSA Transformations to Technology and Mechatronics Automation, vol. 3,
Facilitate Type Inference in Dynamically Typed 2009, 374–379, 10.1109/ICMTMA.2009.422.
Code”, The Computer Journal, vol. 60, no. 9, 2017, [59] R. Zurawski, ed., Industrial Communication
1300–1315, 10.1093/comjnl/bxw108. Technology Handbook, Industrial information
83
Articles 83
Journal
Journal of
of Automation,
Automation,Mobile
MobileRobotics
Roboticsand
andIntelligent
IntelligentSystems
Systems VOLUME
VOLUME 13,13, N°
N°44 2019
2019
84
84 Articles