# SR doppelt



## waldy (17 August 2022)

Hallo
Die Frage
Wenn in einem FB Baustein in zwei verschiedenen SR  Glieder unter gleiche Merker z.B. M50.0 geschrieben wurde.

Und dabei kommt keine Fehlermeldung.

Wie gehen Sie vor damit?

Gruß


----------



## MFreiberger (17 August 2022)

Moin waldy,

gibt es davon einen Screenshot?
Logische Fehler werden nicht erkannt. Vielleicht von einer KI?

VG

MFreiberger


----------



## DeltaMikeAir (17 August 2022)

Nach fast 20 Jahren im Forum noch nicht dazugelernt:
Nutzungsbedingungen



> §3 Angaben bei Fragen​
> Wähle einen aussagekräftigen Titel für dein Thema, der dein Problem kurz und präzise beschreibt.





> Schreibe also möglichst detailliert welche Hardware und Software du verwendest. Die Chancen auf eine qualifizierte Antwort werden dadurch größer, denn viele User habe keine Lust erst mühsam die Umstände zu klären.


----------



## Salli1991 (17 August 2022)

Was meinst du damit? Der Merker wird an zwei stellen durch SR-Glieder geschrieben?
Das geht prinzipiell. Ist zwar nicht schön, aber es funktioniert.


----------



## Salli1991 (17 August 2022)

By the way, Stammtisch?! Falsche Ecke?xD


----------



## waldy (17 August 2022)

DeltaMikeAir schrieb:


> Nach fast 20 Jahren im Forum noch nicht dazugelernt:
> Nutzungsbedingungen


Hallo Delter,
Doch, habe ich was schönes erlebt
Nur auf Taste F1 steht leider keine Nutzung Bedienung.

Stammtisch = F1 

Gruß


----------



## DeltaMikeAir (17 August 2022)

Dann gib dir halt wenigstens mal etwas mehr Mühe. Es ist auch irgendwie respektlos, dass man dir immer wieder die Minimalinfo´s aus der Nase ziehen muss. Warum müssen sich andere immer bemühen für deine "Problemchen" während du dir keine Mühe gibst? Beschreibe das halt einmal vernünftig, dann bekommst du sicher auch eine vernünftige Antwort.


----------



## waldy (17 August 2022)

DeltaMikeAir schrieb:


> Dann gib dir halt wenigstens mal etwas mehr Mühe. Es ist auch irgendwie respektlos, dass man dir immer wieder die Minimalinfo´s aus der Nase ziehen muss. Warum müssen sich andere immer bemühen für deine "Problemchen" während du dir keine Mühe gibst? Beschreibe das halt einmal vernünftig, dann bekommst du sicher auch eine vernünftige Antwort.


Was, Delta . Was kann ich sagen.
Du hast so viel es geschrieben, so viel Zeit genommen.
Und alles umsonst, bzw Nutzlos ist für meine Frage.
So ähnlich wie bei Taste F1. Da kommt auch auf ganze Monitor so viele Infos - leider damit kann man nichts anfangen.

Als Schnell Abruf ich überlege mir dich unter Taste F2 speichern.
))
Wenn mit Taste F1 komme ich nicht weiter, ich tippe dann auf F2 )))

Gruß


----------



## DeltaMikeAir (17 August 2022)

waldy schrieb:


> So ähnlich wie bei Taste F1. Da kommt auch auf ganze Monitor so viele Infos - leider damit kann *man* nichts anfangen.


Nicht man, du vielleicht.

Leider lernst du nicht dazu. Ansonsten würdest du nicht so einen Müll schreiben sondern einfach mal deine Frage konkretisieren.


----------



## waldy (17 August 2022)

DeltaMikeAir schrieb:


> Leider lernst du nicht dazu. Ansonsten würdest du nicht so einen Müll schreiben sondern einfach mal deine Frage konkretisieren.


Delta, in Real Leben die Leute leben nicht nach Logik von SPS.

Und anstatt zu Helfen, ein Glas Wasser zu geben- anfangen Nutzungsbedingungen zu lesen - das bringt keine Hilfe 
Gruß


----------



## DeltaMikeAir (17 August 2022)

waldy schrieb:


> Und anstatt zu Helfen, ein Glas Wasser zu geben- anfangen Nutzungsbedingungen zu lesen - das bringt keine Hilfe


Du kapierst es einfach nicht oder hast einfach keine Lust dir mehr Mühe zu geben.


----------



## Ralle (17 August 2022)

@waldy @DeltaMikeAir

Jungs, kommt zum Thema.

@waldy
Gib ein paar mehr und vernünftige Infos. Ich will hier auch keinen Opern zu deinem Thema schreiben, weil die Frage so ungenau und vielfältig zu beantworten ist.


----------



## waldy (17 August 2022)

Hallo
Ich habe in Baustein FC in verschiedenen Netzwerk bei verschiedenen SR Glieder gleiche Merker M50.0 benutz.

Programme war nicht richtig gelaufen.

Bevor habe ich Fehler gefunden, hat lange es gedauert.

Bei Übersetzen war auch keine Fehlermeldung oder Warnung gewesen.

Die Frage - wie kann man es prüfen, dass in Programme sind KEINE zwei Merker benutzen wurde?

Gruß


----------



## MFreiberger (17 August 2022)

waldy schrieb:


> Die Frage - wie kann man es prüfen, dass in Programme sind KEINE zwei Merker benutzen wurde?


Querverweisliste?
Referenzliste?
Zudem einen Merker mehrfach zu benutzen ist ja gerade der Pfiff an einem Merker.


----------



## DeltaMikeAir (17 August 2022)

waldy schrieb:


> Die Frage - wie kann man es prüfen, dass in Programme sind KEINE zwei Merker benutzen wurde?


Das liegt in deiner Verantwortung als Programmierer. Prüfen kannst du es über die Querverweisliste ( wenn mehrere schreibende Zugriffe existieren ).

Geht es um TIA oder Step7 Classic?


----------



## Blockmove (17 August 2022)

waldy schrieb:


> Hallo
> Ich habe in Baustein FC in verschiedenen Netzwerk bei verschiedenen SR Glieder gleiche Merker M50.0 benutz.
> 
> Programme war nicht richtig gelaufen.
> ...


Normalerweise programmiert man heute symbolisch.
Wenn man also einen M50.0 verwendet, dann vergibt man einen Symbolnamen und Symbolkommentar.
Wenn du ihn dann ein 2. Mal verwendest, dann wird da der Symbolname angezeigt.


----------



## Heinileini (17 August 2022)

waldy schrieb:


> ... in Real Leben die Leute leben nicht nach Logik von SPS.


... und denken nicht nach Logik von SPS. Das ist das eigentliche Problem!
Aber wenigstens die "Leute" unter ihnen, die sich als SPS-Programmierer versuchen wollen, sollten sich zumindest bemühen, es zu tun.
Es ist doch eigentlich sooo einfach.
Am schwersten fällt es den meisten, Schritt für Schritt zu (durch-)denken und dabei keine GedankenSprünge mehr zu tolerieren.
Es fällt deshalb vielen so schwer, weil dazu Disziplin und - oh Wunder - auch "Entschleunigung" erforderlich ist. Keine Hektik beim Denken aufkommen lassen!!! 

Wenn die Doppelbelegung von Variablen zustande kommt, weil man sich mit copy&paste eine Vorlage geschaffen hat, aber diese dann nur unvollständig überarbeitet, habe ich dafür noch Verständnis. Jeder kann mal etwas übersehen oder schlicht vergessen.
Ansonsten kann so etwas eigentlich nur passieren, wenn man nicht "planvoll" arbeitet oder in einem vorhandenen Programm (fremdes oder auch eigenes) ändert/erweitert, ohne das "DrumHerum" zu beachten.
Das Prüfen von Querverweisen kann gelegentlich in Arbeit ausarten, zugegeben. Man darf es deshalb aber nicht als "unangemessen" - weil zu aufwändig - abstempeln.
Eine ungewollte DoppelBelegung innerhalb eines einzigen (vielleicht sogar überschaubaren) Bausteins spricht m.E. eher für die o.g. Hektik beim Denken als Ursache.
DoppelBelegungen von "FlankenMerken" halte ich bei Verwendung der heutigen, "vorgefertigten" FlankenErkennungsHilfsMittel deshalb für sehr wahrscheinlich, weil ihre Bedeutung/Wirkungsweise anscheinend gar nicht mehr genügend vermittelt bzw. "anwenderseitig" verstanden wird.


----------



## waldy (17 August 2022)

Punkt A - vielen Dank für Hinweise.

Punkt B - 


Heinileini schrieb:


> Prüfen von Querverweisen


bei Querverweise es wird nicht gezeigt DoppelBelegungen von "FlankenMerken", wenn  doppelte Merken ist in anderem Baustein geschrieben wurde.

Punkt C - bis jetz bin ich immer noch nach Lösung. Vielleicht es hilft Belegungsplan immer offen halten und jedes Mal aktualisieren.

Gruß


----------



## PN/DP (17 August 2022)

waldy schrieb:


> bei Querverweise es wird nicht gezeigt DoppelBelegungen von "FlankenMerken", wenn  doppelte Merken ist in anderem Baustein geschrieben wurde.


 Das sollte aber angezeigt werden. Hast Du einen Bug entdeckt? 
Zeige uns mal ein Bild davon.

Harald


----------



## DeltaMikeAir (17 August 2022)

DeltaMikeAir schrieb:


> Geht es um TIA oder Step7 Classic?


??

Ein Screenshot wäre hilfreich.


----------



## NBerger (17 August 2022)

> Wenn in einem FB Baustein in zwei verschiedenen SR  Glieder unter gleiche Merker z.B. M50.0 geschrieben wurde.
> 
> Und dabei kommt keine Fehlermeldung.
> 
> Wie gehen Sie vor damit?


Wenn's nach mir ginge: *Lebenslanges Berufsverbot! *

Und das nicht wegen der Doppeltverwendung sondern wegen des Merkers in einem FB


----------



## DeltaMikeAir (17 August 2022)

waldy schrieb:


> bei Querverweise es wird nicht gezeigt DoppelBelegungen von "FlankenMerken", wenn doppelte Merken ist in anderem Baustein geschrieben wurde.


Das halte ich für ein Gerücht. Die Querverweisliste kennt außerdem keine Flankenmerker. Merker ist Merker, egal für was man ihn verwendet.


----------



## rostiger Nagel (17 August 2022)

NBerger schrieb:


> Wenn's nach mir ginge: *Lebenslanges Berufsverbot! *
> 
> Und das nicht wegen der Doppeltverwendung sondern wegen des Merkers in einem FB


Er ist sich da ja noch garnicht mal so sicher,
es kann auch noch ein OB werden.

Trotzdem ein Berufsverbot währe doch sehr angebracht,





waldy schrieb:


> Wenn in einem *FB* Baustein in zwei verschiedenen SR  Glieder unter gleiche Merker z.B. M50.0 geschrieben wurde.





waldy schrieb:


> Ich habe in Baustein *FC* in verschiedenen Netzwerk bei verschiedenen SR Glieder gleiche Merker M50.0 benutz.


----------



## DeltaMikeAir (17 August 2022)

rostiger Nagel schrieb:


> Trotzdem ein Berufsverbot währe doch sehr angebracht,


Das Berufsverbot kann man sich in dem Fall denke ich mal sparen.


----------



## rostiger Nagel (17 August 2022)

DeltaMikeAir schrieb:


> Das Berufsverbot kann man sich in dem Fall denke ich mal sparen.


Haste auch wieder recht, bei einen Probetag am SR-Glied 
gescheitert und das als SPS-Forum Power User.


----------



## waldy (17 August 2022)

DeltaMikeAir schrieb:


> Das halte ich für ein Gerücht. Die Querverweisliste kennt außerdem keine Flankenmerker. Merker ist Merker, egal für was man ihn verwendet.


Es ist einfach zum testen.
Anleitung für Delta:

Erstellen eine Programm in TIA, mit gleicher SR Merker in zwei verschiedenen Bausteinen .
Und dann Taste F11 Tippen.
Da muss was raus kommen.

Gruß


----------



## DeltaMikeAir (17 August 2022)

waldy schrieb:


> Anleitung für Delta:


Anleitung für Waldy:
Software einmal übersetzen ( gesamt, nicht nur Änderungen ) und ggf. mal die Querverweisliste neu generieren:


> Sie können auch den Befehl über *"Extras" > "Einstellungen" > "Allgemein" > "Querverweise" aufrufen und ausführen*. Daraufhin öffnen sich die Einstellungen zum TIA Portal unter "Querverweise". Klicken Sie auf die angezeigte Schaltfläche "Querverweisinformationen neu erstellen", um den Vorgang zu starten.



PS:
Merker in mehrfach aufgerufenen FBs?
Hier solltest du einmal ansetzen und konform arbeiten.


----------



## DeltaMikeAir (17 August 2022)

Ein Screenshot vom Code wäre immer noch hilfreich. Welche TIA Version ist es denn?

Gruß


----------



## Blockmove (17 August 2022)

Wieder so ein typischer waldy-Thread.

Nach all den Jahren sollte doch wenigstens die grundlegende Arbeitsweise einer SPS klar sein und Grundkenntnisse von Classic / TIA verhanden sein ...
Irgendwie muss ich mich gerade zusammenreißen damit ich meine Mod-Rechte nicht missbrauche und auf "Thema löschen" und "Mitglied sperren" klicke.


----------



## DeltaMikeAir (17 August 2022)

Blockmove schrieb:


> Wieder so ein typischer waldy-Thread.


Na sein Titel kommt ja nicht von ungefähr "Unterhalter für...."

Ich hoffe ich konnte mit meiner Antwort #27 weiterhelfen aber vermutlich ist alles für die Katz wie man hier sagt.


----------



## Blockmove (17 August 2022)

DeltaMikeAir schrieb:


> Na sein Titel kommt ja nicht von ungefähr "Unterhalter für...."


Vielleicht sollte ich mal Dschungelkamp, Sommerhaus der Stars oder was es sonst noch so in der Art gibt anschauen um mich abzuhärten.


----------



## escride1 (17 August 2022)

🛑
Bitte nicht zu schnell in diesem Falle stempeln!

TIA erstellt keine Querverweise für FB-Murks, das ist schon länger so, das ist eines der Probleme die ich in dutzenden Anlagen auffinde (ich übernehme viele Fremdanlagen bei denen die eigentlichen Hersteller insolvent gehen oder werde zur Hilfestellung hinzugerufen und finde leider sowas häufiger).
Siemens weiß es und als Antwort kommt nur "Stimmt, geben wir weiter an die Entwicklung.", habe das "Phänomen" schon mit V13 gehabt.

Das es bis heute nicht verschwunden ist gibt mir aber nicht mal zu denken. Siemens will die Merker loswerden und auch ich nutze ausschließlich Merker für schnelle Schmieränderungen zum Testen und die System- und Taktmerker, sonst kommt alles in DBs (in diesem Falle IDB).


Also im Klartext:

Ein Baustein (FB) mit Merker:



Hier wird er aufgerufen, zwei verschiedene DBs (im OB1):




Der Projekt wurde komplett übersetzt:




Die Querverweise wurden neu erstellt:




Und hier die Querverweisliste:



Zusammenfassung: FB-Murks wird nicht einzeln aufgeführt.

Also würde ich dazu dann hier ansetzen:


NBerger schrieb:


> Und das nicht wegen der Doppeltverwendung sondern wegen des Merkers in einem FB


Dem stimme ich zu, also der Rüge nen Merker im FB zu nutzen.


----------



## PN/DP (18 August 2022)

escride1 schrieb:


> TIA erstellt keine Querverweise für FB-Murks
> (...)
> Hier wird er aufgerufen, zwei verschiedene DBs (im OB1):
> (...)
> Zusammenfassung: FB-Murks wird nicht einzeln aufgeführt.


???  Was hast Du erwartet?

Die Querverweise sind doch korrekt. In dem FB10 ist jeweils nur eine Verwendungstelle für die Merker M100.x. Es werden nicht mehr Verwendungsstellen, wenn der FB10 mehrmals aufgerufen wird. Wenn ein FC mit direktem Zugriff auf einen Merker mehrmals aufgerufen wird, dann ist das auch nur eine Verwendungsstelle. Oder wenn auf einen Merker in einer Schleife zugegriffen wird: auch das ist nur eine Verwendungsstelle.

Harald


----------



## escride1 (18 August 2022)

@PN/DP
mhm?



Ist es bei Dir/Euch so das die Verwendungsstelle im FC nur einmal angezeigt wird wenn er mehrfach aufgerufen wird?


----------



## DeltaMikeAir (18 August 2022)

escride1 schrieb:


> Und hier die Querverweisliste:


Passt doch, was hast du denn erwartet?

Gerade gesehen, Harald hat das ja auch schon ganz passend erklärt:


> ???  Was hast Du erwartet?
> 
> Die Querverweise sind doch korrekt. In dem FB10 ist jeweils nur eine Verwendungstelle für die Merker M100.x. Es werden nicht mehr Verwendungsstellen, wenn der FB10 mehrmals aufgerufen wird. Wenn ein FC mit direktem Zugriff auf einen Merker mehrmals aufgerufen wird, dann ist das auch nur eine Verwendungsstelle. Oder wenn auf einen Merker in einer Schleife zugegriffen wird: auch das ist nur eine Verwendungsstelle.


----------



## rar-101 (18 August 2022)

Das mit der Doppelbelegung habe das früher unseren Lehrlingen so erklärt:



> Schreibe eine Einkaufsliste:
> 5 Bananen
> 12 Eier
> 3 Tüten Milch
> ...



Die SPS macht nur was du ihr *zuletzt* befiehlst!

Bringst du Bananen mit oder nicht?!? 
Wenn das nicht gefruchtet hat hab ich die "Befehle" mit einem Blatt Papier von oben nach unten, Zeile für Zeile verdeckt...


----------



## waldy (18 August 2022)

Hallo zusammen

An escride1 vielen Dank.

Das ist wirklich gute Antwort. Es sieht man, dass einer hat schon Gute Erfahrung mit SPS Kenntnisse 

Und die Banda hier 
@delta
@Block
@Heini

ich frage mich, ob sie haben Sie wirklich Ahnung wie funktioniert SR in TIA 

Die Leute fallen für mich inrgendwie in als Anfänger Bereich 


Gruß


----------



## DeltaMikeAir (18 August 2022)

waldy schrieb:


> Hallo zusammen
> 
> An escride1 vielen Dank.
> 
> ...


Waldy, sei du einfach froh dass Dummheit nicht weh tut. Witzfigur


----------



## Blockmove (18 August 2022)

Waldy,
wenn du User mit dem @-Zeichen ansprichst, dann sollten es schon die richtigen sein.
Der User delta ist nicht der selbe wie DeltaMikeAir, genauso wenig wie Heini und Heinileini.


----------



## waldy (18 August 2022)

DeltaMikeAir schrieb:


> sei du einfach froh dass Dummheit nicht weh tut. Witzfigur


du hast es vergessen, Nutzungsbedingungen dabei einfügen.


----------



## PN/DP (18 August 2022)

escride1 schrieb:


> @PN/DP
> mhm?
> 
> Ist es bei Dir/Euch so das die Verwendungsstelle im FC nur einmal angezeigt wird wenn er mehrfach aufgerufen wird?


Mehrmals aufrufen erhöht nicht die Anzahl Verwendungstellen.

Meinst Du vielleicht den Unterschied, daß die Verwendung des SR-Merkers bei FB nur einmal als "Lesen und Schreiben" auftaucht und bei FC zweimal? Das ist tatsächlich merkwürdig. Vielleicht ist das SR in FB anders implementiert als in FC? Interessant ... oder doch eigentlich ein Bug?? Und warum als "Lesen und Schreiben"? Gibt es auch Verwendung nur "Schreiben"? Wer weiß was sich die TIA-Entwickler dabei gedacht haben...
Vielleicht haben die @waldy gefragt, wie er das möchte?? 

Bei Step7 V5.x classic erscheint der SR-Merker 2x "W" (Schreiben) in den Querverweisen, egal ob in FB oder FC.

Harald


----------



## Mrtain (18 August 2022)

Blockmove schrieb:


> Irgendwie muss ich mich gerade zusammenreißen damit ich meine Mod-Rechte nicht missbrauche und auf "Thema löschen" und "Mitglied sperren" klicke.



We wäre es mit Stummschalten


----------



## Gerhard Bäurle (18 August 2022)

Mrtain schrieb:


> We wäre es mit Stummschalten


Nicht als Moderator – die müssen da durch ...  

PS: Ich lasse ein ernsthaftes Bedauern hier.


----------



## PN/DP (18 August 2022)

PN/DP schrieb:


> escride1 schrieb:
> 
> 
> > @PN/DP
> ...


Es scheint so, als ob sich die TIA-Entwickler irgendwas dabei gedacht haben...  Allerdings nicht das gleiche wie die Step7classic-Entwickler... und auch nicht konsistent, sondern irgendwie "manipuliert/geschönt"...

In Step7 classic werden bei SR immer 2 Schreib-Zugriffe in der QVL aufgelistet (W, /S und /R), egal ob der Code in FB oder FC steht, und egal ob FUP/KOP/AWL (bei S7-300/400 steckt ja immer der gleiche AWL-Code dahinter).

In meinem TIA V15.1 wird bei SR in FUP nur 1 "Lesen und Schreiben"-Zugriff aufgelistet, in AWL aber 2 "Schreiben"-Zugriffe (ohne nähere Angabe ob S oder R). Egal ob der Code in FB/FC/OB steht. Egal ob S7-1500 oder S7-300. Wobei in S7-300 in FUP/KOP/AWL aber definitiv kein Lesezugriff stattfindet, sondern nur Schreibzugriffe: S und R !

In TIA wie in Step7 classic ist dabei egal, wie oft der Baustein aufgerufen wird. Es bleibt bei den 1 oder 2 Verwendungstellen. Logisch.

Zum Testen habe ich diesen SR-Code in FB, FC und OB verwendet, in CPU 315-2 und 1512SP, mit TIA V15.1 und Step7 V5.5:


Spoiler: SR Code





```
FUP:
           %M55.0
           "Tag_1"
         +--------+
         |   SR   |
%M55.1   |        |
"Tag_2"--|S       |
         |        |
%M55.2   |        |
"Tag_3"--|R1      |-
         +--------+


Ansicht in AWL:

      U     "Tag_2"
      S     "Tag_1"
      U     "Tag_3"
      R     "Tag_1"
      NOP 0
```




@escride1
Wieso sieht Deine QVL anders aus als bei mir, wieso sind da 2 Verwendungsstellen? Hattest Du den SR-Code da erst zweimal im NW1 und dann einmal gelöscht, aber die QVL nicht aktualisiert?
Falls das kein Fehler von Dir ist und Dein TIA immer 2 Verwendungsstellen auflistet:
Welche TIA-Version verwendest Du? Welche CPU? Ist das ein "optimierter" FC4?




waldy schrieb:


> Heinileini schrieb:
> 
> 
> > Prüfen von Querverweisen
> ...


@waldy
Wie Du siehst, wird in der QVL mit mehreren Verwendungstellen angezeigt, wenn Merker an mehreren Stellen verwendet werden.
Wie sieht Dein Code aus, der nicht in der QVL angezeigt wurde?

Harald


----------



## waldy (18 August 2022)

Hallo,
das ist Beispiel.

In Baustein FC1 ist SR M50.0  eigesetzt.

Dann als Test habe ich in FB1 und FC6 gleiche Merker rein geschrieben.
Und dann auf Programm mit Maus markiert und Taste F11 getippt.

Da kommen Querverweisung nur von Baustein FC1.

Gruß


----------



## de vliegende hollander (18 August 2022)

waldy schrieb:


> Hallo,
> das ist Beispiel.
> 
> In Baustein FC1 ist SR M50.0  eigesetzt.
> ...


klick mal direkt darauf, und dann querverweise


----------



## PN/DP (18 August 2022)

waldy schrieb:


> Und dann auf Programm mit Maus markiert und Taste F11 getippt.
> 
> Da kommen Querverweisung nur von Baustein FC1.


Hast Du uns die oberste Zeile Deiner Querverweisliste mit dem "Objekt" absichtlich unterschlagen?!
Deine Querverweisliste zeigt nur die Operanden in dem ausgewählten Baustein (vermutlich FC1) !
Vergleiche mit meinem Bild in Beitrag #44

Du musst im Programm den Operanden (M50.0) markieren (oder in Deiner QVL die Zeile: "Anlage Start SR" %M50.0) und dann F11 drücken (oder Rechtsmausklick > Querverweise). Dann bekommst Du die Querverweise für den M50.0.

Hinweis: Verwende in Variablennamen (Bezeichnern) keine Leerzeichen, sondern Unterstriche oder CamelCasing, auch wenn TIA solchen Schwachfug zulässt. In "seriösen" Programmiersprachen sind Leerzeichen da nicht erlaubt.

Harald


----------



## rostiger Nagel (18 August 2022)

Gerhard Bäurle schrieb:


> Nicht als Moderator – die müssen da durch ...
> 
> PS: Ich lasse ein ernsthaftes Bedauern hier.


Du Quälst auch Tiere oder?


----------



## Holzmichl (18 August 2022)

PN/DP schrieb:


> Zum Testen habe ich diesen SR-Code in FB, FC und OB verwendet, in CPU 315-2 und 1512SP, mit TIA V15.1 und Step7 V5.5:



Wobei man hier vielleicht zwischen AWL und FUP/KOP doch einen Unterschied hat:

Das "S" und "R" in AWL entspricht dem "S" und "R" in FUP/KOP, also der kleinen einzelnen Zuweisung.
Das "SR" oder "RS" könnte am "Ausgang" der Anweisung "Lesend" für eine weitere Bedingung verwendet werden. Also "Lesen und Schreiben"...

Wo ich aber mitgehe ist die Aussage:


PN/DP schrieb:


> Es scheint so, als ob sich die TIA-Entwickler irgendwas dabei gedacht haben...  Allerdings nicht das gleiche wie die Step7classic-Entwickler... und auch nicht konsistent, sondern irgendwie "manipuliert/geschönt"...



Das Problem von Waldy mal aussen vor - das ist reine "Unwissenheit"...


----------



## PN/DP (18 August 2022)

Holzmichl schrieb:


> Das "SR" oder "RS" könnte am "Ausgang" der Anweisung "Lesend" für eine weitere Bedingung verwendet werden. Also "Lesen und Schreiben"...


Wird es hier aber nicht (nur S + R). Daher sollte (mindestens bei der S7-300) nicht "Lesen und Schreiben" da stehen, wenn der Ausgang gar nicht verwendet/gelesen wird.

Wenn man nun am Ausgang Q des SR noch eine Zuweisung ( = ) zu einer Variable hinzufügt, dann taucht bei Step7 classic eine weitere (dritte) Verwendungstelle "Lesen" (R) auf. Korrekt! *Bei TIA V15.1 erscheint die aber nicht!* Also egal ob der Ausgang des SR verwendet wird oder nicht, TIA listet da nur eine einzige Verwendungstelle mit "Lesen und Schreiben" auf. Ich schrieb doch, die QVL in TIA wird nach irgendwelchen verwirrenden (verwirrten?) Ideen der TIA-Entwickler "geschönt" 🤷‍♂️

Harald


----------



## nade (18 August 2022)

Mhm.. Merker doppelt verwendet habe ich auch schon, aber das war des Kunden undeutliche Aussage wie die Ansteuerung laufen soll, und welche ;eldungen. Also 3 FC´s und eben nur den benötigten aufgerufen. Hab mir da zuerst eine Symboltabelle angelegt und Merker bei Verwendung auch gleich benannt. Dann fällt einem schon auf ob verwendet oder nicht.


----------



## Heinileini (18 August 2022)

waldy schrieb:


> Und die Banda hier
> @delta
> @Block
> @Heini
> ...


Moin waldy,
ich weiss nicht warum, aber ich fühle mich angesprochen und antworte deshalb (nur für mich):
Ich habe kein TIA,
ich habe keine Erfahrung mit TIA,
ich habe keine Ahnung von TIA,
ich schätze mich selbst nicht einmal als TIA-Anfänger ein.


waldy schrieb:


> In Baustein FC1 ist SR M50.0  eigesetzt.
> Dann als Test habe ich in FB1 und FC6 gleiche Merker rein geschrieben.
> Und dann auf Programm mit Maus markiert und Taste F11 getippt.
> Da kommen Querverweisung nur von Baustein FC1.


Das finde ich in der Tat merkwürdig. Wenn es angeglich an einer unterschiedlichen Behandlung von FC und FB liegen soll, dann müsste zumindest auch noch FC6 in den Querverweisen auftauchen.
Merkwürdig finde ich auch, dass mir (dem TIA-Laien) TIA in dem ScreenShot nicht sagt, welche QuerVerweise aufgelistet werden. Ob nur die Verwendungstellen in einem bestimmten (von Dir markierten/ausgewählten?) Baustein oder die der kompletten Software. Ich weiss auch nicht, ob TIA bei einer kompletten Liste alle vorhandenen Bausteine berücksichtigt oder nur die, die in dem Programm auch aufgerufen werden und kann mich da nur auf Haralds Aussage verlassen.
Aber Du, @waldy, müsstest eigentlich wissen, welchen Umfang an Bausteinen die QVL enthält und auch, in welchem Stadium Deiner Experimente die QVL berechnet wurde.

Die Themen "Mehrfache Zuweisungen an ein und dieselbe Variable" und "Benutzung einer Variablen in verschiedenen Bedeutungen" beinhalten aber mehr als nur die Frage, welche Variable wird wo und wie verwendet?
"Richtig oder falsch", "absichtlich oder versehentlich", "grammatisch OK" oder auch "semantisch schlüssig". Man kann genüsslich darüber streiten, ob ein Compiler an solchen Stellen eine Warnung ausgeben soll oder nicht. 
Ein "Zuwenig" an WarnHinweisen findest Du nicht gut - kann ich verstehen. Aber würdest Du in Kauf nehmen wollen, wenn ein Compiler, weil er für die Erkennung bestimmter Konstellationen "sensibilisiert" worden ist, plötzlich an anderen Stellen wesentlich "kritischer" wird und dort zig Warnungen ausspricht, die Du als überflüssig empfindest?

Der Compiler muss Dein Programm nicht verstehen und nachvollziehen (im Sinne von simulieren) können. Du kannst gute Gründe haben, etwas so oder anders zu programmieren. Du kannst auch gute Gründe haben, etwas in einer Art zu programmieren, von der alle Welt behauptet "so etwas tut man nicht".
Der Compiler kann nicht Deine Gedanken lesen (das fällt ja sogar uns schon immer so schwer  ) und nicht alle Deine Absichten, Gedankensprünge oder Nachlässigkeiten durchschauen.
Was passieren würde, wenn er es könnte, will ich lieber nicht wissen.


----------



## DeltaMikeAir (18 August 2022)

Heinileini schrieb:


> Ich habe kein TIA


Er anscheinend schon


Heinileini schrieb:


> ich habe keine Erfahrung mit TIA


Er noch weniger


Heinileini schrieb:


> ich habe keine Ahnung von TIA,


Er noch weniger


Heinileini schrieb:


> ich schätze mich selbst nicht einmal als TIA-Anfänger ein


Er hält sich für einen Programmierer-Profi.

Das Thema endet mal wieder so wie es sich vermutlich alle langjährigen hier gedacht haben. In der Sinnlosigkeit mit etwas Unterhaltungsfaktor. Alle Klischees von ihm wurden mal wieder bestätigt. Nächste Woche kommt wieder ein Thema von ihm "Suche Stelle als Programmierer". Und halbjährlich grüßt das Murmeltier. Schönen Abend dir, Heinrich 😀


----------



## Gerhard Bäurle (18 August 2022)

DeltaMikeAir schrieb:


> Das Thema endet mal wieder so wie es sich vermutlich alle langjährigen hier gedacht haben. In der Sinnlosigkeit mit etwas Unterhaltungsfaktor. Schönen Abend dir, Heinrich 😀


Es ist doch eine spannende Diskussion entstanden, obwohl der Fragesteller 1. die notwendigen Informationen nicht rausrückt und 2. auch noch die Leute beleidigt, die scheinbar aus reinem Mitleid antworten. Er versteht das Thema in der Tiefe gar nicht.  🤷‍♂️


----------



## rostiger Nagel (18 August 2022)

DeltaMikeAir schrieb:


> Nächste Woche kommt wieder ein Thema von ihm "Suche Stelle als Programmierer".


Hier wird gerade gesucht https://www.uhltronix.de/karriere


----------



## DeltaMikeAir (18 August 2022)

rostiger Nagel schrieb:


> Hier wird gerade gesucht https://www.uhltronix.de/karriere


Davor sollte man aber sämtliche Betriebshaftpflichtversicherungen mal durchgehen und ggf. die Deckungssummen erhöhen.


----------



## rostiger Nagel (18 August 2022)

DeltaMikeAir schrieb:


> Davor sollte man aber sämtliche Betriebshaftpflichtversicherungen mal durchgehen und ggf. die Deckungssummen erhöhen.


Unwichtig, in erster Linie wird man starke Schmerzmittel oder Drogen benötigen.


----------



## Blockmove (18 August 2022)

rostiger Nagel schrieb:


> Hier wird gerade gesucht https://www.uhltronix.de/karriere


Ich glaub da würde @Markus auf eine Bewerbung sehr einfühlsam und ruhig und gelassen reagieren


----------



## DeltaMikeAir (18 August 2022)

Blockmove schrieb:


> Ich glaub da würde @Markus auf eine Bewerbung sehr einfühlsam und ruhig und gelassen reagieren


Ablage P

Waldy sollte sie persönlich abgeben. Duck und weg


----------



## Onkel Dagobert (18 August 2022)

NBerger schrieb:


> Wenn's nach mir ginge: *Lebenslanges Berufsverbot! *
> 
> Und das nicht wegen der Doppeltverwendung sondern wegen des Merkers in einem FB





escride1 schrieb:


> ... Dem stimme ich zu, also der Rüge nen Merker im FB zu nutzen.



Upps, warum soll man denn in einem FB keine Merker verwenden?


----------



## waldy (18 August 2022)

Heinileini schrieb:


> Moin waldy,
> ich weiss nicht warum, aber ich fühle mich angesprochen und antworte deshalb (nur für mich):


Hallo Heinileini,
vielen Dank für die Antwort.
Eigentlich ich habe nicht schlechtes damit gemeint.
Ich habe es nur vergleichen, Sie haben alle bei erste Beiträge so vieles geschrieben - nur das war keine Hilfe auf die Frage.

Besonders Delta steck überall seine Nutzungsbedingungen. Ich weiß nicht, geht er ins Bett schlafen auch mit seinem Nutzungsbedingungen?

Sonst ich lese auch mit Interesse deine Beträge.

Gruß


----------



## Heinileini (19 August 2022)

PN/DP schrieb:


> Es scheint so, als ob sich die TIA-Entwickler irgendwas dabei gedacht haben...  Allerdings nicht das gleiche wie die Step7classic-Entwickler... und auch nicht konsistent, sondern irgendwie "manipuliert/geschönt"...


Ich finde es weder überraschend noch verwerflich, wenn verschiedene QuerVerweisListen scheinbar unterschiedliche Aussagen zur VerwendungsArt und zu den VerwendungsStellen von Variablen machen. Nein, keine Sorge, ich bin jetzt nicht völlig durchgeknallt durch den Einfluss der Hitze (oder dieses Threads).
QuerVerweisListen können extrem umfangreich werden, wenn sie detaillierte Angaben lückenlos enthalten sollen und können relativ "überschaubar" bleiben, wenn sie sich auf das "Wesentliche" beschränken.
So wundert es mich nicht, wenn versucht wird, die Information zu "komprimieren", ohne deshalb irgendeinen Unsinn auszusagen.
Verschiedene Stufen der Komprimierung sind denkbar und evtl. auch "brauchbar", wenn "ein Entwickler sich etwas dabei gedacht hat".
Dazu muss man aber wohl die Bedeutung der Begriffe "gelesen" und "geschrieben" je nach Anwendung auf welchen KompressionsGrad flexibel anpassen bzw. zu interpretieren wissen!
Z.B. bei S5 hatte die Aussage "geschrieben" eine höhere Priorität als die Aussage "gelesen". Wurde eine Variable in einem Baustein geschrieben, so stand es so in der QVL und die Aussage "wird auch zusätzlich noch gelesen" gab es nicht - weil irrelevant bzw. nicht ganz so wichtig.
Unter S5 hatten wir die SiemensFunktionalitäten QVL und BelegungsPlan mit unserer "hausgemachten" Funktionalität ergänzt, für jeden OB, PB, SB, FB, FX ein eigenes QV-Listchen zu produzieren, das innerhalb des Bausteins detailliert erkennen liess, unter welcher BausteinAdresse die Variablen wie verwendet werden (mit Unterscheidung von =, R, S und "gelesen"). Wir haben nur in AWL programmiert, deshalb war uns allein die Adresse wichtig und die NetzwerkNr nicht. Grobe Orientierung in der globalen QVL und Detaillierung in der QVL des Bausteins, das war gut zu handhaben.


----------



## PN/DP (19 August 2022)

Ich bin halt die Referenzdaten von Step 7 classic gewöhnt/verwöhnt, und von der Querverweisfunktion von TIA ziemlich enttäuscht. 

Harald


----------



## Heinileini (19 August 2022)

PN/DP schrieb:


> Ich bin halt die Referenzdaten von Step 7 classic gewöhnt/verwöhnt, und von der Querverweisfunktion von TIA ziemlich enttäuscht.


Das ist doch völlig normal, wenn man seine Präferenzen hat, Harald!  Dein Urteil dürfte nicht das Verkehrteste sein.
Ich kann mir kein Urteil erlauben, was hinter etwaigen Unterschieden zwischen z.B. TIA und S7 classic steckt.
Vielleicht bei TIA mehr gute Absicht als gute Umsetzung? Oder einfach nur Gedankenlosigkeit? Oder zuviele Köche?


----------



## escride1 (19 August 2022)

Oha, da ist man einmal ne Weile unabkömmlich und dann kommen dutzende Beiträge.
Ich muss mir hier erst noch alles durchlesen, will aber schon mal einzeln anfangen weil mir da grade was richtig aufstößt:



waldy schrieb:


> Hallo zusammen
> 
> An escride1 vielen Dank.
> 
> ...



@waldy
Ich bin ein wenig hin und hergerissen und innerlich ziemlich sauer.

Selbstverständlich haben die, die Du ansprichst Ahnung von SR-Gliedern. Die Querverweisliste hat auch absolut gar nichts damit zu tun. Du beschuldigst sie als "Anfänger" weil deren saloppe Antworten auf Deine Frage Dir nicht gefallen.
Warum Du sie hier dermaßen beleidigst entzieht sich meiner Kenntnis, denn immerhin haben sie Dir über viele Jahre hinweg immer wieder, ohne merklichen Lerneffekt Deinerseits, geholfen.

Und nur weil ich in meinem Beitrag etwas aufzeige und ausnahmsweise einmal widerspreche heißt es nicht das Du noch mit in mein Boot passt und beim Rudern helfen darfst. Mein Boot kann man nur solo bedienen, da ist kein Platz frei, such Dir gefälligst Dein eigenes!
Wir beide sind und werden auch keine Freunde werden, Dein Ton deutet das an.

Ob ich oder irgendwer anderes Ahnung von etwas hat oder nicht entzieht sich Deiner Kenntnis und ich vermag auch gerade nicht zu beurteilen, obwohl ich es im Kopf schon tue, ob Du dazu überhaupt in der Lage bist.
Deine Aussage diesbezüglich liest sich wie die ganzen Rezensionen der privaten Produkttester die überhaupt keinen Peil von einer Materie haben aber ihren Senf als professionellen Test oder bei Filmen sogar als professionelle Kritik abgeben müssen.

Du solltest Deine Aussagen nochmal überdenken.


----------



## escride1 (19 August 2022)

PN/DP schrieb:


> Mehrmals aufrufen erhöht nicht die Anzahl Verwendungstellen.
> 
> Meinst Du vielleicht den Unterschied, daß die Verwendung des SR-Merkers bei FB nur einmal als "Lesen und Schreiben" auftaucht und bei FC zweimal?





PN/DP schrieb:


> Das ist tatsächlich merkwürdig. Vielleicht ist das SR in FB anders implementiert als in FC? Interessant ... oder doch eigentlich ein Bug?? Und warum als "Lesen und Schreiben"? Gibt es auch Verwendung nur "Schreiben"? Wer weiß was sich die TIA-Entwickler dabei gedacht haben...


Genau. Das ist ein Umstand der mir nicht gefällt und bei einem Rückruf durch Siemens nach einem SR als nicht erwünscht eingestuft wurde. Allerdings bereits bei V13, mein Screenshot ist von:


Daher zieht sich das für mich durch mehrere TIA-Versionen.
Ich bin aber auch am Überlegen ob es das auf all meinen Geräten tut. Denn der private Rechner bei dem das so ist hat alle TIA-Versionen beginnend ab V13 mit Win7 inklusive Windows-Upgrade von 7 auf 10 durchgemacht. Das Laptop aber hat nur 13, 15, 15.1, 16 auf einem frisch installierten Windows 10 installiert bekommen. Ich schau später nochmal ob das einen Unterschied macht.

Was eine Verwendungsstelle ist, ist mir bekannt. Wäre es so das wie in meinem Beispiel im FC der Merker nicht doppelt aufgeführt würde sondern es sich verhält wie im FB, dann wäre es kein Problem. Aber das unterschiedliche Verhalten deutet ja eben auf einen Fehler hin.

Ich muss zugeben das ich die TIA-Querverweisliste auch anders deute als vermutlich von Siemens gewünscht.
So sehe ich den Fehler darin das es im FB nicht penibel aufgeführt wird. Ihr seht den Fehler das es im FC aufgeführt wird wenn ich es richtig verstanden habe.

Dabei muss ich nun aber dann sagen das Siemens es selbst durcheinanderbringt oder durch wage Bezeichnungen zumindest mich verwirrt.
So schreibt Siemens "Querverweisliste" sowie "Zeige alle Objekte". Da erwarte ich tatsächlich alle Objekte die da irgendwie in der Datenbank dran hängen.
Würde das ganze aber zum Beispiel Verwendungsstellenliste heißen, so würde ich erwarten das der FB und FC nur einmal auftaucht, ist ja nur einmal da. Ein Mehrfachaufruf würde daran nichts ändern.



PN/DP schrieb:


> Bei Step7 V5.x classic erscheint der SR-Merker 2x "W" (Schreiben) in den Querverweisen, egal ob in FB oder FC.


Auf meinem privaten Rechner habe ich kein Classic, habe das da aber auch noch nie beobachtet und kann selbst den Vergleich nicht ziehen.
Aber Du meinst das im Classic ein FC/FB der zwei mal aufgerufen wird auch zwei mal in den Referenzen auftaucht? Da fragt man sich was Siemens nun als Fehler einstuft ^^.



PN/DP schrieb:


> @escride1
> Wieso sieht Deine QVL anders aus als bei mir, wieso sind da 2 Verwendungsstellen? Hattest Du den SR-Code da erst zweimal im NW1 und dann einmal gelöscht, aber die QVL nicht aktualisiert?
> Falls das kein Fehler von Dir ist und Dein TIA immer 2 Verwendungsstellen auflistet:
> Welche TIA-Version verwendest Du? Welche CPU? Ist das ein "optimierter" FC4?


Okay, es ist bei Dir anders. Das ist wirklich seltsam, erklärt für mich dann aber auch warum Ihr die Funktionsweise der QVL anders seht wie ich.
Ich habe in meinem Privatprojekt schnell einen FC erstellt, SR eingefügt, Merker dran, im OB1 in zwei verschiedenen Netzwerken den FC aufgerufen, alles übersetzt und nochmal die QVL über Einstellungen->Allgemein neu erstellen lassen (wobei ich mir unsicher bin ob da wirklich eine Funktion hintersteckt). Gelöscht habe ich nichts, habe das Projekt nach dem Screenshot einfach geschlossen und nicht speichern geklickt.

Die TIA-Version:


Das ist aber auch schon bei Vorgängerversionen bei mir so gewesen.
Die CPU wäre eigentlich irrelevant da ich ja nicht geladen habe. Ob TIA unterschiedlich bei 15/12xx auswertet weiß ich nicht.
Projektiert ist jedenfalls : CPU 1212C AC/DC/Rly 6ES7 212-1BE40-0XB0 V4.4

Ja die Bausteine sind optimiert. Ich nutze ausschließlich einen einzigen DB als nicht-optimierten bei 12xx/15xx-CPUs für das Bitmeldeverfahren.



-------------

Okay, bei den anderen Beiträgen sehe ich erstmal das sich die QVL zwischen TIA und Classic unterscheiden. Was nun schicker ist bleibt jedem selbst überlassen zu entscheiden.
Für meinen Teil hätte ich es gerne so das TIA im gesamten Code nach Aufrufpfaden durchgeht wo was Objekt genutzt wird und dieses dann konsequent 20 mal auflistet wenn 20 mal der gleiche FB, FC, OB aufgerufen werden. Wegen meiner eine Loop-Erkennung mit Abbruchregel und Markierung, gerne auch das nur eine aufklappbare Zeile dargestellt wird für die einfache Darstellung. Aber "Zeige alle Objekte" ist für mich eindeutig so auszulegen das jeder Aufruf zählen sollte.
Die Sache mit Case/Schleife würde ich dann aber eben so behandeln das nicht jeder Durchgang gezählt würde, das wäre ja wirklich eine Katastrophe.




Heinileini schrieb:


> Verschiedene Stufen der Komprimierung sind denkbar und evtl. auch "brauchbar", wenn "ein Entwickler sich etwas dabei gedacht hat".


Das wäre ein Problem. Siemens schreibt nicht immer dazu wie sie sich eine Funktion vorgestellt haben. Daher interpretiert man gerne was "falsches" aus einer fehlerhaften Funktion.



PN/DP schrieb:


> Ich bin halt die Referenzdaten von Step 7 classic gewöhnt/verwöhnt, und von der Querverweisfunktion von TIA ziemlich enttäuscht.


Im Gesamten gesehen tendiere ich aber auch gerne dazu die Referenzen von Classic als schicker zu beurteilen. Klar, in TIA ist alles in einem Fenster, lässt sich abkopplen, blabla. Nichtsdestotrotz ist das markieren eines Objektes und CRTL-ALT-Q schneller als das klicken in verschiedenen Fenstern. Die einmal geöffnete Referenzliste bleibt so wie sie ist bis ich sie neu generiere. Finde ich auch schöner wenn ich ein Programm umarbeiten muss. Denn so kann ich nacheinander alles durchgehen. In TIA wird immer sofort neu berechnet, jedes mal suchen wo man nun zuletzt war ist nervig.


----------



## PN/DP (19 August 2022)

escride1 schrieb:


> Du meinst das im Classic ein FC/FB der zwei mal aufgerufen wird auch zwei mal in den Referenzen auftaucht?


Nein. Egal wie oft ein Baustein aufgerufen wird, die Verwendungsstelle (z.B. eines Merkers) in dem Baustein ist ja nur einmal vorhanden und wird daher auch nur einmal aufgelistet. Sollen alle Aufrufstellen des Bausteins angezeigt werden, dann muß man die Querverweise für den Baustein aufrufen.



escride1 schrieb:


> Die CPU wäre eigentlich irrelevant da ich ja nicht geladen habe.


Der CPU-Typ ist insofern relevant daß z.B. die SR-Box unterschiedlich implementiert sein kann.

Die TIA-QVL behauptet bei S7-1200/1500, bei einem SR wäre der Zugriff auf die SR-Variable (Q) "Lesen und Schreiben". Das läßt mich vermuten, daß das SR vielleicht etwa so implementiert ist:

```
Q := (Q OR S) AND NOT R1;
```
Es könnte aber auch sein, daß das SR wie bei S7-300/400 implementiert ist, wo nur bedingt gesetzt oder rückgesetzt wird ohne Q zu lesen:

```
IF S THEN Q := TRUE; END_IF;
IF R1 THEN Q := FALSE; END_IF;
```
In dem Fall sollte aber der Zugriff als "Schreiben" klassifiziert sein (nicht "Lesen und Schreiben" !). Aus multitasking-Gesichtspunkten sollten da korrekterweise sogar 2 "Schreiben"-Zugriffe aufgelistet werden (wie bei Step7 classic).

Bei S7-300/400 ist das SR so implementiert:

```
U     S
      S     Q
      U     R1
      R     Q
      NOP 0
```
Da behauptet die TIA-QVL ebenfalls daß der Zugriff auf die SR-Variable (Q) "Lesen und Schreiben" wäre, obwohl da definitiv Q nicht gelesen wird. (Step7 classic listet die Verwendung als 2 "Schreiben"-Zugriffe)



escride1 schrieb:


> Für meinen Teil hätte ich es gerne so das TIA im gesamten Code nach Aufrufpfaden durchgeht wo was Objekt genutzt wird und dieses dann konsequent 20 mal auflistet wenn 20 mal der gleiche FB, FC, OB aufgerufen werden.


Und worauf sollte die "Verwendungsstelle" dann verweisen? 20 mal auf die selbe Stelle im FC/FB? Oder zur Unterscheidung zusätzlich noch den Aufrufpfad (ab OBx) mit angeben? Ich denke, das wäre kaum praktikabel. Step 7 classic macht das ebenfalls nicht. Will man die Aufrufpfade wissen, dann muß man die Verwendungstellen des FC/FB auflisten lassen.

Harald


----------



## escride1 (19 August 2022)

PN/DP schrieb:


> Nein. Egal wie oft ein Baustein aufgerufen wird, die Verwendungsstelle (z.B. eines Merkers) in dem Baustein ist ja nur einmal vorhanden und wird daher auch nur einmal aufgelistet. Sollen alle Aufrufstellen des Bausteins angezeigt werden, dann muß man die Querverweise für den Baustein aufrufen.


Okay, habe es eben anders verstanden und war mir da unsicher.
So wie Du es schreibst macht es Sinn. So würde ich das auch unterschreiben, wenn es denn wirklich immer so wäre, was, zumindest bei einem meiner Rechner, ja nicht so ist.
Auf dem aktiven Laptop den ich vorhin mal nutzen musste habe ich es nur kurz probiert und dort wurde es wie erwartet nur einmal aufgeführt.
Ich überlege ob das Windows-Upgrade da eine Rolle spielen kann. Auf einen Backup-Laptop habe ich frühestens Dienstag Zugriff.


Über die Implementierung der Funktionen mache ich mir erstmal keine Gedanken. Ich nehme es hin das es hier Lesen und Schreiben und dort Schreiben Schreiben ist, wobei ich die Unterscheidung Lesen und Schreiben für SR, Schreiben für direkte Zuweisungen und Lesen eben für Lesen schon sehr übersichtlich finde.
Im Kopf habe ich es nicht wie Classic es interpretiert oder darstellt. Bei der Umsetzung der internen Funktionen ist mein Interesse auch relativ gering. Es spielt keine Rolle solange es funktioniert. Geht es nicht, warum auch immer, gibt es zumeist einen Workaround den ich mir dann entweder ausdenke oder von woanders her kenne/herleite.




PN/DP schrieb:


> Oder zur Unterscheidung zusätzlich noch den Aufrufpfad (ab OBx) mit angeben? Ich denke, das wäre kaum praktikabel. Step 7 classic macht das ebenfalls nicht. Will man die Aufrufpfade wissen, dann muß man die Verwendungstellen des FC/FB auflisten lassen.


Du hast Recht, es wäre nicht praktikabel und würde die Liste schier endlos werden lassen. Wohl aber wenn in der QVL der Baustein eben unterstrichen wird und die Aufrufe dessen direkt ausklappbar wären. Damit wäre die Grundinformation auf die Zeile beschränkt, eine weiterführende Information aber direkt vorhanden sofern gewünscht.
In der Theorie ist es egal welchen man davon öffnet. Aber es ist nicht egal wenn etwas geändert wird und man deshalb ein fremdes Programm auf den Kopf stellen muss. Denn dann wird es mühsam erst hiernach, dann danach zu suchen um festzustellen ob man an dieser Stelle ansetzen kann oder mehr ändern muss oder gar einen FC zu kopieren um für nur einen Teil  eine Änderung machen zu können.
Erst nach einem Objekt wie Merker suchen um dann nochmal den Aufrufpfad zu öffnen halte ich eben für schlecht umgesetzt, denn das würde bedeuten das ich für jedes Objekt das ich überprüfen möchte auch tatsächlich jedes mal die Aufrufe prüfen müsste. Wäre doch eine doppelte Arbeit in diesem Sinne.


----------



## Heinileini (19 August 2022)

PN/DP schrieb:


> Bei S7-300/400 ist das SR so implementiert:
> 
> ```
> U     S
> ...


Es ist dort kein AWL-Befehl programmiert, der explixit liest (z.B. U Q), aber die Befehle R und S könnten dennoch "intern" den Zustand von Q lesen, um ihn bei VKE=0 unverändert zurückschreiben zu können. Alles eine Frage der Umsetzung der AWL-Befehle.
Aber ist das denn letztendlich überhaupt relevant? Wofür?
Mich interessiert a) in welchen Bausteinen wird die Variable verwendet und b) wird der Inhalt der Variablen dort möglicherweide verändert?
Wenn letzteres, dann ist ein zusätzlicher LeseZugriff "nicht unwahrscheinlich" aber auch nicht (so) relevant, wenn ich gezielt nur die Stellen im Programm suche, die mir den Inhalt "meiner" Variablen "kaputtschreiben" könnten. (Um nochmal S5 zu bemühen: "primitiv, praktisch, gut" - "gut" im Sinne von "angemessen exakt genug, also zielführend"  ).
Wenn ich innerhalb eines Bausteins eine weitere "lokale" QVL mit den DetailInformationen zur Verfügung habe, dann benötige ich diese (DetailInformationen, z.B. wo "nur lesen", wo unbedingte Zuweisung =, wo bedingte Zuweisung R, S) in der "globalen" QVL nicht und auch nicht die Anzahl der jeweiligen Zugriffe im Baustein. Bei Aufrufen in einer Schleife bringt auch die Anzahl der SchleifenDurchläufe nix, zumal ja die Anzahl der Durchläufe Daten-abhängig sein kann und somit für eine QVL "nicht nachvollziehbar" ist.
Muss man die Anforderungen an eine globale QVL wirklich so hängen? Aufwand und Nutzen stünden dann m.E. in keinem gesunden Verhältnis.

Ist ein Baustein z.B. in KOP programmiert und enthält er ausserdem vielleicht das eine oder andere Netzwerk in SCL, was hat mich dann zu interessieren, ob und welche Unterschiede zu einer FUP-Implementation des Bausteins auftreten könnten?
Das kann zwar wahnsinnig interessant sein, wenn man die Interna der SPS erforschen will, aber im Sinne einer "normalen" Verwendung einer SPS?
Leute, bleibt auf dem Teppich!



escride1 schrieb:


> Erst nach einem Objekt wie Merker suchen um dann nochmal den Aufrufpfad zu öffnen halte ich eben für schlecht umgesetzt, denn das würde bedeuten das ich für jedes Objekt das ich überprüfen möchte auch tatsächlich jedes mal die Aufrufe prüfen müsste. Wäre doch eine doppelte Arbeit in diesem Sinne.


Hmmm, ich kenne den Umgang mit diesen Mitteln in TIA nicht, aber ist die nähere Untersuchung des Aufrufpfades im Wechsel mit dem Studium der Baustein-bezogenen oder der globalen QVL denn wirklich so schlecht zu handhaben?
Ist nicht der gelegentliche Anblick des Pfades oder des "Baumes", in dem er enthalten ist, sogar sehr hilfreich, sich zu orientieren?
Bei Verwendung des "Objekts" in einem FB kontrollieren, ob die Information, die in den IDB gehört auch wirklich im IDB untergebracht ist.
Wenn nicht, müsste man doch hier den Hebel ansetzen und dies korrigieren.
Sind die Instanzen richtig zugeordnet oder nicht? Wenn nicht, besteht hier zunächst einmal HandlungsBedarf.
Oder wird in unterschiedlichen Tasks aufgerufen? Mal im OB1, mal WeckAlarm, mal im ProzessAlarm?
Da ist mit Sicherheit mit den üblichen Problemchen zu rechnen. Besteht sogesehen überhaupt ein Zusammenhang mit dem gesuchten "Objekt"?
Ich weiss nicht, ob ich in dem Hin- und Her zwischen Pfad und QVL automatisch eine doppelte Arbeit sehen würde. U.U. kommt sogar mehr dabei heraus, als das Doppelte. Aber muss man sich verleiten lassen, weniger genau hinzusehen, nur wegen vermeintlich doppelter Arbeit? Hmmm.


----------



## PN/DP (19 August 2022)

Ach Heinrich, was Du für ausreichend informativ hältst, darum geht es hier nicht. Es geht darum, daß die QVL-Funktion in TIA vieeel schlechter als in Step7 classic ist und manchmal auch verwirrend oder gar falsch. Es ist auch nicht so, daß es in der TIA-QVL die Zugriffsart nur "Schreiben" nicht gäbe, die kennt das TIA durchaus.

siehe mein Bild in Beitrag #44
Wenn das SR in AWL programmiert ist, dann listet das TIA doch tatsächlich 2 "Schreiben"-Zugriffe auf. So ist es korrekt und komform zu Step7 classic. Wenn man nun lediglich die Code-Ansicht zu FUP ändert, dann ändert sich die Verwendungsstelle zu nur 1 "Lesen und Schreiben"-Zugriff, obwohl sich (zumindest bei der S7-300) am Code gar nichts geändert hat! Was soll man davon halten? Was ist nun im Sinne von TIA korrekt? 

Wenn schon ein sehr gut nutzbares und sehr informatives QVL-System existiert (Step7 classic), warum muß es dann neu erfunden und dabei verstümmelt werden?
Warum werden heutzutage nützliche Informationen absichtlich verstümmelt und versteckt? Weil die Entwickler meinen, daß die Anwender mit den Details eh' nichts anfangen können und überfordert sind? Das Verstümmeln in TIA funktioniert nach unklaren, nicht immer gleichen Regeln, da wird nur an der Präsentation 'rumgefeilt, so lange bis es "chic" aussieht auf dem 24-Zoll-Monitor des Chef-Vorführers mit einer Mini-Anwendung. Dabei wird die Information soweit verwässert bis nur noch übrig bleibt: an dieser Stelle ist irgendwas, schau selber nach was da ist. In Step7 classic wird in der QVL direkt detailiert aufgeführt, ob das R,W,RW ist, ob S R =, ob U UN O ON ... da muß ich nicht erst den Code anspringen.

Harald


----------



## Heinileini (19 August 2022)

PN/DP schrieb:


> Wenn schon ein sehr gut nutzbares und sehr informatives QVL-System existiert (Step7 classic), warum muß es dann neu erfunden und dabei verstümmelt werden?
> Warum werden heutzutage nützliche Informationen absichtlich verstümmelt und versteckt? Weil die Entwickler meinen, daß die Anwender mit den Details eh' nichts anfangen können und überfordert sind? Das Verstümmeln in TIA funktioniert nach unklaren, nicht immer gleichen Regeln, da wird nur an der Präsentation 'rumgefeilt, so lange bis es "chic" aussieht auf dem 24-Zoll-Monitor des Chef-Vorführers mit einer Mini-Anwendung. Dabei wird die Information soweit verwässert bis nur noch übrig bleibt: an dieser Stelle ist irgendwas, schau selber nach was da ist.


Ja, Harald, ich verstehe dich ja und Deine Argumente sind - wie immer - "wasserdicht". 
Heutzutage ist das leider so: Hauptsache es sieht optisch attraktiv und nach etwas Brauchbarem aus. Funktionalität, Ergonomie u.s.w. werden aber in Wirklichkeit stiefmütterlich behandelt. Eigentlich hat Siemens das nicht nötig und arbeitet trotzdem weiter daran, seinen (vielleicht noch guten) Ruf zu ruinieren. Ja, das ist enttäuschend!

Aber, in unserem hier konkret angesprochenen SR-Beispiel:


PN/DP schrieb:


> Wenn das SR in AWL programmiert ist, dann listet das TIA doch tatsächlich 2 "Schreiben"-Zugriffe auf. So ist es korrekt und komform zu Step7 classic. Wenn man nun lediglich die Code-Ansicht zu FUP ändert, dann ändert sich die Verwendungsstelle zu nur 1 "Lesen und Schreiben"-Zugriff, obwohl sich (zumindest bei der S7-300) am Code gar nichts geändert hat! Was soll man davon halten? Was ist nun im Sinne von TIA korrekt?


Hmmm. Den "wirksamen" (AWL-)Code, der in anderen Varianten (FUP, KOP) gleichermassen dahintersteckt, muss also der FUP- oder KOP-Programmierer, der den AWL-Code nicht kennt oder sich abgewöhnen will, ständig im Hinterkopf behalten, um die QVL und ihre Aussagen zu verstehen und deuten zu können? Wenn in FUP ein SR- (oder RS-)Kästchen zu sehen ist, mit 1 Ausgang, ist das eben die eine Stelle im Netzwerk oder Baustein, wo der Ausgang beeinflusst wird und man sieht nicht die zwei Stellen im entsprechenden AWL-Code, die entweder nur setzen oder nur rücksetzen. Wäre dieses Kästchen in SCL statt in AWL oder in AWL ohne Verwendung von R und S realisiert, wäre es wahrscheinlich nur 1 Stelle mit nur 1 '='.
Wer den AWL-Code nicht im Hinterkopf hat, kann sich die zwei SchreibZugriffe nicht erklären und versucht verzweifelt und vergeblich in seiner Ansammlung von Kästchen, die er vor der Nase hat, die zweite Stelle zu finden, wo die Variable nochmal geschrieben wird.
Und warum nun zusätzlich noch "Lesen"? Das sieht man in der FUP-Darstellung zwar nicht, aber man sollte wissen, dass der Q-Ausgang auch in den Zyklen definiert sein/werden muss, wenn weder S noch R high ist. Woher nehmen die Information über den alten Zustand, wenn nicht gerade der neue Zustand durch R oder S frisch festgelegt wird? Ganz einfach: lesen.
Sorry, für mich ist das plausibel und nicht inkonsequent, wenn die gleiche Funktionalität in zwei verschiedenen Sprachen programmiert wird und sich dadurch (letztlich irrelevante) Differenzen in der (zu detaillierten) QVL ergeben. 
Da muss ich leider (ausnahmsweise ;o) Siemens in Schutz nehmen.


----------



## PN/DP (19 August 2022)

Heinileini schrieb:


> Wer den AWL-Code nicht im Hinterkopf hat, kann sich die zwei SchreibZugriffe nicht erklären und versucht verzweifelt und vergeblich in seiner Ansammlung von Kästchen, die er vor der Nase hat, die zweite Stelle zu finden, wo die Variable nochmal geschrieben wird.


Wenn beim Anwender-Programmierer die SR-Box in der OB1-Ablaufebene liegt, und er den SR-Merker in einem Alarm-OB liest, dann könnte es vorkommen, daß sporadisch der Wert TRUE gelesen wird, obwohl der R1-Eingang dauerhaft TRUE ist, und der SR-Merker als dauerhaft FALSE beobachtbar ist. Wo die Ursache des Problems liegt könnte einem mehr auffallen, wenn in der QVL 2 "Schreiben"-Zugriffe stehen anstatt dem einen "Lesen und Schreiben"-Zugriff.



Heinileini schrieb:


> Und warum nun zusätzlich noch "Lesen"? Das sieht man in der FUP-Darstellung zwar nicht, aber man sollte wissen, dass der Q-Ausgang auch in den Zyklen definiert sein/werden muss, wenn weder S noch R high ist. Woher nehmen die Information über den alten Zustand, wenn nicht gerade der neue Zustand durch R oder S frisch festgelegt wird? Ganz einfach: lesen.


Hier im Beispiel ist der SR-Merker ein globaler Merker. Der behält seinen Zustand wenn nichts zugewiesen wird. Dafür ist es nicht nötig den Zustand zu lesen, und er wird auch tatsächlich nicht gelesen.

Harald


----------



## Blockmove (19 August 2022)

PN/DP schrieb:


> Wenn beim Anwender-Programmierer die SR-Box in der OB1-Ablaufebene liegt, und er den SR-Merker in einem Alarm-OB liest, dann könnte es vorkommen, daß sporadisch der Wert TRUE gelesen wird, obwohl der R1-Eingang dauerhaft TRUE ist, und der SR-Merker als dauerhaft FALSE beobachtbar ist. Wo die Ursache des Problems liegt könnte einem mehr auffallen, wenn in der QVL 2 "Schreiben"-Zugriffe stehen anstatt dem einen "Lesen und Schreiben"-Zugriff.


Interessanter Sachverhalt ... Kann die Ausführung einer SR-Box durch Tasks mit höherer Prio unterbrochen werden?


----------



## PN/DP (19 August 2022)

Blockmove schrieb:


> Kann die Ausführung einer SR-Box durch Tasks mit höherer Prio unterbrochen werden?


Bei S7-300 ja. Bei S7-400 und S7-1200 und S7-1500 weiß ich das nicht.

Sicherheitshalber hänge ich da immer noch eine Variable an den Q der SR-Box und arbeite mit dieser. So ist da garantiert nur eine Zuweisung, die nicht unterbrochen wird.

Harald


----------



## Blockmove (19 August 2022)

PN/DP schrieb:


> Bei S7-300 ja. Bei S7-400 und S7-1200 und S7-1500 weiß ich das nicht.
> 
> Sicherheitshalber hänge ich da immer noch eine Variable an den Q der SR-Box und arbeite mit dieser. So ist da garantiert nur eine Zuweisung, die nicht unterbrochen wird.
> 
> Harald


Bei den "Classic"-Steuerungen ist es ja auch nachvollziehbar. Da ist die S/R-Box ja eine rein grafische Geschichte.
Bei 1200/1500 bin ich mir da auch nicht sicher.


----------



## Heinileini (19 August 2022)

PN/DP schrieb:


> Wenn beim Anwender-Programmierer die SR-Box in der OB1-Ablaufebene liegt, und er den SR-Merker in einem Alarm-OB liest, dann könnte es vorkommen, daß sporadisch der Wert TRUE gelesen wird, obwohl der R1-Eingang dauerhaft TRUE ist, und der SR-Merker als dauerhaft FALSE beobachtbar ist. Wo die Ursache des Problems liegt könnte einem mehr auffallen, wenn in der QVL 2 "Schreiben"-Zugriffe stehen anstatt dem einen "Lesen und Schreiben"-Zugriff.


Das ist allerdings "hinterhältig" (seitens Siemens meine ich)!
Dann freut man sich natürlich, wenn eine "alternative" QVL einsehbar ist und einen auf die richtige Spur setzen kann.
Andererseits, dieses Problem mit den zu "UnZeiten" ausgeführten Interrupts, ist ja ein Problem, das nicht schon immer vorhanden war (bei S5 meines Wissens nicht *), sondern es wurde nachträglich "erfunden". 
Absicht: sehr gut, nämlich die ReaktionsZeiten zu verkürzen. 
Ausführung und Wirkung: leichtsinnig, hässlich, verheerend, inakzeptabel. 
Ursache: Unwissen? Nachlässigkeit? Gleichgültigkeit? Verlust des Überblicks? Egal was, es wirft ein schlechtes Licht auf Siemens.  
An dem Phänomen festzuhalten und die Dokumentation mit entsprechenden WarnHinweisen und Vorschlägen von WorkArounds vollzuschütten, kann nicht die endgültige Lösung sein.
Ich sehe dieses Phänomen nicht als Manko der QVL, sondern als Missstand, der beseitigt werden muss.  

*) Da gab es aber mal etwas mit InterruptSperren, die in gewissen Konstellation wirkungslos waren oder waren es in Wirklichkeit nicht dokumentierte Arten von Interrupts, die sich einen Teufel um die InterruptSperren scherten? Ich rechne schon ewig nicht mehr damit, es jemals zu erfahren.


----------



## Blockmove (19 August 2022)

Bei Siemens gab es im Laufe der Jahrzehnte diverse Varianten.
Absprung bei Bausteinwechsel, Netzwerkgrenze, Anweisung.
Teilweise wählbar und teilweise auch noch abhängig von Interrupt.
Mit der 1500er ist nicht unbedingt übersichtlicher geworden.
Siemens empfiehlt klare Schnittstellen von und zum Interrupt-Baustein.
Das gilt übrigens besonders für Safety. Da kann man sich einen AG-Stopp einfangen und kann sich einen Wolf suchen.


----------



## DeltaMikeAir (20 August 2022)

waldy schrieb:


> Besonders Delta steck überall seine Nutzungsbedingungen. Ich weiß nicht, geht er ins Bett schlafen auch mit seinem Nutzungsbedingungen?


Der Wink mit den Forenregeln gilt im Interesse aller. Erstens um schneller zu erkennen um was es geht und zweitens um später in der Forensuche bessere Ergebnisse zu finden.

Das hat auch was mit Teamfähigkeit zu tun.


----------

