现手上有一台依码士9020的喷码机,想要控制喷码机打印数字,厂家只提供了一个RS232串口协议说明书,没有驱动,哪位兄弟做过的能不能提供个例子啊!非常感谢!!!

解决方案 »

  1.   

    直接通过RS232发送协议信号就可以了啊他们给的协力说明里边,有一些东西你可以设置成常量来用,比如const
      SMS_Print='!!signal.trig.main';          //触发打印
      SMS_Conn='!!signal.trig.config!-1';      //连接
      SMS_Lock='!!system.lock!1';              //锁定
      SMS_Unlock='!!system.lock!0';            //解锁
    需要你预先在他们的打印机控制端设置你要打印的变量,然后发送你的打印内容,比如:SMS_Data:= '!!v!1"'+Edit1.Text+'"';
      

  2.   

    谢谢笑霸王的解答,因为是第一次做串口通讯,对RS232协议不了解,看协议说明书里面的例子是把发给串口的数据分成4个部分:
    Identification
    Lenth
    Data
    Checksum
    这里面Identification,Lenth,,Data,Checksum是RS232协议的一部分吗?Lenth是指整个字节的长度吗,checksum校验码是怎么产生的?为什么例子中是把数据一次性发送的,而我查其他串口通讯资料的时候又说是8个字节发送的?
      

  3.   

    刚查了下,我们以前用的是4020的喷码打印机,是给板材上喷码用的。主要看看他的协议里边发送数据和执行打印的部分。你说的那4个部分,应该是打印机自带的协议。比如我上边说的,SMS_Data:= '!!v!1"'+Edit1.Text+'"';这个是发送数据的,其中的!!v!,表示是发送的数据,后边跟1是变量位置,然后后边跟你需要发送打印的数据。所有数据发送完了后,再发送'!!signal.trig.main'来触发打印。
      

  4.   

    哦,是这样子的啊,我这个手册里面倒是没有说明这个,看例子中应该是先发送一个ENQ 05h 给打印机
    然后打印机还回一个 06h ACK,然后再把打印信息发送过去,可能是打印机型号不同,我再看看协议手册!
      

  5.   

    这个很简单的啊,一般是根据他们的协议进行触发的,每一个动作都有相对应的协议的,Identification
    Lenth
    Data
    Checksum,
    这四个我猜的是声明,长度,数据,校验,应该很简单的,你再仔细看看
      

  6.   

    手册看了几遍发现没找到checksum的计算方法
      

  7.   

    对,我也刚做完datamax的条码机,感觉条码机的协议更加详细,技术支持也更完善,不像他这样,协议描述很简单