Schnittstellenbefehl

Gast #3067148
Lesenswert?

Hallo, ich habe eine Frage und zwar steuere ich über eine serielle 
Schnittstelle ein Gerät an. Dabei sende ich einen Befehl aus und erhalte 
eine Antwort zurück. Nun will ich aber diesen Befehls öfters 
hintereinander senden (z.b:5 mal) also in einer for schleife aber dies 
gelingt mir nicht so richtig, ich habe es folgendermassen probiert aber 
es klappt nicht.

fopen(s);
disp('Serialobjekt geöffnet')

% Scan ablesen
for i=1:5
fprintf(s, '%R1Q,20146:')
daten(1,i)=fscanf(s(i))
end
fclose(s)
delete(s)
clear s

Kann mir da vielleicht jemand helfen vielen Dank
Gast #3070488
Lesenswert?

Hey vielen Dank für deine Antwort, es gibt eine Fehlermeldung weiss aber 
jetrzt nicht mehr genau wie die aussah da ich das Gerät zur Zeit nicht 
zur Verfügung habe. Mit fscanf(s) erhalte ich die Antwort des Gerätes 
wahrscheinlicht ist das fscanf(s(i)) falsch aber ich weiss nicht wie man 
es anders schreiben soll damit man 5 antworten hintereinander erhält.

Vielen Dank
MFG Hans
Gast #3093243
Lesenswert?

Hallo, heute stand mir das Instrument wieder zur Verfügung und die 
Fehlermeldung die erscheint ist folgende:
Subscripted assignment dimension mismatch.
und zwar an der Stelle Code:  daten(1,i)=fscanf(s)


Es geht darum das der Befehl fprintf fünf mal gesendet werden soll, dies 
habe ich aber nicht herausfinden können. Das Problem ist das ich den 
fprintf und fscanf nicht in die Vorschleife packen kann, damit der 
Befehl öffters gesendet wird.

Ich hoffe es kann mir jemand weiterhelfen

MFG Hans P.
Persönliche Seite #3093370
Lesenswert?

Hans P. schrieb:
> Es geht darum das der Befehl fprintf fünf mal gesendet werden soll, dies
> habe ich aber nicht herausfinden können. Das Problem ist das ich den
> fprintf und fscanf nicht in die Vorschleife packen kann, damit der
> Befehl öffters gesendet wird.

Lies Dir das nochmal durch.

Und nochmal.

Meinst Du wirklich, daß irgendjemand anderes versteht, was Dein Problem 
ist, von Deiner offensichtlichen Unfähigkeit abgesehen, das Problem zu 
schildern?
Gast #3094229
Lesenswert?

Hallo es ist halt etwas kompliziert zu Beschreiben, ich versuchs 
nochmal:

s = serial('COM4');
set(s,'Baudrate',9600,'Parity','none','Databits',8,'Terminator','CR/LF', 
1);
fopen(s);

Ich sende einen Code an ein Messgerät mit fprintf(s,'%R1Q,20146:') und 
lese mir die Daten mit fscanf(s)

So funktionniert das Programm einwandfrei und ich erhalte meine Daten. 
Das Problem liegt nun darin, dass ich den Befehl 
fprintf(s,'%R1Q,20146:') nun öfters hintereinander an das Messgerät 
senden möchte. Dies habe ich mit einer for schleife folgendermassen 
probiert:

for i=1:3
fprintf(s,'%R1Q,29035:');
daten(i,1)=fscanf(s);
end

dort endsteht die Fehlermeldung: Subscripted assignment dimension 
mismatch.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren