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 

Brauche Hillfe - Automatischer schaltender True/False Schalter



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!

12.11.2007, 20:22
Beitrag #11

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Brauche Hillfe - Automatischer schaltender True/False Schalter
Hallo,

Also: Im Prinzip ist dein Screenshoot aus Beitrag #7 völlig korrekt, genau so soll es gemacht werden.

Leider sind deine "Fehlermeldungen" etwas dürftig. "Es funktioniert nicht" ist nicht sehr aussagekräftig. Bitte genauer. Für genauere Analyse wäre es auch hilfreich, wenn du dein "befehl_schreiben.vi" hochladen könntest.

Dann eine Rückfrage:
Wie sieht es eigentlich aus, funktioniert der Teil mit der Sequenz ohne Probleme, wenn du ihn einzeln aufrufst und den Button "LED on/off" von Hand umschaltest?

Was ich überhaupt nicht verstehe, was du in dem Abschnitt machen willst, wo du diesen Checksum-Error berechnest. Erst ein String der Länge 4 in Byte-Array wandeln, OK, Array hat Länge 4, dann schneidest du das 2. & 3. Element dieses Arrays aus (also Länge 2) und wandelst es dann in ein 9-teiliges Cluster????Hmm

MfG, 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
Anzeige
13.11.2007, 10:53 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2007 14:41 von jg.)
Beitrag #12

Hably Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Nov 2007

8,5
2007
kA


Deutschland
Brauche Hillfe - Automatischer schaltender True/False Schalter
Hallo,

also nur die Sequenz mit der alternierenden LED an sich funktioniert. Da blinkt dann die Fronatpanel-LED „BOOL“. Wenn ich die Sequenz mit dem schon vorhandenen VI verknüpfe, siehe Bild aus Posting #7, dann blinkt sie nicht mehr und auch an der Hardware-Platine kommt kein Signal an.
Auch das ursprüngliche VI funktioniert für sich allein. Wenn ich da den Schalter per Hand mit der Mouse umlege kann ich die LED auf der Platine an und ausschalten.
Nur die Verknüpfung der beiden Sequenzen führt zu keinem Ergebnis.
Das Programm ist in der Kombinierten Version (siehe Bild Posting #7) zwar startbar, aber es blinkt weder die LED „BOOL“ im Frontpanel noch die reale LE auf der Platine.



Das VI „befehl_schreiben.vi“ lade ich hier hoch. Es ist nicht von mir und verstehen tu ich es erst recht nicht. Ist mir leider (noch) zu kompliziert.
Aber ich habe eine kurze Beschreibung dazu und zwar folgende:

Um einen Befehl zum Testboard zu senden, ist es nötig, neben dem eigentlichen Command / Subcommand zusätzlich noch ein Längenbyte zu senden, welches die Gesamtanzahl der folgenden Bytes angibt. Desweiteren wird eine Checksumme verlangt, welche sich aus der Exclusivveroderung der Bytes nach dem Längenbyte bis zum letzten Byte vor der Checksumme ergibt. Das ganze wurde in LabVIEW folgendermaßen realisiert:

   


Dieses SubVI bildet die Grundlage eines jeden VIs. Die Länge und die Commands werden übergeben. Hierbei können unter CMD auch SubCMDs und weitere Datenbytes stehen. Die CMD-Bytes werden auf die angegebende Länge begrenzt und anschließend exclusivverodert, zur Bildung der Checksumme. Die CMD-Bytes müssen ein Byte weniger enthalten, als die Länge, da die Checksumme in der Längenangabe mit inbegriffen ist. Die gesamten Bytes (Length, CMD, SubCMD, Data, Checksum) werden in ein Array eingefügt und zu einem String umgewandelt. Anschließend wird das Datenpaket an die serielle Schnittstelle gesendet.

Die Beschreibung geht noch ein kleines Stück weiter, aber nicht mehr direkt zu befehl_schreiben.vi. Ich poste es einfach mal:

Der Aufbau eines VIs zum Senden eines Befehls ist wie im oben dargestellten Bild realisiert. Die Länge wird als Konstante an das SubVI übergeben. Die folgenden Bytes (CMD, SubCMD, Data) werden als Array übergeben. In diesem Beispiel wird das CMD als Konstante übergeben. Das SubCMD lässt sich über einen Auswahlbalken einstellen. Die Data-Bytes werden in ein numerisches Element eingegeben. Es ist darauf zu achten, dass die gesamte Kommunikation hexadezimal erfolgt und somit alle Zahlenformate einheitlich sind. Der Rahmen steht für eine gestapelte Sequenzstruktur, es wird Seite für Seite abgearbeitet. Auf der folgenden Seite dieser Struktur befindet sich eine Zeitverzögerung von 200ms, um eine eventuell auftretende Zeitverzögerung bei der Aufnahme von Messdaten zu vereinheitlichen.

       

Die empfangenen Bytes werden wie in der Abbildung zu sehen ist, ausgegeben und auf Fehler überprüft. Zum einen wird die vom Controller berechnete Checksumme überprüft und zum anderen werden die gesendeten Commands mit den empfangenen Commands verglichen. Wichtig ist die Angabe der zu empfangenden Bytes. Ist diese Angabe falsch, können nicht ausgelesene Bytes im Buffer stehen bleiben und beim Auslesen eines weiteren Commands zur Verschiebung der Antwortdiagramme führen. Beim Lesen der Daten aus der seriellen Schnittstelle ist darauf zu achten, dass das Abschlusszeichen deaktiviert ist. Ansonsten endet das Auslesen bei einem bestimmten Zeichen (normal: 0x0A).

Vielen Dank für eure Hilfe !!!

(VI LV 7.1)


Angehängte Datei(en)
Sonstige .vi  befehl_schreiben.vi (Größe: 37,88 KB / Downloads: 174)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2007, 11:38
Beitrag #13

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Brauche Hillfe - Automatischer schaltender True/False Schalter
Kann dein VI leider nicht laden, zu neu.

Mal noch 2 Tipps zu probieren.

Könnte es sein das das Schieberegister rechts nicht angeschlossen ist, einfach mal hochschieben.
Der Draht muss mitgehen, wenn es wie im Bild ist, ist es falsch und schaltet nicht.

Lösche mal das Wait in der Schlaufe.
Mache eine neue Sequenz, rechte Taste Add...
In die neue Sequenz (2) machst du wie im Bild.

Vielleicht hilfts
Gruss
Roland


Angehängte Datei(en) Thumbnail(s)
   

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Case Struktur 2 Schleifendurchläufe verzögert True setzen aber sofort auf False bachatero18 4 5.693 07.11.2020 14:08
Letzter Beitrag: Martin.Henz
  Case-Struktur führt True und False aus (Ereignisschleife) HIMI 11 9.026 24.08.2017 13:04
Letzter Beitrag: HIMI
  automatischer Enum durchlauf floH857 4 5.113 21.02.2017 08:57
Letzter Beitrag: Freddy
  Nur Werte in Array wenn Case True PreVIEW 10 10.559 10.02.2017 15:25
Letzter Beitrag: Dalle
  Bekomme kein True aus Event Structure nixblicker 7 4.880 09.02.2017 09:52
Letzter Beitrag: nixblicker
  Schalter an/aus Tobolf 1 3.963 27.01.2017 11:00
Letzter Beitrag: GerdW

Gehe zu: