首页 理论教育DeviceNet通信过程解析

DeviceNet通信过程解析

【摘要】:假设DeviceNet网络上的主站地址为0,从站地址为7。接收=从站收到的报文,发送=从站发出的报文,DeviceNet的帧格式如图7-21所示。通信过程如下:图7-21 DeviceNet的帧格式1.open接收:87 C6 00 4B 03 01 01 0087 C6:仅限组2,目的MAC ID=7,msg=110,RTR=0,DLH=6;00 4B:frag=0,XID=0,源MAC ID=0,R/R=0,open service;03:DeviceNet Class;01:Instance ID;01:allocation choice=explicit;00:master MAC ID。发送:87 63 00 CB 0087 63:仅限组2,目的MAC ID=7,msg=011,RTR=0,DLH=3;00 CB:frag=0,XID=0,R/R=1,open service response;00:body format=class/instance=8/8。

假设DeviceNet网络上的主站地址为0,从站(仅限组2/预定义)地址为7。接收=从站收到的报文(即主站发给从站的请求),发送=从站发出的报文(即从站发给主站的响应),DeviceNet的帧格式如图7-21所示。其中,第1字节和第2字节为CAN标识符;第3~10字节为CAN数据。通信过程如下:

978-7-111-35607-3-Chapter07-35.jpg

图7-21 DeviceNet的帧格式

1.open

接收:87 C6 00 4B 03 01 01 00

87 C6:仅限组2,目的MAC ID=7,msg=110(open explicit request),RTR=0,DLH=6;

00 4B:frag=0,XID=0,源MAC ID=0,R/R=0,open service(4B);

03:DeviceNet Class;

01:Instance ID;

01:allocation choice=explicit;

00:master MAC ID。

前2个字节解释如下:

第1字节:87H=1000 0111B

其中,最高2位为10,意义为仅限组2;低6位为000111,意义为目的MAC ID=7。

第2字节:C6H=1100 0110B

其中,最高3位为110,意义为msg=110;低4位为数据长度DLH=6;剩余1位为0,表示RTR=0。

发送:87 63 00 CB 00

87 63:仅限组2,目的MAC ID=7,msg=011(open explicit response),RTR=0,DLH=3;

00 CB:frag=0,XID=0,R/R=1,open service response;

00:body format=class/instance=8/8。

2.allocate

接收:8786004B 03010200

87 86:仅限组2,目的MAC ID=7,msg=100(master explicit request),RTR=0,DLH=6;

00 4B:frag=0,XID=0,源MAC ID=0,R/R=0,open service(4B);

03:DeviceNet Class;

01:Instance ID;

02:poll;

00:master MAC ID。

发送:87 63 00 CB 00

87 63:仅限组2,目的MAC ID=7,msg=011(open explicit response),RTR=0,DLH=3;

00 CB:frag=0,XID=0,R/R=1,open service response;

00:busy format=class/insta nce=8/8。

3.vendor ID

接收:87 85 00 0E 01 01 01

87 85:仅限组2,目的MAC ID=7,msg=100(master explicit request),RTR=0,DLH=5;

00 0E:frag=0,XID=0,源MAC ID=0,R/R=0,service(0E)=get_request;

01:ID Class;

01:Instance ID;

01:attribute ID。

发送:87 64 00 8E 01 00

87 64:仅限组2,目的MAC ID=7,msg=011(slave explicit response),RTR=0,DLH=4;

00 8E:frag=0,XID=0,R/R=1,open service response=8E;

01 00:service data=attribute data=vendor=01;

4.device type

接收:87 85 00 0E 01 01 02

87 85:仅限组2,目的MAC ID=7,msg=100(master explicit request),RTR=0,DLH=S;

00 0E:fra g=0,XID=0,源MACID=0,R/R=0,service(0E)=get_request;

01:ID Class;

01:Insta nce ID;

02:attribute ID。

发送:87 64 00 8E 01 00

87 64:仅限组2,目的MAC ID=7,msg=011(slave explicit response),RTR=0,DLH=4;

00 8E:frag=0,XID=0,R/R=1,open service response=8E;

01 00:service data=generic device。

5.product ID

接收:87 85 00 0E 01 01 03

87 85:仅限组2,目的MAC ID=7,msg=100(master explicit request),RTR=0,DLH=5;(www.chuimin.cn)

00 0E:frag=0,XID=0,源MACID=0,R/R=0,server(OE)=get_request;

01:ID Class;

01:Insta nce ID;

03:attribute ID。

发送:87 64 00 8E 01 00

87 64:仅限组2,目的MAC ID=7,msg=011(slave explicit response),RTR=0,DLH=4;

00 8E:frag=0,XID=0,R/R=1,open service response=8E;

01 00:service data=product ID。

6.error response(attribute_not_settable)

接收:87 86 00 10 05 01 0C 03

87 86:仅限组2,目的MAC ID=7,msg=100(master explicit request),RTR=0,DLH=6;

00 10:frag=0,XID=0,源MAC ID=0,R/R=0,service(10)=set_attribute_single;

05:Connection Class;

01:Instance ID;

0C:attribute ID(watch dog time out action);

03:attribute data。

发送:87 64 00 94 0E FF

87 64:仅限组2,目的MAC ID=7,msg=011(slave explicit response),RTR=0,DLH=4;

00 94:service=14(error response);

0E:general code=attribute_not_settable;

FF:additional code=default_master_MAC_ID。

7.EPR(Expected_Pac ket_Rate)

接收:87 87 00 10 05 02 09 4B 00

87 87:仅限组2,目的MAC ID=7,msg=100(master explicit request),RTR=0,DLH=7;

00 10:frag=0,XID=0,源MAC ID=0,R/R=0,service(10)=set_attribute_single;

05:Connection Class;

02:Instance ID;

09:attribute ID(error);

4B 00:attribute data。

发送:876400905000

87 64:仅限组2,目的MAC ID=7,msg=011(slave explicit response),RTR=0,DLH=4;

00 90:service response;

50 00:EPR(Expected_Packet_Rate)。

8.produced_connetion_size(1 byte)

接收:87 85 00 0E 05 02 07

87 85:仅限组2,目的MAC ID=7,msg=100(master explicit request),RTR=0,DLH=5;

00 0E:frag=0,XID=0,源MAC ID=0,R/R=0,service(OE)=get_request;

05:Co nnection Class;

02:Instance ID;

07:attribute ID(produced_connection_size)。

发送:87 64 00 8E 01 00

87 64:仅限组2,目的MAC ID=7,msg=011(slave explicit response),RTR=0,DLH=4;

00 90:service response;

01 00:1 byte。

9.consumed_connection_s ize(1 byte)

接收:87 85 00 0E 05 02 07

87 85:仅限组2,目的MAC ID=7,msg=100(master explicit request),RTR=0,DLH=5;

00 0E:frag=0,XID=0,源MAC ID=0,R/R=0,service(OE)=get_request;

05:Connection Class;

02:Instance ID;

08:attribute ID(consumed_connection_size)。

发送:87 64 00 8E 01 00

87 64:仅限组2,目的MAC ID=7,msg=011(slave explicit response),RTR=0,DLH=4;

00 8E:service response;

01 00:1 byte。