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

Seite 7 von 10 ErsteErste ... 56789 ... LetzteLetzte
Ergebnis 61 bis 70 von 97

Thema: Programmstruktur Step7

  1. #61
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Man muß also nicht immer wissen, warum etwas so-und-so gemacht wird. Hauptsache, man hält sich daran.
    Ach, da muss ich den hier noch dazufügen, da er so herrlich in mein Weltbild passt:
    http://de.wikipedia.org/wiki/Semmelweis
    Der „Semmelweis-Reflex“, demzufolge Innovationen in der Wissenschaft eher eine Bestrafung als eine entsprechende Honorierung zur Folge haben, weil etablierte Paradigmen und Verhaltensmuster entgegenstehen, wurde von Robert Anton Wilson geprägt und nach Semmelweis benannt.
    Zitieren Zitieren Man muß also nicht immer wissen, warum etwas so-und-so gemacht wird.  

  2. #62
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    Hallo Harald,

    heute mittag hab ich mich zunächst damit auseinandergesetzt, wie ich dazu stehe, wenn man etwas soundso tun solle, weil man es schon immer soundso gemacht habe. Wegen der angeführten Beispiele aus der alltäglichen Welt der Autofahrer fiel mir eine spontane Antwort darauf leicht. Ich ergänze nun noch ein paar meiner Gedanken zu den fachbezogenen Dingen - natürlich insbesondere dort, wo sich bei mir Widerspruchsbedürfnis entwickelt.
    Zitat Zitat von PN/DP Beitrag anzeigen
    Spätestens, wenn man keine Lizenz für die spezielle HMI-Generiersoftware hat oder das aktuelle HMI-Quellprojekt einfach nicht vorhanden ist, dann ist die HMI eine Blackbox und hat sich gefälligst an dokumentierte Schnittstellen zum Steuerungsprogramm zu halten.
    Hmmm, kann sein, dass ich mich wiederhole, aber das ist für mich der Supergau. Bei meinen Maschinen ist der Vollzugriff auf alle Komponenten Grundvorraussetzung, Änderungen vornehmen zu können. Änderungen bedeuten i.d.R. bei mir, der Kunde will nicht nur eine geänderte, sondern eine zusätzliche Funktionalität. Das bedeutet oft einen zusätzlichen FB oder mindestens mal zusätzliche Parameter und damit verbunden zusätzliche Visualisierungsseiten oder -einträge. Ich habe bisweilen auch Änderungen, die mehr in den Bereich Fehlerbereinigung fallen, die ohne Visu-Änderung auskommen. Aber weitergehende Änderungen, da besteht doch meist (?) der Wunsch, auch in der Visu was dazuzutun? oder eben anzupassen?

    Zitat Zitat von PN/DP Beitrag anzeigen
    Eine HMI-Variable im Schnittstellen-DB (als Kopie einer Prozeß-Variable) kann auch als IN/OUT-Variable von der HMI benutzt werden. Das muß man nur zusätzlich programmieren.
    Bei Flexible ist ein Ein-/Ausgabefeld der Standard-Fall. Es ist vielleicht nicht der schönste Programmierstil, aber bei einem Stückzähler, bei dem es nicht auf jedes Teil ankommt, kann ja durchaus ein Zugriff sowohl von der CPU wie auch der HMI auf die gleiche Variable erfolgen. Trennt man nun diese einzige Variable in den Teil, auf den das HMI zugreifen soll und den Teil, auf den das Programm zugreifen soll, so ist in der Steuerung eine Abgleichsroutine notwendig. Ändert sich also der Inhalt eine der beiden Variablen, so muss diese Änderung auf die jeweils andere Variable rüberkopiert werden. Der Vorzug dieser Vorgehensweise liegt dabei auf der Hand: es kann klar ein Vorrang festgelegt werden, sollten sich beide Werte gleichzeitig ändern. Nachteil: es ist nicht unerheblich Code dafür notwendig.

    Zitat Zitat von PN/DP Beitrag anzeigen
    Nur die Prüfung im Steuerungsprogramm vor der Verwendung garantiert mir zulässige Werte. Und nur, wenn die vernetzte Anwendung nicht auf die original-Zielvariable schreibt sondern auf eine Zwischenvariable. Nur dann kann das Steuerungsprogramm entscheiden, ob und wann es den Wert übernimmt.
    Das schrieb auch ich heute mittag, dass ich sowas auch mache. Ich schrieb auch, dass ich diese Puffervariable nicht in einen Extra-DB lege. Ich gehe hier nochmals darauf ein, da ich mit Dir übereinstimme, dass zwischen der Prüfung und der Verwendung des Wertes einer Variablen ja zwischendurch noch ein HMI-Zugriff liegen könnte. Um also den zwischenzeitlichen Zugriff seitens der HMI zu verhindern, muss man also zunächst den Wert kopieren und dann anhand der Kopie überprüfen. Der Satz "Nur dann kann das Steuerungsprogramm entscheiden, ob und wann es den Wert übernimmt" bekommt dann allerdings in meinen Augen eine etwas abweichende Bedeutung. Die Prüfroutine muss zunächst den Wert holen und mindestens mal in eine Zwischenschublade schieben. Sollte also die Prüfroutine mehr seitens der HMI-Ein/Ausgabe angesiedelt sein, so ist dort eine besondere Sorgfalt durch eine weitere Puffervariable erforderlich. Ist die Prüfroutine mehr der Verarbeitungsseite zugeordnet, so kann direkt an der Kopie manipuliert werden oder ggf. die Verarbeitung ausgesetzt werden. Naja, wenn ich bei Dir weiterlese:
    Zitat Zitat von PN/DP Beitrag anzeigen
    Wenn man nun für den ganzen OB1-Zyklus gleichbleibende HMI-Variablen braucht und vor allem garantieren will, daß sich eine HMI-Variable zwischen der Prüfung und der Verwendung nicht ändert, dann muß man quasi ein eigenes Prozeßabbild der HMI-Eingabevariablen erstellen. Das geht nur, wenn die HMI nicht direkt auf die Prozeßvariable schreibt, sondern auf eine Zwischenvariable (und die hat sich in einem Schnittstellen-DB zu befinden ).
    dann sind wir uns doch eigentlich - vom Schnittstellen-DB mal abgesehen - doch eigentlich einig.

    Dann war da noch die Sache mit dem Test der Visualisierung:
    Zitat Zitat von PN/DP Beitrag anzeigen
    Dadurch, daß meine HMI-Variablen nur Kopien der Prozess-Variablen sind, kann ich sehr einfach die Verbindung der HMI-Variable zur Prozess-Variable im Schnittstellen-DB unterbrechen und statt dessen beliebige Werte in die HMI-Variable schreiben, ohne den laufenden Prozess zu beeinflussen und ohne das HMI-Projekt zu ändern.
    Zitat von Perfektionist
    ich behaupte jetzt ganz frech das Gegenteil: ich kann einen FB mitsamt seinem IDB und der für ihn erstellten Visu-Seite völlig losgelöst von irgendwelcher Rangiererei testen.
    Kannst Du das auch im laufenden Betrieb, wenn Du das, was Du in der Visu testen willst, an der Anlage nicht schalten darfst?
    An dieser Stelle haben wir, wie ich nun feststelle, vollständig aneinander vorbeigeredet. Ich bin von S7 und Flexible ausgegangen, Du offenbar von allem, was es auf dieser Welt so gibt. Und das muss ja nicht Flexible sein. Bei Flex sieht es so aus, dass da eigentlich nichtmal S7 installiert sein muss und ich auch keine lebende Steuerung brauch, um eine Visu testen zu können. Da kann man in der Manier einer Variablentabelle direkt in einem Testbetrieb am Erstellsystem die Variablen der Steuerung simulieren. Es ist also so, dass ich gar nicht das dringende Bedürfnis habe, im laufenden Betrieb testen zu können, da es alternative Möglichkeiten (bei Flex!) gibt.

  3. #63
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zwei weitere Argumente FÜR den Schnittstellen-DB möchte ich noch erwähnen, weil sie hier in diesem Thread noch nicht genannt wurden:
    * Erhöhung der Kommunikations-Performance zwischen HMI und Steuerung
    * Möglichkeit zur Einsparung von PowerTags

    Wenn die HMI-Variablen im SSDB günstig angelegt werden (die Variablen hintereinander, die im selben Bild benötigt werden), dann kann der HMI-Kommunikationstreiber die Zugriffe zur Steuerung optimieren und größere Variablenblöcke lesen, als sich die Einzel-Variablen aus den IDB zu holen. Das ist z.B. der Grund, warum bei ProTool und WCCflex die Bitmeldungen ein Array of Word sind. Das Lesen von gleich mehreren Variablen kann man auch forcieren, wenn die HMI Bit-Zusammenfassung in (D)Words, Variablen-Arrays und/oder Rohvariablen unterstützt. Netter Nebeneffekt dabei ist die Verringerung der Anzahl an PowerTags.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #64
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    ich könnte aber auch die HMI-Variablen innerhalb des IDB als Array zusammenfassen. Dann hab ich ebenfalls Kommunikationslast eingespart und auch weniger Powertags. Es gibt mehrere Möglichkeiten, den gleichen Effekt zu erreichen

  5. #65
    Registriert seit
    23.10.2008
    Ort
    Rhein-Main-Gebiet
    Beiträge
    25
    Danke
    9
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Zitat Zitat von Perfektionist Beitrag anzeigen
    Ändere Deinen UDT und schau mal, was mit den Aktualdaten in Deinem DB passiert.

    Ändere in Deinen Deklarationen einen Datentyp und es hat sich ausgereihenfolgt. Füge einen IN-Parameter hinzu und es hat sich ausgereihenfolgt. Ändre die Deklaration eines FB, den Du im FB als Multiinstanz aufrufst und es hat sich ausgereihenfolgt.

    Tu bitte nicht so, als ob etwas, was gelegentlich funktioniert, immer funktionieren würde. Ich geb jetzt auch zu, dass ein Baustein, der einen FB als Multiinstanz verwendet, nicht gekapselt ist. Falls Du das überhaupt bemerkt hättest
    Es ist natürlich völliger Quatsch! Wenn man weiß was man tut, bleibt ein SPS niemals stehen! Egal ob UDT oder Multiinstanz. Man darf alles nach Lust und Laune ändern. Es müssen lediglich alle Zugriffe "Rückwerts" aktualisiert werden und alle betroffenen Bausteine gleichzeitig in den Ladespeicher verschoben werden. Eventuell sollten die Aktualwerte der IDB´s für einen definierten Weiterlauf, vor dem Aufspielen, eingestellt werden. Ist aber so gut wie nie erforderlich. Ich arbeite seit zehn Jahren an Anlagen die nicht stehenbleiben dürfen und hatte bislang einen Chrash. Habe eine Aktualisierung übersehen.

  6. #66
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    Zitat Zitat von geza Beitrag anzeigen
    alle betroffenen Bausteine gleichzeitig in den Ladespeicher
    bei welchen S7-Steuerungen geht das?

  7. #67
    Registriert seit
    23.10.2008
    Ort
    Rhein-Main-Gebiet
    Beiträge
    25
    Danke
    9
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Zitat Zitat von Perfektionist Beitrag anzeigen
    bei welchen S7-Steuerungen geht das?
    315-2DP, 316-2DP und 412-2DP mit sicherheit. Bei den anderen kann ich es nicht mit sicherheit behaupten, weil wir nur die drei Typen einsetzen. Ich vermute aber, dass es mit anderen Steuerungen genauso funktionieren sollte.

    Notfalls das Programm auf konsistenz prüfen, neu übersetzen und komplett neu aufspielen.

  8. #68
    Registriert seit
    25.08.2003
    Beiträge
    332
    Danke
    46
    Erhielt 54 Danke für 46 Beiträge

    Lächeln

    Zitat Zitat von geza Beitrag anzeigen
    315-2DP, 316-2DP und 412-2DP mit sicherheit. Bei den anderen kann ich es nicht mit sicherheit behaupten, weil wir nur die drei Typen einsetzen. Ich vermute aber, dass es mit anderen Steuerungen genauso funktionieren sollte.

    Notfalls das Programm auf konsistenz prüfen, neu übersetzen und komplett neu aufspielen.
    Und das alles ohne Verlust der Aktualwerte?? Im laufenden Anlagenbetrieb?
    Worin speicherst Du Sollwerte, Grenzwerte, Parameter, Anwahlen, Speicher etc.?
    Aus Interesse, welche Art von Anlagen bearbeitest du?

    Gruß, Flinn

    PS: Ich ziehe die Global-DB-Variante für o.g. Daten und für die HMI-Schnittstelle vor.

  9. #69
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von Flinn Beitrag anzeigen
    PS: Ich ziehe die Global-DB-Variante für o.g. Daten und für die HMI-Schnittstelle vor.
    Hi Flinn,
    Willkommen auf unsere Seite.
    http://sps-forum.de/showpost.php?p=279418&postcount=6

    Vielleicht sollte ich eine Umfrage starten, so was habe ich hier noch gar nicht gemacht.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  10. #70
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von geza Beitrag anzeigen
    315-2DP, 316-2DP und 412-2DP mit sicherheit.
    Die 400er entzieht sich meiner Erfahrung. Bei den benannten 300ern bekomme ich vom Simatic-Manager den freundlichen Hinweis, die Reihenfolge bei der Übertragung zu prüfen. Und das aus gutem Grund, wie mir schon so mancher SPS-Stopp seit Jahrzehnten zeigt (nicht dass ich den Stopp toll find - aber manchmal ist es einfach der faule Weg, die CPU in Stopp zu zwingen statt ordnungsgemäß anzuhalten).

    Das andere Problem sind z.B. Schrittketten, die einen bestimmten Zustand zum Zeitpunkt der Übertragung eingenommen haben und deren Zustand ich zum Zeitpunkt der Übertragung meist nicht abpasssen kann. Da kann ich lange Aktualdaten vorbereiten - wenn ich das stoßfrei hinbekommen will, da hab ich dann meist schon eine Aufgabe, die allermeistens (bei meinen Maschinen) nicht lösbar ist. Allerdings kann ich erfreulicherweise meist den Betrieb fürs Programmupdate unterbrechen.

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 21.09.2011, 13:45
  2. Problem mit Verständniss für Programmstruktur
    Von Peter_AUT im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 05.08.2011, 19:15
  3. Generelle Frage Programmstruktur OB's
    Von hank12 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 29.06.2009, 11:47
  4. Struktur aus DB in Programmstruktur kopieren
    Von gnikre im Forum Programmierstrategien
    Antworten: 4
    Letzter Beitrag: 05.06.2007, 09:56
  5. Antworten: 5
    Letzter Beitrag: 02.03.2005, 11:02

Lesezeichen

Berechtigungen

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