請問如何將PLC回應的16進位字串轉為數字 |
尚未結案
|
godspeedx10
一般會員 發表:9 回覆:25 積分:6 註冊:2002-04-22 發送簡訊給我 |
諸位先進大家好:
我從UDP Client送一16進位字串給PLC。 sMsg := Chr($01) Chr($FF) Chr($0A) Chr($00);
UDPClient.Send(sMsg);
sPLCAnswer := UDPClient.ReceiveString(-1); PLC也回一String型態的字串,我以Debug視窗看sPLCAnswer的內容如下:
sPLCAnswer = '#$81#0#1#0'd#$C8'#0.....' 之類的,我知道它的回應是對的。
前面3Bytes的值分別是16進位的81h,0h,1h。
我用以下的方式嚐試把它讀出來:
PT : ^Byte; //byte指標
aAnsByte : array of byte;
.
.
PT := @sPLCAnswer
aAnsByte[i] := PT^;
這種方式讀出的值都不正確,光第一Byte的值就變來變去,每次都不一樣。 用sChar := LeftStr(sPLCAnswer,1)可以取出'#$81'
但StrtoInt(sChar)出錯,說有一個'?'令它無法轉換,但哪來的'?' 請求諸位先進協助如何解析這個字串,非常感謝!
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
godspeedx10
一般會員 發表:9 回覆:25 積分:6 註冊:2002-04-22 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |