plcopen/plcopen.py
changeset 1322 0a9227f743b3
parent 1318 758801f4b296
child 1330 96b242e4c59d
equal deleted inserted replaced
1321:83f41ea00b97 1322:0a9227f743b3
   218         while result is not None:
   218         while result is not None:
   219             groups = result.groups()
   219             groups = result.groups()
   220             new_address = groups[0] + new_leading + groups[2]
   220             new_address = groups[0] + new_leading + groups[2]
   221             text = text[:result.start()] + new_address + text[result.end():]
   221             text = text[:result.start()] + new_address + text[result.end():]
   222             startpos = result.start() + len(new_address)
   222             startpos = result.start() + len(new_address)
   223             result = address_model.search(self.text, startpos)
   223             result = address_model.search(text, startpos)
   224         self.setanyText(text)
   224         self.setanyText(text)
   225     setattr(cls, "updateElementAddress", updateElementAddress)
   225     setattr(cls, "updateElementAddress", updateElementAddress)
   226     
   226     
   227     def hasblock(self, block_type):
   227     def hasblock(self, block_type):
   228         text = self.getanyText().upper()
   228         text = self.getanyText().upper()
  1874 def _getvariableinfosFunction(type, input, output):
  1874 def _getvariableinfosFunction(type, input, output):
  1875     def getvariableinfos(self):
  1875     def getvariableinfos(self):
  1876         infos = _getelementinfos(self)
  1876         infos = _getelementinfos(self)
  1877         infos["type"] = type
  1877         infos["type"] = type
  1878         specific_values = infos["specific_values"]
  1878         specific_values = infos["specific_values"]
  1879         specific_values["name"] = self.getexpression().text
  1879         specific_values["name"] = self.getexpression()
  1880         _getexecutionOrder(self, specific_values)
  1880         _getexecutionOrder(self, specific_values)
  1881         if input and output:
  1881         if input and output:
  1882             infos["inputs"].append(_getconnectioninfos(self, self.connectionPointIn, True, "input"))
  1882             infos["inputs"].append(_getconnectioninfos(self, self.connectionPointIn, True, "input"))
  1883             infos["outputs"].append(_getconnectioninfos(self, self.connectionPointOut, False, "output"))
  1883             infos["outputs"].append(_getconnectioninfos(self, self.connectionPointOut, False, "output"))
  1884         elif input:
  1884         elif input:
  1918 def _getldelementinfosFunction(ld_element_type):
  1918 def _getldelementinfosFunction(ld_element_type):
  1919     def getldelementinfos(self):
  1919     def getldelementinfos(self):
  1920         infos = _getelementinfos(self)
  1920         infos = _getelementinfos(self)
  1921         infos["type"] = ld_element_type
  1921         infos["type"] = ld_element_type
  1922         specific_values = infos["specific_values"]
  1922         specific_values = infos["specific_values"]
  1923         specific_values["name"] = self.getvariable().text
  1923         specific_values["name"] = self.getvariable()
  1924         _getexecutionOrder(self, specific_values)
  1924         _getexecutionOrder(self, specific_values)
  1925         specific_values["negated"] = self.getnegated()
  1925         specific_values["negated"] = self.getnegated()
  1926         specific_values["edge"] = self.getedge()
  1926         specific_values["edge"] = self.getedge()
  1927         if ld_element_type == "coil":
  1927         if ld_element_type == "coil":
  1928             specific_values["storage"] = self.getstorage()
  1928             specific_values["storage"] = self.getstorage()
  2048 cls = _initElementClass("rightPowerRail", "ldObjects", "multiple")
  2048 cls = _initElementClass("rightPowerRail", "ldObjects", "multiple")
  2049 if cls:
  2049 if cls:
  2050     setattr(cls, "getinfos", _getpowerrailinfosFunction("rightPowerRail"))
  2050     setattr(cls, "getinfos", _getpowerrailinfosFunction("rightPowerRail"))
  2051 
  2051 
  2052 def _UpdateLDElementName(self, old_name, new_name):
  2052 def _UpdateLDElementName(self, old_name, new_name):
  2053     if self.variable.text == old_name:
  2053     if self.variable == old_name:
  2054         self.variable.text = new_name
  2054         self.variable = new_name
  2055 
  2055 
  2056 def _UpdateLDElementAddress(self, address_model, new_leading):
  2056 def _UpdateLDElementAddress(self, address_model, new_leading):
  2057     self.variable.text = update_address(self.variable.text, address_model, new_leading)
  2057     self.variable = update_address(self.variable, address_model, new_leading)
  2058 
  2058 
  2059 def _getSearchInLDElement(ld_element_type):
  2059 def _getSearchInLDElement(ld_element_type):
  2060     def SearchInLDElement(self, criteria, parent_infos=[]):
  2060     def SearchInLDElement(self, criteria, parent_infos=[]):
  2061         return _Search([("reference", self.variable.text)], criteria, parent_infos + [ld_element_type, self.getlocalId()])
  2061         return _Search([("reference", self.variable)], criteria, parent_infos + [ld_element_type, self.getlocalId()])
  2062     return SearchInLDElement
  2062     return SearchInLDElement
  2063 
  2063 
  2064 cls = _initElementClass("contact", "ldObjects", "single")
  2064 cls = _initElementClass("contact", "ldObjects", "single")
  2065 if cls:
  2065 if cls:
  2066     setattr(cls, "getinfos", _getldelementinfosFunction("contact"))
  2066     setattr(cls, "getinfos", _getldelementinfosFunction("contact"))
  2410             search_result.extend(action.Search(criteria, parent_infos + ["action", idx]))
  2410             search_result.extend(action.Search(criteria, parent_infos + ["action", idx]))
  2411         return search_result
  2411         return search_result
  2412     setattr(cls, "Search", Search)
  2412     setattr(cls, "Search", Search)
  2413 
  2413 
  2414 def _SearchInIOVariable(self, criteria, parent_infos=[]):
  2414 def _SearchInIOVariable(self, criteria, parent_infos=[]):
  2415     return _Search([("expression", self.expression.text)], criteria, parent_infos + ["io_variable", self.getlocalId()])
  2415     return _Search([("expression", self.expression)], criteria, parent_infos + ["io_variable", self.getlocalId()])
  2416 
  2416 
  2417 def _UpdateIOElementName(self, old_name, new_name):
  2417 def _UpdateIOElementName(self, old_name, new_name):
  2418     if self.expression.text == old_name:
  2418     if self.expression == old_name:
  2419         self.expression.text = new_name
  2419         self.expression = new_name
  2420 
  2420 
  2421 def _UpdateIOElementAddress(self, old_name, new_name):
  2421 def _UpdateIOElementAddress(self, old_name, new_name):
  2422     self.expression.text = update_address(self.expression.text, address_model, new_leading)
  2422     self.expression = update_address(self.expression, address_model, new_leading)
  2423 
  2423 
  2424 cls = _initElementClass("inVariable", "fbdObjects")
  2424 cls = _initElementClass("inVariable", "fbdObjects")
  2425 if cls:
  2425 if cls:
  2426     setattr(cls, "getinfos", _getvariableinfosFunction("input", False, True))
  2426     setattr(cls, "getinfos", _getvariableinfosFunction("input", False, True))
  2427     setattr(cls, "updateElementName", _UpdateIOElementName)
  2427     setattr(cls, "updateElementName", _UpdateIOElementName)