ST420通讯规约.docx
- 文档编号:30692969
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:18
- 大小:22.94KB
ST420通讯规约.docx
《ST420通讯规约.docx》由会员分享,可在线阅读,更多相关《ST420通讯规约.docx(18页珍藏版)》请在冰豆网上搜索。
ST420通讯规约
ST420产品系列
通讯协议
第一章协议简介
协议详细定义了校验码、数据序列等,这些都是特定数据交换的必要内容。
协议在一根通讯线上使用应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。
首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,在相反的方向上终端设备发出的应答信号传输给主机。
协议只允许在主计算机和终端设备之间,而不允许独立的设备之间的数据交换,这就不会在使它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。
1.1传输方式
传输方式是一个数据帧内一系列独立的数据结构以及用于传输数据的有限规则,下面定义了与Modebus协议–RTU方式相兼容的传输方式。
。
CodingSystem;8位二进制编码
。
Startbit;1位
。
Databits;8位
。
Parity;无奇偶校验
。
Stopbit;1位
。
Errorchecking;CRC(循环冗余校验)
[注]响应查询信号的时间为0.1~1.0秒(典型值为0.4秒)
1.2协议
当数据帧到达终端设备时,它通过一个简单的“口”进入寻址到的设备,该设备去掉数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。
返回的响应数据中包含了以下内容:
终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的被请求数据(Data)和一个校验码(Check)。
发生任何错误都不会有成功的响应。
1.2.1帧
Address
Function
Data
Check
8-Bits
8-Bits
Nx8-Bits
16-Bits
图1–1.数据帧格式
1.2.2地址(Address)域
地址域在帧的开始部分,由8位(0~255)组成,这些位标明了用户指定的终端设备的地址,该设备将接收来自与之相连的主机数据。
每个终端设备的地址必须是唯一的,仅仅被寻址到的终端会响应包含了该地址的查询。
当终端发送回一个响应,响应中的从机地址数据便告诉了主机哪台终端正与之进行通信。
1
1.2.3功能(Function)域
功能域代码告诉了被寻址到的终端执行何种功能。
表1–1列出了所有的功能码、它们的意义及它们的初始功能。
表1–1功能码
代码
意义
行为
01
读DO状态
获得数字输出的当前状态(of/off)
02
读DI状态
获得数字输入的当前状态(of/off)
03
读数据
获得一个或多个寄存器的当前二进制值
05
控制DO
强行设置DO的状态为on或off
06
预置单寄存器
放置一个特定的二进制值到一个单寄存器中
16
预置多寄存器
放置特定的二进制值到一系列多寄存器中
1.2.4数据域
数据域包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。
这些数据的内容可能是数值、参考地址或者极限值。
例如:
功能域码告诉终端读取一个寄存器,数据域则需要指明从哪个寄存器开始及读取多少个数据,内嵌的地址和数据依照类型和从机之间的不同能力而有所不同。
1.2.5错误校验域
该域允许主机和终端检查传输过程中的错误。
有时,由于电噪声和其它干扰,一组数据在从一个设备传输到另一个设备时在线路上可能会发生一些改变,出错校验能够保证主机或者终端不去响应那些传输过程中发生了改变的数据,这就提高了系统的安全性和效率,出错校验使用了16位循环冗余的方法。
[注]发送序列总是相同的–地址、功能码、数据和与方向相关的出错校验。
1.3错误检测
循环冗余校验(CRC)域占用两个字节,包含了一个16位的二进制值。
CRC值由传送设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算CRC值,然后与接收到的CRC域中的值进行比较,如果这两个值不相等,就发生了错误。
CRC运算时,首先将一个16位的寄存器预置为全1,然后连续把数据帧中的8位字节与该寄存器的当前值进行运算,仅仅每个字节的8个数据位参与生成CRC,起始位和终止位以及可能使用的奇偶位都不影响CRC。
在生成CRC时,每个8位字节与寄存器中的内容进行异或,然后将结果向低位移位,高位则用“0”补充,最低位(LSB)移出并检测,如果是1,该寄存器就与一个预设的固定值进行一次异或运算,如果最低位为0,不作任何处理。
上述处理重复进行,直到执行完了8次移位操作,当最后一位(第8位)移完以后,下一个8位字节与寄存器中的当前值进行异或运算,同样进行上述的另一个8次移位异或操作,当数据帧中的所有字节都作了处理,生成的最终值就是CRC值。
生成一个CRC的流程为:
1、预置一个16位寄存器为0FFFFH(全1),称之为CRC寄存器。
2、把数据帧中的第一个8位字节与CRC寄存器中的低字节进行异或运算,结果存回CRC寄存器。
3、将CRC寄存器向右移一位,最高位填以0,最低位移出并检测。
4、如果最低位为0:
重复第三步(下一次移位)。
如果最低位为1:
将CRC寄存器与一个预设的固定值(0A001H)进行异或运算。
5、重复第三步和第四步直到8次移位。
这样处理完了一个完整的八位。
6、重复第2步到第5步来处理下一个八位,直到所有的字节处理结束。
7、最终CRC寄存器得值就是CRC的值。
第二章功能详解
本章的目标是为ST420系统的程序员定义特定有效命令的通用格式,在每条数据查询格式说明的后面有一个该数据查询所执行的功能的解释和一个例子。
第一章已经简述了协议和数据帧,使用此软件的程序员可以使用下述的方法以便通过协议正确的建立他们的特定应用程序。
本章所述协议将尽可能的使用如图2–1所示的格式,(数字为16进制)。
Addr
Fun
Datastartreghi
Datastartreglo
Data#ofregshi
Data#ofregslo
CRC16
Hi
CRC16
Lo
06H
03H
00H
00H
00H
21H
84H
65H
图2–1协议例述
2.1读数字输出状态(功能码01)
查询
此功能允许用户获得仅仅通过从机地址控制的隔离输出DO的状态On/Off,除了从机地址和功能域,数据帧还需要在数据域中包含将被读取DO的初始地址和要读取的DO数量,DO的地址从0000H开始(DO1=0000H,DO2=0001H)。
图2–2的例子是从地址为17的从机读取DO1和DO2的状态。
Addr
Fun
DOstartreghi
DOstartreglo
DO#ofregshi
DO#ofregslo
CRC16
Hi
CRC16
Lo
11H
01H
00H
00H
00H
02H
BFH
5BH
图2–2读DO1~DO6的查询数据帧
响应
响应包含从机地址、功能码、数据的数量和CRC错误校验,数据包中每个DO占用一位(1=on,0=off),第一个字节的最低位为寻址到的DO值,其余的在后面。
图2–3所示为读数字输出状态(DO1=off,DO2=on,DO3=off,DO4=on,DO5=off,DO6=on)响应的实例。
Addr
Fun
Bytecount
Data
CRC16hi
CRC16lo
11H
01H
01H
2AH
D4H
97H
数据
0
0
0
0
0
0
DO2
DO1
MSB
LSB
图2–3读DO1~DO6状态的响应数据帧
2.2读数字输入状态(功能码02)
查询
此功能允许用户获得DI的状态On/Off,除了从机地址和功能域,数据帧还需要在数据域中包含将被读取DI的初始地址和要读取的DI数量,DO的地址从0000H开始(DO1=0000H,DO2=0001H依此类推)。
图2–4的例子是从地址为17的从机读取DI1到DI4的状态。
Addr
Fun
DIstart
addrhi
DIstart
addrlo
DInum
hi
DInum
lo
CRC16
hi
CRC16
lo
11H
02H
00H
00H
00H
10H
7BH
56H
图2–4读DI1到DI4的查询数据帧
响应
响应包含从机地址、功能码、数据的数量和CRC错误校验,数据帧中每个DI占用一位(1=on,0=off),第一个字节的最低位为寻址到的DI值,其余的在后面。
图2–5所示为读数字输出状态(DI1=on,DI2=on,DI3=off,DI4=off,DI5=on,DI6=on,DI7=off,DI8=off,DI9=off,DI10=off,DI11=on,DI12=on,DI13=off,DI14=off,DI15=on,DI16=on)响应的实例。
Addr
Fun
Bytecount
Data1
Data2
CRC16hi
CRC16lo
11H
02H
02H
33H
CCH
6CH
DEH
数据1
DI8
DI7
DI6
DI5
DI4
DI3
DI2
DI1
MSBLSB
数据2
DI16
DI15
DI14
DI13
DI12
DI11
DI10
DI9
MSBLSB
图2–5读DI1到DI16状态的响应数据帧
2.3读数据(功能码03)
查询
此功能允许用户获得采集与记录到的数据及ST420系统参数。
图2–6的例子是从17号从机读3个采集到的基本数据U1,U2,U3,U1的地址为0000H,U2的地址为0001H,U3的地址为0002H,
Addr
Fun
Datastart
addrhi
Datastart
addrlo
Data#of
regshi
Data#of
regslo
CRC16
hi
CRC16
lo
11H
03H
00H
00H
00H
03H
07H
5BH
图2–6读Uca和Ia的查询数据帧
响应
响应包含从机地址、功能码、数据的数量和CRC错误校验。
图2–6的例子是读取U1,U2,U3(U1=03E8H,U2=03E7H,U3=03E9H)的响应。
Addr
Fun
Byte
count
Data1
hi
Data1
Lo
Data2
hi
Data2
lo
Data3
hi
Data3
lo
CRC16
hi
CRC16
lo
11H
03H
06H
03H
E8H
03H
E7H
03H
E9H
FDH
9CH
图2–7读U1,U2,U3的响应数据帧
2.4控制DO(功能码05)
查询
该数据帧强行设置一个独立的DO为On或Off,ST420系统内部的任何DO都可以设置为任意的状态。
既然此仪器是以动态扫描方式工作的,除非DO被禁止,总可以改变DO的状态,DO的地址从0000H开始(DO1=0000H,DO2=0001H),数据FF00H将设DO为On状态,而0000H则关闭为Off状态;所有其它的值都被忽略并且不影响DO。
下面的例子是请求17号从机开DO1的On状态。
Addr
Fun
DOaddr
hi
DOaddr
lo
Value
hi
Value
lo
CRC16
hi
CRC16
lo
11H
05H
00H
00H
FFH
00H
8EH
AAH
图示2-8控制独立的DO查询数据帧
响应
对这个命令请求的正常响应是在DO状态改变以后传送接收到的数据。
Addr
Fun
Doaddr
Hi
Doaddr
Lo
Value
Hi
Value
Lo
CRC16
Hi
CRC16
Lo
11H
05H
00H
00H
FFH
00H
8EH
AAH
图示2-9控制独立DO的响应响应数据帧
2.5预置单寄存器(功能码06)
查询
功能码06允许用户改变单个寄存器的内容,ST420系统内部的任何单寄存器都可以使用此命令来改变其值。
既然仪器是以动态扫描方式工作的,任何时刻都可以改变单寄存器内容。
Addr
Fun
Datastart
reghi
Datastart
reglo
Value
hi
Value
lo
Value
hi
Value
lo
CRC
hi
CRC
lo
11H
06H
00H
40H
40H
89H
0AH
9DH
A0H
7CH
图示2-10
响应
对于预置单寄存器请求的正常响应是在寄存器值改变以后将接收到的数据传送回去。
Addr
Fun
Datastart
reghi
Datastart
reglo
CRC16
hi
CRC16
lo
11H
06H
00H
40H
42H
8CH
图示2-11
2.6预置多寄存器(功能码10)
查询:
(标识长6字节)
此功能码允许用户改变多个寄存器的内容,即设置多个变量的数值,每个变量数据长度为一个字。
功能码
要设置变量的初始地址
要设置变量的数量
要设置的字节数
要设置的数值1
要设置的数值2
10H
00H
40H
00H
02H
04H
40H
89H
0AH
9DH
响应:
(标识长5字节)
对于预置多寄存器请求的正常响应是在寄存器值改变以后将接收到的数据头传送回去。
功能码
要设置变量的初始地址
要设置变量的数量
10H
00H
40H
00H
02H
第三章ST420地址表
1、03功能码
地址
变量描述
变量名
备注
0000H
读取A相电压
V1
0001H
读取B相电压
V2
0002H
读取C相电压
V3
0003H
读取AB相电压
V12
0004H
读取BC相电压
V23
0005H
读取CA相电压
V31
0006H
读取A相电流
I1
0007H
读取B相电流
I2
0008H
读取C相电流
I3
0009H
读取有功功率P
P
000AH
读取无功功率Q
Q
000BH
读取视在功率S
S
000CH
读取频率F
F
000DH
读取功率因素PF
PF
000EH
读取N相电流
Inp
0040H
读取有功电度(低字)(受电)
EP_Shou
0041H
读取有功电度(高字)(受电)
0042H
读取有功电度(低字)(发电)
EP_Fa
0043H
读取有功电度(高字)〔发电〕
0044H
读取无功电度(低字)(受电,感性)
EQ_Shou
0045H
读取无功电度(高字)(受电,感性)
0046H
读取无功电度(低字)〔发电,容性〕
EQ_Fa
0047H
读取无功电度(高字)〔发电,容性〕
0080H
读取接线方式
Wire_Mode
0081H
读取PT互感器变比
PT
0082H
读取CT互感器变比
CT
00A0H
读取时间秒
Sec
00A1H
读取时间分
Min
00A2H
读取时间时
Hour
00A3H
读取日期日
Date
00A4H
读取日期月
Month
00A5H
读取日期年
Year
00A6H
读取星期几
Week
00C0H
读取用户自定义PT底字
User_PT
00C1H
读取用户自定义PT高字
00C2H
读取用户自定义CT底字
User_CT
00C3H
读取用户自定义CT高字
2、10功能码
地址
变量描述
变量名
备注
0040H
设置有功电度(低字)(受电)
EP_Shou
0041H
设置有功电度(高字)(受电)
0042H
设置有功电度(低字)(发电)
EP_Fa
0043H
设置有功电度(高字)〔发电〕
0044H
设置无功电度(低字)(受电,感性)
EQ_Shou
0045H
设置无功电度(高字)(受电,感性)
0046H
设置无功电度(低字)〔发电,容性〕
EQ_Fa
0047H
设置无功电度(高字)〔发电,容性〕
0080H
设置接线方式
Wire_Mode
0081H
设置PT互感器变比
PT
0082H
设置CT互感器变比
CT
00A0H
设置时间秒
Sec
00A1H
设置时间分
Min
00A2H
设置时间时
Hour
00A3H
设置日期日
Date
00A4H
设置日期月
Month
00A5H
设置日期年
Year
00A6H
设置星期几
Week
00C0H
设置用户自定义PT低字
User_PT
00C1H
设置用户自定义PT高字
00C2H
设置用户自定义CT底字
User_CT
00C3H
设置用户自定义CT高字
附录
1)PT(电压互感器)序号与PT比例对应关系:
ST420_MOD_PT
PT序号
0
1
2
3
4
5
6
7
8
9
PT比例
1
30
60
100
110
200
350
660
1100
2200
二次电压值
100
3000
6000
10000
11000
20000
35000
66000
110000
220000
二次电压值
100
100
100
100
100
100
100
100
100
100
PT序号
10
11
12
13
14
15
16
17
18
PT比例
3300
28.69
57.39
109.09
104.35
25
27.3
28.75
31.36
二次电压值
330000
3300
6600
12000
12000
3000
3000
3450
3450
二次电压值
100
115
115
110
115
120
110
120
110
PT序号
19
20
21
22
23
24
25
26
27
PT比例
50
54.5
57.5
62.7
95
103.6
190
207
600
二次电压值
6000
6000
6900
6900
11400
11400
22800
22800
66000
二次电压值
120
110
120
110
120
110
120
110
110
PT序号
28
29
30
31
PT比例
27.5
55
99.13
198.2
二次电压值
3300
6600
11400
22800
二次电压值
120
120
115
115
PT序号
32
注:
选择自定义时,PT为双字(1~220000),表示一次侧电压值,二次侧电压额定值,二次侧电压额定值为100伏特。
PT比例
用户自定义
自定义地址
0C0H
0C1H
内容
PT低字
PT高字
2)CT(电流互感器)序号与CT比例对应关系:
ST420_MOD_CT
CT序号
0
1
2
3
4
5
6
7
8
9
10
11
12
CT比例
1
4
5
6
8
10
12
15
16
20
25
30
40
一次电流值
5
20
25
30
40
50
60
75
80
100
125
150
200
二次电流值
5
5
5
5
5
5
5
5
5
5
5
5
5
CT序号
13
14
15
16
17
18
19
20
21
22
CT比例
50
60
80
100
120
150
160
200
240
300
一次电流值
250
300
400
500
600
750
800
1000
1200
1500
二次电流值
5
5
5
5
5
5
5
5
5
5
CT序号
23
24
25
26
27
28
29
30
31
CT比例
320
400
500
600
640
720
800
1000
1200
一次电流值
1600
2000
2500
3000
3200
3600
4000
5000
6000
二次电流值
5
5
5
5
5
5
5
5
5
CT序号
32
注:
选择自定义时,CT为双字(1~6000),表示一次侧电流值,二次侧电流额定值为5安培。
CT比例
用户自定义
自定义地址
0C2H
0C3H
内容
CT低字
CT高字
3)实际值与通讯值的对应关系:
实际电压值=通讯读出值×PT比例/10单位:
伏(V)
实际电流值=通讯读出值×CT比例/1000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ST420 通讯 规约