注册 登录
编程论坛 VB6论坛

求助,关于POS收银机客显通讯

ll00ll 发布于 2016-11-24 10:27, 4524 次点击
要做一个小的收银软件,我用了ESC/POS命令,写成了下面这样子。
程序代码:

Open "com1" For Output As #1
    Print #1, Chr(27) & Chr(115) & chr(50)   '总价灯亮
    Print #1, Chr(27) & Chr(81) & Chr(65) & TotalSale & Chr(13) '发送金额
Close #1

不知道为什么客显是暗的,没反应!

但是有个情况,我用另外一个下载的收银软件,客显能显示的。

开过这个下载的收银软件之后,我的这段代码就有效果了,开始以为是波特率不对所以改成了下面这样,
程序代码:

Open "com1" For Output As #1
    Print #1, Chr(2) & Chr(66) & Chr(50)    '修改波特率为2400
    Print #1, Chr(27) & Chr(115) & chr(50)   '总价灯亮
    Print #1, Chr(27) & Chr(81) & Chr(65) & TotalSale & Chr(13) '发送金额
Close #1

但也不管用。。我就奇怪了到底哪里出问题了。确定是com1口的


通用客显指令集
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录




[此贴子已经被作者于2016-11-24 10:37编辑过]

5 回复
#2
ll00ll2016-11-24 13:45
来人啊
#3
xzlxzlxzl2016-11-24 15:57
估计是没有执行初始化命令,用专用软件启动后相当于帮你初始化了,所以你的命令才能发送正常,试试下面的代码:
Open "com1" For Output As #1
    Print #1, Chr(27) & Chr(64)        'ESC+@命令初始化
    Print #1, Chr(27) & Chr(115) & chr(50)   '总价灯亮
    Print #1, Chr(27) & Chr(81) & Chr(65) & TotalSale & Chr(13) '发送金额
Close #1

'参见资料:http://www.
#4
ll00ll2016-11-24 16:28
我加了初始化命令也不行哦!
后来我测试,在我的代码之前,用MSComm控件打开一次,就可以正常显示了。我也不知道是什么原因,难道是我调整波特率的命令错了或者没生效吗,真是奇怪了
程序代码:

With MSComm1
    .CommPort = 1
    .Settings = "9600,N,8,1"
    .PortOpen = True
    .Output = "123"
    .PortOpen = False
End With

Open "com1" For Output As #1
    Print #1, Chr(2) & Chr(66) & Chr(50)    '修改波特率为2400
    Print #1, Chr(27) & Chr(115) & chr(50)   '总价灯亮
    Print #1, Chr(27) & Chr(81) & Chr(65) & TotalSale & Chr(13) '发送金额
Close #1

#5
xzlxzlxzl2016-11-24 16:33
回复 4楼 ll00ll
解决了就好,为什么不直接用mscomm直接输送指令呢?用打开设备的方式不能检测状态信息,在设备没开机的情况下就像进入死机状态。

[此贴子已经被作者于2016-11-24 16:35编辑过]

#6
ll00ll2016-11-24 16:49
之前也不知道有mscomm,看到有ESC/POS指令,以为像打印机一样发几条ESC/POS就好了...谁知折腾好几天

谢谢 热心的xzlxzlxzl
1