基本指令及應用_第1頁
基本指令及應用_第2頁
基本指令及應用_第3頁
基本指令及應用_第4頁
基本指令及應用_第5頁
已閱讀5頁,還剩75頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第七章S7-200系列PLC基本邏輯指令及其程序編制學習目標:熟練掌握梯形圖的編程方法,掌握基本指令中的常用指令,了解和會用其他指令。通過對本章的學習,做到可以根據(jù)需要編制出結(jié)構(gòu)較簡單的控制程序。第一節(jié)S7-200系列可編程控制器基本指令S7-200PLC的基本指令多用于開關量邏輯控制,本節(jié)著重介紹梯形圖指令,并討論基本指令的功能及編程方法。

編程時,應注意各操作數(shù)的數(shù)據(jù)類型及數(shù)值范圍。CPU對非法操作數(shù)將生成編譯錯誤代碼。基本邏輯指令基本邏輯指令一般指位邏輯指令、定時器指令及計數(shù)器指令。位邏輯指令又含觸點指令、線圈指令、邏輯堆棧指令、RS觸發(fā)器指令等。這些指令處理的對象大多為位邏輯量,主要用于邏輯控制類程序中。位邏輯指令1.標準觸點指令標準觸點指令有LD、LDN、A、AN、O、ON、NOT、=指令(語句表)。這些指令對存儲器位在邏輯堆棧中進行操作。由于堆棧存儲單元數(shù)的限制,語句表中A、O、AN、ON指令最多可以連用有限次。同樣,梯形圖中,最多一次串聯(lián)或并聯(lián)的觸點數(shù)也有一定限制,功能框圖中AND和OR指令盒中輸入的個數(shù)也不能超過這個范圍

標準觸點指令中如果有操作數(shù),則為BOOL型,操作數(shù)的編址范圍可以是:I、Q、M、SM、T、C、S、VL。(1)裝入常開指令:LD

在梯形圖中,每個從左母線開始的單一邏輯行、每個程序塊(邏輯梯級)的開始、指令盒的輸入端都必須使用LD和LDN這兩條指令。以常開觸點開始時用LD指令,以常閉觸點開始時則用LDN指令。本指令對各類內(nèi)部編程元件的常開觸點都適用。指令格式:LDbit;例:LDI0.2(2)裝入常閉指令:LDN每個以常閉觸點開始的邏輯行都使用這一指令,各類內(nèi)部編程元件的常閉觸點都適用。指令格式:LDNbit;例:LDNI0.2(3)與常開指令:A即串聯(lián)一個常開觸點。由于堆棧存儲器數(shù)量的限制,梯形圖中,一次最多可以有七個常開觸點串聯(lián)。指令格式:Abit;

例:

AM2.4(4)與常閉指令:AN即在梯形圖中串聯(lián)一個常閉觸點。在一個邏輯行中,最多可以連用六次。指令格式:ANbit;

例:

ANM2.4(5)或常開指令:O即并聯(lián)一個常開觸點。在梯形圖中,一次最多可以有七個觸點相互并聯(lián)。指令格式:Obit;例:OM2.6(6)或常閉指令:ON即并聯(lián)一個常閉觸點。在梯形圖中,一次最多可以連用六次。指令格式:ONbit;例:ONM2.6(7)輸出指令:=將邏輯運算結(jié)果輸出到指定存儲器位或輸出繼電器對應的映像寄存器位,以驅(qū)動本位線圈。指令格式:=bit;例:=Q2.6程序?qū)嵗鹤屑毐容^不同編程工具的區(qū)別與聯(lián)系。LDI0.0//裝入常開觸點OI0.1//或常開觸點AI0.2//與常開觸點=Q0.0//輸出觸點,

//如果本梯級中將I0.1的觸點改

//為Q0.0的常開觸點,則成為電

//機起動停止控制環(huán)節(jié)的梯形圖

LDNI0.0//裝入常閉觸點ONI0.1//或常閉觸點ANI0.2//與常閉觸點=Q0.1///輸出觸點

LDI0.0//OI0.1//AI0.2//NOT//取非,即輸出反相=Q0.3//LDI0.0//OI0.1//AI0.2//=Q0.0//

LDNI0.0//ONI0.1//ANI0.2//=Q0.1//

LDI0.0//OI0.1//AI0.2//NOT//=Q0.3//標準觸點FBD例2.正負跳變指令

正負跳變指令在梯形圖中以觸點形式使用。用于檢測脈沖的正跳變(上升沿)或負跳變(下降沿),利用跳變讓能流接通一個掃描周期,即可以產(chǎn)生一個掃描周期長度的微分脈沖,常用此脈沖觸發(fā)內(nèi)部繼電器線圈。(1)正跳變指令:EU正跳變觸點檢測到脈沖的每一次正跳變后,產(chǎn)生一個微分脈沖。指令格式:EU(無操作數(shù))(2)負跳變指令:ED負跳變觸點檢測到脈沖的每一次負跳變后,產(chǎn)生一個微分脈沖。指令格式:ED(無操作數(shù))正、負跳變觸點指令編程舉例如下圖所示。

正、負跳變觸點指令編程一個掃描周期長度

3.置位和復位指令

置位即置1,復位即置0。置位和復位指令可以將位存儲區(qū)的某一位開始的一個或多個(最多可達255個)同類存儲器位置1或置0。這兩條指令在使用時需指明三點:操作性質(zhì)、開始位和位的數(shù)量。各操作數(shù)類型及范圍如下表所示。

置位和復位指令操作數(shù)類型及范圍

操作數(shù)范圍

類型

位bitI,Q,M,SM,TC,V,S,LBOOL型

數(shù)量NVB,IB,QB,MB,SMB,LB,SB,AC,*VD,*AC,*LDBYTE型(最大255)(1)置位指令:S將位存儲區(qū)的指定位(位bit)開始的N個點置位。指令格式:Sbit,N;例:SQ0.0,1(2)復位指令:R將位存儲區(qū)的指定位(位bit)開始的N個點復位。當用復位指令時,如果是對定時器T位或計數(shù)器C位進行復位,則定時器或計數(shù)器位被復位,同時,定時器或計數(shù)器的當前值被清零。指令格式:Rbit,N;例:RQ0.2,3置位和復位指令應用編程序舉例如下圖所示。立即操作指令立即指令允許對輸入和輸出點進行快速和直接存取。當用立即指令讀取輸入點的狀態(tài)時,相應的輸入映像寄存器中的值并未發(fā)生更新;用立即指令訪問輸出點時,訪問的同時,相應的輸出寄存器的內(nèi)容也被刷新。只有輸入繼電器I和輸出繼電器Q可以使用立即指令。1.立即觸點指令

在每個標準觸點指令的后面加“I”。指令執(zhí)行時,立即讀取物理輸入點的值,但是不刷新相應映像寄存器的值。這類指令包括:LDI、LDNI、AI、ANI、OI和ONI。下面以LDI指令為例。指令格式:LDIbit(bit只能是I類型)例:LDII0.22.立即輸出指令=I,立即輸出指令。用立即指令訪問輸出點時,把棧頂值立即復制到指令所指定的物理輸出點,同時,相應的輸出映像寄存器的內(nèi)容也被刷新。指令格式:=Ibit(bit只能是Q類型)例:=IQ0.23.立即置位指令SI,立即置位指令。用立即置位指令訪問輸出點時,從指令所指出的位(bit)開始的N個(最多為128個)物理輸出點被立即置位,同時,相應的輸出映像寄存器的內(nèi)容也被刷新。指令格式:SIbit,N;

例:SIQ0.0,24.立即復位指令RI,立即復位指令。用立即復位指令訪問輸出點時,從指令所指出的位(bit)開始的N個(最多為128個)物理輸出點被立即復位,同時,相應的輸出映像寄存器的內(nèi)容也被刷新。各操作數(shù)類型及范圍如表5-9所示。指令格式:RIbit,N;例:RIQ0.0,1表5-10

立即置位和立即復位指令操作數(shù)類型及范圍

操作數(shù)范圍

類型

位bitQBOOL型

數(shù)量NVB,IB,QB,MB,SMB,LB,SB,AC,*VD,*AC,*LD,常數(shù)

BYTE型(最大128)應用舉例:

LDI0.0//裝入常開觸點

=Q0.0//輸出觸點,非立即

=IQ0.1//立即輸出觸點

SIQ0.2,1//從Q0.2開始的1個觸點被立即置1

LDII0.0//立即輸入觸點指令

=Q0.3//輸出觸點,非立即立即指令程序STL指令對較復雜梯形圖的描述方法在較復雜梯形圖中,觸點的串、并聯(lián)關系不能全部用簡單的與、或、非邏輯關系描述。在語句表指令系統(tǒng)中設計了電路塊的與操作和電路塊的或操作指令,以及棧操作指令,下面對這類指令進行分析。邏輯堆棧指令S7-200可編程序控制器使用一個邏輯堆棧來分析控制邏輯,用語句表編程時要根據(jù)這一堆棧邏輯進行組織程序,用相關指令來實現(xiàn)堆棧操作,用梯形圖和功能框圖時,程序員不必考慮主機的這一邏輯,這兩種編程工具自動地插入必要的指令來處理各種堆棧邏輯操作。S7-200可編程序控制器的主機邏輯堆棧結(jié)構(gòu)如表7-1所示。邏輯堆棧結(jié)構(gòu)是由九個堆棧存儲器位組成的串聯(lián)堆棧,棧頂用于存儲邏輯運算的結(jié)果,下面的8位用于存儲中間運算結(jié)果。堆棧中的數(shù)據(jù)按“先進后出”的原則存取。進棧時,數(shù)據(jù)由棧頂壓入,堆棧中原來所存的數(shù)據(jù)被串行下移一格,如果原來STACK(堆疊)8中存有數(shù)據(jù),則這數(shù)據(jù)被推出堆棧而自動丟失。出棧時,數(shù)據(jù)從棧頂被取出,所有數(shù)據(jù)串行上移一格,STACK8中隨機地裝入一個數(shù)值。表7-1

邏輯堆棧結(jié)構(gòu)堆棧結(jié)構(gòu)名稱說明S0STACK0第一個堆棧

S1STACK1第二個堆棧S2STACK2第三個堆棧S3STACK3第四個堆棧S4STACK4第五個堆棧S5STACK5第六個堆棧S6STACK6第七個堆棧S7STACK7第八個堆棧S8STACK8第九個堆棧棧頂1、ALD指令(棧裝載與)AndLoad棧裝載與指令對堆棧中第一層及第二層的值進行邏輯與操作,結(jié)果放入棧頂。執(zhí)行完該指令后,堆棧深度減1.2、OLD(棧裝載或指令)ORLoad棧裝載或指令對堆棧中第一層及第二層的值進行邏輯或操作,結(jié)果放入棧頂。執(zhí)行完該指令后,堆棧深度減1。(1)塊“或”操作指令格式:OLD(無操作元件)塊“或”操作,是將梯形圖中相鄰的兩個以LD起始的電路塊并聯(lián)起來。(2)塊“與”操作指令格式:ALD(無操作元件)塊“與”操作是將梯形圖中相鄰的兩個以LD起始的電路塊串聯(lián)起來。棧裝載與指令和棧裝載或指令的操作過程如下圖所示,圖中“x”表示不確定值。

棧裝載與指令和棧裝載或指令的操作過程

3.LPS(邏輯推入棧指令)LogicPushLPS,邏輯推入棧指令(分支或主控指令)。用于復制棧頂?shù)闹挡⑦@個值推入棧頂,原堆棧中各級棧值依次下壓一級。在梯形圖中的分支結(jié)構(gòu)中,用于生成一條新的母線,左側(cè)為主控邏輯塊時,第一個完整的從邏輯行從此處開始。注意:使用LPS指令時,本指令為分支的開始,以后必須有分支結(jié)束指令LPP。即LPS與LPP指令必須成對出現(xiàn)。4、LPP(邏輯彈出棧指令)LogicPop

LPP,邏輯棧彈出指令(分支結(jié)束或主控復位指令)。堆棧作彈出棧操作,將棧頂值彈出,原堆棧中各級棧值依次上彈一級,堆棧第二級的值成為新的棧頂值。在梯形圖中的分支結(jié)構(gòu)中,用于將LPS指令生成的一條新母線進行恢復。應注意,LPS與LPP必須配對使用。5、LRD(邏輯讀棧指令)LogicRead

LRD,邏輯讀棧指令。把堆棧中第二級的值復制到棧頂。堆棧沒有推入棧或彈出棧操作,但原棧頂值被新的復制值取代。在梯形圖中的分支結(jié)構(gòu)中,當左側(cè)為主控邏輯塊時,開始第二個和后邊更多的從邏輯塊。應注意,LPS后第一個和最后一個從邏輯塊不用本指令。6.LDS(裝入堆棧指令)編程時使用較少LDS,裝入堆棧指令。復制堆棧中的第N級的值到棧頂。原棧中各級棧值依次下壓一級,棧底值丟失。指令格式:LDSn例:LDS5LPS、LRD、LPP、LDS指令操作過程如下圖所示。

LPS、LRD、LPP、LDS指令的操作過程LDI0.0//裝入常開觸點OI2.2//或常開觸點LDI0.1//被串的塊開始LDI2.0//被并路開始AI2.1//與常開觸點OLD//棧裝載或,并路結(jié)束ALD//棧裝載與,串路結(jié)束=Q5.0//輸出觸點LDI0.0//裝入常開觸點LPS//邏輯推入棧,主控AI0.5//與常開觸點=Q7.0//輸出觸點LRD//邏輯讀棧,新母線LDI2.1//裝入常開觸點OI1.3//或常開觸點ALD//棧裝載與=Q6.0//輸出觸點LPP//邏輯彈出棧,母線復原LDI3.1//裝入常開出觸點OI2.0//或常開觸點ALD//棧裝載與=Q1.3//輸出觸點

取非觸點指令和空操作指令1.取非觸點指令NOT,取非觸點指令。用來改變能流的狀態(tài)。能流到達取非觸點時,能流就停止;能流未到達取非觸點時,能流就通過。在語句表中,取非觸點指令對堆棧的棧頂作取反操作,改變棧頂值。棧頂值由0變?yōu)?,或者由1變?yōu)?。取非觸點指令無操作數(shù)。2.空操作指令NOP,空操做指令。使能輸入有效時,執(zhí)行空操作指令。空操做指令不影響用戶程序的執(zhí)行,操作數(shù)N是標號,是一個0~225的常數(shù)。LDI0.0//使能輸入NOP30//空操作指令,標號為30

三、定時器指令

S7-200系列PLC的定時器是對內(nèi)部時鐘累計時間增量計時的。每個定時器均有一個16位的當前值寄存器用以存放當前值(16位符號整數(shù));還有一位狀態(tài)位,反應其觸點的狀態(tài)。

一.工作方式分類

S7-200系列PLC定時器按工作方式分為三大類。通電延時型(TON)、有記憶的通電延時型(保持型)(TONR)、斷電延時型(TOF)等三類。二.時基標準分類定時器的計時設定與定時器的分辨率有關。從工作機理上講,定時器實際上是對時間間隔計數(shù)的計數(shù)器,時間間隔的長短形成了定時器的分辨率(時基)。按時基脈沖分為1ms、10ms、100ms三種類型,不同的時基標準,定時精度、定時范圍和定時器的刷新方式不同。表7-3定時器號和分辨率(時基)定時器類型分辯率/ms計時范圍/s定時器號TONTOF132.767T32,T9610327.67T33~T36,T97~T1001003276.7T37~T63,T101~T255TONR132.767T0,T6410327.67T1~T4,T65~T681003276.7T5~T31,T69~95定時時間的計算:T=PT?S???(T為實際定時時間,PT為預設值,S為分辨率等級)例如:TON指令用定時器T33,預設值為125,則實際定時時間T=125?10=1250ms三.定時器指令格式通電延時定時器:TONTXX,PT有記憶的通電延時定時器:TONRTXX,PT斷電延時定時器:TOFTXX,PT1.通電延時定時器

通電延時定時器在使能輸入IN接通時開始計時,當前值線性增大。當定時器的當前值大于等于PT端的設定值時,該定時器位被置位。當前值達到設定值后,定時器繼續(xù)計時,一直計到最大值32767。當使能輸入IN斷開時,定時器自動復位,當前值被清零,定時器位被復位。INTONPTT37I0.0T37()Q0.0Network1Network210T37(當前值)當前值=10T37(位)

Q0.01s最大值32767I0.0LDI0.0TONT37,10LDT37=Q0.02.有記憶的通電延時定時器

有記憶的通電延時定時器在使能輸入IN接通時開始計時,當前值線性增大。當定時器的當前值大于等于PT端的設定值時,該定時器位被置位。當使能輸入IN斷開時,其當前值保持不變。使能輸入再次接通時,當前值從上次的保持值繼續(xù)計數(shù),當前值達到設定值后,定時器繼續(xù)計時,一直計到最大值32767。只能用復位指令(R)來復位TONR,使它的當前值變?yōu)?。INTONRPTT1I0.0T1()Q0.0Network1Network2100T1(當前值)當前值=10T1(位)

Q0.0I0.0LDI0.0TONRT1,100LDT1=Q0.0LDI0.1RT1T1(R)I0.1Network311s0.7s0.3sI0.1(復位)3.斷電延時定時器指令

斷電延時定時器用于在使能輸入IN斷開后延時一段時間斷開輸出。當使能輸入IN接通時,定時器位立即接通,并把當前值設為0。當輸入斷開時,從輸入信號斷開的負跳變啟動計時,當定時器的當前值大于等于PT端的設定值時,定時器位斷開,且停止當前值計時。

INTOFPTT33I0.0T33()Q0.0Network1Network2100T33(位)

Q0.0T33(當前值)當前值=1001sI0.0LDI0.0TOFT33,100LDT33=Q0.0例1:用定時器設計輸出脈沖的周期和占空比可調(diào)的振蕩電路(閃爍電路)。例2:電動機星形-三角形降壓啟動SB1I0.0停止按鈕SB2I0.1啟動按鈕KM1Q0.1定子電源KM2Q0.2星形KM3Q0.3三角形I/O端子表時序圖I0.1I0.0Q0.1Q0.2Q0.3梯形圖Q0.1例2:某鍋爐鼓風機和引風機的控制時序如下圖,要求鼓風機比引風機晚8s啟動,引風機比鼓風機晚18s停機,請設計梯形圖控制程序。I0.0I0.1Q0.1Q0.28s18s啟動停止引風機鼓風機作業(yè):設計一個3臺電動機的順序控制程序(1)啟動操作:按啟動按鈕SB1,電動機M1啟動,10s后電動機M2自動啟動,有經(jīng)過8s,電動機M3自動啟動。(2)停止操作:按停止按鈕SB2,電動機M3立即停車;5s后,電動機M2自動停車,又經(jīng)過4s,電動機M1自動停車。應用定時器指令應注意的幾個問題①不能把一個定時器號同時用作斷開延時定時器(TOF)和接通延時定時器(TON)。②使用復位(R)指令對定時器復位后,定時器位為“0”,定時器當前值為“0”。③有記憶接通延時定時器(TONR)只能通過復位指令進行復位。④對于關斷延時定時器(TOF),需要輸入端有一個負跳變(由on到off)的輸入信號啟動計時。⑤不同精度的定時器,它們當前值的刷新周期是不同的,具體情況如下:1)1ms分辨率定時器系統(tǒng)每隔1ms刷新一次,與掃描周期及程序處理無關,即采用中斷刷新方式。

2)10ms分辨率定時器系統(tǒng)在每個掃描周期開始時自動刷新,由于每個掃描周期只刷新一次,故在每次程序處理期間,其當前值為常數(shù)。

3)100ms分辨率定時器

在定時器指令執(zhí)行時被刷新。

例:在圖a中,T32定時器1ms更新一次。當定時器當前值100在圖示A處刷新,Q0.0可以接通一個掃描周期,若在其他位置刷新,Q0.0則用永遠不會接通。而在A處刷新的概率是很小的。若改為圖b,就可保證當定時器當前值達到設定值時,Q0.0會接通一個掃描周期。圖a同樣不適合10ms分辨率定時器。

1ms定時器編程在子程序和中斷程序中不易使用100ms定時器。子程序和中斷程序不是每個掃描周期都執(zhí)行的,那么在子程序和中斷程序中的100ms定時器的當前值就不能及時刷新,造成時基脈沖丟失,致使計時失準;在主程序中,不能重復使用同一個100ms的定時器號,否則該定時器指令在一個掃描周期中多次被執(zhí)行,定時器的當前值在一個掃描周期中多次被刷新。這樣,定時器就會多計了時基脈沖,同樣造成計時失準。因而,100ms定時器只能用于每個掃描周期內(nèi)同一定時器指令執(zhí)行一次,且僅執(zhí)行一次的場合。100ms定時器的編程例子如下圖所示。

100ms定時器的應用2.計數(shù)器指令計數(shù)器用來累計輸入脈沖的次數(shù)。計數(shù)器也是由集成電路構(gòu)成,是應用非常廣泛的編程元件,經(jīng)常用來對產(chǎn)品進行計數(shù)。計數(shù)器與定時器的結(jié)構(gòu)和使用基本相似,編程時輸入它的預設值PV(計數(shù)的次數(shù)),計數(shù)器累計它的脈沖輸入端電位上升沿(正跳變)個數(shù),當計數(shù)器達到預設值PV時,發(fā)出中斷請求信號,以便PLC作出相應的處理。計數(shù)器指令有3種:增計數(shù)CTU、增減計數(shù)CTUD和減計數(shù)CTD。指令操作數(shù)有4方面:編號、預設值、脈沖輸入和復位輸入。(1)編號:用計數(shù)器名稱和它的常數(shù)編號(最大255)來表示,即Cxxx,如:C6。C6不僅僅是計數(shù)器的編號,它還包含兩方面的變量信息:計數(shù)器位和計數(shù)器當前值。計數(shù)器位:表示計數(shù)器是否發(fā)生動作的狀態(tài),當計數(shù)器的當前值達到預設值PV時,該位被置為“1”。計數(shù)器當前值:存儲計數(shù)器當前所累計的脈沖個數(shù),它用16位符號整數(shù)(INT)來表示,故最大計數(shù)值為32767。(2)預設值PV:數(shù)據(jù)類型為INT型。尋址范圍可以是VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常數(shù)。

(3)脈沖輸入:BOOL型,可以是I、Q、M、SM、T、C、V、S、L和能流。

(4)復位輸入:與脈沖輸入同類型和范圍(1)增計數(shù)器指令:CTU

首次掃描,定時器位OFF,當前值為0。在增計數(shù)器的計數(shù)輸入端(CU)脈沖輸入的每個上升沿,計數(shù)器計數(shù)1次,當前值增加1個單位,當前值達到預設值時,計數(shù)器位ON,當前值繼續(xù)計數(shù)到32767停止計數(shù)。復位輸入有效或執(zhí)行復位指令,計數(shù)器自動復位,即計數(shù)器位OFF,當前值為0。

指令格式:CTUCxxx,PV;例:CTUC20,3填“計數(shù)器器號”,如:C30LDI0.0//計數(shù)脈沖信號輸入端LDI0.1//復位信號輸入端CTUC20,+3//增計數(shù),計數(shù)設定值為3個脈沖

LDC20//裝入計數(shù)器觸點=Q0.0//輸出觸點增計數(shù)程序及時序(2)增減計數(shù)器指令:

溫馨提示

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

評論

0/150

提交評論