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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Jemand Erfahrung mit EL6021 von Beckhoff??

  1. #11
    Registriert seit
    11.06.2007
    Beiträge
    162
    Danke
    3
    Erhielt 16 Danke für 16 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von mcs5154 Beitrag anzeigen
    @Cerberus:
    Meinst Du die Konfiguration mittels Control- und Status-Wort?
    Die Konfiguration über Control- und Status-Wort geht nur beim K-Bus. Oder?

    Beim E-Bus werden Control- und Status-Wort für das Versenden und Empfangen von Daten verwendet.

    Zitat Zitat von mcs5154 Beitrag anzeigen
    @Cerberus:
    Das habe ich jetzt auch probiert. Das Senden über RS422 an ein ext. Gerät scheint zu funktionieren. Es kommen aber keine Daten (DataIn0...) zurück,
    Status toggelt zwischen 0 und 1. Und das obwohl ich am Oszi Datenpakete auf der Empfangsleitung sehe. Eine Variable namens SerCtrl gibt es hier nicht.
    Welches Status Bit toggelt? Bit0 oder Bit1 ? Bit0 bestätigt das Senden und Bit1 wird getoggelt wenn Daten empfangen wurden.

    Gruss

    Thomas

  2. #12
    Registriert seit
    06.02.2008
    Beiträge
    5
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Stimmt, ich versuche den Versand und Empfang von Daten auf dem E-Bus.

    Im Moment toggelt Bit 0 des Status-Worts.

    Kurz was ich bisher versuche:

    Ich initialisiere die Klemme indem ich 0x0004 in Crtl schreibe, dann Status auf 0x0004 abfrage, danach 0x0000 in Ctrl schreibe und Status auf 0x0000 abfrage. Das scheint zu klappen.

    Danach habe jeweils ein Byte in DataOut0 bis DataOut4 geschrieben und Ctrl auf 0x0201 gesetzt. Dann frage ich Status auf >= 0x0001 ab und schreibe anschließend 0x1000 in Ctrl. Danach frage ich Status auf >= 0x000 ab. Die Daten sehe ich auch auf dem Oszi.

    Zum Abfgragen der empfangenen Daten gehe nach Beschreibung vor. Es erscheinen aber keine Daten in DataIn0..., nur Status wechselt immer von 0x030B nach 0x030A. Ich sehe aber einen Datenstrom auf dem Oszi.

    Habe 9600 Baud und 8N1 eingestellt. Intervall des Tasks liegt bei 1ms.

    Vielleicht falsches timing zwischen Versand und Empfang? Oder falsche Abfrage von Ctrl?

    Gruß
    mcs

  3. #13
    Registriert seit
    11.06.2007
    Beiträge
    162
    Danke
    3
    Erhielt 16 Danke für 16 Beiträge

    Standard

    Das Empfangen funktioniert ja du holst die Daten einfach nicht ab.

    Status: 0x030B

    Das 3 bedeutet 3 Byte empfangen.

    Das B sieht binär 1011 aus.
    1011 -> Ist dieses Bit 1 läuft der Buffer über.
    ^

    1011 -> Sobald dieses bit ändert müssen die Daten ausgelesen werden.
    __^ Nach dem Auslesen muss das Bit Control.1 getoggelt werden,
    damit die nächsten Daten vom empfangsbuffer übertragen werden.

    Ablauf empfang:
    -Status.1 wird TRUE dann Daten auslesen und Control.1 auf TRUE setzten.
    -Status.1 wird FALSE dann Daten auslesen und Control.1 auf FALSE setzten.
    -Status.1 wird TRUE dann Daten auslesen und Control.1 auf TRUE setzten.
    - und so weiter ....


    Ablauf senden:
    -Daten schreiben Control.0 auf TRUE.
    -Status.0 wird TRUE neue Daten in Buffer schreiben Control.0 auf FALSE setzten
    -Status.0 wird FALSE neue Daten in Buffer schreiben Control.0 auf TRUE setzten
    -Status.0 wird TRUE neue Daten in Buffer schreiben Control.0 auf FALSE setzten
    - und so weiter ....

    Gruss
    Thomas
    Geändert von Bührer (13.02.2008 um 15:00 Uhr)

  4. #14
    Registriert seit
    06.02.2008
    Beiträge
    5
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für den Tipp.

    Habe das versucht umzusetzen, ging aber immer noch nicht.
    Nun habe ich nochmal versucht genau die Bitfolgen des Control-
    und Status-Wortes von der Hilfe-Seite abzufragen.

    Sieht so aus:

    Initialisierung (1x): (STATUS_WORD und CONTROL_WORD sind jeweils mit Ctrl und Status verlinkt)

    Zaehler := 0;

    IF Zaehler = 0 THEN

    CONTROL_WORD := 16#0004;
    IF STATUS_WORD = 16#0004 THEN
    CONTROL_WORD := 16#0000;
    END_IF
    IF STATUS_WORD = 16#0000 THEN
    RTS := TRUE;
    Zaehler := 1;
    END_IF
    END_IF

    Daten senden: (D0...D4 sind mit den Ausgängen verlinkt)

    D0 : BYTE := 16#0041; (* A *)
    D1 : BYTE := 16#0044; (* D *)
    D2 : BYTE := 16#0052; (* R *)
    D3 : BYTE := 16#003F; (* ? *)
    D4 : BYTE := 16#003B; (* ; *)

    IF RTS = TRUE THEN
    CONTROL_WORD := 16#0201;
    IF (STATUS_WORD AND 16#0001) = 16#0001 THEN
    CONTROL_WORD := 16#1000;
    END_IF
    IF (STATUS_WORD AND 16#0000) = 16#0000 THEN
    RTS := TRUE;
    END_IF
    Zaehler := Zaehler + 1;
    IF Zaehler = 4 THEN
    Zaehler := 0;
    RTS := FALSE;
    RTR := TRUE;
    END_IF
    END_IF

    Daten empfangen: (Din0...Din10 sind mit den Eingängen verlinkt)

    Din0 : BYTE;
    .
    .
    .
    Din10 : BYTE;

    IF RTR = TRUE THEN
    IF (STATUS_WORD AND 16#0302) = 16#0302 THEN
    CONTROL_WORD := CONTROL_WORD AND 16#0002;
    END_IF
    IF (STATUS_WORD AND 16#1600) = 16#1600 THEN
    CONTROL_WORD := CONTROL_WORD AND 16#0000;
    END_IF
    Zaehler := Zaehler + 1;
    IF Zaehler = 2 THEN
    Zaehler := 0;
    RTS := TRUE;
    RTR := FALSE;
    END_IF
    END_IF

    Ergebnis, Daten werden noch versandt, die Klemme zeigt aber keine empfangenen Daten mehr an.

    Gruß
    mcs

  5. #15
    Registriert seit
    11.06.2007
    Beiträge
    162
    Danke
    3
    Erhielt 16 Danke für 16 Beiträge

    Standard

    Zitat Zitat von mcs5154 Beitrag anzeigen

    Daten senden: (D0...D4 sind mit den Ausgängen verlinkt)

    D0 : BYTE := 16#0041; (* A *)
    D1 : BYTE := 16#0044; (* D *)
    D2 : BYTE := 16#0052; (* R *)
    D3 : BYTE := 16#003F; (* ? *)
    D4 : BYTE := 16#003B; (* ; *)

    IF RTS = TRUE THEN
    CONTROL_WORD := 16#0201;
    IF (STATUS_WORD AND 16#0001) = 16#0001 THEN
    CONTROL_WORD := 16#1000;
    END_IF
    IF (STATUS_WORD AND 16#0000) = 16#0000 THEN
    RTS := TRUE;
    END_IF
    Zaehler := Zaehler + 1;
    IF Zaehler = 4 THEN
    Zaehler := 0;
    RTS := FALSE;
    RTR := TRUE;
    END_IF
    END_IF
    Ist das Senden wirklich korrekt? So wie es für mich aussieht werden nur 2 Byte gesendet:

    CONTROL_WORD := 16#0201;
    _____________________^_______Das sind die Anzahl Bytes, welche gesendet werden. Wenn du willst das alles gesendet wird, muss hier 5 stehen.

    Zitat Zitat von mcs5154 Beitrag anzeigen

    Daten empfangen: (Din0...Din10 sind mit den Eingängen verlinkt)

    Din0 : BYTE;
    .
    .
    .
    Din10 : BYTE;

    IF RTR = TRUE THEN
    IF (STATUS_WORD AND 16#0302) = 16#0302 THEN
    CONTROL_WORD := CONTROL_WORD AND 16#0002;
    END_IF
    IF (STATUS_WORD AND 16#1600) = 16#1600 THEN
    CONTROL_WORD := CONTROL_WORD AND 16#0000;
    END_IF
    Zaehler := Zaehler + 1;
    IF Zaehler = 2 THEN
    Zaehler := 0;
    RTS := TRUE;
    RTR := FALSE;
    END_IF
    END_IF
    (STATUS_WORD AND 16#0302) = 16#0302 sollte so sein (STATUS_WORD AND 16#0002) = 16#0002

    3 ist die Anzahl empfangenen Bytes, die kennst du aber gar nicht, oder? Falls du 4 Byte empfängst funktioniert deine Abfrage nicht mehr.

    Gruss

    Thomas

  6. Folgender Benutzer sagt Danke zu Bührer für den nützlichen Beitrag:

    mcs5154 (19.02.2008)

  7. #16
    Registriert seit
    06.02.2008
    Beiträge
    5
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Bührer:

    Dein Beitrag von gestern hat mein Problem gelöst!
    Die Kommunikation mit dem externen Gerät läuft jetzt.

    Auf die Anzahl der empfangenen und gesendeten Byte habe ich vorher
    nicht wirklich geachtet. Und wieviele Bytes zurückkommen, ist jedesmal unterschiedlich.

    Mcs bedankt sich...bis zur nächsten Frage.

    Gruß
    mcs

Ähnliche Themen

  1. MP-Bus, hat jemand Erfahrung damit
    Von Controllfreak im Forum Feldbusse
    Antworten: 4
    Letzter Beitrag: 18.11.2010, 09:12
  2. Hat jemand Erfahrung mit WinPLC
    Von Feldmann im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 16.07.2009, 19:11
  3. Phoenix Contact FL IL 24 BK-PAC Jemand Erfahrung??
    Von MRT im Forum PHOENIX CONTACT
    Antworten: 4
    Letzter Beitrag: 17.12.2008, 09:15
  4. Beckhoff Hutschienen-PCs - hat da jemand Erfahrung mit?
    Von HSThomas im Forum Sonstige Steuerungen
    Antworten: 12
    Letzter Beitrag: 22.03.2007, 11:05
  5. Panasonic Matsushita FP0 ?? Hat da jemand erfahrung?
    Von stefand im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 27.07.2005, 17:20

Lesezeichen

Berechtigungen

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