PLCGenerator.py
changeset 46 4379e98a30aa
parent 37 256eedd275d0
child 47 2b2f8d88e6d3
equal deleted inserted replaced
45:42637f721b5b 46:4379e98a30aa
    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)