TIA Einbinden eines Micromasters nach Schulungsunterlagen von Siemens

DerSchlangen

Level-1
Beiträge
106
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!
Wie hier an einigen Stellen im Forum schon bekannt bin ich Instandhalter und kein Programmierer, wollte mir die Tür in die Welt der Programmierer aber ein klein wenig aufstoßen um vielleicht das ein oder andere dazu zu lernen - kann mir im Arbeitsalltag bei Programmanalyse sicher nur zu gute kommen.

Zur Zeit versuche ich in einem TIA Projekt einen Frequenzumrichter "Micromaster" einzubinden. Grundlage dazu ist folgende Schulungsunterlage von Siemens. Mein Problem nun ist, dass ich die Schulungsunterlage nur für den Simatic Manager nicht aber für TIA vorliegen habe, dementsprechend sehen einige Sachen anders aus.
Ausserdem hatte ich Probleme beim beschalten mit Operatoren da mir schlicht das wissen fehlt wie sie in TIA genannt werden. Beispielsweise wird der Eingang über den BUS kommend PEW in Simatic genannt, beim TIA will er den Syntax nicht schlucken und sagt %ID.




Jetzt wäre ich ja nicht ich wenn ich nicht angefangen hätte zu probieren - leider fehlt mir aber ein Teil der Hardware sonst hätte ich mir das schon längst mal so aufgebaut - und zwar hab ich da völlig Blauäugig die Anweisung Blockmove genommen weil Dr. Google sagte das geht auch so.
Ich habe unten einmal alle (denke ich) relevanten Screenshots angehangen.
Es geht sich hier nicht darum mir zu sagen das ich es falsch gemacht habe, davon gehe ich ganz sicher aus das es falsch ist, es würde mich aber freuen wenn ich lernen könnte was ich da falsch gemacht habe bzw. wie ich so über BUS ankommende Daten in einen DB schiebe wo ich sie dann zu Verfügung habe.

Evtl. gibt es auch eine TIA Schulungsunterlage?

Kurz als Stichpunkte:

- Wie spreche ich den bei TIA das PEW an?
- Wie kann ich eingegangene Daten ordentlich in einen DB speichern? (Hier habe ich gar keine Erfahrung)
- Kann ich mehrere Datensätze in verschiedenen Structs in ein und dem selben DB speichern?
- Wie Adressiere ich stellen in einem DB? Also wenn ich per FUP Block genau bsp. ein Byte einspielen will an eine bestimmte Position?



So das soll es erst einmal sein, mir qualmt der Kopf. So programmieren ist bedeutend mehr als nur FUP Boxen aneinander zu reihen....



Danke für eure Mühe.






SU.JPGFC.JPGFU.JPGDB.JPG
 
Also, um es auf %ED zu bekommen, musst du die Mnemonik ändern:

Extras --> Einstellungen --> PLC-Programmierung --> 4. Punkt "Weitere Einstellungen" --> Mnemominik von "International" auf "Deutsch" stellen.


Ich denke, es wird von TIA als Doppelwort deklariert, weil du die Länge des Pointers nicht deklariert hast, versuch mal bei DSTBLK dies hinzuschreiben:
P#DB700.DBX0.0 BYTE 2
Damit hättest du die Länge des Pointers definiert und du kannst ein EW an SRCBLK anlegen.

Den "Istwert" bekommst du damit dann allerdings nicht mehr übertragen, weil dieser ab dem dritten Byte deklariert ist. Deswegen ist auch von TIA vorgeschlagen ein Doppelwort einzulesen. Wie auch in der Hardwarekonfiguration zu sehen ist, geht der E/A-Bereich von 50..53, was exakt einem Doppelwort entspricht. ;-)

Um einen Peripheriezugriff in TIA zu machen, schreibst du "EW50 :p" an die dazugehörige Stelle hin, anstatt nur "EW50".

Natürlich kannst du auch mehrere Datensätze in verschiedenen Structs anlegen. Dazu würde ich zB für Antrieb 1 ein Struct anlegen und dort dann deine oben dargestellten Parameter darin anordnen.

Wie man die Daten in einem DB speichert, mittels Move-Befehl, weißt du ja schon, worauf genau bezieht sich da nun deine Frage?

Die genaue Position stellst du mittels dem Offset fest, welche in der dritten Spalte steht. Je nach Datentyp ist der Offset mal größer, mal kleiner von den Abständen her. Eben immer, wie viel Bit/Byte der dazugehörige Datentyp benötigt. Einfacher ist es jedoch, das ganze symbolischen Adressierung zu vollziehen. Dafür erstellst du dir einfach deine Variable im DB und ziehst diese auf den gewünschten Verwendungsort mittels Drag & Drop.
 
Zuletzt bearbeitet:
Zurück
Oben