|
公司基本資料信息
|
西門子SMART電源6ES7288-0CD10-0AA0是S7-200
smart 調(diào)節(jié)型電源 輸入:100-240 V AC 輸出:24 V/3 A DC
S7-200的160個常見問題解答之五
81:使用定時器加自復(fù)位做一個不斷重復(fù)的計時,調(diào)用其他功能或子程序時,為何看起來工作不規(guī)律?
請注意《S7-200系統(tǒng)手冊》中,關(guān)于三種定時器刷新規(guī)律的描述。
按這種方法使用定時器時,定時器的置位、復(fù)位可能與程序掃描周期不配合,存在造成上述問題的機制。定時比較短的定時任務(wù)應(yīng)使用“定時中斷”功能,這樣更為可靠。
82:編了一個利用定時器的程序,在編譯時已經(jīng)通過,為何下載到CPU中時提示出錯?
這種情況往往是調(diào)用的定時器號與定時器類型不配合造成的。參見幫助的表格,如T7只能用作TONR,而不能用于TON或TOF。
83:定時中斷(SMB34/SMB35)*長定時為255ms,如何實現(xiàn)更長時間的定時?
可以采用T32/T96中斷,*長時間可到32.767s。在定時中斷服務(wù)程序中對進入中斷的次數(shù)進行計數(shù),也能實現(xiàn)更長時間的中斷延時。
84:定時中斷個數(shù)不夠怎么辦?
每個定時中斷服務(wù)程序不一定只能處理一項定時任務(wù),可以把幾個任務(wù)放在一個定時中斷服務(wù)程序中。
對于定時間隔不同的任務(wù),可以計算出它們的定時長度的*大公約數(shù),以此作為定時中斷的時間設(shè)置。在中斷服務(wù)程序內(nèi)部對中斷事件進行計數(shù),據(jù)此編程別處理不同的任務(wù)。
85:使用子程序時,為何動作只能執(zhí)行一次,或者某些狀態(tài)不能結(jié)束?
如果發(fā)生動作不能重復(fù)執(zhí)行,或者狀態(tài)不能結(jié)束(像鎖死了一樣),而這些功能都與子程序有關(guān)時,請檢查是否有條件調(diào)用子程序。調(diào)用子程序的條件在上述動作執(zhí)行后,或者進入某個狀態(tài)后不再有效,無法再次“激活”,而脫離上述狀態(tài)或復(fù)位的指令正好在子程序內(nèi),必然造成上述的現(xiàn)象。
86:帶形式參數(shù)的子程序,定義為OUT類型的變量為何會在多次調(diào)用子程序時互相干擾?
那是因為定義為OUT類型的形式參數(shù)又在子程序內(nèi)部參與了運算。凡是此類參數(shù)都應(yīng)當(dāng)定義為IN_OUT類型。
87:與中斷服務(wù)程序有關(guān)的計算任務(wù),為何會偶爾得出不正確的結(jié)果?
出現(xiàn)這種現(xiàn)象的原因多是在主(子)程序和中斷程序之間傳遞數(shù)據(jù)的機制不當(dāng)。
中斷程序可能在任何時刻執(zhí)行,如果此時主程序(或子程序)正在對中斷程序使用的數(shù)據(jù)進行操作,其中間結(jié)果可能帶入中斷程序,造成計算結(jié)果的變化;同樣地,在中斷程序中產(chǎn)生數(shù)據(jù)也對主(子)程序中的計算有類似影響。
88:中斷服務(wù)程序看起來沒有執(zhí)行?
可以在中斷程序中加一個測試程序段,如使用SM0.0(常為“1”)將一個輸出點置位(使用Set指令),觀察是否進入中斷服務(wù)程序。中斷程序不執(zhí)行,多數(shù)原因是初始化(連接中斷事件和中斷程序)的問題,或者沒有“開中斷”。應(yīng)該使用SM0.1(或沿觸發(fā))執(zhí)行一次初始化,然后開中斷。
89:TP170、TP170 micro與S7-200相連接如何做“時鐘同步”?
TP170默認(rèn)的時鐘格式與S7-200時鐘指令所讀取的時間日期格式有所區(qū)別,讀出的時鐘需要改變格式才能與TP170等做時鐘同步。在TP170的組態(tài)軟件ProTool的在線幫助中有相關(guān)的介紹。
90:高速計數(shù)器怎樣占用輸入點?
高速計數(shù)器根據(jù)被定義的工作模式,按需要占用CPU上的數(shù)字量輸入點。每一個計數(shù)器都按其工作模式占用固定的輸入點。在某個模式下沒有用到的輸入點,仍然可以用作普通輸入點;被計數(shù)器占用的輸入點(如外部復(fù)位),在用戶程序中仍然訪問到。
91: 為什么高速計數(shù)器不能正常工作?
在程序中要使用初次掃描存儲器位SM0.1來調(diào)用HDEF指令,而且只能調(diào)用一次。如果用SM0.0調(diào)用或者第二次執(zhí)行HDEF指令會引起運行錯誤,而且不能改變**次執(zhí)行HDEF指令時對計數(shù)器的設(shè)定。
92: 對高速計數(shù)器如何尋址? 為什么從SMDx中讀不出當(dāng)前的計數(shù)值?
可以直接用HC0;HC1;HC2;HC3;HC4;HC5對不同的高速計數(shù)器進行尋址讀取當(dāng)前值,也可以在狀態(tài)表中輸入上述地址直接監(jiān)視高速計數(shù)器的當(dāng)前值。SMDx不存儲當(dāng)前值。
高速計數(shù)器的計數(shù)值是一個32位的有符號整數(shù)。
93: 高速計數(shù)器如何復(fù)位到0?
選用帶外部復(fù)位模式的高速計數(shù)器,當(dāng)外部復(fù)位輸入點信號有效時,高速計數(shù)器復(fù)位為0 也可使用內(nèi)部程序復(fù)位,即將高速計數(shù)器設(shè)定為可更新初始值,并將初始值設(shè)為0,執(zhí)行HSC指令后,高數(shù)計數(shù)器即復(fù)位為0
94: 高速計數(shù)器的值在復(fù)位后是復(fù)位到初始值還是“0”值?
外部復(fù)位會將當(dāng)前值復(fù)位到0值而不是初始值;內(nèi)部復(fù)位則將當(dāng)前值復(fù)位到初始值。如果你設(shè)定了可更新初始值,但在中斷中未給初始值特殊寄存器賦新值,則在執(zhí)行HSC 指令后,它將按初始化時設(shè)定的初始值賦值。
95: 為何給高速計數(shù)器賦初始值和預(yù)置值時后不起作用,或效果出乎意料?
高速計數(shù)器可以在初始化或者運行中更改設(shè)置,如初始值、預(yù)置值。其操作步驟應(yīng)當(dāng)是:
1)設(shè)置控制字節(jié)的更新選項。需要更新哪個設(shè)置數(shù)據(jù),就把控制字節(jié)中相應(yīng)的控制位置位(設(shè)置為“1”);不需要改變的設(shè)置,相應(yīng)的控制位就不能設(shè)置
2)然后將所需 的值送入初始值和預(yù)置值控制寄存器