TIA Adressierung-Symbolisch oder Absolut oder wie???

GS-Harri

Level-1
Beiträge
71
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich arbeite mit Tia V12 und bin dabei, eine alte AEG Steuerung abzulösen. Im Gegensatz zur Siemens beginnen die Adressierungen bei AEG die Bytes mit 1 und hören mit 8 auf, die Merker haben 32 Bit z Bsp. M20.1 bis M20.32, dann geht es mit 21.1 weiter. Es ist ein relativ einfaches, aber mächtiges Programm. Es wird nur die Steuerung übernommen, Maschinenbau usw. bleibt erhalten. Mein Plan war es, das Programm 1:1 zu übersetzen. Deshalb habe ich den Merkern die symbolischen Namen der AEG Steuerung gegeben. Also habe ich die Namen M5.1-M5.32 vergeben, welche die Adressen M5.0-8.7 belegen.T Tippe ich jetzt den Namen ein, ohne ihn aus der Namesliste auszuwählen, übernimmt er anstelle des Namens die Adresse bzw. meckert, dass ich einen ungültigen Datentyp ausgewählt habe. Es dauert mir aber zu lange, das immer anzuklicken und durch die Gegend zu scrollen. Ich könnte die Namen mit einem anderen Trennzeichen, z BSp M5,2..vergeben, das würde funktionieren, sieht aber blöd aus. Funktioniert das auch anders?
 
Hallo,
ich arbeite nicht mit TIA aber dessen mal ungeachtet.
Wenn du so etwas vorhast dann würde ich nicht die Merker auf diese Weise umsymbolisieren (da blickt am Ende Keiner mehr durch) sondern ich würde dafür einen DB hernehmen in dem du dir dann ja das auch so gestalten kannst.
Auf jeden Fall sollte aber, wenn du das Symbol korrekt geschrieben hast, der Editor deine Eingabe übernehmen - du mußt dich aber an die Schreibkonventionen für Symbole halten ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ,

du könntest auch X5.2 und X5.25 und so weiter vergeben.

X für Bit dann

Oder so wie TIA es macht TAG_525 oder TAG_5_25

Wenn du mit das umsetzen eine alte Steuerung anfängst, hast du auch die Chance es jetzt besser / anders / flexibler zu machen.
Nehme erst mal an dass die AEG fehlerfrei funktioniert hat.

Aber jetzt hast du die Chance Struktur rein zu bringen mit z.b. FB's für immer das gleiche, und so weiter.
Man muss sich dann aber mit der Logik auseinander setzen.

DVH
 
Hi all

ein Symbol so zu nennen, wie S. seine Adressen nennt ist ein klarer Fall von Trick 17 mit Anlauf und selbst reinlegen.
M20.1 ist nun mal eine Adresse, eigentlich ist das eine Tipphilfe für Faule (also Leute wie mich)
%M20.1 ist eine Adresse, "M20.1" ist ein Symbol und #"M20.1" ist ein lokales Symbol.

Das % steht für absolut, das # für lokal (etwas aus der TEMP oder STAT Sektion eines Bausteins)
Laut Norm werden STRING durch ' und WSTRING durch " eingeschlossen. Das " hat S aber schon in Step7 V3 falsch gemacht, zu einer Zeit als es noch keinen WSTRING gab. In dieser grauen Vorzeit haben sie es erlaubt Leerzeichen in Symbolen zu verwenden. Also "3 + 4" ist keine Rechnung die 7 ergibt, das ist ein globaler Symbolname.

Wenn du nichts angibst, dann rät das TIA-Portal herum und trifft zuerst bei Schlüsselworten, dann bei lokalen Symbolen und letztendlich bei globalen Symbolen. Irgendwo in einer Doku habe ich eine beeindruckend lange Liste von Schlüsselworten gefunden. Und da gehörten nicht nur so erwartbare Worte wie IF THEN ELSE oder wie REAL und INT oder Systemfunktionen wie TON oder STOP dazu sondern eben auch E A M I Q T Z C.

Also wenn du M20.1 eintippst, dann trifft da zuerst mal eine Adresse. Wenn du das zum Symbol zwingen willst, dann musst du "M20.1" eingeben. Mach dir selbst und allen die vielleicht mal in die Situation kommen könnten deine Programme erweitern oder warten zu müssen den Gefallen und nenne das Symbol z.B. M_20_1. Jedem ist Klar was du damit gemeint hast und es gibt keinen Konflikt mit den Schlüsselworten.

S lässt ein seinen Namen fast alles zu. Leerzeichen, Rechenzeichen, Satzzeichen. Steuerzeichen gehen gottseidank nicht. Und auch keine Leerzeichen am Anfang oder Ende. Aber man kann da echt schauderhaftes machen z.B.: #".".".." also #"." könnte ein strukturierter Input sein der ein Element ".." enthält. Es ist auch erlaubt ein Merkerbit TRUE zu nennen und ihm den Wert FALSE zu geben. Ein "TRUE" := TRUE; könnte das wieder richten ;-)
Oder man gibt sowohl einem FC vom Typ INT den Namen IF als auch einer lokalen Variablen. Dann kann man sowas schreiben wie IF #IF = "IF"() THEN

Also Kinder zuhause an den Bildschirmen: bitte nicht nach machen

'n schön' Tach auch
HB
 
.
Die Migration von AEG auf Siemens wird seit Jahren
für einen akzeptablen Preis vom Hersteller angeboten.

Ich denke, das ist der preiswertere Weg, vor allem,
weil der übersetzte Code einsehbar ist.
 
Zurück
Oben