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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 31

Thema: RS485 Modbus Topologie ?

  1. #21
    Registriert seit
    25.06.2008
    Ort
    Blomberg/Lippe
    Beiträge
    1.243
    Danke
    49
    Erhielt 123 Danke für 117 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Kayle: Wo hast du festgelegt, welcher Pin für die Sende-/Empfangsrichtung zuständig ist?

    @Senator42: Das hat mich schon immer genervt. Auch beim Raspberry Pi.
    Ich nutze übriegens den SN65HVD1786D von TI.
    Gruß
    Mobi


    „Das Einfache kompliziert zu machen ist alltäglich. Das Komplizierte einfach zu machen –
    das ist Kreativität“ (Charles Mingus).

  2. #22
    Kayle ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2014
    Beiträge
    137
    Danke
    28
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Zitat Zitat von Senator42 Beitrag anzeigen
    Dann mal eine LED mit Vorwiderstand an den Sender_Enable_Pin löten.
    Ich kann mir vorstellen, dass der "Sender" nicht (mehr) abgeschaltet wird.
    Sollte also mind. 3 Leitungen zum RS485 Treiber gehen:
    RxD, TxD und die RE,DE zum Sender und Empfänger (meist parallel).

    Mobi kann das auch am Code erkennen.

    @Mobi:
    > Immer dieses "speziell für Arduino"
    so funktioniert das "Marketing".
    (Ich benutze den SN75176 auch wenn der ca. 50mA braucht, der Max so um 1mA.)
    Der RE,DE Pin ist Parallel am Arduino D4 angeschlossen. So auch im Code deklariert. Habe oben in meinem Beitrag Schaltplan und Layout hinzugefügt.

    Gruß Kay

  3. #23
    Kayle ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2014
    Beiträge
    137
    Danke
    28
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Zitat Zitat von Mobi Beitrag anzeigen
    @Kayle: Wo hast du festgelegt, welcher Pin für die Sende-/Empfangsrichtung zuständig ist?

    @Senator42: Das hat mich schon immer genervt. Auch beim Raspberry Pi.
    Ich nutze übriegens den SN65HVD1786D von TI.
    Hier:
    Code:
    modbus_configure(9600, 1, 4, TOTAL_REGS_SIZE, 0);
    Die 4 zeigt auf D4.

  4. #24
    Registriert seit
    25.06.2008
    Ort
    Blomberg/Lippe
    Beiträge
    1.243
    Danke
    49
    Erhielt 123 Danke für 117 Beiträge

    Standard

    Ah ok. Wundert mich nur.
    Weil ich u.a. sowas gefunden hab:
    Code:
    modbus_configure(&Serial1, baud, SERIAL_8N2, SlaveID, TxEnablePin, HOLDING_REGS_SIZE, holdingRegs);

    Ich kenne natürlich die Modbus Lib von Arduino nicht, aber normalerweise müsste die ja funktionieren.

    Hast du mal am PC mit Hilfe des USB-RS485-Adapters einen Master simuliert und mal selber getestet?

    Gruß
    Mobi


    „Das Einfache kompliziert zu machen ist alltäglich. Das Komplizierte einfach zu machen –
    das ist Kreativität“ (Charles Mingus).

  5. #25
    Registriert seit
    25.06.2008
    Ort
    Blomberg/Lippe
    Beiträge
    1.243
    Danke
    49
    Erhielt 123 Danke für 117 Beiträge

    Standard

    Dann müsste deins vielleicht so aussehen:
    Code:
    modbus_configure(&Serial1, 9600, 1, 1, 4, TOTAL_REGS_SIZE, holdingRegs);
    Gruß
    Mobi


    „Das Einfache kompliziert zu machen ist alltäglich. Das Komplizierte einfach zu machen –
    das ist Kreativität“ (Charles Mingus).

  6. #26
    Kayle ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2014
    Beiträge
    137
    Danke
    28
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Habe nochmal im Samples Ordner der lib nachgesehen und dort wird der Slave wie folgt konfiguriert:

    Code:
    void setup()
    {
    /* parameters(long baudrate,
    unsigned char ID,
    unsigned char transmit enable pin,
    unsigned int holding registers size,
    unsigned char low latency)
    The transmit enable pin is used in half duplex communication to activate a MAX485 or similar
    to deactivate this mode use any value < 2 because 0 & 1 is reserved for Rx & Tx.
    Low latency delays makes the implementation non-standard
    but practically it works with all major modbus master implementations.
    */
    modbus_configure(115200, 1, 2, TOTAL_REGS_SIZE, 0);
    pinMode(ledPin, OUTPUT);
    pinMode(buttonPin, INPUT);
    }
    Was mir allerdings auffällt ist -> der D4 wird nicht als Output deklariert im Programm. Auch nicht im Sample der Lib. Vielleicht liegt es ja daran. Werde das morgen mittag mal probieren und mich melden.

    Danke für Eure Hilfe
    Gruß Kay

  7. #27
    Kayle ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2014
    Beiträge
    137
    Danke
    28
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Hallo an alle Helfer,

    es funktioniert jetzt. Problem waren die nicht vorhandenen BIAS Widerstände um den Pegel auf dem Bus auf einem definierten Wert zu halten. Ohne Widerstände lag die Spannungsdifferenz zwischen A und B bei 140mV. Für RS485 laut Spezifikation zu wenig ( > 200mV ). Nach dem ich die Widerstände verbaut hatte lag die Differenz bei 260mV. So funktioniert es.

    Es hängt wohl stark am Transceiver ob die BIAS Widerstände gebraucht werden oder nicht.

    Gruß Kay

  8. #28
    Registriert seit
    25.06.2008
    Ort
    Blomberg/Lippe
    Beiträge
    1.243
    Danke
    49
    Erhielt 123 Danke für 117 Beiträge

    Standard

    Je nachdem wieviele Transceiver es im Bus gibt, musst du den Passenden auswählen, das sagt Unit Load aus. Ich hab extra einen genommen der bis zu 256 Nodes unterstützt.
    Mich wundert es, dass Wago nicht die Bias-Widerstände drin hat. Bei Phoenix sind sie integriert.
    Gruß
    Mobi


    „Das Einfache kompliziert zu machen ist alltäglich. Das Komplizierte einfach zu machen –
    das ist Kreativität“ (Charles Mingus).

  9. #29
    Kayle ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2014
    Beiträge
    137
    Danke
    28
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Bei mir sind es maximal 32. Ich werde es morgen an der Wago testen.

    Gruß Kay

  10. #30
    Kayle ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2014
    Beiträge
    137
    Danke
    28
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Mobi,

    habe heute das ganze an der Wago probiert. Zuerst Abschlusswiderstände am Anfang und Ende vom Bus. Dann die Spannungsdifferenz gemessen = 34,6mV. BIAS Widerstände installiert, getestet, geht

    Frage: Nutzt Du den Modbus Konfigurator ? Wenn ich den Task für den Modbus auf 500ms stelle wird jeder Slave aber erst alle 9 Sekunden abgefragt. Wenn ich mit dem Windows PC über den RS485 USB Adapter die Slaves abfrage geht das direkt ( besser gesagt alle 500ms direkt ). Hast Du dafür eine Erklärung ?

    Gruß Kay

Ähnliche Themen

  1. Nochmal KL6021 Modbus RS485
    Von cas im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 02.02.2013, 00:43
  2. Modbus RS485 Ascii
    Von vollmi im Forum Feldbusse
    Antworten: 3
    Letzter Beitrag: 02.11.2011, 11:08
  3. Profibus/DP vs. Modbus/RS485
    Von senmeis im Forum Feldbusse
    Antworten: 6
    Letzter Beitrag: 18.08.2011, 00:05
  4. Abschlusswiderstaende fuer Modbus (RS485)
    Von senmeis im Forum Feldbusse
    Antworten: 9
    Letzter Beitrag: 05.06.2011, 00:26
  5. Modbus RS485 Master
    Von bastian c im Forum Feldbusse
    Antworten: 4
    Letzter Beitrag: 23.04.2011, 13:30

Lesezeichen

Berechtigungen

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