《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 基于PROFIBUS DPV1的斷路器通信單元的開發

基于PROFIBUS DPV1的斷路器通信單元的開發

2009-09-23
作者:王 石 韓 兵

  摘?? 要: 基于PROFIBUS-DPV1總線的斷路器(ACB、MCCB)通信單元的硬件和軟件設計,以及斷路器的配置和診斷。重點論述了支持PROFIBUS-DPV1協議的SPC3智能從站通信芯片的使用及PRODAVE S7軟件開發包的使用。

  關鍵詞: PROFIBUS-DP? SPC3? PRODAVE? STEP7? 斷路器

?

  PROFIBUS協議是開放的,與制造商無關,無知識產權保護的標準。原則上,PROFIBUS協議在任何微處理器上都可以實現,在微處理器內部或外部安裝異步串行通信接口(UART)即可完成。

  PROFIBUS-DP是經過優化的高速低成本通信,專門用于設備級控制系統與分散式I/O的通信。PROFIBUS-DP用于現場的高速數據傳送時,主站周期地讀取從站的輸入信息并周期地向從站發送輸出信息。目前PROFIBUS-DP有3個功能版本,即DPV0、DPV1、DPV2。DPV0實現的PROFIBUS-DP基本功能和特征:即采用RS-485雙絞線、雙線電纜或光纜進行數據傳輸,波特率為9.6K~12Mbps。設備類型有:(1)一類主站(DPM1),中央可編程控制器PLC等。(2)二類主站(DPM2),如可編程、可組態、可診斷的設備。(3)DP從站,如分散式I/O設備。各主站間令牌傳遞,總線上最大站點(主-從設備)數為126。主-從用戶數據傳送采用循環方式,每個DP從站的輸入和輸出數據最大為246字節。主-主數據傳送采用非循環方式;DPM1與DP從站之間的數據傳送分為3個階段:參數設定、組態配置和數據交換。

  因為DPV0只允許主站和從站之間進行周期性數據交換,而不允許進行非周期性數據傳輸,這就使控制過程缺乏靈活性。而斷路器這樣的現場設備需要在一定的控制任務下改變原來的工作狀態,所以就需要實現非周期性數據傳輸。DPV1可實現這一要求,它是DP的擴展功能,是對DPV0基本功能的補充,且與DPV0兼容。其擴展的功能有:

  DPM1與DP從站間可以進行非循環的數據傳輸;帶DDLM讀和DDLM寫的非循環讀/寫功能,可讀寫從站任何所需要的數據;允許報警響應,DP基本功能允許DP從站用診斷信息向主站自發地傳輸事件,而新增的DDLM-ALAM-ACK功能被用來直接響應在DP從站上接收的報警數據;DPM1與從站間的非循環數據傳輸。

1?硬件設計

  本系統最小實現由3個單元組成:上位機PC,DP主站的S7-300PLC和DP從站的斷路器。各單元相互連接框圖如圖1所示。

?

?

  上位機使用串行口通過PC-Adapter與S7-300PLC相連,S7-300和斷路器通過PROFIBUS總線相連。

1.1 硬件開發

  在開發DP從站通信單元中,采用了專用的西門子ASIC芯片SPC3。SPC3是一種用于PROFIBUS從站的智能通信芯片,支持PROFIBUS-DP協議。圖1中斷路器的DP從站通信單元的詳細框圖如圖2所示。

?

?

  在圖2中,RS485總線驅動器一側與D型插座相連,另一側通過光耦與SPC3相連。SPC3不能獨立工作,需要外接微處理器。SPC3有8根數據線和11根地址線,其中低8位地址線與數據線復用,可以接80C32、80C166、80C165、HC11、HC16、HC196等單片機。SPC3本身具有地址鎖存功能,不需另加鎖存器,且自身可以產生片選信號。本系統采用了80C32微處理器作為SPC3的外接處理器。

1.2 軟件開發

  PROFIBUS-DP的狀態機構可以保證DP站在每種情況下行為的一致性,其狀態機如圖3所示。SPC3內部集成了狀態機構。在POWER-ON狀態下,從站可以從主站接收Set_Slave_Add報文來改變它的地址,然后從站進入Wait_Parameter狀態,等待參數化。同時,在此狀態下,從站還可以接收Slave_Diag、Get_cfg報文。參數化完成后,從站進入Wait_Cfg狀態,等待Chk_Cfg報文。完成Chk_Cfg后,從站進入Data_Exchange狀態,進行周期性數據傳輸。若組態和數據交換狀態不成功,則返回到參數化階段。進入Data_Exchange狀態后,從站可以接收Rd_inp、Rd_Outp、Slave_Diag、Chk_Cfg、Set_Prm、Get_Cfg、MSAC_C1_READ、MSAC_C1_WRITE、MSAC_C1_ALARM_QUIT等報文。其中,后面3個報文是PROFIBUS-DPV1才有的功能,而DPV0不存在這3個報文。

?

?

  由于SPC3集成了完整的PROFIBUS-DP協議,因此80C32不需要參與處理PROFIBUS-DP狀態機。80C32的主要任務是根據SPC3產生的中斷,轉存SPC3接收到的主站發出的輸出數據,組織要通過SPC3發給主站的數據,并根據要求組織外部診斷等。

  軟件開發采用了西門子公司提供的針對SPC3的程序開發包DPSE,而DPSE提供支持DPV1的功能。其低級版本的程序開發包DPS2主要用于開發DPV0通信。

  DPSE程序開發包使用C語言開發,并提供了一系列封裝好的C接口函數,使用戶可以方便地對SPC3的寄存器和內存進行操作,實現PROFIBUS-DPV1通信。

  在DPSE開發包中實現非周期讀服務的回調函數是DPSE_READ_REQ( )。調用這個函數需要傳遞2個參數:第1個參數是SAP,即服務入口點(對于非周期讀服務,入口點固定為50)。第2個參數是PDU,即協議數據單元。它是一個非周期讀服務的協議數據單元結構類型。實現非周期寫服務的回調函數是DPSE_WRITE_REQ( )。調用這個函數也需要傳遞2個參數:第1個參數是SAP(對非周期寫服務,服務入口點固定為51);第2個參數是PDU。對于寫服務,對應的是寫服務的協議數據單元類型。

  PDU數據結構如圖4所示。其中function_num表示功能號,slot_num表示從站的槽號,Index表示讀或寫數據塊的索引號,length表示讀或寫數據塊的長度,pdu_data表示傳輸的協議數據。這是根據PROFIBUS_

DP協議封裝好的數據格式。

?

?

  西門子S7-300PLC作為主站,集成了上述非周期讀和非周期寫服務。對于DS_READ服務,可以通過S7-300特殊功能調用SFC 59激活。對于DS_WRITE服務,可以通過特殊功能調用SFC 58激活。

  

  其中:

  REQ是調用請求位。當此位為1時,調用執行。

  IOID對于SFC58固定為B#16#54,對于SFC59固定為B#16#55。

  LADDR為模塊I/O起始地址(該地址對應于使用STEP7軟件進行硬件組態時模塊的地址)。

????RECNUM為S7-300數據記錄號,數值范圍為2~241。

  RECORD對應需要傳輸的數據記錄。對SFC58讀,則設定從從站模塊讀上來的數據保存的地址以及數量;對SFC59寫,則設定將要傳輸給從站模塊的數據的地址及數量,保存或傳輸方式都以字節為單位。

  RET_VAL表示調用返回值。根據這個值可以判斷調用是否成功執行。如果失敗,可以得到失敗的原因。

BUSY表示調用忙位。當調用執行時,此值為1;調用結束時,此值為零。因此可以根據這個位的值,判斷調用是否結束。

  根據PROFIBUS DPV1協議,當執行SFC58示例時,可以從總線觀測到04 5E C5這3個特征的16進制數據。如圖4所示,04代表slot_num,5E代表Index索引號(對應于RECNUM),C5代表length傳輸的數據量(C5十進制為197,即192個字節再加上協議數據幀標志)。同理,當執行SFC59示例時,可以從總線觀測到04 5E 2E這3個特征的16進制數據。

2?上位機軟件開發

  上位機軟件主要功能:

  (1)監測PROFIBUS總線上各DP從站的工作狀態。

  (2)如果DP從站具有DPV1功能,則通過此軟件可以在需要的時候調整該DP從站的工作參數。

  上述功能的實現主要基于PRODAVE S7軟件開發包,用戶可以通過PRODAVE S7使用VB、VC等高級語言進行相關的軟件開發。對于使用VC開發的用戶,PRODAVE S7提供了2個封裝好的DLL,而在這2個DLL中提供了訪問PLC的相關函數,并且提供了鏈接這2個DLL的相應的靜態LIB文件。本上位機軟件就是采用了VC開發。

  要使用PRODAVE S7,必須正確設置好西門子系列PLC和PC機的連接。本系統S7-300通過一個PC-Adapter連接到PC機的串口上,如圖5所示。

?

?

  PRODAVE S7提供的訪問PLC的函數主要可以用來訪問PLC的各種內存區域。對于S7-300,主要有:可以讀寫輸入/輸出映像區、讀寫計時器(timer)數據、讀寫計數器(counter)數據、讀寫DB數據(塊)、讀寫內存字節數據、讀寫內存的位數據。對于S7-200和S7-400,讀者可以查閱PRODAVE幫助文檔。

  在使用這套開發軟件包時,需要注意:

  (1)初始化連接。若函數是load_tool,調用此函數時必須正確設置adr_table參數。如果只訪問1個PLC,一般情況下采用默認設置即可;如果要訪問多個通過1個PC-Adapter連接起來的PLC,則需要正確設置adr_table參數,才能使初始化連接成功。只有當初始化連接成功了,才能訪問PLC,這一點很重要。

  (2)初始化連接以后,如果系統中只有1個PLC,則此PLC即為當前活動的PLC;如果系統中有多個PLC,則必須調用new_ss函數來激活想要訪問的PLC。

  (3)不能在初始化成功以后再繼續初始化,否則會出錯。如果要重新初始化,必需先使用unload_tool函數斷開連接。

????(4)使用相關函數從PLC內存區域中讀出的數據字的結構和常用的PC機數據字的結構位置正好相反。常用的PC機中內存字的結構使用的是intel標記,即先低位字節,再高位字節。而使用PRODAVE讀出的PLC內存字使用的是STEP5標記,即先高位字節,再低位字節。所以在編程的時候需要做一些處理,才能得到相應的數據。該軟件的主要功能如下:

  (1)設置從站地址。

  (2)對應STEP7軟件的硬件組態,配置該從站各個I/O模塊的輸入/輸出地址。配置好這些地址后,就可以使用PRODAVE軟件開發包關于訪問PLC輸入、輸出映像區函數(e_field_read、e_field_write、a_field_read、a_field_write)訪問作為主站的PLC和作為從站的I/O模塊的周期性數據。

  (3)根據用戶在PLC中關于SFC 58和SFC 59的功能調用編程,進行相應的DPV1配置,例如指定非周期讀或寫DB的數據塊地址、讀請求位、寫請求位和BUSY位等一系列相關設置。通過這些設置,就可以通過PRODAVE軟件開發包提供的函數mb_setbit設置請求位為1來激活非周期服務。通過testbit函數測試BUSY位是否為零來判斷服務是否結束;通過db_read、db_write 函數可以讀或者寫相應的數據塊數據。因此,采用此方法,可以在上位機上實現控制主站和從站的非周期數據交換。

  (4)對周期性數據和非周期性數據進行相應的處理,可實現實時監控和動態修改從站參數。

軟件框架原理圖如圖6所示。

?

?

????基于PROFIBUS DPV1斷路器通信單元的實現,不但滿足了在工業現場對于實時監控斷路器工作狀態的需求,而且可動態地修改斷路器工作參數,極大地方便了斷路器的工業控制。因此,PROFIBUS總線在工業自動化中有廣泛的應用前景。

?

參考文獻

1 SIEMENS.SPC3 PROFIBUS Controller User Description.1996

2 陽憲惠.現場總線技術及其應用.北京:清華大學出版社,1999

3 郭宗仁,吳亦鋒,郭永.可編程序控制器應用系統設計及通信網絡技術.北京:人民郵電出版社,2002

4?SIEMENS.Profibus Specification.1997

5?SIEMENS.PRODAVE S7 Mannual.1999

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 欧美韩日| 日本在线黄色网址 | 日本欧美在线观看 | 亚洲欧美日韩综合 | 黄a 大片a v 永久免费 | 亚洲欧美高清在线 | 看真人视频a级毛片 | 黄色片免费观看网站 | 亚洲免费三区 | 天天操天天摸天天爽 | 亚洲欧美专线 | 久久一本精品久久精品66 | 午夜剧场成人 | 韩国伦理片在线看免 | 国产乱在线观看视频 | 碰超在线观看 | 小明天天看 | 国产成人精品永久免费视频 | 99精品国产综合久久久久 | 日日夜夜狠狠干 | xxx性欧美在线观看 youjizzxxxx18日本 | 一级理论片免费观看在线 | 一个人www免费观看视频 | 日日摸夜夜添免费毛片小说 | 色综合第一页 | 深夜福利影院在线观看 | 日韩插插| 亚洲综合五月 | 激情五月综合 | 美女羞羞免费网站 | 一级毛片牲交大片 | 欧美日韩不卡视频一区二区三区 | 日本高清免费h色视频在线观看 | 国产黄色片一级 | 国产人成免费视频 | 欧美污视频网站 | 911精品国产亚洲日本美国韩国 | 操一操日一日 | 五月激情网站 | 综合558欧美成人永久网站 | 久久精品视频一区二区三区 |