![]() |
||
Major Member
![]() 加入日期: Aug 2010
文章: 168
|
目前已經調整出可以從終端機看到目前秤重的數值...
但常常電腦會抓錯數值... 不知道這是常態還是非常態? 因為感覺是 Baud rate 的關係,目前調整後9600成功率比較高... 舉個例: 如果秤重1025g使用終端機會一直出現0001025 g 訊息,但有時候會抓到50001025 g 導致判讀重量錯誤...類似這樣的錯誤一般如何改善? |
|||||||
![]() |
![]() |
Major Member
![]() 加入日期: Jun 2002
文章: 125
|
引用:
1. 先另使用短的 rs-232 纜線測試以確定不是接線問題, 並檢查接地與電位 (包含通訊纜線本身接線與兩端雙方設備地電位).. 2. 再看一下 handshaking (RTS/CTS, DTE/DCE) , 有無接續, 會有啥差異.. 3. 調整通訊字元格式組合, 就如前面網友 Personal 君所說的那些.. 4. 電腦端若可以控制 rs-232 IC 的 buffer, 試著調整 enable 看看 (早期 rs-232 通訊 IC 8250 / 16450 因 buffer 不足, 在較高通訊速率時, 程式容易掉資料, 後來開始有 16550, buffer 層數有到 16, 才好操作在較高速率) 5. 有些廠家會刻意使用非標準 baud rate, 您若能細調通訊 IC 上有關 baud rate 的相關除頻紀錄器, 試著微調看看.. 6. 同樣外觀的 port, 不見得就一定是 rs-232, 就如同老柏四代所言, 先翻看一下秤重計, 看看有無廠牌型號等, 才好找出相關資料.. 以上暫時先想到這樣..... |
|||
![]() |
![]() |
Advance Member
![]() ![]() 加入日期: Mar 2003
文章: 337
|
引用:
有讀出正確數據,可見得 RS-232 沒接錯(2,3腳位有對調俗稱 NULL MODEM) 看過公司的地磅系統,電腦上的地磅系統會有起始碼或結束碼,來宣告資料的起始值或結束值。 你只要找出那個數值就可以正常使用了。 如果沒那個數值,那程式要用擷取符合位元當起始值,判斷何時是結束值。 |
|
![]() |
![]() |
Major Member
![]() 加入日期: Aug 2010
文章: 168
|
引用:
我想機器廠商型號是衡泰DSII-861,這是目前翻遍整台機器唯一看到的資訊 因為系統的部份不是我這寫的,所以沒辦法修改調整 然後那一套系統只能設定 COM port 跟 Baud rate 部分,其餘沒有 item 可以設定 使用終端機看到的資訊一定都是 XXXXXX g,所以我想用 g 當結束值應該沒問題才是 是否可以從裝置管理員的COM設定調整改善些什麼?我試過改停止位元1、1.5、2還是會有狀況... |
|
![]() |
![]() |
Power Member
![]() ![]() 加入日期: Aug 2002
文章: 688
|
引用:
基本上,改baudrate就好,其他設定照default就用n,8,1, 除了baudrate會不一樣,其他設定很少有機器會用不一樣的設定,來找麻煩 看到你提到 "如果秤重1025g使用終端機會一直出現0001025 g 訊息,但有時候會抓到50001025 g" 個人覺得RS232的設定已經完全正確了 接下來是要去了解為什麼有時會有5 送出命令跟機器回應的分析哪裡不對 一般機器喜歡設計\r\n為回應結束
__________________
性子是拿來磨的,不是拿來使的 |
|
![]() |
![]() |
Major Member
![]() 加入日期: Jun 2002
文章: 125
|
引用:
改變一下重量, 看看那個有問題的數值 "5" 會不會改變, 若不改變, 代表這個字元與秤重數值無關; 若會改變, 紀錄一下是什麼數值, 改變重量再測並紀錄, 或可從其變化發現些蛛絲馬跡.. |
|
![]() |
![]() |
Major Member
![]() 加入日期: Aug 2010
文章: 168
|
引用:
數值會隨著目前重量改變無誤,就終端機看到的都是正確的,但是就是會抓錯...,目前我也把電腦COM port的FIFO設定都調最慢了... |
|
![]() |
![]() |
Major Member
![]() 加入日期: Jun 2002
文章: 125
|
引用:
您所謂的抓錯, 是否是指那個有問題的數值 "5", 一定會跟個位數一樣, 還是會呈現別的數值? 譬如抓錯時, 出現的數值跟個位數一樣: 正常讀取: 不正常: 0003556 g 60003556 g 0004753 g 30004753 g 還是說像這樣, 是別的數值: 正常讀取: 不正常: 0003556 g 70003556 g 0004753 g 90004753 g 還是說像這樣, 抓錯的那一組, 都會出現 "5": 正常讀取: 不正常: 0003556 g 50003556 g 0004753 g 50004753 g 會這樣問, 只是要確定您原來 po 的那個不正常 50001025 g, 不是因為誤抓了個位數值 0001025 的關係.. 此外, 所謂的抓錯, 其出現間格是否都一樣? 還是有改變? 譬如每隔三筆出現一次: 0001025 g 0001025 g 0001025 g 50001025 g 0001025 g 0001025 g 0001025 g 50001025 g 還是隨機: 0001025 g 50001025 g 0001025 g 50001025 g 0001025 g 0001025 g 0001025 g 50001025 g 還是說是像這樣, 每逢抓錯的那一組才會跳行: 0001025 g 0001025 g 0001025 g 50001025g 0001025 g 0001025 g 0001025 g 50001025g 另外從終端機看, 所列出字元有無 "CR" 以跳到下一行像這樣: 0001025 g 0001025 g 0001025 g 50001025 g 還是說是像這樣: 0001025 g 0001025 g 0001025 g 50001025g 0001025 g..... 另外終端機類型有很多種, 譬如 VT100, VT52 ansi 等一堆; 因為不同的控制字元之故, 相同的資料, 在不同的終端機可能會呈現不同的表列資訊; 看一下您目前所使用的終端機程式, 看能否切換成別的終端機形式以觀察.. 另外您可以找一些 com port 的分析程式 (可以用 com port analyzer 為關鍵字搜尋), 看看該電子秤所送出的字元裡, 有無特殊的控制字元; 通常這類程式, 也會比一般終端機程式, 提供較多的 com port 特殊設定.. |
|
![]() |
![]() |
Major Member
![]() 加入日期: Aug 2010
文章: 168
|
引用:
我的OS是Windows7 32bit 所以沒有超級終端機,所以我使用putty這程式做觀察 目前看終端機的資訊都是固定的,只有在置放跟移除被測物時由於重量改變,所以它會累減或累加到目前重量這段時間會變動,非常感謝各位熱情回覆協助解決問題 |
|
![]() |
![]() |