PLCGenerator.py
changeset 507 42150e041dbe
parent 501 edfa63d3c26d
child 526 79900abdfa3c
equal deleted inserted replaced
504:f88e0ebd8fe4 507:42150e041dbe
   263                 if vartype_content["name"] == "derived":
   263                 if vartype_content["name"] == "derived":
   264                     var_type = vartype_content["value"].getname()
   264                     var_type = vartype_content["value"].getname()
   265                 # Variable type is a string type
   265                 # Variable type is a string type
   266                 elif vartype_content["name"] in ["string", "wstring"]:
   266                 elif vartype_content["name"] in ["string", "wstring"]:
   267                     var_type = vartype_content["name"].upper()
   267                     var_type = vartype_content["name"].upper()
       
   268                 # Variable type is an array
       
   269                 elif vartype_content["name"] == "array":
       
   270                     base_type = vartype_content["value"].baseType.getcontent()
       
   271                     # Array derived directly from a user defined type 
       
   272                     if base_type["name"] == "derived":
       
   273                         basetype_name = base_type["value"].getname()
       
   274                         self.GenerateDataType(basetype_name)
       
   275                     # Array derived directly from a string type 
       
   276                     elif base_type["name"] in ["string", "wstring"]:
       
   277                         basetype_name = base_type["name"].upper()
       
   278                     # Array derived directly from an elementary type 
       
   279                     else:
       
   280                         basetype_name = base_type["name"]
       
   281                     var_type = "ARRAY [%s] OF %s" % (",".join(map(lambda x : "%s..%s" % (dimension.getlower(), dimension.getupper()), vartype_content["value"].getdimension())), basetype_name)
   268                 # Variable type is an elementary type
   282                 # Variable type is an elementary type
   269                 else:
   283                 else:
   270                     var_type = vartype_content["name"]
   284                     var_type = vartype_content["name"]
   271                 config += [("    ", ()),
   285                 config += [("    ", ()),
   272                            (var.getname(), (tagname, "variable", var_number, "name")),
   286                            (var.getname(), (tagname, "variable", var_number, "name")),
   318                 if vartype_content["name"] == "derived":
   332                 if vartype_content["name"] == "derived":
   319                     var_type = vartype_content["value"].getname()
   333                     var_type = vartype_content["value"].getname()
   320                 # Variable type is a string type
   334                 # Variable type is a string type
   321                 elif vartype_content["name"] in ["string", "wstring"]:
   335                 elif vartype_content["name"] in ["string", "wstring"]:
   322                     var_type = vartype_content["name"].upper()
   336                     var_type = vartype_content["name"].upper()
       
   337                 # Variable type is an array
       
   338                 elif vartype_content["name"] == "array":
       
   339                     base_type = vartype_content["value"].baseType.getcontent()
       
   340                     # Array derived directly from a user defined type 
       
   341                     if base_type["name"] == "derived":
       
   342                         basetype_name = base_type["value"].getname()
       
   343                         self.GenerateDataType(basetype_name)
       
   344                     # Array derived directly from a string type 
       
   345                     elif base_type["name"] in ["string", "wstring"]:
       
   346                         basetype_name = base_type["name"].upper()
       
   347                     # Array derived directly from an elementary type 
       
   348                     else:
       
   349                         basetype_name = base_type["name"]
       
   350                     var_type = "ARRAY [%s] OF %s" % (",".join(map(lambda x : "%s..%s" % (dimension.getlower(), dimension.getupper()), vartype_content["value"].getdimension())), basetype_name)
   323                 # Variable type is an elementary type
   351                 # Variable type is an elementary type
   324                 else:
   352                 else:
   325                     var_type = vartype_content["name"]
   353                     var_type = vartype_content["name"]
   326                 resrce += [("      ", ()),
   354                 resrce += [("      ", ()),
   327                            (var.getname(), (tagname, "variable", var_number, "name")),
   355                            (var.getname(), (tagname, "variable", var_number, "name")),
   586                             initial_value = initial.getvalue()
   614                             initial_value = initial.getvalue()
   587                         else:
   615                         else:
   588                             initial_value = None
   616                             initial_value = None
   589                         address = var.getaddress()
   617                         address = var.getaddress()
   590                         if vartype_content["name"] in ["string", "wstring"]:
   618                         if vartype_content["name"] in ["string", "wstring"]:
   591                             if address is not None:
   619                             var_type = vartype_content["name"].upper()
   592                                 located.append((vartype_content["name"].upper(), var.getname(), address, initial_value))
   620                         # Variable type is an array
       
   621                         elif vartype_content["name"] == "array":
       
   622                             base_type = vartype_content["value"].baseType.getcontent()
       
   623                             # Array derived directly from a user defined type 
       
   624                             if base_type["name"] == "derived":
       
   625                                 basetype_name = base_type["value"].getname()
       
   626                                 self.GenerateDataType(basetype_name)
       
   627                             # Array derived directly from a string type 
       
   628                             elif base_type["name"] in ["string", "wstring"]:
       
   629                                 basetype_name = base_type["name"].upper()
       
   630                             # Array derived directly from an elementary type 
   593                             else:
   631                             else:
   594                                 variables.append((vartype_content["name"].upper(), var.getname(), None, initial_value))
   632                                 basetype_name = base_type["name"]
   595                         elif address is not None:
   633                             var_type = "ARRAY [%s] OF %s" % (",".join(map(lambda x : "%s..%s" % (x.getlower(), x.getupper()), vartype_content["value"].getdimension())), basetype_name)
   596                             located.append((vartype_content["name"], var.getname(), address, initial_value))
       
   597                         else:
   634                         else:
   598                             variables.append((vartype_content["name"], var.getname(), None, initial_value))
   635                             var_type = vartype_content["name"]
       
   636                         if address is not None:
       
   637                             located.append((var_type, var.getname(), address, initial_value))
       
   638                         else:
       
   639                             variables.append((var_type, var.getname(), None, initial_value))
   599                 if varlist["value"].getconstant():
   640                 if varlist["value"].getconstant():
   600                     option = "CONSTANT"
   641                     option = "CONSTANT"
   601                 elif varlist["value"].getretain():
   642                 elif varlist["value"].getretain():
   602                     option = "RETAIN"
   643                     option = "RETAIN"
   603                 elif varlist["value"].getnonretain():
   644                 elif varlist["value"].getnonretain():