VB 用 RS232 控制 設備 的問題~~~!!! 【以解決】

Home Home
引用 | 編輯 woandy
2008-08-18 17:50
樓主
推文 x0
我有一台廠商提供的設備
設備的說明如下:
--------------------------------------------------------------------------
設定:
8 data bits
no parity bit generated or checked
1stop bit
selectable BAUD rates ranging form 9600 BAUD
操作指令:
ASCII DATA                Hex CodeS                Description
     '                                      60           ..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 mixccc
2008-08-18 22:44
1樓
  
請確認你的port是COM1
廠商除了提供設備,也要有手冊!

Private Sub Form_Load()
  MSComm1.CommPort = 1
  MSComm1.Settings = "9600,n,8,1"
  'MSComm1.InputLen = 0
  MSComm1.PortOpen = True
End Sub

Private Sub Command1_Click()
  MSComm1.Output = Chr(96) & Chr(13)
End Sub

獻花 x0
引用 | 編輯 三仙
2008-08-19 20:27
2樓
  
不好意思,我的NB沒有COMPORT可以測試
但你這行   ByteArray(0) = H60 'cut
是不是應該這樣 ByteArray(0) = &H60 'cut

以下這篇連結供你參考,裡面有範例
http://bbs-mychat.com/read.php?tid=170069&keyword=mscomm

獻花 x0
引用 | 編輯 woandy
2008-08-19 21:25
3樓
  
不好意思 首先 謝謝你們的回應

第1 是 COM1 沒錯的

第2 廠商給的手冊 就只有如上列所附的指令

另外一個朋友的回應也謝謝你

上面是我少打的 & 十分抱歉

獻花 x0
引用 | 編輯 三仙
2008-08-19 22:29
4樓
  
下面是引用woandy於2008-08-19 21:25發表的 :
不好意思 首先 謝謝你們的回應

第1 是 COM1 沒錯的

第2 廠商給的手冊 就只有如上列所附的指令

另外一個朋友的回應也謝謝你

上面是我少打的 & 十分抱歉


不客氣
我想你那個廠供的設備
應該是輸出後處理的吧
因為沒有看到相關INPUT的屬性
如果樓主問題解決了
還請不吝分享給大家表情

獻花 x0
引用 | 編輯 woandy
2008-08-20 00:45
5樓
  
下面是引用三仙於2008-08-19 22:29發表的 :


不客氣
我想你那個廠供的設備
應該是輸出後處理的吧
因為沒有看到相關INPUT的屬性
如果樓主問題解決了
還請不吝分享給大家表情




謝謝你 問題還沒有解決 ( 泣~~~

不知道為什麼 都沒有反應 ˊˋ

我試過短路 2.3腳 看看 傳回的資料是否正確

應該是沒錯 ˊˋ

廠商的設備附上的指令其實很少

主要用到的就是我上面貼的哪二個

一個是 CUT 一個是 ENTER

另外還有幾個如下

ASCII Data                         Hex Codes                              Description
     |                                          7C                             Divent output to display 
     \                                          5C                             Divent output to tag
    ^                                          5E                             Wait  for  key

當執行
ByteArray(1) = &H7C
MSComm1.Output= ByteArray
我用一個TEXT 收值  收到的值 就是  |

當執行
ByteArray(1) = &H60
MSComm1.Output= ByteArray
收到的值 是空白

我現在在想的是  是不是 收到的值 也要是 16進位的才會有作用 ˊˋ

獻花 x0
引用 | 編輯 三仙
2008-08-20 09:41
6樓
  
下面是引用woandy於2008-08-20 00:45發表的 Re: :
當執行
ByteArray(1) = &H7C
MSComm1.Output= ByteArray
我用一個TEXT 收值  收到的值 就是  |

當執行
ByteArray(1) = &H60
MSComm1.Output= ByteArray
收到的值 是空白

我現在在想的是  是不是 收到的值 也要是 16進位的才會有作用 ˊˋ
.......


你宣告使用位元組陣列
來處理16進位的格式
所以只要雙方均遵守相同的規定就可以

獻花 x0
引用 | 編輯 woandy
2008-08-20 15:34
7樓
  
我也覺得 應該沒錯阿

為啥都不動呢.....

為什麼.....為什麼.....為什麼.....為什麼.....為什麼.....

獻花 x0
引用 | 編輯 三仙
2008-08-20 16:20
8樓
  
程式看起來都沒錯
但總覺得在 MSComm1.Output= ByteArray
少了vbCr復位字元
例MSComm1.Output= ByteArray & vbCr

我記得不管是送出字串還是位元組
結尾的復位字元是一定要的
請再試試  表情 

下面是引用woandy於2008-08-20 15:34發表的 :
我也覺得 應該沒錯阿

為啥都不動呢.....

為什麼.....為什麼.....為什麼.....為什麼.....為什麼.....


獻花 x0
引用 | 編輯 woandy
2008-08-20 17:10
9樓
  
vbCr 復位字元

vbCr 應該 = 什麼

他應該有值是嗎 

例如chr(13)

這樣是嗎?

獻花 x0
引用 | 編輯 三仙
2008-08-20 19:08
10樓
  

圖 1.


下面是引用woandy於2008-08-20 17:10發表的 :
vbCr 復位字元

vbCr 應該 = 什麼

他應該有值是嗎 

例如chr(13)

這樣是嗎?


是的  表情  附上常數說明圖

獻花 x0
引用 | 編輯 woandy
2008-08-20 23:06
11樓
  
真是感謝各為大大熱情回應....

最後我把整台機器都拆了...

然後還把主機板拆下來研究

最後發現應該是他的主機板有問題

跟廠商拿了一塊備品之後.....

果然可以正常使用了...

指令下達方式如下:

Private Sub Command1_Click()

Dim ByteArray() As Byte
ReDim ByteArray(2)
ByteArray(0) = &H5C ←Divert output to tag
ByteArray(1) = &H46 ← 打算要印的字
ByteArray(2) = &HD ←ENTER
MSComm1.Output = ByteArray
End Sub

獻花 x0
引用 | 編輯 三仙
2008-08-20 23:37
12樓
  
恭禧了 表情
只是沒有結尾的字元還是第一次看到 表情
我以前寫比測儀的方式
跟 mixccc是差不多的用法

獻花 x0
引用 | 編輯 mixccc
2008-08-21 23:35
13樓
  
所以...你用的並不是COM1...
而是"COM落去",呵~~~

如果是輸出不正常,用電表量一下輸出電壓,也是可以的.

下面是引用woandy於2008-08-20 23:06發表的 :
真是感謝各為大大熱情回應....

最後我把整台機器都拆了...

然後還把主機板拆下來研究

最後發現應該是他的主機板有問題

跟廠商拿了一塊備品之後.....

果然可以正常使用了...

指令下達方式如下:

Private Sub Command1_Click()

Dim ByteArray() As Byte
ReDim ByteArray(2)
ByteArray(0) = &H5C ←Divert output to tag
ByteArray(1) = &H46 ← 打算要印的字
ByteArray(2) = &HD ←ENTER
MSComm1.Output = ByteArray
End Sub


獻花 x0
引用 | 編輯 woandy
2008-08-23 16:10
14樓
  
下面是引用mixccc於2008-08-21 23:35發表的 Re: :
所以...你用的並不是COM1...
而是"COM落去",呵~~~


我也是千百個 不願意 表情

之前寫 發票印表機的時候

就覺得沒哪麼困難

為什麼這次 居然怎麼都搞不出來 =︿=

真是多謝你們的熱情贊助啦...表情

獻花 x0