-1 與-2 都是經過桌面的文本文件.txt來實現C#與MATLAB端的數據傳輸,這個txt文件就起到了中間的鏈接,但若將服務器端放在雲服務器上,由於不在同一臺計算機中,因此不能找到一個兩者都能訪問到的中間文件txt 因此這種方法不可行服務器
用fwrite函數發送變量值給服務器端,代碼也很簡單,不知道當時爲何在這上邊整不明白,重要的幾句代碼以下:tcp
a='1.1';%模擬存儲電機的實時速度
fwrite(s,a,'int8');%發送電機的實時速度給服務器端函數
receive=fread(s,get(s,'BytesAvailable'));
data=char(receive)'% ’使接收到的列向量轉置成一個字符串類型spa
MATLAB(客戶端)code
1 s = tcpip('127.0.0.1', 125, 'NetworkRole','client'); 2 set(s, 'InputBufferSize', 30); 3 set(s, 'outputBufferSize', 30); 4 set(s,'Timeout',3); 5 fopen(s); 6 b=1; 7 c=1; 8 d=1; 9 10 a='1.1';%模擬存儲電機的實時速度 11 fwrite(s,a,'int8');%發送電機的實時速度給服務器端 12 pause(1);%暫停一秒 13 14 while(b)%while循環是想 只有讀到PID控制器計算完成的信號後,再往下執行代碼 不然在原地等待 直到讀到信號 15 read=fread(s,1) 16 if read==49 17 b=0; 18 end 19 end 20 receive=fread(s,get(s,'BytesAvailable')); 21 data=char(receive)' 22 23 24 a='2.2';%模擬存儲電機的實時速度 25 fwrite(s,a,'int8');%發送電機的實時速度給服務器端 26 pause(1);%暫停一秒 27 28 while(c)%while循環是想 只有讀到PID控制器計算完成的信號後,再往下執行代碼 不然在原地等待 直到讀到信號 29 read=fread(s,1) 30 if read==49 31 c=0; 32 end 33 end 34 receive=fread(s,get(s,'BytesAvailable')); 35 data=char(receive)' 36 37 a='3.3';%模擬存儲電機的實時速度 38 fwrite(s,a,'int8');%發送電機的實時速度給服務器端 39 pause(1);%暫停一秒 40 41 while(d)%while循環是想 只有讀到PID控制器計算完成的信號後,再往下執行代碼 不然在原地等待 直到讀到信號 42 read=fread(s,1) 43 if read==49 44 d=0; 45 end 46 end 47 receive=fread(s,get(s,'BytesAvailable')); 48 data=char(receive)' 49 50 fclose(s)
代碼:blog