104规约总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.104规约用于网络传输的协议,端口号固定使用2404。
2.TCP/IP通讯中接收服务的一方为客户端,104规约中主站一般是召唤数据的一方,因此主站端定义为客户端。
TCP/IP通讯中提供服务的一方为服务端,104规约中厂站端是提供数据的一方,因此厂站端定义为服务器端。
3.104规约采用的是平衡方式通讯(双方都可以发起信息传输,一旦链路建立成功,变化信息除了响应召唤应答还可以主动发送而无需等待查询)。
4.使用与101相同的应用层(ASDU)。
5.报文不使用帧校验字节。
6.通过I格式报文的计数及确认来保证信息传输的安全性。
7.104规约的报文结构
8.在APDU中,启动字符68H定义了数据流内的起始点,应用规约数据单元的长度定义了APDU主体的长度;需要注意的是,IEC 60870-5-104规定一个APDU报文(包括启动字符和长度标识)不能超过255个字节,因此APDU最大长度为253(等于255减去启动和长度标识共两个8位位组),ASDU的最大长度为249,这个要求限制了一个APDU报文最多能发送121个不带品质描述的归一化测量值或243个不带时标的单点遥信信息,若RTU采集的信息量超过此数目,则必须分成多个APDU进行发送。
9.控制域,定义了保护报文不至于丢失和重复传送的控制信息,报文传输启动、停止,以及传输连接的监视等。
10.104定义了三种类型的报文格式
●编号的信息传输格式,I格式。
用作信息报文的传送,附带发送序列号和接收序列号,作为接收方对已发送报文的
确认。
●编号的监视功能格式,S格式。
当本站长期没有信息帧发送时,向对方报告已收到信息帧序列号,作接收方对发送
方的确认。
●不编号的控制功能格式,U格式。
链路测试命令和确认,启动数据传送命令和确认,停止数据传送命令和确认。
说明:
当报文接收方收到发送方的I格式报文后,如果没有I格式报文需要发送给对方,可以向对方发送S格式报文以对所接收的报文进行确认。
为防止I格式报文在传送过程中丢失或重复传送,I格式报文的控制域定义了发送序号N和接收序号R,发送方每发送一个格式报文,其发送序号应加1,接收方每接收到一个与其接收序号相等的I格式报文后,其接收序号应加1,需要注意的是,每次重新建立TCP连接后,调度主站和子站RTU的接收序号和发送序号都应清零,因此在双方开始数据传送后,接收方若收到一个I格式报文,应判断此I格式报文的发送序号是否等于自己的接收序号。
若相等则应将自己的接收序号加1,若此I格式报文的发送序号大于自己的接收序号,这说明发送放发送的一些报文出现了丢失,若此I格式报文的发送序号小于自己的接收序号,这意味着发送方出现了重复传送。
此外,I格式和S格式报文的接收序号表明了发送该报文的一方对已接收的I格式报文的确认,若发送方发送的某一I格式报文后长时间无法在对方的
接收序号中得到确认,这就意味着发生了报文丢失。
当出现上述这些报文丢失,错序的情况是,通常意味着TCP连接出现了问题,发送方或接收方应关闭现在的TCP连接然后再重新建立新的TCP连接,并在新的TCP连接上重新开始会话过程。
在主站端和子站RTU 端进行通信时,接收方可以使用S格式报文(当有应用服务单元需要发送给对方时,可以使用I格式报文)对已接收的I格式报文进行确认,以免发送方超时收不到确认信息而重新建立TCP连接。
这就存在一个接收方收到多少个I格式报文进行一次确认的问题,以及发送方应在多少个I格式报文未得到确认时停止发送数据,104规定了两个参数K和W取值为1到32767,其中看表示发送方在有K个I格式报文未得到对方的确认时,将定制数据发送,W表示接收方最迟在接收W个格式报文后应发出认可;104规定K和W的默认值分别为12个APDU和8个APDU。
在实际中,K和W的具体取值可以根据TCP连接双方的数据通信量加以确定,对于子站RTU端来说,每收到一个调度端的I格式报文都应立即进行响应,其W的取值实际上为1,由于RTU端可以循环向调度端发送遥信、遥测等信息,因此K的取值与其循环发送的定时周期有关,通常12到20个APDU就足够了;对于主站端,由于不停接收到RTU的数据,因此应及时地给以确认,通常W取小于8个APDU的值。
为了能对TCP连接进行检查和维护,104规定了几个超时时间,t0,t1,t2,t3它们的取值范围为1-255S,准确度为1S。
T0规定了主站端和子站端建立一次TCP连接的最大允许时间,住主站端和子站端之间的tcp连接在实际运行中可能经常进行关闭和重建,这发生在4种情况下:
●主站端和子站端之间的I格式报文传送出现丢失、错序或者发送U格式报文得不
到应答时,双方均可主动关闭TCP连接,然后进行重连。
●主站系统重新启动后将与各个子站重新建立tcp连接
●子站RTU合上电源或由于自恢复而重新启动后,将重新连接
●子站RTU收到主站端的RESET_PROCESS信号后,将关闭连接并重新初始化,
然后重建连接。
每次建立连接时RTU都调用SOCKET的LISTEN函数进行侦听,主站调用SOCKET的CONNECT函数进行连接,如果在T0时间内未能成功建立
连接,可能网络发生了故障,主站端应该向运行人员给出警告信息。
T1规定发送方发送一个I格式报文或U格式报文后,必须在T1的时间内得到接收方的认可,否则发送方认为TCP连接出现问题并应重新建立连接。
T2规定接收方在接收到I格式报文后,若经过T2时间未再发送新的I格式报文,则必须向发送方发送S格式帧对已经收到的I格式报文进行认可,显然T2必须小于T1。
T3规定调度端或子站端每接收一个I,S,U报文将重新触发计时器t3,若在t3内未能接收到任何报文,将向对方发送测试链路报文。
11.只有I格式才能用于传送ASDU,I格式的APDU至少必须包含一个ASDU,用于传送遥测,遥信,遥控,遥调等信息。
12.应用服务数据单元(ASDU)
应用服务数据单元(ASDU)
●类型标识:定义了信息对象的结构、类型和格式。
一个ASDU内全部信息对象用相同
的结构、类型和格式。
例如,单位遥信,双位遥信,归一化遥测等。
●可变结构限定词:低七位表示本ASDU内包含的信息对象数量,也就是说一个ASDU
最大能够包含的信息对象数量为127;最高位表示信息对象的排列方式,此位为0表示信息对象是离散排列的,为1表示信息是顺序排列的,只需要指明第一个信息对象地址,后续信息对象地址被隐去,默认为是前一个信息对象地址加1。
注:在回答召唤或组召唤时,为了压缩信息传输时间,提高信息传输效率,规定必须使用1,作为变化信息上送时,由于信息的变化顺序是随机的,一般使用0。
●传送原因
源发地址用来表明来自哪个主站的召唤,一般情况下不使用,规定源发地址不适用时置零,低6位是传送原因序号,104和101规约规定,任何一次信息传输必须具有明确的传送原因,而且必须给出肯定或者否定的认可。
特别是传送原因44-47,对于通讯双方必须认真对待,这往往就是排除通讯中问题的有效手段。
控制站将舍弃那些传送原因未定义的应用服务数据单元。
●应用服务公共地址
一般作为站地址
一般高字节固定为0,1-254表示站地址,255表示全局地址(全局站的广播地址)。
控制站将舍弃那些公共地址未定义的应用服务数据单元。
●信息体地址
三个字节表示,最高字节一般置为零,最多能够表达65535个信息。
同类信息对象地址必须连续。
主站和对应的厂站两侧的地址分配必须一致。
其他说明
控制站将舍弃那些信息对象地址具有未定义值的应用服务数据单元。
一个ASDU中的首个信息体必须具有信息地址。
信息体元素必须出现,是否包含信息体时标由相应的报文类型确定。
建议使用长时标以确保信息的完整性。
报文举例:
带长时标的单点遥信报文格式(I格式)
带长时标的标度遥测报文格式(I格式)
I格式报文(正常)
S格式报文正常
I格式报文(受干扰)
I格式报文(未确认)
U格式报文(正常)
U格式报文(超时未确认)
TCP连接的建立和关闭
控制站的初始化
被控站的本地初始化
被控站的远方初始化。