TIA Bitansteuerung Hilfe

Zombieanfuehrer

Level-1
Beiträge
65
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

ich erstelle zur Zeit mein erstes TIA Projekt, habe zwar schon einige Erfahrung mit Step 7 doch ist in TIA vieles anders.
In einem Step 7 Projekt kann ich einzelne Bits, bsplw. in einem Word von einem DB, ganz einfach ansteuern. ( = db5.dbx 1.0)
Das will ich auch in meinem TIA Projekt machen, doch bekomme ich die Meldung, dass Absolute Zugriffe nicht möglich sind.

H1.jpg

Das Ganze ist für die Meldungen in dem HMI.

Vielleicht kann mikr jemand sagen was ich falsch mache oder anders machen muss.
 
In TIA (bei optierten DBs) gibt es keine Speicher-Adressen (im 300er-DB-Sinne) mehr.
Optimierte DBs funktionieren rein symbolisch.
https://support.industry.siemens.com/cs/ww/de/view/67655611

Adressen gibt es nur mehr in nicht optimierten DBs, die eigentlich mehr aus Kompatibilitätsgründen zu 300/400 existieren. Und weil nicht immer alles über opt. DBs lösbar ist.
Dennoch würde ich dazu raten auf der 1500 wenn möglich nur mit optimierten zu Arbeiten da die andere Variante ein Performancebremse ist.
Des weiteren holt man sich alle möglichen Schwierigkeiten ins Haus wenn man beginnt optimiert und "nicht optimiert" zu mischen oder aufhört so zu programmieren wie sich die TIA/1500er-Entwickler es gedacht haben.

Um dennoch auf einzelne Bits eines Symbols (Bit 0 einer smbolischen Wortvariablen) zugreifen zu können wurde der SLICE-Mechanismus eingeführt.
https://support.industry.siemens.com/cs/ww/de/view/57374718


Bitmeldungen am HMI sind der einzige (unten relativiert) Ort wo ich noch nicht optimierte DBs verwende.
Der DB enthält Bits (mit vernünftigen Symbolen) und am HMI wird eine absolut Adressierte Wortvariable erstellt die dann auf die
Bitmeldungen gehen. Es gäbe auch noch die Variante über die Alarmbausteine Program_Alarm und Co.

Wenn du mit TIA anfängst kannst du dir auch das zu Gemüte führen.
https://w3.siemens.com/mcms/sce/de/...1318674_Programming_guideline_DOKU_v13_de.pdf
Da werden auch die Unterschiede zwischen opt. und "nicht opt." Datenbausteinen noch mal schön Beschreiben.
Hauptunterschied, abgesehen von den fehlenden Adressen, ist das der "nicht opt." DB (wie die 300/400 auch) der Big-Endian-Notation folgen, während die opt. DBs und die 1200/1500 der Little-Endian-Notation folgen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Des weiteren holt man sich alle möglichen Schwierigkeiten ins Haus wenn man beginnt optimiert und "nicht optimiert" zu mischen oder aufhört so zu programmieren wie sich die TIA/1500er-Entwickler es gedacht haben.

Die können sich nicht allzuviel gedacht haben oder, sonst hätten sie nicht so einen Scheiß verbrochen!

PS1: Ich kann den Ratschlag nicht nachvollziehen, ich verwende das gemischt, ansonsten müßte ich ja tatsächlich so programmieren, wie die sich das gedacht haben und ganz so hirnlos will ich dann doch nicht meine SPS-Programme proggen.

PS2: Was heißt da eingentlich Performance? Ich hab eine mittlere Maschine (so 8 Stationen mit WT-Umlauf, 2 Servos, RFID, Laser), die schafft bei unsimensianischer Programmierweise so 10 ms. Das reicht dafür allemal. Ok, wenn es mal richtig schnell gehen soll, dann klemmt es vielleicht, aber dann sollte man vielleicht auch mal eine richtige SPS nehmen bei der man keine Kopfstände machen muß, um irgendwie an seine Daten ranzukommen ...
 
Zuletzt bearbeitet:
Ich benutze das auch gemischt..... Viele Sachen bei der Kommunikation gehen nicht mit optimierten DBs
Selbst wenn du das so programmierst, wie die sich das gedacht haben klappt nicht alles mit optimierten DBs
 
Die können sich nicht allzuviel gedacht haben oder, sonst hätten sie nicht so einen Scheiß verbrochen!
*ACK*

Was ich am wenigsten leiden kann ist der Begriff "optimiert".
Das ist einfach "1500-Standard" und "300/400-schlecht-kompatibel".

PS1: Ich kann den Ratschlag nicht nachvollziehen, ich verwende das gemischt, ansonsten müßte ich ja tatsächlich so programmieren, wie die sich das gedacht haben und ganz so hirnlos will ich dann doch nicht meine SPS-Programme proggen.
Nun gut, da muss ich meine Aussage von oben ein wenig relativieren.
Ich versuche so weit wie es geht "optimierte" DBs einzusetzen und "optimierte" und "nicht optimierte" Bereiche einigermaßen zu trennen.
Dort wo ich mit "optimiert" dreimal mit der Kirche ums Kreuz programmieren muss um auf das selbe Ergebnis zu kommen, bzw. wo es nicht anders geht, dort verwende ich "nicht optimiert".

Ich böser Junge verwende auch noch AWL, wenn möglich allerdings ohne AR-Gebastel und Co.
Nur als andere Darstellungsform in Kombination mit FUP. Vielleicht kommt mal der Tag an dem ich ein SCL-Netzwerk unter ein FUP-Netzwerk setzen darf. :rolleyes:

Über den generellen Sinn und Unsinn von "optimierten" (man bemerke die Anführungszeichen) wurde hier eh schon des häufigeren diskutiert.
Die Themen kennst du ja eh, für diejenigen die es interessiert...
http://www.sps-forum.de/simatic/726...unsinn-4.html?highlight=optimiert+performance
http://www.sps-forum.de/simatic/802...-auf-s7-300-a.html?highlight=optimiert+endian

Grundsätzlich schrecken mich aber Dinge wie...
  • ständiges Byte-Grehe bei jedem Zugriff in Abhängigkeit der "Optimierung"
  • Abhängkeit von der "Optimierung" des Aktualparameters ob ein FB diesen als ByVal oder ByRef bekommt.
  • Bausteine die einmal einen "optimierten DB" vorschreiben
  • Bausteine die einen nicht "optimierten DB" benötigen
  • generell dieses ganze "mal so, mal so"

Wenn es irgendwie geht versuche ich mir nicht noch mehr Probleme mit TIA ins Haus zu holen als ich mit TIA so schon habe.
Deshalb versuche ich (soweit sinnvoll) so zu arbeiten wie BigS es sich vorstellt. Wenn auch teilweise mit Gehirnschmerzen... :sb10:
Gibt auch wesentlich weniger HickHack mit dem Support, wenn mal wieder was nicht hinhaut.

PS2: Was heißt da eingentlich Performance?
Dass das ganze Byte-Gedrehe und Bit-Ausmaskieren die CPU künstlich ausbremsen muss ist auch klar.
Die Beiträge von Hellebarde kennen wir.

Das ganz AWL-AR-Zeug ist auch ziemlich arg, das ist mir selber schon aufgefallen.
Hatte ne kleine Anlage für die hatte ich einfach unsere 300er-Standardbausteine migriert und allen in "nicht optimiert" programmiert.
Funktioniert hat's problemlos. Es war auch nur ne 1510-ET200SP, jedoch hatte auf der CPU das Programm (gefühlt) eigentlich 2x Mal laufen müssen bevor man die 10ms-Grenze durchbricht. Leider waren es bei 1x schon 16ms. Da war ich eigentlich ziemlich erschrocken.
In meinen Fall war die AR-Operationen beim Any-Pointer kopieren die größten Übeltäter.
Beim aktuellen Projekt, wo ich auf das "optimierte" geachtet hab, mit der 1512 (ca. 1,5 x 1510) hab ich schon gefühlt 2x soviel Code drauf und bin noch bei 4ms. Ist aber alles sehr sehr subjektiv, also bitte nicht drauf rumreiten...
Die Messungen und das Wissenschaftliche überlasse ich Hellebarde :ROFLMAO:.

Bin aber trotzdem der Meinung das ich die CPU, dort wo ich keinen Aufwand habe es "optimiert" zu machen, diese nicht künstlich bremsen muss.

Was wirklich schlimm ist, ist das ich mir überhaupt darüber Gedanken mache oder machen muss...

PS: Da der TE vom Umsteigen auf die 1500 spricht sollte man ihn noch auf ein paar weitere Unterschiede hinweisen.
http://www.sps-forum.de/simatic/79662-umstieg-auf-s7-1500-a-post601632.html#post601632
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
In einem Step 7 Projekt kann ich einzelne Bits, bsplw. in einem Word von einem DB, ganz einfach ansteuern. ( = db5.dbx 1.0)
Das geht jetzt eigentlich sogar schöner, nennt sich Slice-Zugriff.
MyDB.MyWord.X0 für Bit 0
MyDB.MyWord.B0 für Byte 0
usw.

Bevor man ernsthaft mit der 1500er anfängt, sollte man, isbesondere wenn man die 300/400er einigermaßen kennt, sich eigentlich mal das zu gemüte geführt haben:
https://support.industry.siemens.com/cs/de/de/view/90885040

Mfg
Manuel
 
So mit den nicht optimierten Datenbausteinen hat mir geholfen, ist aber wirklich nicht so schön wie, wenn es mit dem Slice-Zugriff gemacht wird. Das Problem ist ich habe hier eine 1200er mit Firmware 1.01 und leider keine Memory-Card um sie zu flashen. (der Slice-Zugriff funktioniert wohl erst ab 2.0)
Frage mich wie man die 1200er mit FW 1.0 im Optimierten Modus programmieren soll, ohne Slice?

Bei der Anlage ist die Zeit relativ egal, und werde von daher wohl alle DBs gezwungener Maßen so programmieren.
In Zukunft würde ich nur 1500er nehmen.
 
Aus welchen Tiefen hast du denn ne CPU in FW-Version ausgegraben?
Braucht eine FW1 eine MC zum flashen? Geht das nicht (so wie bei den neueren) direkt über die Online-Diagnose?

Die Alternatvien zu Slice und Co. sind bekannt. Eine Variante wären z.B. FCs denen du die Variable (Inout) und Bitnummer übergibst. Innen dann mit Bitmaske.
Hatte mal ne Liste der Varianten die mir auf die schnelle eingefallen sind....
http://www.sps-forum.de/simatic/768...alword-uebertragen-post536455.html#post536455


EDIT: Andere Frage, ist irgendetwas aus der TIA-Generation v1.0 überhaupt betriebssicher genug um es anzuwenden? :p
Die TIA-Version die du verwendest wäre auch interessant.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Oha, V1.0 ist ggü. der derzeit aktuellen Version (4.1) ohne Übertreibung echte Steinzeit.

Investiere die paar € ind die 24MB Memory Card um deine CPU wenigstens auf 2.2 Upzudaten.
Welche Version von TIA nutzt du dann eigentlich?
 
Zuletzt bearbeitet:
Bei optimierten FBs schon, vorausgesetzt die Remanenz ist auf "Im IDB setzen" eingestellt.
Danke für die Verbesserung und Info, das wusste ich jetzt in der Tat noch nicht.

Wirkt aber auch irgendwie wie ein Bastelhäkchen... was das Konzept "optimiert" dann endgültig ad absurdum führt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wirkt aber auch irgendwie wie ein Bastelhäkchen... was das Konzept "optimiert" dann endgültig ad absurdum führt.
Ist wahrscheinlich dann eine Zwitter-Lösung.

Um per AT-Sicht darauf zuzugreifen müsste man die Daten ja zumindest als Block ablegen. Also ohne Speicher-Optimierung.
Man könnte die Daten aber trotzdem als Little Endian Endian ablegen.
Nach der Logik müsste aber TIA auch auf "opimierte" Struct/UDTs per AT zugreifen können...

Aber wer soll das ganze auch verstehen... :confused:

Bei der Option "Im IDB setzen" könnte TIA die Daten auch 300/400-Style ("nicht optimiert") ablegen damit das AT geht,
dann ist aber wieder das "Performace-Schreckgespenst" im Raume....

Ich glaub es ist die erste Variante. Hat jemand zu dem "Im IDB setzen" genauere Infos?
 
Bei der Option "Im IDB setzen" könnte TIA die Daten auch 300/400-Style ("nicht optimiert") ablegen damit das AT geht,
dann ist aber wieder das "Performace-Schreckgespenst" im Raume....
Würde ich jetzt zwischen den Zeilen im Programmierleitfaden aber mal so interpretieren:
Leitfaden schrieb:
Empfehlung
 Verzichten Sie auf die Einstellung „Im IDB setzen“ (“Set in IDB“). Stellen Sie remanente Daten immer im Funktionsbaustein ein und nicht im Instanz-Datenbaustein. Die Einstellung „Im IDB setzen“ (“Set in IDB“) erhöht die Abarbeitungszeit des Programmablaufs. Wählen Sie für die Schnittstellen im FB immer entweder „Nicht remanent“ („Non-retain“) oder „Remanent“ („Retain“).

https://support.industry.siemens.com/cs/de/de/view/90885040
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Investiere die paar € ind die 24MB Memory Card um deine CPU wenigstens auf 2.2 Upzudaten.
Die paar Euro sind 300 fuer die 24MB card , oder bin ich da falsch informiert?

Ich möchte meine 1212 fW 3.1 updaten. Geht das online ohne MC-card?

@rauchegger hat das ja auch schon hier gefragt.
 
Zuletzt bearbeitet:
Die paar Euro sind 300 fuer die 24MB card , oder bin ich da falsch informiert?
Okay, der Listenpreis ist irgendwas um die 250€, aber hey, wenn du bedenkst was ein Maybach kostet ...

Ich möchte meine 1212 fW 3.1 updaten. Geht das online ohne MC-card?
https://support.industry.siemens.com/cs/?lc=de-DE
Hier gibst du die Bestellnummer deiner CPU an, wählst "Downloads" aus, irgendwo solltest du dann den Firmware-Eintrag finden.
Hier wiederum steht dann ganz genau, wie du zum Update vorgehen musst, bzw. welche Möglichkeiten es überhaupt gibt.

1200er ab V4 sind direkt über TIA updatebar,
1200er mit V3 sind (vermutlich alle) über den Webserver, nicht aber über TIA updatebar
1200er generell sind mit besagter Speicherkarte updatebar.

Mfg
Manuel
 
Zuletzt bearbeitet:
Zurück
Oben