PLCGenerator.py
changeset 80 c798a68c5560
parent 78 049f2e7090a2
child 93 c3c24b979a4d
equal deleted inserted replaced
79:b22f661cbcfb 80:c798a68c5560
    50             if line != "":
    50             if line != "":
    51                 compute += "%s%s\n"%(indent, line)
    51                 compute += "%s%s\n"%(indent, line)
    52             else:
    52             else:
    53                 compute += "\n"
    53                 compute += "\n"
    54     return compute
    54     return compute
    55 
       
    56 
    55 
    57 def GeneratePouProgram(pou_name):
    56 def GeneratePouProgram(pou_name):
    58     if not pouComputed.get(pou_name, True):
    57     if not pouComputed.get(pou_name, True):
    59         pouComputed[pou_name] = True
    58         pouComputed[pou_name] = True
    60         global currentProject, currentProgram
    59         global currentProject, currentProgram
   466                             steps.append(step)
   465                             steps.append(step)
   467                         elif isinstance(step, plcopen.simultaneousConvergence):
   466                         elif isinstance(step, plcopen.simultaneousConvergence):
   468                             steps.extend(self.ExtractConvergenceInputs(step, pou))
   467                             steps.extend(self.ExtractConvergenceInputs(step, pou))
   469                 elif isinstance(instance, plcopen.simultaneousConvergence):
   468                 elif isinstance(instance, plcopen.simultaneousConvergence):
   470                     steps.extend(self.ExtractConvergenceInputs(instance, pou))
   469                     steps.extend(self.ExtractConvergenceInputs(instance, pou))
   471             transition_infos = {"from": [], "to" : []}
   470             transition_infos = {"priority": transition.getPriority(), "from": [], "to" : []}
   472             transitionValues = transition.getConditionContent()
   471             transitionValues = transition.getConditionContent()
   473             if transitionValues["type"] == "inline":
   472             if transitionValues["type"] == "inline":
   474                 transition_infos["content"] = "\n    := %s;\n"%transitionValues["value"]
   473                 transition_infos["content"] = "\n    := %s;\n"%transitionValues["value"]
   475             elif transitionValues["type"] == "reference":
   474             elif transitionValues["type"] == "reference":
   476                 transitionContent = pou.getTransition(transitionValues["value"])
   475                 transitionContent = pou.getTransition(transitionValues["value"])
   550             self.Program += "  ACTION %s:\n%s  END_ACTION\n\n"%(action_name, action_content)
   549             self.Program += "  ACTION %s:\n%s  END_ACTION\n\n"%(action_name, action_content)
   551     
   550     
   552     def ComputeSFCTransition(self, transition):
   551     def ComputeSFCTransition(self, transition):
   553         if transition in self.SFCNetworks["Transitions"].keys():
   552         if transition in self.SFCNetworks["Transitions"].keys():
   554             transition_infos = self.SFCNetworks["Transitions"].pop(transition)
   553             transition_infos = self.SFCNetworks["Transitions"].pop(transition)
   555             self.Program += "  TRANSITION FROM "
   554             self.Program += "  TRANSITION"
       
   555             if transition_infos["priority"] != None:
       
   556                 self.Program += " (PRIORITY := %d)"%transition_infos["priority"]
       
   557             self.Program += " FROM "
   556             if len(transition_infos["from"]) > 1:
   558             if len(transition_infos["from"]) > 1:
   557                 self.Program += "(%s)"%", ".join(transition_infos["from"])
   559                 self.Program += "(%s)"%", ".join(transition_infos["from"])
   558             else:
   560             else:
   559                 self.Program += "%s"%transition_infos["from"][0]
   561                 self.Program += "%s"%transition_infos["from"][0]
   560             self.Program += " TO "
   562             self.Program += " TO "