1 引言
變頻器由于其應(yīng)用簡便和性能可靠,已成為工業(yè)傳動裝置中首選的電機控制器,現(xiàn)代變頻器采用微計算機數(shù)字控制技術(shù)構(gòu)成,并提供了標準的工業(yè)通訊接口和內(nèi)置協(xié)議(如profibus、cclink等),為變頻器的遠程監(jiān)控提供了必要的基礎(chǔ)。
profibus-dp做為現(xiàn)場總線profibus標準中一種,是一種高速(數(shù)據(jù)傳輸率為9.6kb/s~12mb/s)、經(jīng)濟、可靠的現(xiàn)場級網(wǎng)絡(luò),已經(jīng)在工業(yè)控制得到了廣泛的應(yīng)用。
本文以三菱公司的fr-a740變頻器為基礎(chǔ),研究了simenz s7-300 plc與fr-a740在profibus-dp網(wǎng)絡(luò)中通訊的實現(xiàn),它在筆者所參與的胎面擠出生產(chǎn)線中得到了實踐論證。為后續(xù)建立變頻器的集中監(jiān)控打下了基礎(chǔ)。
2 基于profibus-dp控制系統(tǒng)結(jié)構(gòu)的構(gòu)建
fr-a740與profibus-dp網(wǎng)絡(luò)的連接是通過安裝a7np通訊卡來實現(xiàn)的,其典型配置如圖1所示,我們可以把系統(tǒng)分為三層結(jié)構(gòu),分別為監(jiān)控層、控制層、執(zhí)行層。ipc作為監(jiān)控層,采用mcgs組態(tài)軟件,用于對系統(tǒng)進行監(jiān)控,plc做為控制層,它作為工控機與變頻器之間的橋梁,一方面,它對變頻器進行控制,另一方面將生產(chǎn)線上信息(如變頻器的速度、報警等)傳達給工控機,其中ipc與plc采用mpi(multipoint interface)。變頻器作為執(zhí)行層,將plc下達的指令執(zhí)行,實現(xiàn)對電機的控制。
圖1 基于profibus-dp控制系統(tǒng)結(jié)構(gòu)圖
3 變頻器數(shù)據(jù)通訊的實現(xiàn)
3.1 參數(shù)設(shè)置
在進行設(shè)備通訊之前,必須對變頻器的相關(guān)參數(shù)進行設(shè)置,首先在a7np卡上設(shè)置網(wǎng)絡(luò)節(jié)點地址,必須要與step 7硬件組態(tài)中設(shè)置的地址完全一致,這個設(shè)置主要通過a7np上sw3,sw1兩個旋鈕開關(guān)來調(diào)節(jié)的,另外其他主要參數(shù)設(shè)置如表1所示,它們是在fr-a740的操作面板設(shè)置的。
3.2 profibus通訊協(xié)議
對于調(diào)速驅(qū)動裝置,根據(jù)變速驅(qū)動行規(guī),在周期型通道中傳輸?shù)臄?shù)據(jù)結(jié)構(gòu)被定義為參數(shù)過程數(shù)據(jù)對象pp0(parameter process object)。這個通道經(jīng)常被稱為標準通道,其中包含有用的用戶數(shù)據(jù)?捎玫臄(shù)據(jù)結(jié)構(gòu)分為兩個部分且能用報文分別傳送:過程通道pzd部分、參數(shù)通道pkw部分,具體的協(xié)議報文結(jié)構(gòu)如圖2所示。
圖2 profibus-dp報文中有效的數(shù)據(jù)結(jié)構(gòu)
變速驅(qū)動行規(guī)對ppo的結(jié)構(gòu)、長度作了更具體的規(guī)定,常用的參數(shù)過程數(shù)據(jù)對象ppo一共有5種類型,按照可用數(shù)據(jù)有無參數(shù)通道及過程通道的數(shù)據(jù)字的多少來劃分:
(1)可用數(shù)據(jù)有數(shù)據(jù)區(qū)而無參數(shù)區(qū),有兩字或六個字的過程數(shù)據(jù),如ppo3和pp04。
(2)可用數(shù)據(jù)有參數(shù)區(qū)和數(shù)據(jù)區(qū),且有兩個字、六個字或是個字的過程數(shù)據(jù),如ppo1、ppo2、ppo5。常用的ppo類型如表2所示。選用那種類型的pp0,取決于在硬件組態(tài)中的設(shè)置。過程數(shù)據(jù)在傳動系統(tǒng)中總是以最高優(yōu)先級進行傳送和處理,它主要傳送傳動裝置的狀態(tài)信息和控制信息。參數(shù)數(shù)據(jù)運行存取傳動系統(tǒng)的所有參數(shù)。因而,它能夠在不影響過程數(shù)據(jù)傳輸性能的情況下,從上一級系統(tǒng)調(diào)用參數(shù)值、診斷值、故障信號等。
pkw區(qū)說明參數(shù)數(shù)值(pkw)的數(shù)據(jù)接口處理方式。pkw接口并非物理意義的接口,而是一種通訊機理。這一機理確定了參數(shù)在兩個通訊伙伴之間(如plc和變頻器之間)的傳輸方式。pkw參數(shù)區(qū)一般包含4個字。前兩個字(pke和ind)的信息是關(guān)于主站請求任務(wù)(任務(wù)識別標記id)和從站應(yīng)答響應(yīng)(應(yīng)答識別標記id)的報文。pkw的后兩個字(pwe1和pwe2)用來讀寫具體的參數(shù)數(shù)值。
pkw參數(shù)通道的第一個字是參數(shù)標識符pke。位0到10(pnu)包括所請求的參數(shù)號,它決定所要執(zhí)行的參數(shù)讀寫任務(wù)訪問的是數(shù)組參數(shù)中的哪一個元素。位11(spm)是用來參數(shù)變更報告的觸發(fā)位。位12到位15(ak)包括任務(wù)標識id和應(yīng)答標識id.pkw參數(shù)通道的第二個字變址ind的位12到15位是參數(shù)號pnu的擴展頁號,它和參數(shù)標識符基本參數(shù)號pnu共同產(chǎn)生完整的傳動裝置參數(shù)號。變址ind的0到7位為帶數(shù)組的參數(shù)尋址提供數(shù)組下標,決定訪問數(shù)組參數(shù)的哪一個元素。
第三和第四字為參數(shù)數(shù)值(pwe)。參數(shù)值總是以雙字來傳送,在ppo報文中,一次只能傳送一個參數(shù)值,由pwe1(高位字)和pwe2(低位字)共同組成一個32位參數(shù)數(shù)值。當(dāng)用pwe2傳送一個16位參數(shù)值,必須在dp主站中設(shè)置高位字pwe1為零。
利用pkw參數(shù)通道修改驅(qū)動裝置參數(shù)必須遵守以下規(guī)則:
。1)一個任務(wù)或一個應(yīng)答僅能涉及一個參數(shù)。
。2)主站必須重復(fù)地發(fā)送任務(wù)報文直到從從站那里得到相應(yīng)的應(yīng)答報文。主站通過對應(yīng)答識別id、參數(shù)號、變址下標和參數(shù)值的處理識別任務(wù)的應(yīng)答。
(3)完成的任務(wù)必須送出一個報文,對于應(yīng)答也一樣。
。4)在應(yīng)答報文中重復(fù)的實際值總是當(dāng)前的最新值。
。5)如果在周期工作中不需要pkw參數(shù)通道的信息而只需要pzd過程通道的信息,則任務(wù)id被發(fā)布為“無任務(wù)(用0表示)”。
過程通道pzd區(qū)是為監(jiān)測和控制調(diào)速驅(qū)動裝置而設(shè)計的,在dp主站和從站中收到的pzd報文總是以最高的優(yōu)先級處理,即處理pzd過程通道的優(yōu)先級高于處理參數(shù)通道pkw的優(yōu)先級,而且pzd過程通道總是傳送調(diào)速驅(qū)動裝置上當(dāng)前最新的有效數(shù)據(jù)。通常dp主站給傳動裝置的任務(wù)報文中,第一個pzd字為控制字,第二個字為主設(shè)定值;傳動裝置給dp主站的響應(yīng)報文中,第一個pzd字為狀態(tài)字,第二個字為主實際值。
本文中fr-a740采用pp03的數(shù)據(jù)傳輸結(jié)構(gòu),即使用過程通道(pzd)控制和監(jiān)測變頻器的工作,而沒有使用參數(shù)通道(pkw)修改變頻器的內(nèi)部參數(shù)。pp03的數(shù)據(jù)結(jié)構(gòu)如表3所示。
主站給fr-a740的pzd任務(wù)報文的第一個字pzd1是變頻器的控制字(stw),其每一位的含義如表4所示。
對于變頻器收到的控制字,其中位10必須設(shè)置為1。如果位10是0,變頻器將以從前的控制方式繼續(xù)工作。主站給變頻器的pzd任務(wù)報文的第二個字pzd2字是變頻器的主設(shè)定值(hsw),即主頻率設(shè)定值,以十六進制發(fā)送,最小單位是0.01hz。
變頻器給主站的pzd應(yīng)答報文的第一個pzd字是變頻器的狀態(tài)字(zsw),其每一位的含義如表5所示。pzd應(yīng)答報文的第二個字是主要的運行參數(shù)實際值(hiw)。通常,把它定義為變頻器的實際輸出頻率。
4 plc程序的編寫
在編寫變頻器通訊程序時,首先應(yīng)該讀取變頻器的狀態(tài)字,判斷變頻器是否準備就緒,如果沒有就緒則判斷是否存在故障,若有故障要判斷故障的類型,給出相關(guān)的故障提示信息。然后根據(jù)操作指令組裝控制字,設(shè)定主頻率值,同時實時讀取從站的應(yīng)答報文,完成運行狀態(tài)的在線顯示。其程序結(jié)構(gòu)框圖如圖3所示。
圖3 變頻器通訊程序流程圖
plc作為總線主站讀pzd應(yīng)答報文是通過調(diào)用s7系統(tǒng)功能sfc14(dprd_dat)來實現(xiàn),sfc14用于從一個標準的profibus-dp從站讀取一串連續(xù)的數(shù)值,讀取數(shù)值的長度取決于cpu的類型,它有三個形式參數(shù):dp從站的讀數(shù)據(jù)區(qū)的首地址、存放數(shù)據(jù)變量的首地址、存放錯誤代碼的地址。若能正確讀取數(shù)據(jù),錯誤代碼返回0000(hex);若讀取出錯,錯誤代碼為非零值。同理,寫pzd報文是通過調(diào)用系統(tǒng)功能sfc15(dpwr_dat)來實現(xiàn)的,它也有三個入口參數(shù):dp從站寫數(shù)據(jù)區(qū)的首地址、存放待寫入數(shù)據(jù)變量的首地址、存放錯誤代碼的地址。若正確寫人,錯誤代碼返回0000(hex);若寫入出錯,錯誤代碼為非零值。以下是部分程序代碼。
call "dprd_dat" //調(diào)用sfc14 讀取pzd應(yīng)答報文
laddr :=#addres_iw //dp從站讀數(shù)據(jù)區(qū)的首地址
ret_val:=#error_code_i
-n//存儲錯誤代碼的返回變量
record :=#bpq_in //存放應(yīng)答報文的首地址
l w#16#f
l #bpq_in.state_pzd[1] //pzd1字
aw //判斷變頻器是否就緒
jn nr //沒有準備就緒
clr
= #fault //清內(nèi)部故障標志位
l #control_word1
t bpq_out.control_pzd[1] //寫從站固定控制字
spee: l #speed_iw
t bpq_out.control_pzd[2] //寫主頻率給給定數(shù)值
call "dpwr_dat" //調(diào)用sfc15寫pzd任務(wù)報文
laddr :=#addres_qw //dp從站寫數(shù)據(jù)區(qū)的首地址
record :=#bpq_out //存放任務(wù)報文的首地址
ret_val:=#error_code_
-out //存儲錯誤代碼的返回變量
nop
call "dprd_dat" //調(diào)用sfc14讀取pzd應(yīng)答報文
laddr :=#addres_iw
ret_val :=#error_code
_in
record :=#bpq_in
l #bpq_in.state_pzd[2]
t #actual_speed //讀取主頻率實際運行值
ju end
nr: l w#16#8
l #bpq_in.state_pzd[1] //pzd1字
aw //判斷變頻器是否有故障
jz end
set
= #fault
//添加判斷錯誤和故障的代碼,并將相應(yīng)的錯誤類型寫入存儲區(qū)
end: be
5 結(jié)束語
本文討論了fr-a740在profibus-dp網(wǎng)絡(luò)中通訊的實現(xiàn)方法,該方法已經(jīng)在作者的項目中通過調(diào)試,實際運行表明設(shè)備通訊控制良好、可靠。