# Simodrive 611U Telegrammerweiterung - Problem Kommunikation mit PLC



## Stefan1312 (18 März 2021)

Hallo,

Ich habe derzeit die Aufgabe ein PLC Programm  (Siemens  313C) für einen Simodrive 611U zu erweitern. In Step7 war ursprünglich  ein Telegramm "2Achs, PZD-10/10 (105 kons) in Verwendung.

Achse A: Positionierbetrieb (Telegramm 110 - "Positinieren MDI" )
Achse B: Drehzahlregelbetrieb (Telegramm 101 - Drehzahlregelbetrieb)

Die Kommunikation hat hierbei problemlos funktioniert.

Ich wollte nun ein anderes Telegramm: 2 Achs PKW+PZD -12/7 (110,kons) bzw 2Achs PKW+PZD-16/16 verwenden



AchseA: (Telegramm 110 - "Positionieren MDI" )
AchseB: Drehzahlregelbetrieb (Telegramm 101 - Drehzahlregelbetrieb)

Bei der Konfiguration für die Antriebe habe ich den Anfang für die E/A Adressen verändert

Antrieb A : 256
Antrieb B : 296

WR_PZD, sowie RD_PZD habe ich soweit gleich gelassen, da sich die Adressen der jeweiligen Steuer und Zustandsworte in DB71 
und DB72 dadurch nicht geändert haben. (Foto im Anhang)


Sobald ich die Konfiguration auf die Steuerung lade kann ich mit
Antrieb A kommunizieren, 




Antrieb B zeigt mir jedoch gar nichts an... Kein Zustandswort (außer die AnalogEingänge ) und kein Steuerwort.






Sieht hier jemand einen Fehler? / Habe ich vl irgendetwas übersehen?? .. bin leider gerade etwas ratlos... 

Vielen Dank für eure Hilfe!!

LG Stefan


----------



## DeltaMikeAir (18 März 2021)

Da sich die E/A Adressen der Achse 2 in der HW Konfig geändert haben, hast du dein SPS Programm entsprechend angepasst?


----------



## Stefan1312 (18 März 2021)

Hallo Mike,

Ja also die Daten von Achse A beginnen bei 256 und jene von Achse B bei 296. Diese beiden Adressen habe ich 
auch als LADDR in der PLC beim Aufruf des FB´s verwendet.


LG


----------



## Oberchefe (18 März 2021)

Du hast eine Lücke bei den Adressen zwischen 303 und 316. Ich würde vermuten dass anstatt der 316 die 304 stehen müsste (E und A).


----------



## Stefan1312 (19 März 2021)

Hallo Oberchefe,

Vielen Dank für deine Hilfe! - ich habe bei dem  Antrieb nun die Adressen soweit verändert, das keine Lücke mehr zwischen  den Adressen besteht und versuchsweise Telegramm 110 verwendet. Die  Adressen konnte ich jedoch zu Beginn nicht umstellen, da diese von einer  Analog Baugruppe verwendet wurde.

Erst als ich der Analog  Baugruppe eine andere Adresse zugewiesen habe, hat auch die  Adressänderung für den Antrieb soweit funktioniert. (FRAGE 1)

Im  Aufruf von FB83 hatte ich zunächst die Anfangsadressen (Achse A:  256/Achse B: 288 angepasst- und die Parameter WR_PZD:=  "Achse_A".p.WR_PZD_POSBETR sowie RD_PZD:="Achse_A".p.RD_PZD_POSBETR  gleich gelassen. ( Wie bei Telegramm PZD+PKW /10, 10)

Hierbei konnte ich jedoch die Achse A NICHT ansprechen - die Kommunikation zw PLC und Antrieb hat nicht mehr funktioniert.

Erst  als ich für WR_PZD:= P#DB71.DBX166.0 Byte 24 sowie für  RD_PZD:=P#DB71.DBX206.0 BYTE 14 hinterlegt habe, hat die Kommunikation  wieder funktioniert. -> also den Adressbereich wo das STW1 anfängt im  DB71 (166.0) + die Länge des Steuerworts (24 Byte) ( Die Werte habe ich aus der Toolbox Doku "611u 39gr" entnommen)

Kann mir vl. jemand erklären warum? 

Warum  ursprünglich im alten Telegramm rein die Anfangsadresse im DB71  funktioniert hat, jetzt bei diesem Telegramm aber anscheinend die  Startadresse + die Länge des Telegramms angegeben werden muss? habe ich  hier iwas übersehen? / falsch verstanden?

Bezüglich der Frage 1:  Normalerweise verwende ich immer die automatisch Adresszuweisung für die  Baugruppen. In diesem Fall war dies jedoch nicht möglich, da ich  ansonsten die Adressen für den Antrieb nicht verwenden hätte können. wie  handhabt ihr solche Probleme ?  vl gibts hier einen "besseren" Workflow.. 
aber ich bin schon sehr froh, dass ich meine Achsen soweit wieder ansprechen kann! 

(Bilder kommen noch!)

Vielen Dank für die schnelle Hilfestellung!!

LG Stefan


----------



## Oberchefe (19 März 2021)

Also generell:
wenn du einem Baustein eine Hardwareadresse zum Kommunizieren angeben musst, kannst du davon ausgehen, dass die Adressen zusammenhängend (und in der richtigen Reihenfolge) adressiert sein müssen, der Baustein kommuniziert ja nicht nur über die angegebene Adresse sondern das ist für ihn nur der Startpunkt. Ich vergebe die Adressen generell von Hand


----------



## Stefan1312 (19 März 2021)

Das Telegramm PKW+PZD 12/7 funktioniert nun soweit..  danke!

Ich wollte nun das Telegramm PKW+PZD 16/16 verwenden, da ich über ein frei projektierbares Telegramm mehrere Prozesswerte gleichzeitig auslesen wollte.
Hier tritt noch folgendes Problem auf: 

Sobald ich "enable_SFC_PZD" auf true setze kann ich auf die Bits von Achse A und Achse B nicht zugreifen, sobald ich "enable_SFC_PZD" auf false setze kann ich auf die Bits wie gewohnt zugreifen.  - woran könnte das liegen? ( an der Größe des Telegramms vl? )

Falls mir diese Frage noch jemand beantworten kann, sind soweit einmal alle Fragen geklärt! 


LG Stefan


----------



## Oberchefe (19 März 2021)

Dieses BOOL muss laut dem Kommentar je nach angewählter Konsistenz angegeben werden. Gibt es bei der Hardwarekonfiguration noch andere Varianten? Es interessiert hier die Spalte "DP-Kennung"


----------



## Stefan1312 (19 März 2021)

Nein also bei den anderen Telegrammen ist dies immer angegeben.. PKW+PZD 12/7 (110, kons). Bei dem oben angeführten Telegramm gibt es keine zusätzliche Information. Es steht nur PKW+PZD 16/16. (oben im Bild kann man das Telegramm sehen) Das zweite Telegramm mit 16 Worten (PZD 16/16) überträgt dann den PKW Bereich nicht mehr.. PS: mit der Spalte DP Kennung war diese Information (110,kons) gemeint oder?


----------



## Oberchefe (19 März 2021)

Im Bild sieht es so aus, als werden nur jeweils 4 Bytes zueinander konsistent übertragen, aber nicht als Ganzes, dann muss das BOOL demzufolge False sein. Wenn du eine andere Kombination hast kann das anders aussehen.


----------



## Stefan1312 (20 März 2021)

Hallo!

Ich wollte mich noch einmal herzlich für eure Beiträge bedanken! und vor allem dass ihr euch die Zeit genommen  habt, mir hierbei zu helfen! :wink:
Konnte das Problem nun lösen. ( und bin auf meine Fehler aufmerksam geworden - auch ein älterer Beitrag von mir wurde damit beantwortet)

Kurze Zusammenfassung: 

Mein  Problem war, wie *Oberchefe *bereits geschrieben hat, dass die  Adressbereiche des Telegramms eine Lücke aufweisen. Nachdem ich die  Adressen nun angepasst habe und die Startadresse im Fb100 für den  Positionierbetrieb inkl. Größe des Telegramms angegeben habe ,hat alles  so funktioniert wie es sein soll.:wink: 

(PS: in der Doku ("611u39gr" stand hierbei auch diese Information, habe sie zu Beginn jedoch überlesen  )

Hardwarekonfiguration:



	

		
			
		

		
	
Die Anfangsadresse von Antrieb_B war hierbei zu Beginn 278 und die Ausgangsadresse 288, diese müssen jedoch gleich sein!

Konfiguration von FB100:


Anfangsadresse Antrieb A: 256

P#DB71.DBX166.0 BYTE 24:
 Beginn von Steuerwort (STW) bei DBX166.0 - das Telegramm enthält 12 (Steuer)Worte = 24 Byte 7 Zustandsworte = 14 Byte ( Beginn bei DBX206.0) für Positionierbetrieb

 enable_SFC_PZD:=TRUE (110,kons) - Konsitente Datenübertragung möglich

Zustandswort: Beginn bei DBX 206.0



Steuerwort: Beginn bei DBX 166.0



und hier noch ein kleiner Auszug aus SimuCom U:




Spindelpositionieren:

Habe hierbei Telegramm 101 (n-Soll) auf Telegramm 0 umgestellt, um das Telegramm frei konfigurieren zu können
und die Analogwerte (Wort 6 und 7) mit den Sollwerten XSP_H, XSP_L (Positionssollwert für Spindelpositionieren) ausgetauscht.

Hoffe das dieser Beitrag noch weiteren Lesern weiterhilft 

Im diesem Sinne noch einmal Vielen Dank!

LG Stefan


----------

