--- a/PLCControler.py Thu Jul 19 15:04:41 2007 +0200
+++ b/PLCControler.py Fri Jul 20 18:28:03 2007 +0200
@@ -261,24 +261,24 @@
for pou in self.Project.getPous():
pou_type = pou.getPouType().getValue()
pou_infos = {"name": pou.getName(), "type": ITEM_POU}
- var_types = {"Input": {"name": "Input", "type": ITEM_CLASS, "values": []},
- "Output": {"name": "Output", "type": ITEM_CLASS, "values": []},
- "InOut": {"name": "InOut", "type": ITEM_CLASS, "values": []},
- "External": {"name": "External", "type": ITEM_CLASS, "values": []},
- "Local": {"name": "Local", "type": ITEM_CLASS, "values": []},
- "Temp": {"name": "Temp", "type": ITEM_CLASS, "values": []},
- "Global": {"name": "Global", "type": ITEM_CLASS, "values": []}}
- for var in self.GetPouInterfaceVars(pou):
- var_values = {"name": var["Name"], "type": ITEM_VARIABLE, "values": []}
- if var["Class"] in var_types.keys():
- var_types[var["Class"]]["values"].append(var_values)
pou_values = []
- pou_values.append({"name": "Interface", "type": ITEM_CLASS,
- "values": [var_types["Input"], var_types["Output"], var_types["InOut"], var_types["External"]]})
- pou_values.append({"name": "Variables", "type": ITEM_CLASS,
- "values": [var_types["Local"], var_types["Temp"]]})
- if pou_type == "program":
- pou_values.append(var_types["Global"])
+## var_types = {"Input": {"name": "Input", "type": ITEM_CLASS, "values": []},
+## "Output": {"name": "Output", "type": ITEM_CLASS, "values": []},
+## "InOut": {"name": "InOut", "type": ITEM_CLASS, "values": []},
+## "External": {"name": "External", "type": ITEM_CLASS, "values": []},
+## "Local": {"name": "Local", "type": ITEM_CLASS, "values": []},
+## "Temp": {"name": "Temp", "type": ITEM_CLASS, "values": []},
+## "Global": {"name": "Global", "type": ITEM_CLASS, "values": []}}
+## for var in self.GetPouInterfaceVars(pou):
+## var_values = {"name": var["Name"], "type": ITEM_VARIABLE, "values": []}
+## if var["Class"] in var_types.keys():
+## var_types[var["Class"]]["values"].append(var_values)
+## pou_values.append({"name": "Interface", "type": ITEM_CLASS,
+## "values": [var_types["Input"], var_types["Output"], var_types["InOut"], var_types["External"]]})
+## pou_values.append({"name": "Variables", "type": ITEM_CLASS,
+## "values": [var_types["Local"], var_types["Temp"]]})
+## if pou_type == "program":
+## pou_values.append(var_types["Global"])
if pou.getBodyType() == "SFC":
transitions = []
for transition in pou.getTransitionList():
@@ -295,21 +295,22 @@
for config in self.Project.getConfigurations():
config_name = config.getName()
config_infos = {"name": config_name, "type": ITEM_CONFIGURATION, "values": []}
- config_vars = {"name": "Global", "type": ITEM_CLASS, "values": []}
- for var in self.GetConfigurationGlobalVars(config_name):
- var_values = {"name": var["Name"], "type": ITEM_VARIABLE, "values": []}
- config_vars["values"].append(var_values)
+## config_vars = {"name": "Global", "type": ITEM_CLASS, "values": []}
+## for var in self.GetConfigurationGlobalVars(config_name):
+## var_values = {"name": var["Name"], "type": ITEM_VARIABLE, "values": []}
+## config_vars["values"].append(var_values)
resources = {"name": "Resources", "type": ITEM_UNEDITABLE, "values": []}
for resource in config.getResource():
resource_name = resource.getName()
resource_infos = {"name": resource_name, "type": ITEM_RESOURCE, "values": []}
- resource_vars = {"name": "Global", "type": ITEM_CLASS, "values": []}
- for var in self.GetConfigurationResourceGlobalVars(config_name, resource_name):
- var_values = {"name": var["Name"], "type": ITEM_VARIABLE, "values": []}
- resource_vars["values"].append(var_values)
- resource_infos["values"].append(resource_vars)
+## resource_vars = {"name": "Global", "type": ITEM_CLASS, "values": []}
+## for var in self.GetConfigurationResourceGlobalVars(config_name, resource_name):
+## var_values = {"name": var["Name"], "type": ITEM_VARIABLE, "values": []}
+## resource_vars["values"].append(var_values)
+## resource_infos["values"].append(resource_vars)
resources["values"].append(resource_infos)
- config_infos["values"] = [config_vars, resources]
+## config_infos["values"] = [config_vars, resources]
+ config_infos["values"] = [resources]
configurations["values"].append(config_infos)
infos["values"] = [{"name": "Properties", "type": ITEM_UNEDITABLE, "values": []},
pou_types["function"], pou_types["functionBlock"],
@@ -851,6 +852,8 @@
words = pou_name.split("::")
if len(words) == 1:
names.append(pou_name)
+ elif len(words) == 2:
+ names.append(words[1])
else:
names.append("%s-%s"%(words[1],words[2]))
return names
@@ -864,6 +867,10 @@
return "A::%s::%s" % (pou, action)
# Compute a pou name
+ def ComputeConfigurationName(self, config):
+ return "C::%s" % config
+
+ # Compute a pou name
def ComputeConfigurationResourceName(self, config, resource):
return "R::%s::%s" % (config, resource)
@@ -885,6 +892,10 @@
def OpenPouActionEditing(self, pou, action):
return self.OpenElementEditing(self.ComputePouActionName(pou, action))
+ # Open a configuration resource by giving configuration name
+ def OpenConfigurationEditing(self, config):
+ return self.OpenElementEditing(self.ComputeConfigurationName(config))
+
# Open a configuration resource by giving configuration and resource names
def OpenConfigurationResourceEditing(self, config, resource):
return self.OpenElementEditing(self.ComputeConfigurationResourceName(config, resource))
@@ -901,8 +912,12 @@
def IsPouActionEditing(self, pou, action):
return self.ComputePouActionName(pou, action) in self.ElementsOpened
- # Return if pou action given by pou and action names is opened
- def IsConfigurationResourceEditing(self, pou, action):
+ # Return if pou action given by configuration name is opened
+ def IsConfigurationEditing(self, pou):
+ return self.ComputeConfigurationName(config) in self.ElementsOpened
+
+ # Return if pou action given by configuration and resource names is opened
+ def IsConfigurationResourceEditing(self, pou, resource):
return self.ComputeConfigurationResourceName(config, resource) in self.ElementsOpened
# Close current pou editing
@@ -932,6 +947,10 @@
def ChangePouActionEditing(self, pou, action):
return self.ChangeElementEditing(self.ComputePouActionName(pou, action))
+ # Change current pou editing for action given by configuration name
+ def ChangeConfigurationEditing(self, config):
+ return self.ChangeElementEditing(self.ComputeConfigurationName(config))
+
# Change current pou editing for action given by configuration and resource names
def ChangeConfigurationResourceEditing(self, config, resource):
return self.ChangeElementEditing(self.ComputeConfigurationResourceName(config, resource))
@@ -955,6 +974,9 @@
return pou.getTransition(words[2])
elif words[0] == 'A':
return pou.getAction(words[2])
+ elif words[0] == 'C':
+ result = self.Project.getConfiguration(words[1])
+ return result
elif words[0] == 'R':
result = self.Project.getConfigurationResource(words[1], words[2])
return result
@@ -968,6 +990,8 @@
words = name.split("::")
if len(words) == 1:
return name
+ elif len(words) == 2:
+ return words[1]
else:
return words[2]
return None
@@ -983,7 +1007,9 @@
words = name.split("::")
if len(words) == 1:
return self.GetPouType(name)
- else:
+ elif len(words) == 2:
+ return None
+ elif words[0] != "R":
return self.GetPouType(words[1])
return None