利用spc3開發智能從站源碼講解(連載二)

利用SPC3 開發智能DP 從站源碼講解(連載二)
2、SPC3 管理功能介紹
2.1 SPC3 中斷管理
SPC3 提供了幾個與中斷相關的寄存器,它們分別是:中斷請求寄存器(IRR)、中斷寄存
器(IR)、中斷屏蔽寄存器(IMR)和中斷確認寄存器(IAR)。每個寄存器佔2 個字節,除了5 個
保留位之外 ,SPC3 共支持包括波特率檢測、新參數數據、診斷緩衝區改變在內的11 箇中
斷。SPC3 只佔用一箇中斷向量號,中斷服務程序在響應中斷後,需要根據IRR 中的內容來
判斷是哪一個事件引發的中斷。用戶可以在初始化時設置IMR 來對中斷事件進行開/關設置。
用戶處理完事件後,需要操作IAR 或相應的Cmd 寄存器來來確認相應中斷事件。
2.2 SPC3 狀態機管理
SPC3 可工作於四種狀態:Power_On、WAIT-PRM、WAIT-CFG 和DATA_EXCH。圖2
給出的狀態機描述了SPC3 工作狀態間的關係。狀態機主要用來保證從設備在不同條件下行
爲的一致性。
在Power_On 狀態,從站可認接收來自二類主站的Set_Slave_Add 報文,以改變從站地
址,從站應具有非易失性的存儲器來存從站地址。在內部起動後,從站進入WAIT-PRM 狀
態,等待Set_Prm 報文。在此狀態從站還可以接收Get_Cfg 或Slave_Diag 報文,但拒絕處理
其他報文,不能進行通訊。如果Set_Prm 正確,從站進入WAIT-CFG,等待Check_Cfg 報文。
Check_Cfg 報文規定輸入和輸出字節數。另外也可以接收Slave_Diag,Get_Cfg 報文。如果
Check_Cfg 正確,從站進入DATA_EXCH 狀態,進行數據通訊,在此狀態,從站可以接收來
自一類主站的Writing Outputs、Reading Inputs、Global_Control、Slave_Diag、Chk_Diag 和
Get_Cfg 報文。
圖示PROFIBUS DP 從站狀態機
當從設備發生異常時,如WD 超時,則SPC3 的狀態就會改變,以保證系統的安全。開
發人員在軟件調試過程中可通過檢查SPC3 的狀態寄存器來確認其工作狀態。
3、PROFIBUS DP 協議介紹
3.1 PROFIBUS DP 協議
PROFIBUS DP 協議中規定了8 種主站-從站功能:讀DP 從站診斷信息、傳送輸入與輸
出數據、讀DP-從站的輸入與輸出數據、發送參數數據、檢查組態數據、讀組態數據、對
DP 從站的控制命令、變更DP 從站的站地址。
在PROFIBUS DP 總線上傳送的幀分爲四種類型:可變數據字段長度的幀、有數據字段
的固定長度的幀、無數據字段的固定長度的幀和令牌幀。下面給出了有數據字段的固定長度
的幀中發送/請求幀和響應幀的格式。
1.發送/請求幀的格式:
2.回答幀的格式:
其中,SYN 同步時間,最小33 個線空閒位
SD3 開始定界符,值:A2H
DA 目的地址
SA 源地址
FC 幀控制
DATA_UNIT 數據字段,固定長度(L-3)=8 個八位位組
FCS 幀檢查順序
ED 結束定界符,值:16H
L 信息字段長度,固定的八位位組的個數:L=11
圖示 有數據字段的固定長度的幀
對於利用SPC3 芯片來開發DP 從設備的開發人員來講,沒有必要考慮如何對從總線接
收到的幀進行校驗、解析和處理,也不必考慮如何將響應報文發送到總線上去,這些功能均
由SPC3 完成。需要說明的是,用戶程序對協議報文收發的控制能力是很有限的。
SPC3 管理功能介紹
在上面介紹的DP 主站-從站服務中,診斷處理、參數化、檢查組態數據和從設備地址設
置四種協議報文是必須瞭解的。
3.2 診斷處理(Dialog)
當從設備發生異常,可以通過診斷報文來向主站傳遞相關信息,此信息是從設備主動發
送的。標準的診斷信息有6 個字節,而且用戶可以在標準診斷信息之後加入設備相關的診斷
信息,最長可擴展到244 字節。
SPC3 在收到應用程序傳過來的診斷數據後,並不是立刻發給主站。而是在當前的服務
響應中置上標記,當主站收到這樣的標記後,會在下個輪循週期內讀取從站的診斷信息。
3.3 參數化(Parameter)
參數化報文主要是主站用來設置從設備的工作參數。從站的參數化在DP 系統的建立階
段首先完成,也可在用戶數據交換模式中完成。除總線一般參數數據外,DP 從站專用的參
數(如:較高或較低限值)傳送到每個DP 從站。這些數據從主站參數集中的用戶那裏發送,
此參數集緩存在主站中。
標準的參數化信息是7 個字節,根據需要用戶最長可擴展到244 個字節。
3.4 檢查組態數據(CFG)
此功能允許DP 主站傳送組態數據到DP 從站以便檢查。它們包括輸入輸出區域的範圍,
也包括關於數據連續性的信息。DP 從站中的用戶程序會對接收到的組態數據進行檢查,將
結果通知SPC3。
組態數據的內容和長度跟從站中被組態的模塊數和設備描述(GSD)文件中描述該模塊
的信息內容有關,例如,GSD 文件中有如下模塊描述信息:
Module = "2AI*16bit" 0x43,0x41,0x01,0x10,0x02 ;
EndModule
表示這是一個2 通道的16 位精度的模擬量輸入模塊,是用5 個字節的內容描述的,後
三個字節的含義由開發商自行定義。
3.5 變更DP 從站的地址(SSA)
此功能允許DP 主站(2 類)變更DP 從站的地址。如DP 從站沒有存儲能力(EEPROM,
FLASH)或如果地址設置是以一個開關來實施的,則此功能以RS 出錯報文來拒絕。與此同
時,用此功能發送Ident_Number。如果本地的和被傳送的Ident_Number 相對應,那麼站地
址將被改變。
附錄
以上所講內容可參見SPC3 用戶手冊和DP 協議規範。
相關內容可從www.fieldbuses.com 網站下載。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章