Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 26

Thema: Was genau sind Schnittstellen

  1. #11
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    OK danke dir, aber habe das mit den Libarys nicht so verstanden. Ich dacht edie interfaces implementiere ich in die FB´s? und ich muss doch dann die methoden in den FB´s auch nochmal ausprogrammieren, oder? Wenn ich das mache, warum brauche ich dann ein interface, wenn ich doch eh die methode im FB habe und den ja instanzieren kann, also bsp. ERBSEN_ZAEHLER : FB1; und BOHNEN_ZAEHLER : FB1; ???? stehe da irgendwie auf dem Schlauch

  2. #12
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    .
    Hm,
    erzähl doch einfach mal, was du vorhast. Ich denke, dann kann dir sicherlich konkret weitergeholfen werden.
    MfG
    kind regards
    SoftMachine

  3. #13
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Zitat Zitat von Bensen83 Beitrag anzeigen
    OK danke dir, aber habe das mit den Libarys nicht so verstanden. Ich dacht edie interfaces implementiere ich in die FB´s? und ich muss doch dann die methoden in den FB´s auch nochmal ausprogrammieren, oder? Wenn ich das mache, warum brauche ich dann ein interface, wenn ich doch eh die methode im FB habe und den ja instanzieren kann, also bsp. ERBSEN_ZAEHLER : FB1; und BOHNEN_ZAEHLER : FB1; ???? stehe da irgendwie auf dem Schlauch
    Das isses. Der Sinn von Interfaces in der SPS-Programmierung erscheint mir auch etwas zweifelhaft. Wenn das aufrufende Programm nicht wüsste, ob es einen Erbsen- oder Bohnenzähler vor sich hat, wäre das Interface praktisch. Aber gerade das ist normalerweise nicht der Fall. Ich baue entweder einen Erbsen- oder einen Bohnenzähler und werde dafür natürlich auch den passenden FB im Programm instanziieren.

  4. #14
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Ich habe jetzt nichts konkretes vor, mir geht es rein um das Verständnis.

    Und mir ist noch nicht so wirklich klar, wofür ich Interfaces brauche, bzw. was diese mir für einen Nutzen bzw. Vorteil bringen könnten.

    Wenn dort eh nur Methoden drin definiert werden, dann bringt es mir ja auch nichts, wenn ich einen fb einer interfacevariable zuweisen kann, denn was soll eine interfacevariable sein? Eine Variable mit methoden? was soll ich der denn zuweisen????? verstehe ich nicht, sorry
    Zitieren Zitieren Verständnis  

  5. #15
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Du könntest mit der Interface-Variablen den FB aufrufen, den Du ihr zugewiesen hast. Statt "FBVar()" eben "InterfaceVar()". Sinn macht das nur, wenn das aufrufende Programm selbst gar nicht weiss, welcher FB aufgerufen werden soll. Aber das dürfte in der SPS-Programmierung wohl nur selten der Fall sein.

  6. #16
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Also das dürfte wirklich kaum der fall sein.
    Was ich mich jetzt noch frage ist, woher weis denn interfacevar(); welchen FBvar(); es aufrufen soll?
    Zitieren Zitieren ok  

  7. #17
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Man muss der Interface-Variablen zunächst eine FB-Instanz zuweisen (InterfaceVar:=FBVar). Das geht natürlich nur mit einem FB, der auch ein Interface vom Typ der InterfaceVar implementiert.

  8. #18
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Ach so, also könnte ich bspw. sowas machen:

    if material = "erbsen" then
    interfacevar := fberbsen;
    else
    interfacevar := fbbohnen;
    end if
    .
    .
    .
    .
    interfacevar.zaehlen();
    Zitieren Zitieren so langsam dämmerts ;-9  

  9. #19
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.708
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    @ST:
    ich habe in der OOP (Visual Studio) einigermaßen den Sinn der Interface verstanden und bewundere deine Versuche, hierfür in der SPS-Welt Beispiele zu erschaffen. Ich stimme dir aber zu, dass es auch mir schwerfällt, da etwas sinnvolles liefern zu wollen.

    @Benson:
    In der OOP kann man ein Interface dazu verwenden, um festzustellen, ob man mit einer einem vollkommen unbekannten Klasse bestimmte Dinge (nämlich die des Interface) machen kann. Das heißt : hat eine Klasse das bekannte Interface, dann muß sie auch die Teile davon bedienen können.
    Sorry - ich kriege es auch nicht besser ...

  10. #20
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Bensen83 Beitrag anzeigen
    Ach so, also könnte ich bspw. sowas machen:

    if material = "erbsen" then
    interfacevar := fberbsen;
    else
    interfacevar := fbbohnen;
    end if
    .
    .
    .
    .
    interfacevar.zaehlen();
    Ja, so was kann man damit tun. Aber wozu sollte man das?
    Code:
    if material='erbsen'
    then
       fberbsen.zaehlen();
    else
       fbbohnen.zaehlen();
    end_if
    So geht es ja auch, und zwar schon in CoDeSys V2. Interessant wird die Interface-Variante erst dann, wenn das Programm sehr viele Methodenaufrufe eines der beiden FB's enthält, weil dann die ständige Unterscheidungsabfrage der material-Variablen doch etwas lästig wird. Aber so etwas ist wie schon gesagt für SPS-Programme weniger typisch.

Ähnliche Themen

  1. Schnittstellen programmieren
    Von gischad im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 05.01.2012, 10:10
  2. Schnittstellen
    Von hene1985 im Forum HMI
    Antworten: 9
    Letzter Beitrag: 14.07.2010, 20:33
  3. Was genau sind PowerTags?
    Von BastiMG im Forum HMI
    Antworten: 21
    Letzter Beitrag: 19.03.2010, 09:51
  4. libnodave - Schnittstellen !
    Von moojoe im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 19.06.2007, 11:02
  5. iPod Schnittstellen
    Von Lazarus™ im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 09.10.2006, 20:36

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •