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