TIA Instanz DB direkter Zugriff normal ?

INST

Level-2
Beiträge
272
Reaktionspunkte
15
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

wir haben die ersten TIA Anlagen bei uns bekommen und stellen immer mehr fest, das auf Instanz DBs von überall direkt zugegriffen wird.

Für den Instandhalter ist das die Fehlersuche nicht so schön, da diese Zugriffe nicht in der Querverweisliste angezeigt werden. ( Oder gibt es hier ein Trick ?)



Mich würde es intressieren wie ihr es bei TIA handhabt ?

Direkte Zugriffe auf IDBs verbieten ja oder nein ?
 
Das könnte wieder eine Grundsatzdiskusion werden.;)
meine Meinung:
lesen ist immer erlaubt. schreiben ist nicht erlaubt.
In anderen Systemen wird ein schreibender Zugriff von außen konseqeunt unterbunden. Aus diesem Grund sollte man es sich erst gernicht angewöhnen.
Holger
 
Ich bin der Meinung (unabhängig von einer möglichen Grundsatzdiskussion) das niemand an einem I-DB etwas zu suchen hat außer der FB zu dem er gehört.
Ich würde etwas derartiges (wenn es mir wichtig ist) über ein Pflichtenheft regeln ...

Gruß
Larry
 
@PN/DP
TIA V15.1
Ich bekomm der Querverweis von allen Variabel auserhalb des FB oder von allen Variabeln innerhalb des FB, aber nicht alle gemeinsam angezeigt.


Bei der S7 Classic haben wir es auch über das Pflichtenheft geregelt, bei TIA hat eben die Diskusion angefangen ob es "Standart" ist, bzw. warum wir es verbieten sollen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich halte es wie früher. IDB von außen ist verboten.
Aber trotz Allem ist der Querverweis von TIA nur rudimentär, denn auch wenn du Strukturen oder Variablen über die Schnittstelle der FB/FC übergibst, werden viele Variablen nicht gefunden. Dazu müßte man ALLE Variablen global, z.B. in einem DB definieren. Das ist aber auch nicht Sinn der Sache.
Inzwischen nutze ich in TIA V15.1 "Ctrl F F" Da bekommt man eine Vollgtextsuche über Alles im Projekt, eingrenzbar auf bestimmte Bereiche. Wenn man jetzt noch clever ist und Schnittstellen, Variablen und Variablen in Strukturen, die normalerweise einander übergeben werden gleich bezeichnet, findet man fast Alles. Der Querverweis kann das leider gar nicht.
 
Ich versuche solche Zugriffe immer zu unterbinden, vor allem in der Ausbildung und Qualifikation von Leuten reite ich da sehr darauf rum. Zumal es nicht wirklich einen Grund gibt sowas zu machen, wenn ich ein vernünftiges Konzept und eine ordentliche Programmstruktur habe.
Abgesehen davon verstehe ich Siemens dabei nicht, man hätte dem in TIA gleich einen Riegel vorschieben sollen.

Ist zwar etwas Offtopic aber ich habe vor eine Weile ein Programm gesehen, in dem einer ständig in FCs auf dem LStack rumpointert. Ehrlich gesagt wußte ich bis dahin garnicht das sowas überhaupt geht, ich wäre auch nie auf die Idee gekommen das zu probieren....
 
Ich habe auch öfters mit Programmen zu tun, wo auf IDB-Variablen von außen gelesen und auch geschrieben wird.
Ich finde das auch keinen guten Programmierstil wegen der schlechten Wartbarkeit.
Aber was ist die beste Alternative
-Datenaustauch zwischen Programmteilen über globale DBs oder Merker?
-alle Daten zwischen FCs/FBs über die in/out-Schnittstelle, dabei alle Datenpunkte einzeln oder zu Strukturen zusammengefasst?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich programmier nun inzwischen auch schon seit 10 Jahren mit S7. Erst Classic, seit einigen Jahren fast nur noch TIA.
Der Zugriff auf IDB außerhalb des jeweiligen FB war mir schon immer ein Dorn im Auge. Aber manche Kollegen schwören da drauf. Ich versteh es nicht.

Andere Programmteile haben meines Erachtens weder schreibend noch lesend irgendwas in einem IDB zu suchen. Haben wir nun auch in unserem Standard so definiert.
Wenn ich eine Information außerhalb des FB benötige, leg ich sie in einen globalen DB und übergeb sie an den FB über die Schnittstelle.

Wenn ich mich richtig erinnere, rät auch Siemens selbst in ihrem Programmierleitfaden von dem Zugriff auf IDB von außerhalb ab.
 
Wenn ich mich richtig erinnere, rät auch Siemens selbst in ihrem Programmierleitfaden von dem Zugriff auf IDB von außerhalb ab.

Dann könnte sich Siemens selber auch mal an ihren Leitfaden halten, siehe z.B. die Modbus-Bausteine bei denen man bei einigen Parametern auf die Instanz schreiben muss.

Ist ja auch die Frage, was zählt als Instanz-Zugriff. Auch wenn ich z.B. auf einen In-Parameter schreibend zugreife außerhalb des Bausteinaufrufs, oder auf einen Out-Parameter lesend außerhalb?
Bei TON-Timern wäre dann die Abfrage x := TON.Q auch verboten, weil ich da auch auf die Instanz zugreife.

Das TIA-Portal nervt mittlerweile aber immer mit Warnungen wenn ich in FUP TON.Q lese, in SCL ist das aber erlaubt. Ob das dann der Übersichtlichkeit hilft wenn ich jetzt zu jeder Instanz jeden Parameter nochmal händisch zusätzlich im Stat-Bereich anlegen muss. Bei Codesys mache ich das so gut wie nie, bei TIA kommt hinzu, dass sich der Zugriff auf bestimmte Instanzen wie TON.Q oder TON.IN völlig anders verhalten als alle anderen FBs, meiner Meinung nach ist das ein ganz großer Design-Fehler.
 
Zurück
Oben