基于Profibus-DP的控制系統(tǒng)的通信互連
(2)數(shù)據(jù)交換原理
DP主站與DP從站的數(shù)據(jù)交換采用輪循方式,使用DP數(shù)據(jù)域中的接收緩沖區(qū)與發(fā)送緩沖區(qū)來(lái)完成。DP主站啟動(dòng)數(shù)據(jù)交換,將數(shù)據(jù)輸出到輸出緩沖區(qū),并從輸入緩沖區(qū)將數(shù)據(jù)取回,其原理如圖2所示。
CPU和CP間的數(shù)據(jù)交換是通過在CPU循環(huán)中調(diào)用S7的DP_RECE和DP_SEND功能來(lái)實(shí)現(xiàn)的。其中,DP_RECE功能是接收由DP主站發(fā)送到從站CP的接收緩沖區(qū)的數(shù)據(jù),然后把數(shù)據(jù)輸出至CPU指定的DP數(shù)據(jù)域。而DP_SEND則是把CPU中指定的DP數(shù)據(jù)域中需傳輸?shù)臄?shù)據(jù)傳送至CP的發(fā)送緩沖區(qū),然后傳輸?shù)紻P主站。
(3)用戶程序
在S7 PLC中,CPU中的用戶數(shù)據(jù)域可以為過程映像、位寄存器以及數(shù)據(jù)塊,在本用戶程序中使用了數(shù)據(jù)塊。在S7用戶程序的Blocks目錄下,定義兩個(gè)數(shù)據(jù)塊DB1和DB2,分別用于存放接收和發(fā)送的數(shù)據(jù),然后在循環(huán)執(zhí)行的組織塊OB1中調(diào)用DP_RECE和DP_SEND功能。
當(dāng)DP主站改變運(yùn)行模式或崩潰時(shí),操作系統(tǒng)通過調(diào)用從站上的某個(gè)OB作出反應(yīng)。如果從站上的這些OB丟失,則CPU會(huì)立即自動(dòng)地切換到STOP。因此為了防止這種情況,需在從站建立相關(guān)的OB。
當(dāng)主站的CPU從RUN轉(zhuǎn)換到STOP時(shí),在從站的組織塊OB82(診斷中斷)將被調(diào)用。為防止CPU由于不存在OB82而停止,需在S7-300站的Blocks文件夾中插入組織塊OB82。
同理,當(dāng)DP主站崩潰時(shí),在從站上將調(diào)用組織塊OB86(機(jī)架故障)。為了防止S7-300從站的CPU在這樣的情況下進(jìn)入STOP,需在S7-300站的Blocks文件夾中插入組織塊OB86。
評(píng)論