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

Ergebnis 1 bis 10 von 10

Thema: S7-1500 HMI-Kommunikation (Zykluskontrollpunkt)

  1. #1
    Registriert seit
    23.02.2011
    Beiträge
    6
    Danke
    4
    Erhielt 3 Danke für 3 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen

    Ist es möglich bei der 1500er CPU die Kommunikation nicht azyklisch sondern auf den Zykluskontrollpunkt zu legen gleich wie bei den S7-300er CPU´s.

    Bei einigen der 300er CPU´s war es möglich dies über die Option "priorisierte BuB-Kommunikation" zu entscheiden.

    Eine Möglichkeit die ich in der Hilfe fand ist die Priorität des OB´s zu erhöhen das dieser nicht durch die Kommunikation unterbrochen wird.
    Da dies aber nicht für die Zyklus OB´s einstellbar ist und ich diese Variante nicht wählen will, suche ich nach anderen Möglichkeiten.

    "CPU Eigenschaften->Zyklusbelastung durch Kommunikation"

    Wirkungsweise des Parameters
    Über den Parameter "Zyklusbelastung durch Kommunikation" geben Sie den Prozentsatz der gesamten CPU-Verarbeitungsleistung an, der den Kommunikationsprozessen zur Verfügung stehen soll.
    Wenn die Kommunikation diese Verarbeitungsleistung nicht benötigt, steht sie der Programmbearbeitung zur Verfügung.
    Für die Prioritätsklassen kleiner oder gleich 15 wird die Verarbeitungsleistung der Kommunikation ständig von der CPU zugewiesen.
    Prioritätsklassen größer als 15 werden nicht durch Kommunikation unterbrochen.
    Sie beeinflussen also durch die Zuweisung der Priorität eines Ereignisses bzw. eines OBs die Unterbrechbarkeit des OBs und der Bausteine, die von dem OB aufgerufen werden. Wenn auf diese Weise größerer Programmabschnitte nicht unterbrechbar gemacht werden, um die Zykluszeiten zu minimieren, verzögern sich Online-Funktionen von STEP 7!
    Quelle: TIA V12 SP1 Hilfe
    Gruß
    steuerung
    Zitieren Zitieren S7-1500 HMI-Kommunikation (Zykluskontrollpunkt)  

  2. Folgender Benutzer sagt Danke zu steuerung für den nützlichen Beitrag:

    RONIN (09.11.2015)

  3. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    S7-1500 kenne ich nicht, aber Du könntest Dir selber ein "Prozessabbild_HMI" erzeugen, indem das HMI nur mit einem Koppel-DB kommuniziert und Du im OB1 den Koppel-DB in einen zweiten DB kopierst. Im Programm verarbeitest Du dann nur den zweiten DB.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    ducati (12.12.2013)

  5. #3
    Registriert seit
    09.08.2006
    Beiträge
    3.640
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    S7-1500 kenne ich nicht, aber Du könntest Dir selber ein "Prozessabbild_HMI" erzeugen, indem das HMI nur mit einem Koppel-DB kommuniziert und Du im OB1 den Koppel-DB in einen zweiten DB kopierst. Im Programm verarbeitest Du dann nur den zweiten DB.
    Jo, oder in dem jeweiligen FB mit zugehörigem DB zusätzliche HMI-Variablen anlegen, welche am Anfang der FB Bearbeitung gelesen (und in zusätzliche Variablen kopiert) und am Ende beschrieben werden. Also wie die Lösung von PN/DP nur pro Baustein...

    So arbeite ich eigentlich schon immer, da mir auch bei 300/400 nicht immer genau klar war, wann das HMI die Variablen liest/beschreibt.

    Gruß.

  6. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.797
    Danke
    144
    Erhielt 1.707 Danke für 1.239 Beiträge

    Standard

    Zitat Zitat von ducati Beitrag anzeigen
    Jo, oder in dem jeweiligen FB mit zugehörigem DB zusätzliche HMI-Variablen anlegen, welche am Anfang der FB Bearbeitung gelesen (und in zusätzliche Variablen kopiert) und am Ende beschrieben werden. Also wie die Lösung von PN/DP nur pro Baustein...
    Das kann je nachdem wie auf die Daten zugegriffen wird auch mal nicht funktionieren.
    Ist mir bei einem Test mit einer S7-400 die ja auch im Zyklus kommuniziert heute noch aufgefallen. Um Befehle von der HMI an die SPS zu geben, habe ich ein Befehls-Dword. Wird von der HMI ein Befehl gesetzt, wird das entsprechende Bit in Dword gesetzt und komplett an die SPS gesendet. Die SPS setzt das Bit nach Abarbeitung zurück. Ich hatte das Dword als In-Out Parameter an einem FB (d.h. im FB einlesen, gucken ob die passenden Bits gesetzt sind, und dann das Dword wieder auf 0).
    Nun ist es sporadisch aufgefallen, dass manche Befehle in der nicht SPS ankamen. Bei genauer Betrachung auch logisch, da alle Befehle die während der FB mit der Abarbeitung beschäftigt war in der SPS ankamen, beim Verlassen des FBs wieder plattgeschrieben wurden. Das ist mir nur aufgefallen, weil ich nur diesen einen Baustein im Programm hatte, und dadurch die Wahrscheinlichkeit dass die Kommunikation während der FB Bearbeitung eintraf sehr hoch war. In einem "normal" großen Programm ist die Wahrscheinlichkeit dass dieses eintritt eher gering, aber natürlich trotzdem ein Fehler.

    Ich habe dann den Parameter in ein UDT mit 32 Bools geändert, und eine Instanz der UDT dem FB als In-Out (also als Zeiger) übergeben, d.h. im FB wird direkt auf den Daten und nicht auf einer Kopie gearbeitet. Dadurch funktioniert das auch bei Steuerungen bei denen die Kommunikation im Zyklus abläuft.

    Man müsste bei der 1500er wissen, wann ein Parameter per Value, und wann per Referenz übergeben wird. Bei den neuen Steuerungen ist vieles nicht nachvollzieh- oder nachlesbar.

  7. #5
    Registriert seit
    09.08.2006
    Beiträge
    3.640
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Ich hatte das Dword als In-Out Parameter an einem FB (d.h. im FB einlesen, gucken ob die passenden Bits gesetzt sind, und dann das Dword wieder auf 0).
    Nun ist es sporadisch aufgefallen, dass manche Befehle in der nicht SPS ankamen. Bei genauer Betrachung auch logisch, da alle Befehle die während der FB mit der Abarbeitung beschäftigt war in der SPS ankamen, beim Verlassen des FBs wieder plattgeschrieben wurden. .
    Hmm, im FB das DWORD in eine Variable kopieren und gleich danach 0 setzen, nicht erst am Bausteinende. Dann sollte doch eigentlich die Chance, dass was verloren geht, gering sein?

    PS: Die Visu beschreibt bei mir direkt die INOUT Variable des IDB.


    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Ich habe dann den Parameter in ein UDT mit 32 Bools geändert, und eine Instanz der UDT dem FB als In-Out (also als Zeiger) übergeben, d.h. im FB wird direkt auf den Daten und nicht auf einer Kopie gearbeitet. Dadurch funktioniert das auch bei Steuerungen bei denen die Kommunikation im Zyklus abläuft.
    .
    Kostet dann aber 32 Powertags?

    Gruß.
    Geändert von ducati (13.12.2013 um 08:59 Uhr)

  8. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.797
    Danke
    144
    Erhielt 1.707 Danke für 1.239 Beiträge

    Standard

    Zitat Zitat von ducati Beitrag anzeigen
    Hmm, im FB das DWORD in eine Variable kopieren und gleich danach 0 setzen, nicht erst am Bausteinende. Dann sollte doch eigentlich die Chance, dass was verloren geht, gering sein?

    PS: Die Visu beschreibt bei mir direkt die INOUT Variable des IDB.
    Wenn du direkt in den Instanz-DB schreibst dann funktioniert das wohl.
    Ich meinte es aber so, dass wenn man einen InOut-Parameter so benutzt wie er gedacht ist, also mit externer Beschaltung.

    Zitat Zitat von ducati Beitrag anzeigen
    Kostet dann aber 32 Powertags?
    Ich nutze ja kein OS-übersetzen, d.h. meine Variablen zu WinCC liegen in einem separaten Schnittstellen-DB und werden über ein eigenes Tool erzeugt. Da kann ich die anlegen wie ich will. Hat den Vorteil dass ich in der SPS kein "blindes" Dword liegen habe, sondern eine Struktur in der die Bits symbolisch beschrieben sind.

  9. #7
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Man müsste bei der 1500er wissen, wann ein Parameter per Value, und wann per Referenz übergeben wird. Bei den neuen Steuerungen ist vieles nicht nachvollzieh- oder nachlesbar.
    Hi Thomas

    doch das bekommt man schon raus. schau dir mal http://www.sps-forum.de/simatic/6708...html#post46381 an.
    Im folgenden kommen (http://www.sps-forum.de/simatic/6708...tml#post464334) dann noch ein paar Tricks, wie man das nachweisen kann.

    'n schön' Tach auch
    HB

  10. #8
    Registriert seit
    09.08.2006
    Beiträge
    3.640
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Ich habe dann den Parameter in ein UDT mit 32 Bools geändert, und eine Instanz der UDT dem FB als In-Out (also als Zeiger) übergeben, d.h. im FB wird direkt auf den Daten und nicht auf einer Kopie gearbeitet. Dadurch funktioniert das auch bei Steuerungen bei denen die Kommunikation im Zyklus abläuft.
    Hallo Thomas, hab Grand nen Blackout und krigs nicht hin

    - hab nen GlobalDB mit den UDTs.
    - Im FB (SCL) hab ich jetzt ne VAR_IN_OUT angelegt Signale : UDT170
    - beim Aufruf des FB (in FUP) hänge ich an den Eingang ein Struct des GlobalDBs also z.B. GlobalDB.Motor1

    wie frage ich in SCL jetzt die einzelnen BOOLs ab? ich dachte einfach mit Signale.Bool01 Signale.Bool2 usw...? aber irgendwie sind die alle 0

    wo ist mein Denkfehler?

    Danke.

  11. #9
    Registriert seit
    02.04.2013
    Beiträge
    143
    Danke
    7
    Erhielt 22 Danke für 20 Beiträge

    Standard

    Wie sieht dein PLC_Datentyp (heißt nicht mehr UDT) aus? Oder benutzt du einen STRUCT??

    Wenn dein InOut den Namen VARRR von TYP "Mein_PLC_Typ" hat und dort hast du Signal_1 und Signal_2 von Typ Byte, dann sieht dein Code z.B. so aus:

    Code:
    #VARRR.Signal_1.X0 := #VARRR.Signal_2.X5
    Oder wenn es direkt ein Bool sein sollte

    Code:
    #VARRR.Signal_ist_Bool_1:= #VARRR.Signal_ist_Bool_2
    Geändert von shutdown_TIA12 (08.01.2014 um 13:24 Uhr)

  12. #10
    Registriert seit
    09.08.2006
    Beiträge
    3.640
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    danke.

    Funktioniert auch so wie gedacht.

    Ich hab das grad wie Thomas in Step7 getestet, nicht TIA-Portal.

    Ich hatte nen Programmierfehler drin und im falschen DB mit den Aktualparametern durcheinander gekommen

    Gruß.

Ähnliche Themen

  1. TIA Kommunikation S7-1500 mit PN Device
    Von TimeOUT im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 26.11.2013, 12:29
  2. Twincat 3.1 - Kommunikation zwischen einem C++ Modul und HMI (C#)
    Von adrian_weber im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 13.08.2013, 07:30
  3. AB MicroLogix 1500
    Von Gerri im Forum Sonstige Steuerungen
    Antworten: 3
    Letzter Beitrag: 26.05.2009, 17:37
  4. Kommunikation Möller SPS-HMI???
    Von Anonymous im Forum Programmierstrategien
    Antworten: 0
    Letzter Beitrag: 29.09.2005, 10:37
  5. 1500 User
    Von Heinz im Forum Stammtisch
    Antworten: 15
    Letzter Beitrag: 09.09.2005, 09:29

Lesezeichen

Berechtigungen

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