diff -r bbe0697cf1ea -r 0c53d6a36013 PLCControler.py --- a/PLCControler.py Fri Oct 26 17:04:18 2007 +0200 +++ b/PLCControler.py Tue Oct 30 16:53:08 2007 +0100 @@ -1233,6 +1233,11 @@ if isinstance(instance, plcopen.block): infos["name"] = instance.getInstanceName() infos["type"] = instance.getTypeName() + executionOrder = instance.getExecutionOrderId() + if executionOrder is not None: + infos["executionOrder"] = executionOrder + else: + infos["executionOrder"] = 0 infos["connectors"] = {"inputs":[],"outputs":[]} for variable in instance.inputVariables.getVariable(): connector = {} @@ -1258,6 +1263,11 @@ infos["name"] = instance.getExpression() infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"]) infos["type"] = "input" + executionOrder = instance.getExecutionOrderId() + if executionOrder is not None: + infos["executionOrder"] = executionOrder + else: + infos["executionOrder"] = 0 infos["connector"] = {} infos["connector"]["position"] = instance.connectionPointOut.getRelPosition() infos["connector"]["negated"] = instance.getNegated() @@ -1266,6 +1276,11 @@ infos["name"] = instance.getExpression() infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"]) infos["type"] = "output" + executionOrder = instance.getExecutionOrderId() + if executionOrder is not None: + infos["executionOrder"] = executionOrder + else: + infos["executionOrder"] = 0 infos["connector"] = {} infos["connector"]["position"] = instance.connectionPointIn.getRelPosition() infos["connector"]["negated"] = instance.getNegated() @@ -1280,6 +1295,11 @@ infos["name"] = instance.getExpression() infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"]) infos["type"] = "inout" + executionOrder = instance.getExecutionOrderId() + if executionOrder is not None: + infos["executionOrder"] = executionOrder + else: + infos["executionOrder"] = 0 infos["connectors"] = {"input":{},"output":{}} infos["connectors"]["output"]["position"] = instance.connectionPointOut.getRelPosition() infos["connectors"]["output"]["negated"] = instance.getNegatedOut() @@ -1297,12 +1317,22 @@ infos["name"] = instance.getName() infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"]) infos["type"] = "continuation" + executionOrder = instance.getExecutionOrderId() + if executionOrder is not None: + infos["executionOrder"] = executionOrder + else: + infos["executionOrder"] = 0 infos["connector"] = {} infos["connector"]["position"] = instance.connectionPointOut.getRelPosition() elif isinstance(instance, plcopen.connector): infos["name"] = instance.getName() infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"]) infos["type"] = "connection" + executionOrder = instance.getExecutionOrderId() + if executionOrder is not None: + infos["executionOrder"] = executionOrder + else: + infos["executionOrder"] = 0 infos["connector"] = {} infos["connector"]["position"] = instance.connectionPointIn.getRelPosition() infos["connector"]["links"] = [] @@ -1333,8 +1363,13 @@ connector["links"].append(dic) infos["connectors"].append(connector) elif isinstance(instance, plcopen.contact): + infos["name"] = instance.getVariable() infos["type"] = "contact" - infos["name"] = instance.getVariable() + executionOrder = instance.getExecutionOrderId() + if executionOrder is not None: + infos["executionOrder"] = executionOrder + else: + infos["executionOrder"] = 0 infos["negated"] = instance.getNegated() infos["edge"] = instance.getContactEdge() infos["connectors"] = {"input":{},"output":{}} @@ -1347,8 +1382,13 @@ infos["connectors"]["input"]["links"].append(dic) infos["connectors"]["output"]["position"] = instance.connectionPointOut.getRelPosition() elif isinstance(instance, plcopen.coil): + infos["name"] = instance.getVariable() infos["type"] = "coil" - infos["name"] = instance.getVariable() + executionOrder = instance.getExecutionOrderId() + if executionOrder is not None: + infos["executionOrder"] = executionOrder + else: + infos["executionOrder"] = 0 infos["negated"] = instance.getNegated() infos["storage"] = instance.getCoilStorage() infos["connectors"] = {"input":{},"output":{}} @@ -1361,8 +1401,8 @@ infos["connectors"]["input"]["links"].append(dic) infos["connectors"]["output"]["position"] = instance.connectionPointOut.getRelPosition() elif isinstance(instance, plcopen.step): + infos["name"] = instance.getName() infos["type"] = "step" - infos["name"] = instance.getName() infos["initial"] = instance.getInitialStep() infos["connectors"] = {} if instance.connectionPointIn: @@ -1470,6 +1510,12 @@ return infos return False + def ClearCurrentExecutionOrder(self): + self.GetCurrentElementEditing().resetExecutionOrder() + + def ResetCurrentExecutionOrder(self): + self.GetCurrentElementEditing().compileExecutionOrder() + # Return the variable type of the given pou def GetCurrentPouVarValueType(self, varname): current_name = self.ElementsOpened[self.CurrentElementEditing] @@ -1533,6 +1579,8 @@ block.setInstanceName(value) elif param == "type": block.setTypeName(value) + elif param == "executionOrder" and block.getExecutionOrderId() != value: + self.GetCurrentElementEditing().setElementExecutionOrder(block, value) elif param == "height": block.setHeight(value) elif param == "width": @@ -1586,6 +1634,8 @@ for param, value in infos.items(): if param == "name": variable.setExpression(value) + elif param == "executionOrder" and variable.getExecutionOrderId() != value: + self.GetCurrentElementEditing().setElementExecutionOrder(variable, value) elif param == "height": variable.setHeight(value) elif param == "width":