--- a/PLCGenerator.py Mon Jul 09 11:10:14 2007 +0200
+++ b/PLCGenerator.py Tue Jul 10 09:52:53 2007 +0200
@@ -66,7 +66,7 @@
def IsAlreadyDefined(self, name):
for list_type, retain, constant, vars in self.Interface:
- for var_type, var_name in vars:
+ for var_type, var_name, var_initial in vars:
if name == var_name:
return True
return False
@@ -78,7 +78,12 @@
variables = []
for var in varlist["value"].getVariable():
type = var.getType().getValue()
- variables.append((type, var.getName()))
+ initial = var.getInitialValue()
+ if initial:
+ initial_value = initial.getValue()
+ else:
+ initial_value = None
+ variables.append((type, var.getName(), initial_value))
self.Interface.append((varTypeNames[varlist["name"]], varlist["value"].getRetain(),
varlist["value"].getConstant(), variables))
@@ -138,7 +143,7 @@
if self.Interface[-1][0] != "VAR" or self.Interface[-1][1] or self.Interface[-1][2]:
self.Interface.append(("VAR", False, False, []))
if not self.IsAlreadyDefined(name):
- self.Interface[-1][3].append((type, name))
+ self.Interface[-1][3].append((type, name, None))
vars = []
for variable in instance.inputVariables.getVariable():
connections = variable.connectionPointIn.getConnections()
@@ -428,7 +433,7 @@
while self.IsAlreadyDefined(name):
i += 1
name = "%s%d"%(edge, i)
- self.Interface[-1][3].append((edge, name))
+ self.Interface[-1][3].append((edge, name, None))
self.Program += " %s(CLK := %s);\n"%(name, text)
return "%s.Q"%name
@@ -445,8 +450,11 @@
if constant:
program += " CONSTANT"
program += "\n"
- for var_type, var_name in variables:
- program += " %s : %s;\n"%(var_name, var_type)
+ for var_type, var_name, var_initial in variables:
+ if var_initial != None:
+ program += " %s : %s := %s;\n"%(var_name, var_type, {"TRUE":"0","FALSE":"1"}.get(str(var_initial).upper(),str(var_initial)))
+ else:
+ program += " %s : %s;\n"%(var_name, var_type)
program += " END_VAR\n"
program += "\n"
program += self.Program