PLCControler.py
changeset 1298 f034fb2b1aab
parent 1297 cd639725fba5
child 1299 9ffc49bfdf9d
equal deleted inserted replaced
1297:cd639725fba5 1298:f034fb2b1aab
    27 import cPickle
    27 import cPickle
    28 import os,sys,re
    28 import os,sys,re
    29 import datetime
    29 import datetime
    30 from time import localtime
    30 from time import localtime
    31 
    31 
    32 from plcopen import PLCOpenParser, LoadProject, SaveProject
    32 from plcopen import PLCOpenParser, LoadProject, SaveProject, QualifierList, rect
    33 from plcopen.structures import *
    33 from plcopen.structures import *
    34 from graphics.GraphicCommons import *
    34 from graphics.GraphicCommons import *
    35 from PLCGenerator import *
    35 from PLCGenerator import *
    36 
    36 
    37 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)?")
    37 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)?")
   213         self.TotalTypesDict = StdBlckDct.copy()
   213         self.TotalTypesDict = StdBlckDct.copy()
   214         self.TotalTypes = StdBlckLst[:]
   214         self.TotalTypes = StdBlckLst[:]
   215         self.ProgramFilePath = ""
   215         self.ProgramFilePath = ""
   216             
   216             
   217     def GetQualifierTypes(self):
   217     def GetQualifierTypes(self):
   218         return plcopen.QualifierList
   218         return QualifierList
   219 
   219 
   220     def GetProject(self, debug = False):
   220     def GetProject(self, debug = False):
   221         if debug and self.CurrentCompiledProject is not None:
   221         if debug and self.CurrentCompiledProject is not None:
   222             return self.CurrentCompiledProject
   222             return self.CurrentCompiledProject
   223         else:
   223         else:
  1193             if isinstance(var["Type"], TupleType):
  1193             if isinstance(var["Type"], TupleType):
  1194                 if var["Type"][0] == "array":
  1194                 if var["Type"][0] == "array":
  1195                     array_type, base_type_name, dimensions = var["Type"]
  1195                     array_type, base_type_name, dimensions = var["Type"]
  1196                     array = PLCOpenParser.CreateElement("array", "dataType")
  1196                     array = PLCOpenParser.CreateElement("array", "dataType")
  1197                     for i, dimension in enumerate(dimensions):
  1197                     for i, dimension in enumerate(dimensions):
  1198                         dimension_range = plcopen.rangeSigned()
  1198                         dimension_range = PLCOpenParser.CreateElement("range", "dimension")
  1199                         dimension_range.setlower(dimension[0])
       
  1200                         dimension_range.setupper(dimension[1])
       
  1201                         if i == 0:
  1199                         if i == 0:
  1202                             array.setdimension([dimension_range])
  1200                             array.setdimension([dimension_range])
  1203                         else:
  1201                         else:
  1204                             array.appenddimension(dimension_range)
  1202                             array.appenddimension(dimension_range)
       
  1203                         dimension_range.setlower(dimension[0])
       
  1204                         dimension_range.setupper(dimension[1])
  1205                     if base_type_name in self.GetBaseTypes():
  1205                     if base_type_name in self.GetBaseTypes():
  1206                         array.baseType.setcontent(PLCOpenParser.CreateElement(
  1206                         array.baseType.setcontent(PLCOpenParser.CreateElement(
  1207                             base_type_name.lower()
  1207                             base_type_name.lower()
  1208                             if base_type_name in ["STRING", "WSTRING"]
  1208                             if base_type_name in ["STRING", "WSTRING"]
  1209                             else base_type_name, "dataType"))
  1209                             else base_type_name, "dataType"))