




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、STEP7 編程常見錯誤Mistakes in Programming with STEP7Getting StartedEdition (2008 年 11 月)摘要本文檔主要用于討論以下相關(guān)問題:STEP7 編程中常見錯誤常見錯誤的分析及避免方法關(guān)鍵詞Step7;梯形圖;語句表;編程;錯誤Key WordsStep7;LAD;STL;Programming;MistakeIA&DT Service & Support39目錄HYPERLINK #1STEP7 HYPERLINK #1編程常見錯誤 HYPERLINK #11HYPERLINK #1 HYPERLINK #51.HYPERLI
2、NK #5 HYPERLINK #5前言 HYPERLINK #55HYPERLINK #5 HYPERLINK #52.HYPERLINK #5 HYPERLINK #5STEP7 HYPERLINK #5編程常見的錯誤例子 HYPERLINK #55HYPERLINK #5 HYPERLINK #52.1.HYPERLINK #5 HYPERLINK #5簡單錯誤 HYPERLINK #55HYPERLINK #5 HYPERLINK #52.1.1.HYPERLINK #5 HYPERLINK #5地址超范圍HYPERLINK #55HYPERLINK #5 HYPERLINK #62.
3、1.2.HYPERLINK #6 HYPERLINK #6對指令不熟悉HYPERLINK #66HYPERLINK #6 HYPERLINK #62.1.3.HYPERLINK #6 HYPERLINK #6地址重疊HYPERLINK #66HYPERLINK #6 HYPERLINK #62.2.HYPERLINK #6 HYPERLINK #6循環(huán)程序錯誤 HYPERLINK #66HYPERLINK #6 HYPERLINK #72.2.1.HYPERLINK #7 HYPERLINK #7循環(huán)程序初始化HYPERLINK #77HYPERLINK #7 HYPERLINK #82.2.
4、2.HYPERLINK #8 HYPERLINK #8循環(huán)程序執(zhí)行時間HYPERLINK #88HYPERLINK #8 HYPERLINK #92.2.3.HYPERLINK #9 HYPERLINK #9循環(huán)程序累加控制HYPERLINK #99HYPERLINK #9 HYPERLINK #92.3.HYPERLINK #9 HYPERLINK #9數(shù)據(jù)類型匹配不嚴謹 HYPERLINK #99HYPERLINK #9 HYPERLINK #92.3.1.HYPERLINK #9 HYPERLINK #9STLHYPERLINK #9指令數(shù)據(jù)類型匹配HYPERLINK #99HYPERL
5、INK #9 HYPERLINK #102.3.2.HYPERLINK #10 HYPERLINK #10數(shù)據(jù)類型匹配與浮點數(shù)運算HYPERLINK #1010HYPERLINK #10 HYPERLINK #112.3.3.HYPERLINK #11 HYPERLINK #11浮點數(shù)運算與比較指令HYPERLINK #11 11HYPERLINK #11 HYPERLINK #112.4.HYPERLINK #11 HYPERLINK #11語句執(zhí)行先后順序 HYPERLINK #11 11HYPERLINK #11 HYPERLINK #132.5.HYPERLINK #13 HYPERL
6、INK #13上升(下降)沿不工作 HYPERLINK #1313HYPERLINK #13 HYPERLINK #152.6.HYPERLINK #15 HYPERLINK #15定時器不工作 HYPERLINK #1515HYPERLINK #15 HYPERLINK #172.7.HYPERLINK #17 HYPERLINK #17定時器的定時與程序掃描周期 HYPERLINK #1717HYPERLINK #17 HYPERLINK #182.8.HYPERLINK #18 HYPERLINK #18軟定時器的使用 HYPERLINK #1818HYPERLINK #18 HYPER
7、LINK #182.9.HYPERLINK #18 HYPERLINK #18計數(shù)器不工作 HYPERLINK #1818HYPERLINK #18 HYPERLINK #182.10.HYPERLINK #18 HYPERLINK #18數(shù)據(jù)塊錯誤 HYPERLINK #1818HYPERLINK #18 HYPERLINK #182.10.1.HYPERLINK #18 HYPERLINK #18打開數(shù)據(jù)塊錯誤HYPERLINK #1818HYPERLINK #18 HYPERLINK #192.10.2.HYPERLINK #19 HYPERLINK #19數(shù)據(jù)塊尋址長度錯誤HYPERL
8、INK #1919HYPERLINK #19 HYPERLINK #192.10.3.HYPERLINK #19 HYPERLINK #19數(shù)據(jù)塊尋址不嚴謹錯誤HYPERLINK #1919HYPERLINK #19 HYPERLINK #192.10.4.HYPERLINK #19 HYPERLINK #19數(shù)據(jù)塊寄存器使用錯誤HYPERLINK #1919HYPERLINK #19 HYPERLINK #212.10.5.HYPERLINK #21 HYPERLINK #21改變HYPERLINK #21DB HYPERLINK #21寄存器和地址寄存器HYPERLINK #21AR1 H
9、YPERLINK #21操作 HYPERLINK #2121HYPERLINK #21 HYPERLINK #212.10.6.HYPERLINK #21 HYPERLINK #21STRUCTHYPERLINK #21數(shù)據(jù)類型作為HYPERLINK #21 FC HYPERLINK #21或HYPERLINK #21 FB HYPERLINK #21里的地址 HYPERLINK #2121HYPERLINK #21 HYPERLINK #222.10.7.HYPERLINK #22 HYPERLINK #22STRUCT數(shù)據(jù)類型作為 FC 或 FB 的實參被調(diào)用 HYPERLINK #222
10、2HYPERLINK #22 HYPERLINK #232.10.8.HYPERLINK #23 HYPERLINK #23通常情況,DB寄存器不受影響 HYPERLINK #2323HYPERLINK #23 HYPERLINK #242.10.9.HYPERLINK #24 HYPERLINK #24數(shù)據(jù)塊的完整引用方式的優(yōu)缺點 HYPERLINK #2424HYPERLINK #24 IA&DT Service & Support39HYPERLINK #252.11.HYPERLINK #25 HYPERLINK #25在HYPERLINK #25FCHYPERLINK #25的使用當
11、中常見的錯誤 HYPERLINK #2525HYPERLINK #25 HYPERLINK #252.11.1.HYPERLINK #25 HYPERLINK #25ENOHYPERLINK #25的誤解HYPERLINK #2525HYPERLINK #25 HYPERLINK #262.11.2.HYPERLINK #26 HYPERLINK #26停止對HYPERLINK #26FCHYPERLINK #26調(diào)用后引起的故障: HYPERLINK #2626HYPERLINK #26 HYPERLINK #282.11.3.HYPERLINK #28 HYPERLINK #28FCHYP
12、ERLINK #28中臨時變量的使用: HYPERLINK #2828HYPERLINK #28 HYPERLINK #312.11.4.HYPERLINK #31 HYPERLINK #31FCHYPERLINK #31輸出處理HYPERLINK #3131HYPERLINK #31 HYPERLINK #332.12.HYPERLINK #33 HYPERLINK #33調(diào)用HYPERLINK #33FBHYPERLINK #33引起錯誤 HYPERLINK #3333HYPERLINK #33 HYPERLINK #332.12.1.HYPERLINK #33 HYPERLINK #33
13、FBHYPERLINK #33的輸出處理 HYPERLINK #3333HYPERLINK #33 HYPERLINK #332.12.2.HYPERLINK #33 HYPERLINK #33在HYPERLINK #33FBHYPERLINK #33中使用HYPERLINK #33AR2 33HYPERLINK #33 HYPERLINK #352.13.HYPERLINK #35 HYPERLINK #35關(guān)于HYPERLINK #35FC/FBHYPERLINK #35使用的總結(jié): HYPERLINK #3535HYPERLINK #35 HYPERLINK #352.14.HYPERL
14、INK #35 HYPERLINK #35OBHYPERLINK #35塊引起錯誤 HYPERLINK #3535HYPERLINK #35 HYPERLINK #352.14.1.HYPERLINK #35 HYPERLINK #35OBHYPERLINK #35未裝載 HYPERLINK #3535HYPERLINK #35 HYPERLINK #362.14.2.HYPERLINK #36 HYPERLINK #36調(diào)用中斷程序引起的故障HYPERLINK #3636HYPERLINK #36 HYPERLINK #362.15.HYPERLINK #36 HYPERLINK #36項目
15、一致性檢查(數(shù)據(jù)塊,HYPERLINK #36FB, FCHYPERLINK #36更新) HYPERLINK #3636HYPERLINK #36 HYPERLINK #372.16.HYPERLINK #37 HYPERLINK #37例子程序的使用事項 HYPERLINK #3737HYPERLINK #37 HYPERLINK #382.17.HYPERLINK #38 HYPERLINK #38重要聲明: HYPERLINK #3838HYPERLINK #38 HYPERLINK #383.HYPERLINK #38 HYPERLINK #38附錄推薦網(wǎng)址 HYPERLINK #3
16、838HYPERLINK #38 HYPERLINK #383.1.HYPERLINK #38 HYPERLINK #38西門子自動化與驅(qū)動產(chǎn)品的在線技術(shù)支持 HYPERLINK #3838HYPERLINK #38 重要提示:本文為技術(shù)交流文檔,不能作為訂貨、選型等重要事宜的唯一依據(jù),建議用戶參考 Siemens 的標準產(chǎn)品樣本和技術(shù)手冊進行產(chǎn)品的選型和訂貨。IA&DT Service & Support391.前言學(xué)習(xí)任何一種編程語言都不是一件簡單的事情,不可能一朝一夕完成。任何一種編程語言都遍布陷阱(盡管各種編程語言的發(fā)明人盡量避免這種情況的出現(xiàn))。作為編程人員,必須要清楚程序的來龍去脈
17、,否則程序的執(zhí)行結(jié)果就有可能與編寫人員的初衷大相徑庭,甚至造成不必要的財產(chǎn)損失和人身傷害。本文不會講述 STEP7 軟件及編程語言的詳細使用方法,關(guān)于這部分內(nèi)容請用戶參考相關(guān)手冊。在本文中,筆者將會列舉一些 STEP7 編程常見的錯誤,其中一些例子來自工程實例。筆者并未將其直接用于本書,而是將其精簡成易于理解,易于發(fā)現(xiàn)錯誤的例子(刪除工藝因素及無關(guān)邏輯程序干擾)。希望通過對這些例子的講解,用戶能夠減少在編程方面的錯誤,能夠快速地在紛繁復(fù)雜的程序中查找出錯誤所在,加快開發(fā)項目的進度。相關(guān)手冊地址連接:S7-300 和 S7- 400 的梯形圖 (LAD)編程HYPERLINK :/support
18、.automation.siemens /CN/view/zh/18654395S7-300 和 S7-400 的語句表 (STL)編程6S7-300 和 S7-400 的功能塊圖 (FBD)編程HYPERLINK :/support.automation.siemens /CN/view/zh/18652644使用 STEP 7 V5.3編程HYPERLINK :/support.automation.siemens /CN/view/zh/186520562. STEP7 編程常見的錯誤例子2.1. 簡單錯誤下面列舉三個簡單的 STEP7 編程常見的錯誤例子,這三種錯誤是非常常見的,但卻非
19、常容易被忽視:2.1.1.地址超范圍AM3000.0 IA&DT Service & Support39上面這兩條語句相當簡單,語法沒有任何錯誤,可以下載到部分 S7-400 系列 CPU 當中,但是,如果用戶試圖將這兩條語句下載到 CPU315-2DP 當中,那將無法完成,因為 CPU315-2DP 不支持M3000.0 這么大的地址空間。2.1.2.對指令不熟悉同樣以上三條語句是沒有任何語法錯誤的,本意是當 M0.0 由 0 變?yōu)?1 的上升沿位置時,Q0.1 導(dǎo)通一次。但由于 FP 指令是用了與 A 指令相同的地址 M0.0, 所以此處 Q0.1 的狀態(tài)是不會有任何變化的。2.1.3.地
20、址重疊=M11.0 L 0 T MW10與前面的兩個例子一樣,這四條語句是沒有語法錯誤的。但如果這些語句分布在程序的不同位置,由于 MW10 包括了 M11.0,用戶就要考慮對 M11.0 的“寫操作”與對 MW10 的“寫操作”是否存在邏輯沖突的問題了。通過以上三個簡單的例子,可以得出如下結(jié)論:即使再簡單的程序,也存在著出現(xiàn)編程錯誤的可能性。所以在后續(xù)的章節(jié)中,將單獨列舉一些 STEP7 編程中常見的錯誤。 2.2. 循環(huán)程序錯誤用戶在編程過程中,循環(huán)程序的使用是非常常見的。下面例子的初衷為實現(xiàn)一個 500 次的循環(huán)操作(Network2 添加的用戶程序可以被執(zhí)行 500 次)。但是由于沒有
21、考慮下述的幾個因素,使得程序不能正確執(zhí)行。IA&DT Service & Support392.2.1.循環(huán)程序初始化圖 2-1 循環(huán)程序示例(a)首先,程序中沒有 MW0 初始化的語句,一旦循環(huán)程序被多次調(diào)用將發(fā)生錯誤,所以應(yīng)在 LOOP標號前應(yīng)增加如下語句:L 0 T MW0 將編程環(huán)境切換為 STL 格式后,可得到如下程序:IA&DT Service & Support392.2.2.循環(huán)程序執(zhí)行時間圖 2-2 循環(huán)程序示例(b)上圖為比較常見的循環(huán)程序例子,在 network3 處添加了用戶程序后,是不是所有的工作就完成了呢?答案是否定的,我們還需要考慮 CPU 的掃描執(zhí)行周期問題。假
22、設(shè) network3 處所添加的程序為一個或數(shù)個子程序,這些程序執(zhí)行時需要的時間為 A, 用戶其它程序執(zhí)行需要的時間為 B。 那么,A*500+B 的時間總和一定要小于下圖中的 Scan cycle monitoring timems,否則,就有可能由于程序掃描時間超出了 CPU 的監(jiān)控時間而導(dǎo)致 CPU 停機,用戶應(yīng)當將硬件組態(tài)中的程序掃描監(jiān)控時間更改為大于此時間的數(shù)值。IA&DT Service & Support392.2.3.循環(huán)程序累加控制圖 2-3 CPU 掃描監(jiān)控時間這里之所以將循環(huán)程序以 STL 格式顯示,目的在于提示另一個在編寫循環(huán)程序經(jīng)常出現(xiàn)的錯誤。有些編程人員可能會使用
23、MB0 代替上述程序中的 MW0 ,或者不使用加法指令而使用 INC 指令。由于這兩種用法都是字節(jié)操作,如果使用 MB0,由于 MB0 最大為 255,永遠也不會大于 500,所以程序會出現(xiàn)死循環(huán)的情況。而 MW0 作為有符號整數(shù)可以最大支持到+32767,包括了 0-500 的計數(shù)范圍,所以不會出現(xiàn)錯誤。因此,在下文中將強調(diào)數(shù)據(jù)類型的匹配的問題。2.3. 數(shù)據(jù)類型匹配不嚴謹對于任何一門計算機語言,都存在著數(shù)據(jù)類型匹配問題,作為一名有著良好編程習(xí)慣的編程人員應(yīng)當嚴格遵循的數(shù)據(jù)匹配規(guī)則。2.3.1. STL 指令數(shù)據(jù)類型匹配由于 STL 相對于 LAD 對于數(shù)據(jù)類型匹配檢查并不嚴格,所以要求用戶
24、在在使用 STL 編程的時候尤其要注意到這一點。特別提示:無論是否會獲得正確結(jié)果,下列程序是不應(yīng)當出現(xiàn)在程序當中的:IA&DT Service & Support39L 0 L1.000000e+000 +RT MD 0特別提示:而如下的程序的細微區(qū)別也應(yīng)當引起注意:L 10L L#10L MB10L MW10這些操作后的執(zhí)行結(jié)果可以參考 L 指令的 STEP 幫助文件及數(shù)據(jù)類型說明。圖 2-4 L 指令操作結(jié)果注意:裝載不同的數(shù)據(jù)類型,累加器 ACCU1 中的內(nèi)容改寫情況是不同的,例如裝載 MW10 時,ACCU1 的高 16 位將作添加 0 的處理。2.3.2.數(shù)據(jù)類型匹配與浮點數(shù)運算在流
25、量累計編程中經(jīng)常會遇到實數(shù)加法問題,實數(shù)加法運算的注意事項也應(yīng)當引起編程人員的重視,請看下例程序(假設(shè)其在 OB35 中被調(diào)用,目的為每隔一定時間間隔就累計一次流量)L MD0 /累計流量存儲值L MD4 /流量瞬時值+RT MD 0 以上的程序是否存在問題?很多人會認為沒有問題,但實際情況是此程序在運行一段時間后就將出現(xiàn)錯誤。此程序在運行之初是正常的,因為累計流量初始值及流量瞬時值都為一個很小的浮點數(shù),兩數(shù)相加后,結(jié)果正確。但是當一段時間后,累計流量的數(shù)值逐漸增大,當它與瞬時流量的數(shù)值相差很遠的時候,兩者執(zhí)行加法操作后,瞬時流量的數(shù)值將被忽略掉(如 9999990.0 與0.2 做加法操作)
26、。其實具備計算機常識的人都應(yīng)當清楚這一點,這是由于浮點數(shù)的存儲機制造成IA&DT Service & Support39的,是所有計算機方面編程都需要考慮的問題。這個問題可以通過使用二次累加或多次累加的方法來解決。特別提示:避免數(shù)量級相差太多的浮點數(shù)之間進行運算。2.3.3.浮點數(shù)運算與比較指令用戶程序中很多情況下會對浮點數(shù)運算的結(jié)果與預(yù)先設(shè)定值進行比較,例如下面的程序比較MD 與 10.0 是否相等,如果相等的輸出 Q0.0 為 1。 L MD 0 L 1.000000e+001 =R 此程序存在兩個問題:由于浮點數(shù)運算存在誤差,所以 MD0 有可能非常接近于,但總是不等于 10.0, (例
27、如9.999999e+000)如果 MD0 在 10.0 附近數(shù)值波動,有可能造成輸出 Q0.0 輸出頻繁波動,造成輸出點損壞因此,用戶應(yīng)當使用一個范圍比較的方法代替等于數(shù)值比較的方法(例如)。對于輸出點,可以使用 R, S 指令并增加比較延時指令,來減少輸出點的波動情況。 A( L MD 0 L 9.900000e+000 R ) A( L MD 0 L 1.010000e+001 R ) 2.4. 語句執(zhí)行先后順序由于 PLC 掃描程序是由頭至尾依次執(zhí)行的,所以編程人員必須重視程序語句執(zhí)行順序?qū)壿婭A&DT Service & Support39結(jié)果的影響。對于下面的程序相信大家都會判斷
28、 MW0 中最后的執(zhí)行結(jié)果。但是,隨著程序的復(fù)雜性的增加,以及其它干擾因素的出現(xiàn),對于語句執(zhí)行先后順序引起的錯誤,容易被編程人員所忽視。L 0 T MW0 (其它省略的程序段,此時 MW0 的數(shù)值為 0) L 10T MW0 (其它省略的程序段,此時 MW0 的數(shù)值為 10)L 20T MW0 (其它省略的程序段,此時 MW0 的數(shù)值為 20)對于下面程序的例子,大多數(shù)人會認為是正確的,但實際監(jiān)控結(jié)果卻不是這樣。程序原目的: T1 定時器每秒導(dǎo)通一次,C1 及 C3 會每隔一秒鐘,進行一次加 1 操作。故障現(xiàn)象:實際監(jiān)控結(jié)果:C1 工作正常,C3 并未繼續(xù)計數(shù)。圖 2-5 程序語句順序錯誤將上
29、面的程序更改為 STL 格式,可以更清楚看出語句在程序中執(zhí)行的順序。ANM 0.0 = L 0.0 A L 0.0/ IA&DT Service & Support39ANT 1 L S5T#1S SDT 1 /此處如果 T1 定時到,則會重新計時,CUC 1 /C1 得到了上升沿,計數(shù)AL 0.0 /此處的語句將開始新的邏輯,ANT 1 /無法將 RLO 的 0 至 1 的變化送至 C3CUC 3 /C3 無法得到了上升沿,不計數(shù)正確的程序反而更加精減,C1 與 C3 并列出現(xiàn):圖 2-6 程序語句順序正確正確的程序在 STL 格式下的程序為: AN T1 L S5T#1S SD T1 CU
30、 C1 CU C3特別提示:由于 LAD 對程序的語法規(guī)則檢查是自動完成的,所以編程人員可能在使用時更隨意一些,但沒有語法規(guī)則錯誤的程序并不一定會按照編程人員的本意來執(zhí)行。2.5. 上升(下降)沿不工作上升(下降)沿不工作也是一種常見的錯誤,盡管手冊中“P”或“N”指令允許的數(shù)據(jù)類型為:I, Q, M, L, D。但如果沒有特殊目的,僅建議使用 M 及 DB 數(shù)據(jù)類型。如下圖:IA&DT Service & Support39圖 2-7 上升(下降)沿指令使用正確 西門子“P”指令要求使用與前面指令不相同的地址,下圖為錯誤用法:圖 2-8 上升(下降)沿指令使用錯誤 1“P” 指令要避免使用其
31、它程序有寫操作的地址,下圖為錯誤用法:圖 2-9 上升(下降)沿指令使用錯誤 2“P” 指令不應(yīng)使用臨時變量作為存儲地址(臨時變量會隨著系統(tǒng)堆棧變化,這一點將會在后續(xù)章節(jié)詳細講述),下圖為錯誤用法:圖 2-10 上升(下降)沿指令使用錯誤 3IA&DT Service & Support392.6. 定時器不工作有些用戶在使用定時器編程后,發(fā)現(xiàn)定時器并沒有按照自己的意圖去計時工作,出現(xiàn)了不計時錯誤,進而去懷疑硬件是否故障,CPU 是否工作正常等等,浪費了大量的時間和精力。實際上這是由于用戶對定時器特性不了解所造成的誤解。下面的例子將說明這個問題。程序原目的: I4.2 的上升沿觸發(fā) T50,
32、T60 的定時,并在 T60 定時結(jié)束后,復(fù)位故障現(xiàn)象:I4.2 可以觸發(fā) T50, T60 的定時,但有時即使 I4.2 再次將 M12.0 置位為 1 ,T50 不計時?,F(xiàn)象見下圖:圖 2-11 定時器使用錯誤故障分析:首先要明確這個故障現(xiàn)象既不是硬件故障,也不是語句錯誤所引起的,而是對定時器使用不正確IA&DT Service & Support39引起的故障。現(xiàn)在我們分析此故障是如何產(chǎn)生的:1.某個掃描周期,a.I4.2 的上升沿置位,I4.2 恢復(fù)為 0 2.數(shù)個掃描周期后, 掃描周期 N a.當 T60 計時到時,Network2 中 M12.0 被復(fù)位(注意是在 SD T50 語
33、句的后面),此掃描周期末 M12.0 由 1 變?yōu)榱?0 b.Network3 中 T50,T60 被復(fù)位3.掃描周期 N+1a.如果此時 I4.2 恰恰出現(xiàn)上升沿置,盡管 M12.0 在上個掃描周期曾經(jīng)變?yōu)?0,但在本掃描周期開始就變?yōu)榱?1,定時器 T50 在上個掃描周期接受到的 M12.0 狀態(tài)為 1,定時器 T50 在本掃描周期接受到的 M12.0 狀態(tài)也為 1 所以 T50 將不會工作。掃描周期 N-1定時器輸入端狀態(tài)掃描周期 N定時輸入器此信號處讀變化輸入掃描周期 N+1定時器此處讀輸入IA&DT Service & Support圖 2-12 定時器錯誤分析39掃描周期 N-1定
34、時器輸入端狀態(tài)掃描周期 N定時輸入器此信號處讀變化輸入掃描周期 N+1定時器此處讀輸入圖 2-13 定時器正確使用示意在上圖中,定時器在掃描周期 N 與掃描周期 N+1 之間正確地接收到了上升沿的變化,所以能夠正常工作。故障總結(jié):定時器計時需要正確地接收到輸入端上升沿的變化,如果沒有嚴格遵守這一邏輯順序,常見的故障現(xiàn)象為定時器不計時工作。這種故障現(xiàn)象可能很隱蔽,本例的原始程序在實際工作中幾天才會出現(xiàn)一次故障現(xiàn)象。由于原始程序包括大量的附加邏輯,子程序,語句位置也比較分散,所以排除此故障現(xiàn)象所用的時間超過了 3 天。特別提示:此程序改正的方法非常多,例如在置位 M12.0 指令前增加一些限制條件
35、,用戶可以自己嘗試。2.7. 定時器的定時與程序掃描周期在 S7 系列 CPU 中,定時器的最小時基為 10 毫秒。也就是說,S7 系列 CPU 的最小定時時間為10 毫秒。如果用戶程序代碼量比較大,程序掃描周期過了 10 毫秒,可能會出現(xiàn)如下情況:盡管定時時間已經(jīng)到達,但 CPU 還沒有執(zhí)行到相關(guān)的程序邏輯。特別提示:當用戶程序中需要非常短的定時功能時,需要考慮程序掃描周期對定時器狀態(tài)讀取的影響。由于 CPU 中的定時中斷是由硬件來保證的,并且有高于 OB1 的優(yōu)先級, 所以在這種情況下,建議用戶使用定時中斷的功能來替代定時器的功能。IA&DT Service & Support392.8.
36、 軟定時器的使用有些時候,在編程中會遇到 CPU 提供的硬件定時器不夠使用的問題,這時可以使用系統(tǒng)提供的軟定時器,例如 SFB4(TON)。此功能塊需要一個背景數(shù)據(jù)塊,特別提示:使用 SFB4 需要注意的一個問題,CPU 啟動后的軟定時器復(fù)位問題。由于 SFB 的定時、計時值是存在 DB 中的,由于當 CPU 斷電或停機后,DB 中的數(shù)據(jù)是保持的。如果定時器計時到在停機前已經(jīng)計時,那么當 CPU 重新運行后(定時器輸入端仍然為 1 的情況),定時器會在原來計時位置繼續(xù)計時。為了避免這種情況的出現(xiàn),可以在 OB100 中添加如下語句來初始化 SFB4 的背景數(shù)據(jù)塊(參數(shù) PT 應(yīng)當為 T#0MS
37、)。具體信息可以參考 STEP7 的在線幫助。軟定時器初始化程序: CALL “TON”, DB1 IN: = PT: =T#0MS Q: = ET: = NOP 02.9. 計數(shù)器不工作計數(shù)器使用的常見故障與定時器非常相似,可以參考定時器的章節(jié)軟計數(shù)器的使用注意事項類似于軟定時器的使用,具體信息可以參考 STEP7 的在線幫助。2.10.數(shù)據(jù)塊錯誤對于 S7-300/400 系列 CPU 而言,數(shù)據(jù)塊是其重要的系統(tǒng)資源之一。這些數(shù)據(jù)塊在項目的初始階段并不存在,編程人員自行定義后并下載至 CPU 后,即可使用。正是由于這樣的特點,數(shù)據(jù)塊在使用當中存在著一些注意事項,如果忽視這些注意事項,則會引
38、起編程錯誤。2.10.1.打開數(shù)據(jù)塊錯誤由于數(shù)據(jù)塊是用戶自己定義的,所以在下載至 CPU 之前,CPU 中是不存在著數(shù)據(jù)塊的。如果用戶程序中引用的數(shù)據(jù)塊在 CPU 中并不存在,將導(dǎo)致編程錯誤發(fā)生。這種情況可以通過用戶對自己程序的了解來避免,即不調(diào)用不存在的數(shù)據(jù)塊,也可以通過使用 SFC24“TEST_DB”來檢測數(shù)據(jù)塊是否存在,再決定是否調(diào)用它。IA&DT Service & Support392.10.2.數(shù)據(jù)塊尋址長度錯誤由于數(shù)據(jù)塊的長度或大小也是用戶自己定義的,所以用戶程序中對數(shù)據(jù)塊的引用不能超出數(shù)據(jù)塊所定義的范圍。例如:在 DB1 中只定義了 10 個 BYTE 數(shù)據(jù)類型,那么程序中對
39、(第11 個 BYTE)的訪問將導(dǎo)致編程錯誤發(fā)生。這種情況可以通過用戶對自己程序的了解來避免,即不引用不存在的數(shù)據(jù)地址,也可以通過使用 SFC24“TEST_DB”來檢測數(shù)據(jù)塊的大小,再決定如何調(diào)用它。2.10.3.數(shù)據(jù)塊尋址不嚴謹錯誤有些類型的 PLC 對于用戶自定義的存儲區(qū)域的尋址方式是有一定限制的,例如對于整數(shù)類型的數(shù)據(jù)地址是不支持位尋址方式的。而西門子 PLC 由于其數(shù)據(jù)塊具有絕對的數(shù)據(jù)地址,所以可以實現(xiàn)對不同的數(shù)據(jù)類型地址使用各種方式尋址。例如:DB1.DBW0 被定義為一個整數(shù)數(shù)據(jù)類型,但程序中可以對 DB1.DBX0.0-DB1.DBX1.7 進行位尋址。西門子這種靈活強大的尋址
40、功能給用戶提供了非常多的選擇,很多算法及數(shù)據(jù)轉(zhuǎn)換功能可以非常輕松的實現(xiàn),但與此同時,用戶務(wù)必要注意如果不遵循數(shù)據(jù)類型進行尋址,是否會對數(shù)據(jù)內(nèi)容的造成影響。2.10.4.數(shù)據(jù)塊寄存器使用錯誤西門子 S7-300/400 系列 CPU 擁有兩個數(shù)據(jù)塊寄存器,它們保存著當前打開的數(shù)據(jù)塊編號:DB 寄存器保存著打開的共享數(shù)據(jù)塊編號DI 寄存器保存著打開的背景數(shù)據(jù)塊編號特別提示:DI 寄存器主要用于 FB 引用背景數(shù)據(jù)塊,但也常用于程序中同時打開兩個數(shù)據(jù)塊的操作。 如下圖的程序即完成了將(16#2222)傳送到 DB4.DBW0 中的工作。用戶請注意程序中的格式(如 T DIW0),詳細信息請參考 ST
41、EP7 編程手冊中的尋址方式部分。圖 2-14 同時打開兩個數(shù)據(jù)塊上述例子也可以使用如下語句直接完成:IA&DT Service & Support39圖 2-15 兩個數(shù)據(jù)塊之間數(shù)據(jù)傳送那么上述兩者有何區(qū)別呢?從兩圖中的對比可以看出:L DBW0T DIW0/不改變 DB 寄存器的內(nèi)容/不改變 DI 寄存器的內(nèi)容L DB1.DBW0/改變 DB 寄存器的內(nèi)容T DB4.DBW0/改變 DB 寄存器的內(nèi)容,相當于增加了 OPN DB4 的指令。也就是說,對于數(shù)據(jù)塊中地址的完整引用,將影響到 DB 寄存器的內(nèi)容。那么對于下面的程序,我們將很容易發(fā)現(xiàn)其中的錯誤。程序原目的: 將 3333 傳送至
42、DB1.DBW0 將 4444 傳送至 DB1.DBW2 圖 2-16 錯誤傳送程序故障分析: 由于程序的 Network5 中使用了對于 DB4.DBW0 的比較指令,此指令改變了 DB 寄存器的內(nèi)容,因而我們將得到如下的錯誤結(jié)果,DB1.DBW2 并沒有得到正確數(shù)值,正確數(shù)值 4444 被錯誤地送到了IA&DT Service & Support39DB4.DBW2 中: 圖 2-17 錯誤傳送程序結(jié)果2.10.5.改變 DB寄存器和地址寄存器 AR1 操作那么在 STEP7 編程中,都有哪些情況會引起 DB 寄存器中的內(nèi)容改變呢?下面列出了可能引起DB 寄存器或 AR1 內(nèi)容改變的一些操
43、作: 使用下述復(fù)雜語言結(jié)構(gòu)會導(dǎo)致 DB 寄存器 和地址寄存器 AR1 內(nèi)容(關(guān)于 AR1 的使用將在后續(xù)章節(jié)中講解)改變:1.以絕對地址對 DB 塊的訪問 (如:DB20.DBW10)2.FB 的多重背景調(diào)用3.STRUCT 數(shù)據(jù)類型作為 FC 或 FB 里的地址4.STRUCT 數(shù)據(jù)類型作為 FC 或 FB 的實參如果用戶在編程時使用了上面提到的選項,則必須手動恢復(fù)寄存器的內(nèi)容,否則可能產(chǎn)生錯誤。關(guān)于這個問題的細節(jié)可以在 STEP 7 幫助中Avoiding errors when calling modules 項下找到。2.10.6. STRUCT 數(shù)據(jù)類型作為 FC或 FB里的地址下圖
44、的例子顯示了如下兩種情況對于 DB 寄存器的影響情況。1.FB 的多重背景調(diào)用,2.STRUCT 數(shù)據(jù)類型作為 FC 或 FB 里的地址IA&DT Service & Support39程序執(zhí)行過程:圖 2-18 程序?qū)?DB 寄存器的影響1.在執(zhí)行 OPNDB1 后, DB 寄存器內(nèi)容為 12.在調(diào)用 FB2,背景數(shù)據(jù)塊為 DB10 后,DB 寄存器內(nèi)容為 10,DB 寄存器被改變3.在引用“stuct_db”.my_struct.aa 后,DB 寄存器內(nèi)容為 11,DB 寄存器被改變注意:FB2 的輸入?yún)?shù)(BOOL 類型),雖然此種格式為數(shù)據(jù)塊的完整引用方式,但作為輸入?yún)?shù)類型使用時,并
45、不改變此處 DB 寄存器的值2.10.7.STRUCT 數(shù)據(jù)類型作為 FC 或 FB 的實參被調(diào)用下圖的例子顯示了如下情況對于 DB 寄存器的影響情況:STRUCT 數(shù)據(jù)類型作為 FC 或 FB 里的實參IA&DT Service & Support39程序執(zhí)行過程:圖 2-19 訪問 STRUCT 對 DB 寄存器的影響1.在 FC9 中調(diào)用 FC10,并將形參“stuct_db”.my_struct 賦給輸入?yún)?shù) FC_IN2.在 FC10 中,FC_IN 為 STRUCT 數(shù)據(jù)類型3.在 FC10 中執(zhí)行 OPN DB1 后, DB 寄存器內(nèi)容為 14.引用 FC_IN.aa 后,DB
46、寄存器內(nèi)容為 11,DB 寄存器內(nèi)容被改變2.10.8.通常情況,DB 寄存器不受影響在通常情況下,DB 寄存器是不受影響的,下圖為 FC9 中調(diào)用 FC11 及 SFC20 后,DB 寄存器不受影響。IA&DT Service & Support39程序執(zhí)行過程:圖 2-20 對 DB 寄存器無影響的程序1.在 FC9 中執(zhí)行 OPNDB1 后, DB 寄存器內(nèi)容為 12.在 FC9 中調(diào)用 FC11 及 SFC20 3.在 FC11 中,引用了地址4.在 SFC20 參數(shù)中使用了 ANY 數(shù)據(jù)類型 5.FC9 中,調(diào)用 FC11,SFC20 結(jié)束后,DB 寄存器內(nèi)容為 1,未受影響2.10
47、.9.數(shù)據(jù)塊的完整引用方式的優(yōu)缺點至此,也許有的用戶會對數(shù)據(jù)塊的完整引用方式存在疑問,既然此種引用方式可以明確當前的數(shù)據(jù)寄存器,并且編程簡單,是不是可以在程序中全部使用數(shù)據(jù)塊完整引用方式呢?答案當然是否定的,原因如下:1.相對于數(shù)據(jù)塊的完整引用方式,數(shù)據(jù)塊簡略方式尋址提供了更靈活的編程方式及功能(特別是關(guān)于指針尋址方式)2.數(shù)據(jù)塊完整尋址方式每次都對 DB 寄存器進行操作,增加了程序執(zhí)行時間,不適用于大數(shù)據(jù)量編程方式IA&DT Service & Support39特別提示:當程序涉及到快速,多次對數(shù)據(jù)訪問時,可以使用 M 存儲區(qū)代替 DB 數(shù)據(jù)區(qū),這樣可以得到更快的程序執(zhí)行時間,但要注意 C
48、PU 中的 M 存儲區(qū)資源要遠少于 DB 數(shù)據(jù)區(qū)資源,要節(jié)約使用。(對于 31x 系列 CPU,執(zhí)行一次 T DBW0 指令需要約S, 而執(zhí)行一次 T MW0 指令僅需要約S)特別提示:上面的例子告訴我們,盡管對于數(shù)據(jù)塊完整地址引用會改變 DB 寄存器中的內(nèi)容,但通過編程者的重視,這個錯誤是完全可以避免的。2.11.在 FC 的使用當中常見的錯誤2.11.1. ENO 的誤解對于初學(xué)者來說,容易在 ENO 的使用上出錯誤,由于不清楚 ENO 來龍去脈,經(jīng)常認為只要調(diào)用 FC 是無條件的,那么 ENO 也是永遠導(dǎo)通的,實則不然。下圖中的例子將說明這個問題。程序原目的:進行模擬量轉(zhuǎn)換,并無條件地將
49、 MD10 的數(shù)值傳送至 MD14。圖 2-21 ENO 的使用在圖中可以看出,當 FC105 的輸入端 PIW256 在正常范圍內(nèi)的時候,MOVE 指令被執(zhí)行(ENO=EN),當 PIW256 超出了上限值后,MOVE 指令不再被執(zhí)行(ENOEN)。此故障還是比較隱蔽的,因為大部IA&DT Service & Support39分情況下,輸入可能都處于正常范圍。故障分析:在 STEP7 的 LAD 編程手冊中有對 EN/ENO 機制的詳細描述,這里不再贅述。僅列出主要部分內(nèi)容:ENO 的值取決于公式:ENO = EN 與非 (error )如果程序調(diào)用沒有錯誤(error = 0),則 EN
50、O = EN。 如果程序調(diào)用有錯誤(error = 1),則 ENO = 0。 EN/ENO 機制用于:數(shù)學(xué)運算指令傳輸及轉(zhuǎn)換指令移位及循環(huán)移位指令塊調(diào)用EN/ENO 機制不能用于:比較指令計數(shù)器定時器如果用戶要創(chuàng)建自己在 FBD 或 LAD 中調(diào)用的塊,那么必須確保退出塊時,置位 BR 位。這并不是一個自動處理過程。不能使用 BR 作為存儲位,因為 EN/ENO 機制會不斷重寫 BR 位。作為代替,可使用一個臨時變量(例如 #error)來保存發(fā)生的所有錯誤,并用 0 初始化此變量。在塊內(nèi)部程序中,如果用戶某處程序執(zhí)行為錯誤狀態(tài),則可以將此變量置 1。并且在塊結(jié)尾編寫以下程序段: end:
51、AN errorSAVE確保在任何情況下都處理本程序段,這表示禁止在塊內(nèi)使用 BEC,并禁止跳過本程序段。2.11.2.停止對 FC 調(diào)用后引起的故障:下面的程序非常簡單,看似正確,但存在著一定隱患。程序原目的: 在 OB1 中當 M0.0 為 1 的時候,調(diào)用 FC13在 OB1 中當 M0.0 為 01 的時候,不調(diào)用 FC13FC13 中包含簡單邏輯及定時器的使用IA&DT Service & Support39故障現(xiàn)象:圖 2-22 普通 FC 程序內(nèi)容舉例假設(shè)某個時刻,M0.0,M0.1,M2.0 都為 1 ,并且維持數(shù)值 1 的時間超過了 10 秒,那么也都會為 1。假設(shè)此時 M0
52、.0 變?yōu)?0,F(xiàn)C13 不再被調(diào)用,結(jié)果如圖:圖 2-23 普通 FC 程序執(zhí)行結(jié)果IA&DT Service & Support39對于初學(xué)者來說,容易忽視的問題為:M0.0 變?yōu)?0 后,F(xiàn)C13 中的 Q,M,會保持原來狀態(tài),T,C,會繼續(xù)工作,如果 M0.0 再次變?yōu)?1,并且此時 M2.0 也為 1,由于定時器保持著計時到達的狀態(tài),M2.1 會立刻變?yōu)?1,這種情況可能會導(dǎo)致某些在 FC 被調(diào)用后必須延時執(zhí)行的邏輯立刻被執(zhí)行。在實際應(yīng)用中,如此邏輯為某個設(shè)備啟動信號,那么這個設(shè)備可能會跳過延時或保護邏輯而馬上運行! 對于編程人員如果能夠確保上述現(xiàn)象不構(gòu)成對人身及財產(chǎn)的傷害,則可以不
53、采取措施,否則應(yīng)當加入限制程序,例如下面的復(fù)位語句。圖 2-24 FC 程序復(fù)位舉例2.11.3. FC 中臨時變量的使用:很多初學(xué)者容易將 FC 及 FB 相混淆,認為 FB 僅僅是比 FC 多了一個背景數(shù)據(jù)塊,這種認識是非常危險的。在 STEP7 的關(guān)于 FC 的描述是這樣的:FC 是一個沒有存儲空間的邏輯塊。FC 的臨時變量存儲在本地數(shù)據(jù)堆棧中,這些數(shù)據(jù)在 FC 執(zhí)行完畢后將會丟失。為了永久的保存數(shù)據(jù),F(xiàn)C 可以使用共享數(shù)據(jù)塊。由于 FC 沒有自己的存儲空間,所以必須指定實參給它的參數(shù)(這就是為什么 FC 的輸入輸出管腳必須填寫參數(shù)的原因)。FC 的臨時變量(位于本地數(shù)據(jù)堆棧中)是無法指
54、定初始值的(由于本地數(shù)據(jù)堆棧是由系統(tǒng)自動動態(tài)使用的)。為了更形象的說明這一點,我們來看下面的例子,此例子 對 L 堆棧在程序調(diào)用時的分配進行了詳細的講解:L 堆棧永遠以地址“0”開始。在 L 堆棧中,會為每個 FC 提供一定地址空間,作為存放每個塊所擁有的固有數(shù)據(jù)或局部數(shù)據(jù)。當某個塊終止時,那么它的空間隨之也被重新釋放出來。 指針總是指向當前打開塊的第一個字節(jié)。 運行等級 IA&DT Service & SupportL 堆棧中 指針 39調(diào)用 OB1 (帶有 20 個字節(jié)的系統(tǒng)固有數(shù)據(jù)和局部數(shù)據(jù)的 10 個附加字節(jié)) 調(diào)用 FC1 (帶有 30 個字節(jié)的局部數(shù)據(jù)) 30 個字節(jié) (OB1)
55、+ 30 個字節(jié) (FC1) 調(diào)用 FC20 (帶有 20 個字節(jié)的局部數(shù)據(jù)) 60 個字節(jié) (OB1 + FC1) +20 個字節(jié) FC10 調(diào)用 FC21 (帶有 20 個字節(jié)的局部數(shù)據(jù)) 60 個字節(jié) (OB1 + FC1) +20 個字節(jié) FC11 調(diào)用 FC2 (帶有 50 個字節(jié)的局部數(shù)據(jù)) 30 個字節(jié) (OB1) +50 個字節(jié) (FC2) 調(diào)用 FC30 (帶有 10 個字節(jié)的局部數(shù)據(jù)) 80 個字節(jié) (OB1 + FC2) +10 個字節(jié) FC20 表 2-1 L 堆棧在程序執(zhí)行過程當中的動態(tài)分配的字節(jié)數(shù) 30608080809003060603080由上面的例子可以看出:
56、對于 FC20 曾經(jīng)使用過的系統(tǒng)中 L 堆棧 60-80 區(qū)間(FC20 中地址范圍為 LB0-LB19)在 FC20 調(diào)用結(jié)束后,被提供給 FC21 使用(FC21 中地址范圍同樣為 LB0-LB19)。對于 FC 的臨時變量認識不清晰,用戶在對臨時變量的使用當中,也經(jīng)常會出現(xiàn)一些錯誤,下面將使用一個例子非常直觀地說明上面的問題程序原目的: 在 OB1 在程序中調(diào)用 FC20 后立即調(diào)用 FC21FC20 中將 20 賦值給臨時變量 FC20_TEMP1,將 21 賦值給臨時變量 FC20_TEMP2FC21 中將 FC21_TEMP1,F(xiàn)C21_TEMP2 相加程序分析:我們發(fā)現(xiàn) FC20
57、 中的臨時變量曾經(jīng)出現(xiàn)的數(shù)值(20,21)被 FC21 中的臨時變量 FC21_TEMP1, FC21_TEMP2 得到了,如果直接使用這兩個臨時變量進行加法操作,可以得到結(jié)果 41。對于編程人員來說,臨時變量必須要在所在程序段中賦值,而后使用。用戶對此例中的 FC21_TEMP1, FC21_TEMP2必須先做清零處理,否則其在使用前即可能擁有數(shù)值。IA&DT Service & Support39圖 2-25 不同 FC 程序臨時變量之間的影響結(jié)論:對于 FC 或 FB 中的臨時變量,不要希望將本次調(diào)用的數(shù)值可以存儲在里面以供下次程序調(diào)用使用,因為這些臨時變量所使用的 L 堆??臻g在 FC
58、 或 FB 調(diào)用結(jié)束就釋放給系統(tǒng)了,其它后續(xù)程序可以任意使用。所以下列用法都是錯誤的:將臨時變量用于上升/下降沿指令將臨時變量用于自保持邏輯臨時變量未在所在程序段中賦值,直接使用警告:不要試圖利用 L 堆棧的這種特點進行功能或功能塊之間的數(shù)據(jù)傳遞。程序邏輯改變,語句IA&DT Service & Support39執(zhí)行順序改變,臨時數(shù)據(jù)區(qū)長度定義改變,中斷程序都會影響 L 堆棧中的數(shù)據(jù)存儲順序。2.11.4. FC 輸出處理對于 FC 的使用,另一個的常見的錯誤是對輸出的錯誤處理:導(dǎo)致這個錯誤的原因還是對 FC 認識的不清楚。再次強調(diào):相比較于 FB, FC 是一個沒有存儲空間的邏輯塊。如果沒
59、有數(shù)據(jù)被寫至 FC的 OUT 參數(shù),F(xiàn)C 將會輸出一個隨機值!對于 FB, 因為其可以使用背景數(shù)據(jù)塊來存儲 OUT 參數(shù)的數(shù)值,即使某次調(diào)用沒有對 OUT 參數(shù)進行寫操作,OUT 參數(shù)依然可以輸出上一次的舊值。下面的程序?qū)⒄f明這一點:程序原本目的:在 OB1 中調(diào)兩次 FC22,將 MW0,MW2 作為輸入?yún)?shù),DB1.DBX0.0,DB1.DBX0.1 分別作為輸出參數(shù)賦給 FC22FC22 檢測當輸入大于 10 時,置位輸出為 1FC22 檢測當輸入小于-10 時,復(fù)位輸出為 0FC22 的輸出的動作死區(qū)為-10 至 10此程序乍看是沒有錯誤的,但是,如果 OB1 中調(diào)用了兩次 FC22,
60、而且 MW2 位于死區(qū)(-10 至10)之間時,MW0 的數(shù)值改變將不僅僅改變 DB1.DBX0.0 的狀態(tài),同時會影響輸出 DB1.DBX0.1 的數(shù)值。IA&DT Service & Support39圖 2-26 FC 程序輸出編程錯誤舉例故障分析:在上面的例子,OB1 中調(diào)用了兩次 FC22,而且 MW2 位于死區(qū)(-10 至 10)之間時,其輸出在 FC22 沒有被賦值,DB1.DBX0.1 正常情況下不應(yīng)當改變數(shù)值。但是本例中,MW0 的數(shù)值改變將不僅僅改變 DB1.DBX0.0 的狀態(tài),同時會影響輸出 DB1.DBX0.1 的數(shù)值。如下圖。圖 2-27 FC 程序輸出編程錯誤結(jié)果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全景掌握計算機二級試題及答案
- Java編程試題及答案分享
- 長治市沁源縣2025年一級建造師市政工程最后沖刺試題含解析
- 建設(shè)師生關(guān)系與信任機制計劃
- 構(gòu)建學(xué)習(xí)型組織的途徑計劃
- 注冊會計師考試高效復(fù)習(xí)試題及答案
- 如何提高倉庫員工的工作積極性計劃
- 2024年11月心理實驗室安全知識自動問答系統(tǒng)
- 美麗中國社團攝影征集活動計劃
- 如何通過體驗營銷塑造品牌形象計劃
- 光伏車棚施工方案
- 2024年教師招聘考試真題及答案招教真題
- 部編版道德與法治三年級下冊全冊教案
- 【道德與法治】江蘇省連云港市海州區(qū)2023-2024學(xué)年七年級下學(xué)期期中試題(解析版)
- 鹽城市射陽縣興橋鎮(zhèn)社區(qū)工作者考試題目及答案2024
- 齊魯針灸智慧樹知到期末考試答案2024年
- 2024年內(nèi)蒙古聚英人力資源服務(wù)中心招聘歷年高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 新概念英語第2冊課文(完整版)
- 高數(shù)函數(shù)的極值與最大最小值課件
- 廣東省廣州市廣雅中學(xué)2024屆高考英語三模試卷含解析
- 《金融建?;A(chǔ)》課件第7章-運用 Python 分析債券
評論
0/150
提交評論