beremiz

c9915bc620cd
Fix wrong code generation if EN/ENO are used in FBD/LD/SFC

This problem appears for example here

--------
------- | MOVE |
| MOVE1 |------|EN ENO|
------- | |
| |
------- | | -----------
| 23 |------|IN OUT|---| LocalVar0 |
------- -------- -----------


--------
------- | MOVE |
| MOVE2 |------|EN ENO|
------- | |
| |
------- | | -----------
| 15 |------|IN OUT|---| LocalVar0 |
------- -------- -----------

Before wrong code was generated for this case:

MOVE6_OUT := MOVE(EN := move1, IN := 23, ENO => MOVE6_ENO);
LocalVar0 := MOVE6_OUT;
MOVE4_OUT := MOVE(EN := move2, IN := 15, ENO => MOVE4_ENO);
LocalVar0 := MOVE4_OUT;

With this patch now following code is generated:

MOVE6_OUT := MOVE(EN := move1, IN := 23, ENO => MOVE6_ENO);
IF MOVE6_ENO THEN
LocalVar0 := MOVE6_OUT;
END_IF;
MOVE4_OUT := MOVE(EN := move2, IN := 15, ENO => MOVE4_ENO);
IF MOVE4_ENO THEN
LocalVar0 := MOVE4_OUT;
END_IF;


See discussion here:
https://sourceforge.net/p/beremiz/mailman/message/36378805/
IEC 61131-3
===========
IEC-61131 is a normative document provided by the standards organization IEC
(International Electrotechnical Commission) and describing a standard for
implementing programmable controllers.
The part 3 of this document (commonly named IEC 61131-3) specifies syntax and
semantics for programming language for programmable controllers. Beremiz
implements all the languages described in this document.
http://www.iec.eu
PLCopen TC6
===========
PLCopen is a vendor- and product-independent worldwide association defining
international standards for various topics related to control programming.
For this purpose, PLCopen has 6 technical committees.
The goal of the sixth committee (TC6) is to define a standard file format,
based on XML, for exchanging programmables controllers programmed using
IEC 61131-3 languages. Beremiz uses this file format for saving the PLC
programs of projects.
http://www.plcopen.org