打印机能打票,收银钱箱打不开开,只能用钥匙开,是咋回事

20281人阅读
// 支持开钱箱的打印机有EPSON 210PD/220、STAR POS58、DIY-POS POS58N
function openmoneybox: // 开钱箱 Epson210D+D7+Win2k测试通过
pport: // 打印机端口,开钱箱端口
prin: // 打印机类型
cd:=trim(sini.ReadString('Pos','use_pos_pd_led_omb','')); // 使用客显开钱箱
if cd='1' then // // diy 川田客显开钱箱,使用客显开钱箱
pdstr:=chr(2)+chr(77); // {控制顾客显示屏开钱箱指令}
com_send(Pchar(PDStr),Length(PDStr));
pdStr:=Chr(27)+'p'+Chr(0)+Chr(60)+Chr(255); // 开钱箱 在win2000下,TP POS58
// pdstr:=chr(27)+chr(112)+chr(0)+chr(60)+chr(255); // 在DOS下开钱箱 RP-POS58NL-P、RP-POS58NS-P、EPSON 210、TP-POS58
// CHR(27)+"p"+CHR(07); // Star SP312 (Receipt)-&Star SP2000系列的打印机
pport:=sini.readstring('Pos','posprinterport',''); // 打印机端口
prin:=sini.ReadString('Pos','posprintertype',''); // 打印机类型
if prin='STAR SP2000兼容针打' then
pdstr:=CHR(27)+chr(112)+CHR(07); // Star SP312 (Receipt)-&Star SP2000系列的打印机
// STAR SP2000兼容针打
assignFile(F, 'LPT1');
// assignfile(f,pport);
Rewrite(F);
Write(F,pdStr);
CloseFile(F);
application.messagebox('对不起,打开钱箱失败,请检查[打印机类型或设置]!'+#13+#13+
'系统提示:请先检查[打印机是否没纸或打印机连接线]!',
pchar(syscaption),mb_ok+mb_iconerror);
其实开钱箱是有几种,一:通过钱箱卡来驱动 二:通过打印机 三:通过顾显 四:通过主板接口,每种都不一样,以下是通过打印机来驱动的:
pdStr:开钱箱指令
pdStr:=#27+#112+#0+#100+#100; //很通用
assignFile(F, 'LPT1');
Rewrite(F);
Write(F,pdStr);
CloseFile(F);
转:pos软件打印及开钱箱
PowerBuilder下使用并口控制打印机
使用PowerBuilder编程的人员如果需要在Windows下使用并口打印机逐行打印,而又不想使用Windows的驱动程序。我们这里提供一种不需要任何外来的元件的方法。
li_FileNum
li_FileNum
FileOpen("LPT1",LineMode!,
LockWrite!,
PDStr=&PowerBuilder
FileWrite(li_FileNum,PDStr)
FileClose(li_FileNum)
如果需要控制并口的POS58打印机开钱箱,使用以上方法是不可打开的,因为PowerBuilder会把chr(0)认为毫无意义而给屏蔽掉,所以就只有使用调用外部文件的方法来实现。把附带的OpenLptDoor.exe文件复制到程序的目录下,然后在PowerBuilder下调用以下语句就可以打开了,其实该文件执行的指令就是Chr(27)+&p&+Chr(0)+Chr(60)+Chr(255):
Run("OpenLptDoor.exe")
如果OpenLptDoor.exe文件保存在别的位置,就要在调用语句中加入文件存放路径。
PowerBuilder环境下控制串口顾客显示屏
使用PowerBuilder编程的人员如果需要在Windows下使用串口控制顾客显示屏或串口打印机,就需要使用外来方式。我们这里提供了API_COM.DLL这个链接库供调用。
首先把API_COM.DLL文件复制到编写的源程序目录下,接着在程序中声明调用的三个函数:
打开源程序,然后选择下拉菜单&Declare&,接着从菜单中选择&Local
Functions&。
此时出现&Declare
Functions&窗口,在窗口中输入如下内容:
com_init(Int
baud)library
"api_com.dll"
com_rest()
"api_com.dll"
com_send(string
len)library
"api_com.dll"
按&OK&以后即对函数声明完毕。
现在就可以在程序中调用函数了。首先打开窗体的脚本编辑器,选择&show&事件,写入如下内容,该内容表示窗体显示时打开端口:
com_init(1,2400)
messagebox("错误","COM1打开错误!",exclamation!)
接着选择&close&事件,写入如下内容,该内容表示窗体关闭时关闭端口:
com_rest();
现在可以返回主窗体了,在窗体上增加一个按钮,打开该按钮的脚本编辑器,写入如下内容:
PDStr=Char(27)+Char(81)+Char(65)+"1234.56"+Char(13);
com_send(PDStr,Len(PDStr))
按照如上操作,就可以向串口发送显示数字的指令了,如果需要实现其他的功能,只需要对PDStr进行赋值就可以了。
下面是控制顾客显示屏显示&总计&灯的命令:
PDStr=Char(27)+Char(115)+&2&
该代码还可以控制POS58打印机打印,给PDStr如下赋值就开始打印了:
PDStr=&PowerBuilder
COM1&+Char(10)
使用打印开钱箱:
Chr(27)+&p&+Chr(0)+Chr(60)+Chr(255)
使用调用外部文件的方法来实现。把附带的OpenLptDoor.exe文件复制到程序的目录下,自定义打印按扭:
Report(...)andRun(docdir +"OpenLptDoor.exe")
1、控制POS机的客户显示屏
procedure TFrmMain.ShowMoney(Money_Port:
SMoney_String:String);
//Moneey_Port
顾显接口Com1
Money_String
顾显显示的内容
PrnFileName:TextF
Assignfile(PrnFileName,Money_Port);
printer.Canvas.Font.Name:='宋体';
printer.Canvas.Font.Size:=8;
printer.Canvas.Font.Charset:=GB2312_CHARSET;
Rewrite(PrnFileName);
write(PRNFileName,chr(12));
//清除顾显
write(PRNFileName,chr(27)+chr(81)+chr(65)+Money_String+chR(13));
//显示信息
CloseFile(PRNFileName);
2、不换页走纸的打印
procedure TFrmMain.AddPrintStrings(Strings: TStrings);
Prn: TextF
Assignfile(Prn,'lpt1');
printer.Canvas.Font.Name:='宋体';
printer.Canvas.Font.Size:=9;
printer.Canvas.Font.Charset:=GB2312_CHARSET;
Rewrite(Prn);
for i := 0 to Strings.Count - 1 do
writeln(Prn, Strings.Strings[i]);
CloseFile(Prn);
on EInOutError do
MessageBox(Handle,PChar('文本打印出错!'),'警告',MB_ICONEXCLAMATION or MB_OK);
3、走纸换页的打印
procedure TFrmMain.PrintStrings(Strings: TStrings);
Prn: TextF
AssignPrn(Prn);
Rewrite(Prn);
printer.Canvas.Font.Name:='宋体';
printer.Canvas.Font.Size:=9;
printer.Canvas.Font.Charset:=GB2312_CHARSET;
for i := 0 to Strings.Count - 1 do
writeln(Prn, Strings.Strings[i]);
CloseFile(Prn);
on EInOutError do
MessageBox(Handle,PChar('文本打印出错!'),'警告',MB_ICONEXCLAMATION or MB_OK);
4、打开钱箱
procedure TFrmMain.OpenMoneyB
Var F:TextF
//弹出钱箱功能
PDStr:= Chr(27)+'p'+Chr(0)+Chr(60)+Chr(255);
AssignFile(F, 'LPT1');
Rewrite(F);
Write(F, PDStr);
CloseFile(F);
总结:以上代码经过测试通过。
'p '+CHR(0)+CHR(20)+CHR(255) ';
Assignfile(PrnFileName, 'LPT1 ');
Rewrite(PrnFileName);
write(PRNFileName,buffer
CloseFile(PRNFileName);
'打印内容 ';
Assignfile(PrnFileName, 'LPT1 ');
Rewrite(PrnFileName);
write(PRNFileName,buffer
CloseFile(PRNFileName);
如果我先打印在开钱箱就好使,否则就象死掉了一样,那为什么呢?
//Delphi下使用并口控制打印机
//打开钱箱的代码
日 星期四 15:38
Delphi下使用并口控制打印机
使用Delphi编程的人员如果需要在Windows下使用并口打印机逐行打印,而又不想使用Windows的驱动程序。我们这里提供一种不需要任何外来的元件的方法。
Var F:TextF
Str:=& 欢迎使用票据打印机!&+Chr(10);
AssignFile(F, 'LPT1');
Rewrite(F);
Write(F, Str);
CloseFile(F);
Messagedlg('数据发送失败!',mterror,[mbok],0);
如果需要控制并口打印机开钱箱,也只需要重新给Str如下赋值:
Str:= Chr(27)+'p'+Chr(0)+Chr(25)+Chr(255);
Delphi下使用串口控制打印机
使用Delphi编程的人员如果需要在Windows下使用串口控制顾客显示屏或串口打印机,就需要使用外来方式。我们这里提供了API_COM.DLL这个链接库供调用。
首先把API_COM.DLL文件复制到编写的源程序目录下,接着在程序的开头声明调用的三个函数来源:
Form1: TForm1;
{加入下面三行声明}
function com_init(com:I baud:Dword):Bexternal 'api_com.dll';
function com_rest:Bexternal 'api_com.dll';
function com_send(buf:PC len:Integer):Bexternal 'api_com.dll';
implementation
{$R *.DFM}
Com_init(1,9600)是打开串口进行通讯,1是打开COM1,波特率为9600。如果打开成功,它会返回逻辑真告知串口打开。
Com_rest是关闭串口。
Com_send(命令,长度)是发送数据到串口。
{在窗体创建时打开端口}
procedure TForm1.FormCreate(Sender: TObject);
Com_init(1,9600);
{在按钮中发送内容}
procedure TForm1.Button1Click(Sender: TObject);
Str=Chr(27)+Chr(112)+Chr(0)+Chr(25)+Chr(255);{控制打印机开钱箱指令}
if com_send(Pchar(Str),Length(Str)) then
Label1.Caption :='已经发送命令';
Label1.Caption :='发送失败';
{在关闭窗体时关闭端口}
procedure TForm1.FormClose(Sender: TO var Action: TCloseAction);
上面语句是控制打印机开钱箱命令,其他的命令集只需要改变按钮中的Str的值即可:
下面是控制打印机打印出&欢迎使用GP系列票据打印机!&的命令:
Str=&欢迎使用GP系列票据打印机!&+Chr(13)
if com_send(Pchar(Str),Length(Str)) then
Label1.Caption :='已经发送命令';
Label1.Caption :='发送失败';
部分特殊打印机
转发至微博
阅读(127)| 评论(0)| 引用 (0) |举报
数据集处理成可视树,数据网格自动适应宽度
在delphi中如何发送打印机控制码?
历史上的今天
C#枚举系统安装的所有打印机 01:23:31 vb.net直接控制并口打印机的两种方法 00:56:56 直接把结果输出到打印机 16:55:26 用宏给打印机&记工& 18:37:15 取得网络上的打印机 21:24:12
登录后,您可以在此留下足迹。 fairyhoo
点击登录|昵称:
取消 验证码:换一张
上一页 1... -1-1-1-1-1-1-1... -1下一页
我目前用的是川田POS58的,指令是这样的:
使用Delphi编程的人员如果需要在Windows下使用并口打印机逐行打印,而又不想使用Windows的驱动程序。我们这里提供一种不需要任何外来的元件的方法。
Var F:TextF
PDStr:=&Delphi Printer on LPT1&+chr(10);
AssignFile(F, 'LPT1');
Rewrite(F);
Write(F, PDStr);
CloseFile(F);
Messagedlg('数据发送失败!',mterror,[mbok],0);
如果需要控制并口的POS58打印机开钱箱,也只需要重新给PDStr如下赋值:
PDStr:= Chr(27)+'p'+Chr(0)+Chr(60)+Chr(255);
http://www.sddbbs.net/bbs/dispbbs.asp?boardID=89&ID=1707
【分享】POS钱箱的安装方法及零售单开钱箱指令设置
 钱箱类型比较多,它的接口也有较大区别,有的类似电话线接头的,有的只有两根电线,有的是COM口的,也有的是LPT口的,安装与连接方法也有所不同,软件驱动方式也不一样。
常见的钱箱是与票据打印机一起使用的,一般票据打印机的背面都有钱箱的驱动接口,将钱箱的RJ11接头(类似电话线接头)连接到票据打印机背面的驱动接口,一般票据打印机是连接在COM口或LPT口上的,然后通过软件向COM或LPT口发送信号,这样就可以打开钱箱了;
一般票据打印机的钱箱的驱动指令是通过票据打印机来发送的,跟钱箱没有关系,票据打印机的供应商会提供给您该型号打印机的驱动钱箱指令说明,您再将该指令加入您的POS前台软件里即可。
驱动指令有使用十六进制的,也有十进制的,也有ASCII代码的,在下面的例子中将把这三种数据表达形式对应关系列示出。
如:STAR票据打印机接在LPT1口中,驱动指令是:
     指令
开钱箱指令
CHR(0x1B)+ CHR(0x70)+ CHR(0x7)
CHR(27)+ CHR(112)+ CHR(7)
CHR(27)+'p'+ CHR(7)
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:57932次
排名:千里之外
原创:23篇
评论:13条
(1)(1)(6)(8)(2)(1)(2)(9)收银系统通过前台票据打印机打印收款票据驱动开启钱箱,如何通过指令而不是打印来开启钱箱?
26.ESC p m t1 t2 产生钱箱控制脉冲 格式: ASCII: ESC p m t1 t2 十进制: [27][112] m t1 t2 THERMAL RECEIPT PRINTER 30 十六进制: [1BH][70H] m t1 t2 说明: o 该命令用于根据t1,t2产生一定时间间隔的脉冲以控制钱箱 动作。 o m=0,1,48,49;0≤t1≤255,0≤t2≤255。 o 钱箱开启脉冲高电平时间为(t1×2)毫秒,断开脉冲低电平时 间为 (t2×2)毫秒。 o 如果t2&t1,低电平时间为(t1×2)毫秒。
修改钱箱连接设置POS收银机钱箱打不开怎么办 - 行业设备
首页 | 新闻 | 手机 | 微博 | 社区 | 论坛 | 报料 | 电子报
广州双冠电子科技有限公司
咨询电话:
首页 > 企业商讯
POS收银机钱箱打不开怎么办
在超市的收银机底部,相信大家都会发现一个收银钱箱。钱箱必须输入密码才能打开,但是有时我们为了应急,POS收银机电脑没有打开,我们该怎么做呢?以下6种方法希望可以帮助到大家。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 广州双冠电子科技有限公司
首先、是用钥匙打开;
第二种、可以用票据打印机来打开;
第三种、是使用顾客显示屏来打开;
第四种、是使用钱箱卡来打开;
第五种、是使用12V或者24V变压器接在RJ-11头上来打开;
第六种、是使用工控板的串口驱动。
以上六种方法是根据不同的情况下,来应急打开钱箱的,大家在使用时,也要注意POS收银机钱箱的安全性。
以上POS收银机钱箱打不开怎么办相关内容由广州双冠电子科技有限公司提供(www.),希望对商家们有所帮助! 双冠收银销售热线:
TAG:超市收款机& / 触摸一体机& / 液晶显示器& / 奶茶收银机
新快网活动资讯通过pos58票式打印机如何打开钱箱
[问题点数:100分,结帖人thebestone111]
通过pos58票式打印机如何打开钱箱
[问题点数:100分,结帖人thebestone111]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2004年2月 其他数据库开发大版内专家分月排行榜第二2004年1月 其他数据库开发大版内专家分月排行榜第二2003年11月 其他数据库开发大版内专家分月排行榜第二2003年10月 其他数据库开发大版内专家分月排行榜第二2003年9月 其他数据库开发大版内专家分月排行榜第二2003年6月 其他数据库开发大版内专家分月排行榜第二2003年5月 其他数据库开发大版内专家分月排行榜第二2003年1月 其他数据库开发大版内专家分月排行榜第二2002年12月 其他数据库开发大版内专家分月排行榜第二
2004年6月 其他数据库开发大版内专家分月排行榜第三2004年4月 其他数据库开发大版内专家分月排行榜第三2004年3月 其他数据库开发大版内专家分月排行榜第三2003年12月 其他数据库开发大版内专家分月排行榜第三2002年9月 其他数据库开发大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 收款机钱箱打不开 的文章

 

随机推荐