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