| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 890 人关注过本帖
标题:求助delphi与仪表通讯
只看楼主 加入收藏
liuhaizhou
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-9-19
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求助delphi与仪表通讯
我在工作中遇到些问题。是delphi与仪表通讯的。用mscomm控件后就不知道该怎么往下通讯了,仪表的通讯协议也看不懂。请人指教一下。下面是仪表的通讯协议。
DT-6通讯协议

1.1  DT-6具有一个标准Modbus 端口(二线制的RS485接囗),在一条RS485总线上可接入出1至16台DT-6控制仪。可方便地同各种组态软件(如组态王)直接连接通讯。上微机可通过通讯查讯DT-6的运行状况、流量、累计量或控制启停。
1.    2  通讯协议:
DT-6遵从标准Modbus(RTU)通讯协议,每次通讯总是由上微机发起,DT-6(控制仪)若接收到正确的信息,则作出应答,否则不应答。上微机在通讯发起0.2秒后若末收到任何字节,则可认为DT-6未有应答。
1.3  通讯波特率
波特率9600,偶校验,一位起始位、八位数据位、一位停止位,数据都为8 位二进制(RTU)码。
1.4  DT-6的寄存器:
1.4.1
      状态一
寄存器地址    0098
数据类型    USHORT
内容
    状态1(高8位):
0x00-远控
0x01-手动
0x02-自动
    状态2(低8位):
0x00-停止
0x01-运行
0x02-整定
0x03-去皮
组态王数据字典    I/O整数(80099)

1.4.2
状态二
寄存器地址    0098
数据类型    USHORT
内容
    状态3(高8位):
0x00-故障
0x01-备妥    (低8位)
保留

组态王数据字典    I/O整数(80100)

1.4.3
      启动/停止 控制
寄存器地址    0050
数据类型    BIT
内容    0x0000-停止
0xFF00-启动
组态王数据字典    I/O离散(00051)



1.4.4
      当前DT-6中的流量目标值
寄存器地址    0100
数据类型    FLOAT
内容    当前DT-6中的流量目标值
(吨/小时)
组态王数据字典    I/O实数(80101)

1.4.5
      当前DT-6中的实际流量
寄存器地址    0102
数据类型    FLOAT
内容    当前DT-6中的实际流量
(吨/小时)
组态王数据字典    I/O实数(80103)

1.4.5
      当前DT-6中的累计量
寄存器地址    0104
数据类型    FLOAT
内容    当前DT-6中的累计量
(吨)
组态王数据字典    I/O实数(80105)

1.4.6
      当前DT-6中的毛重
寄存器地址    0106
数据类型    FLOAT
内容    当前DT-6中的毛重
(公斤)
组态王数据字典    I/O实数(80107)

1.4.7
      当前DT-6中的皮重
寄存器地址    0108
数据类型    FLOAT
内容    当前DT-6中的皮重
(公斤)
组态王数据字典    I/O实数(80109)


1.4.8
      皮带秤的电机转速
寄存器地址    0110
数据类型    FLOAT
内容    皮带秤的电机转速
(转/分种)
组态王数据字典    I/O实数(80111)

1.4.9
      上微机设定流量
寄存器地址    0200
数据类型    FLOAT
内容    上微机设定流量
(吨/小时)
组态王数据字典    I/O实数(90201)

2.2.上微机查询、命令格式
       DT-6包含Modbus(RTU)的04,05,16功能码
2.2.1.查询(功能码4)
2.2.1.1 上微机读输入寄存器,共8个字节,例如:
      00   04   00   62   00   0E   D1   C1
      说明:
A、 00,为DT-6中设定的设备地址(0—F7),一个字节。
      B、 04,为读寄存器的功能码,一个字节。
      C、 00  62,为读寄存器的起始地址,它的十进制为0098,二个字节。
      D、 00  0E,为读寄存器的数,二个字节。这里为读14个寄存器(FLOAT数在Modbus(RTU)中占2个寄存器),可把DT-6所有信息一次读出来。
      E、 D1   C1,CRC16的校验码(从第1个字节至最后1个字节,但不含CRC16本身),低位在先,高位在后,二个字节
2.2.1.1  DT-6响应,共33个字节,例如:
      00 04 1C 00 02 00 00 41 45 70 A4 00 00 00 00 39 9D 49 52 3D C0 83 12 00 00 00 00 00 00 00 00 6A A4
 说明:
A、 00,为DT-6中设定的设备地址(0—F7),一个字节。
      B、 04,为读寄存器的功能码,一个字节。
      C、 1C,为寄存器的字节数,这里为28个字节,一个字节。
      D、 00 02 00 00 41 45 70 A4 00 00 00 00 39 9D 49 52 3D C0 83 12 00 00 00 00 00 00 00 00 分别为状态1(整定)、状态2(遥控)、状态3(故障)、备用、当前DT-6中的流量目标值(12.34)、当前DT-6中的实际流量(0.0)、当前DT-6中的累计量(0.0003)、当前DT-6中的毛重(0.094)、当前DT-6中的皮重(0.0)、皮带秤的电机转速(0.0)。共28个字节
      E、 6A A4,CRC16的校验码(从第1个字节至最后1个字节,但不含CRC16本身),低位在先,高位在后,二个字节
2.2.2.流量设定(功能码16)
2.2.2.1上微机流量设定,共13个字节,例如:
      00 10 00 C8 00 02 04 40 13 33 33 4A 45
      说明:
A、 00,为DT-6中设定的设备地址(0—F7),一个字节。
      B、 10,为写寄存器的功能码,一个字节。
      D、 00 C8,为写寄存器的起始地址,二个字节。
E、 00 02,为写寄存器的数,这里为2个寄存器(FLOAT数在Modbus(RTU)中占2 个寄存器),二个字节。
F、 04, 为写寄存器的字节数,这里为2个寄存器(FLOAT数在Modbus(RTU)中占2 个寄存器),一个字节。
      G、 40 13 33 33,为设定流量(2.3),4个字节。
      H、 4A 45 , CRC16的校验码(从第1个字节至最后1个字节,但不含CRC16本身),低位在先,高位在后,二个字节
2.2.2.2  DT-6响应,共33个字节,例如:
      00 10 00 C8 00 02 C1 E7
 说明:
A、 00,为DT-6中设定的设备地址(0—F7),一个字节。
      B、 10,为读寄存器的功能码,一个字节。
      C、 00 C8,为写寄存器的起始地址,二个字节。。
D、 00 02,为写寄存器的数,这里为2个寄存器(FLOAT数在Modbus(RTU)中占2 个寄存器),二个字节
      E、 C1 E7,CRC16的校验码(从第1个字节至最后1个字节,但不含CRC16本身),低位在先,高位在后,二个字节
2.2.3.启动/停止控制(功能码5)
2.2.3.1上微机命令,共8个字节,例如:
           00 05 00 32 FF 00 2C 24
      说明:
A、 00,为DT-6中设定的设备地址(0—F7),一个字节。
      B、 05,为写寄存器的功能码,一个字节。
      D、 00 32,为写寄存器的起始地址,二个字节。
E、 FF 00,为启动命令(停止命令为00 00),二个字节。
F、 2C 24,CRC16的校验码(从第1个字节至最后1个字节,但不含CRC16本身),低位在先,高位在后,二个字节。
2.2.3.2  DT-6响应,共8个字节,DT-6原值返回收到的信息,
例如:00 05 00 32 FF 00 2C 24

3.    1 编程建议
3.    1。1 DT-6遵从标准Modbus(RTU)通讯协议。与组态软件如组态王通讯可按1.3与1.4条各个 DT-6的寄存器表格设置就可通讯。按设备配置向导:PLC—>莫迪康—>Modbus(RTU)—>串行 进行配置。
3.1。2 对于自编程,请按2。2条各项说明进行编程,同时要注意遵从标准Modbus(RTU)通讯协议。
搜索更多相关主题的帖子: delphi 仪表 通讯 
2010-09-19 10:43
liuhaizhou
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-9-19
收藏
得分:0 
怎么没人看看这个帖子啊
2010-09-20 12:24
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:20 
找个串口调试助手,抓两个包不就什莫都明白了。只看协议容易让人糊涂,特别是新手。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-09-21 14:26
快速回复:求助delphi与仪表通讯
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016274 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved