線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2226
推到 Plurk!
推到 Facebook!

PC與外部機器的通訊問題

答題得分者是:sryang
Mich
一般會員


發表:8
回覆:10
積分:8
註冊:2003-09-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-27 22:59:57 IP:125.231.xxx.xxx 訂閱
程式主要是pc與外部機器(變頻器v7)做資料的傳輸,通訊格式(參數)是由Edit1~Edit7的值來決定,並用Label2
顯示變頻器傳回的數值。
現在我遇到的問題是:將資料傳給變頻器,變頻器依參數指令動作,但過約1秒後變頻器跳CE(MEMOBUS通訊異常),
Label1為無顯示(猜測可能是收到不可見字元,因為PC傳給變頻器的資料很多是不可見字元,包含0x00);
請問各位前輩
1.我要如何將ASCII的數值顯示出來(例如:'A' 顯示65或0x41),如此我才可以判斷錯誤的原因。
2.我有試過將WaitTx顯示在Label1上做監看,但是當Edit如果有設00,之後的資料不會顯示在Label1上,是因為字串以null為結尾的原因嗎?
那為什麼變頻器有接收到後面的資料(因為變頻器依參數指令動作);
以下是部分相關的程式:
AnsiString WaitTx = AnsiString(char(Edit1->Text.ToInt()))
AnsiString(char(Edit2->Text.ToInt()))
AnsiString(char(Edit3->Text.ToInt()))
AnsiString(char(Edit4->Text.ToInt()))
AnsiString(char(Edit5->Text.ToInt()))
AnsiString(char(Edit6->Text.ToInt()))
AnsiString(char(Edit7->Text.ToInt()));
Serial_Port->TxString=WaitTx; //等待傳送的字串
Serial_Port->Transmission(); //傳送的函式
Serial_Port->Received();
Label1->Caption=Serial_Port->RxBuf //顯示接收的字串
//RxBuf在標頭檔宣告為字元陣列//
char RXBuf[128];

初學BCB,如果問題太膚淺,也請各位前輩多多指教,謝謝!!

dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-29 09:05:48 IP:220.134.xxx.xxx 訂閱
Serial_Port 是自己寫的元件嗎?如果是的話,就增加寫入 char 陣列的介面,就可以解決問題了。
一般
Serial_Port 元件會有類似 WriteBuf(Buf,Size) 的介面如:
char Buf[7];
Buf[0]=
Edit1->Text.ToInt();
Buf[1]=Edit2->Text.ToInt();
Buf[2]=Edit3->Text.ToInt();
Buf[3]=Edit4->Text.ToInt();
Buf[4]=Edit5->Text.ToInt();
Buf[5]=Edit6->Text.ToInt();
Buf[6]=Edit7->Text.ToInt();
Serial_Port->WriteBuf(Buf,7);
這樣,即使是 7 個 0 也都可以送出。
AnsiString 基本上是以 0 作結尾的,如果使用

Serial_Port->TxString=WaitTx;
0 之後不送是很正常的。

Buf 顯示除錯可以使用 printf 例如:
AnsiString as=EmptyStr;
for(int i=0;i<7;i )
as.cat_printf("Buf[%d]=0xX\n", i, Buf[i])
Label1->Caption=as;


接收到的也可相同的方式查看內容。參考 AnsiString::printf, 有更多格式說明。
------
http://www.ViewMove.com
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-29 11:18:01 IP:59.125.xxx.xxx 訂閱
你可以利用 AccessPort 這隻程式來監控 COM Port 的傳輸
這是免費的串列埠通訊、監控程式
網址:http://www.sudt.com/en/ap/index.html
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
Mich
一般會員


發表:8
回覆:10
積分:8
註冊:2003-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-08-30 20:52:57 IP:125.231.xxx.xxx 訂閱
感謝dllee所提供的方法,與sryang所提供的AccessPort 程式(真的很好用),希望問題可以順利解決。再次感謝dllee和sryang前輩的指教,謝謝!!
系統時間:2024-04-25 16:27:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!