Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 10 von 10

Thema: PROBLEM: KOMMUNIKATION CP341 <----> FREMDSTEUERUNG (AB

  1. #1
    Registriert seit
    19.06.2003
    Beiträge
    141
    Danke
    0
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen

    Ich muss mit meiner CP341 Daten (INT und DINT) aus der Fremdsteuerung (ABB-Master Piece 200) holen (FETCH).
    Die Schnittstellen funktionieren einwandfrei.

    Problemstellung:
    Daten im INT-Format die von der Fremdsteuerung bereitgestellt werden kann ich einwandfrei holen und 1 zu 1 in die S7 verwenden. Soweit alles o.K.

    Bereitgestellte Daten im DINT-Format kann ich verrückterweise nicht 1 zu 1 übernehmen, d.h. Solange die Fremdsteuerung einen Wert von bis zu 65534 bereitstellt, holt die S7 den Wert 0 ein???? Ab einem Wert von 65535 holt die S7 eigenartige sonstige Werte, die aber nicht weit vom tatsächlichem liegen.
    Es scheint ob die S7 (CP341) eingelesenen DINT-Werte nicht richtig interpretieren kann.

    Hat irgend jemand von euch solche oder ähnliche Erfahrungen gemacht???
    Dann bitte meldet euch, ich kann jegliche Hilfe gebrauchen.

    Mit freundliche Grüssen
    Churchill
    Zitieren Zitieren PROBLEM: KOMMUNIKATION CP341 <----> FREMDSTEUERUNG (AB  

  2. #2
    Registriert seit
    19.06.2003
    Beiträge
    2.205
    Danke
    85
    Erhielt 270 Danke für 179 Beiträge

    Standard

    Erfahrungen habe ich danit keine, nur scheint aus Deiner Beschreibung hervorzugehen, daß die untere Hälfte Wort des 32 Wortes nicht richtig gelesen wird (immer 0 bis 65534 (sollte es vielleicht bis 65535 (0xFFFF) so sein?))
    Mögliche Ursachen:
    1. ABB verwendet eine andere numerische Anfangsadresse für DINT (unwahrscheinlich)- Abhilfe: von der zu lesenden Adresse 2 (byte) abziehen oder addieren.
    2. ABB verwendet eine andere Anordnung des oberen/unteren 16-bit-Wortes (wahrscheinlicher) - Abhilfe:
    Du bekommst den Wert z.B. in DB10BD12

    Code:
    	L DB10&#58;DBW12	// eine Hälfte der 32-bit
    	T LW 0		//  zum tauschen
    	LDB10&#58;DBW14 	//2.Hälfte
    	T DB10&#58;DBW12	// in die 1. Hälfte der 32-bit	
    	L LW 0		
    	T DB10&#58;DBW14	// in die 2. Hälfte der 32-bit
    3. Du müstest beides kombinieren.
    4. Du liest die 16-bit Hälften (16-bit Übertragung klappt ja!) Deines DINT einzeln in die vertauschten Hälften deines Ziel-DBD ein.

  3. #3
    churchill ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.06.2003
    Beiträge
    141
    Danke
    0
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Hallo Zottel

    zuerst einmal Danke für deine Hilfestellung.

    Es ist so, ich hole/empfange diesen DINT-Wert im DB43.DBD24. Zur Beobachtung hatte ich in einem VAT einen Datenblock ab DB43.DBB20 bis DB43.DBB40 eingerichtet. Momentan wird testweise von ABB einen Wert von ungefähr 1000000 bereitgestellt.

    Wenn ich diesen Bereich im VAT betrachte, kann ich folgendes beobachten:
    DB43.DBB20 bis DBB26 ---> B#16#00
    DB43.DBB27 ---> B#16#45
    DB43.DBB28 bis DBB40 ---> B#16#00

    Ich vermute immer mehr das dieses Problem auf der S7-Seite entsteht.

    Anscheinend sind solche Fälle den SIEMENS-Leuten bekannt, aber eine konkrete Antwort auf dieses Problem bekomme ich von SIEMENS leider nicht!

    Wäre natürlich für weitere Vorschläge sehr dankbar.

    Mit freundlichen Grüssen
    Churchill

  4. #4
    Registriert seit
    19.06.2003
    Beiträge
    2.205
    Danke
    85
    Erhielt 270 Danke für 179 Beiträge

    Standard

    Das ist sehr seltsam. Bei einer Million sagt mein Taschenrechner
    0xF4240. Bei einer Million und fünf könnte dann das letzte Byte 0x45 sein.
    An welcher Stelle sagst Du der Simatic, das sie DINTs lesen soll? Einer meiner vorigen Vorschläge ging ja dahin, anstelle des DINTs 2 aufeinaderfolgende INTs zu lesen, z.B.
    INT von Adresse des DINT nach DBW24 und dann noch ein
    INT von Adresse des DINT+2 nach DBW26.
    Mit etws Glück steht nun das DINT in DBD 24. Wenn nicht, müsste man die Halbworte tauschen (oder die Reihenfolge der Ouell- oder Zieladressen).
    Um der Sache auf den Grund zu gehen, würde ich auf der ABB-Seite gezielt Datenwerte vorgeben oder einen Zähler einrichten und das Ergebnis in der Simatic beobachten.
    Welcher Art ist die Kommunikation? Profibus? Modbus?

  5. #5
    Anonymous Gast

    Standard

    Zitat Zitat von churchill
    von ungefähr 1000000 bereitgestellt.

    Wenn ich diesen Bereich im VAT betrachte, kann ich folgendes beobachten:
    DB43.DBB20 bis DBB26 ---> B#16#00
    DB43.DBB27 ---> B#16#45
    DB43.DBB28 bis DBB40 ---> B#16#00
    DB80.DBB 9 DEZ 69
    DB80.DBB 9 BIN 2#0100_0101
    DB80.DBD 10 DEZ L#1000000
    DB80.DBD 10 BIN 2#0000_0000_0000_1111_0100_0010_0100_0000

    also der wert den du erhälst ist schon schwer komisch.
    wenn man sich mal das bitmuster ansieht, so kann man deinen erhaltenen wert schieben wie man will und er taucht auf keinen fall im bitmuster von der millionen auf.

    ach so: was heisst ungefähr 1000000 ???
    kannst du nicht zum testen einen festen wert übergeben?
    denn nur so kann man überhaupt was ermitteln.


    mfg

  6. #6
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    5.090
    Danke
    91
    Erhielt 853 Danke für 581 Beiträge

    Standard

    nachtrag zu meiner mail als gast

    wenn man dein byte 27 mal in das bitmuster der millionen einfügt (ich denke das kann eigentlich nur das 3.byte sein) und das letzte byte auf null setzt, so erhält man folgendes.

    DB80.DBD 10 DEZ L#1000704
    DB80.DBD 10 BIN 2#0000_0000_0000_1111_0100_0101_0000_0000

    da du von ungefähr gesprochen hast, könnte das noch passen. aber das 2.byte (welches ja erst den "hohen" wert ergibt) scheint bei dir zu fehlen.


    setzt man nun den von dir erhaltenen wert in das 2.byte ein ergibt sich folgendes.
    DB80.DBD 10 DEZ L#4521984
    DB80.DBD 10 BIN 2#0000_0000_0100_0101_0000_0000_0000_0000

    das passt ja nun ganz und gar nicht.

    wie sieht denn dein vat aus, wenn du mal z.b. 2 int-werte übergibst.

    mfg volker

  7. #7
    churchill ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.06.2003
    Beiträge
    141
    Danke
    0
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Hallo zusammen

    wie ich im 1. Beitrag geschrieben habe, brauch ich gar nicht mehr die Bytes od. Worte zu tauschen od. ähnliches, da ich im VAT mehrere Blöcke vor und nach meinem Ziel DBD (DB43.DBD24) eingerichtet und beobachtet habe.

    Siehe mein letzter Beitrag.

    Also, im Prinzip wenn ich INT-Werte makellos holen und 1 zu 1 in der S7 darstellen kann, dann sollte es auch mit einem DINT-Wert klappen.

    (Kommunikationsprotokoll ist RK512)

    Danke für eure Hilfestellung, wäre aber immer noch für weitere Hilfe froh!

    mfG
    Churchill

  8. #8
    Anonymous Gast

    Standard

    Hallo Churchill,

    erstmal solltest Du nach einem Reset im Kopf ganz neutral nocheinmal Deine Adressierung anschauen. Wenn die ersten 2 Bytes 0 anzeigen, klingt das danach, dass der Bus Deinen gewünschten Wert nicht in den Adressbereich schreibt, den Du Dir vorstellst.
    Kannst Du nicht nen Busmonitor anschalten und Dir das Busprotokoll anschauen??? Das hatte mir letztens bei meinem Problem geholfen.

    Ein guter Testwert ist die Zahl 312718533
    Im Hexformat ergibt das 12A3B4C5. Dann kannst Du wirklich alle Bytes beim Testen identifizieren.

    Sandrotchka

  9. #9
    Registriert seit
    30.08.2003
    Beiträge
    2.197
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo Churchill,

    hol doch einfach mal paar Bytes mehr aus der ABB ab. 4 Bytes über und 4 Bytes unter der erwarteten Stelle. Vielleicht haste auch nen denkfehler mit der Anfangsadresse bei ABB. Dann stell mal deine neuesten Erkenntnisse hier rein

    MfG
    André Räppel
    Zitieren Zitieren Kommunikation  

  10. #10
    churchill ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.06.2003
    Beiträge
    141
    Danke
    0
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Andrè

    zuerst einmal danke für deine dargebotene Hand.

    Betreffend deiner Antwort: Siehe mein 2. Beitrag vom 05.09.03.
    Sobald ich näheres weiss, werde ich die Lösung oder (noch besser) die entsprechende Erklärung hier in diesem Forum schreiben.

    Ich bedanke mich recht herzlich für eure Tips/Hilfen. Natürlich würden mich mehrere Hilfestellungen noch mehr erfreuen.

    mfG
    churchill

Ähnliche Themen

  1. Kommunikation CP341
    Von husox81 im Forum Simatic
    Antworten: 28
    Letzter Beitrag: 24.06.2011, 00:07
  2. Antworten: 2
    Letzter Beitrag: 02.02.2011, 15:17
  3. RK512 Problem mit CP341
    Von noeppkes im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 31.07.2008, 22:35
  4. Datenübertragung zu Fremdsteuerung CP-342-5
    Von Schnick und Schnack im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 28.07.2008, 19:21
  5. CP341 Kommunikation RK512
    Von mertens2 im Forum Simatic
    Antworten: 24
    Letzter Beitrag: 26.08.2006, 15:01

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •