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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 21

Thema: Beckhoff EL6002 - Prbleme beim Senden/Empfangen von Strings

  1. #11
    Registriert seit
    03.12.2015
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ok, verstehe. Dann mach ich das mal für alle durch. Die TwinCat-Version ist eigentlich noch ziemlich neu, ich hoffe nicht , dass es daran liegt. Ich habe parallel mal den Beckhoff Support kontaktiert und lass mich da auch mal belehren. Ich wünsche dir/euch auf jeden Fall ein schönes Wochenende. Vllt schreibt man sich nächste Woche wieder, Danke bis hier hin!

  2. #12
    Registriert seit
    03.12.2015
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Neue Woche neues Glück. Ich habe nun auch Antwort vom Beckhoff Support bekommen, auch hier wird deine Antwort bestätigt Paulchen_1. Ich habe nun nach deiner Anleitung die Variablen verknüpfen können, bekomme aber dann einen Verknüpfungskonflikt angezeigt (s. Bild). Ich weiß leider noch nicht genau an was es liegt. Update: Inzwischen ist der Konflikt behoben, ich hatte eine alte Verknüpfung vergessen zu löschen. Jetzt become ich meinen String in ASCII an den Ausgang der Klemme. Jeder einzelne Buchstabe wird also umgewandelt in ASCII und einer Datenstruktur z.B. D[1] zugewiesen. Nur an meinem Trafo ändert oder sieht man keinerlei Reaktion. Wenn ich den Handshake RTS/CTS über coe-online auf TRUE setze bekomme ich den TXOverrun-Error, also lasse ich ihn auf FALSE. Einstellungen am Trafo habe ich keine vorgenommen. Laut Hersteller 19,2kBaud 8N1 und die Klemme habe ich auch darauf eingestellt. Wenn ich am Ausgang der Klemme über den SysMan sehe, dass Daten in den Data Out Felder ankommen, kann programmtechnisch nichts verkehrt sein, oder? Jemand eine Idee, warum sich am Trafo nichts tut?
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Strike (11.01.2016 um 10:41 Uhr)

  3. #13
    Registriert seit
    17.12.2015
    Beiträge
    32
    Danke
    0
    Erhielt 9 Danke für 9 Beiträge

    Standard

    Schwer zu sagen.
    Wenn du sicher bist, das die ASCII-Zeichen am Trafo ankommen, dann werden die vielleicht falsch interpretiert.
    Gesendet wird 'Sour:Voltac,230<lf>'. Die 230 werden hierbei auch in ASCII gewandelt, also 50,51,48.
    Oder muss hier z.B. die Zahl 230 direkt übertragen werden?
    Erwartet der Trafo vielleicht noch <Start of Text>, <End of Text> o.ä..
    Antwortet der Trafo denn mit irgendwelchen Zeichen?
    Gruß Paulchen

  4. #14
    Registriert seit
    03.12.2015
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ob das Zeichen am Trafo ankommt kann ich nicht sagen, ich habe aber das Zeichen am Ausgang der Klemme, soweit man das im SysMan sehen kann. Ein Startsymbol gibt es laut Hersteller nicht aber ein Endzeichen. Bei RS232 kann LF oder CR verwendet werden. Habe ich aber auch schon so eingegeben, der Trafo antwortet gar nicht. Vllt liegt es wirklich daran die 230 als Zahl einzugeben, ich schau da gleich nochmal nach.

  5. #15
    Registriert seit
    03.12.2015
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo zusammen,

    Problem ist gelöst!

    Ich habe wie du gesagt hast alles einzeln verknüpft, leider ohne Erfolg. Der Fehler lag dann an dem Endzeichen für den String. Mein Trafo erkennt entweder LF oder CR als Ende des Strings an, ich hatte es in den verschiedensten Versionen versucht zu schreiben. Da TwinCat den String automatisch in ASCII umwandelt, dachte ich, dass ich dafür einfach $10 bzw. $13 schreiben kann. Falsch gedacht, hier benötige ich die hex Schreibweise, komm da mal drauf. Hab es dann mit $0D versucht und siehe da, der Trafo reagiert!

    Vielen Dank an Paulchen_1, du hast mir echt weitergeholfen!

  6. #16
    Registriert seit
    03.12.2015
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zu früh gefreut...konnte es leider erst seit kurzem wieder testen...also nochmal zusammenfassend:

    ich möchte über eine EL6002 mit einem Trafo kommunizieren. Die Verknüpfungen und das Programm habe ich soweit hinbekommen. Der Trafo reagiert auch, manchmal. Ich denke, dass mein gesendeter String nicht richtig gelesen wird und möchte daher gerne wissen, wie ich den String schreiben muss. Der Trafo und die Klemme sind wie folgt parametriert: 19,2 kBaud 8N1

    Laut Anleitung des Trafoherstellers besteht der zu sendende Befehl aus Schlüsselwort, Trennzeichen, Übergabewert und Endzeichen. Mehrere Befehle aus mehreren Schlüsselwörtern können durch einen „:“ getrennt werden. Als Endzeichen sind entweder CR oder LF erlaubt.

    Befehl Bsp.:

    SOUR:VOLTAC,230 (Spannung 230V-AC)
    SOUR:CURR,0.5 (Strom 0.5A)
    SOUR:FREQ,50 (Frequenz 50Hz)
    OUTP,1 (Ausgangsrelais EIN)

    Über den Baustein SendString habe ich dann den Befehl in verschiedenen Variationen eingegeben.

    z.B.: ‘SOUR:VOLTAC,230:SOUR:CURR,0.5:SOUR:FREQ,50:SOUR:OUTP,1$0D’

    Dies hat aber nicht (immer) funktioniert. Was funktioniert hat war:

    ‘SOUR:VOLTAC,230:SOUR:VOLTAC,230:SOUR:FREQ,50:SOUR:FREQ,50$0D’ (zwei gleiche Befehle deswegen, weil: ‘SOUR:VOLTAC,230:SOUR:FREQ,50$0D‘ nicht funktioniert hat)

    Und in einem zweiten SendString Baustein:

    ‘SOUR:OUTP,1$0D‘

    Mit diesen zwei SendString Befehlen hat sich der Trafo auf 230V und 50 Hz eingestellt und anschließend das Ausgangsrelais eingeschaltet. Was mache ich falsch oder liegt es doch nicht am Befehl?

    Vielen Dank im Voraus.

  7. #17
    Registriert seit
    07.06.2007
    Beiträge
    143
    Danke
    2
    Erhielt 24 Danke für 24 Beiträge

    Standard

    Ich weiß nicht ob das mit $0D funktioniert. Bei Codesys kenne ich dafür nur $R oder $N als carriage return und line feed. Vielleicht ist das das Problem. Ansonsten vielleicht die Baudrate runterstellen oder deine Verkabelung prüfen?

    Du hast auch wenn ich das richtig sehe die Parität auf "None" gestellt (8N1). Hier werden Fehler vollkommen ignoriert. Kann dein Netzteil auch Paritätsprüfung der Daten ? Dann könnte das Netzteil fehlerhaft empfangene Daten erkennen.

    Ansonsten: Bekommst du eine Rückmeldung ob der Befehl empfangen wurde? Zum Beispiel ein "OK" oder irgendwas? Du könntest auch die Kommandos einzeln schicken.
    Geändert von excelite (28.02.2016 um 02:49 Uhr)

  8. #18
    Registriert seit
    19.09.2015
    Beiträge
    31
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    kann es sein, dass der Komandstring zu lang ist ? oder musst du eine reihenfolge einhalten: erst die Settings des Netzteils einstellen und dann einschaten ?

  9. #19
    Registriert seit
    03.12.2015
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Die Verkabelung habe ich überprüft, daran liegt es nicht. Das Endzeichen $0D habe ich aus dem Beispiel entnommen, kann es aber mal mit $R bzw. $N versuchen. 8N1 ist vom Hersteller vorgegeben, dementsprechend habe ich die Klemme konfiguriert. Von einer bestimmtem Reihenfolge steht nichts im Handbuch, werde den Hersteller nochmals kontaktieren.

  10. #20
    Registriert seit
    08.04.2016
    Beiträge
    1
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Schönen Freitag euch Allen,

    da ich eine ähnliche Frage habe stelle ich sie mal hier.

    Zu meiner Konfiguration:

    TwinCAT NC PTP v2.11.2249

    CONlibV2 1.8.08

    Win 7 32bit PC mit ComPort

    Zu meiner Frage:

    Ich möchte gern eine Stereo Vorstufe (Rotel RC-1570) mit TwinCAT steuern. Befehle werden aktuell mit den Baustein SendString gesendet, dass funktioniert auch wunderbar.

    Die Antworten der Vorstufe möchte ich mit den ReciveString Baustein einlesen.

    Mein Baustein Aufruf sieht so aus:


    (*Empfangen*)


    fbRecive(
    Prefix := '',
    Suffix := '',
    Timeout :=T#1s ,
    Reset := FALSE,
    ReceivedString := HV_EmpfangeString,
    RXbuffer := Com_RxBuffer ,
    StringReceived => ,
    Busy => ,
    Error => ,
    RxTimeout =>
    );


    Edge(
    CLK :=fbRecive.StringReceived ,
    Q =>
    );


    IF Edge.Q THEN
    Last_String := HV_EmpfangeString;
    END_IF

    Es wird allerdings nur ein Teil oder garkein String empfangen. Ich glaube das der Baustein nicht weiß wann der gesendete String endet.

    Hier mal das Protokoll : http://rotel.com/sites/default/files...20Protocol.pdf

    Hoffe es kann mir wer helfen. Super Forum hier, hat mir schon oft geholfen.

    Gruß HA_Freak

Ähnliche Themen

  1. Beckhoff CX9000 SMS senden und Empfangen
    Von b_lisa im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 27.08.2011, 10:14
  2. Can Nachrichten senden / empfangen
    Von fdisk im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 09.08.2011, 16:30
  3. Antworten: 0
    Letzter Beitrag: 17.08.2010, 10:46
  4. Antworten: 7
    Letzter Beitrag: 03.04.2008, 21:32
  5. Senden und Empfangen von anderen CPUS
    Von Anonymous im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.03.2005, 12:58

Lesezeichen

Berechtigungen

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