基于485的多机通信技术

高手给我个开题报告文献综述

第1个回答  2008-12-20
RS-232是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于EIA提出的建议标准都是以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。

备注:以上是官方的专业描述, 看不懂没有关系,大致有个印象就可以了,有兴趣的可以上网可以买一些专业书籍做深入研究,我再用通俗的语言补充描述一下。
1. RS485通讯协议
1.1. 主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。串行通讯,数据帧11位,1个起始,8个数据位,2个停止位

1.2. 数据传输格式采用标准ASCⅡ码
1.2.1. 通讯数据字符集
0(30H) 1(31H) 2(32H) 3(33H) 4(34H)
5(35H) 6(36H) 7(37H) 8(38H) 9(39H)
A(41H) B(42H) C(43H) D(44H) E(45H)
F(46H) .(2EH) -(2DH) +(2BH)

1.2.2. 通讯控制字符集
DC1(11H):读瞬时值 DC2(12H):读参数
DC3(13H):写参数 DC4(14H):读写FCC5000
STX(02H):从机起始符 ETX(03H):主机结束符
ETB(17H):从机结束符 RS (1EH):数据间隔符
US (1FH):参数间隔符 ACK(06H):接收正确
NAK(15H):接收错误 CAN(18H):通讯复位
SP (20H):空白符

1.3. 通讯协议
1.3.1. 读瞬时值
1.3.1.1. 读单通道瞬时值
主机发送: DC1 AAA CC ETX
DC1(11H) : 读瞬时值
AAA : 从机地址码(=001~254)
CC : 通道号(=01-99)
ETX(03H) : 主机结束符
从机回送: STX AAA CC US MM US DDDDDDD US EEEE US SSSSS ETB
STX(02H) : 从机起始符
AAA : 从机地址码(=001~254)
CC : 通道号(=01-99)
US(1FH) : 参数间隔符
MM : 表型字(=00~99)
DDDDDDD : 瞬时值(-32167~32767,32767=brok,16000=H.oFL,-2000=L.oFL,
小数点在实际位置)
EEEE : 报警1~4报警状态(E=0:OFF E=1:ON)
SSSSS : 校验和5位十进制=00000~65535,从STX到最后一个US间每个
字符ASC值的和,再除以65536的余数)
ETB(17H) : 从机结束符
例子: 主机发送 : 11H 30H 30H 31H 30H 31H 03H(读001号表01通道瞬时值)
从机回送 : 02H 30H 30H 31H 30H 31H 1FH 30H 36H 1FH 2DH 30H 31H 32H
33H 2EH 34H 1FH 31H 30H 30H 30H 1FH 30H 31H 30H 30H 34H
17H(001号表为XMA5000系列,01号通道瞬时值=-0123.4,报警1
动作,报警2不动作,校验和=1004)

1.3.1.2. 读多通道瞬时值
主机发送: DC1 AAA CC ETX
DC1(11H) : 读瞬时值
AAA : 从机地址码(=001~254)
CC : 通道号(=00)
ETX(03H) : 主机结束符
从机回送1: STX AAA CC US MM US DDDDDDD US EEEE US SSSSS ETB
STX(02H) : 从机起始符
AAA : 从机地址码(=001~254)
CC : 通道号(=01,表示不支持多通道批读,由表型号字判断通道数,
逐个通道读取瞬时值)
US(1FH) : 参数间隔符
MM : 表型字(=00~99)
DDDDDDD : 瞬时值(-32167~32767,32767=brok,16000=H.oFL,-2000=L.oFL,
小数点在实际位置)
EEEE : 报警1~4报警状态(E=0:OFF E=1:ON)
SSSSS : 校验和5位十进制=00000~65535,从STX到最后一个US间每个
字符ASC值的和,再除以65536的余数)
ETB(17H) : 从机结束符

从机回送2: STX AAA CC US MM US RS FF US GGGGGG US HHHH … US SSSSS ETB
STX(02H) : 从机起始符
AAA : 从机地址码(=001~254)
CC : 通道号(=00,表示支持多通道批读)
US(1FH) : 参数间隔符
MM : 表型字(=00~99)
RS : 数据间隔符
FF : 通道号(=01~99)
GGGGGGG : 瞬时值(-32167~32767,32767=brok,16000=H.oFL,-2000=L.oFL,
小数点在实际位置)
HHHH : 报警1~4报警状态(E=0:OFF E=1:ON)
SSSSS : 校验和5位十进制=00000~65535,从STX到最后一个US间每个
字符ASC值的和,再除以65536的余数)
ETB(17H) : 从机结束符
注 : 下划线为通道数据格式

1.3.2. 读参数
主机发送: DC2 AAA CC US PP ETX
DC2(12H) : 读参数值
AAA : 从机地址码(=001~254)
CC : 通道号(=01-99)
US(1FH) : 参数间隔符
PP : 参数号(=01-69)
ETX(03H) : 主机结束符
从机回送: STX AAA CC US PP US DDDDDDD US SSSSS ETB
STX(02H) : 从机起始符
AAA : 从机地址码(=001~254)
CC : 通道号(=01-99)
US(1FH) : 参数间隔符
PP : 参数号(=01~69)
DDDDDDD : 参数值(=-1999~15999)
SSSSS : 校验和5位十进制=00000~65535,从STX到最后一个US间每个
字符ASC值的和,再除以65536的余数)
ETB(17H) : 从机结束符
例子: 主机发送 : 12H 30H 30H 31H 30H 31H 1FH 31H 32H 03H(读001号表01通道
参数号12量程零点值)
从机回送 : 02H 30H 30H 31H 30H 31H 1FH 31H 32H 1FH 2DH 30H 31H 32H
33H 2EH 34H 1FH 30H 30H 37H 37H 37H 17H(001号表01通道
参数号12量程零点值=-0123.4,校验和=777)

1.3.3. 写参数
主机发送: DC3 AAA CC US PP US DDDDDDD US SSSSS ETX
DC3(13H) : 写参数值
AAA : 从机地址码(=001~254)
CC : 通道号(=01-99)
US(1FH) : 参数间隔符
PP : 参数号(=11-69)
DDDDDDD : 参数值(=-1999~15999)
SSSSS : 校验和5位十进制=00000~65535,从STX到最后一个US间每个
字符ASC值的和,再除以65536的余数)
ETX(03H) : 主机结束符
从机回送: ACK(06H) : 接收正确
NAK(15H) : 接收错误
例子: 主机发送 : 13H 30H 30H 31H 30H 31H 1FH 31H 32H 1FH 2DH 30H 31H 32H
33H 2EH 34H 1FH 30H 30H 37H 39H 34H 17H(写001号表01通道
参数号12量程零点值=-0123.4,校验和=797)
从机回送 : 06H (写参数成功)

1.3.4. 读写FCC下挂仪表数据
1.3.4.1. 读单通道瞬时值
主机发送: DC4 FF DC1 AAA CC ETX
DC4(14H) : 读写FCC5000
FF : FCC5000地址码(=01~99)
DC1(11H) : 读仪表瞬时值
AAA : 仪表地址码(=001~254)
CC : 仪表通道号(=01~99)
ETX(03H) : 主机命令结束符
FCC回送: DC4 FF STX AAA CC US MM US DDDDDDD US EEEE US SSSSS ETB或DC4 FF NAK
DC4(14H) : 读写FCC5000
FF : FCC5000地址码(=01~99)
STX(02H) : 数据起始符
AAA : 仪表地址码(=001~254)
CC : 仪表通道号(=01~99)
US(1FH) : 参数间隔符
MM : 仪表表型字(=00~99)
DDDDDDD : 瞬时值(-32767~32767,32767=brok,16000=H.oFL,
-2000=L.oFL,-32767=仪表故障,小数点在实际位置)
EEEE : 报警1~4报警状态(E=0:OFF E=1:ON)
FFFFF : 校验和5位十进制=00000~65535,从STX到最后一个US间每个
字符ASC值的和,再除以65536的余数)
ETB(17H) : 数据结束符
NAK(15H) : 错误命令或错误地址
例子: 主机发送 : 14H 30H 31H 11H 30H 30H 31H 30H 31H 03H(读01号FCC下挂
001号表01通道瞬时值)
FCC回送 : 14H 30H 31H 02H 30H 30H 31H 30H 31H 1FH 30H 36H 1FH 2DH
30H 31H 32H 33H 2EH 34H 1FH 31H 30H 30H 30H 1FH 30H 31H
31H 32H 31H 17H(001号表为XMA5000系列,01号通道瞬时值
=-0123.4,报警1动作,报警2不动作,校验和=1121)
1.3.4.2. 读参数
主机发送: DC4 FF DC2 AAA CC US PP ETX
DC4(15H) : 读写FCC5000
FF : FCC5000地址码(=01~99)
DC2(12H) : 读仪表参数值
AAA : 仪表地址码(=001~254)
CC : 仪表通道号(=01~32)
PP : 仪表参数号(=01~69)
ETX(03H) : 主机命令结束符
FCC 回送: DC4 FF STX AAA CC US PP US DDDDDDD US SSSSS ETB 或DC4 FF NAK
DC4(14H) : 读写FCC5000
FF : FCC5000地址码(=01~99)
STX(02H) : 数据起始符
AAA : 仪表地址码(=001~254)
CC : 仪表通道号(=01~32)
US(1FH) : 参数间隔符
PP : 仪表参数号(=00~69)
DDDDDDD : 仪表参数值
SSSSS : 校验和5位十进制=00000~65535,从STX到最后一个US间每个
字符ASC值的和,再除以65536的余数)
ETB(17H) : 数据结束符
NAK(15H) : 错误命令或错误地址或错误参数
例子: 主机发送 : 14H 30H 31H 12H 30H 30H 31H 30H 31H 1FH 31H 32H 03H(读01
号FCC下挂001号表01通道,参数号12量程零点值)
FCC回送 : 14H 30H 31H 02H 30H 30H 31H 30H 31H 1FH 31H 32H 1FH 2DH
30H 31H 32H 33H 2EH 34H 1FH 30H 30H 37H 38H 39H 14H(001号
表01通道,参数号12量程零点值=-0123.4,校验和=894)
1.3.4.3. 写参数
主机发送: DC4 FF DC3 AAA CC US PP US DDDDDDD US SSSSS ETX
DC4(14H) : 读写FCC5000
FF : FCC5000地址码(=01~99)
DC3(13H) : 写仪表参数值
AAA : 仪表地址码(=001~254)
CC : 仪表通道号(=01~32)
PP : 仪表参数号(=01~69)
DDDDDDD : 仪表参数值
SSSSS : 校验和5位十进制=00000~65535,从STX到最后一个US间每个
字符ASC值的和,再除以65536的余数)
ETB(17H) : 数据结束符
FCC回送: DC4 FF ACK或DC4 FF NAK
DC4(14H) : 读写FCC5000
FF : FCC5000地址码(=01~99)
ACK(06H) : 正确接收
NAK(15H) : 接收错误
例子: 主机发送 : 14H 30H 31H 13H 30H 30H 31H 30H 31H 1FH 31H 32H 1FH 2DH
30H 31H 32H 33H 2EH 34H 1FH 30H 30H 39H 31H 31H 17H(写01
号FCC下挂001号表01通道,参数号12量程零点值=-0123.4,
校验和=911)
FCC回送 : 14H 30H 31H 06H (写参数成功)

1.3.4.4. 读FCC时间
主机发送: DC4 FF DC2 00101 US 70 ETX
FF : FCC5000地址码(=01~99)
FCC回送: DC4 FF STX 00101 US 70 US YYYYMMDDhhmmss US SSSSS ETB
YYYYMMDDhhmmss : YYYYMMDDhhmmss(年月日时分秒)
例子: 主机发送 : 14H 30H 31H 12H 30H 30H 31H 30H 31H 1FH 37H 30H 03H(读01
号FCC参数号70实时时间)
FCC回送 : 14H 30H 31H 02H 30H 30H 31H 30H 31H 1FH 37H 30H 1FH 32H
30H 30H 33H 31H 30H 30H 31H 30H 38H 30H 30H 30H 30H 1FH
30H 31H 32H 34H 34H 17H(01号FCC实时时间2003年10月1日
8点0分0秒,校验和=1244)

1.3.4.5. 写FCC时间
主机发送: DC4 FF DC3 00101 US 70 US YYYYMMDDhhmmss US SSSSS ETX
FCC回送: DC4 FF ACK或DC4 FF NAK
例子: 主机发送 : 14H 30H 31H 13H 30H 30H 31H 30H 31H 1FH 37H 30H 1FH 32H
30H 30H 33H 31H 30H 30H 31H 30H 38H 30H 30H 30H 30H 1FH
30H 31H 32H 36H 31H 03H(写01 FCC实时时间2003年10月1日
8点0分0秒,校验和=1261)
FCC回送 : 14H 30H 31H 06H (写参数成功)

1.3.4.6. 读FCC下挂仪表地址范围
主机发送: DC4 FF DC2 00101 US 71 ETX
FCC回送: DC4 FF STX 00101 US 71 US AAA RS BBB US SSSSS ETB
AAA : 起始地址
BBB : 终止地址

1.3.4.7. 读FCC下挂故障仪表地址
主机发送: DC4 FF DC2 00101 US 72 ETX
FCC回送: DC4 FF STX 00101 US 72 US AAA RS … US SSSSS ETB
AAA : 故障地址
注 : 下划线为故障地址发送格式;数据为空表示无故障地址

1.3.4.8. 读所有通道瞬时值
主机发送: DC4 FF DC2 00101 US 73 ETX
FCC回送: DC4 FF STX 00101 US 73 US YYYYMMDDhhmmss RS AAA BB US CCCCCCC US DDDD … US
SSSSS ETB
AAA : 仪表地址码(=001)
BB : 仪表通道号(=01)
US(1FH) : 参数间隔符
PP : 仪表参数号(=00~99)
CCCCCCC : 瞬时值(-32767~32767,32767=brok,16000=H.oFL,
-2000=L.oFL,-32767=仪表故障,小数点在实际位置)
DDDD : 报警1~4报警状态(E=0:OFF E=1:ON)
注 : 下划线为通道数据格式,故障仪表数据只发送01通道

1.3.4.9. 读取FCC下一条历史数据记录
主机发送: DC4 FF DC2 00101 US 74 ETX
FCC回送: DC4 FF STX AAA CC US 74 US YYYYMMDDhhmmss RS AAA BB US CCCCCCC US DDDD … US
SSSSS ETB
注 : 下划线为通道数据格式;通道数据为空表示历史数据已经读空
发送方式同73参数,只是故障仪表数据不发送

1.3.4.10. 重读FCC上一条历史数据记录
主机发送: DC4 FF DC2 00101 US 75 ETX
FCC回送: DC4 FF STX AAA CC US 75 US YYYYMMDDhhmmss RS AAA BB US CCCCCCC US DDDD … US
SSSSS ETB

1.3.4.11. 读取FCC时间历史数据记录读指针对应时间点
主机发送: DC4 FF DC2 00101 US 76 ETX
FCC回送: DC4 FF STX 00101 US 76 US YYYYMMDDhhmmss US SSSSS ETB

1.3.4.12. 移动FCC时间历史数据记录读指针对应时间点
主机发送: DC4 FF DC3 00101 US 76 US YYYYMMDDhhmmss US SSSSS ETB
FCC回送: DC4 FF ACK或DC4 FF NAK
用途:FCC历史数据记录读指针通过74号参数读来一条一条移动,大量历史数据记录读取可能需要很长时间,可用76号参数直接移动到所需数据时间点,然后用74读取。当时间点晚于当前时间,删除所有历史数据记录。

1.3.5. 仪表表型字
00:XMZ5000 01:XMT/XMB5000 02:XMDI5000
03:XMS5000 04:XML6000 05:XMD5XX16 (16)
06:XMA5000 07:XMH5000 08:XML5000 (3)
09:XMJ5000 10:XMD5XX08 (8) 11:XMPHT/XMPHB5000
12:XMD5XX32(32) 13:XME5000 (3) 14:XMDO5000
15:XMLH5000 (4+1) 16:XMD5XX24 (24) 17:XMAF5000 (2)
18:XMC5000(24) 19:XMB8000 (4) 20:XMGB5000
21:XMGB7000 (2)
30:XMG5000 31:XMGI5000 32:XMG7000 (2)
33:XMG8000 (3) 34:XMHG5000 35:XMGA5000/6000 (4)
36:XMGAF5/6/7000 (4) 37:XMRA5000/6000 (5) 38:XMRAF5000/6000 (5)
39:XMPA7000 (5) 40:XMPAF7000 (5) 41:XMRA7000 (6)
42:XMRAF7000 (6) 43:XMPHGA5000/6000 44:XXS
45:XMRH5000 46:DFD/DFQ/DFDA/DFDQ5000/DFQA7000 47:DFQA6000
50:XMPA8000 (7) 51:XMPAF8000 (7) 52:XMRA8000 (8)
53:XMRAF8000 (8) 54:BBC5000(7) 55:PHAB6000
58:XMRY5000/8000(4) 59:XMY5000/8000(4)
60:XMLY5000 61:XMLY6000 62:XMLRY5000/8000(4)
63:XMJY5000/8000(4) 64:XMJRY5000/8000(4)

1.3.6. 仪表分度号
00:0~10mA线性 01:4~20mA线性 02:0~5V线性
03:1~5V线性 04:0~100线性 05:0~10mA开方
06:4~20mA开方 07:0~5V开方 08:1~5V开方
09:0~100开方 10:Pt100 11:Pt100.0
12:Pt10 13:Cu100 14:Cu50
15:30~350Ω 16:G53 17:BA1
18:BA2 19:F1 20:F2
21:B 22:R 23:S
24:N 25:K 26:E
27:J 28:T 29:NiCr-AuFe0.07
30:钨铼3-钨铼26 31:EA2 32:EU2
33:0~60mV

1.3.7. 仪表参数号
1.3.7.1. 只读参数号
01:功能码 02:流量积算值 03:DA1值
04:DA2值 05:SP值 06:累计时间
07: 08: 09:批读 PV
10:批读参数
71:读FCC所挂接仪表地址
72:读FCC所挂接故障仪表地址
73:读FCC所挂接仪表瞬时值(PV)
74:读FCC所挂接仪表历史值
75:重读FCC所挂接仪表历史值

1.3.7.2. 读写参数号
11:分度号 12:量程零点 13:量程满度
14:开方小信号切除 15:DA1方式 16:DA2方式
17:报警回差 18:报警一值 19;报警二值
20:报警三值 21:报警四值 22:报警方式
23:付屏 24:小数点 25:仪表时钟
26:输出零点 27:输出满度 28:运算模式
29:DI/DO 30:通讯给定值
31:PID P 值 32:PID I 值 33:PID D值
34:PID 上限幅 35:PID 下限幅 36:PID 安全阀位
37:PID 变化率 38:PID SP0 值 39:PWM 周期
40:SP.XX(程序起点) 41:t.XX (程序时间) 42:启停程序(0=启动)
43:手自动切换(0=自动) 44:PID输出值 45:锅炉高度零点
46:锅炉高度满度 47:运算系数K 48:运算小值切除
49:阀门行程时间 50:阀门调节死区
51:(风煤比系数或风油比系数或风气比系数 数值范围000.1~9999)
52:(负荷70%时炉温T01 数值范围850 ~ 1050)
53:(负荷20%时炉温T02 数值范围850 ~ 1050)
54:(负荷70%时含氧量X01 数值范围1 ~ 10)
55:(负荷20%时含氧量X02 数值范围1 ~ 10)
56:(床温调节系数Kt 数值范围0 ~ 30)
57:(含氧量调节系数Kx 数值范围0 ~ 30)
58:控制模式 59:偏置值
60:本机/远程给定切换(0=本机)61:远程给定系数K 62:远程给定偏值B
63:SP.XX(气分起点) 64:t.XX (气分时间) 65:选用曲线号
66:BBC保留 67:BBC保留 68:BBC保留
70:读写FCC时钟
76:移动FCC所挂接仪表历史值时间指针
128:参数上锁 129:参数开锁 130:通讯地址
130:通讯波特率 131:OLD1值 132:NEW1值
133:OID2值 134:NEW2值 135:标定室温值
136:标定输入零点 137:标定输入满度 138:标定输出零点
139:标定输出满度

2 仪表分类说明
2.1.1. XMZ5000
表型字 = 00
通道数 = 01
参数号 = 11(分度号参数值范围 00 ~ 99)
参数号 = 12(量程零点参数值范围 -01999 ~ 15999 或 –0199.9 ~ 1599.9
或 –019.99 ~ 159.99 或 –01.999 ~ 15.999)
参数号 = 13(量程满点参数值范围 -01999 ~ 15999 或 –0199.9 ~ 1599.9
或 –019.99 ~ 159.99 或 –01.999 ~ 15.999)
参数号 = 14(开方小信号切除参数值范围 -01999 ~ 15999 或 –0199.9 ~ 1599.9
或 –019.99 ~ 159.99 或 –01.999 ~ 15.999)
参数号 = 24(小数点参数值范围 00000 ~ 00003,0=小数点在个位,1=小数点在十位,2=小数点在百位,3=小数点在千位)
相似回答