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

六、 對變頻器的啟停控制
由于EMESON EC20 PLC和EV2000變頻器(非標)都集成MODBUS協議,所以實現它們的通信相對比較簡單,整個網絡采用RS485通信方式。
1. 各設備接口通信參數設置,對EC20 PLC設置如下:
2. EV2000的設置要點:1,各通信參數要和EC20 PLC一致;2,各變頻器的地址要有自己唯一的從機地址;3,注意變頻器的通信跳線開關CN14撥在RS485方向 ;

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

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

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