INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Modbus CRC-Check



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

10.12.2010, 13:10
Beitrag #1

sumsi Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 83
Registriert seit: Oct 2010

2014
2010
DE


Deutschland
Modbus CRC-Check
Hallo,
ich versuche zur zeit aus einem Gefran 800 Regler die Istwerte über Modbus auszulesen. Der Regler ist über einen RS232/USB-Konverter an den Rechner angeschlossen.
Mein Problem ist folgendes: für das Modbus-Protokoll werden 2 Bite als CRC-Check verlangt.
Zur Kommunikation nutze ich das modbus_test.vi aus folgendem post http://www.labviewforum.de/index.php?showtopic=15548
Wenn ich nun von meinem rechner die daten über den konverter an einen anderen rechner sende und dort über ein terminalprogramm die gesendeten befehle ausgeben lasse fehlt jeweil ein teil vom crc-check, ich erhalte jeweils nur folgende antworten:

04 04 00 25 00 04 CF
wenn ich das protkoll richtig verstanden habe müsste nur CF für den crc-check übrig bleiben, aber wo sind die anderen 8 bit?
bzw. kann mir jemand sagen wo sich in diesem vi die crc-berechnung versteckt
vielen dank
sumsi

labviewversion 2010


Angehängte Datei(en)
Sonstige .vi  test_readinputregister.vi (Größe: 15,44 KB / Downloads: 497)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.12.2010, 12:56
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Modbus CRC-Check
:hmm:Eigentlich sollte der String, der da gesendet wird, noch ein Stück länger sein.

Meine Empfehlung: Da du offenbar die NI-Modbus-Library installiert hast. verwende doch mal das Modbus-Serial-Master-Example und pass es auf deine Anforderungen an. Da ist u.a. genau die Abfrage eines oder mehrere Input-Register, bloß dass die Start-Adresse Null ist (Abfrage von Adresse Null in dieser Library entspricht -wenn ich mich richtig erinner- Abfrage von Adresse 1 laut Modbus-Specs).

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2010, 15:09
Beitrag #3

sumsi Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 83
Registriert seit: Oct 2010

2014
2010
DE


Deutschland
Modbus CRC-Check
hallo,
habe jetzt mal versucht das Modbus Master Example aus der ModbusLib von NI umzubasteln. Irgendwie komm ich da aber nicht weiter.
Write SingleCoil werde ich nicht benötigen, die Ereigisstruktur habe ich somit komplett gelöscht. Aus WriteMultipleRegister habe ich WriteSingleRegister gemacht, da ich immer nur einen bestimmten Wert ändern möchte und nicht mehrere. Es dreht sich ja lediglich um den Sollwert für die Temperatur den ich vorgeben will.
Wenn ich das ganze jetzt starte, kommt immer ein Timeout-Error. Ich habe aber im Moment auch keine Ahnung, wie ich es schaffe das SlaveExample an mein MasterE
3fe0
xample anzupassen, so gut kenn ich mich in Labview noch nicht aus. Ich habe meinen Rechner über RS232/USB-Konverter mit einem
3fe0
weiteren Rechner verbunden, bekomme aber im Hyperterminal auch keine Ausgabe.
Nutze ich den Original-Master von NI so bekomme ich auch nicht die erwarteten 8 Byte lange ausgabe sondern lediglich 5 Byte sodass wieder welche fehlen.
Kann mir da jemand weiterhelfen?
Sumsi
Lv10


Angehängte Datei(en)
Sonstige .vi  Modbus_Master.vi (Größe: 21,68 KB / Downloads: 397)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2010, 15:39
Beitrag #4

sumsi Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 83
Registriert seit: Oct 2010

2014
2010
DE


Deutschland
Modbus CRC-Check
habs jetz doch geschafft den master so umzubauen, dass master und slave miteinander kommunizieren können, aber kann ich mir irgendwo zwischendurch mal anschauen, was der master für code an den slave schickt und umgekehrt, also sozusagen die leitung abhören?
anbei der angepasste slave
Lv10


Angehängte Datei(en)
Sonstige .vi  Modbus_Slave.vi (Größe: 45,82 KB / Downloads: 342)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2010, 16:14
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Modbus CRC-Check
Ich bin langsam ein wenig verwirrt?
Wieso veröffentlichst du erst ein Modbus-Master, und dann ein Modbus-Slave-Bsp?

Ich dachte, du willst ein externes Gerät, ein Gefran 800 Regler, auslesen und steuern? Im Normalfall sind solche Geräte Modbus-Slaves, und der Zugriff per PC ist per Modbus-Master-Bsp...

Oder spielst du gerade nur rum und hast dir eine RS-232-Loop gelegt?

Gruß, Jens

Offtopic2
Bitte LVF-Regeln lesen und beachten. Ein Computer hat eine Shift-Taste, und die soll beim Verfassen von Beiträgen hier im LVF auch benutzt werden! Danke.

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.12.2010, 08:16
Beitrag #6

sumsi Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 83
Registriert seit: Oct 2010

2014
2010
DE


Deutschland
Modbus CRC-Check
Hallo,
ich will am Ende den Regler ansteuer, probiere aber im Moment erst mal am Rechner über RS232 aus, ob ich das Modbus-Signal bekomme, dass ich benötige bevor ich das ganze dann an den Regler anschließe. Nutze den Laptop im Moment also als Ersatz-Slave.
Problem ist, dass ich den Reglern nur an den Laptop anschließen kann und darauf nur eine abgelaufene Labview-Testversion ist und ich sonst für jede Änderung im VI vom Laptop zum Rechner und zurück laufen müsste.
Deswegen habe ich mir einen passenden Slave gebastelt, damit ich am Laptop das Signal empfangen kann, in der Hoffnung, es auf Richtigkeit zu überprüfen.
Viele Grüße
Sumsi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.12.2010, 08:31
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Modbus CRC-Check
Jetzt verstehe ich: Ja, dann brauchst du natürlich auf dem einem Rechner das Master-Example, auf dem anderen das Slave-Example. Erst Slave starten, dann Master und dann los mit der Kommunikation. Wenn du übrigens 2 COM-Schnittstellen (z.B. 2 USB zu COM) an einem Rechner hast, dann kannst du das ganze auch an einem Rechner laufen lassenWink

Zwecks Mitlesen: NI-Spy? Oder ein Port-Monitor, für XP z.B. der HDD Free Serial Port Monitor.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.12.2010, 11:40
Beitrag #8

sumsi Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 83
Registriert seit: Oct 2010

2014
2010
DE


Deutschland
Modbus CRC-Check
Hi,
hab jetzt mal Ni Spy nebenbei laufen lassen, aber irgendwie weiß ich nicht wie ich die Ausgabe da deuten soll. Kennt jemand dafür eine Hilfe? Ich versuche immer noch dort meine Modbus-Befehle zu erkennen.
Ich habe in dem angehängten File dreimal nacheinander verschiedene Werte über WriteSingleRegister an den Slave geschickt und geschrieben.
Vielen Dank
Sumsi
Lv10
P.S. Danke für den Tip, dass ich das auch mithilfe meines Konverters auf einem Rechner laufen lassen kann, auf die Idee bin ich noch nicht gekommen!


Angehängte Datei(en)
Sonstige .txt  Capture.txt (Größe: 106,2 KB / Downloads: 599)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.12.2010, 14:10
Beitrag #9

sumsi Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 83
Registriert seit: Oct 2010

2014
2010
DE


Deutschland
Modbus CRC-Check
Hi
hab inzwischen herausgefunden, wo ich die Modbus-Befehle finden kann: im Puffer von NISpy-Eigenschaften.

Hab jetzt aber ein weiteres Problem:
Ausgabe in NISPY:

VISA: Schreiben("COM38","-----1.")
Puffer: 01 04 00 00 00 01 31 CA
--> passt

VISA: Lesen(ASRL1::INSTR",1".")
Puffer 01
VISA: Lesen(ASRL1::INSTR",7,".......1.")
Puffer: 04 00 00 00 01 31 CA

wieso wird hier der Modbus-Befehl geteilt? Gibt das irgendwelche Probleme bei der Kommunikation mit dem Regler?
COM-Port 38 ist hier der Master

Sumsi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.12.2010, 14:19
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Modbus CRC-Check
Das Modbus-Protokoll hat kein festes Abschlußzeichen für einen Befehl.

Somit bleibt nur übrig, immer wieder zyklisch im Empfangspuffer der Schnittstelle nachzuschauen, ob Zeichen da sind, und diese auszulesen und zu parsen. Dabei kann es schon mal passieren, dass eine Nachricht in zwei Leseschritten gelesen wird. Intern wird das wieder zusammengebastelt. Kein Grund zur Sorge.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  ModBus Lakritzast 2 7.320 26.01.2010 18:18
Letzter Beitrag: stevenhiker

Gehe zu: