06.05.2020, 09:40
(Dieser Beitrag wurde zuletzt bearbeitet: 06.05.2020 09:42 von GerdW.)
Beitrag #2
|
GerdW
______________
Beiträge: 17.465
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Probleme bei der Kommunikation mit Modbus
Hallo Mklei,
herzlich willkommen im LabVIEW-Forum!
Zitat:Nun ist meine Frage besteht die Möglichkeit die Funktionscode manuell zu setzten ? und wenn ja wie genau bekomme ich das hin ?
Ich würde bei diesem Gerät meinen eigenen Gerätetreiber programmieren.
Du benötigst:
- ein VI, um diese MODBUS-Messages zu generieren, mit den Eingängen Slave-Address (U8), FunctionCode (U8), Daten (U8-Array). Das VI berechnet dann noch die CRC und baut alles zur Message zusammen. Abschicken dann per VISAWrite.
- ein VI, um die Response per VISARead zu lesen und auszuwerten. Ausgänge: ACK/NACK und Response-Daten (U8-Array).
- diverse VIs für jeden benötigten Befehl, der die passenden Daten (Int, Float, etc.) verarbeitet
Ist eine schöne und überschaubare Übung, bei der man gut LabVIEW lernen kann!
(Ich habe etwas mit Modbus gearbeitet und es scheinen hier unübliche FunctionCodes verwendet zu werden. Die üblichen Modbus-Libraries sind darauf eher nicht ausgelegt - auch hier müsstest du einiges an Programmierarbeit reinstecken. Da ich aber auch hier auf eigene Bibliotheken statt welcher aus VIPM zurückgegriffen habe, ist meine Erfahrung damit sehr begrenzt…)
|
|
|
06.05.2020, 12:21
Beitrag #3
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Probleme bei der Kommunikation mit Modbus
Hallo,
ganz von vorne musst du nicht anfangen, du hast ja schon die "gute alte" NI Modbus-Library installiert.
An deiner Stelle würde ich davon eine Kopie erstellen und das entsprechend anpassen.
Wenn du eines der polymorphen Master Read oder Write VIs öffnest, dann wird darin immer dasselbe VI verwendet: MB Serial Master Query.vi
Da der "Function Code" nur ein Ring-Control ist, kannst du ihn leicht mit anderen als den vordefinierten Werten überschreiben.
Damit wäre der "Request" (teilweise) erledigt.
Dann musst du dich aber noch um die Antwort kümmern, bei einem unbekannten Function Code wird nämlich im SubVI "MB Decode Data.vi" verworfen.
Das wäre aus meiner Sicht ein sinnvoller Einstieg, um diese seltsame Modbus-Umsetzung anzugehen.
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.
|
|
|
06.05.2020, 23:40
Beitrag #4
|
|
|
07.05.2020, 06:08
Beitrag #5
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Probleme bei der Kommunikation mit Modbus
Das Ringcontrol hättest du nicht ändern müssen. Einfach ein Numeric mit Wert 120 anschließen, fertig. Das ist das Schöne an einem Ring, dem kannst du auch zur Laufzeit einen anderen Wert verpassen.
Zur Antwort: Im Decode-VI wird im Default-Case die Antwort nicht zurückgegeben - das müsstest du ändern.
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.
|
|
|
07.05.2020, 12:09
Beitrag #6
|
Mklei33s
LVF-Grünschnabel
Beiträge: 13
Registriert seit: May 2020
2019 SP1
2019
DE
|
RE: Probleme bei der Kommunikation mit Modbus
Hallo Jens,
ok, also ändere ich den Decodeblock so ab, dass er auf im Fall "Standard" die Daten umwandelt soll. Ich bekomme ja für meinen Befehl ein Paket aus 104 Bytes in unterschiedlichen Datenformaten (INT32 und float32). Kommen die Daten dann geordnet in Form eines Feldes im Decode-Block an oder sind diese als Bitfolge alle aneinandergereiht ?
Bin leider komplett unerfahren in diesem Bereich, daher schon mal eine Entschuldigung im voraus für ggf. dumme Fragen.
Gruß Max
|
|
|
07.05.2020, 14:18
Beitrag #7
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Probleme bei der Kommunikation mit Modbus
Die Daten kommen als x U16-Werte, für die Interpretation und Wandlung musst du dir selber einen Parser schreiben.
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.
|
|
|
07.05.2020, 16:02
Beitrag #8
|
|
|
12.05.2020, 14:52
Beitrag #9
|
Mklei33s
LVF-Grünschnabel
Beiträge: 13
Registriert seit: May 2020
2019 SP1
2019
DE
|
RE: Probleme bei der Kommunikation mit Modbus
Hallo zusammen,
leider ist es mir noch nicht gelungen, dass Problem zu lösen. Hat keiner von euch eine Idee woran es liegen könnte ?
Gruß
Max
|
|
|
14.05.2020, 08:58
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Probleme bei der Kommunikation mit Modbus
Was hast du probiert? Nur das VI gestartet, so wie im Screenshot?
Hast du debuggt, was du per VISA verschickt und ob und was zurückkommt?
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.
|
|
|
| |