WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Daten in Echtzeit einlesen und Plotten ( Schweitzer Relais )

 

Raphaelmarius
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 30.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2012, 04:48     Titel: Daten in Echtzeit einlesen und Plotten ( Schweitzer Relais )
  Antworten mit Zitat      
Hallo,
hier mein erster Beitrag in diesem Forum. Ich wäre für jegliche Hilfe überaus dankbar.

Mein Projekt beschäftigt sich mit der Echtzeiterfassung von Daten eines Schweitzer Relais und deren Darstellung. Dabei verfolgte ich zwei Ansätze.

1. Über die mitgelieferte Software "ACSLERERATOR Quickset Software" lässt sich ein .txt Dokument erstellen, das ich daraufhin weiterverarbeiten wollte/konnte.
Problem an der Sache ist, dass das Dokument wird ständig beschrieben wird. Folglich ist der Zugriff in Echtzeit nicht möglich. Die Daten werden wie in dem Angehängten Screenshot in sehr kurzen Zeitabständen erzeugt.
Gibt es evtl. eine Möglichkeit dieses Problem zu lösen?

2. Direkt auf den seriellen Port zugreifen, ohne die mitgelieferte Software einzubeziehen. Da ich in diesem Gebiet allerdings keinerlei Vorwissen besitze, führte dieses Vorhaben bislang zu keinem Erfolg.
Für Tipps wie ich die Daten zunächst übertragen und zwischenspeichern kann, wäre ich sehr Dankbar!

Vielen Dank!!

Raphael

Screenshot measurements.GIF
 Beschreibung:
Screenshot Messdaten

Download
 Dateiname:  Screenshot measurements.GIF
 Dateigröße:  5.07 KB
 Heruntergeladen:  765 mal
Private Nachricht senden Benutzer-Profile anzeigen


dmjr
Forum-Century

Forum-Century


Beiträge: 199
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2012, 10:25     Titel:
  Antworten mit Zitat      
Hast du denn eine Dokumentation über die Befehle der seriellen Schnittstelle?

Und woran hapert es dabei?

Ich halte den Zugriff via serieller Schnittstelle für den besseren Weg, soweit da alles dokumentiert ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
Raphaelmarius
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 30.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2012, 21:19     Titel:
  Antworten mit Zitat      
Meinst du diese:
http://www.mathworks.com/help/matlab/serial-port-devices.html

Die meisten Quellen starten direkt mit dem Plotten. Allerdings muessen wir aufgrund der grossen anzahl unterschiedlicher Datensaetze zunaechst zwischenspeichern und weiterverarbeiten. ( Das relais liefert Daten der Stroeme, Spannungen,.... )
Und da hapert es bereits. Wie kommen wir an die Daten um diese dann auszuwerten?

Viele Gruesse und Danke,
Raphael

s=serial('COM3','BaudRate',19200);
get(s,{'OutputBuffersize','BytesToOutput'})
fopen(s);
fprintf(s,'*IDN?')
out = fscanf(s)
fclose(s)
delete(s)
clear s
Private Nachricht senden Benutzer-Profile anzeigen
 
dmjr
Forum-Century

Forum-Century


Beiträge: 199
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2012, 21:25     Titel:
  Antworten mit Zitat      
Raphaelmarius hat Folgendes geschrieben:
Meinst du diese:
s=serial('COM3','BaudRate',19200);
get(s,{'OutputBuffersize','BytesToOutput'})
fopen(s);
fprintf(s,'*IDN?')<--Ich meine eine Doku die beschreibt was hier hin gehört. Das ist abhängig von dem Gerät mit dem du kommunizierst.
out = fscanf(s)
fclose(s)
delete(s)
clear s

Wenn du via fprintf(...) die richtige Anfrage stellst, kannst du mit out=fscanf(s) die Antwort auslesen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Raphaelmarius
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 30.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2012, 21:32     Titel:
  Antworten mit Zitat      
Vielen Dank fuer deine schnelle Antwort. Ich habe das Manual vorliegen. Da ich allerdings absoluter Anfaenger bin, was das Einlesen von seriellen Ports angeht, bin ich mir nicht bewusst, wonach ich genau suchen muss.
Private Nachricht senden Benutzer-Profile anzeigen
 
dmjr
Forum-Century

Forum-Century


Beiträge: 199
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2012, 22:00     Titel:
  Antworten mit Zitat      
"Umgangssprachlich" formuliert funktioniert die Kommunikation via seriellem Port in einem Dialog
while (true)
fprintf(s,frage)<--Frage stellen
out = fscanf(s) <--Antwort von Gegenstelle bekommen
end
Abbruchbedinnung, Fehlerbehandlung und Initialisierung / Terminierung fehlen.

*IDN? ist zum Beispiel die Frage nach Hersteller, Modellnummer und Seriennummer.
Private Nachricht senden Benutzer-Profile anzeigen
 
Raphaelmarius
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 30.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2012, 22:16     Titel:
  Antworten mit Zitat      
Hey,
in dem Manuel fanden wir eine Befehlsuebersicht.



Request to relay (hex) ------ Response From Relais
............ ---- ------------------- ..............
A5D1 ----------------------------Fast Meter Data Block
........... ------------------------ ................




Sind dies die benoetigten Befehle? Wir erhalten allerdings keine Daten - lediglich die untenstehende ausgabe:



ans =

[512] [0]

Warning: Unsuccessful read: A timeout occurred before the Terminator was reached.

out =

8xü

( das untere natuerlich 5 mal)


Hast du/ ihr eine idee?
Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen
 
dmjr
Forum-Century

Forum-Century


Beiträge: 199
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2012, 22:24     Titel:
  Antworten mit Zitat      
Wie sieht dein Request (fprintf) aus?
Private Nachricht senden Benutzer-Profile anzeigen
 
Raphaelmarius
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 30.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2012, 22:30     Titel:
  Antworten mit Zitat      
tschuldige, vergass ich zu posten.

s=serial('COM3','BaudRate',9600);
get(s,{'OutputBuffersize','BytesToOutput'})
fopen(s);
for i=0:2
fprintf(s,'%X','A5D1') <-------------
out = fscanf(s)
i=i+1;
end
fclose(s)
delete(s)
clear s
Private Nachricht senden Benutzer-Profile anzeigen
 
Raphaelmarius
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 30.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2012, 01:02     Titel:
  Antworten mit Zitat      
Noch eine Idee....

Wenn ich über die mitgelieferte Software "ACSLERERATOR Quickset Software" auf das Relais zugreifen möchte, muss ich das Passwort für dan entspechende Level des Befehls eingeben.
Der "Meter" Befehl ( diese Daten möchte ich verarbeiten) ist im Ersten Level und somit passwortgeschützt. Muss ich das evtl. über Matlab eingeben? Falls ja - wie?
Danke und Grüße.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.