久久久91-久久久91精品国产一区二区-久久久91精品国产一区二区三区-久久久999国产精品-久久久999久久久精品

ACS880-07C
關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
隨著會計(jì)的發(fā)展,追蹤碳足跡
CAIAC 2025
2024
工業(yè)智能邊緣計(jì)算2024年會
2023年工業(yè)安全大會
OICT公益講堂
當(dāng)前位置:首頁 >> 案例 >> 案例首頁

案例頻道

應(yīng)用PLC和DP總線實(shí)現(xiàn)對可變速傳動裝置的通信和控制
  • 企業(yè):控制網(wǎng)     領(lǐng)域:PLC /PAC/PCC/RTU     行業(yè):網(wǎng)絡(luò)通訊    
  • 點(diǎn)擊數(shù):3649     發(fā)布時(shí)間:2011-03-08 11:00:34
  • 分享到:
在現(xiàn)代的各種控制項(xiàng)目中都大量使用可變速傳動裝置,包括直流數(shù)字傳動、交流變頻和交流伺服系統(tǒng)。作為政府的長遠(yuǎn)經(jīng)濟(jì)政策,大力提倡低碳經(jīng)濟(jì)和使用各種節(jié)能設(shè)備,對于感應(yīng)電動機(jī)一類的設(shè)備(特別是風(fēng)機(jī)、泵類驅(qū)動),采用可變速傳動裝置是最為有效的節(jié)能措施。對其它的大型成套設(shè)備(例如軋鋼設(shè)備、造紙?jiān)O(shè)備、高速彩印設(shè)備、雙向拉伸薄膜生產(chǎn)線等),不僅使用了大量的可變速傳動裝置,還有高同步精度和其它一些技術(shù)要求。

                 
   
陳忠華
(1938-)男,江蘇蘇州人,教授級高級工程師,1965年畢業(yè)于上海交通大學(xué)電磁理論研究生班。主要從事自動化領(lǐng)域的設(shè)計(jì)、制造工作,是國產(chǎn)第一條4米雙向拉伸薄膜生產(chǎn)線電氣控制系統(tǒng)的總負(fù)責(zé)人。近年來,還承擔(dān)“長江三峽大壩泄洪閘門控制系統(tǒng)”的設(shè)計(jì)、制造任務(wù)。曾獲多項(xiàng)國家科技進(jìn)步獎(jiǎng)。近期著作有《可編程序控制器與工業(yè)現(xiàn)場總線》、《可編程序控制器與工業(yè)自動化系統(tǒng)》等。

    在現(xiàn)代的各種控制項(xiàng)目中都大量使用可變速傳動裝置,包括直流數(shù)字傳動、交流變頻和交流伺服系統(tǒng)。作為政府的長遠(yuǎn)經(jīng)濟(jì)政策,大力提倡低碳經(jīng)濟(jì)和使用各種節(jié)能設(shè)備,對于感應(yīng)電動機(jī)一類的設(shè)備(特別是風(fēng)機(jī)、泵類驅(qū)動),采用可變速傳動裝置是最為有效的節(jié)能措施。對其它的大型成套設(shè)備(例如軋鋼設(shè)備、造紙?jiān)O(shè)備、高速彩印設(shè)備、雙向拉伸薄膜生產(chǎn)線等),不僅使用了大量的可變速傳動裝置,還有高同步精度和其它一些技術(shù)要求。

    用PLC實(shí)現(xiàn)對大量的可變速傳動裝置的控制,采用傳統(tǒng)的方法(模擬量設(shè)定和開關(guān)量I/O控制),已經(jīng)不能完全滿足技術(shù)要求(例如控制精度不夠、不能保證精確同步、不能采集到大量的現(xiàn)場設(shè)備信息、不能實(shí)現(xiàn)遠(yuǎn)程的參數(shù)設(shè)定和修改等),也很不經(jīng)濟(jì),因?yàn)橐褂么罅康腎/O模板,要敷設(shè)大量的控制電纜,增加了安裝和維護(hù)的成本。還增大了產(chǎn)生故障的幾率(由于節(jié)點(diǎn)和端子的增加)。解決上述矛盾的比較好的方法是采用PLC和現(xiàn)場總線技術(shù),用通信的方法實(shí)現(xiàn)對大量可變速傳動裝置的控制。

    本文就上述命題的實(shí)現(xiàn)方法、系統(tǒng)組態(tài)、通信協(xié)議和程序編寫進(jìn)行了詳細(xì)介紹,還通過了一個(gè)具體的實(shí)例來說明程序的編寫。

    1 可變速傳動通信中的過程數(shù)據(jù)通道和參數(shù)數(shù)據(jù)通道

    為實(shí)現(xiàn)對可變速傳動裝置的通信需要區(qū)分“過程數(shù)據(jù)通道”和“參數(shù)數(shù)據(jù)通道”兩類不同性質(zhì)的數(shù)據(jù)通道。

    通過過程數(shù)據(jù)通道傳輸過程數(shù)據(jù):

    控制器由過程數(shù)據(jù)進(jìn)行控制;

    過程數(shù)據(jù)的傳輸在時(shí)間上有嚴(yán)格的要求;

    在上位PLC和控制器之間,過程數(shù)據(jù)是周期傳輸?shù)模ㄟB續(xù)交換當(dāng)前輸入和輸出數(shù)據(jù));

    上位PLC能直接訪問過程數(shù)據(jù)。例如,在PLC中直接分配到傳動裝置的I/O區(qū)域;

    過程數(shù)據(jù)在控制器內(nèi)不被保存(掉電時(shí)過程數(shù)據(jù)將丟失);

    作為過程數(shù)據(jù)的例子,例如:設(shè)備的控制字和設(shè)定值(寫過程數(shù)據(jù)),狀態(tài)字和實(shí)際值(讀過程數(shù)據(jù))。

    通過參數(shù)數(shù)據(jù)通道傳輸參數(shù)數(shù)據(jù):

    參數(shù)數(shù)據(jù)通道提供用來訪問所有的可變速傳動裝置的參數(shù)

    代碼;

    通常參數(shù)數(shù)據(jù)的傳輸在時(shí)間上沒有十分嚴(yán)格的要求;

    在通信行規(guī)中如果執(zhí)行的是DP-V0協(xié)議,則參數(shù)數(shù)據(jù)也需要進(jìn)行周期傳送。在DP-V0協(xié)議中參數(shù)數(shù)據(jù)通道被激活后,除了過程輸入數(shù)據(jù)和過程輸出數(shù)據(jù)外,參數(shù)數(shù)據(jù)另占據(jù)4個(gè)字;

    在通信行規(guī)中如果執(zhí)行的是DP-V1協(xié)議,參數(shù)數(shù)據(jù)可以實(shí)現(xiàn)非周期的傳送;

    作為參數(shù)數(shù)據(jù)的例子,有操作參數(shù)(例如倫茨9400伺服控制器中的C00006控制方式的選擇、C00105電動機(jī)快停的執(zhí)行時(shí)間、C00070速度控制器的增益、C00072速度控制器的積分時(shí)間常數(shù)),診斷信息(C00061控制器功率單元散熱器溫度、C00062控制器內(nèi)部的溫度)和電動機(jī)數(shù)據(jù)(C00011電動機(jī)的額定速度、C00022電動機(jī)的最大允許電流、C00063電動機(jī)當(dāng)前溫度值)等。

    2 實(shí)現(xiàn)任務(wù)的PLC側(cè)硬件組態(tài)

    筆者用西門子公司的S7300 PLC實(shí)現(xiàn)對西門子公司的6RA70直流傳動裝置和倫茨公司的9400交流伺服控制裝置進(jìn)行通信,作為例子,介紹PLC側(cè)的系統(tǒng)硬件組態(tài),硬件包括PLC的CPU,一塊32點(diǎn)的DI模板和一塊32點(diǎn)的DO模板,6RA70的DP通信模板CBP2和9400控制器的通信模板E94AYCPM。圖1和圖2為應(yīng)用STEP 7軟件完成的項(xiàng)目硬件組態(tài),項(xiàng)目名稱為“可變速傳動裝置通信示例”。
                         
         圖1  硬件組態(tài)中對6R A7 0 裝置的“ 參數(shù)過程數(shù)據(jù)通道”和“過程數(shù)據(jù)通道”的定義
    圖1 是對6R A7 0 裝置的組態(tài), 選擇“ 參數(shù)過程數(shù)據(jù)目標(biāo)”PPO1(見圖1右側(cè)紅色橢圓標(biāo)記)。PPO1表示選擇4個(gè)參數(shù)數(shù)據(jù)字(PKW),它們的讀地址為PIW256至PIW263,寫地址為PQW256至PQW263,PPO1還定義2個(gè)過程數(shù)據(jù)字(PZD),它們的讀地址為PIW264至PIW267,寫地址為PQW264至PQW267(見圖1下方的紅色橢圓標(biāo)記)。
             
         圖2  硬件組態(tài)中對倫茨9400裝置的“ 參數(shù)過程數(shù)據(jù)通道”和“過程數(shù)據(jù)通道”的定義
    圖2是對倫茨9400裝置的組態(tài),選擇參數(shù)數(shù)據(jù)和3個(gè)過程數(shù)據(jù) (見圖2右側(cè)紅色橢圓標(biāo)記)。選擇的4個(gè)參數(shù)數(shù)據(jù)字(PAR),它們的讀地址為PIW268至PIW275,寫地址為PQW268至PQW275,同時(shí)定義3個(gè)過程數(shù)據(jù)字(PZD),它們的讀地址為PIW276至PIW281,寫地址為PQW276至PQW281(見圖2下方的紅色橢圓標(biāo)記)。

    4個(gè)參數(shù)數(shù)據(jù)字的詳細(xì)定義和報(bào)文結(jié)構(gòu)將在第Ⅳ節(jié)中介紹。

    6RA70的兩個(gè)讀PZD,一個(gè)定義成“狀態(tài)字”(16位),另一個(gè)定義成實(shí)際值(16位整型數(shù)),6RA70的兩個(gè)寫PZD,一個(gè)定義成“控制字”(16位),另一個(gè)定義成設(shè)定值(16位整型數(shù))。

    倫茨9400裝置的參數(shù)通道也定義為4個(gè)字,過程數(shù)據(jù)讀/寫的定義,和6RA70一樣,只是實(shí)際值和設(shè)定值都是32位的雙整型數(shù)。

    3 實(shí)現(xiàn)過程數(shù)據(jù)PZD的通信
            
           圖3  對倫茨9400伺服裝置實(shí)現(xiàn)“過程數(shù)據(jù)”和“參數(shù)數(shù)據(jù)”通信的程序編寫
    圖3表示對倫茨9400伺服裝置,實(shí)現(xiàn)“過程數(shù)據(jù)”和“參數(shù)數(shù)據(jù)”通信程序編寫的程序結(jié)構(gòu)。本節(jié)先說明過程數(shù)據(jù)PZD的通信程序編寫。

    首先要建立一個(gè)過程數(shù)據(jù)讀/ 寫的緩沖數(shù)據(jù)塊( 例如,DB20),數(shù)據(jù)塊中數(shù)據(jù)地址按控制字(16位)、設(shè)定值(32位)、狀態(tài)字(16位)實(shí)際值(32位)的次序排列。

    表1列出了DB20的具體內(nèi)容。
             
    表1也同時(shí)給出了根據(jù)“PROFIdrive”(可變速傳動技術(shù)行規(guī))標(biāo)準(zhǔn),對“控制字”和“狀態(tài)字”各個(gè)“位”的定義。

    應(yīng)用STEP 7提供的系統(tǒng)功能SFC 14(DPRD_DAT)完成過程數(shù)據(jù)的讀程序,讀到的過程數(shù)據(jù)狀態(tài)字和實(shí)際速度存放在數(shù)據(jù)塊DB20中從地址6.0開始的連續(xù)6個(gè)字節(jié)中,如圖4所示。
                 
                        圖4  應(yīng)用系統(tǒng)功能SFC 14讀過程數(shù)據(jù)的程序
    應(yīng)用STEP 7提供的系統(tǒng)功能SFC 15(DPWR_DAT)完成過程數(shù)據(jù)的寫程序,將過程數(shù)據(jù)控制字和設(shè)定速度從數(shù)據(jù)塊DB20中從地址0.0開始的連續(xù)6個(gè)字節(jié)寫到9400裝置中,如圖5所示。
                
                      圖5      應(yīng)用系統(tǒng)功能SFC 15寫過程數(shù)據(jù)字的程序
    以上是PLC側(cè)完成的過程數(shù)據(jù)讀/寫程序。除此之外,在9400伺服控制器側(cè)還要進(jìn)行相應(yīng)的組態(tài)。這里要用到倫茨公司的L-force Engineer 組態(tài)軟件。圖6是應(yīng)用該軟件對“可變速傳動裝置通信示例”項(xiàng)目中9400裝置組態(tài)的基本畫面。
                 
                     圖6  應(yīng)用L-force Engineer 組態(tài)軟件對傳動裝置進(jìn)行的組態(tài)
    從圖6中看到,該項(xiàng)目配置了PROFIBUS_V1.10通信模板,放置在裝置的1號擴(kuò)展槽上(見圖6左側(cè)紅色橢圓標(biāo)記)。在組態(tài)時(shí)選擇該通信模板的站地址為4(在模板正面有硬件地址選擇開關(guān),同樣要設(shè)置成4),這一站地址的選擇要和PLC硬件組態(tài)時(shí)的從站站地址相一致。
                  
             圖7  應(yīng)用L-force Engineer 軟件組態(tài)PROFIBUS通信的接收過程數(shù)據(jù)接收字PDO_RV0
    圖7是對PROFIBUS_DP通信模板的過程數(shù)據(jù)接收字PDO_RV0進(jìn)行的組態(tài),第1個(gè)過程數(shù)據(jù)字定義為LPortControl 1,其Offset地址為0,第2和第3個(gè)過程數(shù)據(jù)字定義為LPort32In 1(雙字),其Offset地址為2。
                
             圖8  應(yīng)用L-force Engineer 軟件組態(tài)PROFIBUS通信的發(fā)送過程數(shù)據(jù)接收字PDO_TV0
    圖8是對PROFIBUS_DP通信模板的過程數(shù)據(jù)發(fā)送字PDO_TV0進(jìn)行的組態(tài),第1個(gè)過程數(shù)據(jù)字定義為LPortStatus 1,其Offset地址為0,第2和第3個(gè)過程數(shù)據(jù)字定義為LPort32Out 1(雙字),其Offset地址為2。以上組態(tài)是在圖7和圖8的右側(cè)上方,選擇Process data objects項(xiàng),并進(jìn)入Edit PDO 對話框時(shí)進(jìn)行的。這一組態(tài)步驟是在9400傳動裝置內(nèi)部設(shè)定,用PROFIBUS_DP (V0標(biāo)準(zhǔn))進(jìn)行通信時(shí),對接收的第1個(gè)過程數(shù)據(jù)字傳送給LPortControl 1端口,對第2、第3個(gè)過程數(shù)據(jù)字,傳送給LPort32In 1(雙字)端口,同樣內(nèi)部設(shè)定從LPortStatus 1端口發(fā)送的是第1個(gè)發(fā)送過程數(shù)據(jù)字,從LPort32Out 1(雙字)端口發(fā)送的是第2、第3個(gè)發(fā)送過程數(shù)據(jù)字。
             
               圖9  應(yīng)用L-force Engineer 軟件組態(tài)過程數(shù)據(jù)字和內(nèi)部端口的連接
    圖9表示組態(tài)后的內(nèi)部端口選擇(高亮黑字)。

    以上只是組態(tài)的第一步,接下來還要選擇端口和內(nèi)部功能的連接,需要通過L-force Engineer軟件的FB Editor功能來完成。

    如圖10所示,應(yīng)用L-force Engineer軟件選擇參數(shù)C03000(X Speed setpoint from)的源為171:Input port 1(32bit),這樣就將過程數(shù)據(jù)接收字的第2和第3個(gè)字(LPort32In 1)內(nèi)部連接為速度設(shè)定值,如圖11所示,LPort32In 1最后連接到SpeedRamp(速度斜坡功能塊)的dnSpeedSetpointIn_n作為裝置的速度給定值,由于是32位的速度輸入,當(dāng)輸入數(shù)字值為L#1073741824時(shí),代表100%的設(shè)定速度輸入(對應(yīng)C00011參數(shù)設(shè)定的電動機(jī)最高轉(zhuǎn)速,例如3000 rpm)。
               
                圖10  應(yīng)用L-force Engineer 軟件選擇參數(shù) C03000
               (X Speed setpoint from)的源為171:Input port 1(32bit)   
               
               圖11  應(yīng)用L-force Engineer的FB Editor功能進(jìn)行LPort32In 1的連接
                
                      圖12  應(yīng)用L-force Engineer軟件選擇參數(shù)C03009子代碼04
                     (X Activ.fixed 1 with)的源為138:Control word 1 bit08
    如圖12所示,應(yīng)用L-force Engineer軟件選擇參數(shù)C03009子代碼04(X Activ.fixed 1 with)的源為138:Control word 1 bit08,這樣就將過程數(shù)據(jù)接收字的第1個(gè)字(LPortControl 1)的第08位(bit08),作為開關(guān)信號用來控制轉(zhuǎn)換速度設(shè)定值的源,變成由Jog1的固定速度值給定,如圖13所示,SpeedRamp(速度斜坡功能塊)的bJog1的控制端是由過程數(shù)據(jù)控制字的bi t08位(ControlWord.bit08)來控制的。
                  
                 圖13   應(yīng)用L-force Engineer軟件的FB Editor功能進(jìn)行LPortcontrol 1的內(nèi)部連接
                 
                 圖14   應(yīng)用L-force Enginee軟件r的FB Editor功能定義LPortstatus 1 的信號輸出
    圖13表示過程數(shù)據(jù)控制字的16個(gè)位在本項(xiàng)目中的定義:圖上只定義了4個(gè)位,即Bbit0(主開關(guān)接通),Bbit2(QSP快停的第2激活信號,快停的激活控制信號是“或”邏輯關(guān)系),Bbit7(故障復(fù)位控制信號),Bbit8(Jog1的固定速度值切換),其它12個(gè)位都沒有定義,用戶可以根據(jù)控制的需要,用L-force Engineer的FB Editor功能,自行定義。
               
    傳動裝置和通信模板(例如,E94AYCPM模板)的操作說明書中都列出了包含該裝置全部參數(shù)代碼的代碼表。
 
    參數(shù)代碼的變址號:

    在DRIVECOM行規(guī)的參數(shù)數(shù)據(jù)通道中,控制器的參數(shù)不直接用倫茨的代碼號來尋址,而是通過代碼的變址號和子變址號來進(jìn)行尋址,變址號放在參數(shù)通道數(shù)據(jù)字的“字節(jié)3”和“字節(jié)4”,子變址號放在參數(shù)通道數(shù)據(jù)字的“字節(jié)2”。參數(shù)代碼號和變址號之間有固定的轉(zhuǎn)換關(guān)系,兩者之間差一個(gè)偏置量(24575dec 或5FFFhex),表3用舉例來說明這一轉(zhuǎn)換關(guān)系。

               
    參數(shù)代碼值的表示:參數(shù)代碼的值寫入?yún)?shù)通道數(shù)據(jù)字的“字節(jié)5”至“字節(jié)8”(報(bào)文的用戶數(shù)據(jù)區(qū))。

    參數(shù)通道報(bào)文結(jié)構(gòu)(綜述):DRIVECOM行規(guī)的參數(shù)通道通信報(bào)文,總共由8個(gè)字節(jié)組成,定義見表4。報(bào)文結(jié)構(gòu)各字節(jié)的具體定義如下:

    字節(jié)1(Byte 1):字節(jié)1是服務(wù)字節(jié),定義作業(yè)和對DP參數(shù)數(shù)據(jù)通道的控制響應(yīng)
             
    字節(jié)1中8個(gè)位的具體定義如圖18所示。

    字節(jié)2(Byte2):子變址號
            
    對于倫茨公司的9400系列伺服控制裝置,有許多參數(shù)碼帶有子代碼號,因此需要增加一個(gè)子變址號,對它們進(jìn)行尋址,參數(shù)通道的字節(jié)2,用來放置子變址號,沒有子代碼號的參數(shù),字節(jié)2= 0,有子代碼號的參數(shù),字節(jié)2 = 子代碼號,字節(jié)2可以表示1到256 個(gè)子代碼號。

    舉例:參數(shù)碼 C00050/子代碼號1,“Speed setpoint1(rpm)”,字節(jié)2=1;
           
            圖18  參數(shù)通道報(bào)文結(jié)構(gòu)字節(jié)1(服務(wù)字節(jié))中各個(gè)“位”的定義
    參數(shù)碼 C00050/子代碼號2,“Speed setpoint 2(rpm)”,字節(jié)2=2。

    字節(jié)3(Byte 3)和字節(jié)4(Byte 4):變址號按照以下公式用將倫茨的參數(shù)代碼號轉(zhuǎn)換成2個(gè)字節(jié)的變址號:
              
    變址號 = 24575 – 倫茨代碼號

    舉例:

    參數(shù)C00011(電動機(jī)參考速度,單位r pm)轉(zhuǎn)換成變址號:

    24575 – 11 = 24564 = 5FF4hex

    對這一例子的輸入應(yīng)該是:

    字節(jié)3:變址號高字節(jié) = 5Fhex

    字節(jié)4:變址號低字節(jié) = F4hex

    字節(jié)5(Byte 5)-字節(jié)8(Byte 8):參數(shù)值(數(shù)據(jù))或故障信息(錯(cuò)誤號)
             
    由字節(jié)1(“服務(wù)字節(jié)”)第7位的“狀態(tài)”,決定數(shù)據(jù)場字節(jié)5到字節(jié)8的含義,見表5。

表4 按照DRIVECOM行規(guī)的參數(shù)通道通信報(bào)文結(jié)構(gòu)

DRIVECOM行規(guī)的參數(shù)數(shù)據(jù)通道,通信報(bào)文結(jié)構(gòu)
Byte1
字節(jié)1
Byte2
字節(jié)2
Byte3
字節(jié)3
Byte4
字節(jié)4
Byte5
字節(jié)5
Byte6
字節(jié)6
Byte7
字節(jié)7
Byte8
字節(jié)8
Service
服務(wù)
Subindex
子變址號
IndexHigh byte
變址號高字節(jié)
IndexLow byte
變址號低字節(jié)
Date 4 /Or Error4
數(shù)據(jù)4或錯(cuò)誤號4
Date 3 /Or Error3
數(shù)據(jù)3或錯(cuò)誤號3
Date 2 /Or Error2
數(shù)據(jù)2或錯(cuò)誤號2
Date 1 /Or Error1
數(shù)據(jù)1或錯(cuò)誤號1

表5 由字節(jié)1第7位的“狀態(tài)”,決定數(shù)據(jù)場字節(jié)5到字節(jié)8的含義
字節(jié)1的第7位0 1
字節(jié)5到字節(jié)8的含義參數(shù)值(數(shù)據(jù)1到4)
訪問無效,表示故障
信息(錯(cuò)誤1到4)

      參數(shù)值(數(shù)據(jù)):
      取決于數(shù)據(jù)格式,參數(shù)值的長度從一個(gè)字節(jié)到4個(gè)字節(jié)。數(shù)據(jù)的序列按照Motorola格式,亦即,第一是高字節(jié)/高字,第二是低字節(jié)/低字。
      錯(cuò)誤信息:
      如果字節(jié)1(“服務(wù)字節(jié)”)第7位的“狀態(tài)”為1時(shí),表示通信作業(yè)沒有完成,出現(xiàn)故障,則在字節(jié)5~8中表示的是錯(cuò)誤信息,各錯(cuò)誤信息碼的含義,見表6。
表6 錯(cuò)誤信息表,在字節(jié)5~8數(shù)據(jù)場中表示以下錯(cuò)誤信息
Data 1 Data 2 Data 3 Data 4 錯(cuò)誤信息含義
6 3
00
00 訪問不允許(無權(quán)訪問)
6 5 11 無效的子代碼變址號
6 5 12 數(shù)據(jù)長度太長
6 5 13 數(shù)據(jù)長度太短
6 7 00 訪問目標(biāo)不存在
6 8 00 數(shù)據(jù)類型不符合
8 0 00 作業(yè)不能執(zhí)行
8 0 20 作業(yè)當(dāng)前不能執(zhí)行
8 0 22 由于控制器的狀態(tài)使無法執(zhí)行
8 0 30 只有在控制器處于禁止?fàn)顟B(tài),才允
許改變參數(shù)以及輸出值的范圍
8 0 31 參數(shù)值太大
8 0 32 參數(shù)值太小
8 0 80 硬件故障
數(shù)據(jù)內(nèi)容以16進(jìn)制表示。
讀作業(yè)和寫作業(yè)的編程過程舉例:

舉例1: 讀參數(shù)值

      讀控制器散熱器的溫度(C00061),(例如:讀到值θ=430 C)。
      字節(jié)1:作業(yè)

           圖19 參數(shù)通道報(bào)文結(jié)構(gòu)字節(jié)1(讀參數(shù))舉例
       字節(jié)2:子變址號
      子變址號 = 0,因?yàn)閰?shù)碼C00061沒有子變址號。
      字節(jié)3/4:變址號(計(jì)算)
      變址號(讀請求) = 24575-代碼號
      變址號 = 24575-61 = 24514 = 5FC2hex (5F hex = 高字節(jié),
       C2 hex = 低字節(jié))
       字節(jié)5~8:數(shù)據(jù) (包括在響應(yīng)報(bào)文中)
      數(shù)據(jù)字節(jié)1到數(shù)據(jù)字節(jié)4 = 43 [0C] x 1 (1是參數(shù)代碼表中查得的內(nèi)部因子)=43=00 00 00 2Bhex
     運(yùn)行結(jié)果見表7。
      舉例2:寫參數(shù)值
      設(shè)置控制器的快停斜坡時(shí)間(C00105),設(shè)定時(shí)間為50 ms(0.05 S)
      字節(jié)1:作業(yè)
        
                        圖20 參數(shù)通道報(bào)文結(jié)構(gòu)字節(jié)1(寫參數(shù))舉例

表7 讀參數(shù)值報(bào)文舉例

字節(jié)1 字節(jié)2 字節(jié)3 字節(jié)4 字節(jié)5 字節(jié)6 字節(jié)7 字節(jié)8
作業(yè)服務(wù)子變址號
變址號
高字節(jié)
變址號
低字節(jié)
數(shù)據(jù)4 數(shù)據(jù)3 數(shù)據(jù)2 數(shù)據(jù)1
從主站到驅(qū)動器的請求報(bào)文
HEX 01 00 5F C2 00 00 00 00
BIN 0000
0001
0000
0000
0101
1111
1100
0010
0000
0000
0000
0000
0000
0000
0000
0000
等待在響應(yīng)報(bào)文中握手信號位的改變(這里是字節(jié)1的第6位:1→0)
從驅(qū)動器到主站的響應(yīng)報(bào)文(如果沒有錯(cuò)誤)
HEX 30 00 5F C2 00 00 00 2B
BIN 0011
0000
0000
0000
0101
1111
1100
0010
0000
0000
0000
0000
0000
0000
0010
1011

表8 寫參數(shù)值報(bào)文舉例

字節(jié)1 字節(jié)2 字節(jié)3 字節(jié)4 字節(jié)5 字節(jié)6 字節(jié)7 字節(jié)8
作業(yè)服務(wù)子變址號
變址號
高字節(jié)
變址號
低字節(jié)
數(shù)據(jù)4 數(shù)據(jù)3 數(shù)據(jù)2 數(shù)據(jù)1
從主站到驅(qū)動器的請求報(bào)文
HEX 72 00 5F 96 00 00 00 32
BIN 0111
0010
0000
0000
0101
1111
1001
0110
0000
0000
0000
0000
0000
0000
0011
0010
等待在響應(yīng)報(bào)文中握手信號位的改變(這里是字節(jié)1的第6位:0→1)
從驅(qū)動器到主站的響應(yīng)報(bào)文(如果沒有錯(cuò)誤)
HEX 40 00 5F 96 00 00 00 32
BIN 0100
0000
0000
0000
0101
1111
1001
0110
0000
0000
0000
0000
0000
0000
0011
0010
等待握手信號位的改變(這里是字節(jié)1的第6位:1→0)

表9 將要讀/寫的參數(shù)數(shù)據(jù)列表
地址符號名數(shù)據(jù)類型初始值說明
Struct
+0.0 telegram_head STRUCT telegram head: !! not overwrite
+0.0 zerro BYTE B#16#0 breakup between lists of telegrams in one DB (value = 0)
+1.0 servicebyte BYTE B#16#0 stored infos by the actual opened telegrams
+2.0 telegrampointer INT 0 pointer to the actual working telegram (0 := default starting value)
+4.0 error DWORD DW#16#0 request error, infos at Lenze Profibus manuel
+8.0 END_STRUCT
+8.0 telegram_001 STRUCT ##### C00011 -> Servodrive
+0.0 servicebyte BYTE B#16#32 Servicebyte -> Lenze
+1.0 subindex BYTE B#16#0 Subindex (Subcode)
+2.0 index INT 24564 Index = 24575 - Code-Nr.
+4.0 data DINT L#0 parameter value ( observe format and decimal place)
+8.0 END_STRUCT
+16.0 telegram_002 STRUCT ##### C00022 <- Servodrive
+0.0 servicebyte BYTE B#16#31 Servicebyte -> Lenze
+1.0 subindex BYTE B#16#0 Subindex (Subcode)
+2.0 index INT 24553 Index = 24575 - Code-Nr.
+4.0 data DINT L#0 parameter value ( observe format and decimal place)
+8.0 END_STRUCT
+24.0 telegram_003 STRUCT ##### C00054 <- Servodrive
+0.0 servicebyte BYTE B#16#31 Servicebyte -> Lenze
+1.0 subindex BYTE B#16#0 Subindex (Subcode)
+2.0 index INT 24521 Index = 24575 - Code-Nr.
+4.0 data DINT L#0 parameter value ( observe format and decimal place)
+8.0 END_STRUCT
+32.0 telegram_004 STRUCT ##### C00061 <- Servodrive
+0.0 servicebyte BYTE B#16#31 Servicebyte -> Lenze
+1.0 subindex BYTE B#16#0 Subindex (Subcode)
+2.0 index INT 24514 Index = 24575 - Code-Nr. C 013
+4.0 data DINT L#0 parameter value ( observe format and decimal place)
+8.0 END_STRUCT
=40.0 END_STRUCT

    字節(jié)2:子變址號

    子變址號=0,因?yàn)閰?shù)碼C00105沒有子變址號。

    字節(jié)3/4:變址號(計(jì)算)

    變址號(讀請求)=24575-代碼號

    變址號=24575-105=24470=5F96hex(5F hex=高字節(jié),96hex=低字節(jié))

    字節(jié)5~8:數(shù)據(jù) (包括在發(fā)送報(bào)文中)

    寫入的參數(shù)值=0.05S x 1000 (1000是參數(shù)代碼表中查得的內(nèi)部因子)=50 =00 00 00 32hex

    運(yùn)行結(jié)果見表8。

    圖3中FC127功能和DB31數(shù)據(jù)塊程序的說明。

    下面將具體的說明“可變速傳動裝置通信示例”項(xiàng)目中的實(shí)際程序。程序中的Blocks文件夾包含有OB1、FC30、FC127、DB31等程序塊。

    數(shù)據(jù)塊DB31是用數(shù)據(jù)結(jié)構(gòu)格式,列出將要讀/寫參數(shù)的列表,見表9。

    現(xiàn)在來具體分析數(shù)據(jù)塊DB31,它采用數(shù)據(jù)結(jié)構(gòu)的格式存放數(shù)據(jù),該數(shù)據(jù)結(jié)構(gòu)是按參數(shù)通道的8個(gè)字節(jié)定義的,它包含將要傳送(讀/寫)的參數(shù)數(shù)據(jù)。例如,DB31方塊中的telegram_001是一個(gè)數(shù)據(jù)結(jié)構(gòu),在DB31中占據(jù)DBB 8-DBB 15共8個(gè)字節(jié),該結(jié)構(gòu)的內(nèi)容是將參數(shù)C00011(最高轉(zhuǎn)速)的值,由PLC傳送給伺服控制器,這一結(jié)構(gòu)包括不同的數(shù)據(jù)類型,DBB 8是服務(wù)字節(jié)(數(shù)據(jù)類型為Byte,符號名servicebyte),初始值為B#16#32,表示寫參數(shù), DBB 9存放子代碼號(數(shù)據(jù)類型為Byte,符號名subindex,本例中子代碼為0),DBW 10存放代碼號(數(shù)據(jù)類型為INT,符號名index,本例中代碼的變址號為5FF4H ),參數(shù)值占用4個(gè)字節(jié),存放在DBD 12雙字中(數(shù)據(jù)類型為DINT,符號名data),在FC30程序塊的Network:3中將它賦值為L#3000(3000 rpm)。類似的數(shù)據(jù)結(jié)構(gòu):telegram_002是讀參數(shù)C00022(最大電流值)的數(shù)據(jù)結(jié)構(gòu),telegram_003是讀參數(shù)C00054(電動機(jī)電流值)的數(shù)據(jù)結(jié)構(gòu),telegram_004是讀參數(shù)C00061(散熱器溫度)的數(shù)據(jù)結(jié)構(gòu)。在表9中telegram_head(報(bào)文頭)也是一個(gè)數(shù)據(jù)結(jié)構(gòu),從DBB0至DBB7,DBB 0是數(shù)據(jù)塊報(bào)文列表的分隔(數(shù)據(jù)類型為Byte,符號名zerro),初始值為B#16#0, DBB1存放實(shí)際被打開報(bào)文的信息(數(shù)據(jù)類型為Byte,符號名servicebyte,初始值為B#16#0),DBW 2是指向正被打開報(bào)文的指針(數(shù)據(jù)類型為INT,符號名telegrampointer,默認(rèn)的起始值為0),DBD 4存放出現(xiàn)通信錯(cuò)誤時(shí)的錯(cuò)誤信息(數(shù)據(jù)類型為DINT,符號名error),錯(cuò)誤信息定義見表6(錯(cuò)誤信息表)。

    在FC127的程序中會看到應(yīng)用指針尋址的方法,順序執(zhí)行DB31中的telegram_001至telegram_004,在每執(zhí)行一個(gè)報(bào)文結(jié)構(gòu)時(shí)telegram_head中的內(nèi)容都是不一樣的。

    FC127程序的主要功能是完成硬件組態(tài)中有關(guān)參數(shù)通道的讀/寫,需要讀/寫的參數(shù)以報(bào)文結(jié)構(gòu)的形式存放在DB31數(shù)據(jù)塊中(見上面的說明),F(xiàn)C127功能使用指針尋址的方法,順序?qū)B31中的telegram_001至telegram_004依次讀/寫。程序共有15個(gè)Network網(wǎng)絡(luò)段組成,另外在變量登記表中定義了若干形式參數(shù),首先對定義的形式參數(shù)作一說明:
                
          
                  圖21 FC127功能中變量登記表中的IN、OUT、IN_OUT類形式參數(shù)
    從圖21知,變量登記表中的IN包含5個(gè)形式參數(shù):peripherieadr_1st_byte,定義硬件組態(tài)中參數(shù)通道的的起始字節(jié)地址,數(shù)據(jù)類型是INT,例如,本例中起始地址是PIW 268/PQW268(見圖2),將來在調(diào)用FC127時(shí)替代該形式參數(shù)的實(shí)際參數(shù)就應(yīng)該填上268;

    DB_transferlist ,定義保存要讀/寫參數(shù)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)塊號,數(shù)據(jù)類型是Block_DP。如果在同一項(xiàng)目中組態(tài)有多個(gè)倫茨傳動裝置的從站,對每一個(gè)從站的參數(shù)數(shù)據(jù)讀/寫都要建立獨(dú)立的DB數(shù)據(jù)塊(類似DB31),在調(diào)用FC127時(shí),替代這一形式參數(shù)的實(shí)際參數(shù)就應(yīng)該是對那一個(gè)從站通信的數(shù)據(jù)塊號。

    begin_DB_transferlist,定義“DB_transferlist”數(shù)據(jù)塊號數(shù)據(jù)塊的起始字節(jié)地址(即數(shù)據(jù)結(jié)構(gòu)的起始字節(jié)地址),數(shù)據(jù)類型為INT。

    enable_transfer , 允許參數(shù)讀/ 寫的控制位, 數(shù)據(jù)類型為BOOL。

    Timeout_timer,監(jiān)控參數(shù)讀/寫過程的最大允許時(shí)間的定時(shí)器,如果在允許時(shí)間內(nèi)FC127沒有執(zhí)行完,就會發(fā)出超時(shí)報(bào)警,將參數(shù)報(bào)文服務(wù)字節(jié)的第7位置成1,數(shù)據(jù)類型為TIMER。在調(diào)用FC127時(shí),替代這一形式參數(shù)的實(shí)際參數(shù)就應(yīng)該是不同的定時(shí)器號。

    從圖21知,變量登記表中對OUT和IN_OUT類形式參數(shù)沒有定義。
                 
                圖22  FC127功能中變量登記表中定義了TEMP類形式參數(shù)
    從圖22知FC127功能的變量登記表中定義了TEMP類形式參數(shù)(暫存參數(shù)),其中:

    Fault_send_receive 是數(shù)據(jù)結(jié)構(gòu),包括Ret_Val_receive(類型為INT)暫存接收錯(cuò)誤信號,和Ret_Val_send(類型為INT)暫存發(fā)送錯(cuò)誤信號。

    L2_Adr(類型為WORD)用來暫存參數(shù)通道的首地址。

    Date_receive是一數(shù)據(jù)結(jié)構(gòu),包含服務(wù)字節(jié)service的8個(gè)位(類型為BOOL),子代碼號subindex(類型為BYTE),代碼號index(類型為INT)和數(shù)據(jù)data(類型為DINT),這一數(shù)據(jù)結(jié)構(gòu)和DB31中的telegram數(shù)據(jù)結(jié)構(gòu)有相同的定義,在FC127程序執(zhí)行讀參數(shù)時(shí)將DB31中的報(bào)文數(shù)據(jù)結(jié)構(gòu)telegram暫存到Date_receive數(shù)據(jù)結(jié)構(gòu)中,在使用指針尋址的情況下,Date_receive數(shù)據(jù)結(jié)構(gòu)的內(nèi)容是由指針指向的不同telegram的內(nèi)容。

    Date_send也是一數(shù)據(jù)結(jié)構(gòu),包含服務(wù)字節(jié)service的8個(gè)位(類型為BOOL),子代碼號subindex(類型為BYTE),代碼號index(類型為INT)和數(shù)據(jù)data(類型為DINT),這一數(shù)據(jù)結(jié)構(gòu)和DB31中的telegram數(shù)據(jù)結(jié)構(gòu)也有相同的定義,在FC127程序執(zhí)行寫參數(shù)時(shí),將暫存在Date_send數(shù)據(jù)結(jié)構(gòu)中的內(nèi)容,復(fù)制到DB31中的報(bào)文數(shù)據(jù)結(jié)構(gòu)telegram中,在使用指針尋址的情況下,Date_send數(shù)據(jù)結(jié)構(gòu)的內(nèi)容將發(fā)送至由指針指向的不同telegram中。

    在TEMP暫存變量中的old_LAR1(類型為DWORD)、old_LAR2(類型為DWORD)和old_statusword(類型為WORD)是在調(diào)用FC127時(shí)用來保存舊的地址寄存器AR1、AR2和狀態(tài)字的內(nèi)容,因?yàn)樵趫?zhí)行FC127時(shí)使用了指針尋址方式,AR1、AR2以及狀態(tài)字的內(nèi)容都會隨時(shí)改變,在FC127執(zhí)行結(jié)束時(shí)應(yīng)該恢復(fù)舊的地址寄存器AR1、AR2和狀態(tài)字的內(nèi)容。

    對FC127功能的具體說明,需要使用較多的篇幅,讀者理解也會有一定難度,不在本文中敘述了。有興趣的讀者,可以閱讀參考文獻(xiàn)“可編程序控制器與工業(yè)現(xiàn)場總線”及該書所附光盤中的程序?qū)嵗?ldquo;DP_94V10”。

    圖23是在FC30中對FC127功能的調(diào)用和用實(shí)際參數(shù)替換FC127中的形式參數(shù)。
                       
               圖23  在FC30中對FC127功能的調(diào)用和用實(shí)際參數(shù)替換FC127中的形式參數(shù)
    圖24是可變速傳動裝置通信示例項(xiàng)目的程序構(gòu)成,在主程序OB1中調(diào)用功能程序FC105、FC30和FC107。完成整個(gè)通信程序中過程數(shù)據(jù)和參數(shù)數(shù)據(jù)的讀/寫。
                
                       圖24  可變速傳動裝置通信示例項(xiàng)目的程序構(gòu)成
    至此,筆者通過“可變速傳動裝置通信示例”項(xiàng)目,全面闡明了應(yīng)用PLC和DP現(xiàn)場總線實(shí)現(xiàn)對可變速傳動裝置的通信和控制。

    文中提供的實(shí)用程序,都經(jīng)過作者在許多工程項(xiàng)目中的驗(yàn)證。希望本文對從事該領(lǐng)域的工程技術(shù)人員和讀者能有一定的幫助。

    參考文獻(xiàn):

    [1] 陳忠華.可編程序控制器與工業(yè)現(xiàn)場總線[M]. 北京: 機(jī)械工業(yè)出版社.2010, 5.

    [2] 陳忠華. 可編程序控制器與工業(yè)自動化系統(tǒng)[M]. 北京: 機(jī)械工業(yè)出版社.2006, 1.

    [3] KHB_PROFIBUS_V3.0_EN. 倫茨公司通信手冊. 2007.

    [4] PROFIBUS & PROFINET Technical Profile (PROFIdrive Part 1: Profile specifications)April, 2008.

    [5] PROFIBUS & PROFINET Technical Profile (PROFIdrive Part 2: Mapping of Profile to Network Technologies)April, 2008. 

    摘自《自動化博覽》2010年第八期 

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 日韩在线一区二区三区视频 | 九九热精品免费视频 | 亚洲美女视频网 | 亚洲六月丁香婷婷综合 | 台湾亚洲精品一区二区tv | 中文字幕在线日韩 | 亚洲偷图色综合色就色 | 免费的一级黄色片 | 黄色丝袜网站 | 日本一级特黄视频 | 欧美精品a毛片免费观看 | 亚洲精品一区二区三区r | 日本一区二区三区久久 | 国产xxxx做受性欧美88 | 日韩一区二区三区在线观看 | 在线欧美精品二区三区 | miya亚洲私人影院在线 | 国产视频手机在线 | 成人在线播放av | 欧美一级在线观看视频 | 成人精品一区二区不卡视频 | 欧美成人一区二区三区不卡视频 | 香蕉视频在线观看网站 | 亚洲国产爱久久全部精品 | 青草香蕉视频 | 超级香蕉97在线观看视频 | 久久精品视频在线播放 | 91精品福利手机国产在线 | 久久精品国产999久久久 | 国产98色在线| 91热视频在线观看 | 国产片一级特黄aa的大片 | 亚洲精品一区henhen色 | 久99频这里只精品23热 视频 | 日本人一级毛片视频 | 日本一级毛片一级裸片 | 国产精品日日摸夜夜添夜夜添1 | 一级片免费| 欧美日韩一区二区三区毛片 | 成人黄网18免费观看的网站 | 国产高清美女一级毛片久久 |