plcopen/structures.py
changeset 250 e6b58eafef1a
parent 247 4a47ccafbef7
child 270 351d134babd7
equal deleted inserted replaced
249:d8425712acef 250:e6b58eafef1a
    57                 generator.Interface[-1][4].append(("ANY", output_name, None, None))
    57                 generator.Interface[-1][4].append(("ANY", output_name, None, None))
    58             vars = []
    58             vars = []
    59             for i, variable in enumerate(block.inputVariables.getvariable()):
    59             for i, variable in enumerate(block.inputVariables.getvariable()):
    60                 input_info = (generator.TagName, "block", block.getlocalId(), "input", i)
    60                 input_info = (generator.TagName, "block", block.getlocalId(), "input", i)
    61                 connections = variable.connectionPointIn.getconnections()
    61                 connections = variable.connectionPointIn.getconnections()
    62                 if connections and len(connections) == 1:
    62                 if connections is not None:
    63                     if body_type == "FBD" or body_type == "SFC":
    63                     value = generator.ComputeExpression(body, connections, executionOrderId > 0)
    64                         value = generator.ComputeFBDExpression(body, connections[0], executionOrderId > 0)
       
    65                     elif body_type == "LD":
       
    66                         value = generator.ComputeLDExpression(body, variable.connectionPointIn.getConnections())
       
    67                     vars.append(generator.ExtractModifier(variable, value, input_info))
    64                     vars.append(generator.ExtractModifier(variable, value, input_info))
    68             generator.Program += [(generator.CurrentIndent, ()),
    65             generator.Program += [(generator.CurrentIndent, ()),
    69                                   (output_name, output_info),
    66                                   (output_name, output_info),
    70                                   (" := ", ()),
    67                                   (" := ", ()),
    71                                   (type, (generator.TagName, "block", block.getlocalId(), "type")),
    68                                   (type, (generator.TagName, "block", block.getlocalId(), "type")),
    78             generator.ComputedBlocks[block] = True
    75             generator.ComputedBlocks[block] = True
    79             vars = []
    76             vars = []
    80             for i, variable in enumerate(block.inputVariables.getvariable()):
    77             for i, variable in enumerate(block.inputVariables.getvariable()):
    81                 input_info = (generator.TagName, "block", block.getlocalId(), "input", i)
    78                 input_info = (generator.TagName, "block", block.getlocalId(), "input", i)
    82                 connections = variable.connectionPointIn.getconnections()
    79                 connections = variable.connectionPointIn.getconnections()
    83                 if connections and len(connections) == 1:
    80                 if connections is not None:
    84                     parameter = variable.getformalParameter()
    81                     parameter = variable.getformalParameter()
    85                     if body_type == "FBD" or body_type == "SFC":
    82                     value = generator.ComputeExpression(body, connections, executionOrderId > 0)
    86                         value = generator.ComputeFBDExpression(body, connections[0], executionOrderId > 0)
       
    87                     elif body_type == "LD":
       
    88                         value = generator.ComputeLDExpression(body, variable.connectionPointIn.getconnections())
       
    89                     vars.append([(parameter, input_info),
    83                     vars.append([(parameter, input_info),
    90                                  (" := ", ())] + generator.ExtractModifier(variable, value, input_info))
    84                                  (" := ", ())] + generator.ExtractModifier(variable, value, input_info))
    91             generator.Program += [(generator.CurrentIndent, ()), 
    85             generator.Program += [(generator.CurrentIndent, ()), 
    92                                   (name, (generator.TagName, "block", block.getlocalId(), "name")),
    86                                   (name, (generator.TagName, "block", block.getlocalId(), "name")),
    93                                   ("(", ())]
    87                                   ("(", ())]