五、 對溫度控制的實現(xiàn)
為便于對整個老化房內(nèi)溫度的控制,同時充分利用EC20 PLC自身PID功能和PWM脈沖輸出(Y0,Y1)的優(yōu)勢,室內(nèi)溫度區(qū)域分為2個部分(上層和下層各8個測溫度點),對溫度取平均值作為溫度的測量值,并把此平均值送入PID功能塊進(jìn)行運算,同時對加熱執(zhí)行元件(參考EC20 PLC的I/O接線圖,固態(tài)繼電器SSR1,SSR2,SSR3所控制的發(fā)熱管的功率逐漸加大)也進(jìn)行了分組處理:溫度偏差較小的情況下,進(jìn)行PID運算,通過Y0輸出脈沖給SSR1,同時關(guān)閉SSR2,SSR3(即Y1,Y2停止輸出);如果溫度偏差較大,則Y1,Y2也參加輸出,具體處理思路如下:
偏差值(ER=SV-PV) |
處理辦法 |
ER≥3 |
關(guān)閉PID運算,直接輸出Y0,Y1,Y2; |
3>ER≥1 |
啟動PID運算控制Y0輸出,同時啟動Y1輸出;關(guān)閉Y2輸出; |
1>ER≥-1 |
啟動PID運算控制Y0輸出,關(guān)閉Y1,Y2輸出; |
-3>ER>-1 |
啟動PID運算控制Y0輸出,同時啟動Y1輸出;關(guān)閉Y2輸出; |
-3≥ER |
關(guān)閉PID運算,關(guān)閉Y0,Y1,Y2; |
通過此法處理可以把溫度控制精度保持在±0.3度以內(nèi),而且無論提升溫度還是下降溫度都很快速;同時把PID輸出轉(zhuǎn)化為PWM的占空比輸出,又大大節(jié)省了PLC的資源(充分利用Y0,Y1的高達(dá)100KHZ的脈沖輸出功能)。
EC20 PLC的編程軟件CONTROLSTAR的操作簡單方便,指令豐富,功能強(qiáng)大,是一個很優(yōu)秀的全中文編輯工具。
實現(xiàn)步驟具體如下:首先,在數(shù)據(jù)塊設(shè)定PID各參數(shù),其中的重點是設(shè)置P,I,D三個參數(shù)和輸出量的上下限范圍,由于PID的輸出結(jié)果直接和PWM結(jié)合在一起,所以設(shè)置時要特別注意,在本例子中,按照PWM的周期為4秒(=4000MS)計算,把PID的輸出上下限分別設(shè)定為4000和0;另外按照逆動作(BIT0=1),輸出限定(BIT5=1)的要求對D7911各位進(jìn)行賦值;
D7910 500 //采樣時間S3 采樣時間(Ts)范圍為1~32767(ms),比運算周期短的時間數(shù)值無法執(zhí)行;
D7911 16#23 //動作方向 > 逆動作,設(shè)輸出限定
………………………………………………..//BIT0 0:正動作 1:逆動作;
………………………………………………..//BIT1 0:輸入變化量報警無效 1:輸入變化量報警有效;
………………………………………………..//BIT2 0:輸出變化量報警無效 1:輸出變化量報警有效;
………………………………………………..//BIT3-4 沒使用;
………………………………………………..//BIT5 0:輸出值上下限設(shè)定無效1:輸出值上下限設(shè)定有效;
………………………………………………..//BIT6~BIT15 沒使用
D7912 70 //S3+2 輸入濾波常數(shù)(α)范圍0~99[﹪],為0時沒有輸入濾波;
D7913 100 //S3+3 比例增益(Kp)范圍1~32767[﹪];
D7914 25 //S3+4 積分時間(TI)范圍0~32767(×100ms),為0時作為∞處理(無積分);
D7915 0 //S3+5 微分增益(KD)范圍0~100[﹪],為0時無微分增益;
D7916 63 //S3+6 微分時間(TD)范圍0~32767(×10ms),為0時無微分處理;
D7925 2000 //S3+15 輸入變化量(增側(cè))報警設(shè)定值0~32767(S3+1的BIT1=1時);
D7926 0 //S3+16 輸入變化量(減側(cè))報警設(shè)定值0~32767(S3+1的BIT1=1時);
D7927 4000 //S3+17 輸出變化量(增側(cè))報警設(shè)定值0~32767(S3+1的BIT2=1和BIT5=0時);輸出上限設(shè)定值-32768~32767(S3+1的BIT2=0和BIT5=1時);
D7928 0 //S3+18 輸出變化量(減側(cè))報警設(shè)定值0~32767(S3+1的BIT2=1和BIT5=0時);輸出下限設(shè)定值-32768~32767(S3+1的BIT2=0和BIT5=1時);
其次,在程序里調(diào)用PID指令和PWM指令用于控制Y0的輸出(對SV和PV的比較而進(jìn)行的邏輯控制輸出較簡單,故此處省略)。

六、 對變頻器的啟?刂
由于EMESON EC20 PLC和EV2000變頻器(非標(biāo))都集成MODBUS協(xié)議,所以實現(xiàn)它們的通信相對比較簡單,整個網(wǎng)絡(luò)采用RS485通信方式。
1. 各設(shè)備接口通信參數(shù)設(shè)置,對EC20 PLC設(shè)置如下:
2. EV2000的設(shè)置要點:1,各通信參數(shù)要和EC20 PLC一致;2,各變頻器的地址要有自己唯一的從機(jī)地址;3,注意變頻器的通信跳線開關(guān)CN14撥在RS485方向 ;

3. EC20PLC和變頻器的連接如下:

4. EC20 PLC和變頻器之間采用MODBUS RTU方式通信,Modbus采用“Big Endian”編碼方式,先發(fā)送高位字節(jié),然后是低位字節(jié)。RTU方式格式如下:

RTU方式:在RTU方式下,幀之間的空閑時間取功能碼設(shè)定和Modbus內(nèi)部約定值中的較大值。Modbus內(nèi)部約定的最小幀間空閑如下:幀頭和幀尾通過總線空閑時間不小于3.5個字節(jié)時間來界定幀。數(shù)據(jù)校驗采用CRC-16,整個信息參與校驗,校驗和的高低字節(jié)需要交換后發(fā)送。具體的CRC校驗請參考協(xié)議后面的示例。值得注意的是,幀間保持至少3.5個字符的總線空閑即可,幀之間的總線空閑不需要累加起始和結(jié)束空閑。
Modbus最主要的功能是讀寫參數(shù),不同的功能碼決定不同的操作請求。變頻器Modbus協(xié)議支持以下功能碼操作:
功能碼 |
功能碼意義 |
0x03 |
讀取變頻器功能碼參數(shù)和運行狀態(tài)參數(shù) |
0x06 |
改寫單個變頻器功能碼或者控制參數(shù),掉電之后不保存 |
0x08 |
線路診斷 |
0x10 |
改寫多個變頻器功能碼或者控制參數(shù),掉電之后不保存 |
0x41 |
改寫單個變頻器功能碼或者控制參數(shù),掉電之后保存 |
0x42 |
功能碼管理 |
Modbus協(xié)議不同的功能碼有不同數(shù)據(jù)的格式和意義,簡要介紹如下:
改寫多個變頻器功能碼和狀態(tài)參數(shù)的格式協(xié)議:請求格式如下:
應(yīng)用層協(xié)議
數(shù)據(jù)單元 |
數(shù)據(jù)長度
(字節(jié)數(shù)) |
取值或范圍 |
功能碼 |
1 |
0x10 |
起始寄存器地址 |
2 |
0x0000~0xFFFF |
操作寄存器數(shù)目 |
2 |
0x0001~0x0004 |
寄存器內(nèi)容字節(jié)數(shù) |
1 |
2*操作寄存器數(shù)目 |
寄存器內(nèi)容 |
2*操作寄存器數(shù)目 |
|
應(yīng)答格式如下:
應(yīng)用層協(xié)議
數(shù)據(jù)單元 |
數(shù)據(jù)長度(字節(jié)數(shù)) |
取值或范圍 |
功能碼 |
1 |
0x10 |
起始寄存器地址 |
2 |
0x0000~0xFFFF |
操作寄存器數(shù)目 |
2 |
0x0001~0x0004 |
讀取變頻器參數(shù)的協(xié)議格式:請求格式如下:
應(yīng)用層協(xié)議
數(shù)據(jù)單元 |
數(shù)據(jù)長度
(字節(jié)數(shù)) |
取值或范圍 |
功能碼 |
1 |
0x03 |
起始寄存器地址 |
2 |
0x0000~0xFFFF |
寄存器數(shù)目 |
2 |
0x0001~0x0004 |
應(yīng)答格式如下:
應(yīng)用層協(xié)議
數(shù)據(jù)單元 |
數(shù)據(jù)長度
(字節(jié)數(shù)) |
取值或范圍 |
功能碼 |
1 |
0x03 |
讀取字節(jié)數(shù) |
1 |
2*寄存器數(shù)目 |
讀取內(nèi)容 |
2*寄存器數(shù)目 |
|
|