工控網(wǎng)首頁(yè)
>

應(yīng)用設(shè)計(jì)

>

使用西門(mén)子的SCL語(yǔ)言編寫(xiě)ABB變頻器的總線(xiàn)控制程序塊

使用西門(mén)子的SCL語(yǔ)言編寫(xiě)ABB變頻器的總線(xiàn)控制程序塊

2008/6/20 14:05:00

        好的編程規(guī)范就是對(duì)一些通用的控制對(duì)象編寫(xiě)標(biāo)準(zhǔn)控制塊,對(duì)數(shù)據(jù)處理、傳遞、邏輯控制實(shí)現(xiàn)封裝,以實(shí)現(xiàn)代碼的可重用和簡(jiǎn)化編程的目的,關(guān)于這方面的討論,我在工控網(wǎng)上發(fā)表的《PLC的面向?qū)ο缶幊獭分杏薪榻B。
         西門(mén)子的SCL語(yǔ)言是符合國(guó)際標(biāo)準(zhǔn)的一種PLC編程語(yǔ)言,其優(yōu)秀的程序結(jié)構(gòu)體系和運(yùn)算編程適合于標(biāo)準(zhǔn)庫(kù)的開(kāi)發(fā),我在工控網(wǎng)上發(fā)表的《在S7300/400型PLC中使用高級(jí)語(yǔ)言編程》中有關(guān)于這方面的介紹。

1、硬件電路設(shè)計(jì)
本文用到的變頻器為ABB的ACS800系列變頻器,使用其最一般的功能,電路設(shè)計(jì)類(lèi)似于下圖:


        本設(shè)計(jì)將主接觸器放在變頻器之前,啟動(dòng)電機(jī)時(shí)先打開(kāi)主接觸器,然后啟動(dòng)變頻器驅(qū)動(dòng)電機(jī),關(guān)斷電機(jī)時(shí),先控制變頻器關(guān)閉,延時(shí)后主接觸器關(guān)閉,在電機(jī)不運(yùn)行的情況下,可節(jié)約電源,該設(shè)計(jì)可用于風(fēng)機(jī)之類(lèi)的控制,即不需要頻繁的起停,值得說(shuō)明的是由于ABB的總線(xiàn)通訊模塊由變頻器自身提供電源,當(dāng)變頻器斷電后,可能導(dǎo)致總線(xiàn)故障,所以上面的設(shè)計(jì)對(duì)西門(mén)子的MM440沒(méi)問(wèn)題,但對(duì)ABB的變頻器并不一定適合,所以另外一種設(shè)計(jì)方式就是將主接觸器放在變頻器的下方,該接觸器一般由急停開(kāi)關(guān)控制。
本程序?qū)⒁缘谝环N方式的設(shè)計(jì)為依據(jù)(該程序來(lái)自MM440控制程序的轉(zhuǎn)換)

2、變頻器的一般參數(shù)
<1>99.01:選擇語(yǔ)言
<2>99.02:選擇應(yīng)用宏程序,不同的應(yīng)用宏會(huì)預(yù)先定義不同的連接端子功能,而這些端子又隨后可以被不同功能的參數(shù)定義,當(dāng)多個(gè)參數(shù)使用同一個(gè)端子時(shí),在這個(gè)端子信號(hào)被激活后,這多個(gè)參數(shù)功能均會(huì)被激活。
<3>99.04:選擇電機(jī)控制模式DTC/SCALAR,當(dāng)電機(jī)的額定電流小于變頻器的額定電流的1/6時(shí),可以使用SCALAR模式。
<4>99.05:電機(jī)的額定電壓
<5>99.06:電機(jī)的額定電流
<6>99.07:電機(jī)的額定頻率
<7>99.08:電機(jī)的額定轉(zhuǎn)速
<8>99.09:電機(jī)的額定功率
<9>20.01:設(shè)置最小轉(zhuǎn)速
<10>20.02:設(shè)置最大轉(zhuǎn)速
<11>22.02:設(shè)置加速度時(shí)間1
<12>22.03:設(shè)置減速度時(shí)間1
<13>10.01/10.02:設(shè)定為COMM.CW,由外部EXT1/EXT2來(lái)控制電機(jī)電機(jī)啟停(包括總線(xiàn)控制)
<14>10.03:若希望改變電機(jī)的運(yùn)轉(zhuǎn)方向,可以將該參數(shù)設(shè)置為”REQUEST”
<15>若該變頻器的硬件設(shè)計(jì)為,主接觸器位于變頻器和電機(jī)之間(該設(shè)計(jì)主要用于急??刂浦鹘佑|器),則主接觸器的輔助常開(kāi)觸點(diǎn)可接到端子X(jué)22/5和X22/8上,用于控制變頻器運(yùn)行使能,可通過(guò)參數(shù)16.01來(lái)選擇端子DI5(X22/5);若熱敏電阻接到X22/6和X22/7上,可定義參數(shù)30.05選擇”THERMISTOR”,同時(shí)必須定義參數(shù)30.04來(lái)啟用熱敏保護(hù)。X25(1/2/3)為繼電器1輸出,通過(guò)參數(shù)14.01定義其功能。

3、變頻器的總線(xiàn)參數(shù)
<1>P98.02:fieldbus
<2>P98.07:ABB Drives,and need to modify in step 7 hardware config
<3>P51.01:check the module type:Profibus DP
<4>P51.02:node address,when the frequency hardware switch is zero,the parameter indicate the address from config.
<5>P51.03:Baud rate,consist to the setting of PLC
<6>P51.04:PPO type,consist to the setting of PLC
-----reference value--------------
<7>REF1:-20000(Dec)=-[P11.05],20000(Dec)=[P11.05]; -1:-[P11.04],0:[P11.04]
<8>P20.01/P20.02 FOR SPEED LIMIT;P20.07/P20.08:FREQUENCY LIMIT (THESE PARAMETERS WILL EFFECT THE '<7>' Set)
<9>P22.07 FOR 'OFF3' TYPE STOP TIME(stop according to fastest possible deceleration mode)
<10>P11.03/P11.06 FOR EXE REF1/REF2 SELECT,設(shè)定為COMM.REFx(表示由現(xiàn)場(chǎng)總線(xiàn)給定速度值)

4、關(guān)于程序塊
本程序編寫(xiě)了四個(gè)內(nèi)部速度設(shè)定點(diǎn)和一個(gè)外部速度設(shè)定點(diǎn),手動(dòng)/自動(dòng),以及報(bào)警全集成。
重要的參數(shù)介紹:
<1>Enbl:設(shè)備使能,該參數(shù)用于連接安全條件,譬如急停信號(hào)
<2>EnFV:使故障傳遞至人機(jī)界面容許,這是因?yàn)榭梢暬翘峁┙o用戶(hù)最詳細(xì)信息的平臺(tái),在可視化界面上顯示的信息一定要正確,但實(shí)際上某些故障會(huì)導(dǎo)致一系列其他類(lèi)型的故障產(chǎn)生,為了只顯示那些引起最初故障的根源,需要對(duì)傳遞至可視化的故障進(jìn)行控制。最常見(jiàn)的就是電源故障,該故障會(huì)導(dǎo)致一系列其他的故障,故可以用電源檢測(cè)條件來(lái)控制可視化故障。
報(bào)警分為故障和警告,故障會(huì)導(dǎo)致停機(jī),而警告則不會(huì),在本程序中使用了大量的結(jié)構(gòu),這些結(jié)構(gòu)將不同類(lèi)型的變量加以區(qū)分(甚至于將可視化與非可視化故障加以區(qū)分),便于用戶(hù)診斷和維護(hù)程序。這種程序看起來(lái)相當(dāng)復(fù)雜,但監(jiān)控起來(lái)相當(dāng)方便,若開(kāi)發(fā)出與之對(duì)應(yīng)的人機(jī)界面控件,甚至于可以使人機(jī)界面的組態(tài)高度自動(dòng)化。
<3>Aon/Aoff ; Mon/Moff :自動(dòng)開(kāi)/自動(dòng)關(guān),手動(dòng)開(kāi)/手動(dòng)關(guān),有些編程規(guī)范把手動(dòng)/自動(dòng)合在一起編寫(xiě),這是因?yàn)樗麄冇兄恍┕餐陌踩珬l件檢測(cè),本塊已經(jīng)把各種報(bào)警條件,安全條件作為單獨(dú)的輸入,這些輸入都會(huì)導(dǎo)致電機(jī)的停轉(zhuǎn)(而不管塊是在手動(dòng),還是自動(dòng)模式下),所以在使用本塊時(shí),對(duì)于Aon/Aoff ; Mon/Moff輸入?yún)?shù),只需要編寫(xiě)邏輯起停條件,而不需要再次串入安全條件。
<4>本程序用到了一個(gè)全局變量:"IP_1Sec",其為間隔一秒的脈沖,用于計(jì)時(shí),所以當(dāng)想使用本塊時(shí),必須先編寫(xiě)間隔一秒的脈沖"IP_1Sec"

5、關(guān)于程序代碼的自動(dòng)化生成
          西門(mén)子的SCL編輯器相對(duì)微軟的編程軟件而言,還相當(dāng)原始,代碼幾乎都要手工輸入,為了提高效率,可以自己開(kāi)發(fā)一個(gè)輔助生成軟件,譬如針對(duì)參數(shù)的定義,可以由軟件自動(dòng)產(chǎn)生,以下是本人編寫(xiě)的一個(gè)SCL程序代碼的輔助生成工具的截圖:


使用該工具,可以產(chǎn)生以下ACS800的程序代碼的60%以上。



6、程序代碼(使用S7-300在ACS800變頻器上已經(jīng)測(cè)試過(guò))
(*Function:
=========
This Function Block controls a freq.converter(ABB.ACS800) using the following criteria:

- Starting and stopping via Profibus
- Motor Protection Equipment (Motor Protector, Motor Temperature, Fuses)
- Motion Control (Pressure/Rotation Sensor/Contactor Feedback)
- Maintenance Lock-Out Switch
config step:
<1>P98.02:fieldbus
<2>P98.07:ABB Drives,and need to modify in step 7 hardware config
<3>P51.01:check the module type:Profibus DP
<4>P51.02:node address,when the frequency hardware switch is zero,the parameter indicate the address from config.
<5>P51.03:Baud rate,consist to the setting of PLC
<6>P51.04:PPO type,consist to the setting of PLC
-----reference value--------------
<7>REF1:-20000(Dec)=-[P11.05],20000(Dec)=[P11.05]; -1:-[P11.04],0:[P11.04]
<8>P20.01/P20.02 FOR SPEED LIMIT;P20.07/P20.08:FREQUENCY LIMIT (These parameters will effect the '<7>' setting)
<9>P22.07 FOR 'OFF3' TYPE STOP TIME(stop according to fastest possible deceleration mode)
<10>P11.03/P11.06 FOR EXE REF1/REF2 SELECT,setting for 'COMM.REF'
<11>P10.01/P10.2:setting for COMM.CW*)

FUNCTION_BLOCK FB250
VERSION:'1.0'
AUTHOR:parker
FAMILY: Mtr
VAR_INPUT // Input Parameters
Manu:Bool:=0; //Fault Acknowledge
Auto:Bool:=0; //Automatic Mode
Enbl:Bool:=0; //Enable Device
EnFV:Bool:=0; //Enable Faults to Visu
EnMV:Bool:=0; //Enable Manual Operation from Visu
Ackn:Bool:=0; //Fault Acknowledge
Mute:Bool:=0; //Horn Silence
LT:Bool:=0; //Lamp Test
AOn:Bool:=0; //Auto On (1-impulse sufficient)
AOff:Bool:=0; //Auto Off (1-impulse sufficient)
MOn:Bool:=0; //Manual On (1-impulse sufficient)
MOff:Bool:=0; //Manual Off (0-impulse sufficient)
FBOn:BOOL:=0; //Feedback Main Contactor On (1=Running)
FDO:Bool:=0; //Fused Disconnect Open (1=OK)
MP:Bool:=0; //Motor Protector Fault (1=OK)
WMT:Bool:=0; //Motor Temp Warning (1=OK)
FMT:Bool:=0; //Motor Temp Fault (1=OK)
LOS:Bool:=0; //Maintenance Lock-Out Switch (1=OK)
ISet1:Bool:=0; //Internal Setpoint 1 on
投訴建議

提交

查看更多評(píng)論