丁茂實,茍成全,徐艷超
(1.南京科遠智慧科技集團股份有限公司 ,江蘇 南京 211102;2.江蘇省熱工過程智能控制重點實驗室,江蘇 南京 211102)
目前國內(nèi)PROFIBUS主站研究主要側(cè)重于周期通訊,實現(xiàn)非周期通訊的主站非常稀少[2][4] [5] [7]。目前研究以應(yīng)用型為主,直接開發(fā)相關(guān)產(chǎn)品的廠商很少。對于MSAC2M(Master-Slave connection for Acyclic data transfer Class 2 for Master station)狀態(tài)機的研究更少。文獻[2]介紹了一種自主實現(xiàn)的PROFIBUS主/從站通訊模塊,但是對于實現(xiàn)細節(jié)及DPV1協(xié)議支持情況沒有透露;文獻[3]研究了PROFIBUS一類和二類非周期通訊過程,梳理了FDL層交互報文,但是未在主站上實現(xiàn)??七h智慧在原自主開發(fā)PROFIBUS-DPV0主站協(xié)議棧的基礎(chǔ)上,進一步深入研究DPV1通訊協(xié)議,成功開發(fā)出了支持二類非周期通訊的PROFIBUS主站產(chǎn)品,通過和上位機SyncAMS軟件配合使用,可以實現(xiàn)PROFIBUS非周期數(shù)據(jù)到國產(chǎn)NT6000控制系統(tǒng)的傳輸,進一步提高了國產(chǎn)現(xiàn)場總線控制系統(tǒng)NT6000-FCS的國產(chǎn)化水平。
FDT(Field Device Tool)是現(xiàn)場設(shè)備與控制系統(tǒng)之間進行數(shù)據(jù)交換的一種標準化的接口規(guī)范,F(xiàn)DT是一種獨立于供應(yīng)商的公開的規(guī)范[6]。在FDT中,每個硬件都具有一個被稱為設(shè)備類型管理器(DTM)的驅(qū)動,用來提供標準的FDT接口。一共有三種不同類型的DTM,設(shè)備級的可以直接訪問通信組件的設(shè)備類型管理器被稱作通信DTM,在不同類型的協(xié)議之前的路由被稱之為網(wǎng)關(guān)DTM,代表現(xiàn)場設(shè)備的DTM被稱之為設(shè)備DTM[6]。
NT6000系統(tǒng)是由南京科遠公司自主研發(fā)的以eBus(冗余I/O總線)為基礎(chǔ)的分散控制系統(tǒng),同時可以支持HART、MODBUS、PROFIBUS等多種現(xiàn)場總線協(xié)議[6]。為滿足NT6000系統(tǒng)設(shè)備生命周期管理(工程、調(diào)試、運行、維護和高級診斷階段)的需要,將FDT技術(shù)應(yīng)用到NT6000系統(tǒng)中,設(shè)計了基于FDT框架的智能設(shè)備管理系統(tǒng)(SyncAMS)。
系統(tǒng)結(jié)構(gòu)如圖1所示,系統(tǒng)中每一個節(jié)點都有對應(yīng)的DTM組件,SyncAMS設(shè)備管理站對應(yīng)FDT Framework,是整個系統(tǒng)的框架,以太網(wǎng)對應(yīng)通訊DTM,負責(zé)設(shè)備間通訊;DPU控制器對應(yīng)網(wǎng)關(guān)Dpu_DTM;PROFIBUS主站模件對應(yīng)網(wǎng)關(guān)PROFIBUS_DTM;其他普通模件對應(yīng)設(shè)備Module_DevDTM[6]。
圖1 NT6000-FCS系統(tǒng)框圖
系統(tǒng)結(jié)構(gòu)主要分為三層[6]:
(1)設(shè)備層:NT6000系統(tǒng)的控制單元和現(xiàn)場總線設(shè)備??刂茊卧琋T6000系統(tǒng)的控制器和IO模件,他們之間通過eBus(冗余I/O總線)相連;現(xiàn)場設(shè)備由多總線協(xié)議的設(shè)備組成。
(2)工廠車間層:包括工程師站、SyncAMS服務(wù)器、數(shù)據(jù)服務(wù)器和SyncAMS客戶端。他們之間通過E-NET冗余網(wǎng)絡(luò)相連,并且連接到DPU控制器。SyncAMS通訊服務(wù)器一般綁定安裝在NT6000系統(tǒng)網(wǎng)絡(luò)上,與控制器有著直接的物理通信鏈路,通常情況下直接安裝于現(xiàn)場工程師站;負責(zé)與現(xiàn)場設(shè)備之間的數(shù)據(jù)交互,以及與數(shù)據(jù)服務(wù)器的交互。數(shù)據(jù)服務(wù)器儲存與設(shè)備儀表相關(guān)的數(shù)據(jù)和運行操作記錄。SyncAMS客戶端是對設(shè)備儀表的應(yīng)用操作。
(3)企業(yè)管理層:即SIS/MIS應(yīng)用系統(tǒng),通過OPC Client連接OPC Server,從而訪問數(shù)據(jù)。
設(shè)備管理的工作流程:客戶端解析用戶的業(yè)務(wù)要求(DTM用戶界面組件調(diào)用),由工業(yè)以太網(wǎng)和接口機以請求/響應(yīng)命令傳遞給SyncAMS服務(wù)器,服務(wù)器調(diào)制解調(diào)上位機命令(DTM業(yè)務(wù)邏輯組件調(diào)用),將命令由eBus總線發(fā)送到控制器和I/O模件(文中即為PROFIBUS主站模件),再經(jīng)過現(xiàn)場總線到現(xiàn)場設(shè)備。現(xiàn)場設(shè)備收到上位機的命令后,通過自身的智能處理將響應(yīng)信息返回并送入數(shù)據(jù)服務(wù)器的數(shù)據(jù)庫[6]。
PROFIBUS二類非周期通訊采用C/S結(jié)構(gòu)通信模型,其中主站相當于客戶端,從站相當于服務(wù)器[1]。
文獻[1]中指出了二類主站的編碼及狀態(tài)機輪轉(zhuǎn)過程。其中”編碼規(guī)則”可見于文獻[1]第十章,”需要實現(xiàn)的PDU(Process Data Unit)”可參考文獻[1]表118。
主要主站狀態(tài)機如圖2所示[1]。
圖2 PROFIBUS二類非周期主站狀態(tài)圖
POWER-ON狀態(tài)進行相關(guān)初始化操作后轉(zhuǎn)向CLOSED狀態(tài);在CLOSED狀態(tài)下用戶調(diào)用MSAC2_Initiate 服務(wù)并發(fā)送給從站[1]。如果在START-POLL-RES狀態(tài)下主站等到的應(yīng)答是肯定(positive)的,則轉(zhuǎn)入OPEN狀態(tài)。OPEN狀態(tài)下可以處理Read、Write和Data_Transport服務(wù)。連接可以通過主站用戶或從站用戶進行放棄(abort)連接[1]。MSAC2M狀態(tài)機詳細輪轉(zhuǎn)過程可以參考規(guī)范[1]中12.7節(jié)。
非周期通訊對SAP的擴展如表1所示。
表1 非周期通訊與SAP對應(yīng)表[1]
FDL層數(shù)據(jù)功能碼錯誤碼等編碼規(guī)則參見文獻[1]第十章。
原DPV0協(xié)議棧中預(yù)留了用于非周期通訊的接口:低優(yōu)先級請求隊列和回復(fù)隊列,缺少相關(guān)的上層基本操作函數(shù),需要添加相應(yīng)的函數(shù)。
2.2.1 基本操作接口的構(gòu)建
參考協(xié)議構(gòu)建了FDL層發(fā)送函數(shù)FDL_MSAC1_REPLY_Req,將DDLM層報文填充到FDL層低優(yōu)先級發(fā)送隊列中,通過FDL任務(wù)進行發(fā)送。上層函數(shù)DDLM_V1_basic_Req,處理基本的DDLM層請求報文。DDLM層服務(wù)函數(shù):MSAC2_Initiate_req,MSAC2_Poll_req,MSAC2_Idle_req,MSAC2_Valid_req,MSAC2_Abort_req;相應(yīng)的confirm函數(shù):MSAC2_Initiate_con,MSAC2_Poll_con,MSAC2_Idle_con,MSAC2_Valid_con,MSAC2_Abort_con。
2.2.2 數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)
參照協(xié)議實現(xiàn)了如表2。
表2 PDU報文表
2.2.3 二類非周期狀態(tài)機的實現(xiàn)
非周期狀態(tài)機函數(shù)分為兩個,非周期請求(MSAC2_Req_Sche)和非周期應(yīng)答狀態(tài)機(MSAC2_Res_con_Sche)。非周期狀態(tài)機和原協(xié)議棧的函數(shù)調(diào)用關(guān)系如圖3所示。
圖3 非周期函數(shù)調(diào)用關(guān)系
對于原DPV0協(xié)議棧的修改如下:
(1)協(xié)議棧初始化函數(shù)中加入MSAC2_Sche_init函數(shù),分配二類狀態(tài)機主結(jié)構(gòu)體內(nèi)存空間,初始化二類狀態(tài)機相關(guān)變量。
(2)在請求函數(shù)中獲取非周期請求報文,成功取得后,判斷當前狀態(tài),如果可以處理非周期報文則調(diào)用請求狀態(tài)機進行處理。
(3)應(yīng)答函數(shù)中加入對返回報文DSAP的判斷,如果是50(表1中二類非周期通訊的SAP)則調(diào)用應(yīng)答狀態(tài)機進行處理。
eBus用戶和PROFIBUS協(xié)議棧通過共享內(nèi)存的方式進行通信。eBus用戶請求報文在PROFIBUS協(xié)議棧中的處理順序如圖4所示。
圖4 用戶請求處理流程圖
SyncAMS智能設(shè)備管理系統(tǒng)是科遠智慧基于通用現(xiàn)場總線協(xié)議開發(fā)的軟件。該系統(tǒng)包含F(xiàn)DT框架和DTM組件,可根據(jù)現(xiàn)場設(shè)備的拓撲網(wǎng)絡(luò)進行離線組態(tài)或上線檢測匹配;結(jié)合通信CommDTM、網(wǎng)關(guān)Gateway DTM和設(shè)備DeviceDTM組件提供的功能與界面操作;可對復(fù)雜的設(shè)備儀表進行統(tǒng)一管理,實現(xiàn)遠程參數(shù)配置、標定與校驗、狀態(tài)診斷及日志記錄、用戶管理等常用功能。另外為豐富公司現(xiàn)有界面組態(tài)軟件的設(shè)備管理功能,可將SyncAMS中具體的DTM管理界面嵌入到Kview系統(tǒng)使用。
點擊SyncAMS彈出登錄界面,登錄成功后,點擊視圖菜單下面的DTM庫視圖,彈出庫視圖,點擊“更新”按鈕后在DTM庫中列舉所有已安裝過的DTM。
圖5中右擊左側(cè)AMS圖標,在彈出的菜單中先安裝通訊DTM文件。在通訊DTM窗口中定義地址欄為127.0.0.1。添加通訊DTM并上線成功后,網(wǎng)絡(luò)視圖中右擊通訊DTM節(jié)點,在彈出的菜單項中選擇”附加功能”->“生成NT6000組態(tài)配置”;然后點擊“文件”菜單下面“導(dǎo)入NT6000組態(tài)”;此時SyncAMS將NT6000 CCM(組態(tài)軟件)中配置的各槽位模件信息導(dǎo)入到網(wǎng)絡(luò)視圖中,導(dǎo)入成功后如圖6所示。
圖5 SyncAMS庫視圖
圖6 組態(tài)導(dǎo)入圖
這里以KM633A(主站模塊)加PROFIBUS PA從站模式為例,介紹SyncAMS的使用方法。首先將從站GSD文件拷貝到 “NT6000安裝目錄”inV4FieldBusPROFIBUSgsd路徑下,然后通過CCM(組態(tài)軟件)組態(tài)建立周期通訊并使能DPV1功能。在本機中安裝該設(shè)備對應(yīng)的DTM文件,安裝完成后點擊“更新”按鈕可將安裝于機器中的從站DTM庫文件更新至列表。
DTM窗口配置KM633A模件位于eBus總線上的地址,需要與CCM(組態(tài)軟件)中的地址保持一致。網(wǎng)絡(luò)視圖中右擊KM633A節(jié)點后,在彈出的菜單中選擇添加窗口,選擇需要操作從站類型相同的DTM后,點擊添加,然后在KM633A設(shè)備管理窗口中點擊“加載”按鈕,加載設(shè)備并將設(shè)備地址配置為和NT6000-CCM(組態(tài)軟件)組態(tài)一致的地址。最后右擊該從站設(shè)備選擇“上線”,雙擊該設(shè)備,便可在右邊窗口觀察配置該設(shè)備非周期參數(shù)。
經(jīng)過長期的技術(shù)積累和對PROFIBUS通信協(xié)議的潛心研究,科遠智慧成功地開發(fā)出了支持二類非周期通訊的國產(chǎn)PROFIBUS系列主站產(chǎn)品。該系列產(chǎn)品國產(chǎn)化程度高,核心技術(shù)自主可控,通過和上位機SyncAMS軟件的配合使用,可以將從站非周期數(shù)據(jù)采集到NT6000控制系統(tǒng)中。目前大量項目應(yīng)用案例表明非周期通訊穩(wěn)定可靠。