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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 27

Thema: indirekt auf Eingänge eines FC´s zugreifen

  1. #1
    Registriert seit
    01.05.2008
    Beiträge
    93
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ist es möglich, indirekt auf die Eingänge eines FC´s zuzugreifen?
    Ich möchte einen Baustein basteln, der die FC-Eingänge auf Merker umlädt und das am besten indirekt
    mfg
    Helmi
    Zitieren Zitieren indirekt auf Eingänge eines FC´s zugreifen  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Erklär mal etwas ausführlicher.
    Was willst du so erreichen ?

    Gruß
    Larry

  3. #3
    Registriert seit
    01.05.2008
    Beiträge
    93
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Erklär mal etwas ausführlicher.
    Was willst du so erreichen ?
    einfaches Beispiel:
    Ich hab acht FC-Eingänge und diese möchte ich auf ein Merkerbyte schreiben (1:1)

    Dies möchte ich aber nicht mit 8 Zuweisungen machen
    Code:
    U Eingang1
    = Merker1
    U Eingang2
    = Merker2
    //usw.
    sondern in einer Schleife - die 8 Durchläufe hat und sich bei jedem Durchlauf
    den jeweiligen Eingang auf ein Merker-Bit schreibt

    In einem FB ist das ja problemlos möglich (die Eingänge liegen ja in der Instanz und
    haben eine Adresse) - aber in einem FC?
    mfg
    Helmi

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.190
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Diese vermeintlich "clevere" Schweinerei wird immer wieder angefragt, doch es geht nicht in einem FC.
    Mache die 8 einzelnen Zuweisungen, das ist effizienter als die umständliche Adressrechnerei und Schleifenbehandlung und obendrein sogar noch gut lesbar und von jedermann verstehbar.

    Willst Du wirklich in dem FC direkt auf Merkerbits schreiben?!? Oder doch besser die 8 Bits in ein FC-internes Byte sammeln und dann das Byte über einen FC-Out zurückgeben? Dann kopiere die Bits über eine Struktur in TEMP. Das geht sogar sauber symbolisch.

    Welches Step7 und welche CPU willst Du verwenden?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    Registriert seit
    01.05.2008
    Beiträge
    93
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Dass es auch andere Wege gibt, ist mir klar
    normalerweise pointere ich das durch und gut ist (Schweinerei ist es nur, wenn man es nicht versteht)
    Habs aber gerade mal selbst im FC ausprobiert
    ein P##Eingang geht nicht (wird rot markiert)

    habs in S7 V5.5 und einer 319 gemacht
    mfg
    Helmi

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.190
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von HelmiMUC Beitrag anzeigen
    Dass es auch andere Wege gibt, ist mir klar
    normalerweise pointere ich das durch und gut ist (Schweinerei ist es nur, wenn man es nicht versteht)
    Habs aber gerade mal selbst im FC ausprobiert
    ein P##Eingang geht nicht (wird rot markiert)
    Exakt das kommt davon wenn man die eigenen Schweinereien nicht versteht, wenn man keine Ahnung hat von dem was man eigentlich tut.

    Ein P##Eingang geht doch, z.B. "L P##Eingang" - nur liefert das möglicherweise nicht das was Du erwartest. Außerdem funktioniert das unterschiedlich, je nachdem was für einen Aktual-Parameter man dem FC übergibt. Nur einmal testen und denken es ist gut, ist nicht genug. Also besser: vergiss es.

    Als Anregung für eine tatsächlich funktionierende "Schweinerei" siehe mal hier den Code für den umgekehrten Weg von Word zu Bit. Sollte für Dich ja einfach zu ändern sein.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #7
    Registriert seit
    01.05.2008
    Beiträge
    93
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Als Anregung für eine tatsächlich funktionierende "Schweinerei" siehe mal hier den Code für den umgekehrten Weg von Word zu Bit. Sollte für Dich ja einfach zu ändern sein.
    Das Beispiel hinkt - das greift auf den Local-Bereich indirekt zu und nicht auf Eingänge
    mfg
    Helmi

  8. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.190
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von HelmiMUC Beitrag anzeigen
    Das Beispiel hinkt - das greift auf den Local-Bereich indirekt zu und nicht auf Eingänge
    Ach, hast Du Schwierigkeiten, das Beispiel passend zu Deiner Aufgabe zu ändern? Du, der normalerweise sowas einfach "durchpointert und gut ist"? Du enttäuschst mich.

    Nochmal: es ist in einem FC nicht möglich, indiziert auf die Eingangsparameter zuzugreifen. Deshalb besteht die Lösung Deiner Aufgabe darin, die Eingänge zunächst in eine Temp-Bit-Struktur zu kopieren und zum symbolischen Lesen der Struktur als Byte oder Word indirekt auf die Temp-Struktur zuzugreifen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. #9
    Registriert seit
    01.05.2008
    Beiträge
    93
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Ach, hast Du Schwierigkeiten, das Beispiel passend zu Deiner Aufgabe zu ändern? Du, der normalerweise sowas einfach "durchpointert und gut ist"? Du enttäuschst mich.
    Erklär mir bitte den Zynismus den du damit an den Tag legst?

    Zitat Zitat von PN/DP Beitrag anzeigen
    Nochmal: es ist in einem FC nicht möglich, indiziert auf die Eingangsparameter zuzugreifen. Deshalb besteht Deine Lösung darin, die Eingänge zunächst in eine Temp-Bit-Struktur zu kopieren und zum symbolischen Lesen der Struktur als Byte oder Word indirekt auf die Temp-Struktur zuzugreifen.
    Auch wenn du jetzt etwas genervt erscheinen willst:
    Ich habe ja geschrieben, dass es bestimmt verschiedene Wege gibt - ich fragte ja nach dem indirekten Abfragen von Eingängen und nicht die des Temp-Bereichesgefragt
    mfg
    Helmi

  10. #10
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.190
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von HelmiMUC Beitrag anzeigen
    ich fragte ja nach dem indirekten Abfragen von Eingängen und nicht die des Temp-Bereichesgefragt
    Kurz und ohne irgendwelche Alternativvorschläge: Es geht nicht. FC-Eingänge können nicht indiziert adressiert werden.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. TIA Auf Array-Variable indirekt zugreifen
    Von zloyduh im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 22.01.2015, 21:28
  2. Step 7 Indirekt auf WORD in einem DB zugreifen
    Von mega_ohm im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 09.03.2014, 22:06
  3. TIA Indirekt auf DB-WORD zugreifen
    Von M15K im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 23.02.2014, 23:37
  4. Indirekt auf DB zugreifen (IN SCL)
    Von Bensen83 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 09.07.2010, 08:52
  5. Indirekt (Any-Pointer) auf PEW zugreifen?
    Von thorsten im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 11.05.2009, 12:44

Lesezeichen

Berechtigungen

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