104规约的报文帧分为三类:I帧、S帧和U帧。
I帧称为信息帧,长度一定大于6个字节,被称作长帧,用于传输数据;
S帧称为确认帧,长度只有6个字节,被称作短帧,用于确认接收的I帧;
U帧称为控制帧,长度只有6个字节,也被称作短帧,用于控制启动/停止/测试。
长帧报文分为APCI和ASDU两个部分,统称为APDU,而短帧报文只有APCI部分。
APCI的6个字节是这样构成的: 起动字符68H,1个字节; 后面的报文长度,1个字节(最大253); 控制域位组,4个字节。
I帧的4字节控制域位组规定为:字节1和字节2为发送序号,字节3和字节4为接收序号。
需注意两点:
1、由于字节1和字节3的最低位固定为0,不用于构成序号,所以在计算序号时,要先转换为十进制数值,再除以2;
2、由于低位字节在前、高位字节在后,所以计算时要先做颠倒。
S帧的字节1固定为01H,字节2固定为00H,字节3和字节4为接收序号。计算时仍要注意以上两点。
U帧的字节2、3、4均固定为00H,字节1包含TESTFR,STARTDT和STOPDT三种功能,同时只能激活其中的一种功能。
启动(STARTDT)和停止(STOPDT)都是由主站(104的M端,也就是104的客户端)发起的,先由主站发送生效报文,子站随后确认。
而主站和子站都可发送测试(TESTFR)报文,由另一方确认。
STARTDT:68 04 07 00 00 00(生效); 68 04 0B 00 00 00(确认) 客户端发起
STOPDT:68 04 13 00 00 00(生效); 68 04 23 00 00 00(确认) 客户端发起
TESTFR:68 04 43 00 00 00(生效); 68 04 83 00 00 00(确认) 客户端和服务端对发