现开发一个地磅称重系统
已有地磅连接地磅显示器及针式打印机
目前我的工作,是读取出重量及开发相应的称重程序对于串口通讯连接了一些
用不用向地磅的厂家索取通讯协议。dll文件之类的。请大家出出主意。
地磅是XK3190-A9

解决方案 »

  1.   

    XK3190-A9
    串行通讯接口
    传输方式  RS232C
    波特率  波特率可选600/1200/2400/4800/9600
    传输的数据格式  10 位:1 位起始位、8位数据位(ASCⅡ编码)、1位停止位
    传输距离  ≤30 米XK3190-A9 仪表具有RS232 串行通讯接口,可与计算机进行通讯。
    1. 通讯接口采用15 芯插头座(与大屏幕共用),其引脚定义见图2--5 中6、7、8 脚。
    2. 通讯接口采用RS232C,所有数据均为ASCII 码,每组数据有10 位组成,第1 位为起始位,第10位为停止位,中间8 位为数据位。通讯方式分为:
    (1). 连续方式:
    所传送的数据为仪表显示的当前称量(毛重或净重)。每帧数据由12 组数据组成 。格式如下:
    第X 字节 内 容 及 注 解
    1 02(XON) 开始
    2 +或- 符号位
    3 称量数据 高位
    : 称量数据 :
    : 称量数据 :
    8 称量数据 低位
    9 小数点位数 从右到左(0~4)
    10 异或校验 高四位
    11 异或校验 低四位
    12 03(X0FF) 结束
    异或=2⊕3⊕……8⊕9
    X K 3 1 9 0 – A 9
    (2). 指令方式:
    仪表按上位机所发送的指令,输出相应的数据,上位机每发一次指令,仪表就相应
    地输出一帧数据。上位机发送指令:
    第X 字节 内 容 及 注 解
    1 02(XON) 开始
    2 A~Z 地址编号
    3 A~E 命令A:握手
    命令B:读毛重
    命令C:读皮重
    命令D:读净重
    4 异或校验 高四位
    5 异或校验 低四位
    6 03(X0FF) 结束异或=2⊕3
    仪表输出内容:
    第X 字节 内 容 及 注 解
    1 02(XON) 开始
    2 A~Z 地址编号
    3 A~E 命令A:握手
    命令B:送毛重
    命令C:送皮重
    命令D:送净重
    4 按命令内容输出相应数据
    : 按命令内容输出相应数据
    n-1 按命令内容输出相应数据
    n 按命令内容输出相应数据
    n+1 异或校验 高四位
    n+2 异或校验 低四位
    n+3 03(X0FF) 结束
    异或=2⊕3⊕……( n-1 ) ⊕n
    仪表输出时4~n 的内容如下:
    命令A 无数据 每帧由6 组数据组成
    命令B 为毛重,格式: 每帧由14 组数据组成 a: 符号(+或-)
    b: 毛重值 ( 6 位)
    : (自高到低)
    g
    h: 小数点从右到左( 0~4)
     X K 3 1 9 0 – A 9
    命令C 为皮重,格式: 每帧由14 组数据组成 a: 符号(+或-)
    b: 皮重值 ( 6 位)
    : (自高到低) 
    g
    h: 小数点从右到左( 0~4)
    命令D 为净重,格式: 每帧由14 组数据组成 a: 符号(+或-)
    b: 净重值 ( 6 位 )
    : (自高到低) 
    g
    h: 小数点从右到左( 0~4) 注1:异或校验高、低4 位的确定:异或和高、低4 位如果小于、等于9,则加上30h,成为
    ASCII 码数字发送,例如:异或校验高4 位为6,加30h 后,为36h 即ASCII 码的6 发送;异或和高、低4 位如果大于9,则加上37h,成为ASCII 码字母发送,例如:异或校验高4 位为B,加37h 后,为42h 即ASCII 码的B 发送。
    3. 仪表通讯参数的设置:
    (1). 通讯参数
    通讯参数由通讯地址、波特率、通讯方式三组参数组成。
    (2). 参数的设置顺序如下:
    按图 2 -3 所示,接好传感器,使显示器进入正常工作状态。仪表背面的15 芯插座上,插上专用设置头( 即出厂时,配件中有一个15 芯的插头,它的14 和15 脚是短接的),此时按下表所示的操作步骤进行设置:
    通讯参数设置步骤:
    步骤 操 作 显 示 注 解
    1 按[功能] 插上标定头后
    2 按[输入] [ E ** ] 非通讯设置参数,不要改变。按[输入]进入下一步骤
    3 按[输入] [ dc * ] 非通讯设置参数,不要改变。
    按[输入]进入下一步骤
    4 按[输入]
    [ Pon ***]
    非通讯设置参数,不要改变。
    按[输入]进入下一步骤5 按[输入]
    [ F ***** ] 非通讯设置参数,不要改变。
    按[输入]进入下一步骤
    6 按[1]
    按[输入] [ Ad r ** ]
    [ Ad r 01] 通讯地址( 01~26 )
    例如:1
    X K 3 1 9 0 – A 9
    步骤 操 作 显 示 注 解
    7 按[1]
    按[输入]
    [ b t * ]
    [ b t 1]
    串行通讯的波特率( 0~4 ) 分别表示
    波特率为:600、1200、2400、
    4800、9600
    例如:1
    8 按[0]
    按[输入]
    [ t F * ]
    [ t F 0 ]
    串行通讯方式:
    0--连续发送方式,不接收
    1--指令应答方式
    例如:0
    10 称重状态 通讯参数设置结束
      

  2.   

    using System.IO;
    using System.IO.Ports;             com = new SerialPort();
                com.BaudRate =9600;
                com.PortName = "COM1";
                com.DataBits = 8;
                com.Open();//打开串口   接收方式,定时或者事件(两者用其一即可)
      1定时查串口缓冲区,根据通讯协议来处理
    根据说明书,该地磅称重系统用两种通讯方式,一种我握手式,一种为单接收
    如果你用握手,就是你要按通讯协议将字符串发给串口,一种为单收式,如果你不太懂的话,用单收式简单 
      2定义事件接收事件     this.com.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.OnDataReceived);
       取出数据
        
    private void OnDataReceived(object sender, SerialDataReceivedEventArgs e)
      

  3.   

    using System.IO;
    using System.IO.Ports;             com = new SerialPort();
                com.BaudRate =9600;
                com.PortName = "COM1";
                com.DataBits = 8;
                com.Open();//打开串口   接收方式,定时或者事件(两者用其一即可)
      1定时查串口缓冲区,根据通讯协议来处理
    根据说明书,该地磅称重系统用两种通讯方式,一种我握手式,一种为单接收
    如果你用握手,就是你要按通讯协议将字符串发给串口,一种为单收式,如果你不太懂的话,用单收式简单 
      2定义事件接收事件     this.com.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.OnDataReceived);
       取出数据
        
    private void OnDataReceived(object sender, SerialDataReceivedEventArgs e)