基于VPC3的PROFIBUS-DP智能從站設計
此時,VPC3下—個十分重要的步驟就是根據以上初始值求出各個緩沖區的指針及輔助緩沖區的指針,根據傳輸的數據長度,確定輸入緩沖區、輸出緩沖區及指針。主站檢查以上參數是否與配置的參數一致,只有雙方完全一致,從站才能進行配置,設置從站的輸入輸出字節數、診斷字節數和各類數據指針。然后,從站才能將配置好的數據同主站比較,只有雙方完全一致,從站才能通過DP狀態機與主站進行數交換。用戶設備通過I/O程序實現報文數據處理。
2.中斷程序設計
VPC3有14個中斷源,各中斷源無優先級,主要是通過中斷屏蔽寄存器和中斷響應寄存器來實現中斷且共用一個中斷輸出。診斷分為外部診斷和狀態診斷,外部診斷必須在從第7個字節開始的單元寫入用戶數據,狀態診斷則只要在第—字節寫入OOH即可。VPC3定義從站地址較靈活,既可在組態時由主站設置又可通過自身軟件或是增設的硬件地址設置電路實現。根據OSI參考模型,FDL層規定了總線存取控制、數據安全性以及傳輸協議和報文的處理。DP標準規定了以下四類傳輸服務。SRD∶發送和請求有應答的數(對DP和PMS),在一個報文循環中發送和接收數據。SDN∶發送沒有應答的數據(對DP和PMS),廣播和有選擇廣播報文,即報文送達有選擇的一組節點。DP僅限于SRD和SDN服務。在SRD服務時,主站發送輸出數據到從站和接收輸入數據(若輸入數據存在于從站中),在規定的時間周期內應答。若從站是輸出設備,則用“E5H”的短應笞。SDN服務是發送數據到規定的一組從站,可按照要求觸發SDN服務,對SDN報文沒有應答。
本程序設計采用中斷方式處理從站地址設定,檢查組態和參數報文是否正確。采用外部中斷INTO輸入,其入口地址為0003H。C51編譯器支持在C源程序中直接開發中斷程序,減輕了用匯編語言拜發中斷程序的繁瑣過程。便用擴展屬性的函數語法定義void dps2_ind(void)interrupt ouslng 1調用外部中斷INTO,當外部中斷0被觸發時,將會執行此中斷模塊中的函數,在函數中有DPS2 GETINDICATION()宏可以讀出響應的事件信息,并進行各個中斷事件的處理。中斷程序流程如圖2。
圖2中斷程序流程圖
評論