請問一下PLC傳回來的字串如何轉數值

小弟目前正以RS232連接FX2N與A/D D/A模組抓溫度~抓到一些字串(ASCII)轉不成數值請個位大大幫忙解答~

我算的D0(階梯圖的溫度)0100002檢查碼56

擷取到的字串資料用HEX display格式顯示出0236 3730 3103 4431

我是很多方法就是轉不出溫度來~要不然就是看起來不像溫度的數字

請知道的大大幫忙解答~感謝

 

不知是否為167度,如果是,請参考這個
hex2dec.vi

[QUOTE=Clark1985]不知是否為167度,如果是,請参考這個
hex2dec.vi[/QUOTE]

這種方式有缺陷呦~~如果ASCII傳的內容是負值的話就會出現不正確的數字喔!

比如 3130 4545 ..(1 0 F F)為負值-32528..

Tomado38619.3956828704

![](upload://fuZ7yW2H7JpgBgGZNUBzwoPCR0g.jpeg)

這樣的結果是您要的嗎?

Tomado大大

你設計的程式我實際仿照設計後 無法顯示跟你一樣的結果![](upload://ekm3yUkVpx9yRp2Oc1K3CjKn5ta.gif)不過你顯示出來的數值跟DO暫存器顯示數值的數字型態相同

我設計的CASE跟迴圈連接是虛線 而大大你所做的卻連接實線

能請大大將你所設計的程式傳檔讓小弟參考嗎 因為光憑圖片實在很難了解程式如何設計跟原理

煩請大大幫忙一下 感激不盡 謝謝

[QUOTE=nop]

Tomado大大

你設計的程式我實際仿照設計後 無法顯示跟你一樣的結果不過你顯示出來的數值跟DO暫存器顯示數值的數字型態相同

我設計的CASE跟迴圈連接是虛線 而大大你所做的卻連接實線

[/QUOTE]

不好意思~其實case是0~15的二進制array...也就是 ascii30 為 0 array 、 ascii31 為 1 array ............ascii39 為 9 array

ascii41 為  a array ....... ascii46 為 f array

ASCII to I16.vi 給您參考囉!!

請問一下...我只寫過三菱 A 與 Q 系列的都採用二進制的模式通訊,比較沒這種問題....

FX 只有 ascii 模式可用嗎?況且 ascii 模式通訊速度較慢喔!

Tomado大大

抱歉 !!小弟的labview是7.0版...因此大大你的7.1版我不能參考..

三菱fx系列我對儀器的命令跟擷取的資料都是ascII碼形式 通訊速度真的比較慢一點

能再次煩請大大用7.0版的Labview再做個參考程式嗎??? 感激不盡 謝謝

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

轉好囉!

ASCII to I16_lv70.vi

感謝Tomado大大

你的程式我剛剛實機測試後 擷取的數值顯示跟plc-do暫存器顯示的數值一樣

跟我所撰寫的程式也能結合應用 真是太感謝大大你的鼎力幫忙![](upload://j03HfI2TMqenOSl5lfi4w7XHM9g.gif)

希望以後能跟大大多討論學習 感謝再感謝!!!!![](upload://bYCGLVQ2xYCkY6TSDzv2PwwNXoA.gif)![](upload://j03HfI2TMqenOSl5lfi4w7XHM9g.gif)![](upload://j03HfI2TMqenOSl5lfi4w7XHM9g.gif)![](upload://j03HfI2TMqenOSl5lfi4w7XHM9g.gif)![](upload://j03HfI2TMqenOSl5lfi4w7XHM9g.gif)![](upload://j03HfI2TMqenOSl5lfi4w7XHM9g.gif)

忘了也要謝謝 Clark1985大大

雖然你的程式不適合我的程式需求 不過還是感謝大大你的幫忙

感謝再感謝!!!

之前忘了把167(十六進制)轉回十進制>"<

轉後也是359

不過也因Tomado大提醒負值的問題

注意到之前程式內的bug^^~

3Q囉~