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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Variablentabelle

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von MSB Beitrag anzeigen
    Aber, das muss man einen Anfänger wie hier, ja nicht gleich in der gänze kundtun,
    wenn die Zeit reif ist, merkt derjenige das sowieso, das es noch mehr als U O gibt.
    Ja da hast Du wohl Recht.
    Puh, jetzt bin ich ja wieder beruhigt. War nur die Art wie Ihr das Verurteilt habt, bin sensibel.
    Zitat Zitat von MSB Beitrag anzeigen
    anderen ist das von Haus aus egal.
    Das ist natürlich absolut übel und gehört strafrechtlich verfolgt.
    Steigerung oder gleichwertig ist dann nur noch "Know how ??? perfekt ?"
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  2. #12
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Idee

    Ich mache das so:
    Ich erzeuge aus allen Programm-Bausteinen eine einzige AWL-Quelle und durchsuche diese dann nach [, AR1 und AR2.
    Wenn sehr viele direkte Zugriffe auf Arrays vorhanden sind, dann entferne ich die symbolischen Namen der DB aus
    der Symboltabelle. Dann werden die DB-Zugriffe mit der absoluten Adresse ohne eckige Klammern dargestellt.

    Beim Verdacht, daß eine Variable irgendwie benutzt wird, kann man auch im Simulator per Variablentabelle die
    Variable beschreiben und schauen, ob der Schreibwert drin stehenbleibt. So kann man aber nur nachweisen, daß sie
    benutzt wird, wenn sie sich ändert. Wenn sie sich nicht ändert, dann heißt das nicht, daß sie nicht benutzt wird!

    Bei Knowhow-geschützten Bausteinen sollte man davon ausgehen können, daß tatsächlich nur auf die Variablen der
    Aufrufschnittstelle und ggf. des Instanz-DB zugegriffen wird (zumindest, wenn der Baustein von Siemens ist). Aber
    auch da hat man keine Sicherheit. Zum Glück gibt es aber Tools, die einem den Programmcode solcher Bausteine
    zugänglich machen.

    Am "schönsten" finde ich solche Universal-Kopierbausteine, wo die DB-Nummern und Offsets von Quell- und Ziel-DB
    als INT an die Baustein-Eingänge geschrieben werden. Da darf man dann JEDEN Aufruf dieser Bausteine kontrollieren.

    In meinen Programmen mache ich es fast genauso wie Paule. Wenn ich indirekt auf Datensätze, Arrays oder Variablen
    zugreifen muß, dann mache ich zusätzlich einen programmtechnisch unnötigen Zugriff auf das erste Element des
    betroffenen Bereiches. Nur, damit mein Zugriff in der Referenzliste erscheint und ich (und andere Programmierer)
    diesen Zugriff später finden. Ich überspringe aber meistens den Referenz-Zugriff.
    Mein Referenz-Zugriff ist dann auch in der Art des nachfolgenden indirekten Zugriffs eine Lese- oder Schreib-
    Operation: L, T, U, S, R, =. Mein Kommentar beschränkt sich aber auf: "//nur für Referenzliste".
    Code:
    //Programmteil mit lesendem indirekten Zugriff
          SPA   M1
          L     DB100.DBW 10                //nur für Referenzliste
    M1:   L     #Index
          ...
    
    //Programmteil mit schreibendem indirekten Zugriff
          SPA   M2
          T     DB100.DBW 10                //nur für Referenzliste
    M2:   L     #Index
          ...
    
    //Programmteil mit schreibendem indirekten Bit-Zugriff
          SPA   M3
          R     DB100.DBX 8.0                //nur für Referenzliste
    M3:   L     #Index
          ...
    Auch auf das Taktmerker-Byte der CPU mache ich im OB1 einen lesenden Byte-Zugriff, damit das ganze Byte als
    benutzt in der Referenzliste auftaucht.

    Bei speicherindirekten Zugriffen wie "AUF DB[MW22]" oder "L MW[LW4]" oder "SE T[DBW8]" wird es schon schwieriger,
    einen geeigneten Referenz-Zugriff zu formulieren. Solche Sachen werden aber eher selten benutzt und die Programme
    sind dann meistens hinreichend kommentiert.

    Man kann sich allerdings nicht darauf verlassen, daß fremde Programmierer freundlicherweise Referenz-Zugriffe in ihr
    Programm eingebaut haben. Die meisten SPS-Programmierer, mit denen ich zu tun hatte, wissen garnicht von dieser
    Problematik oder scheren sich einen Dreck drum, ob ihr Programm wartungsfreundlich ist. Sowas kostet ja Zeit und
    macht zusätzliche "unbezahlte" Arbeit.

    Um sich selbst die Arbeit zu erleichtern, sollte man aber die paar Sekunden investieren und sich angewöhnen, solche
    Referenz-Zugriffe einzubauen. Man wird ja älter und hat irgendwann nicht mehr alle selbstgeschriebenen Programme im
    Kopf.

    Gruß
    Harald
    Zitieren Zitieren Wie findet man indirekte Zugriffe auf Variablen?  

  3. #13
    Andy_Scheck ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.05.2007
    Beiträge
    165
    Danke
    23
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Besten Dank für die vielen Antworten; aber gibts denn keinen der die Betriebstundenzähler von Siemens einsetzt (FB90) und mir gewissenhaft sagen kann, dass diese Merker, welche in der Variablentabelle aufgeführt sind, vergeben sind.
    Vorrausgesetzt, die Merker finden Verwendung, warum werden sie dann nicht in den Referenzdaten aufgeführt; wurde doch schließlich von den Jungs von Siemens höchstpersöhnlich erstellt.Kennen die etwa die Problematik nicht ???
    Den Bereich kann ich zur Überprüfung auslesen, angenommen ich verwende hierfür DW, besteht keine Verwendung, dann sind die DWs jederzeit 0 ??
    Besten Dank
    andy

  4. #14
    Registriert seit
    11.12.2009
    Beiträge
    52
    Danke
    2
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Zitat Zitat von MSB Beitrag anzeigen
    @Paule
    Wie kannst du nur, Pfui Deibel, sowas gehört verboten, dir sollte man die Tastatur um die Ohren hauen ...

    Und jetzt mal ernsthaft:
    - Jeder der "intensiver" Programmiert, weiß das es diese Möglichkeiten gibt
    - Jeder kennt das Problem "Referenzdaten", manche basteln außenrum, wie du,
    anderen ist das von Haus aus egal.

    Aber, das muss man einen Anfänger wie hier, ja nicht gleich in der gänze kundtun,
    wenn die Zeit reif ist, merkt derjenige das sowieso, das es noch mehr als U O gibt.

    Mfg
    Manuel
    Hallo Manual,
    ich bin auch gegen Lehrgänge im Forum, aber es steht nun mal fest.

    1. Wenn die Merker in der Referenzliste nicht auftauchen, sind sie nicht zwangsläufig frei.
    2. Gerade Anfänger tappen oft in diese Falle und suchen sich einen Wolf.
    (habe schon von "kaputten Merkern" gehört.)

    Mir war wichtig nur ein Hinweis auf diese Möglichkeit und gerade Anfänger sind auf solche Hinweise oft angewiesen.

    Und ich bleibe bei meiner (und deiner) Meinung, dass die indirekte Adressierung viel zu oft aus Bequemlichkeit oder aber auch ganz bewusst eingesetzt wird, und der Instandhaltung das Leben schwer macht.
    Gruß, Valdi

  5. #15
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von Andy_Scheck Beitrag anzeigen
    aber gibts denn keinen der die Betriebstundenzähler von Siemens einsetzt (FB90) und mir gewissenhaft sagen kann, dass diese Merker, welche in der Variablentabelle aufgeführt sind, vergeben sind.
    Vorrausgesetzt, die Merker finden Verwendung, warum werden sie dann nicht in den Referenzdaten aufgeführt
    Ich habe eben mal Deinen Baustein FB90 "OHM_BSZ" aus dem Siemens Support heruntergeladen.
    Hier noch einmal der korrekte Link zum Beitrag
    Wie kann ich für mehr als 8 Betriebsmittel die Betriebsstunden zählen?

    Der Baustein ist nicht geschützt, somit kann jedermann den Programmtext analysieren.
    Der Baustein benutzt definitiv KEINE globalen Variablen, sondern NUR eigene temporäre Variablen und
    Variablen des eigenen Instanz-DB. Das sieht man schon daran, daß alle Variablen-Symbole mit # beginnen.

    Die im Projekt enthaltene Variablentabelle zeigt die nur in diesem Beispielprojekt benutzten Variablen (Merker)
    an. Siehe OB1. Setzt man den FB90 in eigenen Projekten ein, dann kann man andere Merker benutzen.

    Wenn man die Referenzdaten neu generiert, dann werden alle verwendeten Merker korrekt aufgelistet.

    Aber wie ich in #3 schon sagte, ich würde diesen ungenauen Monster-Baustein nicht einsetzen.
    Wofür braucht man um Himmels willen 2006 Byte Arbeitsspeicher für einen simplen Betriebsstundenzähler?

    Gruß
    Harald
    Zitieren Zitieren FB90 ist sauber  

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

    Andy_Scheck (24.02.2010)

  7. #16
    Andy_Scheck ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.05.2007
    Beiträge
    165
    Danke
    23
    Erhielt 4 Danke für 4 Beiträge

    Standard

    ok, nochmals vielen Dank für die ausführliche Antwort.

    d.h der Baustein frisst jede Menge Arbeitsspeicher und ist dazu noch ungenau?
    Nutze den Baustein insgesamt 10 Mal, d.h. Arbeitspeicher wird im großen Stile verschwendet, natürlich schlecht.
    Gibts dann mittlerweile noch nichts besseres von Siemens.
    Danke

  8. #17
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Der Baustein FB90 braucht einmal 2006 Byte Arbeitsspeicher plus 98 Byte je Betriebsstundenzähler.

    Gruß
    Harald
    Zitieren Zitieren Arbeitsspeicherbedarf  

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

    Andy_Scheck (24.02.2010)

  10. #18
    Andy_Scheck ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.05.2007
    Beiträge
    165
    Danke
    23
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    zum Glück hab ich 16 KByte, die sich nicht erweitern lassen

Ähnliche Themen

  1. Schreibfunktionen der Variablentabelle....
    Von Jochen Kühner im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 30.03.2011, 09:55
  2. Variablentabelle Ersatzwert?
    Von Hans.S im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 13.10.2009, 21:51
  3. Steureung in Variablentabelle
    Von manas im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 03.10.2007, 14:40
  4. Variablentabelle
    Von Pimsti im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 16.06.2006, 08:55
  5. Variablentabelle lügt ??
    Von Anonymous im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 10.08.2005, 17:13

Lesezeichen

Berechtigungen

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