PLCGenerator.py
changeset 889 ac18acb6917f
parent 883 235a9ec83b95
child 893 f528c421637b
equal deleted inserted replaced
888:baf5dbfd28f4 889:ac18acb6917f
  1103                 self.InitialSteps.append(step_name)
  1103                 self.InitialSteps.append(step_name)
  1104             step_infos = {"id" : step.getlocalId(), 
  1104             step_infos = {"id" : step.getlocalId(), 
  1105                           "initial" : step.getinitialStep(), 
  1105                           "initial" : step.getinitialStep(), 
  1106                           "transitions" : [], 
  1106                           "transitions" : [], 
  1107                           "actions" : []}
  1107                           "actions" : []}
       
  1108             self.SFCNetworks["Steps"][step_name] = step_infos
  1108             if step.connectionPointIn:
  1109             if step.connectionPointIn:
  1109                 instances = []
  1110                 instances = []
  1110                 connections = step.connectionPointIn.getconnections()
  1111                 connections = step.connectionPointIn.getconnections()
  1111                 if connections is not None and len(connections) == 1:
  1112                 if connections is not None and len(connections) == 1:
  1112                     instanceLocalId = connections[0].getrefLocalId()
  1113                     instanceLocalId = connections[0].getrefLocalId()
  1128                 for instance in instances:
  1129                 for instance in instances:
  1129                     self.GenerateSFCTransition(instance, pou)
  1130                     self.GenerateSFCTransition(instance, pou)
  1130                     if instance in self.SFCNetworks["Transitions"].keys():
  1131                     if instance in self.SFCNetworks["Transitions"].keys():
  1131                         target_info = (self.TagName, "transition", instance.getlocalId(), "to", step_infos["id"])
  1132                         target_info = (self.TagName, "transition", instance.getlocalId(), "to", step_infos["id"])
  1132                         self.SFCNetworks["Transitions"][instance]["to"].append([(step_name, target_info)])
  1133                         self.SFCNetworks["Transitions"][instance]["to"].append([(step_name, target_info)])
  1133             self.SFCNetworks["Steps"][step_name] = step_infos
       
  1134     
  1134     
  1135     def GenerateSFCJump(self, jump, pou):
  1135     def GenerateSFCJump(self, jump, pou):
  1136         jump_target = jump.gettargetName()
  1136         jump_target = jump.gettargetName()
  1137         if jump.connectionPointIn:
  1137         if jump.connectionPointIn:
  1138             instances = []
  1138             instances = []
  1225                     steps.extend(self.ExtractConvergenceInputs(instance, pou))
  1225                     steps.extend(self.ExtractConvergenceInputs(instance, pou))
  1226             transition_infos = {"id" : transition.getlocalId(), 
  1226             transition_infos = {"id" : transition.getlocalId(), 
  1227                                 "priority": transition.getpriority(), 
  1227                                 "priority": transition.getpriority(), 
  1228                                 "from": [], 
  1228                                 "from": [], 
  1229                                 "to" : []}
  1229                                 "to" : []}
       
  1230             self.SFCNetworks["Transitions"][transition] = transition_infos
  1230             transitionValues = transition.getconditionContent()
  1231             transitionValues = transition.getconditionContent()
  1231             if transitionValues["type"] == "inline":
  1232             if transitionValues["type"] == "inline":
  1232                 transition_infos["content"] = [("\n%s:= "%self.CurrentIndent, ()),
  1233                 transition_infos["content"] = [("\n%s:= "%self.CurrentIndent, ()),
  1233                                                (transitionValues["value"], (self.TagName, "transition", transition.getlocalId(), "inline")),
  1234                                                (transitionValues["value"], (self.TagName, "transition", transition.getlocalId(), "inline")),
  1234                                                (";\n", ())]
  1235                                                (";\n", ())]
  1271                 self.GenerateSFCStep(step, pou)
  1272                 self.GenerateSFCStep(step, pou)
  1272                 step_name = step.getname()
  1273                 step_name = step.getname()
  1273                 if step_name in self.SFCNetworks["Steps"].keys():
  1274                 if step_name in self.SFCNetworks["Steps"].keys():
  1274                     transition_infos["from"].append([(step_name, (self.TagName, "transition", transition.getlocalId(), "from", step.getlocalId()))])
  1275                     transition_infos["from"].append([(step_name, (self.TagName, "transition", transition.getlocalId(), "from", step.getlocalId()))])
  1275                     self.SFCNetworks["Steps"][step_name]["transitions"].append(transition)
  1276                     self.SFCNetworks["Steps"][step_name]["transitions"].append(transition)
  1276             self.SFCNetworks["Transitions"][transition] = transition_infos
       
  1277 
  1277 
  1278     def ComputeSFCStep(self, step_name):
  1278     def ComputeSFCStep(self, step_name):
  1279         if step_name in self.SFCNetworks["Steps"].keys():
  1279         if step_name in self.SFCNetworks["Steps"].keys():
  1280             step_infos = self.SFCNetworks["Steps"].pop(step_name)
  1280             step_infos = self.SFCNetworks["Steps"].pop(step_name)
  1281             self.Program += [(self.CurrentIndent, ())]
  1281             self.Program += [(self.CurrentIndent, ())]