LabVIEWForum.de - NI9871 RS485 2 wire modbus MAX

LabVIEWForum.de

Normale Version: NI9871 RS485 2 wire modbus MAX
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich will von einer Modbus Karte Sachen auslesen. Dies habe ich per 2 wire RS485 mit einer NI 9871 verbunden in eine cRio 9074.
Gibt es irgendwas ausserhalb Labview um zu testen, ob es funktioniert?
Im MAX erscheint die NI 9871 und ich kann baudrate usw einstellen. Aber kann ich da noch mehr sehen, zB. die Modbus Ports, oder ob ueberhaupt etwas passiert? Ausser dem VISA test panel habe ich nichts gefunden.

Gruss,

Steffen
Du könntest dir einen Abfragestring zusammenbasteln (oder mit einer entsprechenden Modbus-API erstellen) und aus dem Test-Panel verschicken. Wenn die Gegenstelle es versteht, dann bekommst du eine Antwort.

Was willst du sonst noch einstellen? RS485 ist nicht Modbus...

Gruß, Jens
sowas wie hier? Einfach den die Zahlen eingeben und senden?

http://www.simplymodbus.ca/FC03.htm
http://modbus.org/docs/PI_MBUS_300.pdf
Das sind keine "Zahlen", das sind Strings in HEX-Darstellung. Also VISA-Write verwenden, String in HEX-Darstellung, und es geht los.

Es gibt aber auch schon fertige Modbus-APIs, dann musst du dir das nicht jedesmal selber erstellen:
http://www.ni.com/example/29756/en/
http://sine.ni.com/nips/cds/view/p/lang/de/nid/214230
http://forums.ni.com/t5/NI-Labs-Toolkits...-p/3524019

Gruß, Jens
ich meinte mehr, ich brauche nur das eigentliche Kommando fuer den Modbus eingeben? Plus ich glaube da war was mit / fuer Hex
z.B.
01 0F 0013 000A 02 CD01 BF0B
waere dann
/01 /0F /0013 /000A /02 /CD01 /BF0B
aber ich habe da nur die Nummer vom Slave von 11 auf 01 geaendert, dann stimmt wahrscheinlich die CRC Summe nicht.
Ich will bloss erst mal im VisaTest panel sehen, ob es wirklich funktioniert. Halt erst einmal ein paar Register auslesen, dann andere Werte setzen, noch mal auslesen, ob es sich auch geaendert hat. Und das Ganze ohne Labview. Das Visa Test Panel ist wohl bei den ganzen Treibern dabei, fuer umsonst. Dann kann ich MAX und Visa Test Panel auf einem x beliebigen Rechner haben zum Testen erstmal, ohne Labview,
Ganz so einfach ist es nicht. Neben MAX brauchst du VISA-Runtime und wahrscheinlich noch irgendwas aus dem cRIO Treiber.

HEX-Darstellung in VISA Test Panel wird hier erklärt.

Bei deinem Bsp String also:
\01\0F\00\13\00\0A\02\CD\01\BF\0B

Und ja, sobald du nur 1 Buchstaben veränderst, musst du die CRC neu ermitteln!

Gruß, Jens
https://www.lammertbies.nl/comm/info/crc...ation.html

die 2.ist CRC 16 Modbus,nur ist die Reihenfolge andersrum F0C6 anstelle C6F0.
An sich scheint VISA test panel mit der Modbus-Karte zu kommunizieren. */N? kommt mit einer ANtwort zurueck und lesen/schreiben macht funktioniert,aber geht nicht, wenn ich das Kabel zwischen cRio und Modbus-Karte abziehe. Ich will nur testen, ob es wirklich wahr ist, cRio habe ich die neuste Software installiert, mit NI 9871/9870 Serial support. Wahrscheinlich habe ich VISA Runtime auch installiert, muss ich morgen schauen
es liest und schreibt ohne Fehlermeldung im VISA test panel, aber die einzige Antwort ist, kein Fehler und die Anzahl gelesene Bytes. Geht mit und ohne Fehlercode.
Aber ich habe nichts gefunden. wie es die Register ausliest. D.H, wenn ich 03 ... eingebe, gibt es nicht den Wert der Register aus.
Sagen wir mal
01 10 0001 0002 04 00FF FF00

mit

01 03 0001 0002 sollte ich dann nicht bekommen, dass die Register auf 00FF und FF00 gesetzt sind?

Write und Query geht, bei Read gibts timeout 0xBFFF0015. Wartezeit 4s.
immer noch nichts.
Ist 2 wire nicht 4, muss ich noch etwas anderes setzen? Ich habe das Kabel so gemacht: TXD- und RXD- nach - und TXD= und RXD+ nach + an der Modbus Karte.
http://forums.ni.com/t5/Example-Program-...-p/3527487
wenn ich etwas setze, dann lese, kommt als Antwort, was ich gesetzt habe und 2 mal der Lese-Befehl und Timeout, siehe Bild.

oder mal das versuchen
https://getsatisfaction.com/eurotherm/to...controller ?
Seiten: 1 2
Referenz-URLs