# HG changeset patch # User Andrey Skvortsov # Date 1533812327 -10800 # Node ID 1bb8afa02409b1b3d0ee33cc957aad6ea51ddcd6 # Parent 5cb9ef5351cce42f704c022ea1cd25bea8459629 Improve fix wrong code generation if EN/ENO are used in FBD/LD/SFC Commit c9915bc6 "Fix wrong code generation if EN/ENO are used in FBD/LD/SFC" caused following backtrace in some cases: File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 476, in GenerateProgram self.GeneratePouProgram(pou_name) File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 258, in GeneratePouProgram program = pou_program.GenerateProgram(pou) File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 1713, in GenerateProgram self.ComputeProgram(pou) File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 997, in ComputeProgram eno_var = self.GetUsedEno(body, connections) File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 929, in GetUsedEno for invar in blk.inputVariables.getvariable(): File "/home/developer/WorkData/PLC/beremiz/beremiz/xmlclass/xmlclass.py", line 1363, in getattrMethod return DefaultElementClass.__getattribute__(self, name) : 'inOutVariable' object has no attribute 'inputVariables' diff -r 5cb9ef5351cc -r 1bb8afa02409 PLCGenerator.py --- a/PLCGenerator.py Wed Aug 01 14:09:12 2018 +0300 +++ b/PLCGenerator.py Thu Aug 09 13:58:47 2018 +0300 @@ -926,6 +926,9 @@ if blk is None: return None + if not hasattr(blk, "inputVariables"): + return None + for invar in blk.inputVariables.getvariable(): if invar.getformalParameter() == "EN": if len(invar.getconnectionPointIn().getconnections()) > 0: