60 self.Type = type |
60 self.Type = type |
61 self.ReturnType = None |
61 self.ReturnType = None |
62 self.Interface = [] |
62 self.Interface = [] |
63 self.InitialSteps = [] |
63 self.InitialSteps = [] |
64 self.SFCNetworks = {"Steps":{}, "Transitions":{}, "Actions":{}} |
64 self.SFCNetworks = {"Steps":{}, "Transitions":{}, "Actions":{}} |
|
65 self.ActionNumber = 0 |
65 self.Program = "" |
66 self.Program = "" |
|
67 |
|
68 def GetActionNumber(self): |
|
69 self.ActionNumber += 1 |
|
70 return self.ActionNumber |
66 |
71 |
67 def IsAlreadyDefined(self, name): |
72 def IsAlreadyDefined(self, name): |
68 for list_type, retain, constant, located, vars in self.Interface: |
73 for list_type, retain, constant, located, vars in self.Interface: |
69 for var_type, var_name, var_address, var_initial in vars: |
74 for var_type, var_name, var_address, var_initial in vars: |
70 if name == var_name: |
75 if name == var_name: |
270 self.GenerateSFCStep(step, pou) |
275 self.GenerateSFCStep(step, pou) |
271 step_name = step.getName() |
276 step_name = step.getName() |
272 if step_name in self.SFCNetworks["Steps"].keys(): |
277 if step_name in self.SFCNetworks["Steps"].keys(): |
273 actions = actionBlock.getActions() |
278 actions = actionBlock.getActions() |
274 for action in actions: |
279 for action in actions: |
|
280 print action |
275 action_infos = {"qualifier" : action["qualifier"], "content" : action["value"]} |
281 action_infos = {"qualifier" : action["qualifier"], "content" : action["value"]} |
276 if "duration" in action: |
282 if "duration" in action: |
277 action_infos["duration"] = action["duration"] |
283 action_infos["duration"] = action["duration"] |
278 if "indicator" in action: |
284 if "indicator" in action: |
279 action_infos["indicator"] = action["indicator"] |
285 action_infos["indicator"] = action["indicator"] |
280 if action["type"] == "reference": |
286 if action["type"] == "reference": |
281 self.GenerateSFCAction(action["value"], pou) |
287 self.GenerateSFCAction(action["value"], pou) |
|
288 else: |
|
289 action_name = "INLINE%d"%self.GetActionNumber() |
|
290 self.SFCNetworks["Actions"][action_name] = " %s\n"%action["value"] |
|
291 action_infos["content"] = action_name |
282 self.SFCNetworks["Steps"][step_name]["actions"].append(action_infos) |
292 self.SFCNetworks["Steps"][step_name]["actions"].append(action_infos) |
283 |
293 |
284 def GenerateSFCAction(self, action_name, pou): |
294 def GenerateSFCAction(self, action_name, pou): |
285 if action_name not in self.SFCNetworks["Actions"].keys(): |
295 if action_name not in self.SFCNetworks["Actions"].keys(): |
286 actionContent = pou.getAction(action_name) |
296 actionContent = pou.getAction(action_name) |