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 von RS232 an RS485-Umrichter

 

Chrisch
Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 09.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2010, 18:46     Titel: Daten von RS232 an RS485-Umrichter
  Antworten mit Zitat      
Es handelt sich mal wieder um das (sicher für viele leidige) Thema RS232 bzw. RS485, diesmal um einen Frequenzumrichter anzusteuern.
Ich bau eine mobile Plattform, die zwei dieser Umrichter besitzt, welche die Antriebsmotoren steuern.

Mein PC besitzt eine RS-232 Schnittstelle.
Der Umrichter hat RS 485 und nutzt ModBus RTU.
Beide Komponenten habe ich ueber ein stinknormales serielles Kabel inklusive Rs232/RS485 Umsetzer verbunden.
Die Kommunikation (das Senden bzw. Empfangen von Daten) funktioniert nicht.
Verbinde ich meine beiden COM-Ports am Rechner kriege ich meine Matlab Daten fehlerfrei.

Mein Problem ist, dass der Umrichter keine Daten aus Matlab annimmt. Er reagiert nicht.
Mit einem der tausend im Internet existierenden Modbus-Applikationen allerdings schon. (Zum Beispiel Simply Modbus: tadellose Funktion, der Umrichter antworet korrekt.)



Der Umrichter erwartet laut Doku folgendes:

"Die Betriebsart Modbus RTU (Remote Terminal Unit = fernbedientes
Endgerät) überträgt die Daten in binärer Form (hoher
Datendurchsatz) und bestimmt das Übertragungsformat der
Datenanfrage und der Datenantwort. Jedes gesendete Nachrichtenbyte
enthält dabei zwei hexadezimale Zeichen (0 - 9, A - F). "


Nach soviel Vorgeschichte zum Code:

RS232 - Initialisierung

Code:

global ser_obj_s;
obj1 = instrfind('Type', 'serial', 'Port', 'COM1', 'Tag', '');
if isempty(obj1)
    obj1 = serial('COM1');
    ser_obj_s=obj1;
else
    fclose(obj1);
end

s=ser_obj_s;
s  = serial('COM1',...                       %Linux: /dev/ttyS0
            'BaudRate', 9600,...
           'Parity', 'none',...
           'DataBits', 8,...
           'StopBits', 2,...
           'InputBufferSize', 1024,...
           'OutputBufferSize', 1024,...
           'Terminator','CR/LF',...
           'Timeout', 2);


s.BytesAvailableFcnCount = 512;      
s.BytesAvailableFcnMode = 'byte';
s.BytesAvailableFcn = @GetSerialData;

fopen(s);
set(s,'readasyncmode','continuous');
s.flowcontrol = 'hardware';
disp ('COM-Port 1 erfolgeich goeffnet');

Output=('05 06 07 D0 00 03 C8 C2');
write(s, Output);
 


Nun zum Absenden der Daten

Code:

function write_data(s, Output)
fwrite(s,  Output, 'uint8');
 


Ich verstehe das nicht. Der Data-string setzt sich aus mehreren byte-paaren zusammen. Also(hier in hex) : 05, 06, 07D0 ...
Liegt da der Fehler?
War ein langer Tag, sorry, wenn noch was unklar ist einfach nachfragen.
Danke.
[/code]
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Chrisch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 09.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2010, 12:11     Titel:
  Antworten mit Zitat      
alles klar ...
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
knuppel
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 21.11.13
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 25.01.2014, 18:56     Titel:
  Antworten mit Zitat      
Der Beitrag ist zwar schon uralt, aber könntest du uns deine Lösung sagen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Chrisch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 09.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.01.2014, 14:31     Titel:
  Antworten mit Zitat      
Hallo Knuppel,

Ich hatte mich damals einfach geirrt, die Daten waren korrekt - ich hatte Sie damals nur falsch interpretiert.

Gruß,

C.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.