diff -r 4963e3816641 -r d6b878525ceb runtime/PLCObject.py --- a/runtime/PLCObject.py Mon Feb 16 16:23:51 2015 +0100 +++ b/runtime/PLCObject.py Tue Feb 17 10:23:57 2015 +0100 @@ -56,7 +56,7 @@ self.evaluator = evaluator self.argv = [workingdir] + argv # force argv[0] to be "path" to exec... self.workingdir = workingdir - self.PLCStatus = "Stopped" + self.PLCStatus = "Empty" self.PLClibraryHandle = None self.PLClibraryLock = Lock() self.DummyIteratorLock = None @@ -73,6 +73,7 @@ self.TraceWakeup = Event() self.Traces = [] + def AutoLoad(self): # Get the last transfered PLC if connector must be restart try: self.CurrentPLCFilename=open( @@ -264,11 +265,6 @@ self.python_runtime_vars = globals().copy() self.python_runtime_vars.update(self.pyruntimevars) - self.python_runtime_vars["WorkingDir"] = self.workingdir - for methodname in MethodNames : - self.python_runtime_vars["_runtime_%s"%methodname] = [] - self.python_runtime_vars["PLCObject"] = self - self.python_runtime_vars["PLCBinary"] = self.PLClibraryHandle class PLCSafeGlobals: def __getattr__(_self, name): try : @@ -285,9 +281,21 @@ raise KeyError("Try to set unknown shared global variable : %s"%name) v = self.python_runtime_vars["_"+name+"_pack"](t,value) self.python_runtime_vars["_PySafeSetPLCGlob_"+name](ctypes.byref(v)) - self.python_runtime_vars["PLCGlobals"] = PLCSafeGlobals() + + self.python_runtime_vars.update({ + "PLCGlobals" : PLCSafeGlobals(), + "WorkingDir" : self.workingdir, + "PLCObject" : self, + "PLCBinary" : self.PLClibraryHandle, + "PLCGlobalsDesc" : []}) + + for methodname in MethodNames : + self.python_runtime_vars["_runtime_%s"%methodname] = [] + try: - for filename in os.listdir(self.workingdir): + filenames = os.listdir(self.workingdir) + filenames.sort() + for filename in filenames: name, ext = os.path.splitext(filename) if name.upper().startswith("RUNTIME") and ext.upper() == ".PY": execfile(os.path.join(self.workingdir, filename), self.python_runtime_vars)