西門子S7-200自由口通信實(shí)用文檔_第1頁
西門子S7-200自由口通信實(shí)用文檔_第2頁
西門子S7-200自由口通信實(shí)用文檔_第3頁
西門子S7-200自由口通信實(shí)用文檔_第4頁
西門子S7-200自由口通信實(shí)用文檔_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、主題:應(yīng)用探討一S7-200自由口通信一發(fā)帖整理 強(qiáng)大而靈活的自由口通信能力,是S7-200系統(tǒng)的一個(gè)重要特點(diǎn)。S7-200 CPU 的RS485通信口提供了建立在串行通信基礎(chǔ)上的“自由”通信能力, 數(shù)據(jù)傳輸協(xié) 議完全由用戶程序決定。通過自由口方式, S7-200可以與串行打印 機(jī)、條碼閱 讀器等通信。而S7-200的編程軟件也提供了一些通信協(xié)議庫,如 USS協(xié)議庫和 MODBUS RTU從站協(xié)議庫,它們實(shí)際上也使用了自由口通信功能。開設(shè)本話題的目的,在于澄清自由口通信的基本概念,強(qiáng)調(diào)使用中的要點(diǎn),討論應(yīng)用的常見問題。經(jīng)過此次集中交流,解決了如下一些問題:1. 自由口通信基本概念2. 自由口通

2、信編程指令的使用和技巧3. 自由口通信常見問題4. 產(chǎn)品功能建議更多信息請(qǐng)參考下面文檔?!跋螺d中心”參考文檔:文檔編號(hào)“ 1109582' S7-200可編程控制器系統(tǒng)手冊(cè)文檔編號(hào)“ A0136' 西門子 S7- 200?L0G0!?SIT0P 參考以下為本次探討的發(fā)帖整理,查看原始交流內(nèi)容請(qǐng)點(diǎn)擊 此處。1. 自由口通信基本概念(1樓5樓)2. 自由口通信編程指令的使用和技巧 (6樓一一15樓)3. 自由口通信容易犯的錯(cuò)誤 (16樓一一24樓)產(chǎn)品功能建議(25樓一一27樓)quote:以下是引用BABL在2011-01-20 15:17:08 的發(fā)言:我回來了,項(xiàng)目終于做完了

3、,可以回家過年了,:)。自由口通信真是折騰的我好慘啊,簡單回顧一下,希望對(duì)像我這樣的菜鳥有些借 鑒作用。先感謝一下西門子論壇和熱線,沒少騷擾他們。在完全沒有準(zhǔn)備的情況下甲方又加進(jìn)一個(gè)儀表, 做什么自有口通信,暈阿!沒辦 法,迎著上吧!網(wǎng)上搜資料,看手冊(cè),越看越糊涂!時(shí)間緊迫,還是直接上手做吧首 先是把PLC和儀表連接起來,可儀表的口是rs232的,熱線工程師告訴我得 做rs232/485的轉(zhuǎn)換,打車到市場上買個(gè)轉(zhuǎn)換器(打車錢比設(shè)備錢還多,可見現(xiàn)場多么偏僻阿),聽賣轉(zhuǎn)換器的老板給我分析了一下每種的區(qū)別一一不光是價(jià) 格的區(qū)別,說實(shí)在的,當(dāng)時(shí)非常慚愧,老板懂的比我多多了。買回來后自己動(dòng)手焊線,一個(gè)人

4、費(fèi)了九牛二虎之力,焊的那個(gè)慘樣就不用說了, 還好有殼可以包裝一下。焊好了,實(shí)驗(yàn)一下效果吧,不知到怎么做了,打電話。熱線工程師告訴我找個(gè)串口調(diào)試工具,連接到pc機(jī)上測試。在串口調(diào)試工具上發(fā)一串?dāng)?shù),在 200上收,ok!高興壞了,沒白忙活。硬件上應(yīng)該沒問題了,接下來開始做程序了。先得理解儀表的協(xié)議,弄清了儀表先要收到請(qǐng)求數(shù)據(jù)的命令,然后根據(jù)命令做出 響應(yīng)。同樣,先用串口調(diào)試工具和儀表連接進(jìn)行通信測試,還算聰明吧,:)!然后開始在200里編寫收發(fā)程序,開始時(shí)整個(gè)思路都是亂的,無從下手。就把 200手冊(cè)上的例子程序整個(gè)抄上,在 cpu224的兩個(gè)接口間進(jìn)行通信實(shí)驗(yàn)。經(jīng)過不停的實(shí)驗(yàn),終于一點(diǎn)一點(diǎn)地理解了

5、控制字節(jié)、 控制參數(shù)的含義,怎么設(shè)置 接收結(jié)束條件,怎么使用中斷、怎么控制接收和發(fā)送等等。ok,開始真正地與儀表通信了發(fā)請(qǐng)求命令,收數(shù)據(jù),可收到的數(shù)據(jù)是 ASCII碼,得進(jìn)行數(shù)據(jù)轉(zhuǎn)換。根據(jù)大俠們的提醒,經(jīng)過實(shí)驗(yàn)知道了怎么將 ASCII碼轉(zhuǎn)換為實(shí)際的工程數(shù)據(jù)。到此基本結(jié)束了,雖然說著好像也沒什么,但只有我最了解其中的痛苦,不停地 實(shí)驗(yàn),不停地修改阿!后面在實(shí)際運(yùn)行中又遇到了有時(shí)通信中端的問題, 將雙絞線的屏蔽接到地上后暫 時(shí)還沒出現(xiàn)問題??偨Y(jié)一下,個(gè)人認(rèn)為作自由口通信需要做好以下幾方面工作:1、最主要的是多動(dòng)手,光看資料是沒有用的,只有自己親自去動(dòng)手實(shí)驗(yàn)一下才 能發(fā)現(xiàn)問題和幫助理解。2、做實(shí)驗(yàn)是

6、找個(gè)串口調(diào)試工具(我用的是 sscom32)是必須的,可以幫助你測 試你的通信線,調(diào)試你的程序,盡量不要直接與設(shè)備進(jìn)行通信, 通信不上不好分 析原因。3、我認(rèn)為200手冊(cè)上的例子程序非常好,基本的處理方法和編程方法都涉及到 了,可以根據(jù)你的需要做修改,當(dāng)然首先要充分地理解他。4、遇到不太容易理解的,或有問題的,多和別人交流一下,從中可以得到不同 的思路。提前給西門子和壇子里的專家們拜年了!1. 自由口通信基本概念(1樓5樓)quote:以下是引用LaoHuai在2010-12-24 08:29:48 的發(fā)言:quote:以下是引用 happy Julia 在 2010-12-23 21:58:

7、54的發(fā)言:以前很少用自由口通信,但項(xiàng)目里要用呀,正在學(xué)習(xí),就接到邀請(qǐng)了。請(qǐng)教各位大俠:S7-200自由口能支持的最高速率是多少呀,我希望通信能快點(diǎn)。還有它的數(shù)據(jù)位、停止位是幾位呀,我好確定能和什么樣的設(shè)備通信呀。最高波特率是115200BPS但需要1.2或者以上版本的CPU數(shù)據(jù)位可以是7位或8位停止位是固定的1位。quote:以下是引用300小小生在2010-12-23 13:52:59的發(fā)言:300也可以實(shí)現(xiàn)與上位機(jī)自由通訊的,S7-200自由口通訊是基于 RS485通訊基礎(chǔ)的半雙工通訊,因此,發(fā)送和接收指令不能同時(shí)執(zhí)行。這點(diǎn)有點(diǎn)不好,在300里可以422通訊,但最好是PLC發(fā)送不要連續(xù)發(fā)

8、送,而接收倒沒事。我有次在調(diào)試的時(shí)候發(fā)現(xiàn)上位機(jī)發(fā)了任務(wù)后,PLC設(shè)備要過好長一段時(shí)間才去執(zhí)行, 后來請(qǐng)教了老師傅,老師傅說把發(fā)送端加個(gè)間隔時(shí)間就好了以下是引用 鼠老爹在2010-12-31 15:59:24的發(fā)言:不管是什么通訊,傳送的都是二進(jìn)制代碼。 ASCII碼與二進(jìn)制協(xié)議的區(qū)別在于代碼所表示內(nèi) 容的方式不同。如 果使用ASCII代碼,則數(shù)據(jù)不能直接用于數(shù)學(xué)運(yùn)算,而必須轉(zhuǎn)換成普通的二進(jìn)制代碼。這樣會(huì)加重程序負(fù)擔(dān)。但是ASCII代碼用于通訊有一個(gè)好處,起始字符與結(jié)束字符比較容易確定和判別,它們一般不會(huì)出現(xiàn)在數(shù)據(jù)區(qū)。而用二進(jìn)制代碼通訊,數(shù)據(jù)無需轉(zhuǎn)換即可直接 使用(高低位字節(jié)可能需要交換),PL

9、C的負(fù)擔(dān)較小。但是起始字符和結(jié)束字符經(jīng)常會(huì)與數(shù) 據(jù)重復(fù)。因此,用二進(jìn)制代碼通訊, 通常是靠字符數(shù)和定時(shí)器來確定接收終點(diǎn),主從站之間的步調(diào)協(xié)調(diào)非常重要。以下是引用 Am_Programer在 2010-12-27 15:48:59 的發(fā)言:西門子S7-200系列PLC支持自由口通信協(xié)議。所謂自由口協(xié)議是指通過用戶 程序控制CPU主機(jī)的通信端口的操作模式來進(jìn)行通信。用這種自由口模式可以用 自定義的通信協(xié)議連接多種智能設(shè)備。自由口模式支持ASCII和二進(jìn)制協(xié)議。在自由口模式下,主機(jī)處于RUN方式時(shí),用戶可以用相關(guān)的通信指令所編寫的程 序控制通信口的操作。當(dāng)主機(jī)處于 STOP方式時(shí),自由口通信被終止,

10、通信口自 動(dòng)切換到正常的 PPI 協(xié)議操作。自由口通信指令包括:XMT自由口發(fā)送指令;RCV自由口接受指令。用特殊標(biāo) 志寄存器SMB30(端口 0)和SMB130(端口 1)的各個(gè)位設(shè)置自由口模式,并配 置自由口通信參數(shù),如波特率、奇偶效驗(yàn)和數(shù)據(jù)位。發(fā)送指令(XMT和發(fā)送中斷:發(fā)送指令允許 S7-200的通信口上發(fā)送最多255 個(gè)字節(jié),發(fā)送中斷通知程序發(fā)送完成。接受字符中斷: 接受字符中斷通知程序通信口上接受到了一個(gè)字符, 應(yīng)用程序就 可以根據(jù)所用的協(xié)議對(duì)該字符進(jìn)行相關(guān)的操作。接受指令(RCV :接受指令從通信口接收到整條信息,當(dāng)接收完成后產(chǎn)生中斷 通知應(yīng)用程序。需要在SM存儲(chǔ)器中定義條件來控

11、制接收指令開始和停止接受信 息。接受指令可以根據(jù)特定的字符或時(shí)間間隔來啟動(dòng)和停止接受信息。 接受指令 可以實(shí)現(xiàn)多數(shù)通信協(xié)議。自由口通信功能的用途:1. 通過RS-232或RS-485串口連接多種智能儀表或 RTU根據(jù)智能儀表或RTU 定義的通信協(xié)議編寫用戶程序與智能儀表或 RTU通信。2. 使用USS協(xié)議與西門子MicroMaster系列變頻器通信,STEP7-Micro/WIN提 供USS協(xié)議庫,S7-200 CPU是主站,變頻器是從站。3. 創(chuàng)建用戶程序來模擬另外一種網(wǎng)絡(luò)上的從站器件。例如S7-200的用戶程序模仿一個(gè)Modbus從站。STEP7-Micro/WIN提供Modbus協(xié)議庫。

12、4. 采用自定義通信協(xié)議與PC通信。PC上的應(yīng)用軟件可以采用此方法方便的訪 問S7-200的數(shù)據(jù)。這是第三方軟件訪問 S7-200PLC比較簡便,廉價(jià)的方法。對(duì)于自由口通訊, 西門子的很多資料都做了比較詳細(xì)的介紹, 其中還包含了大量的例子程序。由于通訊的不可見性,很多人還是不能很好的掌握,我建議大家:1、理解什么是通訊、 什么是串口、 什么是 232、什么是 485?沒有過硬的硬件知識(shí)是不可能做出通訊的,你連線都不知道怎么接,怎么調(diào)試你的程序?2、仔細(xì)閱讀西門子關(guān)于通訊的資料,不需要多只需要精,因?yàn)楦鞣N版本的資料基本是一樣的,關(guān)鍵就是 SMB30 SMB86 87、88、89、SMW90 92

13、、SMB94自己 控制通訊過程需要SMB2把這些弄明白了,才有可能做出通訊程序3、使用PC的通訊軟件協(xié)助調(diào)試,有了 PC的通訊軟件可以看見通訊過程中的數(shù) 據(jù),能夠更方便的調(diào)試程序4、理解各種通訊協(xié)議。大家要注意串口通訊和協(xié)議是 2碼事,不論是PPI、MODBUS 還是USS它們都有自己的協(xié)議規(guī)范,根據(jù)規(guī)范來寫你就可以實(shí)現(xiàn)這種通訊。 只不 過PPI是不公開通訊協(xié)議的,沒有辦法寫而已!最后建議大家自己做通訊,起碼會(huì)做!至于用不用自己做就要根據(jù)你的實(shí)際情況 了,西門子提供的庫也是很方便的!以下是引用 yanxiao在2010-12-24 13:50:10的發(fā)言:我看過不少問S7200通訊問題的貼子,

14、覺得很多問題并不是S7200的,而是串行通訊的共性問題,也就是對(duì)串行通訊本身概念的認(rèn)識(shí)問題。下面我來談?wù)勗谖业挠洃浿嘘P(guān)于串行通訊的一些認(rèn)識(shí)。1、串行通訊只有一個(gè)傳輸通道,每個(gè)時(shí)刻只能表達(dá)一種狀態(tài)。不管什么介質(zhì),不管是什么 信號(hào),我們用1表示一種狀態(tài),用 0表示另一種狀態(tài)。2、只用1和0兩種狀態(tài),是不能表達(dá)更多信息的。好在有一個(gè)物理量,對(duì)每個(gè)系統(tǒng)來講是統(tǒng)一的,那就是時(shí)間。我們現(xiàn)在很容易做到不同系統(tǒng)之間的定時(shí)誤差控制在PPM數(shù)量級(jí)。1和0在時(shí)間上進(jìn)行有序的組合,就可表達(dá)近乎無限的信息。3、任何一個(gè)信號(hào),如果不賦給它一些特點(diǎn)的意義,實(shí)際上沒什么用。兩個(gè)系統(tǒng)要通過信號(hào)交換信息,必須對(duì)信號(hào)有一個(gè)共同的約

15、定,這就是我們通常所說的協(xié)議。4、 最基本的協(xié)議是物理層面的 (那個(gè)0SI的七層協(xié)議模型, 第一層就是物理層協(xié)議)。RS232、 RS485 RS422這些是物理層面的一些協(xié)議。5、我們現(xiàn)在要談的是異步串行通訊。異步,發(fā)達(dá)方和接收方之間,沒有額外的通道來傳送信息何時(shí)傳送與接收。 每個(gè)信息單元的起止時(shí)間,發(fā)送方編在信息中,由接收方自已解碼并同步。6、好?,F(xiàn)在來講一下傳送一個(gè)字節(jié)的過程。在沒有傳送信息時(shí),傳輸線處于空閑狀態(tài)。規(guī)定:空閑狀態(tài)為1。發(fā)送方(TX)準(zhǔn)備發(fā)送,驅(qū)動(dòng)傳輸線讓它由1變?yōu)?,并持一位的時(shí)間長度,我們把這一位叫做起始位。接收方(RX),檢測到傳輸線由1變0,意味著可能有信息要傳了,

16、RX就持續(xù)檢測,以驗(yàn)證這個(gè) 0是不是持續(xù) 了規(guī)定的一位時(shí)間長度,若是個(gè)合法 的起始位,就按約定的定時(shí)方式,把后續(xù)的傳輸線狀態(tài),接收為1個(gè)字節(jié)。TX在發(fā)完起始位后,就發(fā)字節(jié)中的第一個(gè)位(bit),并依次把字節(jié)中的所有位發(fā)完,每bit均持續(xù)相同的一位時(shí)長。然后再發(fā)校驗(yàn)位(如果約定發(fā)/收方都采用的話)、停止位。7、停止位,這個(gè)要說一下。我們知道起始位是0,而這個(gè)停止位,規(guī)定是 1,和傳輸線的空閑狀態(tài)1是相同的。停止位規(guī)定的時(shí)長比較亂,有1位停止位(也就持續(xù)時(shí)間占1個(gè)位長)、1.5位、和2位停止位,其它時(shí)長的停止位好象沒見過。停止位的作用,其一是作為一 字節(jié)單元的成員,給接收方定時(shí)用的,也就是下一個(gè)字

17、節(jié),在停止位之后才開始。另一個(gè)作用,可供檢查字節(jié)傳送的完整性。因?yàn)橥V刮皇且?guī)定為 1狀態(tài)的,若在停止位的時(shí)間里測到了非1狀態(tài),表示這個(gè)字節(jié)傳送有問題,有可能被接收方丟棄,傳送失敗。&若收發(fā)雙方的停止位不相同,怎么辦?這個(gè)在論壇上經(jīng)常有人問。好,我們來分析一下。若TX是2個(gè) 停止位,RX要求是1個(gè)停止位,很好,TX多發(fā)的一個(gè)停止位,會(huì)被 RX看作 是空閑狀態(tài)(也可認(rèn)為是字符間隔),沒有任何問題。若反過來,TX是1個(gè)停止 位,RX要求是2個(gè)停止位,有問題嗎? 一般問題是很大的,但也有可能可以正常通訊。這要看TX是怎么發(fā)字節(jié)的。有些系統(tǒng),硬件上,發(fā)送電路比較簡單,沒有緩沖機(jī)構(gòu),一個(gè)字節(jié)必須完

18、整發(fā)送后,才準(zhǔn)備下一個(gè)字節(jié)的數(shù)據(jù),而這個(gè)準(zhǔn)備需要花一些時(shí)間的,這就給傳送的時(shí)序上,停止位之后,有了空閑時(shí)間,相當(dāng)于停止位 得到了延長。所以我曾經(jīng)發(fā)過一個(gè)貼子說,S7200的發(fā)送改為單字節(jié)發(fā)送,每個(gè)字節(jié)之間有意插入一些延時(shí),人為造成空閑時(shí)間,以充當(dāng)停止位,但這個(gè)方法說 歸說,我并沒有試過。可惜的是,現(xiàn)在的系統(tǒng),硬件都做得很完美了, 包括S7200, TX是有緩沖的,在一個(gè)字節(jié)還未發(fā)完前就可以接受下一個(gè)要發(fā)送的字節(jié),硬件上保證一個(gè)字節(jié)發(fā)完后可以立即啟動(dòng)下一個(gè)字節(jié)發(fā)送,前后兩字節(jié)間除了停止位,沒有額外的間隙,這種情況下,接收方就要命了,RX認(rèn)為還在收停止位時(shí),下一個(gè)字節(jié)的起始位就來了,沒辦法完整接收

19、,通訊就失敗了。9、波特率。兩邊設(shè)為一致就可以了。波特率不一致,鐵定不能通訊。但允許有少 量的誤差。停止位實(shí)際上還用來調(diào)節(jié)這個(gè)誤差的。比如1個(gè)停止位,RX并不死板要求停止位是完整的1個(gè)位時(shí)長,實(shí)際只要停止位超過 0.5個(gè)位長就算是合格 了。波特率,就是每秒最快能傳送 的位數(shù),包括了起始位、停止位這些輔助位。實(shí)際每秒能傳送的最快字節(jié)數(shù),要看這些輔助位的多少。比如一個(gè) 11位結(jié)構(gòu)的字節(jié) 單元:1起始位+8字節(jié)位+1校驗(yàn)位+1停止位,字節(jié) 最快傳送速率為 band/11。好象還有一個(gè)概念,叫比特率,也就是有效的位傳送速率,比特 率=8*( ba nd/11),也就是比特率比波特率要小的。10、RS2

20、32的TX和RX是兩根獨(dú)立的線,收/發(fā)可以同時(shí)進(jìn)行,所以叫作全雙工異步串行通訊。按我們?nèi)粘扇私徽劦慕?jīng)驗(yàn),總是A說B聽,當(dāng)B要說時(shí),A就停下來聽B說。如果A、B同時(shí)說,這是吵架,要達(dá)到相互交流就難了。同樣,通訊若同時(shí)收發(fā),一般人會(huì)白白死掉很多腦細(xì)胞而寫出的程序通訊效果還是很差。所以,即使RS232能雙向同時(shí),一般使用時(shí)也是收、發(fā)不同時(shí)的。11、RS485 RS232不錯(cuò)了,但局限性大大的。RS485收發(fā)同線,允許多少 RS485并聯(lián)使 用,電氣采用差分傳送信號(hào),可以抗干擾。S7200就屬于RS485 RS485設(shè)備冋一時(shí)間只能發(fā)或再改,收發(fā)是分時(shí)的,所以叫做準(zhǔn)雙向。盡管S7200中可以同時(shí)緩沖

21、 8個(gè)NETR和NETW,實(shí)際在RS485層面,還是一個(gè)一個(gè)分時(shí)完成的(由系統(tǒng)程序根據(jù) PPI協(xié)議協(xié)調(diào))。RCV和XMT完全由用戶程序控制,你就不能同時(shí)讓兩個(gè)都執(zhí)行,否則就是哄搶資源而被S7200當(dāng)成錯(cuò)誤處理。12、RS422介于RS232和RS485 RS422和RS232一樣收、發(fā)線獨(dú)立,但電氣上采用和 RS485 一樣的差分信號(hào)。所以RS422能多機(jī)通訊,比 RS232傳得遠(yuǎn),但比 RS485浪費(fèi)硬件資源。RS422只要軟件上采用準(zhǔn)雙向的規(guī)則,通過發(fā)收線合并,可以簡化為RS485,和RS485設(shè)備通訊。但RS485卻不能復(fù)雜化成RS422使用。以下是引用 yanxiao在2010-12-

22、31 16:00:57的發(fā)言:再談一個(gè)于關(guān)通訊效率: 這里的通訊效率問題,針對(duì)主站。從站,一般根據(jù)主站的請(qǐng)求,及時(shí)發(fā)回應(yīng)答就行了,不存 在效率問題。當(dāng)主站要同多個(gè)從站通訊時(shí),就有一個(gè)效率問題。以modbus-rtu為例。1、 定時(shí)輪詢。這恐怕是最原始的方法,也是效率最低下的。比如1秒鐘輪詢一個(gè)站,如果 3個(gè)從站,要3秒才輪到1次。2、 高效的輪詢應(yīng)該根據(jù)協(xié)議的定時(shí)來調(diào)整,盡量擠掉不必要的延時(shí)。modbus-rtu, 3.5個(gè)字節(jié)傳送時(shí)間作為幀間隔,但是從站的回應(yīng)時(shí)間沒有標(biāo)準(zhǔn)規(guī)定,要先問清楚。一般的儀表,回應(yīng)時(shí)間都是很短的,幾十ms內(nèi)都會(huì)有回應(yīng),你可以把回應(yīng)超時(shí)設(shè)在100ms。當(dāng)然儀表能提供這個(gè)

23、超時(shí)參數(shù)是最好了。當(dāng)主站發(fā)完請(qǐng)求幀后,立即進(jìn)入接收狀態(tài),隨時(shí)準(zhǔn)備接收從站的回應(yīng)。但若到達(dá)超時(shí)時(shí)間還 未收到,則放棄繼續(xù)接收,認(rèn)為從站無響應(yīng),進(jìn)入下一從站的通訊。3、如果3個(gè)從站只有1個(gè)在線上,按理說是通訊速度是最快的,但如果不采取一些策略, 則通訊速率會(huì)變成最慢的。輪詢一個(gè)離線的從站,通訊要等到超時(shí)才結(jié)束,這肯定比在線的從站回應(yīng)要慢得多,因此大部分時(shí)間浪費(fèi)在離線的從站上了。策略是為每一個(gè)從站配置1個(gè)在線狀態(tài)標(biāo)記位,當(dāng)從站有成功回應(yīng)的,標(biāo)記位=1,表示 在線,若該從站連續(xù) N次(2次)沒有回應(yīng)或出錯(cuò),置標(biāo)記位 =0,表示離線。對(duì)于在線的從站,按正常順序輪詢,而離線的從站,則每隔一定時(shí)間或每隔一定

24、的輪詢周期, 發(fā)一個(gè)請(qǐng)求給它,若有回應(yīng)且正確,則置標(biāo)記位為1,認(rèn)為該從站已回到在線狀態(tài),若沒有回應(yīng)或出錯(cuò),則繼續(xù)保持離線狀態(tài)。 這樣,可以把花在離線從站的通訊時(shí)間,控制在一個(gè)合理的范圍。以下是引用 鼠老爹在2011-01-01 23:46:42的發(fā)言:yanxiao的方案很在理,我做PC與PLC通訊所采用的策略基本如此。當(dāng)時(shí)并不在乎效率,而是為了監(jiān)視PLC的狀態(tài)。因?yàn)橄挛粰C(jī)的開啟是隨機(jī)的。在 PLC 與第三方儀表的通訊中, 我還沒有這樣做過。 在我的理念中, 只有實(shí)時(shí)性要求不是很 高的場合, 與第三方儀表之間才會(huì)采用通訊的方式交換數(shù)據(jù)。 因?yàn)榈谌絻x表通常只能作為 從站,等待PLC的數(shù)據(jù)請(qǐng)求,

25、實(shí)時(shí)性無法得到保障。因此,我認(rèn)為PLC在通訊上的效率已經(jīng)無所謂了。就 像現(xiàn)在正在做的一個(gè)項(xiàng)目,PC連著數(shù)臺(tái)PLC每臺(tái)PLC要輪詢16臺(tái)儀表的32個(gè)數(shù)據(jù),波特率只能是2400 (其它波特率不太容易匹配),每臺(tái)PLC還 要同時(shí)處理16個(gè)模擬量,下 位機(jī)分布面積很大。考慮通訊的可靠性,PLC每2秒鐘問一個(gè)儀表。這樣走一圈就需要半分鐘。選擇通訊是因?yàn)檫@些數(shù)據(jù)本身的變化 速率很慢, 且不需要控制, 只要監(jiān)視記錄就行了, 無需考慮實(shí)時(shí)性。用戶甚至提出每5分鐘讀一次數(shù)據(jù)??紤]到PC的屏幕上等待5分鐘跳一次數(shù)據(jù)對(duì)操作者實(shí)在是 一種折磨,還是把輪詢的周期定在 1 分鐘(因?yàn)橄胪祽?,暫時(shí)還不 想進(jìn)一步縮短周期)

26、。定時(shí)也沒有什么精度要求,直接用 SM0.4 的上升沿來觸發(fā)。在這種情況下, 不在乎下位機(jī)是否在線對(duì)通訊效率的影響, 而是在乎下位機(jī)狀態(tài)是否能在監(jiān) 視終端的PC上顯示出來,避免無效數(shù)據(jù)被壓入數(shù)據(jù)庫。yanxiao 為大家提供了一種邏輯方法,若用戶有此類要求,不妨一試。以下是引用 一粒塵在 2010-12-29 15:57:27 的發(fā)言:下面是我從 MICRO/WIN 幫助文件里改的一段自由口通信程序,實(shí)現(xiàn)接收到后(結(jié)束字為H0A),再發(fā)回去。1 、補(bǔ)充了發(fā)送完成中斷啟動(dòng)接收服務(wù)程序2、 增加了模式開關(guān)切換通信口的模式,當(dāng)開關(guān)切換由RUN切換到TERM時(shí),為PPI從屬模 式;當(dāng)開關(guān)由 TERM切

27、換到RUN時(shí),P0 口為自由口模式。3、 上一條有局限性,在用軟件啟動(dòng)和停止PLC時(shí),P0 口初始化為自由口,不論 PLC模式開 關(guān)是在 TERM 還是 RUN 位置程序如下ORGANIZATION_BLOCK主程序:OB1TITLED序注釋BEGINNetwork 1 / 主程序LDSM0.1/ 首次掃描時(shí),MOVB16#09, SMB30/- 選擇 9600 波特/- 選擇 8 個(gè)數(shù)據(jù)位/- 選擇無校驗(yàn)M0VB16#B0, SMB87/初始化RCV信息控制字節(jié)/-RCV被啟用/- 檢測到信息字符結(jié)束/- 將空閑行條件檢測為/信息開始條件。/ 初始化自由端口:MOVB 16#0A, SMB8

28、9 符)。M0VW+5,SMW90M0VB100,SMB94ATCHINT0,23ATCHINT2,9ENIRCV VB100, 0 區(qū)的接收服務(wù)/將信息字符結(jié)束設(shè)為hex 0A(換行/ 將空閑行超時(shí)設(shè)為 5 毫秒。/ 將最大字符數(shù)設(shè)為 100。/ 將中斷附加在接收完成事件上。/ 將中斷 2 附加在傳送完成事件上。/ 啟用用戶中斷/為端口 0在VB100位置啟用帶緩沖Network 2/"RUN" 時(shí), SM0.7=1LDSM0.7/PLC 上模式開關(guān)狀態(tài):/"TERM" 時(shí), SM0.7=0ATCH INT_1 10 / 觸發(fā)傳送ATCH INT_1

29、10 / 觸發(fā)傳送EUOSM0.1SSM30.0,1/SM30.1 SM30.0=0 1為 P0 口為RSM30.1,1自由口通信ATCH INT_1 10 / 觸發(fā)傳送ATCH INT_1 10 / 觸發(fā)傳送RCVVB100, 0LDSM0.7EDRSM30.0,PPI從屬模式/ 切換到自由口后,先開接收服務(wù)/SM30.1SM30.0=0 0為 P0 口為ATCH INT_1 10 / 觸發(fā)傳送ATCH INT_1 10 / 觸發(fā)傳送END_ORGANIZATION_BLOCKINTERRUPT_BLOCKINT_0:INT0TITLE沖斷程序注釋BEGINNetwork 1 / 中斷 0/

30、 接收完成中斷例行程序LDB= SMB86 16#20 / 如果接收狀態(tài)顯示接收結(jié)束字符,MOVB 10 SMB34 / 則附加一個(gè) 10 毫秒計(jì)時(shí)器,ATCH INT_1 10 / 觸發(fā)傳送CRETI / 并返回。NOTRCV VB100 0 / 如果因任何其他原因接收完成,/ 則開始新的接收。END_INTERRUPT_BLOCKINTERRUPT_BLOCKINT_1:INT1TITLE沖斷程序注釋BEGINNetwork 1 / 中斷 1/10 毫秒計(jì)時(shí)器中斷LD SM0.0DTCH 10 / 分離計(jì)時(shí)器中斷0中的用戶XMT VB100, 0/ 將信息傳送端口Network 2 / 網(wǎng)

31、絡(luò)標(biāo)題END_INTERRUPT_BLOCKINTERRUPT_BLOCKINT_2:INT2TITLE=中斷程序注釋BEGINNetwork 1 / 網(wǎng)絡(luò)標(biāo)題LDSMO.OII準(zhǔn)備接收RCVVB100, 0END_INTERRUPT_BLOCK以下是引用LaoHuai在2010-12-27 23:04:36 的發(fā)言:quote:以下是引用 happy Julia 在 2010-12-27 21:30:45 的發(fā)言: 在這里真是受益非淺呀??蛇€有許多不明白的,發(fā)送指令XMTf艮容易啦,可是接收指令RCV怎么那么多起 始和結(jié)束條件??吹奈叶紩灹耍魑淮髠b能給我簡單講講嗎,大概是什么意思? 我應(yīng)該

32、選擇什么樣的起始和結(jié)束條件呀?條件多,給你選擇的就多。再看幾遍就能明白了。如果覺得RCV麻煩,那就用字符中斷方式接收數(shù)據(jù),只要連接一個(gè)中斷就可以了, 但要一個(gè)一個(gè)收。這個(gè)問題說起來和理解起來確實(shí)挺讓人頭疼的,但個(gè)人認(rèn)為這是個(gè)非常好的問 題,如果能把這部分理解清楚了,對(duì)于S7-200自由口的應(yīng)用應(yīng)該有很大的幫助這里大概講一下自己的理解,其他的大俠們可以補(bǔ)充和更正:以接收結(jié)束消息方式為例,通信伙伴的數(shù)據(jù)是一幀一幀發(fā)送的,比如通信伙伴每隔100ms 發(fā)送一幀 01 02 03 04 05給S7-200,S7-200接收這些數(shù)據(jù),那么我們有幾種方法可以正確接收到這些數(shù)據(jù):50ms (小于發(fā)送間 后,啟

33、動(dòng)空閑時(shí)間 這可以看做是“字1、指定空閑線時(shí)間(可以理解為兩幀數(shù)據(jù)之間的間隔)為隔時(shí)間100mS,則當(dāng)發(fā)送完第一幀 01 02 03 04 05 檢測,超過50ms即認(rèn)為一幀數(shù)據(jù)結(jié)束,準(zhǔn)備接收下一幀數(shù)據(jù) 符間定時(shí)器”結(jié)束消息方式。2、指定接收結(jié)束字符為05,則當(dāng)接收到01 02 03 04 05后,即收到結(jié)束字符05后,認(rèn)為一幀數(shù)據(jù)結(jié)束,再接收到的 01 02 03 04 05認(rèn)為是下一幀數(shù)據(jù),依此類推。這可以看做是“結(jié)束字符檢測”結(jié)束消息方式。3、指定接收數(shù)據(jù)長度為5,則收到01 02 03 04 05(5個(gè)字符)后,即認(rèn)為一幀數(shù)據(jù)結(jié)束,再接收到的01 02 03 04 05認(rèn)為是下一幀數(shù)據(jù)

34、,依此類推。這可以看做是“最大字符計(jì)數(shù)”結(jié)束消息方式。4、其他條件還包括“消息定時(shí)器”、“奇偶效驗(yàn)錯(cuò)誤”、“用戶終止”等結(jié)束 消息的方式,或者這些條件的組合作為結(jié)束消息的方式。那么在應(yīng)用中選擇哪種結(jié)束消息的方式, 要具體情況具體分析。這話說起來很空 洞,但確實(shí)如此,因?yàn)樽杂煽谕ㄐ疟旧砭蜎Q定了, 不同的通信對(duì)象間的數(shù)據(jù)幀格 式(或協(xié)議)是設(shè)備廠家自由定義的,這就要求事先充分理解通信協(xié)議, 并在此 基礎(chǔ)上進(jìn)行選擇。另 外一方面,如果能靈活掌握這部分內(nèi)容,還可以解決一些實(shí)際問題。比如大 家都知道數(shù)據(jù)要接收到接收緩沖區(qū),而接收緩沖區(qū)的大小是有限制的(255個(gè)字節(jié)),那么怎么能夠接收到大于255個(gè)字節(jié)的

35、數(shù)據(jù)呢(緩沖區(qū)溢出后前面的數(shù) 據(jù)被覆蓋)?可以考慮設(shè)置“最大字符計(jì)數(shù)”為結(jié)束消息方式,將數(shù)據(jù)分為多個(gè)部分依次進(jìn)行接收。以上理解沒有考慮S7-200的具體應(yīng)用細(xì)節(jié),詳細(xì)的技術(shù)細(xì)節(jié)可以參考手冊(cè)說明, 僅供參考。quote:以下是引用一粒塵在2010-12-30 10:48:22的發(fā)言:quote:以下是引用半瓶醋在2010-12-29 21:39:10 的發(fā)言:以接收結(jié)束消息方式為例, 通信伙伴的數(shù)據(jù)是一幀一幀發(fā)送的,比如通信伙伴每隔100ms發(fā)送一幀01 02 03 04 05給S7-200,S7-200接收這些數(shù)據(jù),那么我們有幾種方法可以正確接收到這些數(shù)據(jù):1、指定空閑線時(shí)間(可以理解為兩幀數(shù)

36、據(jù)之間的間隔)為 50ms (小于發(fā)送間隔 時(shí)間100ms,則當(dāng)發(fā)送完第一幀01 02 03 04 05后,啟動(dòng)空閑時(shí)間檢 測,超過50ms即認(rèn)為一幀數(shù)據(jù)結(jié)束,準(zhǔn)備接收下一幀數(shù)據(jù)。這可以看做是“字符間定時(shí)器”結(jié)束消息方式。請(qǐng)教,這種空閑線時(shí)間結(jié)束,也能觸發(fā)接收完成中斷嗎?SMB87亥設(shè)置成多少呢?1. 每接收一個(gè)字符會(huì)產(chǎn)生一次中斷 ”;2. 每接收一個(gè)結(jié)束字符會(huì)產(chǎn)生一次中斷”。兩個(gè)指的不是同一個(gè)中斷,1是指中斷號(hào)8、25,2是指中斷號(hào)23、241、字符中斷”指的是SMB2每接收一個(gè)字符即產(chǎn)生一次中斷。2、結(jié)束字符中斷”指的是接收緩沖區(qū)出現(xiàn)指定的結(jié)束字符時(shí)產(chǎn)生一次中斷。串口通訊協(xié)議都是由數(shù)個(gè)或更

37、多的字符(字節(jié))組成一幀,每個(gè)字符都有各自特定的意義。對(duì)S7-200來說,接收到的每個(gè)字符都要從SMB2中過一遍。因此對(duì)于簡單的通訊協(xié)議,可以利用SMB2的字符接收中斷逐個(gè)讀取字節(jié),并排列成一個(gè)信息幀。但是這樣的做法有個(gè)缺陷,即SMB2不斷地發(fā)出中斷請(qǐng)求;如果信息幀較長,處理一次所占用的資源較多。一旦 出現(xiàn)中斷排隊(duì),不僅影響其它的程序運(yùn)行,還有可能影響通訊的準(zhǔn)確率。而采用RCV指令的結(jié)束字符中斷,可以等待通訊的信息幀全部接收完畢(數(shù)據(jù)保存在接受緩沖區(qū)內(nèi))再一次性處理這些數(shù)據(jù)。quote:以下是引用LaoHuai在2010-12-24 11:42:19 的發(fā)言:我來發(fā)幾個(gè)SMB2的例子(特別適合

38、初學(xué)者):SMB2為自由口接收字符的暫放區(qū),從端口0或端口 1接收的每個(gè)字符都放在這里。SMB2只能存放一個(gè)字節(jié)字符,而對(duì)方發(fā)送的一幀可能是很多字符,所以在接收 到下個(gè)字符之前,應(yīng)該在中斷里將接收到的字符移走。每接收一個(gè)字符會(huì)產(chǎn)生一次中斷,端口 0產(chǎn)生中斷事件8,端口 1產(chǎn)生中斷事件 25。例1:通訊方法(用串口調(diào)試軟件)控制 PLC的輸出:PLC寫入如下程序:比如向PLC發(fā)1時(shí),Q0.0亮,發(fā)2,那么Q0.1亮,發(fā)255, 那么從 Q0.0 到 Q0.7 都亮,發(fā)送 0,則都不亮。LD SM0.1MOVB 9, SMB30ATCH INT_0, 8。ENIINT_0:LD SM0.0MOVB

39、 SMB2, QB0用串口調(diào)試軟件向PLC發(fā)1時(shí),Q0.0亮,發(fā)2,那么Q0.1亮,發(fā)255,那么從Q0.0到Q0.7都亮,發(fā)送0,則都不亮,你可以試試。串口調(diào)試軟件設(shè)置: 9600波特率,數(shù)據(jù)位 8,停止位 1,無奇偶校驗(yàn)。例2:如果有2個(gè)PLC,那么將兩個(gè)通訊口( PORT)3 3接,8 8接。如果只 有一個(gè)PLC,那么用串口調(diào)試軟件當(dāng)主站也可以。主站程序:向從站發(fā)送 4 個(gè)字節(jié)的數(shù)據(jù)網(wǎng)絡(luò) 1:LDSM0.1MOVB9, SMB30MOVB4, VB0MOVB1, VB1MOVB2, VB2MOVB3, VB3MOVB4, VB4網(wǎng)絡(luò) 2:LDSM0.5EUXMTVB0, 0 / 每秒發(fā)送

40、一次從站程序 1:MAIN:OB1LDSM0.1MOVB9, SMB30ATCHINT0, 8ENIINT_0:INT0LDSM0.0MOVB SMB2, VB10ATCHINT1, 8INT_1:INT1LDSM0.0MOVBSMB2, VB11ATCHINT2, 8INT_2:INT2LDSM0.0MOVBSMB2, VB12ATCHINT3, 8INT_3:INT3LDSM0.0MOVBSMB2, VB13ATCHINT0, 8如 果 主 從 站 同 時(shí) 啟 動(dòng) , 或 者 從 站 啟 動(dòng) 比 主 站 啟 動(dòng) 早 , 那 么 VB11=1,VB12=2,VB13=3,VB14=4.如果主

41、站先發(fā)送,那么 VB11就不一定是1 了,可能是2或3或4。從站程序 2:MAIN:OB1LDSM0.1MOVB0, VB10MOVB9, SMB30MOVD&VB10, VD80ATCHINT_0:INT0, 8ENIINT_0:INT0Network1LDSM0.0INCBMB10MOVBSMB2, *VD80INCDVD80Network2LDB=MB10, 4MOVB0, MB10-D+4, VD80這個(gè)例子只是比上個(gè)例子少了 3 個(gè)中斷而已從站程序 3:MAIN:OB1LDSM0.1MOVB9, SMB30ATCHINT0, 8ENIINT_0:INT0Network 1LD

42、B<> SMB2, 1CRETINetwork 2LDSM0.0MOVBSMB2,VB10ATCHINT1, 8INT_1:INT1LDSM0.0MOVBSMB2,VB11ATCHINT2, 8INT_2:INT2MOVBSMB2, VB12ATCHINT3, 8LDSMO.OINT_3:INT3LDSM0.0MOVBSMB2, VB13ATCHINT0, 8如果1是起始字符,那么在中斷0里加個(gè)判斷,就不會(huì)發(fā)生接收數(shù)據(jù)錯(cuò)位的問題以下是引用 LaoHuai在2010-12-23 11:45:24的發(fā)言:我覺得做自由口通訊時(shí)容易出現(xiàn)的幾個(gè)問題:10009 端口 0中同時(shí)執(zhí)行 XMT/R

43、CV000B 端口 1中同時(shí)執(zhí)行 XMT/RCV經(jīng)常有人問,程序里只發(fā)送(XMT),怎么會(huì)出現(xiàn)同時(shí)執(zhí)行 XMT/RCV呢?其實(shí)這個(gè)有4種可能:發(fā)送沒結(jié)束,又執(zhí)行發(fā)送接收沒結(jié)束,又執(zhí)行接收發(fā)送沒結(jié)束,又執(zhí)行接收接收沒結(jié)束,又執(zhí)行發(fā)送有3種解決方法:a用沿來執(zhí)行。b在中斷程序里來執(zhí)行。c XMT用 SM4.5/ SM4.6來執(zhí)行,RCV根據(jù)SMB86的條件來執(zhí)行。2發(fā)送結(jié)束可以(應(yīng)該)立即執(zhí)行接收,但接收結(jié)束不能立即發(fā)送,應(yīng)該延時(shí)發(fā)送。3用字符中斷方式接收數(shù)據(jù)時(shí),中斷程序應(yīng)該足夠短,否則會(huì)丟數(shù)據(jù),中斷程序執(zhí)行的時(shí) 間應(yīng)該小于傳送一個(gè)字節(jié)數(shù)據(jù)所需的的時(shí)間。以下是引用鼠老爹在2010-12-31 12

44、:53:40的發(fā)言:手冊(cè)上給出的一些自由口通訊示例,S7-200多以從站的面目出現(xiàn)。因此在邏輯上,PLC等待網(wǎng)絡(luò)上的數(shù)據(jù)請(qǐng)求,再發(fā)送應(yīng)答數(shù)據(jù);發(fā)送完畢后再次啟動(dòng)接收。如果PLC作為主站請(qǐng)求第三方儀表的數(shù)據(jù),且使用的是自定義通訊協(xié)議在編程的時(shí)候會(huì)遇到一些看起來很奇怪的現(xiàn)象。以下是我在編通訊程序時(shí)遇到的問題和解決方法:1、 剛開始,按照一般的程序邏輯設(shè)置使用XMT和RCV指令。對(duì)儀表的輪詢都很正常, 沒有 異常情況發(fā)生。自以為程序走通了。2、 偶然切斷了個(gè)別從站(在現(xiàn)場這種情況是很普遍的),發(fā)現(xiàn)整個(gè)通訊全部歇菜了。重啟PLC頭幾臺(tái)儀表的通訊正常,但是到了被切斷的從站又OVER 了。3、 檢查PLC

45、的狀態(tài)信息,看不出異常。監(jiān)控RS485總線,發(fā)現(xiàn)走過了空站號(hào)后 PLC的XMT 發(fā)送不出信息。4、 于是用VB寫了一個(gè)從站的模擬程序與 PLC通訊。從監(jiān)控上看出,從站有應(yīng)答, RCV正常 處理接受信息后,XMT的發(fā)送沒問題。而從站沒有應(yīng)答, RCV始終在等待,XMT便無法發(fā) 送信息。5、因此PLC端必須考慮終止接收。反復(fù)使用了幾種方法,最終選用了定時(shí)關(guān)閉接受功能的 方法。6、在程序的初始化中配置通訊口和接收控制參數(shù),然后將SM87.7( SM187.7)復(fù)位。7、XMT執(zhí)行后將SM87.7( SM187.7)置位,啟動(dòng)接收以及一個(gè)定時(shí)器。&無論有否應(yīng)答,都由定時(shí)器去處理信息并關(guān)閉RCV

46、功能,等待下一個(gè)通訊。9、 RCV指令在主程序中由 SM0.0使能。這點(diǎn)很重要。因?yàn)?SM87.7(SM187.7)被修改后, 必須執(zhí)行一次RCV指令才能啟停接收功能,所以 RCV作為指令”始終被執(zhí)行不會(huì)影響整個(gè) 程序的邏輯關(guān)系,且程序看上去也簡潔,其它地方只要操作SM87.7(SM187.7)即可。另外,在和一些集成了 RS485端口的儀表做通訊時(shí),發(fā)現(xiàn)波特率的匹配上會(huì)有些問題。 主要 原因還是對(duì)主頻進(jìn)行分頻后時(shí)鐘脈沖引起的誤差。這點(diǎn)上西門子的 PLC適應(yīng)性比較強(qiáng),而合信的PLC適應(yīng)性差一些。有 網(wǎng)友問到 “PLC能否同時(shí)與不同波特率的對(duì)象通訊”的問題,竊以為可以解決。SMB30(SMB13

47、0)隨時(shí)可以賦值,也就是說用戶可以即時(shí)修改自由口的配置。按此邏輯,只要在XMT和RCV使能之前定義 SMB30( SMB130)就可以了。這一點(diǎn)與 VB對(duì)COMM 口的配置是 一樣的;如果程序中沒有操作 COMM配置的指令,VB就按控件特性欄中的配置執(zhí)行; 如果 程序中有配置指令,就按程序的配置指令執(zhí)行。以下是引用 困惑迷茫求助在2011-01-04 09:51:24的發(fā)言:我曾經(jīng)使用過自由口通信,與36個(gè)儀表同時(shí)通訊,正常情況下通訊很好,可是只要其中一個(gè)儀表出現(xiàn)通訊中斷后,整個(gè)通訊就全部崩潰,無法執(zhí)行,請(qǐng)問那位高手能指點(diǎn)下,為什 么會(huì)出現(xiàn)該問題與多個(gè)設(shè)備進(jìn)行通信時(shí)這時(shí)常見的問題,主要是因?yàn)樵诔绦蛏先鄙賹?duì)錯(cuò)誤時(shí)的 考慮,也就是只

溫馨提示

  • 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)論