391 else: |
391 else: |
392 var_type = returntype_content["name"] |
392 var_type = returntype_content["name"] |
393 elif var_type is None: |
393 elif var_type is None: |
394 var_type = expression.split("#")[0] |
394 var_type = expression.split("#")[0] |
395 if isinstance(instance, (plcopen.fbdObjects_inVariable, plcopen.fbdObjects_inOutVariable)): |
395 if isinstance(instance, (plcopen.fbdObjects_inVariable, plcopen.fbdObjects_inOutVariable)): |
396 self.ConnectionTypes[instance.connectionPointOut] = var_type |
396 for connection in self.ExtractRelatedConnections(instance.connectionPointOut): |
|
397 self.ConnectionTypes[connection] = var_type |
397 if isinstance(instance, (plcopen.fbdObjects_outVariable, plcopen.fbdObjects_inOutVariable)): |
398 if isinstance(instance, (plcopen.fbdObjects_outVariable, plcopen.fbdObjects_inOutVariable)): |
398 self.ConnectionTypes[instance.connectionPointIn] = var_type |
399 self.ConnectionTypes[instance.connectionPointIn] = var_type |
399 connected = self.GetConnectedConnection(instance.connectionPointIn, body) |
400 connected = self.GetConnectedConnection(instance.connectionPointIn, body) |
400 if connected and connected not in self.ConnectionTypes: |
401 if connected and connected not in self.ConnectionTypes: |
401 for connection in self.ExtractRelatedConnections(connected): |
402 for connection in self.ExtractRelatedConnections(connected): |
402 self.ConnectionTypes[connection] = var_type |
403 self.ConnectionTypes[connection] = var_type |
403 elif isinstance(instance, (plcopen.ldObjects_contact, plcopen.ldObjects_coil)): |
404 elif isinstance(instance, (plcopen.ldObjects_contact, plcopen.ldObjects_coil)): |
404 self.ConnectionTypes[instance.connectionPointOut] = "BOOL" |
405 for connection in self.ExtractRelatedConnections(instance.connectionPointOut): |
|
406 self.ConnectionTypes[connection] = "BOOL" |
405 self.ConnectionTypes[instance.connectionPointIn] = "BOOL" |
407 self.ConnectionTypes[instance.connectionPointIn] = "BOOL" |
406 connected = self.GetConnectedConnection(instance.connectionPointIn, body) |
408 connected = self.GetConnectedConnection(instance.connectionPointIn, body) |
407 if connected and connected not in self.ConnectionTypes: |
409 if connected and connected not in self.ConnectionTypes: |
408 for connection in self.ExtractRelatedConnections(connected): |
410 for connection in self.ExtractRelatedConnections(connected): |
409 self.ConnectionTypes[connection] = "BOOL" |
411 self.ConnectionTypes[connection] = "BOOL" |
410 elif isinstance(instance, plcopen.ldObjects_leftPowerRail): |
412 elif isinstance(instance, plcopen.ldObjects_leftPowerRail): |
411 for connection in instance.getconnectionPointOut(): |
413 for connection in instance.getconnectionPointOut(): |
412 self.ConnectionTypes[connection] = "BOOL" |
414 for related in self.ExtractRelatedConnections(connection): |
|
415 self.ConnectionTypes[related] = "BOOL" |
413 elif isinstance(instance, plcopen.ldObjects_rightPowerRail): |
416 elif isinstance(instance, plcopen.ldObjects_rightPowerRail): |
414 for connection in instance.getconnectionPointIn(): |
417 for connection in instance.getconnectionPointIn(): |
415 self.ConnectionTypes[connection] = "BOOL" |
418 self.ConnectionTypes[connection] = "BOOL" |
416 connected = self.GetConnectedConnection(connection, body) |
419 connected = self.GetConnectedConnection(connection, body) |
417 if connected and connected not in self.ConnectionTypes: |
420 if connected and connected not in self.ConnectionTypes: |