Anybus Communicator Konfiguration

bycar

Level-1
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Schönen Nachmittag zusammen,
kennt sich jemand mit dem Anybus Communicator von HMS (RS232/422/485 <-> Profibus) und dessen Konfiguration aus?

Es soll im konkreten Fall ein Sensor eingebunden werden, der kontinuierlich Messwerte sendet (die Messung muss also nicht getriggert werden).

Der Sensor lässt sich individuell konfigurieren und gibt in der momentanen Einstellung bei [38400baud; 8Datenbits; 2Stoppbits; noParity; Flusssteuerung off] immer zwei Messwerte in ASCII heraus. Laut der von mir vorgenommenen Konfig sollte der Datenstrom folgende Struktur haben:
|Messwert1|TAB|Messwert2|TAB|LF|
(Messwert1 & 2 sind jeweils 5 ASCII-Zeichen. Bei kleineren Messwerten werden übrige Stellen mit Leerzeichen aufgefüllt.)

Ich habe nun die Messdaten mit HyperTerminal mitgeschrieben und die ASCII-Zeichenkette in den Editor exportiert.
Dieser Mitschrieb sieht jedoch wie folgt aus:
...
16280<9> 9269<9><\r><\n>
16291<9> 9290<9><\r><\n>
16283<9> 9284<9><\r><\n>
16283<9> 9284<9><\r><\n>
16283<9> 9282<9><\r><\n>
16283<9> 9280<9><\r><\n>
16283<9> 9289<9><\r><\n>
...
Ist das so korrekt?
Wird LineFeed wirklich als "<\r><\n>" im Editor angezeigt?

Soweit sogut zum eigentlichen Sensor.
Nun meine Fragen an mögliche Anybus Communicator-Experten:
- Ist der Generic-Mode der richtige Modus (Communicator "hört" ja nur quasi zu)?
- Reicht es für diese Aufgabe leglich eine einzig consume-Transaktion einzurichten (so wie ich es mir vorstelle habe ich bereits eine Konfig als Screenshot angehängt)? Für einen Experten-Rat wäre ich dankbar.

PS: Diese Frage habe auch unter Mikrocontroller.net gestellt.
 
Zuletzt bearbeitet:
Wird LineFeed wirklich als "<\r><\n>" im Editor angezeigt?

Je nach eingestellter/erkannter Terminal Emulation wird das unterschiedlich angezeigt, würde aber daraus schließen, dass das nicht nur ein Linefeed ist sondern auch ein Carriage Return.

Generic Mode ist schon richtig. Ich würde in dem Fall bei Subnetzwerk das Linefeed (was wohl letztes übertragenes Zeichen ist) als "EndCharacter" eintragen (und natürlich enablen). Somit gibt es erstmal die 5 Bytes Daten (Start auf x0), dann die Konstante x9 für das erste TAB, dann 5 Bytes Daten (Start auf x5), dann nochmals die Konstante x9. Abschließend würde ich das Trigerbyte freigeben (und auf x10 legen), bei jedem Empfang eines sinnvollen Pakets zählt es hoch, eine Nicht-Veränderung für x Sekunden kommt einem Kommunikationsausfall zum Gerät gleich, einfacher geht's nicht zu überwachen.


Anybus.GIF
 
Danke erstmal für die zügige Hilfe.

Leider ist das Problem immer noch nicht gelöst.

In der Konfiguration habe ich nun die Separatoren zwischen Messwerten & Messungen geändert, um auszuschließen dass die im Terminal etwas seltsam wiedergegeben TABs & LFs einen Fehler verursachen.

Die übertragenen Messwerte sehen nun so aus:
16270s 9257sm
(Leerzeichen, da mindestens 5 Zeichen übertragen werden - Rest mit Leerzeichen gefüllt.)

Trotz dieser Änderung ist leider noch keine Datenübertragung im Monitor-Mode des ABC Config Tools zu erkennen.
Eine Frage dazu: Der Monitor-Mode zeigt doch auch die Daten an wenn der Communicator noch nicht ans Profibus-Netz angeschlossen ist, oder?

Mir fiel an der Status-LED jedoch auf, dass der Communicator meldet das RS422-Subnetz wäre offline (obwohl ich parallel im Hyperterminal die Daten lesen konnte).

Habe ich vielleicht bei der Verdrahtung einen Fehler gemacht?
Ich habe den Sensor wie folgt als Subnetz eingebunden.
Sensor (Bezeichnungen vom Hersteller) --> Anybus communicator
Rx1-->Tx+
/Rx1-->Tx-
Tx2-->Rx+
/Tx2-->Rx-
GND-->Gnd

Fehlt da noch was?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe den verdacht das der herstelle das txd und rxd aus internem schaltungsaufbau heraus bezeichnet hat, ich würde empfehlen am anybus-communicator rxd und txd zu vertauschen, das ist so meißt der fehler für solche verhalten
 
Das Problem mit dem Communicator ist mittlerweile gelöst.
Meine im letzten Beitrag genannte Verdrahtung war korrekt. Es war lediglich ein Kontaktproblem auf dem Experimentierboard, wo ich die Pinbelegungen angepasst hatte.

Das eigentliche Problem, dass im Monitorbetrieb keine übertragenen Werte angezeigt wurden (und übrigens auch an Profibus), lagen in dem zu geringen Message-Timing. Bei der von mir gewählten übertragungrate habe ich jetzt als Timing-Delimiter 250 - 300 ms eingestellt.

Vielen Dank nochmal für die hilfreichen Hinweise.
 
Zurück
Oben