⑴ ob20和ob30的特點
時間延遲中斷組織塊OB20的優先順序及更新過程映像區的參數需要時間延遲中斷組織塊OB20的特點
1、在CPU屬性中設置,通過調用系統函數SFC32觸發執行。
30B號及延遲時間在SFC32參數中設定,延遲時間為1~60000ms,大大優於定時器精度。循環中斷組織塊的特點
1按設定的時間間隔循環執行,循環中斷的間隔時間在CPU屬性中設定。
2、每一個OB默認的時間間隔不同默認的時間間隔為100ms,在OB35中的用程序將每隔100ms調用一次,時間間隔可以自由設定,最小時間間隔不能小於55ms。
⑵ plc中怎麼設置循環中斷時間
簡單說說吧: ob1——循環掃描,中斷等級最低 ob35
——定時掃描,一般放pid模塊等 假定執行ob1的時候,
程序執行一半,此時ob35的定時時間到了
那麼ob1就必須把cpu控制權交給ob35
,把ob35的程序執行完成後,
再回到ob1去執行剩下的程序,如此反復
⑶ OB30中斷程序,掃描周期怎麼在觸摸屏上讀取寫入
OB30中斷程序,掃描周期可以直接在觸摸屏上讀取寫入
循環中斷組織塊OB30~OB38按設定的時間間隔循環執行, 循環中斷的間隔時間在CPU屬性中 設定,每一個OB默認的時間間隔不同,例如)B35默認的時間間隔為100ms,
⑷ 西門子plc中的ob模塊都是實現什麼功能的
ob模塊:組織塊,英文名Organization block。組織塊是CPU系統和用戶程序之間的介面,可以在CPU上電啟動時調用,也可以循環調用,也可以在PLC發生錯誤時候調用。
OB組織塊是當新建一個程序時,系統會自動建立一個Main[OB1]程序,該程序會在PLC的每個掃描周期被調用。
Main程序和200裡面的主程序,是一個同樣的概念。也類似於C裡面的Main ,即為函數入口點,可以在Main程序裡面調用各種函數和塊。
OB塊主要用於程序循環、啟動、延時中斷、循環中斷、硬體中斷、HSC中斷、診斷錯誤和時間錯誤八大事件。OB塊還有兩個屬性是編號和優先順序,優先順序越高,中斷級別越高。在同樣的優先順序別,OB編號越小,越優先執行。
(4)循環中斷OB30程序怎麼寫擴展閱讀:
西門子plc s7-300檢修工藝及技術要求
(1) 測量電壓時,要用數字電壓表或精度為1%的萬能表測量
(2)電源機架,CPU主板都只能在主電源切斷時取下;
(3) 在RAM模塊從CPU取下或插入CPU之前,要斷開PC的電源,這樣才能保證數據不混亂;
(4) 在取下RAM模塊之前,檢查一下模塊電池是否正常工作,如果電池故障燈亮時取下模塊RAM內容將丟失;
(5) 輸入/輸出板取下前也應先關掉總電源,但如果生產需要時I/0板也可在可編程式控制制器運行時取下,但CPU板上的QVZ(超時)燈亮;
(6) 撥插模板時,要格外小心,輕拿輕放,並遠離產生靜電的物品;
(7) 更換元件不得帶電操作;
(8) 檢修後模板安裝一定要安插到位
⑸ 怎麼理解S7-300裡面OB1的臨時變數上一次掃描的運行時間
PLC的掃描周期與CPU的主頻和程序的大小有關。是不可以修改的。根據程序的大小 ,掃描周期在幾個毫秒到100個毫秒之間。 你的采樣頻率為30000/H也就是1秒有8.3個脈沖。我們按9個脈沖算。這樣的話,你的CPU必須在1秒內運行18個周期才可以完全統計這些脈沖。也就是掃描周期要在55毫秒內。 因為CPU運行要處理各種事件,每一次的掃描時間也不盡相同。因此才會有脈沖不相同或漏計現象。 要解決這個問題有以下辦法: 採用高速計數模塊。 採用帶輸入中斷的DI模塊。用上升沿中斷計數。 在程序中採用定時中斷。OB30-OB38為循環中斷。將其中一個OB的時間改成你的需要的時間。比如將OB37改成40ms.然後將計數程序移入OB37.但需要注意,不可再直接使用緩沖區的地址。因為這個地址的狀態更新時間受掃描周期的影響。你需要直接讀通道地址的狀態。比如你的通道地址為I1.0。則正確的方法為: L PIB1 T MB1 然後你在OB37中對M1.0計數即可。 以上為個人建議,不足之處請指教。 PLC的掃描周期與CPU的主頻和程序的大小有關。是不可以修改的。根據程序的大小 ,掃描周期在幾個毫秒到100個毫秒之間。 你的采樣頻率為30000/H也就是1秒有8.3個脈沖。我們按9個脈沖算。這樣的話,你的CPU必須在1秒內運行18個周期才可以完全統計這些脈沖。也就是掃描周期要在55毫秒內。 因為CPU運行要處理各種事件,每一次的掃描時間也不盡相同。因此才會有脈沖不相同或漏計現象。 要解決這個問題有以下辦法: 採用高速計數模塊。 採用帶輸入中斷的DI模塊。用上升沿中斷計數。 在程序中採用定時中斷。OB30-OB38為循環中斷。將其中一個OB的時間改成你的需要的時間。比如將OB37改成40ms.然後將計數程序移入OB37.但需要注意,不可再直接使用緩沖區的地址。因為這個地址的狀態更新時間受掃描周期的影響。你需要直接讀通道地址的狀態。比如你的通道地址為I1.0。則正確的方法為: L PIB1 T MB1 然後你在OB37中對M1.0計數即可。 以上為個人建議,不足之處請指教。
⑹ 這個定時器中斷程序怎麼編寫
#include<reg51.h>
#defineucharunsignedchar
ucharsec,cnt;
sbitfmq=P1^0;
voidt0isr()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
if(cnt>=20){cnt=0;sec++;P0=~sec;if(sec>=60)sec=0;}
if((sec%10)==0)fmq=0;
elsefmq=1;
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
⑺ 匯編 中斷處理程序怎麼寫
mov di,2000
delay:
mov si,3000
delay1:
dec si
jnz delay
這段就是main process
改成你要的判斷
還有也不要用21h了,換個保留的中斷號就行了
⑻ 如何用西門子PLC300累計一台水泵的運行時間
我也來做一個
首先做一個做一個FC功能,我做了復位功能,而且天、時、分、秒都做了,想要年自己也可以做年的,原理都是一樣的,建局部變數
in-out:分別是秒、當前值、分、時、天
5.創建背景數據塊,每個地址與上位機一一對應
⑼ 西門子S7300 OB35循環中斷功能塊的問題
OB35循環中斷組織塊,按硬體組態中設置的時間間隔周期性執行。里邊不寫程序很正常,可理解就像你新建了一個FC塊並且在OB1中調用但FC里邊什麼都沒寫一樣,這說明沒有用的需要用OB35周期性執行的功能(一般情況下PID功能塊在OB35中調用)。你這里的「PLC指令執行時間」應該是說OB35中所寫的PLC指令執行時間,這個時間不能大於OB35的周期。這樣就是說OB35中的程序都還沒執行完又到了調用OB35的時候了,想想都會有問題吧!!
⑽ 中斷程序怎麼寫
一、中斷服務程序,處理器處理「急件」,可理解為是一種服務,是通過執行事先編好的某個特定的程序來完成的,這種處理「急件」的程序被稱為——中斷服務程序。
二、當中央處理器正在處理內部數據時,外界發生了緊急情況,要求CPU暫停當前的工作轉去處理這個緊急事件。處理完畢後,再回到原來被中斷的地址,繼續原來的工作,這樣的過程稱為中斷。
三、實現這一功能的部件稱為中斷系統,申請CPU中斷的請求源稱為中斷源,單片機的中斷系統一般允許多個中斷源,當多個中斷源同時向CPU請求中斷時,就存在一個中斷優先權的問題。通常根據中斷源的優先順序別,優先處理最緊急事件的中斷請求源,即最先響應級別最高的中斷請求。
四、保護被中斷進程現場。為了在中斷處理結束後能夠使進程准確地返回到中斷點,系統必須保存當前處理機程序狀態字PSW和程序計數器PC等的值。
五、分析中斷原因,轉去執行相應的中斷處理程序。在多個中斷請求同時發生時,處理優先順序最高的中斷源發出的中斷請求。恢復被中斷進程的現場,CPU繼續執行原來被中斷的進程。