diff -r b4a1ba9dbaf3 -r cc7a46953471 PLCControler.py --- a/PLCControler.py Thu Mar 01 14:28:55 2018 +0100 +++ b/PLCControler.py Fri Mar 02 17:01:25 2018 +0100 @@ -44,6 +44,7 @@ from PLCGenerator import * duration_model = re.compile("(?:([0-9]{1,2})h)?(?:([0-9]{1,2})m(?!s))?(?:([0-9]{1,2})s)?(?:([0-9]{1,3}(?:\.[0-9]*)?)ms)?") +VARIABLE_NAME_SUFFIX_MODEL = re.compile('(\d+)$') ScriptDirectory = paths.AbsDir(__file__) @@ -1814,6 +1815,14 @@ return text def GenerateNewName(self, tagname, name, format, start_idx=0, exclude=None, debug=False): + if name is not None: + result = re.search(VARIABLE_NAME_SUFFIX_MODEL, name) + if result is not None: + format = name[:result.start(1)] + '%d' + start_idx = int(result.group(1)) + else: + format = name + '%d' + names = {} if exclude is None else exclude.copy() if tagname is not None: names.update(dict([(varname.upper(), True) @@ -1829,6 +1838,14 @@ PLCOpenParser.GetElementClass("connector", "commonObjects"), PLCOpenParser.GetElementClass("continuation", "commonObjects"))): names[instance.getname().upper()] = True + elif words[0] == 'R': + element = self.GetEditedElement(tagname, debug) + for task in element.gettask(): + names[task.getname().upper()] = True + for instance in task.getpouInstance(): + names[instance.getname().upper()] = True + for instance in element.getpouInstance(): + names[instance.getname().upper()] = True else: project = self.GetProject(debug) if project is not None: