PLCGenerator.py
changeset 1743 c3c3d1318130
parent 1742 92932cd370a4
child 1744 69dfdb26f600
equal deleted inserted replaced
1742:92932cd370a4 1743:c3c3d1318130
  1222                 except ValueError, e:
  1222                 except ValueError, e:
  1223                     raise PLCGenException, e.message
  1223                     raise PLCGenException, e.message
  1224             elif isinstance(next, ContinuationClass):
  1224             elif isinstance(next, ContinuationClass):
  1225                 name = next.getname()
  1225                 name = next.getname()
  1226                 computed_value = self.ComputedConnectors.get(name, None)
  1226                 computed_value = self.ComputedConnectors.get(name, None)
  1227                 if computed_value != None:
  1227                 if computed_value is not None:
  1228                     paths.append(str(computed_value))
  1228                     paths.append(str(computed_value))
  1229                 else:
  1229                 else:
  1230                     connector = None
  1230                     connector = None
  1231                     for instance in body.getcontentInstances():
  1231                     for instance in body.getcontentInstances():
  1232                         if isinstance(instance, ConnectorClass) and instance.getname() == name:
  1232                         if isinstance(instance, ConnectorClass) and instance.getname() == name:
  1585 
  1585 
  1586     def ComputeSFCTransition(self, transition):
  1586     def ComputeSFCTransition(self, transition):
  1587         if transition in self.SFCNetworks["Transitions"].keys():
  1587         if transition in self.SFCNetworks["Transitions"].keys():
  1588             transition_infos = self.SFCNetworks["Transitions"].pop(transition)
  1588             transition_infos = self.SFCNetworks["Transitions"].pop(transition)
  1589             self.Program += [("%sTRANSITION" % self.CurrentIndent, ())]
  1589             self.Program += [("%sTRANSITION" % self.CurrentIndent, ())]
  1590             if transition_infos["priority"] != None:
  1590             if transition_infos["priority"] is not None:
  1591                 self.Program += [(" (PRIORITY := ", ()),
  1591                 self.Program += [(" (PRIORITY := ", ()),
  1592                                  ("%d" % transition_infos["priority"], (self.TagName, "transition", transition_infos["id"], "priority")),
  1592                                  ("%d" % transition_infos["priority"], (self.TagName, "transition", transition_infos["id"], "priority")),
  1593                                  (")", ())]
  1593                                  (")", ())]
  1594             self.Program += [(" FROM ", ())]
  1594             self.Program += [(" FROM ", ())]
  1595             if len(transition_infos["from"]) > 1:
  1595             if len(transition_infos["from"]) > 1:
  1643             for var_type, var_name, var_address, var_initial in variables:
  1643             for var_type, var_name, var_address, var_initial in variables:
  1644                 program += [("    ", ())]
  1644                 program += [("    ", ())]
  1645                 if var_name:
  1645                 if var_name:
  1646                     program += [(var_name, (self.TagName, variable_type, var_number, "name")),
  1646                     program += [(var_name, (self.TagName, variable_type, var_number, "name")),
  1647                                 (" ", ())]
  1647                                 (" ", ())]
  1648                 if var_address != None:
  1648                 if var_address is not None:
  1649                     program += [("AT ", ()),
  1649                     program += [("AT ", ()),
  1650                                 (var_address, (self.TagName, variable_type, var_number, "location")),
  1650                                 (var_address, (self.TagName, variable_type, var_number, "location")),
  1651                                 (" ", ())]
  1651                                 (" ", ())]
  1652                 program += [(": ", ()),
  1652                 program += [(": ", ()),
  1653                             (var_type, (self.TagName, variable_type, var_number, "type"))]
  1653                             (var_type, (self.TagName, variable_type, var_number, "type"))]
  1654                 if var_initial != None:
  1654                 if var_initial is not None:
  1655                     program += [(" := ", ()),
  1655                     program += [(" := ", ()),
  1656                                 (self.ParentGenerator.ComputeValue(var_initial, var_type), (self.TagName, variable_type, var_number, "initial value"))]
  1656                                 (self.ParentGenerator.ComputeValue(var_initial, var_type), (self.TagName, variable_type, var_number, "initial value"))]
  1657                 program += [(";\n", ())]
  1657                 program += [(";\n", ())]
  1658                 var_number += 1
  1658                 var_number += 1
  1659             program += [("  END_VAR\n", ())]
  1659             program += [("  END_VAR\n", ())]