TIA TIA v18 Bausteinschnittstellendeklaration in Textformat

Tangren

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

mir ist es heute erst aufgefallen, verwendet jemand die Bausteinschnittstelle im Textformat?

Ich habe dabei festgestellt, dass im Textformat das TIA v18 keine Variablendeklaration mit Leerzeichen und Bindestrich mehr annimmt. Das Tritt bei 300er als auch bei 1500er auf. Auch funktioniert die Variablenkennung des Editors nicht richtig.

z.B:
iFehler quittieren : Bool; --> Fehler
iFehler-quittieren : Bool; --> Fehler
iFehler_quittieren : Bool; --> Funktioniert

oFehler quittieren: Bool; wird automatisch in oFehler quittieren_1 umgewandelt mit Fehler natürlich (Leerzeichen)

Es scheint, als nimmt das TIA v18 im Textmodus der Bausteinschnittstelle eben keine Leerzeichen und auch keinen Bindestrich an, was sehr komisch ist.

Kann das jemand bestätigen?
 
keine Variablendeklaration mit Leerzeichen und Bindestrich mehr annimmt.
Da macht TIA V18 ja mal was richtig. Da gehören auch keine Leer- oder Sonderzeichen rein.

Aus den TIA V18 technischen Folien ( Seite 46 ):

Hier geht es zwar um den Namensraum der Softwareunits aber anscheinend wurde es an anderen Stellen auch so übernommen.
1688982427210.png
 
Ich habe dabei festgestellt, dass im Textformat das TIA v18 keine Variablendeklaration mit Leerzeichen und Bindestrich mehr annimmt.
Ich glaube da noch nicht so recht dran ... Vielleicht mußt Du da die Variablennamen in Anführungsstrichen schreiben? z.B.: "iFehler quittieren" : Bool;
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich glaube da noch nicht so recht dran ... Vielleicht mußt Du da die Variablennamen in Anführungsstrichen schreiben? z.B.: "iFehler quittieren" : Bool;
Hast Du sogar recht, funktioniert in der Deklaration, aber nicht im Code, da kommt dann "Ungültiger Datentyp" looooool

Update:
war mein Fehler, hab den _ nicht entfernt, dafür kommt "Variable nicht definiert"
 
kannst Du da mal nen Screenshot machen und evtl. mal schauen, ob das gleiche was Du tust unter V17 noch geht???

Wär ansonsten wieder so ein Punkt, warum ne Migration zu höherer TIA-Version im Chaos versinkt...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast Du sogar recht, funktioniert in der Deklaration, aber nicht im Code, da kommt dann "Ungültiger Datentyp" looooool

Update:
war mein Fehler, hab den _ nicht entfernt, dafür kommt "Variable nicht definiert"
Im Code muß davor ein Doppelkreuz #: #"test bool"
 
TIA Bausteinschnittstelle Textformat.jpg
Ich habe den Eindruck, TIA macht hier was worauf es gerade "Lust und Laune" hat.

o_Fehler-quittieren sollte es eigentlich sein, macht aber völlig automatisch o_Fehler-quittieren_1

Auch in der Zuweisung macht es, was es möchte.

Hier die tabellarische im Safety, da funktioniert ALLES lol.
TIA Bausteinschnittstelle Tabelle.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Anhang anzeigen 70023
Ich habe den Eindruck, TIA macht hier was worauf es gerade "Lust und Laune" hat.

o_Fehler-quittieren sollte es eigentlich sein, macht aber völlig automatisch o_Fehler-quittieren_1

Auch in der Zuweisung macht es, was es möchte.

Hier die tabellarische im Safety, da funktioniert ALLES lol.
Anhang anzeigen 70024
Nein, macht es nicht.

Wenn du dein "Always-True" im Code verwendest, dann wird die Variable in "Anführungszeichen" gesetzt. TIA ist so nett, dich in der Deklaration nicht dazu zu zwingen, die Änführungszeichen einzugeben.

Aber Leerzeichen und Schlüsselzeichen in Variablennamen zuzulassen, ist generell ein Witz. Schau dir mal andere Programmiersprachen an. Minus oder Leerzeichen in den Variablennamen gibts NIRGENDS.
Hör mit dem Unsinn auf und beschwer dich nicht über die unnötige Gutmütigkeit von TIA Portal. Dass Siemens den Mist überhaupt zulässt ist imho der Tatsache geschuldet, dass das in Classic stellenweise auch schon ging und, hätte man dem einen Riegel vorgeschoben, man alte Programme nicht einfach hochkonvertieren könnte.
 
Nein, macht es nicht.

Wenn du dein "Always-True" im Code verwendest, dann wird die Variable in "Anführungszeichen" gesetzt. TIA ist so nett, dich in der Deklaration nicht dazu zu zwingen, die Änführungszeichen einzugeben.

Aber Leerzeichen und Schlüsselzeichen in Variablennamen zuzulassen, ist generell ein Witz. Schau dir mal andere Programmiersprachen an. Minus oder Leerzeichen in den Variablennamen gibts NIRGENDS.
Hör mit dem Unsinn auf und beschwer dich nicht über die unnötige Gutmütigkeit von TIA Portal. Dass Siemens den Mist überhaupt zulässt ist imho der Tatsache geschuldet, dass das in Classic stellenweise auch schon ging und, hätte man dem einen Riegel vorgeschoben, man alte Programme nicht einfach hochkonvertieren könnte.
1. Zuerst einmal, achte etwas auf Deinen Ton!

2. Ist es ziemlich genau in den Screenshots ersichtlich, was TIA wann und wie macht.

3. Brauchst Du mir nicht sagen, wie es in "anderen" Programmiersprachen und Umgebungen aussieht, ich programmiere seit 30 Jahren C/C++ UND kenne seit ca. 20 Jahren SIMATIC Step 7 und ich weiß auch, wie es in der Beckhoff/CodeSys-Welt aussieht

4. Ist dieses merkwürdige Verhalten erst seit v18, in v17 hatte ich bereits auch noch so meine Variablen erstellt

5. Wollte ich einzig und ALLEINE eine VERIFIZIERUNG oder WIDERLEGUNG meiner Beobachtung, nicht diesen sinnlosen Kommentar!
 
konvertiere mal so ein Projekt aus V17 nach V18, wär ja mal interessant, was dann passiert...
Muss ich noch ausprobieren, was in der Textform dann geschieht.

Ich sehe auch gerade, weil ich es genau wissen will, dass es in der v17 auch nicht möglich war, ist mir noch nie aufgefallen.

Einheitlich ist die Variablendefinition zwischen textueller und tabellarischer Ansicht nicht.

Das würde auch erklären, warum man nach wie vor nicht einfach zwischen der textuellen und tabellarischen Ansicht im TIA umschalten kann, im Gegensatz zu TwinCat.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also nur so Allgemein:
Es ist ja erst seit TIA möglich Leerzeichen und Sonerzeichen zu verwenden, was ich persönlich aber für den größten Unfug bei TIA halte!!!!
Ich hab da schon dinge gesehen, teilweise sind Programme ungeheurlich schwer dadurch zu lesen.
In Symbolik/variablen namen hat sowas nichts verloren!!!-> hat auch was mit gutem Still zu tun.
-> Für erklärungen etc gibt es den Kommentar wo man dann auch ausführlichere dinge reinschreiben kann!!

Tu den Programmierern die vielleicht später da mal ran müssen einen gefallen und verwende keine Sonderzeichen etc.!!
und gewöhn dir das selbst bloß nicht an!!
Nicht falsch verstehen soll nur ein Tipp sein und kein "persönlicher" angriff 😉
 
Ich sehe auch gerade, weil ich es genau wissen will, dass es in der v17 auch nicht möglich war, ist mir noch nie aufgefallen.
in v17 hatte ich bereits auch noch so meine Variablen erstellt
??

Persönliche Meinung:
Ich würde auch von Sonderzeichen / Leerzeichen Abstand halten. Erstens mal weil Siemens auch daran schraubt um näher an die IEC 61131-3 zu rücken und zweitens bekommt man an diversen Stellen Probleme mit solchen Variablen. Z.b. wenn diese in WinCC Skripten verarbeitet werden oder an Stellen die du jetzt selber gefunden hast.

Aber nur meine persönliche Meinung, wertungs- und angriffsfrei.
 
also ich versteh aktuell das Problem noch garnicht?

in der Tabellarischen Deklaration tippst Du
Code:
test bool
und es funktioniert

in der Textuellen Deklaration tippst Du
Code:
"test bool"
und es funktioniert

im Code tippst Du
Code:
#"test bool"
und es funktioniert.

was funktioniert denn jetzt nicht? Das Intellisense?

am Intellisense hat sich scheinbar in V18 was geändert:
 
Zurück
Oben