summaryrefslogtreecommitdiffstats
path: root/COMPATIBILITY.txt
blob: 031335ec7561ae8331ade3a44dcbd99c3e9376c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
awlsim - STEP 7 compatibility
=============================

The execution of AWL/STL programs by awlsim is supposed to be fully
compatible with the execution of compiled AWL/STL programs on the real
Siemens S7 CPU.
However, there currently are some known differences. These are listed below.
Any undocumented difference between awlsim and STEP 7 is considered to be a
bug that should be reported.

- awlsim does not implement all features of STEP 7, yet.
  See TODO.txt for a list of missing features.

- awlsim does not compile AWL/STL to MC7 code and it cannot execute MC7 code.
  On startup awlsim translates the AWL/STL code to an awlsim specific in-memory
  representation of the code. There is no byte-code representation for this
  code.

- Some key concepts, such as CALL or memory indirect adressing are implemented
  natively on awlsim. That means CALL is not a macro in awlsim. This improves
  runtime performance. From a user's perspective there should not be any
  functional difference visible. Any such difference is a bug.

- Undefined behavior is not emulated.
  For example: If reading uninitialized L-stack space on STEP 7 always yields
  a certain reproducible result, that does not mean that this AWL/STL code does
  the same thing on awlsim.
  Reading uninitialized memory is undefined.
bues.ch cgit interface