diff -r 8a0dfd22c408 -r 893d04aff708 plcopen/plcopen.py --- a/plcopen/plcopen.py Thu Sep 24 18:13:54 2009 +0200 +++ b/plcopen/plcopen.py Thu Sep 24 18:16:04 2009 +0200 @@ -924,7 +924,7 @@ self.interface.appendcontent({"name" : VarTypes[vartype], "value" : varlist}) setattr(cls, "setvars", setvars) - def addpouVar(self, type, name): + def addpouVar(self, type, name, location="", description=""): if self.interface is None: self.interface = PLCOpenClasses["pou_interface"]() content = self.interface.getcontent() @@ -938,10 +938,25 @@ var = PLCOpenClasses["varListPlain_variable"]() var.setname(name) var_type = PLCOpenClasses["dataType"]() - derived_type = PLCOpenClasses["derivedTypes_derived"]() - derived_type.setname(type) - var_type.setcontent({"name" : "derived", "value" : derived_type}) + if type in [x for x,y in TypeHierarchy_list if not x.startswith("ANY")]: + if type == "STRING": + var_type.setcontent({"name" : "string", "value" : PLCOpenClasses["elementaryTypes_string"]()}) + elif type == "WSTRING": + var_type.setcontent({"name" : "wstring", "value" : PLCOpenClasses["elementaryTypes_wstring"]()}) + else: + var_type.setcontent({"name" : type, "value" : None}) + else: + derived_type = PLCOpenClasses["derivedTypes_derived"]() + derived_type.setname(type) + var_type.setcontent({"name" : "derived", "value" : derived_type}) var.settype(var_type) + if location != "": + var.setaddress(location) + if description != "": + ft = PLCOpenClasses["formattedText"]() + ft.settext(description) + var.setdocumentation(ft) + content[-1]["value"].appendvariable(var) setattr(cls, "addpouVar", addpouVar)