200 (element.getname(), (tagname, "struct", i, "name")), |
200 (element.getname(), (tagname, "struct", i, "name")), |
201 (" : ", ()), |
201 (" : ", ()), |
202 (elementtype_name, (tagname, "struct", i, "type"))] |
202 (elementtype_name, (tagname, "struct", i, "type"))] |
203 if element.initialValue is not None: |
203 if element.initialValue is not None: |
204 element_text.extend([(" := ", ()), |
204 element_text.extend([(" := ", ()), |
205 (self.ComputeValue(element.initialValue.getvalue(), elementtype_name), (tagname, "struct", i, "initial"))]) |
205 (self.ComputeValue(element.initialValue.getvalue(), elementtype_name), (tagname, "struct", i, "initial value"))]) |
206 element_text.append((";", ())) |
206 element_text.append((";", ())) |
207 elements.append(element_text) |
207 elements.append(element_text) |
208 datatype_def += [("STRUCT", ())] |
208 datatype_def += [("STRUCT", ())] |
209 datatype_def += JoinList([("", ())], elements) |
209 datatype_def += JoinList([("", ())], elements) |
210 datatype_def += [("\n END_STRUCT", ())] |
210 datatype_def += [("\n END_STRUCT", ())] |
212 else: |
212 else: |
213 datatype_def += [(basetype_content["name"], (tagname, "base"))] |
213 datatype_def += [(basetype_content["name"], (tagname, "base"))] |
214 # Data type has an initial value |
214 # Data type has an initial value |
215 if datatype.initialValue is not None: |
215 if datatype.initialValue is not None: |
216 datatype_def += [(" := ", ()), |
216 datatype_def += [(" := ", ()), |
217 (self.ComputeValue(datatype.initialValue.getvalue(), datatype_name), (tagname, "initial"))] |
217 (self.ComputeValue(datatype.initialValue.getvalue(), datatype_name), (tagname, "initial value"))] |
218 datatype_def += [(";\n", ())] |
218 datatype_def += [(";\n", ())] |
219 self.Program += datatype_def |
219 self.Program += datatype_def |
220 |
220 |
221 # Generate a POU from its name |
221 # Generate a POU from its name |
222 def GeneratePouProgram(self, pou_name): |
222 def GeneratePouProgram(self, pou_name): |
277 (" ", ())] |
277 (" ", ())] |
278 # Generate variable address if exists |
278 # Generate variable address if exists |
279 address = var.getaddress() |
279 address = var.getaddress() |
280 if address: |
280 if address: |
281 config += [("AT ", ()), |
281 config += [("AT ", ()), |
282 (address, (tagname, variable_type, var_number, "address")), |
282 (address, (tagname, variable_type, var_number, "location")), |
283 (" ", ())] |
283 (" ", ())] |
284 config += [(": ", ()), |
284 config += [(": ", ()), |
285 (var.gettypeAsText(), (tagname, variable_type, var_number, "type"))] |
285 (var.gettypeAsText(), (tagname, variable_type, var_number, "type"))] |
286 # Generate variable initial value if exists |
286 # Generate variable initial value if exists |
287 initial = var.getinitialValue() |
287 initial = var.getinitialValue() |
288 if initial: |
288 if initial: |
289 config += [(" := ", ()), |
289 config += [(" := ", ()), |
290 (self.ComputeValue(initial.getvalue(), var_type), (tagname, variable_type, var_number, "initial"))] |
290 (self.ComputeValue(initial.getvalue(), var_type), (tagname, variable_type, var_number, "initial value"))] |
291 config += [(";\n", ())] |
291 config += [(";\n", ())] |
292 var_number += 1 |
292 var_number += 1 |
293 config += [(" END_VAR\n", ())] |
293 config += [(" END_VAR\n", ())] |
294 # Generate any resource in the configuration |
294 # Generate any resource in the configuration |
295 for resource in configuration.getresource(): |
295 for resource in configuration.getresource(): |
330 (" ", ())] |
330 (" ", ())] |
331 address = var.getaddress() |
331 address = var.getaddress() |
332 # Generate variable address if exists |
332 # Generate variable address if exists |
333 if address: |
333 if address: |
334 resrce += [("AT ", ()), |
334 resrce += [("AT ", ()), |
335 (address, (tagname, variable_type, var_number, "address")), |
335 (address, (tagname, variable_type, var_number, "location")), |
336 (" ", ())] |
336 (" ", ())] |
337 resrce += [(": ", ()), |
337 resrce += [(": ", ()), |
338 (var.gettypeAsText(), (tagname, variable_type, var_number, "type"))] |
338 (var.gettypeAsText(), (tagname, variable_type, var_number, "type"))] |
339 # Generate variable initial value if exists |
339 # Generate variable initial value if exists |
340 initial = var.getinitialValue() |
340 initial = var.getinitialValue() |
341 if initial: |
341 if initial: |
342 resrce += [(" := ", ()), |
342 resrce += [(" := ", ()), |
343 (self.ComputeValue(initial.getvalue(), var_type), (tagname, variable_type, var_number, "initial"))] |
343 (self.ComputeValue(initial.getvalue(), var_type), (tagname, variable_type, var_number, "initial value"))] |
344 resrce += [(";\n", ())] |
344 resrce += [(";\n", ())] |
345 var_number += 1 |
345 var_number += 1 |
346 resrce += [(" END_VAR\n", ())] |
346 resrce += [(" END_VAR\n", ())] |
347 # Generate any task in the resource |
347 # Generate any task in the resource |
348 tasks = resource.gettask() |
348 tasks = resource.gettask() |
1307 if var_name: |
1307 if var_name: |
1308 program += [(var_name, (self.TagName, variable_type, var_number, "name")), |
1308 program += [(var_name, (self.TagName, variable_type, var_number, "name")), |
1309 (" ", ())] |
1309 (" ", ())] |
1310 if var_address != None: |
1310 if var_address != None: |
1311 program += [("AT ", ()), |
1311 program += [("AT ", ()), |
1312 (var_address, (self.TagName, variable_type, var_number, "address")), |
1312 (var_address, (self.TagName, variable_type, var_number, "location")), |
1313 (" ", ())] |
1313 (" ", ())] |
1314 program += [(": ", ()), |
1314 program += [(": ", ()), |
1315 (var_type, (self.TagName, variable_type, var_number, "type"))] |
1315 (var_type, (self.TagName, variable_type, var_number, "type"))] |
1316 if var_initial != None: |
1316 if var_initial != None: |
1317 program += [(" := ", ()), |
1317 program += [(" := ", ()), |
1318 (self.ParentGenerator.ComputeValue(var_initial, var_type), (self.TagName, variable_type, var_number, "initial"))] |
1318 (self.ParentGenerator.ComputeValue(var_initial, var_type), (self.TagName, variable_type, var_number, "initial value"))] |
1319 program += [(";\n", ())] |
1319 program += [(";\n", ())] |
1320 var_number += 1 |
1320 var_number += 1 |
1321 program += [(" END_VAR\n", ())] |
1321 program += [(" END_VAR\n", ())] |
1322 program += [("\n", ())] |
1322 program += [("\n", ())] |
1323 program += self.Program |
1323 program += self.Program |