DNP3協(xié)議與其在CW中應(yīng)用課件_第1頁
DNP3協(xié)議與其在CW中應(yīng)用課件_第2頁
DNP3協(xié)議與其在CW中應(yīng)用課件_第3頁
DNP3協(xié)議與其在CW中應(yīng)用課件_第4頁
DNP3協(xié)議與其在CW中應(yīng)用課件_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、DNP3協(xié)議DNP: The Distributed Network Protocol(分散式網(wǎng)絡(luò)協(xié)議)DNP3:DNP V3.0第1頁,共32頁。協(xié)議簡介DNP3協(xié)議是由美國IEEE的電力工程協(xié)會(huì)(PES)在IEC的基礎(chǔ)上制定成為美國的通信標(biāo)準(zhǔn),在美國等西方國家有廣泛的應(yīng)用,在我國的應(yīng)用范圍也十分廣闊。DNP30是開放式協(xié)議,既可用于SCADA系統(tǒng),也可應(yīng)用于分布式的自動(dòng)化(DA)系統(tǒng)。該協(xié)議高度靈活并且末端開放,不含任何目標(biāo)硬件的專用結(jié)構(gòu),適合高可靠,中等速度和中等吞吐量的應(yīng)用;IEC8705101協(xié)議采用FT12的幀格式,是我國的國家標(biāo)準(zhǔn)。該協(xié)議適用于SCADA等系統(tǒng),通訊方式靈活,適用

2、于較快速度和較低可靠要求的應(yīng)用場(chǎng)合。DNP 3.0是開放式協(xié)議,它可以對(duì)不同的數(shù)據(jù)類型安排不同的優(yōu)先級(jí);支持主動(dòng)上報(bào)信息;支持主站與子站對(duì)時(shí);允許多主站和對(duì)等操作。DNP 3.0是分層實(shí)現(xiàn)的協(xié)議。它定義了三層,即應(yīng)用層:處理用戶數(shù)據(jù)并控制報(bào)文的流向和報(bào)文的目的;數(shù)據(jù)鏈路層:控制幀的類型;物理層:為鏈路層提供基本服務(wù)以及相應(yīng)的接口。第2頁,共32頁。虛擬傳輸層的由來由于IEC870.5-101鏈路層每一幀中所傳送的應(yīng)用數(shù)據(jù)不超過255個(gè)字節(jié),為了方便應(yīng)用層傳輸大容量數(shù)據(jù)塊,DNP3.0增加了一個(gè)傳輸層,將超過255個(gè)字節(jié)的應(yīng)用數(shù)據(jù)分成若干個(gè)不超過255字節(jié)的數(shù)據(jù)子模塊,送到鏈路層傳輸。因此,為了

3、實(shí)現(xiàn)的方便,DNP3.0在應(yīng)用程序?qū)优c數(shù)據(jù)鏈路層之間增加了虛擬傳輸層。為了支持高級(jí)RTU功能和大于最大幀長的報(bào)文,DNP3.0的數(shù)據(jù)鏈路層用虛擬傳輸層來完成最短報(bào)文的組裝與分解。第3頁,共32頁。圖為通訊模型的比較第4頁,共32頁。各層的幀結(jié)構(gòu)圖示圖1中:(1)請(qǐng)求報(bào)頭用于主站的數(shù)據(jù)請(qǐng)求報(bào)文,包含應(yīng)用控制和功能碼兩個(gè)字段。響應(yīng)報(bào)頭用于子站的響應(yīng)報(bào)文,包含應(yīng)用控制,功能碼和內(nèi)部信號(hào)三個(gè)字段。這一字段指出報(bào)文的目的;(2)對(duì)象標(biāo)題:指明了其后的數(shù)據(jù)對(duì)象,包含Object段、Qualifier段和Range段;(3)數(shù)據(jù)段:由對(duì)象標(biāo)題指定的數(shù)據(jù)對(duì)象組成的數(shù)據(jù)。-應(yīng)用層第5頁,共32頁。傳輸層傳輸層在

4、應(yīng)用層形成的報(bào)文前加了一個(gè)字節(jié)長的傳輸控制單元,以便在應(yīng)用層報(bào)文長度大于249個(gè)字節(jié)時(shí)提供必要的多幀信息。第6頁,共32頁。數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層采用IEC8705系列的FT3幀格式,以傳輸層的報(bào)文為源數(shù)據(jù)進(jìn)行打包,形成最終報(bào)文并發(fā)送出去。 圖3中:(1)0 x05、0 x64為固定的2個(gè)字節(jié)的起始字符;(2)目的地址、源地址、CRC校驗(yàn)碼各為2個(gè)字節(jié)長。長度段、控制段各為1個(gè)字節(jié)長;(3)數(shù)據(jù)塊1(n1)中的源數(shù)據(jù)為16個(gè)字節(jié)長,剩余字節(jié)作為第n個(gè)(最后一個(gè))數(shù)據(jù)塊的源數(shù)據(jù);(4)協(xié)議為報(bào)頭單獨(dú)生成一組CRC校驗(yàn)碼,為后面的每個(gè)數(shù)據(jù)塊各生成一組CRC校驗(yàn)碼。第7頁,共32頁。對(duì)象(Object

5、)在DNP協(xié)議中,每一個(gè)數(shù)據(jù)類型應(yīng)稱為一個(gè)對(duì)象組(Object Group),每一個(gè)對(duì)象組中有對(duì)象組變量(Object Group Variation),不同對(duì)象組變量表明所對(duì)應(yīng)對(duì)象組中數(shù)據(jù)的不同組織方式。對(duì)于遙信、遙測(cè)等信息,DNP協(xié)議采用輪詢方式,而對(duì)于變位信息(如SOE數(shù)據(jù)),由發(fā)生數(shù)據(jù)變化的設(shè)備(即子站)主動(dòng)上報(bào),而不需主站去詢問。DNP 3.0用對(duì)象組(Object)和變體(Variation)來描述實(shí)際應(yīng)用中不同的數(shù)據(jù)及事件。每一個(gè)對(duì)象組都定義了一種數(shù)據(jù)類型,變體則描述了該數(shù)據(jù)類型的某種具體表現(xiàn)形式,它們都有規(guī)定的格式和編號(hào)。這些數(shù)據(jù)又可分配為4類,分別為:0類(class 0),

6、1類(class 1),2類(class 2),3類(class 3)。每一類數(shù)據(jù)可以分配不同的優(yōu)先級(jí)。其應(yīng)用層采用的面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu)保證它可以靈活采用以下工作方式:(1)主動(dòng)上報(bào)模式(unsolicited responses);(2)輪詢模式(pollresponse);(3)變位輪詢模式(polled reportbyexception);(4)對(duì)等傳輸模式(peer to peer)。第8頁,共32頁。DNP3 通訊結(jié)構(gòu)圖 Outstation MasterDNP3ApplicationPseudo Transport LayerDNP3 Link LayerDNP3 Users C

7、odeDNP3ApplicationPseudo Transport LayerDNP3 Link LayerDNP3 Users CodePhysical LayerBinary InputAnalogInputCounterBinary InputAnalogInputCounterBinaryOutputAnalogOutput第9頁,共32頁。Link Layer Balanced Transmission Request Message (User Data, Confirm Expected) (Acknowledgment) Response Message (User Data

8、, Confirm Expected) (Acknowledgment)MasterSlave第10頁,共32頁。DNP3.0功能碼簡述DNP3.0中的功能碼均為一個(gè)字節(jié)長的字段。在應(yīng)用層中,功能碼標(biāo)識(shí)著報(bào)文的目的,分為兩組:一組用于請(qǐng)求;一組用于響應(yīng)。在數(shù)據(jù)鏈路層中,功能碼(控制字)標(biāo)明幀的類型,原方用控制字功能碼向副方請(qǐng)求各種過程,副方用控制字功能碼指出報(bào)文是指示鏈路狀態(tài)或是對(duì)原方報(bào)文的響應(yīng)。原方和副方的功能碼取值均在0到15之間。每個(gè)功能碼均有其單獨(dú)的控制操作。第11頁,共32頁。Report-By-Exception Processing (DNP Events)Any DNP Sta

9、tic point can be configured to create DNP Event objects on value changes.Binary Input Change Events are created when a DNP Binary Input point changes state. Counter and Analog Change Event objects are created when the corresponding Static object changes by more than a programmable deadband value.Dea

10、dbands can be set on a per-object basis. Further, Event objects can be assigned as either Class 1, Class 2, or Class 3 on a per-object basis.Protocols like Modbus transmit all the data each time a device is polled.RBE only transmits changes, so fewer data points.Timestamps allow creation of Sequence

11、 of Events (SOE) log on Master Station.RBE can be polled or unsolicited.第12頁,共32頁。TIME SYNCHRONIZATION時(shí)間同步是由應(yīng)用層來處理的,但是必須使用數(shù)據(jù)鏈接層的特殊服務(wù)。應(yīng)用程序須通過發(fā)送適當(dāng)?shù)恼?qǐng)求或響應(yīng)開始時(shí)間同步。要同步主站和分站時(shí)間,參見下列各項(xiàng):1、主站發(fā)送延遲測(cè)試(Delay Measurement)請(qǐng)求到分站,主站標(biāo)記發(fā)送時(shí)間(MasterSendTime)在該請(qǐng)求的第一字節(jié)的第一位。2、分站接收延遲測(cè)試請(qǐng)求的第一字節(jié)的第一位,此時(shí)時(shí)間是RtuReceiveTime,這是當(dāng)前分站的時(shí)間。

12、3、分站發(fā)送響應(yīng)到延遲測(cè)試請(qǐng)求的第一字節(jié)第一位,此時(shí)時(shí)間是RtuSendTime。該響應(yīng)包含時(shí)間延遲對(duì)象,對(duì)象中的時(shí)間是RtuTurnAround,它等于RTU發(fā)送響應(yīng)時(shí)間減去RTU接收請(qǐng)求時(shí)間。第13頁,共32頁。4、主站接收分站響應(yīng)的第一字節(jié)的第一位,時(shí)間是MasterReceiveTime.5、主站可立即計(jì)算這一路線傳播的延遲時(shí)間,計(jì)算公式如下:6、主站發(fā)送寫請(qǐng)求的第一字節(jié)的第一位,時(shí)間是發(fā)送寫時(shí)間MasterSend。該寫請(qǐng)求包含時(shí)間與日期(Time and Date)對(duì)象,對(duì)象中的時(shí)間等于MasterSend加上延遲(MasterSend + Delay).這是主站要設(shè)定到分站的時(shí)間

13、。7、分站接收寫請(qǐng)求第一字節(jié)的第一位,此時(shí)時(shí)間是RtuReceive。8、分站處理寫請(qǐng)求,設(shè)置分站時(shí)鐘新的時(shí)間。運(yùn)算規(guī)則是:9、至此主站與分站同步完畢。注:時(shí)間同步采取的是分站到主站的傳播延遲和主站到分站的傳播延遲相等的方案。第14頁,共32頁。應(yīng)注意的事項(xiàng)1報(bào)文組織DNP30規(guī)約按照低字節(jié)在前,高字節(jié)在后的順序組織和發(fā)送報(bào)文。子站也必須按照低字節(jié)在前,高字節(jié)在后的順序解析報(bào)文,否則會(huì)造成校驗(yàn)錯(cuò)誤,導(dǎo)致整個(gè)報(bào)文的丟失。2校時(shí)在正常情況下,主站并不需要經(jīng)常對(duì)子站進(jìn)行校時(shí)。校時(shí)操作經(jīng)常發(fā)生在以下兩種情況:(1)主站重啟后,需要對(duì)全部子站進(jìn)行廣播校時(shí);(2)子站重啟后,在第一次響應(yīng)主站請(qǐng)求數(shù)據(jù)的報(bào)文

14、時(shí),在報(bào)文中置“校時(shí)”標(biāo)志,主站檢查到此標(biāo)志置位后,對(duì)該站校時(shí),然后重新請(qǐng)求數(shù)據(jù)。子站接收到校時(shí)報(bào)文后,將報(bào)文中的時(shí)間加上通道的延時(shí)存入時(shí)鐘芯片。校時(shí)命令的優(yōu)先級(jí)高于其他命令,有校時(shí)命令時(shí)優(yōu)先處理校時(shí)命令,然后再執(zhí)行其他請(qǐng)求。第15頁,共32頁。當(dāng)前程序的同步當(dāng)前程序的時(shí)間同步,使用IO SERVER可讀取到Time and Date對(duì)象,對(duì)其寫值即可立即同步RTU時(shí)間。如圖所示:第16頁,共32頁。DNP3協(xié)議在CW中的應(yīng)用由于DNP3協(xié)議在ControlWave中是由程序編制使用,并非是嵌入在固件中,所以其很多相關(guān)設(shè)置均可在程序中更改,本文介紹使用DNP3通信CW作從時(shí)的基本設(shè)置和DNP3

15、TCP方式通信的相關(guān)設(shè)置。第17頁,共32頁。DNP3特點(diǎn) 時(shí)間同步,帶時(shí)間標(biāo)簽的事件 多主對(duì)一從 支持主動(dòng)上報(bào)- RBE (Report-By-Exception) DNP 3.0與IEC 870.5-101的另一個(gè)重要區(qū)別是,能夠在多種通信網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)下支持自發(fā)響應(yīng)(unsolicited response)方式。DNP3四級(jí)數(shù)據(jù)召喚 Class 0 Class 1 Class 2 Class 3DNP3數(shù)據(jù)類型: Binary Input (DI)注:DNP3所描述的數(shù)據(jù)的結(jié)構(gòu)有別于我們通常所描述的,它是一種新的結(jié)構(gòu)體, 需要我們?cè)趹?yīng)用程序中做新的定義。TYPEDNPBinInpStru

16、ct:STRUCT ChangeFlags : UINT;(* Tracks reporting of changes to connected hosts - write 16#ffff to force exception reports *) Value : BOOL;(* Current value for point. *) PointEnabled : BOOL; (* TRUE if point enabled for collection *) EventClass : BYTE;(* Event class assigned to point (1 = Class 1, 2

17、= Class 2, 4 = Class 3, 0 = None) *) Flags : BYTE;(* Bits to define state for point - See above. *) CustomFlags : BYTE;(* Event type which can be executed - see above - set by firmware *) Spare1 : BYTE;END_STRUCT;END_TYPE第18頁,共32頁。 Analog Input (AI) Counter (PI) Binary Output (DO) Analog Output (AO)

18、DNP3 報(bào)文DNP3 Frame HeaderDNP3 數(shù)據(jù)變量Event analog data can be represented by these variations1.A 32-bit integer value with flag2.A 16-bit integer value with flag3.A 32-bit integer value with flag and event time4.A 16-bit integer value with flag and event time5.A 32-bit floating point value with flag6.A

19、32-bit floating point value with flag and event timeHeaderData SectionSyncLengthLinkcontrolDestinationAddressSourceAddressCRC第19頁,共32頁。7.A 64-bit floating point value with flag8.A 64-bit floating point value with flag and event time注:CW不支持7,8兩種數(shù)據(jù)變量。具體采用那種數(shù)據(jù)變量需在程序中定義。AI數(shù)據(jù)變量結(jié)構(gòu)體定義TYPEDNPAnaInpStruct:ST

20、RUCTValue : DINT;RealValue : REAL;ChangeFlags : UINT;ValueType : BYTE; (* Currently supported Analog Value Types (ValueType): TMWTYPES_ANALOG_TYPE_SHORT 0 TMWTYPES_ANALOG_TYPE_USHORT 1 TMWTYPES_ANALOG_TYPE_LONG 2 TMWTYPES_ANALOG_TYPE_ULONG 3 TMWTYPES_ANALOG_TYPE_CHAR 4 TMWTYPES_ANALOG_TYPE_UCHAR 5 T

21、MWTYPES_ANALOG_TYPE_SFLOAT 6 *)PointEnabled : BOOL; (* TRUE if point enabled for collection *)EventClass : BYTE; (* Event class assigned to point (1 = Class 1, 2 = Class 2, 4 =Class 3, 0 = None) *)Flags : BYTE; (* Bits to define state for point - See above. *)CustomFlags : BYTE;Spare1 : BYTE;END_STR

22、UCT;END_TYPE第20頁,共32頁。AI數(shù)據(jù)變量定義 (* Short Floating Point Analog Input (with flag) *)DNP_Slave_Sess_ConfigSTRUCT_NUM.Obj30DefaultVariation := BYTE#5; (* Data Object Tag: 30.5 *)(* Short Floating Point Analog Change Event *)DNP_Slave_Sess_ConfigSTRUCT_NUM.Obj32DefaultVariation := BYTE#5; (* Data Object

23、Tag: 32.5 *)(* Analog Input Deadband Floating Point (32-Bit Short Real) *)DNP_Slave_Sess_ConfigSTRUCT_NUM.Obj34DefaultVariation := BYTE#3;(* Data Object Tag: 34.3 *)第21頁,共32頁。數(shù)據(jù)類型相關(guān)設(shè)置在Data Types下的DNP_SETUP中設(shè)置傳點(diǎn)的個(gè)數(shù)限制:(該值必須大于或等于傳輸層所定義點(diǎn)的個(gè)數(shù))(* Slave data sizes *)DNP_SLAVE_BINARY_INPUT : ARRAY0.300設(shè)置DI點(diǎn)的

24、數(shù)量DNP_SLAVE_BINARY_OUTPUT : ARRAY0.10設(shè)置DO點(diǎn)的數(shù)量DNP_SLAVE_BINARY_COUNTER : ARRAY0.10DNP_SLAVE_FROZEN_COUNTER : ARRAY0.10DNP_SLAVE_ANALOG_INPUT : ARRAY0.300設(shè)置AI點(diǎn)的數(shù)量DNP_SLAVE_ANALOG_INPUT_DBAND : ARRAY0.300設(shè)置AI死區(qū)點(diǎn)的數(shù)量DNP_SLAVE_ANALOG_OUTPUT : ARRAY0.10設(shè)置AO點(diǎn)的數(shù)量DNP_SLAVE_STRING_POINT : ARRAY0.5DNP_SLAVE_VIR

25、TUAL_TERMINAL : ARRAY0.5第22頁,共32頁。虛擬傳輸層設(shè)置在全局變量組DNP Structures或DNP_IO程序組各輸入輸出功能塊中設(shè)置所要傳點(diǎn)的數(shù)量:變量:DNP_MAX_SLV_BIN_INP設(shè)置DI點(diǎn)的數(shù)量;DNP_MAX_SLV_BIN_OUT設(shè)置DO點(diǎn)的數(shù)量;DNP_MAX_SLV_AI設(shè)置AI點(diǎn)的數(shù)量;DNP_MAX_SLV_AI_DEAD設(shè)置AI死區(qū)點(diǎn)的數(shù)量;DNP_MAX_SLV_AO設(shè)置AO點(diǎn)的數(shù)量;這些變量在各自輸入/出的功能塊中均能夠找到。在全局變量組DNP Status Defines中設(shè)置模擬量的數(shù)據(jù)類型:變量DNP_ANALOG_TYPE

26、_SFLOAT初值設(shè)BYTE#6為REAL型;設(shè)BYTE#2為DINT型。第23頁,共32頁。當(dāng)虛擬傳輸層對(duì)點(diǎn)的個(gè)數(shù)定義大于數(shù)據(jù)類型中同類型點(diǎn)的數(shù)量限制時(shí),將會(huì)碰到如下情況,而使程序無法運(yùn)行。所以各類型點(diǎn)的數(shù)量必須在數(shù)據(jù)類型工作表中定義完全。第24頁,共32頁。點(diǎn)的數(shù)量限制The standard DNP and DNP_SETUP data type worksheets contain definitions for the structures and arrays mentioned here.Data TypeStructure TypeArray TypeSize/MaxBinar

27、y InputsDNPBinInpStructDNP_SLAVE_BINARY_INPUT8/8192Binary OutputsDNPBinOutStructDNP_SLAVE_BINARY_OUTPUT20/3276Binary Output Pattern MaskDNPBinOutPatternMaskStructBinary CountersDNPBinCntStructDNP_SLAVE_BINARY_COUNTER12/5461Frozen CountersDNPFrzCntStructDNP_SLAVE_FROZEN_COUNTER20/3276Analog InputsDNP

28、AnaInpStructDNP_SLAVE_ANALOG_INPUT16/4096Analog Input DeadbandsDNPAnaInpDbStructDNP_SLAVE_ANALOG_INPUT_DBAND12/5461Analog OutputsDNPAnaOutStructDNP_SLAVE_ANALOG_OUTPUT16/4096String PointsDNPStringPointStructDNP_SLAVE_STRING_POINT92/712Virtual Terminal PointsDNPVirtTermStructDNP_SLAVE_VIRTUAL_TERMINA

29、LDepends第25頁,共32頁。DNP傳輸模式設(shè)定全局變量組DNP Mode Values或在Application_Setup功能塊中設(shè)定:串口作從MODE_DNP_SLAVE:33;串口作主MODE_DNP_MASTER:32;以太網(wǎng)作從MODE_DNP_TSLAVE:59;以太網(wǎng)作主MODE_DNP_TMASTER:58。其中串口程序和以太網(wǎng)作主程序還沒有做上去,只有以太網(wǎng)作從可用。第26頁,共32頁。*號(hào)表示SCADA序號(hào),從0開始。應(yīng)用層設(shè)置在全局變量組DNP Setup 或Application_Setup功能塊中可設(shè)定與SCADA通信需要設(shè)定固定的IP地址和TCP端口等,可設(shè)

30、8個(gè)SCADA通信連接,每個(gè)需要設(shè)置的幾個(gè)重要參數(shù)是:賦值設(shè)定作從時(shí)Channel的id:DNP_Slave_Sess_Valid*.ChannelId;賦值設(shè)定作從時(shí)Session的id:DNP_Slave_Sess_Valid*.SessionID;賦值設(shè)定作從時(shí)ConfigSession的id:DNP_Slave_Sess_Valid*.ConfigSessionID;針對(duì)作從的單個(gè)本地控制器, RTUDNPAddress為單一固定值。設(shè)定SCADA設(shè)備的IP地址:DNP_Slave_Sess_Valid*.IPAddress;設(shè)定對(duì)應(yīng)SCADA設(shè)備的目標(biāo)地址,即SCADA軟件中需要設(shè)置

31、的Source地址:DNP_Slave_Sess_Valid*.DestinationAddress。其中 為相同值,在功能塊中賦值設(shè)定。TCP_PORT設(shè)定網(wǎng)絡(luò)通信的端口,其默認(rèn)值是20000,慶咸管線項(xiàng)目用的是5000,其它值亦可,但不能設(shè)Modbus的默認(rèn)端口502。第27頁,共32頁。點(diǎn)的編號(hào)與排列DNP3中點(diǎn)的編號(hào)從0開始,以1為增量往后累加。(編號(hào)即是地址)當(dāng)前結(jié)構(gòu)程序中,模擬量點(diǎn)有DINT型和REAL型兩種,可通過改變數(shù)據(jù)結(jié)構(gòu)來使用其它幾種類型的點(diǎn)。此圖沒有添加DINT型量,可在功能塊中將變量value改成輸入型即可使用。每個(gè)點(diǎn)均可設(shè)置其對(duì)應(yīng)死區(qū)點(diǎn)。第28頁,共32頁。第29頁,

32、共32頁。Glossary of TermsapplicationA piece of software (a program) consisting of one or more processes and supporting functions.BinaryA number system having only two symbols (1 and 0), and where values are expressed in the base two number system.BitAbbreviation of binary digit. The smallest unit of information in a binary system. Has a value of either one (1) or zero (0).MasterThe client or h

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論