西門子S7-200 自由口通信實用文檔
《西門子S7-200 自由口通信實用文檔》由會員分享,可在線閱讀,更多相關《西門子S7-200 自由口通信實用文檔(26頁珍藏版)》請在裝配圖網上搜索。
1、【精品文檔】如有侵權,請聯(lián)系網站刪除,僅供學習與交流 西門子S7-200 自由口通信實用文檔 .....精品文檔...... 主題:應用探討—S7-200 自由口通信—發(fā)帖整理 ? 強大而靈活的自由口通信能力,是S7-200系統(tǒng)的一個重要特點。S7-200? ? CPU的RS485通信口提供了建立在串行通信基礎上的“自由”通信能力,數(shù)據(jù)傳輸協(xié)議完全由用戶程序決定。通過自由口方式,S7-200可以與串行打印 機、條碼閱讀器等通信。而S7-200的編程軟件也提供了一些通信協(xié)議庫,如USS協(xié)議庫和MODBUS? ? RTU從站協(xié)議庫,它們實際上也使用了自由口通信功能。
2、 開設本話題的目的,在于澄清自由口通信的基本概念,強調使用中的要點,討論應用的常見問題。經過此次集中交流,解決了如下一些問題: 1. 自由口通信基本概念 2. 自由口通信編程指令的使用和技巧 3. 自由口通信常見問題 4. 產品功能建議 更多信息請參考下面文檔。 “下載中心”參考文檔:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文檔編號“1109582”——S7-200《可編程控制器系統(tǒng)手冊》 文檔編號“A0136”——《西門子? S7-200?LOGO!?SITOP? ? 參考》 以下為本次探討的
3、發(fā)帖整理,查看原始交流內容請點擊此處。 1.自由口通信基本概念(1樓——5樓) 2.自由口通信編程指令的使用和技巧(6樓——15樓) 3.自由口通信容易犯的錯誤(16樓——24樓) 4.產品功能建議(25樓——27樓) quote: 以下是引用BABU在2011-01-20? 15:17:08的發(fā)言: ? 我回來了,項目終于做完了,可以回家過年了,:)。 自由口通信真是折騰的我好慘啊,簡單回顧一下,希望對像我這樣的菜鳥有些借鑒作用。 先感謝一下西門子論壇和熱線,沒少騷擾他們。 在完全沒有準備的情況下甲方又加進一個儀表,做什么自有口通信,暈阿!沒
4、辦法,迎著上吧! 網上搜資料,看手冊,越看越糊涂!時間緊迫,還是直接上手做吧。 首 先是把PLC和儀表連接起來,可儀表的口是rs232的,熱線工程師告訴我得做rs232/485的轉換,打車到市場上買個轉換器(打車錢比設備錢還多, 可見現(xiàn)場多么偏僻阿),聽賣轉換器的老板給我分析了一下每種的區(qū)別——不光是價格的區(qū)別,說實在的,當時非常慚愧,老板懂的比我多多了。 買回來后自己動手焊線,一個人費了九牛二虎之力,焊的那個慘樣就不用說了,還好有殼可以包裝一下。 焊好了,實驗一下效果吧,不知到怎么做了,打電話。 熱線工程師告訴我找個串口調試工具,連接到pc機上測試。
5、 在串口調試工具上發(fā)一串數(shù),在200上收,ok!高興壞了,沒白忙活。 硬件上應該沒問題了,接下來開始做程序了。 先得理解儀表的協(xié)議,弄清了儀表先要收到請求數(shù)據(jù)的命令,然后根據(jù)命令做出響應。 同樣,先用串口調試工具和儀表連接進行通信測試,還算聰明吧,:)! 然后開始在200里編寫收發(fā)程序,開始時整個思路都是亂的,無從下手。就把200手冊上的例子程序整個抄上,在cpu224的兩個接口間進行通信實驗。 經過不停的實驗,終于一點一點地理解了控制字節(jié)、控制參數(shù)的含義,怎么設置接收結束條件,怎么使用中斷、怎么控制接收和發(fā)送等等。 ok,開始真正地與儀表通信了。
6、發(fā)請求命令,收數(shù)據(jù),可收到的數(shù)據(jù)是ASCII碼,得進行數(shù)據(jù)轉換。 根據(jù)大俠們的提醒,經過實驗知道了怎么將ASCII碼轉換為實際的工程數(shù)據(jù)。 到此基本結束了,雖然說著好像也沒什么,但只有我最了解其中的痛苦,不停地實驗,不停地修改阿! 后面在實際運行中又遇到了有時通信中端的問題,將雙絞線的屏蔽接到地上后暫時還沒出現(xiàn)問題。 總結一下,個人認為作自由口通信需要做好以下幾方面工作: 1、最主要的是多動手,光看資料是沒有用的,只有自己親自去動手實驗一下才能發(fā)現(xiàn)問題和幫助理解。 2、做實驗是找個串口調試工具(我用的是sscom32)是必須的,可以幫助你測試你的通信
7、線,調試你的程序,盡量不要直接與設備進行通信,通信不上不好分析原因。 3、我認為200手冊上的例子程序非常好,基本的處理方法和編程方法都涉及到了,可以根據(jù)你的需要做修改,當然首先要充分地理解他。 4、遇到不太容易理解的,或有問題的,多和別人交流一下,從中可以得到不同的思路。 提前給西門子和壇子里的專家們拜年了! 1.自由口通信基本概念(1樓——5樓) quote: 以下是引用LaoHuai在2010-12-24? 08:29:48的發(fā)言: ? quote: 以下是引用happy? Julia在2010-12-23? 21:58:54的發(fā)言: ? 以前很
8、少用自由口通信,但項目里要用呀,正在學習,就接到邀請了。 請教各位大俠:S7-200自由口能支持的最高速率是多少呀,我希望通信能快點。 還有它的數(shù)據(jù)位、停止位是幾位呀,我好確定能和什么樣的設備通信呀。 最高波特率是115200BPS,但需要1.2或者以上版本的CPU。 數(shù)據(jù)位可以是7位或8位 停止位是固定的1位。 quote: 以下是引用300小小生在2010-12-23? 13:52:59的發(fā)言: ? 300也可以實現(xiàn)與上位機自由通訊的,S7-200? 自由口通訊是基于RS485? 通訊基礎的半雙工通訊,因此,發(fā)送和接收指令不能同時執(zhí)行。這點有
9、點不好,在300里可以422通訊,但最好是PLC發(fā)送不要連續(xù)發(fā)送,而接收倒沒事。我 有次在調試的時候發(fā)現(xiàn)上位機發(fā)了任務后,PLC設備要過好長一段時間才去執(zhí)行,后來請教了老師傅,老師傅說把發(fā)送端加個間隔時間就好了 以下是引用鼠老爹在2010-12-31? 15:59:24的發(fā)言: ? 不管是什么通訊,傳送的都是二進制代碼。ASCII碼與二進制協(xié)議的區(qū)別在于代碼所表示內容的方式不同。 如 果使用ASCII代碼,則數(shù)據(jù)不能直接用于數(shù)學運算,而必須轉換成普通的二進制代碼。這樣會加重程序負擔。但是ASCII代碼用于通訊有一個好處,起始字 符與結束字符比較容易確定和判別,它們一般不會出現(xiàn)在數(shù)據(jù)區(qū)
10、。而用二進制代碼通訊,數(shù)據(jù)無需轉換即可直接使用(高低位字節(jié)可能需要交換),PLC的負擔較 小。但是起始字符和結束字符經常會與數(shù)據(jù)重復。因此,用二進制代碼通訊,通常是靠字符數(shù)和定時器來確定接收終點,主從站之間的步調協(xié)調非常重要。 以下是引用Am_Programer在2010-12-27? 15:48:59的發(fā)言: ? 西門子S7-200系列PLC支持自由口通信協(xié)議。所謂自由口協(xié)議是指通過用戶程序控制CPU主機的通信端口的操作模式來進行通信。用這種自由口模式可以用自定義的通信協(xié)議連接多種智能設備。自由口模式支持ASCII和二進制協(xié)議。 在自由口模式下,主機處于RUN方式時,用戶可
11、以用相關的通信指令所編寫的程序控制通信口的操作。當主機處于STOP方式時,自由口通信被終止,通信口自動切換到正常的PPI協(xié)議操作。 自由口通信指令包括:XMT,自由口發(fā)送指令;RCV,自由口接受指令。用特殊標志寄存器SMB30(端口0)和SMB130(端口1)的各個位設置自由口模式,并配置自由口通信參數(shù),如波特率、奇偶效驗和數(shù)據(jù)位。 發(fā)送指令(XMT)和發(fā)送中斷:發(fā)送指令允許S7-200的通信口上發(fā)送最多255個字節(jié),發(fā)送中斷通知程序發(fā)送完成。 接受字符中斷:接受字符中斷通知程序通信口上接受到了一個字符,應用程序就可以根據(jù)所用的協(xié)議對該字符進行相關的操作。 接受指令(R
12、CV):接受指令從通信口接收到整條信息,當接收完成后產生中斷通知應用程序。需要在SM存儲器中定義條件來控制接收指令開始和停止接受信息。接受指令可以根據(jù)特定的字符或時間間隔來啟動和停止接受信息。接受指令可以實現(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)建用戶程序來模擬
13、另外一種網絡上的從站器件。例如S7-200的用戶程序模仿一個Modbus從站。STEP7-Micro/WIN提供Modbus協(xié)議庫。 4.? 采用自定義通信協(xié)議與PC通信。PC上的應用軟件可以采用此方法方便的訪問S7-200的數(shù)據(jù)。這是第三方軟件訪問S7-200PLC比較簡便,廉價的方法。 對于自由口通訊,西門子的很多資料都做了比較詳細的介紹,其中還包含了大量的例子程序。由于通訊的不可見性,很多人還是不能很好的掌握,我建議大家: 1、理解什么是通訊、什么是串口、什么是232、什么是485?沒有過硬的硬件知識是不可能做出通訊的,你連線都不知道怎么接,怎么調試你的程序?
14、 2、仔細閱讀西門子關于通訊的資料,不需要多只需要精,因為各種版本的資料基本是一樣的,關鍵就是SMB30、SMB86、87、88、89、SMW90、92、SMB94自己控制通訊過程需要SMB2,把這些弄明白了,才有可能做出通訊程序 3、使用PC的通訊軟件協(xié)助調試,有了PC的通訊軟件可以看見通訊過程中的數(shù)據(jù),能夠更方便的調試程序 4、理解各種通訊協(xié)議。大家要注意串口通訊和協(xié)議是2碼事,不論是PPI、MODBUS還是USS它們都有自己的協(xié)議規(guī)范,根據(jù)規(guī)范來寫你就可以實現(xiàn)這種通訊。只不過PPI是不公開通訊協(xié)議的,沒有辦法寫而已! 最后建議大家自己做通訊,起碼會做!至于用
15、不用自己做就要根據(jù)你的實際情況了,西門子提供的庫也是很方便的! 以下是引用yanxiao在2010-12-24? 13:50:10的發(fā)言: ? 我看過不少問S7200通訊問題的貼子,覺得很多問題并不是S7200的,而是串行通訊的共性問題,也就是對串行通訊本身概念的認識問題。下面我來談談在我的記憶中關于串行通訊的一些認識。 1、串行通訊只有一個傳輸通道,每個時刻只能表達一種狀態(tài)。不管什么介質,不管是什么信號,我們用1表示一種狀態(tài),用0表示另一種狀態(tài)。 2、只用1和0兩種狀態(tài),是不能表達更多信息的。好在有一個物理量,對每個系統(tǒng)來講是統(tǒng)一的,那就是時間。我們現(xiàn)在很容易做到不同系統(tǒng)之間
16、的定時誤差控制在PPM數(shù)量級。1和0在時間上進行有序的組合,就可表達近乎無限的信息。 3、任何一個信號,如果不賦給它一些特點的意義,實際上沒什么用。兩個系統(tǒng)要通過信號交換信息,必須對信號有一個共同的約定,這就是我們通常所說的協(xié)議。 4、最基本的協(xié)議是物理層面的(那個OSI的七層協(xié)議模型,第一層就是物理層協(xié)議)。RS232、RS485、RS422,這些是物理層面的一些協(xié)議。 5、我們現(xiàn)在要談的是異步串行通訊。異步,發(fā)達方和接收方之間,沒有額外的通道來傳送信息何時傳送與接收。每個信息單元的起止時間,發(fā)送方編在信息中,由接收方自已解碼并同步。 6、 好?,F(xiàn)在來講一下傳送一個字
17、節(jié)的過程。在沒有傳送信息時,傳輸線處于空閑狀態(tài)。規(guī)定:空閑狀態(tài)為1。發(fā)送方(TX)準備發(fā)送,驅動傳輸線讓它由1變?yōu)?, 并持一位的時間長度,我們把這一位叫做起始位。接收方(RX),檢測到傳輸線由1變0,意味著可能有信息要傳了,RX就持續(xù)檢測,以驗證這個0是不是持續(xù) 了規(guī)定的一位時間長度,若是個合法的起始位,就按約定的定時方式,把后續(xù)的傳輸線狀態(tài),接收為1個字節(jié)。TX在發(fā)完起始位后,就發(fā)字節(jié)中的第一個位 (bit),并依次把字節(jié)中的所有位發(fā)完,每bit均持續(xù)相同的一位時長。然后再發(fā)校驗位(如果約定發(fā)/收方都采用的話)、停止位。 7、 停止位,這個要說一下。我們知道起始位是0,而這個停止位,
18、規(guī)定是1,和傳輸線的空閑狀態(tài)1是相同的。停止位規(guī)定的時長比較亂,有1位停止位(也就持續(xù)時 間占1個位長)、1.5位、和2位停止位,其它時長的停止位好象沒見過。停止位的作用,其一是作為一字節(jié)單元的成員,給接收方定時用的,也就是下一個字 節(jié),在停止位之后才開始。另一個作用,可供檢查字節(jié)傳送的完整性。因為停止位是規(guī)定為1狀態(tài)的,若在停止位的時間里測到了非1狀態(tài),表示這個字節(jié)傳送有問 題,有可能被接收方丟棄,傳送失敗。 8、若收發(fā)雙方的停止位不相同,怎么辦?這個在論壇上經常有人問。好,我們來分析一下。若TX是2個 停止位,RX要求是1個停止位,很好,TX多發(fā)的一個停止位,會被RX看作是空閑狀態(tài)(
19、也可認為是字符間隔),沒有任何問題。若反過來,TX是1個停止 位,RX要求是2個停止位,有問題嗎?一般問題是很大的,但也有可能可以正常通訊。這要看TX是怎么發(fā)字節(jié)的。有些系統(tǒng),硬件上,發(fā)送電路比較簡單,沒有 緩沖機構,一個字節(jié)必須完整發(fā)送后,才準備下一個字節(jié)的數(shù)據(jù),而這個準備需要花一些時間的,這就給傳送的時序上,停止位之后,有了空閑時間,相當于停止位 得到了延長。所以我曾經發(fā)過一個貼子說,S7200的發(fā)送改為單字節(jié)發(fā)送,每個字節(jié)之間有意插入一些延時,人為造成空閑時間,以充當停止位,但這個方法說 歸說,我并沒有試過。可惜的是,現(xiàn)在的系統(tǒng),硬件都做得很完美了,包括S7200,TX是有緩沖的,在一個
20、字節(jié)還未發(fā)完前就可以接受下一個要發(fā)送的字節(jié), 硬件上保證一個字節(jié)發(fā)完后可以立即啟動下一個字節(jié)發(fā)送,前后兩字節(jié)間除了停止位,沒有額外的間隙,這種情況下,接收方就要命了,RX認為還在收停止位時, 下一個字節(jié)的起始位就來了,沒辦法完整接收,通訊就失敗了。 9、波特率。兩邊設為一致就可以了。波特率不一致,鐵定不能通訊。但允許有少 量的誤差。停止位實際上還用來調節(jié)這個誤差的。比如1個停止位,RX并不死板要求停止位是完整的1個位時長,實際只要停止位超過0.5個位長就算是合格 了。波特率,就是每秒最快能傳送的位數(shù),包括了起始位、停止位這些輔助位。實際每秒能傳送的最快字節(jié)數(shù),要看這些輔助位的多少。比如一
21、個11位結構的字節(jié) 單元:1起始位+8字節(jié)位+1校驗位+1停止位,字節(jié)最快傳送速率為band/11。好象還有一個概念,叫比特率,也就是有效的位傳送速率,比特率=8* (band/11),也就是比特率比波特率要小的。 10、RS232的TX和RX是兩根獨立的線,收/發(fā)可以同時進行, 所以叫作全雙工異步串行通訊。按我們日常兩人交談的經驗,總是A說B聽,當B要說時,A就停下來聽B說。如果A、B同時說,這是吵架,要達到相互交流就難 了。同樣,通訊若同時收發(fā),一般人會白白死掉很多腦細胞而寫出的程序通訊效果還是很差。所以,即使RS232能雙向同時,? 一般使用時也是收、發(fā)不同時的。 1
22、1、RS485。RS232不錯了,但局限性大大的。RS485收發(fā)同線,允許多少RS485并聯(lián)使 用,電氣采用差分傳送信號,可以抗干擾。S7200就屬于RS485。RS485設備同一時間只能發(fā)或再改,收發(fā)是分時的,所以叫做準雙向。盡管 S7200中可以同時緩沖8個NETR和NETW,實際在RS485層面,還是一個一個分時完成的(由系統(tǒng)程序根據(jù)PPI協(xié)議協(xié)調)。RCV和XMT完全 由用戶程序控制,你就不能同時讓兩個都執(zhí)行,否則就是哄搶資源而被S7200當成錯誤處理。 12、RS422,介于RS232和 RS485。RS422和RS232一樣收、發(fā)線獨立,但電氣上采用和RS485一樣的差分信號
23、。所以RS422能多機通訊,比RS232傳得遠,但比 RS485浪費硬件資源。RS422只要軟件上采用準雙向的規(guī)則,通過發(fā)收線合并,可以簡化為RS485,和RS485設備通訊。但RS485卻不能復雜 化成RS422使用。 以下是引用yanxiao在2010-12-31? 16:00:57的發(fā)言: ? 再談一個于關通訊效率: 這里的通訊效率問題,針對主站。從站,一般根據(jù)主站的請求,及時發(fā)回應答就行了,不存在效率問題。 當主站要同多個從站通訊時,就有一個效率問題。以modbus-rtu為例。 1、定時輪詢。這恐怕是最原始的方法,也是效率最低下的。比如1秒鐘輪詢一個站,如果3個
24、從站,要3秒才輪到1次。 2、 高效的輪詢應該根據(jù)協(xié)議的定時來調整,盡量擠掉不必要的延時。modbus-rtu,3.5個字節(jié)傳送時間作為幀間隔,但是從站的回應時間沒有標準規(guī)定, 要先問清楚。一般的儀表,回應時間都是很短的,幾十ms內都會有回應,你可以把回應超時設在100ms。當然儀表能提供這個超時參數(shù)是最好了。 當主站發(fā)完請求幀后,立即進入接收狀態(tài),隨時準備接收從站的回應。但若到達超時時間還未收到,則放棄繼續(xù)接收,認為從站無響應,進入下一從站的通訊。 3、 如果3個從站只有1個在線上,按理說是通訊速度是最快的,但如果不采取一些策略,則通訊速率會變成最慢的。輪詢一個離線的從站,
25、通訊要等到超時才結束,這 肯定比在線的從站回應要慢得多,因此大部分時間浪費在離線的從站上了。策略是為每一個從站配置1個在線狀態(tài)標記位,當從站有成功回應的,標記位=1,表示 在線,若該從站連續(xù)N次(2次)沒有回應或出錯,置標記位=0,表示離線。 對于在線的從站,按正常順序輪詢,而離線的從站,則每隔一定時間或每隔一定的輪詢周期,發(fā)一個請求給它,若有回應且正確,則置標記位為1,認為該從站已回到在線狀態(tài),若沒有回應或出錯,則繼續(xù)保持離線狀態(tài)。這樣,可以把花在離線從站的通訊時間,控制在一個合理的范圍。 以下是引用鼠老爹在2011-01-01? 23:46:42的發(fā)言: ? yanxiao的方案
26、很在理,我做PC與PLC通訊所采用的策略基本如此。當時并不在乎效率,而是為了監(jiān)視PLC的狀態(tài)。因為下位機的開啟是隨機的。 在PLC與第三方儀表的通訊中,我還沒有這樣做過。在我的理念中,只有實時性要求不是很高的場合,與第三方儀表之間才會采用通訊的方式交換數(shù)據(jù)。因為第三方儀表通常只能作為從站,等待PLC的數(shù)據(jù)請求,實時性無法得到保障。因此,我認為PLC在通訊上的效率已經無所謂了。 就 像現(xiàn)在正在做的一個項目,PC連著數(shù)臺PLC,每臺PLC要輪詢16臺儀表的32個數(shù)據(jù),波特率只能是2400(其它波特率不太容易匹配),每臺PLC還 要同時處理16個模擬量,下位機分布面積很大??紤]通訊的可靠
27、性,PLC每2秒鐘問一個儀表。這樣走一圈就需要半分鐘。選擇通訊是因為這些數(shù)據(jù)本身的變化 速率很慢,且不需要控制,只要監(jiān)視記錄就行了,無需考慮實時性。用戶甚至提出每5分鐘讀一次數(shù)據(jù)??紤]到PC的屏幕上等待5分鐘跳一次數(shù)據(jù)對操作者實在是 一種折磨,還是把輪詢的周期定在1分鐘(因為想偷懶,暫時還不想進一步縮短周期)。定時也沒有什么精度要求,直接用SM0.4的上升沿來觸發(fā)。 在這種情況下,不在乎下位機是否在線對通訊效率的影響,而是在乎下位機狀態(tài)是否能在監(jiān)視終端的PC上顯示出來,避免無效數(shù)據(jù)被壓入數(shù)據(jù)庫。 yanxiao為大家提供了一種邏輯方法,若用戶有此類要求,不妨一試。 以下是引用一粒
28、塵在2010-12-29? 15:57:27的發(fā)言: ? 下面是我從MICRO/WIN幫助文件里改的一段自由口通信程序,實現(xiàn)接收到后(結束字為H0A),再發(fā)回去。 1、補充了發(fā)送完成中斷啟動接收服務程序 2、增加了模式開關切換通信口的模式,當開關切換由RUN切換到TERM時,為PPI從屬模式;當開關由TERM切換到RUN時,P0口為自由口模式。 3、上一條有局限性,在用軟件啟動和停止PLC時,P0口初始化為自由口,不論PLC模式開關是在TERM還是RUN位置 程序如下 ORGANIZATION_BLOCK? 主程序:OB1 TITLE=程序注釋
29、 BEGIN Network? 1? //? ? 主程序 LD? ? ? ? ? SM0.1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //? 首次掃描時, MOVB? ? ? 16#09,? SMB30? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //? 初始化自由端口: ? //? -? 選擇9600波特 ? //? -? 選擇8個數(shù)據(jù)位 ? //? -? 選擇無校驗 MOVB? ? ? 16#B0,? SMB87? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //
30、? 初始化RCV信息控制字節(jié): ? //? -? RCV被啟用 ? //? -? 檢測到信息字符結束 ? //? -? 將空閑行條件檢測為 ? //? 信息開始條件。 MOVB? ? ? 16#0A,? SMB89? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //? 將信息字符結束設為hex? OA(換行符)。 MOVW? ? ? +5,? SMW90? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //? 將空閑行超時設為5毫秒。 MOVB? ? ? 100,? SMB94? ? ? ? ? ? ?
31、 ? ? ? ? ? ? ? ? ? ? ? //? 將最大字符數(shù)設為100。 ATCH? ? ? INT0,? 23? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //? 將中斷附加在接收完成事件上。 ATCH? ? ? INT2,? 9? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //? 將中斷2附加在傳送完成事件上。 ENI? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //? 啟用用戶中斷 RCV? ? ? ? V
32、B100,? 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //? 為端口0在VB100位置啟用帶緩沖區(qū)的接收服務 Network? 2? LD? ? ? ? ? SM0.7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //PLC上模式開關狀態(tài): ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //"RUN"時,SM0.7=1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
33、 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //"TERM"時,SM0.7=0 EU O? ? ? ? ? ? SM0.1 S? ? ? ? ? ? SM30.0,? 1 R? ? ? ? ? ? SM30.1,? 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //[SM30.1? ? SM30.0]=[0? 1]為P0口為自由口通信 RCV? ? ? ? VB100,? 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //切換到自由口后,先開接收服務 LD?
34、 ? ? ? ? SM0.7 ED R? ? ? ? ? ? SM30.0,? 2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //[SM30.1? ? SM30.0]=[0? 0]為P0口為PPI從屬模式 END_ORGANIZATION_BLOCK INTERRUPT_BLOCK? INT_0:INT0 TITLE=中斷程序注釋 BEGIN Network? 1? //? ? 中斷0 //? ? 接收完成中斷例行程序 LDB=? SMB86? 16#20? //? 如果接收狀態(tài)顯示接
35、收結束字符, MOVB? 10? SMB34? //? 則附加一個10毫秒計時器, ATCH? INT_1? 10? //? 觸發(fā)傳送 CRETI? //? 并返回。 NOT RCV? VB100? 0? //? 如果因任何其他原因接收完成, ? //? 則開始新的接收。 END_INTERRUPT_BLOCK INTERRUPT_BLOCK? INT_1:INT1 TITLE=中斷程序注釋 BEGIN Network? 1? //? ? 中斷1 //? ? 10毫秒計時器中斷 LD? SM0.0
36、 DTCH? 10? //? 分離計時器中斷 XMT? ? ? ? VB100,? 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //? 將信息傳送端口0中的用戶 Network? 2? //? 網絡標題 END_INTERRUPT_BLOCK INTERRUPT_BLOCK? INT_2:INT2 TITLE=中斷程序注釋 BEGIN Network? 1? //? 網絡標題 LD? ? ? ? ? SM0.0 RCV? ? ? ? VB100,? 0? ? ? ? ? ? ?
37、 ? ? ? ? ? ? ? ? ? ? ? ? ? //準備接收 END_INTERRUPT_BLOCK 以下是引用LaoHuai在2010-12-27? 23:04:36的發(fā)言: ? quote: 以下是引用happy? Julia在2010-12-27? 21:30:45的發(fā)言: ? 在這里真是受益非淺呀。 可還有許多不明白的,發(fā)送指令XMT很容易啦,可是接收指令RCV怎么那么多起始和結束條件??吹奈叶紩灹?,各位大俠能給我簡單講講嗎,大概是什么意思?我應該選擇什么樣的起始和結束條件呀? 條件多,給你選擇的就多。再看幾遍就能明白了。 如果覺得
38、RCV麻煩,那就用字符中斷方式接收數(shù)據(jù),只要連接一個中斷就可以了,但要一個一個收。 這個問題說起來和理解起來確實挺讓人頭疼的,但個人認為這是個非常好的問題,如果能把這部分理解清楚了,對于S7-200自由口的應用應該有很大的幫助。 這里大概講一下自己的理解,其他的大俠們可以補充和更正: 以接收結束消息方式為例,通信伙伴的數(shù)據(jù)是一幀一幀發(fā)送的,比如通信伙伴每隔? 100ms? 發(fā)送一幀? 01? 02? 03? 04? 05? 給S7-200,S7-200接收這些數(shù)據(jù),那么我們有幾種方法可以正確接收到這些數(shù)據(jù): 1、 指定空閑線時間(可以理解為兩幀數(shù)據(jù)之間的間隔)為50
39、ms(小于發(fā)送間隔時間100ms),則當發(fā)送完第一幀? 01? 02? 03? 04? 05? 后,啟動空閑時間檢測,超過50ms即認為一幀數(shù)據(jù)結束,準備接收下一幀數(shù)據(jù)。這可以看做是“字符間定時器”結束消息方式。 2、指定接收結束字符為05,則當接收到? 01? 02? 03? 04? 05? 后,即收到結束字符05后,認為一幀數(shù)據(jù)結束,再接收到的? 01? 02? 03? 04? 05? 認為是下一幀數(shù)據(jù),依此類推。這可以看做是“結束字符檢測”結束消息方式。 3、指定接收數(shù)據(jù)長度為5,則收到? 01? 02? 03? 04? 05? (5個字符)后,即認為一幀數(shù)據(jù)結束,再接收到的
40、? 01? 02? 03? 04? 05? 認為是下一幀數(shù)據(jù),依此類推。這可以看做是“最大字符計數(shù)”結束消息方式。 4、其他條件還包括“消息定時器”、“奇偶效驗錯誤”、“用戶終止”等結束消息的方式,或者這些條件的組合作為結束消息的方式。 那么在應用中選擇哪種結束消息的方式,要具體情況具體分析。這話說起來很空洞,但確實如此,因為自由口通信本身就決定了,不同的通信對象間的數(shù)據(jù)幀格式(或協(xié)議)是設備廠家自由定義的,這就要求事先充分理解通信協(xié)議,并在此基礎上進行選擇。 另 外一方面,如果能靈活掌握這部分內容,還可以解決一些實際問題。比如大家都知道數(shù)據(jù)要接收到接收緩沖區(qū),而接收緩沖區(qū)的
41、大小是有限制的(255個字節(jié)), 那么怎么能夠接收到大于255個字節(jié)的數(shù)據(jù)呢(緩沖區(qū)溢出后前面的數(shù)據(jù)被覆蓋)?可以考慮設置“最大字符計數(shù)”為結束消息方式,將數(shù)據(jù)分為多個部分依次進 行接收。 以上理解沒有考慮s7-200的具體應用細節(jié),詳細的技術細節(jié)可以參考手冊說明,僅供參考。 quote: 以下是引用一粒塵在2010-12-30? 10:48:22的發(fā)言: ? quote: 以下是引用半瓶醋在2010-12-29? 21:39:10的發(fā)言:以接收結束消息方式為例,通信伙伴的數(shù)據(jù)是一幀一幀發(fā)送的,比如通信伙伴每隔? 100ms? 發(fā)送一幀? 01? 02? 03? 04? 05
42、? 給S7-200,S7-200接收這些數(shù)據(jù),那么我們有幾種方法可以正確接收到這些數(shù)據(jù): 1、指定空閑線時間(可以理解為兩幀數(shù)據(jù)之間的間隔)為50ms(小于發(fā)送間隔時間100ms),則當發(fā)送完第一幀? 01? 02? 03? 04? 05? 后,啟動空閑時間檢測,超過50ms即認為一幀數(shù)據(jù)結束,準備接收下一幀數(shù)據(jù)。這可以看做是“字符間定時器”結束消息方式。 請教,這種空閑線時間結束,也能觸發(fā)接收完成中斷嗎?SMB87該設置成多少呢? 1.“每接收一個字符會產生一次中斷”; 2.“每接收一個結束字符會產生一次中斷”。 兩個指的不是同一個中斷? ,1是指中斷號8、25
43、,2是指中斷號23、24 1、“字符中斷”指的是SMB2每接收一個字符即產生一次中斷。 2、“結束字符中斷”指的是接收緩沖區(qū)出現(xiàn)指定的結束字符時產生一次中斷。 串口通訊協(xié)議都是由數(shù)個或更多的字符(字節(jié))組成一幀,每個字符都有各自特定的意義。 對 S7-200來說,接收到的每個字符都要從SMB2中過一遍。因此對于簡單的通訊協(xié)議,可以利用SMB2的字符接收中斷逐個讀取字節(jié),并排列成一個信息 幀。但是這樣的做法有個缺陷,即SMB2不斷地發(fā)出中斷請求;如果信息幀較長,處理一次所占用的資源較多。一旦出現(xiàn)中斷排隊,不僅影響其它的程序運行,還 有可能影響通訊的準確率。而采用RCV指令的結
44、束字符中斷,可以等待通訊的信息幀全部接收完畢(數(shù)據(jù)保存在接受緩沖區(qū)內)再一次性處理這些數(shù)據(jù)。 quote: 以下是引用LaoHuai在2010-12-24? 11:42:19的發(fā)言: ? 我來發(fā)幾個SMB2的例子(特別適合初學者): SMB2為自由口接收字符的暫放區(qū),從端口0或端口1接收的每個字符都放在這里。 SMB2只能存放一個字節(jié)字符,而對方發(fā)送的一幀可能是很多字符,所以在接收到下個字符之前,應該在中斷里將接收到的字符移走。 每接收一個字符會產生一次中斷,端口0產生中斷事件8,端口1產生中斷事件25。 例1:通訊方法(用串口調試軟件)控制PLC的輸出:
45、 PLC寫入如下程序:比如向PLC發(fā)1時,Q0.0亮,發(fā)2,那么Q0.1亮,發(fā)255,那么從Q0.0到Q0.7都亮,發(fā)送0,則都不亮。 LD? ? ? ? ? SM0.1 MOVB? ? ? 9,? SMB30 ATCH? ? ? INT_0,? 8。 ENI INT_0: LD? ? ? ? ? SM0.0 MOVB? ? ? SMB2,? QB0? 用串口調試軟件向PLC發(fā)1時,Q0.0亮,發(fā)2,那么Q0.1亮,發(fā)255,那么從Q0.0到Q0.7都亮,發(fā)送0,則都不亮,你可以試試。 串口調試軟件設置:96
46、00波特率,數(shù)據(jù)位8,停止位1,無奇偶校驗。 例2:如果有2個PLC,那么將兩個通訊口(PORT0)3? 3接,8? 8接。如果只有一個PLC,那么用串口調試軟件當主站也可以。 主站程序:向從站發(fā)送4個字節(jié)的數(shù)據(jù)。 網絡1: LD? ? ? ? ? SM0.1 MOVB? ? ? 9,? SMB30 MOVB? ? ? 4,? VB0 MOVB? ? ? 1,? VB1 MOVB? ? ? 2,? VB2 MOVB? ? ? 3,? VB3 MOVB? ? ? 4,? VB4 網絡2: LD? ?
47、? ? ? SM0.5 EU XMT? ? ? ? VB0,? 0? ? ? ? ? ? ? ? ? //? 每秒發(fā)送一次 從站程序1: MAIN:OB1 LD? ? ? ? ? SM0.1 MOVB? ? ? 9,? SMB30 ATCH? ? ? INT0,? 8 ENI INT_0:INT0 LD? ? ? ? ? SM0.0 MOVB? ? ? SMB2,? VB10 ATCH? ? ? INT1,? 8 INT_1:INT1 LD? ? ? ? ? SM0.0 MOVB?
48、 ? ? SMB2,? VB11 ATCH? ? ? INT2,? 8 INT_2:INT2 LD? ? ? ? ? SM0.0 MOVB? ? ? SMB2,? VB12 ATCH? ? ? INT3,? 8 INT_3:INT3 LD? ? ? ? ? SM0.0 MOVB? ? ? SMB2,? VB13 ATCH? ? ? INT0,? 8 如果主從站同時啟動,或者從站啟動比主站啟動早,那么VB11=1,VB12=2,VB13=3,VB14=4. 如果主站先發(fā)送,那么VB11就不一定是1了,可能是
49、2或3或4。 從站程序2: MAIN:OB1 LD? ? ? ? ? SM0.1 MOVB? ? ? 0,? VB10 MOVB? ? ? 9,? SMB30 MOVD? ? ? &VB10,? VD80 ATCH? ? ? INT_0:INT0,? 8 ENI INT_0:INT0 Network? 1 LD? ? ? ? ? SM0.0 INCB? ? ? MB10 MOVB? ? ? SMB2,? *VD80 INCD? ? ? VD80 Network? 2 LDB=
50、? ? ? MB10,? 4 MOVB? ? ? 0,? MB10 -D? ? ? ? ? +4,? VD80 這個例子只是比上個例子少了3個中斷而已。 從站程序3: MAIN:OB1 LD? ? ? ? ? SM0.1 MOVB? ? ? 9,? SMB30 ATCH? ? ? INT0,? 8 ENI INT_0:INT0 Network? 1 LDB<>? ? SMB2,? 1 CRETI Network? 2 LD? ? ? ? ? SM0.0 MOVB? ? ? S
51、MB2,? VB10 ATCH? ? ? INT1,? 8 INT_1:INT1 LD? ? ? ? ? SM0.0 MOVB? ? ? SMB2,? VB11 ATCH? ? ? INT2,? 8 INT_2:INT2 LD? ? ? ? ? SM0.0 MOVB? ? ? SMB2,? VB12 ATCH? ? ? INT3,? 8 INT_3:INT3 LD? ? ? ? ? SM0.0 MOVB? ? ? SMB2,? VB13 ATCH? ? ? INT0,? 8 如果
52、1是起始字符,那么在中斷0里加個判斷,就不會發(fā)生接收數(shù)據(jù)錯位的問題。 以下是引用LaoHuai在2010-12-23? 11:45:24的發(fā)言: ? 我覺得做自由口通訊時容易出現(xiàn)的幾個問題: 1? ? 0009? ? ? 端口0中同時執(zhí)行XMT/RCV ? ? ? 000B? ? ? 端口1中同時執(zhí)行XMT/RCV 經常有人問,程序里只發(fā)送(XMT),怎么會出現(xiàn)同時執(zhí)行XMT/RCV呢? 其實這個有4種可能: 發(fā)送沒結束,又執(zhí)行發(fā)送 接收沒結束,又執(zhí)行接收 發(fā)送沒結束,又執(zhí)行接收 接收沒結束,又執(zhí)行發(fā)送 有3種解決方法:
53、 a? 用沿來執(zhí)行。 b? 在中斷程序里來執(zhí)行。 c? XMT用? SM4.5/? SM4.6來執(zhí)行,RCV根據(jù)SMB86的條件來執(zhí)行。 2? 發(fā)送結束可以(應該)立即執(zhí)行接收,但接收結束不能立即發(fā)送,應該延時發(fā)送。 3? 用字符中斷方式接收數(shù)據(jù)時,中斷程序應該足夠短,否則會丟數(shù)據(jù),中斷程序執(zhí)行的時間應該小于傳送一個字節(jié)數(shù)據(jù)所需的的時間。 以下是引用鼠老爹在2010-12-31? 12:53:40的發(fā)言: ? 手冊上給出的一些自由口通訊示例,S7-200多以從站的面目出現(xiàn)。因此在邏輯上,PLC等待網絡上的數(shù)據(jù)請求,再發(fā)送應答數(shù)據(jù);發(fā)送完畢后再次
54、啟動接收。 如果PLC作為主站請求第三方儀表的數(shù)據(jù),且使用的是自定義通訊協(xié)議在編程的時候會遇到一些看起來很奇怪的現(xiàn)象。以下是我在編通訊程序時遇到的問題和解決方法: 1、剛開始,按照一般的程序邏輯設置使用XMT和RCV指令。對儀表的輪詢都很正常,沒有異常情況發(fā)生。自以為程序走通了。 2、偶然切斷了個別從站(在現(xiàn)場這種情況是很普遍的),發(fā)現(xiàn)整個通訊全部歇菜了。重啟PLC,頭幾臺儀表的通訊正常,但是到了被切斷的從站又OVER了。 3、檢查PLC的狀態(tài)信息,看不出異常。監(jiān)控RS485總線,發(fā)現(xiàn)走過了空站號后PLC的XMT發(fā)送不出信息。 4、于是用VB寫了一個從站的模擬程序
55、與PLC通訊。從監(jiān)控上看出,從站有應答,RCV正常處理接受信息后,XMT的發(fā)送沒問題。而從站沒有應答,RCV始終在等待,XMT便無法發(fā)送信息。 5、因此PLC端必須考慮終止接收。反復使用了幾種方法,最終選用了定時關閉接受功能的方法。 6、在程序的初始化中配置通訊口和接收控制參數(shù),然后將SM87.7(SM187.7)復位。 7、XMT執(zhí)行后將SM87.7(SM187.7)置位,啟動接收以及一個定時器。 8、無論有否應答,都由定時器去處理信息并關閉RCV功能,等待下一個通訊。 9、 RCV指令在主程序中由SM0.0使能。這點很重要。因為SM87.7(SM187.7)被
56、修改后,必須執(zhí)行一次RCV指令才能啟停接收功能,所以RCV 作為“指令”始終被執(zhí)行不會影響整個程序的邏輯關系,且程序看上去也簡潔,其它地方只要操作SM87.7(SM187.7)即可。 另外,在和一些集成了RS485端口的儀表做通訊時,發(fā)現(xiàn)波特率的匹配上會有些問題。主要原因還是對主頻進行分頻后時鐘脈沖引起的誤差。這點上西門子的PLC適應性比較強,而合信的PLC適應性差一些。 有 網友問到“PLC能否同時與不同波特率的對象通訊”的問題,竊以為可以解決。SMB30(SMB130)隨時可以賦值,也就是說用戶可以即時修改自由口的 配置。按此邏輯,只要在XMT和RCV使能之前定義SMB30(S
57、MB130)就可以了。這一點與VB對COMM口的配置是一樣的;如果程序中沒有操作 COMM配置的指令,VB就按控件特性欄中的配置執(zhí)行;如果程序中有配置指令,就按程序的配置指令執(zhí)行。 以下是引用困惑迷茫求助在2011-01-04? 09:51:24的發(fā)言: ? 我曾經使用過自由口通信,與36個儀表同時通訊,正常情況下通訊很好,可是只要其中一個儀表出現(xiàn)通訊中斷后,整個通訊就全部崩潰,無法執(zhí)行,請問那位高手能指點下,為什么會出現(xiàn)該問題 與 多個設備進行通信時這時常見的問題,主要是因為在程序上缺少對錯誤時的考慮,也就是只考慮了在正常情況下怎么去進行輪詢,而忽略了當伙伴沒有響應或響應數(shù) 據(jù)不對時的
58、處理。錯誤處理的機制和方法在很大程度上影響著通信的質量和效率,而我們往往不注意這方面,高級的開發(fā)者一般習慣先考慮錯誤處理:)。錯誤處理 的方法在于應用者的需求,對于簡單的應用可以對錯誤進行相對簡單的處理,比如在規(guī)定的時間內,某個伙伴沒有響應時直接跳過對這個站的請求。 這里大家也不妨分享一下自己在錯誤處理方面經常所采用的方法。 以下是引用LaoHuai在2011-01-11? 13:42:41的發(fā)言: ? PLC做主站的時候,不管PLC連接的是單從站還是多從站,主站程序都應該考慮到從站會發(fā)生故障,從站故障有兩種,一種是有故障,但不影響和主站通訊,另一種是有故障,不能和主站通訊,
59、例如從站掉電,通訊線故障或者從站本身故障導致的不能和主站通訊。 對于后者,主站在發(fā)送后,從站是不會回復數(shù)據(jù)的,主站不能等,而應該結束RCV接收狀態(tài),然后發(fā)送,那么為什么和如何結束RCV接收狀態(tài)呢? 一? 為什么要結束RCV接收狀態(tài)呢? 發(fā)送指令XMT將數(shù)據(jù)發(fā)送出去就完事,而接收RCV不一樣,一次完整成功的RCV過程需要以下步驟: 1? 使能位:SM87.7=1/SM187.7=1,執(zhí)行RCV的時候會檢查該位 2? 執(zhí)行RCV 3? 等待消息起始條件 4? 接收信息 5? 等待消息結束條件 6? 退出接收狀態(tài) RCV指令
60、啟動后并不一定就接收消息,如果消息起始條件沒有達到,那就一直處于等待接收的狀態(tài); 如果消息始終沒有開始或者結束,通信口就一直處于接收狀態(tài)。這時如果嘗試執(zhí)行XMT指令,就不會發(fā)送任何消息。 所以要結束接收RCV接收狀態(tài)后才能執(zhí)行XMT。 二:如何結束RCV接收狀態(tài)? 手冊上給出6種結束條件: 1.結束字符檢測 2.字符間計時器 3.信息計時器 4.最大字符計數(shù) 5.校驗錯誤 6.用戶終止 方法1:前4種條件在從站發(fā)生通訊故障后就失效了,必須要配合用戶終止 一般執(zhí)行XMT后,在發(fā)送完成中斷里執(zhí)行RCV,
61、同時啟動定時中斷或者啟動定時器或者執(zhí)行開始間隔時間BITIM,計時時間到復位使能位SM87.7/SM187.7,同時執(zhí)行RCV,這樣結束RCV指令,比如定時中斷里發(fā)送: LD? ? ? ? ? SM0.0 R? ? ? ? ? ? SM87.7,? 1 RCV? ? ? ? VB0,? 0 S? ? ? ? ? ? SM87.7,? 1 LD? ? ? ? ? SM0.0 DTCH? ? ? 10 LD? ? ? ? ? SM0.0 XMT? ? ? ? VB100,? 0 方法2:設置:SMB87=16#9C,?
62、SMW90/SMW190=0,SMW92/SMW192=x 執(zhí)行RCV指令x毫秒后自動結束接收狀態(tài)。 如果用的是字符中斷方式接收信息,那么將中斷分離后即可發(fā)送 DTCH? ? ? 8 XMT? ? ? ? VB100,? 0 很多人說某個從站故障后,整個通訊就斷了,那么問題可能就出在這里。 以下是引用happy? Julia在2011-01-14? 09:46:14的發(fā)言: ? 看來用過自由口通信的高手真多呀,各位大俠能不能分享一下在實際工程項目中都遇到了哪些問題,都是怎么解決的呀,也好讓我們這些初次使用的以后少走彎路,遇到問題也知道如何處理了
63、。先謝謝了。 頂,支持175樓,如果大家分享的實際問題越多,我們才會收獲更大呀。 這里說一下我曾經遇到的問題: 1.剛做自由口編程時,一下載下去,編程軟件就無法和CPU通信了,后來打到停止狀態(tài),CPU才恢復PPI,可以正常監(jiān)控,下載了。 2.還有一次自由口用RCV接收,接收到的數(shù)據(jù)總是一部分,不全,反復檢查做實驗,才發(fā)現(xiàn)原來是結束的定時器時間設短了,導致數(shù)據(jù)沒有接收完,RCV就結束了,增大了時間,一切就OK了。 以下是引用大個笨熊在2011-01-20? 14:10:36的發(fā)言: ? 用結束字符作為結束條件的時候,如果與設備的通信斷了,CPU就會停滯在接受狀態(tài),之后的發(fā)送也不成功了,通訊也徹底斷了。 后來別人教我在發(fā)送前面用復位SMB87.7結束發(fā)送就好了。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇教版五上《小數(shù)乘整數(shù)》ppt課件
- 蘇教版一年級數(shù)學上冊《數(shù)一數(shù)》ppt課件
- 江南1優(yōu)秀課件
- 提高印字質量課件
- 服務分銷策略課件
- 數(shù)學必修蘇教版互斥事件課件3(共32張PPT)
- 第三章要素費用的核算PPT優(yōu)秀資料
- 元素的質量分數(shù)計算答案
- 圖形的欣賞與設計
- 八年級下期Uuit10SectionA課件
- 部編七年級語文下冊4孫權勸學課件
- 部編一年級語文下冊端午粽課件
- 超市防損的技能課件
- 表彰班會教學課件教學課件
- 第17講中考數(shù)學專題復習 函數(shù)的綜合應用中考數(shù)學專題復習課件課件各版通用