PLCControler.py
changeset 2614 6b4061f6ced6
parent 2551 245644bfcd24
child 2625 e5ce6c4a8672
equal deleted inserted replaced
2613:e05458405ff4 2614:6b4061f6ced6
   530 
   530 
   531     def ProjectChangePouType(self, name, pou_type):
   531     def ProjectChangePouType(self, name, pou_type):
   532         if self.Project is not None:
   532         if self.Project is not None:
   533             pou = self.Project.getpou(name)
   533             pou = self.Project.getpou(name)
   534             if pou is not None:
   534             if pou is not None:
   535                 pou.setpouType(pou_type)
   535                 new_pou = self.Copy(pou)
       
   536                 idx = 0
       
   537                 new_name = name + "_" + pou_type
       
   538                 while self.Project.getpou(new_name) is not None:
       
   539                     idx += 1
       
   540                     new_name = "%s%d" % (name, idx)
       
   541                 new_pou.setname(new_name)
       
   542 
       
   543                 orig_type = pou.getpouType()
       
   544                 if orig_type == 'function' and pou_type in ['functionBlock', 'program']:
       
   545                     # delete return type 
       
   546                     return_type_obj = new_pou.interface.getreturnType()
       
   547                     new_pou.interface.remove(return_type_obj)
       
   548                     # To be ultimately correct we could re-create an 
       
   549                     # output variable with same name+_out or so 
       
   550                     # but in any case user will have to connect/assign 
       
   551                     # this output, so better leave it as-is
       
   552 
       
   553                 new_pou.setpouType(pou_type)
       
   554                 self.Project.insertpou(0, new_pou)
   536                 self.BufferProject()
   555                 self.BufferProject()
   537 
   556 
   538     def GetPouXml(self, pou_name):
   557     def GetPouXml(self, pou_name):
   539         if self.Project is not None:
   558         if self.Project is not None:
   540             pou = self.Project.getpou(pou_name)
   559             pou = self.Project.getpou(pou_name)