7.4 Language Compatibility 251
Restrictions in LD/ FBD.
Jumps can be made using labels, but are somewhat contradictory to the concept of
“parallel” networks. Some functions, like management of system resources (stack
operations), can only be expressed in very complicated, unreadable programs.
Constructs like CASE, FOR, WHILE, or REPEAT are not available in these
languages and can only be implemented by using standard functions like EQ and
complex network arrangements.
Unlike ST, these two languages allow only simple expressions to be used to index
arrays.
LD is designed to process Boolean signals (TRUE and FALSE). Other data types,
like integer, can be processed with functions and function blocks, but at least one
input and one output must be of type BOOL and be connected to the power rail.
This can make programs hard to read. For non-Boolean value processing FBD is
better suited than LD.
Not all textual elements have a matching representation in the graphical languages.
For example, some of the negation modifiers of IL are missing in LD and FBD:
JMP, JMPC, RET and RETC are available, but JMPCN and RETCN are not.
These can be formulated by the user with additional logic operations or supple-
mentary (non-standard) graphical symbols can be included in the programming
system.
Restrictions in IL/ ST.
The notion of a network, as used in the graphical languages LD and FBD, is not
known in IL or ST.
In Ladder Diagram, attributes like buffering of variables (M, SM, RM) or edge
detection (P, N) can be expressed by graphical symbols. This representation of
attributes in the code part of a program does not comply with the strict concept of
expressing the attributes of variables in the declaration part. There are no matching
elements in the textual languages for these graphical symbols.
The use of EN and ENO poses another problem, as no matching element is
available in IL or ST. Each user-defined function must evaluate EN and assign
ENO a value to be useable in graphical languages. If EN and ENO are used in
graphical languages and not used in textual languages, two versions of standard
functions are needed (with and without EN/ENO processing), see Section 2.5.2.
Cross-compilation IL / ST.
A high-level language (ST) can be converted more easily and efficiently into a
low-level, assembler-like language (IL) than vice versa. In fact, both languages