--- 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":