beremiz

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'
/*
Template C code used to produce target Ethercat C code.
Copyright (C) 2011-2014: Laurent BESSARD, Edouard TISSERANT
Distributed under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
See COPYING file for copyrights details.
*/
#include "iec_types_all.h"
#define FREE 0
#define ACQUIRED 1
#define ANSWERED 2
long SDOLock = FREE;
extern long AtomicCompareExchange(long* atomicvar,long compared, long exchange);
int AcquireSDOLock() {
return AtomicCompareExchange(&SDOLock, FREE, ACQUIRED) == FREE;
}
void SDOAnswered() {
AtomicCompareExchange(&SDOLock, ACQUIRED, ANSWERED);
}
int HasAnswer() {
return SDOLock == ANSWERED;
}
void ReleaseSDOLock() {
AtomicCompareExchange(&SDOLock, ANSWERED, FREE);
}
int __init_etherlab_ext()
{
SDOLock = FREE;
return 0;
}
void __cleanup_etherlab_ext()
{
}
void __retrieve_etherlab_ext()
{
}
void __publish_etherlab_ext()
{
}