PLCGenerator.py
changeset 208 c70aefcadf66
parent 207 b1144bb36605
child 214 a88b377f75cb
equal deleted inserted replaced
207:b1144bb36605 208:c70aefcadf66
   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: