BACnet网络讲解.docx

上传人:b****6 文档编号:14025174 上传时间:2023-06-20 格式:DOCX 页数:66 大小:1.60MB
下载 相关 举报
BACnet网络讲解.docx_第1页
第1页 / 共66页
BACnet网络讲解.docx_第2页
第2页 / 共66页
BACnet网络讲解.docx_第3页
第3页 / 共66页
BACnet网络讲解.docx_第4页
第4页 / 共66页
BACnet网络讲解.docx_第5页
第5页 / 共66页
BACnet网络讲解.docx_第6页
第6页 / 共66页
BACnet网络讲解.docx_第7页
第7页 / 共66页
BACnet网络讲解.docx_第8页
第8页 / 共66页
BACnet网络讲解.docx_第9页
第9页 / 共66页
BACnet网络讲解.docx_第10页
第10页 / 共66页
BACnet网络讲解.docx_第11页
第11页 / 共66页
BACnet网络讲解.docx_第12页
第12页 / 共66页
BACnet网络讲解.docx_第13页
第13页 / 共66页
BACnet网络讲解.docx_第14页
第14页 / 共66页
BACnet网络讲解.docx_第15页
第15页 / 共66页
BACnet网络讲解.docx_第16页
第16页 / 共66页
BACnet网络讲解.docx_第17页
第17页 / 共66页
BACnet网络讲解.docx_第18页
第18页 / 共66页
BACnet网络讲解.docx_第19页
第19页 / 共66页
BACnet网络讲解.docx_第20页
第20页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

BACnet网络讲解.docx

《BACnet网络讲解.docx》由会员分享,可在线阅读,更多相关《BACnet网络讲解.docx(66页珍藏版)》请在冰点文库上搜索。

BACnet网络讲解.docx

BACnet网络讲解

第1章BACnet协议概述

 

本章介绍BACnet协议的产生及协议模型,讨论BACnet网络的体系结构、拓扑结构、协议栈以及数据流。

 

§1.1 BACnet协议模型 

1.1.1 BACnet简介

BACnet(AData Communication Protocol for Building Automation and Control Network)是一种为楼宇自动控制网络所制定的数据通信协议,它由美国冷暖空调工程师协会组织的标准项目委员会135P(Standard Project Committee:

 SPC 135P)于1995年6月制定。

BACnet标准产生的背景是用户对楼宇自动控制设备互操作性(Interoperability)的广泛要求,即将不同厂家的设备组成一个一致的自控系统。

BACnet实现楼宇自控设备的互操作性的思想是这样的,一般楼宇自控设备从功能上讲分为两部分,一部分专门处理设备的控制功能,另一部分专门处理设备的数据通信功能,不同厂商生产的设备使用各自专门的数据通信的方式,所以不同厂商的设备之间没有很好的互操作性。

BACnet就是要建立一种统一的数据通信的标准,用于设备的通信部分,从而使得按这种标准生产的设备,都可以进行通信,实现互操作性。

BACnet标准只是规定了楼宇自控设备之间要进行“对话”所必须遵守的规则,并不涉及如何实现这些规则,各厂商可以用不断进步的技术来开发,从而使得整个领域的技术不断进步。

 

1.1.2 BACnet协议模型 

SPC征集了各方面的意见,同时参考了国际上各种现已成文的或是事实上的数据通信标准,讨论得出了一个具有以下特性的网络协议模型:

(1)所有的网络设备,除了主从/令牌传递式从属机(MS/TP slaves:

 master-slave/token-passing slaves)以外,都是对等的(Peer)。

当然某些同等设备可能比其他具有更多的特权(Privilege)与职责(Responsibility)。

(2)每一个网络设备都称之为是一个“对象”(Object)的实体(entity),这是一个具有网络访问特征的集合模型。

每个对象又用一些“属性”(Property)来描述,这些属性表示了设备的硬件、软件以及操作的各个方面。

在不需要了解设备内部设计或配置细节的情况下,对象提供了识别与访问设备信息的方法。

尽管该标准规定了广泛的应用对象的类型以及它们的属性,但是一旦需要,利用开发工具仍可以自由地增加新的对象类型。

(3)通信功能是通过读写某些对象的属性,以及利用其他协议提供的“服务”(Service)来完成的。

尽管该标准规定了一套详尽的服务,但是一旦需要,该标准的机制也同样允许利用开发工具增加新的服务。

(4)设备的完善性(Sophistication),即实现特定服务请求或理解特定对象类型种类的能力,是由设备的“一致性类别”(Conformance Class)所反映的。

每一种类别定义了一个包括服务、对象、属性的最小集合,声明为某一类别的设备必须支持其相应的集合。

(5)由于该标准遵循了ISO的“分层”通信体系结构的概念,因此使用不同的网络访问方法与物理介质可以交换相同的报文。

这样可以根据传输速度与吞吐量的要求,采用相宜的开销来配置BACnet网络。

(6)该标准是为暖气、通风、空调、制冷控制设备所设计的,同时它也为其他楼宇控制系统的集成提供了基本原则,例如照明、保安、消防系统等。

虽然这些扩展超出了该标准的范围,但实现起来却简单明了。

并且,标准中定义的许多对象与服务也可以不加修改地被应用。

当然,一旦这些其他类型的楼宇控制功能需要,也可以简单方便地定义新的对象与服务。

(7)该标准的目的是为暖气、通风、空调、制冷控制设备与其它楼宇自控设备的监控定义数据通信的服务与协议。

除此之外,标准还定义了抽象的、面向对象的表示法,用来描述这些设备间的信息通信,以便于在楼宇中使用数字控制技术。

所有的通信协议都是一个解决各种信息交换问题的方案的集合,并且随着时间的推移与技术的进步而不断改变,BACnet网络同样也不例外。

§1.2 BACnet协议的体系结构

国际标准化组织在制定计算机网络通讯协议标准时定义了一个模型,称为开放式系统互联参考模型(OSI模型),模型的目的是解决计算机与计算机之间普遍的通信问题,并将这个复杂的问题分解成7个小的、易解决的子问题,每个子问题只与某些通信功能相关联,如图1-1所示。

这样每个子问题便形成了协议体系结构中的一“层”。

任何两个遵循该模型及有关标准的设备或系统,都可以实现互连与互操作。

 

 

 

 

SPC制定BACnet标准时,确定BACnet作为一种开放性计算机局域网协议,它仍然采用OSI模型的“分层”通信体系结构的概念。

在确定分层的层数时,考虑了下列两个因素:

第一,OSI模型的实现需要很高的费用,实际上在绝大部分楼宇自控系统应用中也并不需要这么多的层次。

但是从OSI的功能性方面考虑,经过简化后,OSI模型仍然是设计楼宇自控协议的一个很好参考,如果只包含OSI模型中被选择的层次,其它各层则去掉,这样减少了报文长度,降低了通信处理开销,同时也会节约楼宇自控工业的生产成本。

第二,如果能够充分利用现有的、易用的、广泛使用的局域网技术,如Ethernet、ARCNET与LonTalk,不但可以降低成本,同时也有利于性能的提高。

由此,SPC确定BACnet标准协议体系结构为一个包含四个层次的分层体系结构,这四个层次相对于OSI模型中的物理层、数据链路层、网络层与应用层,如图1-2所示。

BACnet标准定义了自己的应用层与网络层,对于其数据链路层与物理层,提供了以下五种选择方案:

 

第一种选择是ISO 8802-2类型1定义的逻辑链路控制(LLC)协议,加上ISO 8802-3介质访问控制(MAC)协议与物理层协议。

ISO 8802-2类型1提供了无连接不确认的服务,ISO 8802-3则是著名的以太网协议的国际标准。

 

第二种选择是ISO 8802-2类型1定义的逻辑链路控制(LLC)协议,加上ARCNET(ATA/ANSI 878.1)。

 

第三种选择是主从/令牌传递(MS/TP)协议加上EIA-485协议。

MS/TP协议是专门针对楼宇自控设备设计的,它通过控制EIA-485的物理层,向网络层提供接口。

 

第四种选择是点对点(PTP)协议加上EIA-232协议,为拨号串行异步通信提供了通信机制。

 

第五种选择是LonTalk协议。

 

这些选择都支持主/从MAC、确定性令牌传递MAC、高速争用MAC以及拨号访问。

拓扑结构上,支持星型与总线型拓扑;物理介质上,支持双绞线、同轴电缆、光缆。

以下详细讨论BACnet选择一个四层体系结构的原因。

首先仔细考虑BACnet网络的独特特征。

BACnet的特征主要有以下两点:

 

(1) BACnet网络是一种局域网。

即使在某些应用中,楼宇中设备间远距离的通信必不可少时,这一点仍然是不变的。

这种远距离的通信功能,是由电信网来实现。

通信过程中要解决的路由、中继、可靠传输等问题,都由电信网来处理。

在此电信网可看成是BACnet网络外部的部分。

 

(2) BACnet设备是静态的,即在空间上,它们不会经常被移来移去。

在要完成的功能上,从某种意义上说也是不变的,即不会今天生产的设备的功能是这样,明天就完全不同了。

 

在充分了解BACnet网络的特征后,就可讨论OSI模型的各层在BACnet网络中的适用性了。

OSI模型的物理层提供了设备间的物理连接,以及传输载波信号的方式。

显然在BACnet协议中,物理层是必不可少的。

 

OSI模型的数据链路层,负责将数据组织成帧(Frame)或分组(Packet)、管理通讯介质的访问、寻址(Address),以及完成一些错误校正(Error Recovery)与流量控制。

这些都是BACnet协议所需要的,因此数据链路层也是必不可少的。

 

OSI网络层的功能,包括将全局地址解析为局部地址,在一个或多个网络中进行报文的路由,协调不同类型网络的差异(如不同网络所允许的最大报文长度),序列控制,流量控制,差错控制,以及多路复用。

由于BACnet网络的拓扑特点,在各个设备之间只存在一条逻辑通路(参见图3),这样便不需要最优路由的算法。

其次,BACnet网络是由中继器或网桥互联起来的一个或多个网段所组成的网络,它具有单一的局部地址空间。

在这样一种单一网络中,许多OSI网络层的功能也变得多余,或者与数据链路层相重复。

当然在某些BACnet网络系统中,网络层也可能是必不可少的。

例如,在一个BACnet的网际网(internet)中,当两个或多个网络使用了不同的MAC层时,便需要区别局部地址与全局地址,这样才能将报文路由到正确的网络上去。

在BACnet协议中,通过定义了一个包含必要的寻径与控制信息的网络层头部,来完成这种简化了的网络层功能。

 

传输层主要是负责提供可靠的端到端的报文传输、报文分段、序列控制、流量控制,以及差错校正。

传输层的许多功能与数据链路层相似,只是在作用范围上有所不同。

传输层提供的是端到端的服务,而数据链路层则提供的是单一网络上点到点的服务。

由于BACnet支持多种网络的配置,因此协议必须提供传输层端到端的服务。

在BACnet网络中要提供三个方面的传输层的功能,第一是可靠的端到端传输与差错校正功能,第二是报文分段与端到端的流量控制,第三是实现报文的正确重组,序列控制。

由于BACnet是建立在无连接的通信模型基础上的,因此所需的服务大大减少,并且可以被高层来实现,所以,传输层的这些功能可以通过BACnet应用层来实现,这样,在BACnet协议体系中不单独设置传输层,相应的功能放在应用层中完成,从而节省了通信开销。

 

会话层的功能是在通信双方之间建立与管理长时间对话。

包括建立同步标志点,用来在出错时回复到前一个标志点,以避免对话重新开始。

但在一个BACnet网络中,绝大部分的通信都是很简短的,比如读写一个或一些值,通知某个设备某个警报或事件,或者更改某个设定值。

当然长时间的信息交换偶然也会发生的,比如上载或下载某个设备。

由于绝大部分事务处理都是简短的,会话层的服务极少用到,再考虑到带来的开销,因此BACnet标准中不包括这层。

 

表示层为通信双方提供了屏蔽下层传送语法的服务。

这种传送语法是用来将应用层中抽象的用户数据表示,变成适合下层传输的字节序列。

但当只存在一种传送语法时,表示层的功能便减少到对应用程序的数据进行编码。

由于在BACnet在应用层中定义了一个固定的编码方案,因此一个独立的表示层也变得不再需要。

 

协议的应用层为应用程序提供了完成各自功能所需的通信服务。

在此基础上,应用程序可以监控HVAC&R与其它楼宇自控系统。

显然应用层是本协议所必需的。

    从以上讨论中,可以得到以下几点:

 

1. 实现一个完全的OSI七层体系结构需要大量的资源与开销,因此它对于目前的楼宇自控系统是不适用的。

 

2. 根据OSI模型,采用现有的计算机网络技术将会带来以下好处:

节约成本,便于与其它计算机网络系统集成。

 

3. 根据楼宇自控系统的环境及要求,可以通过去除OSI某些层的功能来简化OSI模型。

4. 由物理层、数据链路层、网络层与应用层组成的一个简化体系结构,是当今楼宇自控系统的最佳解决方案。

§1.3   BAC网络的拓扑结构

为了应用的灵活性,BACnet并没有严格规定网络的拓扑结构。

BACnet设备可以通过专线或拨号异步串行线,与四种局域网之一进行物理相连。

而这些网络可以通过BACnet路由器或一对半路由器进一步互联。

 

在BACnet网络中,定义了如下这样一些拓扑结构:

 

1. 物理网段(Physical Segment):

直接连接一些BACnet设备的一段物理介质。

 

2. 网段(Segment):

多个物理网段通过“中继器”在物理层连接,所形成的网络段。

 

3. 网络(Network):

多个BACnet网段通过“网桥”互连而成,每个BACnet网络都形成一个单一的MAC地址域。

这些在物理层与数据链路层上连接各个网段的设备,可以利用MAC地址实现报文的过滤。

 

4. 网际网(Internetwork):

将使用不同LAN技术的多个网络,用BACnet“路由器”互联起来,便形成了一个BACnet“网际网”。

在一个BACnet网际网中,任意两个节点之间恰好存在着一条报文通路。

这些概念如图1-3所示。

§1.4   BACnet的协议栈与数据流

在BACnet中,两个对等应用进程间的信息交换,依然按照OSI技术报告中关于ISO的服务惯例(ISO TR 8509),被表示成抽象的服务原语的交换。

BACnet定义了四种服务原语:

请求、指示、响应与证实原语,用来传递某些特定的服务参数。

而包含这些原语的信息,又是由BACnet标准中定义的各种协议数据单元(PDU:

Protocol Data Unit)来传递的。

 当应用程序需要同远地的应用进程通讯时,它通过调用API访问本地的BACnet用户单元(应用层中为用户应用程序提供服务的访问点)。

API的某些参数,如接收服务请求的设备的标志号(或地址)、协议控制信息等,将直接下传到网络层或数据链路层。

而其余参数将组成一个应用层服务原语,通过BACnet的用户单元传到BACnet的应用服务单元(应用层中利用下层服务完成应用层服务的部分)。

 从概念上来讲,由应用层服务原语产生的应用层协议数据单元(APDU),构成了网络层服务原语的数据部分,并通过网络层服务访问点下传到网络层。

同样,这个请求将进一步下传到本地设备协议栈的以下各层。

整个过程如图1-4所示(见下一页)。

 于是,报文就这样被传送到远地的设备,并在远地设备协议栈中逐级上传,最后指示原语看起来似乎是直接从远地的BACnet应用服务单元上传到远地的BACnet用户单元。

任何从远地设备发回的响应,也是以该方式回传给请求设备的。

 

BACnet协议采用的分层思想,来源与一个简单的科学原理——分层原理(Layering Principle)。

即“在目标计算机上的第N层软件必须恰好接收由在发送计算机上的第N层软件所发送的数据”。

换句话说,在数据发送前,协议进行的任何转换在接收时必须被完全地逆转换。

如果在发送计算机上的一个特定层将一个头部放入帧中,在接收计算机的相应层必须除去该头部。

分层思想简化了协议的设计与测试,避免了一层协议软件引入其它层可见的改变。

这样,每一层的发送与接收软件可独立于其它层进行设计、实现、测试。

第2章  BACnet应用层规范

 

本章介绍BACnet的应用层规范的原理与运行机制,概要介绍BACnet应用层的模型、主要的服务原语以及应用层报文的结构,并讨论BACnet各种报文的传输过程以及与报文传输相关的其它问题。

 

§2.1  BACnet协议的应用层规范

BACnet网络的应用层协议要解决三个问题,向应用程序提供通信服务的规范,与下层协议进行信息交换的规范,与与对等的远程应用层实体交互的规范。

首先对一些相关的概念进行说明。

 

应用进程是指,为了实现某个特定的应用(例如,节点设备向一个远端的温度传感器设备请求当前温度值)所需要的进行信息处理的一组方法。

一般来说,这是一组计算机软件。

 

应用进程分为两部分,一部分专门进行信息处理,不涉及通信功能,这部分称为应用程序。

另一部分处理BACnet通信事务,称为应用实体。

应用程序与应用实体之间通过应用编程接口(API)进行交互。

BACnet应用层协议只对应用实体进行规范,不涉及应用程序与应用编程接口。

但在具体实现过程中,应用编程接口一定是某个函数、过程或子程序的调用。

 

图2-1示出了这些概念,图中阴影部分是应用进程位于BACnet应用层中的部分。

应用实体本身又由两部分组成,分别是BACnet用户单元与BACnet应用服务单元(ASE)。

应用服务单元是一组特定内容的应用服务,这些应用服务包括:

报警与事件服务,文件访问服务,对象访问服务,远程设备管理服务,虚拟终端服务,与网络安全性。

用户单元的功能是支持本地API,负责保存事务处理的上下文信息,产生请求标志符(ID),记录标志符所对应的应用服务响应,维护超时重传机制所需的超时计数器,以及将设备的行为要求映射成为BACnet的对象。

我们将在后续的文章中介绍这些应用服务与对象的内容。

 “BACnet设备”是指任何一种支持用BACnet协议进行数字通信的真实的或者虚拟的设备。

一个BACnet设备有且只有一个“设备对象”,而且被一个网络号与一个MAC地址唯一确定。

在大多数情况下,一个物理设备就是一个BACnet设备,例如一个支持BACnet协议通信的温度传感器就是一个BACnet设备。

但是也可能有一个物理设备具有多个“虚拟的” BACnet设备的功能,在BACnet标准的附件H中对此进行了详细规范。

 

当一个BACnet设备中的应用程序需要与网络中其它BACnet设备中的应用程序进行通信时,应用程序只需通过调用API访问本地的BACnet用户单元来实现。

例如,一个BACnet 设备的应用程序要向一个远地设备的应用程序发送一个请求服务信息,它调用API,并将相应的参数填入API中。

API中的某些参数,如服务请求接收设备的标志号(或地址)、协议控制信息等,将直接下传到网络层或数据链路层;其余参数则组成一个应用层服务原语,通过BACnet用户单元传到BACnet应用服务单元(ASE),形成应用层协议数据单元(APDU)。

APDU则通过网络层的服务访问点(NSAP)下传到网络层,成为网络层服务原语的数据部分。

这个请求将进一步下传到本地设备协议栈中的下层,最终由物理层传送到远地设备,并通过远地设备协议栈逐级上传到远地用户单元。

从远地设备看起来,指示原语似乎是直接从它自己的BACnet应用服务单元传到其BACnet用户单元的。

同样,任何从远地设备发回的响应,也是以相同方式回传给请求设备。

 

BACnet应用层协议包含了OSI模型中的应用层到传输层中的相应内容,所以除了应用层服务的功能外,还要有端到端可靠传输的功能。

因此,BACnet应用层规范就是为了保证BACnet设备的应用程序能够与网络中远地BACnet设备的应用程序进行端到端可靠通信而制定的一组规则,其主要内容包括:

BACnet应用层提供的服务类型,上下层之间交换的接口控制信息,与对等层协议数据单元的传输机制。

 

§2.2  BACnet应用层服务类型 

BACnet的应用层提供两种类型的服务,分别是“证实服务”与“非证实服务”。

 在BACnet中,两个对等应用进程间的信息交换,根据ISO的服务惯例,被表示成抽象的服务原语的交换。

BACnet定义了四种服务原语:

请求(Request)、指示(Indication)、响应(Response)以及证实(Confirm)原语,可以用来传递某些特定的服务参数。

而包含这些原语的信息,又是由标准中定义的各种协议数据单元(PDU)来传递的。

下面列出各种服务原语:

 

CONF_SERV. response CONF_SERV. Confirm CONF_SERV. Request CONF_SERV. indication 

UNCONF_SERV. request UNCONF_SERV. indication SEGMENT_ACK. request SEGMENT_ACK. request ERROR. request   ERROR. indication REJECT. request   REJECT. indication ABORT. request 

 

 

ABORT. indication 

CONF_SERV的标识表明使用的是BACnet证实服务PDU。

UNCONF_SERV、SEGMENT_ACK、ERROR、REJECT与ABOUT,分别表明使用的是非证实服务PDU、分段回应PDU、出错PDU、拒绝PDU与放弃PDU,后面这些都是非证实服务类型。

 

证实服务是建立在客户/服务器通信模型的基础上的,客户端通过某个服务请求实例,向服务器请求服务,而服务器则通过响应请求来为客户端提供服务,如图2-2所示。

在交互过程中,担当客户角色的BACnet用户,称为请求方BACnet用户;担当服务器角色的BACnet用户,称为响应方BACnet用户。

证实服务的具体过程如下:

由请求方BACnet用户发出的一个CONF_SERV. request原语,形成请求PDU发送给响应方BACnet用户。

当该请求PDU到达响应方BACnet用户时,响应方BACnet用户则收到一个CONF_SERV. indication原语。

同样,由响应方BACnet用户发出的一个CONF_SERV. response原语,形成响应PDU回传给请求方BACnet用户。

当响应PDU到达请求方BACnet用户时,请求方BACnet用户则收到一个CONF_SERV. CONF_SERV. confirm原语。

因此,整个过程中请求方BACnet用户与响应方BACnet用户都要接收与发送PDU。

 

在非证实服务中,不存在上述客户/服务器模型、“请求方BACnet用户”与“响应方BACnet用户”等概念,只有“发送方BACnet用户”与“接收方BACnet用户”。

前者指的是发送PDU的BACnet用户,后者指的是当一个PDU到达时,接收到一个指示(indication)或证实(confirm)的BACnet用户。

图2-3为正常的证实服务报文传递的示意图,图2-4为正常的非证实服务报文传递的示意图。

§2.3  BACnet应用层报文分析

2.3.1 应用层接口控制信息 

除了服务原语与服务参数外,应用实体还通过API与应用程序交换各种接口控制信息(ICI)参数,其具体内容取决于服务原语的类型。

应用实体接收到的ICI参数将下传到下面各层,以便于各层PDU的构建。

而应用实体回传给应用程序的ICI参数,则包含了其以下各层从各自的PDU中得到的信息。

 

通过API与各种服务原语交换信息的ICI参数包括:

 

1. “目的地址”(DA:

):

将要接收服务原语设备的地址。

其格式(如设备名称、网络地址等)只与本地有关。

这个地址也可以是多播地址、本地广播地址或全局广播地址类型。

 

2. “源地址”(SA):

发送服务原语的设备的地址。

其格式只与本地有关。

 

3. “网络优先权”(NP):

表示网络优先权的参数。

 

4. “需回复数据”(DER):

一个逻辑值参数,用来指明某个服务是否需要一个回复

服务原语来确认。

 

2.3.2 应用层协议数据单元的编码 

在BACnet中,使用应用层协议数据单元(APDU)来传递包含在应用服务原语与相应的参数中的信息。

BACnet选择ISO Standard 8824规范中的方法来表征BACnet服务的数据内容。

并且,BACnet规定了APDU的编码内容,这些编码内容在BACnet标准中的有关章节中进行了详细的描述。

 

BACnet的APDU由协议控制信息(PCI)与用户数据两部分组成。

PCI中包含进行应用层协议操作所需要的数据,这些数据包括:

APDU的类型,匹配服务请求与服务响应的信息,执行分段报文重组的信息。

这些信息包含在报文的头部,也称为APDU的固定部分。

用户数据中包含每种服务请求与服务响应的具体信息,这部分也称为APDU的可变部分。

2.3.3 BACnet报文的分段 

为了实现长报文(长度大于通信网络、收/发设备所支持的长度)的传输,有必要对报文进行分段。

在BACnet体系结构中,不存在单独的传输层,因此报文分段不是由传输层实现,而是由应用层来完成。

并且,在BACnet中只有Confirmed-Request与Complex-ACK报文可能需要分段,因此分段还是BACnet的一个可选

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2