TIA Portal V13 - Profibus Teilnehmer (nicht von Siemens) einbinden

ludi81

Level-1
Beiträge
66
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich versuche gerade ein Profibus Motor von Schunk (PRH) mit einer Siemens Steuerung (IM151) von Siemens mit dem TIA Portal V13 zu verbinden.

Ich glaube ich habe die Verbindung hergestellt, aber weiß nicht wie ich jetzt kommunizieren kann.

Folgende Schritte habe ich durchgeführt/
1) GSD Datei in TIA importiert
2) Neues Gerät (Motor) erstellt und verbunden (siehe Topologiesicht) topologie.jpg
3) In der Geräteansicht sehe ich jetzt Eingangsadressen: 256...271 und Ausgangsadressen: 256..263 geraeteuebersicht.jpg


Jetzt stehe ich aber an. Laut Siemens Beschreibung muss ich jetzt ein Telegramm auswählen, das gibt es aber bei Schunk nicht.
Wie kann ich jetzt direkt auf die Adressen zugreifen? Wie kann ich also Kommandos an den Motor schicken und wie erhalte ich die Antwort.

Vielen Dank
Ludi
 
Nun ja, jetzt schnappst du dir die Anleitung von Schunk und schaust was die 8 Byte Ein bzw. 16 Byte Aus denn zu bedeuten haben, und klatscht dann einen schönen FB zusammen.
Oder du rufst bei Schunk an, ob die ein Beispielprogramm haben oder oder oder.

P.S. Wie du schreiben kannst:
T AW
T AB
= Ax.Y
usw.

P.S.
Ich würde oberflächlich betrachtet jetzt nicht behaupten, das die eine Siemens-Anleitung da auch nur das geringste bringen wird,
da deine Bildchen jetzt eher nicht nach einen Antrieb nach Profidrive-Profil ausschauen.

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Schnelle Antwort.
Ich weiß natürlich was die Eingangsbytes und Ausgangsbytes bedeuten. So weit bin ich aber noch gar nicht.
Wie kann ich auf diese Adressen schreiben? Irgendwie muss ich ja die Adressen zu einer Variable verbinden. Ich kann keine Verbindung zu einer lokalen Variable erstellen. Gibt es spezielle OPs für das Schreiben/Lesen? Oder wie mache ich das?


Danke
 
Prinzipielle Möglichkeiten:
SFC14/15
oder
SFC20
oder
So wie auf jede x-beliebige andere EA-Adresse auch.

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für eure schnelle Antwort. Ich verwende das TIA V13.
Kann ich also einfach mehrere PLC Variablen erstellen und normal auf diese Zugreifen?

Ich habe beispielsweise folgende Variablen erzeugt VariablenDeklaration.jpg

Kann man eigentlich einen eigenen Datentyp nicht einfach an diese Eingangs und Ausgangsadressen setzen? Unter Datentyp kann ich nur die Standardtypen auswählen. Mit einem eigenen Datentyp wäre es ein wenig übersichtlicher.
Normalerweise verwende ich SCL und da scheint es SFC20 nicht zu geben. Ich kann aber BLKMOV verwenden, oder? Dann kann ich auch ein eigener Datentyp verwenden.


Da ich aktuell die Steuerung nicht zur Hand habe kann ich es nicht testen. Aber es wäre super wenn ihr mir das noch bestätigen könnt, dann kann ich bis Montag noch etwas vorbereiten.

Vielen Dank
Ludi
 
Hallo,

vielen Dank für euere Antworten.
Kann mir jemand zeigen wie ich GETIO und SETIO richtig verwende? Ich will z.b. mit GETIO Daten von der Adresse E256 in eine eigenen Struktur kopieren.
ich erhalte aber immer "Ungültiger Ausdruck" bei INPUTS. Wie kann ich den Parameter ID genau setzen?

Weiters habe ich gesehen, dass ich bei den PLC Variablen nur Q und I auswählen kann, nicht aber E und A. Kann mir jemand sagen was hier der Unterschied ist?

Vielen Dank
Ludi
 
Zuletzt bearbeitet:
Parameter
Deklaration
Datentyp
Speicherbereich
Beschreibung
ID
Input
DWORD
E, A, M, D, L oder Konstante



  • low word: logische Adresse der DP-Slave- / PROFINET-IO-Komponente (Baugruppe
    bzw. Modul)

  • high word: irrelevant
STATUS
Output
DWORD
E, A, M, D, L
enthält die Fehlerinformation von "DPRD_DAT" in der Form DW#16#40xxxx00
LEN
Output
INT
E, A, M, D, L
Anzahl der gelesenen Daten in
Bytes
INPUTS
InOut
ANY
E, A, M, D
Zielbereich für die gelesenen Daten.
Er muss genauso lang sein, wie Sie für die selektierte DP-Slave-
/ PROFINET-IO-Komponente projektiert haben. Es ist nur der Datentyp BYTE
zulässig.

Das ist die Hilfe der Eingangssignalen bei der GETIO.

Es ist nur der Datentyp BYTE zulässig

Es ist aber von ANY, er nehmt Byte, Pointer , Array und so weiter

Bram
 
Zuletzt bearbeitet:
Das ist die Hilfe der Eingangssignalen bei der GETIO.



Es ist aber von ANY, er nehmt Byte, Pointer , Array und so weiter

Bram

Die Beschreibung habe ich auch schon gefunden. aber irgendwie werde ich hier nicht schlau.
Ich habe in der PLC Variablen ein Variable mit dem Namen: SCHUNK_PRH_IN_BYTE_1 erstellt (ist vom Type Byte und ist auf der %IB256 (erstes Byte vom Input)).
Weiters habe ich eine eigenen Datenstruktur (PRH_IN) erzeugt, welches die Antwort Bytes beinhaltet (z.b. Type 1 Byte, Status 1 Byte,..).

Danach wollte ich alles ab Adresse SCHUNK_PRH_IN_BYTE_1 in eine Variable data (von Datentyp PRH_IN) kopieren.
Code:
#GETIO_PRH_DB(ID:=SCHUNK_PRH_IN_BYTE_1, INPUTS:=#data);

Ich erhalte hier aber jetzt "Ungültiger Ausdruck". Woher weiß das GETIO eigentlich wie viele Bytes kopiert werden müssen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du willst es in SCL machen ?

Im Input leg Mann fest wie viel Byte gelesen werden sollte.
Es ist auch es Zielbereich. Nicht die 256 er Adressen der Periferie verwenden.

Code:
 "GETIO_DB_1"(ID:=#ID,
             STATUS=>#STATUS,
             LEN=>#LEN,
             INPUTS:=#INPUTS);

Ich bin nicht de SCL-Spezialist. In SCL könnte es aber so aussehen

Datentypen nimmt er nicht am Input sehe ich gerade..
 
Zuletzt bearbeitet:
ID ist einfach eine Zahl, hier also 256 bzw. 16#100.
Die Länge des Datentyps Input legt fest, wie viele Bytes gelesen werden sollen,
wobei das aber exakt so viele sein müssen, wie das Modul der jeweiligen Basisadresse hat, in deinem Fall also 8 bzw. 16.

Desweiteren gibt es auf der Schunk-Seite so nach kurzer Suche ein S7-300 Beispielprojekt, welches auch im S7-Kontext entsprechend beschrieben ist.

Mfg
Manuel
 
Du willst es in SCL machen ?

Im Input leg Mann fest wie viel Byte gelesen werden sollte.
Es ist auch es Zielbereich. Nicht die 256 er Adressen der Periferie verwenden.

Code:
 "GETIO_DB_1"(ID:=#ID,
             STATUS=>#STATUS,
             LEN=>#LEN,
             INPUTS:=#INPUTS);

Ich bin nicht de SCL-Spezialist. In SCL könnte es aber so aussehen

Datentypen nimmt er nicht am Input sehe ich gerade..

Ich habe den Fehler gefunden. Blöderweise habe ich die "," zwischen den Parametern vergessen.
Bei ID habe ich folgendes eingetragen: DW#16#3 (Profibus Adresse vom Motor). Stimmt das? Ich verstehe dein Satz im letzten Post nicht ganz.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Welche Satz meinst du ?

Was ist bei ID ein zu stellen, ja gute Frage.
Wie Manuel sagt die 256(Dezimal) oder 100(Hexadezimal)
Da könnte auch die Profibusadresse gemeint sein so wie du es schon gemacht hast.
Einfach mal online ausprobieren.

Bram
 
Ich verstehe folgenden Satz nicht ganz:
Es ist auch es Zielbereich. Nicht die 256 er Adressen der Periferie verwenden.

Aber ich versuche es einfach am Dienstag mit beiden Werten. Ich sollte schnell herausfinden wie es geht. Danke noch einmal für eure ausgezeichnete Hilfe.
 
Du musst die HardwareID nehmen ein und ausgangsbereich nehmen. Also dort wo du die Adresse 256 hast, hast du zusätzlich eine HardwareID. Den Namen den du dem Bereich gegeben hast, hat eine Systemkonstante die du dem GETIO ind SETIO übergeben kannst.
 
Zurück
Oben