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.




Unsere Partner:

DIAdem-Forum.de Partner

DIAdem-Forum.de Partner






Stellenangebote:
Ingenieur Visualisierung (m/w)
Velbert

Elektroingenieur Prüflabor (m/w)
Gaimersheim

Softwareentwickler (m/w) - Java Entwicklung
Gaimersheim bei Ingolstadt

Big Data Scientist / Analyst (m/w) Messdatenmanagement
Ingolstadt

Testingenieur/Lead Engineer (m/w) für elektronische und mechatronische Fahrzeugkomponenten
Köln





.
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5

Script Dac Treiber
06.01.2009, 11:40,
#1
DIAdem-Version: 2010
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
Script Dac Treiber

Hallo zusammen,

ich benötige Unterstützung für die Programmierung des SCRIPT DAC Treibers.
Mein Ziel ist es eine serielle GPS Maus in DIAdem einzulesen.
Der SCRIPT DAC Treiber ist in der GPI Erweiterung angemeldet.
Das Protokoll sieht folgendermaßen im Schnittstellen Monitor aus:

Set COM1 EOL=\010 To=1000
Read COM1 "< ... >"

$GPZDA,083902.00,06,01,2009,00,00*6A..
$GPVTG,62.98,T,,M,0.017,N,0.031,K,A*0C..

Diese Informationen bekomme ich kontinuierlich von der Maus gesendet.

Von der Adresse $GPZDA interessiert mich die UTC Zeit (Position 1)und das Datum (Position 2-3-4) und von der $GPVTG die Geschwindigkeit 0.017 an Position 5.

Mein Problem ist der Syntax in dem Befehl ReadChannel und wie kann ich meine drei Informationen separieren?
Hat jemand einen Minimalansatz wo ich meine Informationen herleiten kann?

Ich Bedanke mich für eure Unterstützung.

Mit freundlichem Gruß.

hajo

06.01.2009, 12:17,
#2
DIAdem-Version: alle
DIAdem-Sprachversion: DE/EN
DIAdem Erfahrung seit: 1995
RE: Script Dac Treiber

Hallo hajo,

eine einfache Möglichkeit die Strings zu separieren ist die Split-Funktion. Beispiel:

Code:
dim sData, saData
sData = "$GPZDA,083902.00,06,01,2009,00,00*6A"
saData = split(sData,",")
msgbox saData(2) & saData(3) & saData(4)

Die Frage ist aber wie schnell muss das denn sein?

Carpe DIAdem

06.01.2009, 16:13,
#3
DIAdem-Version: 2010
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
RE: Script Dac Treiber

Hallo Carpe DIAdem,

Danke für deine schnelle Antwort.
Endlich sehe ich eine Komunikation mit DIAdem via msgbox.

Ich möchte die Uhrzeit, das Datum und die Geschwindigkeit in einem DAC Schaltplan über Digitalanzeigen visualisieren.
Eine 4 HZ Maus dient mir als Empfänger. Es geht mir nicht um die Geschwindigkeit.
Die Initialisierung des Script Dac Treibers habe ich soweit verstanden, es fehlt mir das Wissen, wie ich die Kanäle im Dac Schaltplan eintrage und was in der Script DAC Vorlage stehen muss.

Hier dein Beispiel was mir die msgbox mit den aktuellen Werten zurückliefert.
'******************************************************************************
' Funktionen zum Einlesen von Daten
'******************************************************************************
'
'------------------------------------------------------------------------------
' SFD_ReadChannel
' Zweck : Lesen eines Wertes für den Kanal "ChannelNumberP"
'------------------------------------------------------------------------------
' ChannelNumberP | Kanalnummer aus dem Block-Dialog
' ParamP | Vom Anwender definierte Variable aus dem Block-Dialog
' DataP | Variable zur Rückgabe des neuen Kanalwertes. Diese
' | Variable sollte zumindest auf einen gültigen Wert
' | initialisiert werden.
' ErrorP | Variable zur Rückgabe einer Fehlermeldung. Wird diese
' | Variable gesetzt, stoppt DIAdem die Messung.
'------------------------------------------------------------------------------
Sub SFD_ReadChannel( ChannelNumberP, ParamP, DataP, ErrorP )
' Diese Funktion muss für ein Skript zur Datenerfassung implementiert werden.

dim sData, saData
sData = "$GPZDA,083902.00,06,01,2009,00,00*6A"
saData = split(sData,",")
msgbox saData(1)& saData(2) & saData(3) & saData(4)


' Zu ergänzen : Geben Sie hier den Code für das Einlesen
' eines Kanalwertes ein.
End Sub


Danke für deine Hilfe

Mit freundlichem Gruß

hajo

06.01.2009, 17:10,
#4
DIAdem-Version: alle
DIAdem-Sprachversion: DE/EN
DIAdem Erfahrung seit: 1995
RE: Script Dac Treiber

Hallo hajo,

DIAdem rechnet bei Datum/Zeit in Sekunden ab dem Jahr Null. Das heisst, du musst deine Zeit entsprechend mit einem Offset versehen.

Code:
Sub SFD_ReadChannel( ChannelNumberP, ParamP, DataP, ErrorP )
  dim sData, saData
  
  select case ChannelNumberP
    case 0 ' für den Zeitkanal
      sData = "$GPZDA,083902.00,06,01,2009,00,00*6A"
      saData = split(sData,",")
      DataP = cdbl(DateSerial(saData(3), saData(2), saData(1)))*24*3600 + 59957971200
    case 1 ' für den nächsten Kanal
      ...
      DataP =
    case ....
  end select
End Sub

DateSerial ist eine VBS-Funktion, die ein VBS Datum (Tageswerte ab 31.12.1899) erzeugt. Das muss in ein DIAdem Datum umgerechnet werden.
Den Case-Verteiler benötigst du für die anderen Kanäle.

Carpe DIAdem



Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  DAC-Script berni112 3 1.660 04.01.2018, 16:06
Letzter Beitrag: voyager
  DIAdem-EtherCAT-Treiber a-solution 0 4.232 01.09.2015, 14:15
Letzter Beitrag: a-solution
  Scribt Treiber für Drehmomentenmessnabe erstellen omit eckov 9 17.249 16.06.2015, 10:10
Letzter Beitrag: omit eckov
Thumbs Down HBM-Treiber killt DIAdem voyager 1 5.862 17.08.2011, 08:33
Letzter Beitrag: Bruno
  mehrere Speicherblöcke, Script mit Schaltplanparamtern starten Mario 1 6.604 23.05.2011, 15:35
Letzter Beitrag: grisu
  [ERLEDIGT] Probleme mit Vector DIAdem-Treiber 2.2.15 grisu 2 8.107 19.05.2011, 22:43
Letzter Beitrag: grisu
  Timeout-Problem RS232 und Script-DAC-Treiber Xor 2 7.189 22.09.2010, 12:49
Letzter Beitrag: Xor
  Anfangsprobleme mit DAC & Script Peter 3 8.452 18.08.2009, 13:34
Letzter Beitrag: Bruno
  Aus-&Eingänge von PCI-6255 über DAC-Script automatisiert ansteuern bzw auslesen??? Peter 0 4.462 04.08.2009, 14:27
Letzter Beitrag: Peter

Gehe zu: