PLCControler.py
changeset 1477 270dba8bf87b
parent 1418 c97dc5281419
child 1502 62eb21aab1fb
equal deleted inserted replaced
1476:49f1763a5613 1477:270dba8bf87b
  2060                     element_type = PLCOpenParser.CreateElement("type", "variable")
  2060                     element_type = PLCOpenParser.CreateElement("type", "variable")
  2061                     if isinstance(element_infos["Type"], TupleType):
  2061                     if isinstance(element_infos["Type"], TupleType):
  2062                         if element_infos["Type"][0] == "array":
  2062                         if element_infos["Type"][0] == "array":
  2063                             array_type, base_type_name, dimensions = element_infos["Type"]
  2063                             array_type, base_type_name, dimensions = element_infos["Type"]
  2064                             array = PLCOpenParser.CreateElement("array", "dataType")
  2064                             array = PLCOpenParser.CreateElement("array", "dataType")
       
  2065                             baseType = PLCOpenParser.CreateElement("baseType", "array")
       
  2066                             array.setbaseType(baseType)
  2065                             element_type.setcontent(array)
  2067                             element_type.setcontent(array)
  2066                             for j, dimension in enumerate(dimensions):
  2068                             for j, dimension in enumerate(dimensions):
  2067                                 dimension_range = PLCOpenParser.CreateElement("dimension", "array")
  2069                                 dimension_range = PLCOpenParser.CreateElement("dimension", "array")
  2068                                 dimension_range.setlower(dimension[0])
  2070                                 dimension_range.setlower(dimension[0])
  2069                                 dimension_range.setupper(dimension[1])
  2071                                 dimension_range.setupper(dimension[1])
  2070                                 if j == 0:
  2072                                 if j == 0:
  2071                                     array.setdimension([dimension_range])
  2073                                     array.setdimension([dimension_range])
  2072                                 else:
  2074                                 else:
  2073                                     array.appenddimension(dimension_range)
  2075                                     array.appenddimension(dimension_range)
  2074                             if base_type_name in self.GetBaseTypes():
  2076                             if base_type_name in self.GetBaseTypes():
  2075                                 array.baseType.setcontent(PLCOpenParser.CreateElement(
  2077                                 baseType.setcontent(PLCOpenParser.CreateElement(
  2076                                     base_type_name.lower()
  2078                                     base_type_name.lower()
  2077                                     if base_type_name in ["STRING", "WSTRING"]
  2079                                     if base_type_name in ["STRING", "WSTRING"]
  2078                                     else base_type_name, "dataType"))
  2080                                     else base_type_name, "dataType"))
  2079                             else:
  2081                             else:
  2080                                 derived_datatype = PLCOpenParser.CreateElement("derived", "dataType")
  2082                                 derived_datatype = PLCOpenParser.CreateElement("derived", "dataType")