PLCControler.py
changeset 154 203c4acdaf27
parent 151 aaa80b48bead
child 162 e746ff4aa8be
equal deleted inserted replaced
153:f0e8e7f58a5a 154:203c4acdaf27
  1425                 infos["name"] = instance.getname()
  1425                 infos["name"] = instance.getname()
  1426                 infos["type"] = "continuation"
  1426                 infos["type"] = "continuation"
  1427                 infos["connector"] = {}
  1427                 infos["connector"] = {}
  1428                 infos["connector"]["position"] = instance.connectionPointOut.getrelPositionXY()
  1428                 infos["connector"]["position"] = instance.connectionPointOut.getrelPositionXY()
  1429             elif isinstance(instance, plcopen.commonObjects_connector):
  1429             elif isinstance(instance, plcopen.commonObjects_connector):
  1430                 infos["name"] = instance.getName()
  1430                 infos["name"] = instance.getname()
  1431                 infos["type"] = "connection"
  1431                 infos["type"] = "connection"
  1432                 infos["connector"] = {}
  1432                 infos["connector"] = {}
  1433                 infos["connector"]["position"] = instance.connectionPointIn.getrelPositionXY()
  1433                 infos["connector"]["position"] = instance.connectionPointIn.getrelPositionXY()
  1434                 infos["connector"]["links"] = []
  1434                 infos["connector"]["links"] = []
  1435                 connections = instance.connectionPointIn.getconnections()
  1435                 connections = instance.connectionPointIn.getconnections()
  1665         words = tagname.split("::")
  1665         words = tagname.split("::")
  1666         if words[0] in ['P', 'T', 'A']:
  1666         if words[0] in ['P', 'T', 'A']:
  1667             pou = self.Project.getpou(words[1])
  1667             pou = self.Project.getpou(words[1])
  1668             pou.changepouVar(old_type, old_name, new_type, new_name)
  1668             pou.changepouVar(old_type, old_name, new_type, new_name)
  1669     
  1669     
       
  1670     def RemoveEditedElementPouVar(self, tagname, type, name):
       
  1671         words = tagname.split("::")
       
  1672         if words[0] in ['P', 'T', 'A']:
       
  1673             pou = self.Project.getpou(words[1])
       
  1674             pou.removepouVar(type, name)
       
  1675     
  1670     def AddEditedElementBlock(self, tagname, id, blocktype, blockname = None):
  1676     def AddEditedElementBlock(self, tagname, id, blocktype, blockname = None):
  1671         element = self.GetEditedElement(tagname)
  1677         element = self.GetEditedElement(tagname)
  1672         if element is not None:
  1678         if element is not None:
  1673             block = plcopen.fbdObjects_block()
  1679             block = plcopen.fbdObjects_block()
  1674             block.setlocalId(id)
  1680             block.setlocalId(id)
  1682     
  1688     
  1683     def SetEditedElementBlockInfos(self, tagname, id, infos):
  1689     def SetEditedElementBlockInfos(self, tagname, id, infos):
  1684         element = self.GetEditedElement(tagname)
  1690         element = self.GetEditedElement(tagname)
  1685         if element is not None:
  1691         if element is not None:
  1686             block = element.getinstance(id)
  1692             block = element.getinstance(id)
  1687             blocktype = infos.get("type", block.gettypeName())
  1693             old_name = block.getinstanceName()
  1688             blocktype_infos = GetBlockType(blocktype)
  1694             old_type = block.gettypeName()
  1689             if blocktype_infos["type"] != "function":
  1695             new_name = infos.get("name", old_name)
  1690                 if "name" in infos or "type" in infos:
  1696             new_type = infos.get("type", old_type)
  1691                     old_name = block.getinstanceName()
  1697             old_typeinfos = GetBlockType(old_type)
  1692                     old_type = block.gettypeName()
  1698             new_typeinfos = GetBlockType(new_type)
  1693                     new_name = infos.get("name", old_name)
  1699             if new_typeinfos["type"] != old_typeinfos["type"]:
  1694                     new_type = infos.get("type", old_type)
  1700                 if new_typeinfos["type"] == "function":
  1695                     self.ChangeEditedElementPouVar(tagname, old_type, old_name, new_type, new_name)
  1701                     self.RemoveEditedElementPouVar(tagname, old_type, old_name)
       
  1702                 else:
       
  1703                     self.AddEditedElementPouVar(tagname, new_type, new_name)
       
  1704             elif new_typeinfos["type"] != "function" and old_name != new_name:
       
  1705                 self.ChangeEditedElementPouVar(tagname, old_type, old_name, new_type, new_name)
  1696             for param, value in infos.items():
  1706             for param, value in infos.items():
  1697                 if param == "name":
  1707                 if param == "name":
  1698                     block.setinstanceName(value)
  1708                     block.setinstanceName(value)
  1699                 elif param == "type":
  1709                 elif param == "type":
  1700                     block.settypeName(value)
  1710                     block.settypeName(value)
  2210     def RemoveEditedElementInstance(self, tagname, id):
  2220     def RemoveEditedElementInstance(self, tagname, id):
  2211         element = self.GetEditedElement(tagname)
  2221         element = self.GetEditedElement(tagname)
  2212         if element is not None:
  2222         if element is not None:
  2213             instance = element.getinstance(id)
  2223             instance = element.getinstance(id)
  2214             if isinstance(instance, plcopen.fbdObjects_block):
  2224             if isinstance(instance, plcopen.fbdObjects_block):
  2215                 blocktype = instance.gettypeName()
  2225                 self.RemoveEditedElementPouVar(tagname, instance.gettypeName(), instance.getinstanceName())
  2216                 element.removepouVar(blocktype, instance.getinstanceName())    
       
  2217             element.removeinstance(id)
  2226             element.removeinstance(id)
  2218             self.RefreshPouUsingTree()
  2227             self.RefreshPouUsingTree()
  2219 
  2228 
  2220     def GetEditedResourceVariables(self, tagname):
  2229     def GetEditedResourceVariables(self, tagname):
  2221         varlist = []
  2230         varlist = []