RS232 連線設定 |
缺席
|
dan2121
一般會員 發表:1 回覆:5 積分:1 註冊:2004-03-08 發送簡訊給我 |
我要和外部設備透過RS232連線 但無法連上 說明書上只有寫 2400 , 10 , N ,1
可是我用 portmon 監看連線過程 應該是 2400,8,N,1 可是我還是無法連上此設備,傳入命令機器卻都無任何回應,我試了spcomm 及另一個mscomm 元件都一樣 原程式連線過程 IRP_MJ_CREATE Serial0 SUCCESS Options: Open IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS IOCTL_SERIAL_SET_BAUD_RATE Serial0 SUCCESS Rate: 2400 --------------------------2400 IOCTL_SERIAL_SET_RTS Serial0 SUCCESS ------------------------------------------------ handshaking: RTSDTS IOCTL_SERIAL_SET_DTR Serial0 SUCCESS ------------------------------------------------ handshaking: RTSDTS IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8 ---------------------8,N,1 IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:0 XOFF:0 IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:1 Replace:40 XonLimit:0 XoffLimit:0 IOCTL_SERIAL_SET_QUEUE_SIZE Serial0 SUCCESS InSize: 1024 OutSize: 1024 IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR IOCTL_SERIAL_SET_TIMEOUTS Serial0 SUCCESS RI:-1 RM:0 RC:100 WM:10 WC:0 IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXCLEAR IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: RXCLEAR 我的程式連線過程 IRP_MJ_CREATE Serial0 SUCCESS Options: Open IOCTL_SERIAL_SET_QUEUE_SIZE Serial0 SUCCESS InSize: 4096 OutSize: 4096 IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR IOCTL_SERIAL_GET_TIMEOUTS Serial0 SUCCESS IOCTL_SERIAL_SET_TIMEOUTS Serial0 SUCCESS RI:100 RM:0 RC:0 WM:0 WC:0 IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS IOCTL_SERIAL_GET_PROPERTIES Serial0 SUCCESS IOCTL_SERIAL_GET_WAIT_MASK Serial0 SUCCESS IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS IOCTL_SERIAL_SET_BAUD_RATE Serial0 SUCCESS Rate: 2400 IOCTL_SERIAL_SET_RTS Serial0 SUCCESS IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8 IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:30 XOFF:30 IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:2 Replace:80000043 XonLimit:0 XoffLimit:0 IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: RLSD ERR RING IOCTL_SERIAL_WAIT_ON_MASK Serial0 CANCELLED IRP_MJ_READ Serial0 CANCELLED Length 2048 有沒有 rs232的高手能為我解惑 為何我送一樣的命令機器卻都沒回應 連線上的設定有何錯誤? |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
dan2121
一般會員 發表:1 回覆:5 積分:1 註冊:2004-03-08 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
dan2121
一般會員 發表:1 回覆:5 積分:1 註冊:2004-03-08 發送簡訊給我 |
|
dan2121
一般會員 發表:1 回覆:5 積分:1 註冊:2004-03-08 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
你要不要在另一個 com port 也搞個 485 用 hyper term 去看看它會不會這樣?
PS。一邊用超級終端機。一邊用你的程式。 如果這樣還不知道問題。 那既然你的是RS485,那就更好查了。 把COM2接上485,去看看你的 COM1<->device 在原廠程式跟你的程式間有什麼不同。 因為485可以多點連線。你用這樣去查應可以查出來。 不必用你的這種 monitor 的方式。也許會更快。 一個 rs232- 485 不到一千元。 你的工資搞不定一天下來。對老闆的損失。可不止這樣。^_^ 花老闆的錢。把事情搞定,慢慢哈茶。爽的是自己。 hahahaaa 加油。進一步消息。我們再討論。 ===================引 用 dan2121 文 章=================== IOCTL_SERIAL_PURGESerial0SUCCESSPurge: TXCLEAR IOCTL_SERIAL_PURGESerial0SUCCESSPurge: RXCLEAR 我主要的問題應該是出在這裡 我的元件設定改來改去都不會出現這個部份 好像沒辦法清空 TX 和 RX , spcomm 有沒有方法做到這個部份 |
dan2121
一般會員 發表:1 回覆:5 積分:1 註冊:2004-03-08 發送簡訊給我 |
我ㄧ共有五個裝置要連線 每個都不一樣 我都用RS485 (因為距離遠) 到pc端再轉回 RS232
有一個是連續傳回文字 這個好解決 有一個是數位電錶 用modbus 協定 我用別人寫好的元件 也搞定了 有一個是campell 的紀錄器 用pakbus 協定 還好他有工具 也搞定了 再來一台 只會傳送及接收 0101的位元組 不是文字 可是連線沒問題 9600,8,N,1 也搞定了 只剩下最後一台 我都連不上他 看到是 2400,8,N,1 可是送命令都沒回應 (傳送及接收都是位元組,不是字串) 應該是連線設定上跟機器端不同才連不上, 可是看它附的軟體連線過程又很簡短,沒看出有什麼特別 實體線路 RS232 只接了 2(rx) 3(tx) 5(gnd) RS485 也只接 兩線而已 所以應該沒有交握的問題 用原廠軟體 都能連線 但是我自己嘗試連線 232及485都不成功 機器都沒回應 |
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
所以我才會建議你直接去看看它在”線上”到底傳送了什麼東西。
就算是交握。你也可以由那邊看出些個端倪。 這樣也比較有利你的問題分析。 ===================引 用 dan2121 文 章=================== 我ㄧ共有五個裝置要連線 每個都不一樣 我都用RS485 (因為距離遠) 到pc端再轉回 RS232 有一個是連續傳回文字 這個好解決 有一個是數位電錶 用modbus 協定 我用別人寫好的元件 也搞定了 有一個是campell 的紀錄器 用pakbus 協定 還好他有工具 也搞定了 再來一台 只會傳送及接收0101的位元組 不是文字可是連線沒問題 9600,8,N,1也搞定了 只剩下最後一台 我都連不上他 看到是 2400,8,N,1可是送命令都沒回應 (傳送及接收都是位元組,不是字串) 應該是連線設定上跟機器端不同才連不上, 可是看它附的軟體連線過程又很簡短,沒看出有什麼特別 實體線路 RS232 只接了 2(rx) 3(tx) 5(gnd) RS485 也只接 兩線而已 所以應該沒有交握的問題 用原廠軟體 都能連線 但是我自己嘗試連線 232及485都不成功 機器都沒回應 |
shunchia63
高階會員 發表:26 回覆:141 積分:198 註冊:2007-05-22 發送簡訊給我 |
請參考WIN32 API
BOOL PurgeComm( HANDLE hFile, // handle of communications resource DWORD dwFlags // action to perform ); Parameters hFile Identifies the communications resource. The CreateFile function returns this handle. dwFlags Specifies the action to take. This parameter can be a combination of the following values: Value Meaning PURGE_TXABORT Terminates all outstanding write operations and returns immediately, even if the write operations have not been completed. PURGE_RXABORT Terminates all outstanding read operations and returns immediately, even if the read operations have not been completed. PURGE_TXCLEAR Clears the output buffer (if the device driver has one). PURGE_RXCLEAR Clears the input buffer (if the device driver has one). ===================引 用 dan2121 文 章=================== ????IOCTL_SERIAL_PURGE?Serial0?SUCCESS?Purge: TXCLEAR ? ?? ?IOCTL_SERIAL_PURGE?Serial0?SUCCESS?Purge: RXCLEAR ??? 我主要的問題應該是出在這裡?????? 我的元件設定改來改去都不會出現這個部份 ?? 好像沒辦法清空? TX 和 RX? ,?? spcomm?? 有沒有方法做到這個部份 |
dan2121
一般會員 發表:1 回覆:5 積分:1 註冊:2004-03-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |