Kết quả chạy không tải đủ điều kiện cho các thiết bị mang vào thử nghiệm thực tế.
Sau khi thử nghiệm hệ thống điều khiển lọc bụi với quạt hút và hệ thống
lọc bụi bằng túi vải do nhóm đề tài cung cấp thì kết quả thu đ−ợc nh− sau:
Tủ điện 1:
Làm việc tin cậy và chính xác với tham số đặt.
Giá trị đặt Kết quả
- Đặt thời gian đóng van: t=50ms.
- Thời gian giữa các lần đóng van liên tiếp 5s.
- Sau 1 giờ thì cảnh báo bảo d−ỡng.
Đạt Đạt Đạt
Với nồng độ khí bụi tại đầu xấp xỉ là 500mg/m3 thì nồng độ bụi tại đầu ra sau khi lọc xấp xỉ 5mg/m3.
Tủ điện 2:
Làm việc tin cậy và chính xác với tham số đặt.
Giá trị đặt Kết quả
- Đặt ng−ỡng áp suất thấp để bắt đầu rũ bụi P1 = 200Pa
- Đặt ng−ỡng áp suất cao để chạy tự động P2 = 300Pa
- Đặt ng−ỡng áp suất để cảnh báo. P3=350Pa
- Sau 2 giờ thì cảnh báo bảo d−ỡng
Đạt Đạt Đạt Đạt
Với nồng độ khí bụi tại đầu xấp xỉ là 500mg/m3 thì nồng độ bụi tại đầu ra sau khi lọc xấp xỉ 4mg/m3.
Tủ điện 3:
Giá trị đặt Kết quả
- Đặt thời gian đóng van: t=50ms.
- Thời gian giữa các lần đóng van liên tiếp 5s.
- Sau 1 giờ thì cảnh báo bảo d−ỡng.
- Đặt ng−ỡng áp suất thấp để bắt đầu rũ bụi P1 = 200Pa
Đạt Đạt Đạt Đạt
- Đặt ng−ỡng áp suất cao để chạy tự động P2 = 300Pa
- Đặt ng−ỡng áp suất để cảnh báo. P3=350Pa
- Sau 2 giờ thì cảnh báo bảo d−ỡng
Đạt Đạt Đạt
Với nồng độ khí bụi tại đầu xấp xỉ là 500mg/m3 thì nồng độ bụi tại đầu ra
sau khi lọc xấp xỉ 4mg/m3 phù hợp với tiêu chuẩn cho phép về an toàn.
3.3. Các phân tích và nhận xét
03 loạt tủ điện điều khiển đã đ−ợc chế tạo và lắp đặt và vận hành thử
nghiệm cho 03 loại lọc bụi khác nhau thuộc phạm vi hợp đồng kinh tế ký giữa NARIME và công ty Kawasaki “Cung cấp lọc bụi túi cho nhà máy xi măng Bút
Sơn – dây chuyền 2”. Qua các kết quả thu đ−ợc có thể đánh giá nh− sau:
- Nhóm đề tài đã cùng với các kỹ s− của công ty Kawasaki – Nhật bản tiến
hành các thử nghiệm điện và đo kiểm các thông số theo yêu cầu kỹ thuật. Kết
quả nhận đ−ợc hoàn toàn đáp ứng các chỉ tiêu kỹ thuật đề ra (có biên bản nghiệm
thu chạy thử kèm theo).
- Việc chủ động chế tạo tủ điện điều khiển lọc bụi từ chíp rỗng giúp cho NARIME đã hoàn toàn chủ động trong công nghệ chế tạo lọc bụi túi 100% mà
không phải phụ thuộc vào n−ớc ngoài.
- Nhóm đề tài tiếp tục hoàn thiện những chi tiết khác nh−: tính thẩm mỹ,
mô đun hoá tủ điện, khắc phục một số tồn tại khác nhằm từng b−ớc hoàn thiện tủ
Ch−ơng 4
Các kết luận.
Sau gần 12 tháng thực hiện nhóm đề tài đã thực hiện đ−ợc các công việc sau:
1. Công bố một (01) bộ báo cáo hoàn chỉnh về tổng quan tình hình sử
dụng các loại lọc bụi trong n−ớc cũng nh− ngoài n−ớc. Phân tích và đ−a ra đ−ợc
các nguyên lý điều khiển chung, −u và nh−ợc điểm của từng loại. Kiến nghị giải
pháp để thiết kế, chế tạo tủ điện điều khiển lọc bụi túi từ chíp rỗng.
2. Thiết kế, chế tạo ba (03) loại tủ điều khiển lọc bụi túi từ chíp rỗng trên
cơ sở các linh kiện điện tử và các thiết bị cơ khí hiện có trong n−ớc và thế giới.
3. Viết phần mềm hoàn chỉnh để xử lý các dữ liệu đ−a về từ sensor đo
chênh áp cũng nh− cho phép điều chỉnh thời gian rũ bụi. Phần mềm này t−ơng
đ−ơng với các phần mềm hiện có trên thị tr−ờng thậm chí còn có một số điểm
nổi bật hơn nh− việc l−u giữ thời gian để cảnh báo bảo d−ỡng, có khả năng mở
rộng để tăng số l−ợng van điện từ đầu ra.
4. Chạy thử nghiệm các tủ điện điều khiển và nhận đ−ợc các kết quả sau:
- Giá thành chế tạo loại tủ điện này bằng 60-70% so với thiết bị cùng loại
của hãng ASCO – pháp với các tính năng t−ơng đ−ơng nh− khả năng rũ bụi
chênh áp, theo thời gian, khả năng kết nối mở rộng với các thiết bị ngoại vi...Hơn
nữa, lợi ích của việc tự chế tạo bộ điều khiển trong n−ớc giúp cho NARIME có
khả năng tự sửa chữa, bảo d−ỡng kịp thời các hỏng hóc trong vòng 24 h tại bất kỳ
nhà máy nào trong n−ớc tạo thế cạnh tranh và tiết kiệm chi phí lớn cho sản xuất.
- Ngoài ra còn phát triển thêm một số tính năng sau:
+ Có khả năng lắp lẫn, mở rộng hệ thống chỉ bằng các theo tác đơn giản mà không phải thay đổi phần cứng.
+ L−u thời gian làm việc và cảnh báo bảo d−ỡng.
+ Hệ thống điều khiển lọc bụi này đ−ợc thiết kế có chú ý đến tiêu
chí đó là phù hợp với khí hậu Việt Nam nh− yếu tố về độ ẩm, nhiệt
độ, môi tr−ờng từ đó chọn các thiết bị điện tử phù hợp.
5. Các đề xuất nghiên cứu tiếp theo.
Để sản phẩm có thể trở thành sản phẩm th−ơng mại nhóm đề tài cũng
đang đầu t− nghiên cứu để nâng cao hơn nữa chất l−ợng cũng nh− mẫu mã sản
phẩm, chuẩn hoá lại các kích th−ớc lắp ráp, các cấu hình chuẩn đảm bảo thiết bị
có khả năng phổ biến và lắp lẫn cao phù hợp với điều kiện Việt Nam, tiến tới xuất khẩu.
Dự kiến trong t−ơng lai sẽ lắp đặt các loại tủ điện này tại các dự án sau:
Dây chuyền xuất/nhập liệu cảng Lèn Bỉm Sơn, Thanh Hoá; Nhà máy xi măng
L−ơng Sơn Hoà Bình; Nhà máy liên danh sản xuất phụ tùng xe máy VAP và các
PHẦN MỀM ĐIỀU KHIỂN
1. Sơđồ logic
Sơđồ logic chương trỡnh điều khiển lọc bụi tỳi Bắt đầu Lựa chọn chế độ rũ bụi Thời gian đặt bằng với thời gian thực Rũ bụi theo chờnh ỏp ∆P Rũ bụi theo thời gian Lựa chọn tham số t1,t2 Lựa chọn tham số P1,P2,P3 G/trị ỏp suất đặt bằng g/trị ỏp suất đưa về Chạy chương trỡnh rũ bụi theo tham số t đặt Chạy chương trỡnh rũ bụi theo tham số P đặt Lưu thời gian chạy của bộđiều khiển Kết thỳc
2. Phần mềm điều khiển
Phần mềm đ−ợc viết bằng ngôn ngữ lập trình C và đ−ợc load xuống chíp
LPC2138 thông qua cổng RS232.
/***********************************************************************/ /* This file is part of the uVision/ARM development tools */ /* Copyright KEIL ELEKTRONIK GmbH 2002-2004 */ /***********************************************************************/ /* */ /* STARTUP.S: Startup file for Philips LPC2000 device series */ /* */ /***********************************************************************/ /*
//*** <<< Use Configuration Wizard in Context Menu >>> *** // *** Startup Code (executed after Reset) ***
// Standard definitions of Mode bits and Interrupt (I & F) flags in PSRs Mode_USR EQU 0x10 Mode_FIQ EQU 0x11 Mode_IRQ EQU 0x12 Mode_SVC EQU 0x13 Mode_ABT EQU 0x17 Mode_UND EQU 0x1B Mode_SYS EQU 0x1F
I_Bit EQU 0x80 /* when I bit is set, IRQ is disabled */ F_Bit EQU 0x40 /* when F bit is set, FIQ is disabled */ /*
// <h> Stack Configuration (Stack Sizes in Bytes) // <o0> Undefined Mode <0x0-0xFFFFFFFF> // <o1> Supervisor Mode <0x0-0xFFFFFFFF> // <o2> Abort Mode <0x0-0xFFFFFFFF> // <o3> Fast Interrupt Mode <0x0-0xFFFFFFFF> // <o4> Interrupt Mode <0x0-0xFFFFFFFF> // <o5> User/System Mode <0x0-0xFFFFFFFF> // </h> */ UND_Stack_Size EQU 0x00000004 SVC_Stack_Size EQU 0x00000004 ABT_Stack_Size EQU 0x00000004 FIQ_Stack_Size EQU 0x00000004 IRQ_Stack_Size EQU 0x00000080 USR_Stack_Size EQU 0x00000400 AREA STACK, DATA, READWRITE, ALIGN=2
DS (USR_Stack_Size+3)&~3 ; Stack for User/System Mode DS (IRQ_Stack_Size+3)&~3 ; Stack for Interrupt Mode DS (FIQ_Stack_Size+3)&~3 ; Stack for Fast Interrupt Mode DS (ABT_Stack_Size+3)&~3 ; Stack for Abort Mode
DS (SVC_Stack_Size+3)&~3 ; Stack for Supervisor Mode DS (UND_Stack_Size+3)&~3 ; Stack for Undefined Mode Top_Stack:
// VPBDIV definitions
VPBDIV EQU 0xE01FC100 /* VPBDIV Address */ /*
// <e> VPBDIV Setup
// <i> Peripheral Bus Clock Rate // <o1.0..1> VPBDIV: VPB Clock
// <0=> VPB Clock = CPU Clock / 4 // <1=> VPB Clock = CPU Clock // <2=> VPB Clock = CPU Clock / 2 // <o1.4..5> XCLKDIV: XCLK Pin
// <0=> XCLK Pin = CPU Clock / 4 // <1=> XCLK Pin = CPU Clock
// <2=> XCLK Pin = CPU Clock / 2 // </e> */ VPBDIV_SETUP EQU 0 VPBDIV_Val EQU 0x00000000 //VPBDIV_SETUP EQU 1 //VPBDIV_Val EQU 0x00000001
// Phase Locked Loop (PLL) definitions
PLL_BASE EQU 0xE01FC080 /* PLL Base Address */ PLLCON_OFS EQU 0x00 /* PLL Control Offset*/
PLLCFG_OFS EQU 0x04 /* PLL Configuration Offset */ PLLSTAT_OFS EQU 0x08 /* PLL Status Offset */
PLLFEED_OFS EQU 0x0C /* PLL Feed Offset */ PLLCON_PLLE EQU (1<<0) /* PLL Enable */ PLLCON_PLLC EQU (1<<1) /* PLL Connect */ PLLCFG_MSEL EQU (0x1F<<0) /* PLL Multiplier */ PLLCFG_PSEL EQU (0x03<<5) /* PLL Divider */ PLLSTAT_PLOCK EQU (1<<10) /* PLL Lock Status */ /*
// <e> PLL Setup
// <i> Phase Locked Loop
// <o1.0..4> MSEL: PLL Multiplier Selection // <1-32><#-1>
// <i> M Value
// <o1.5..6> PSEL: PLL Divider Selection // <0=> 1 <1=> 2 <2=> 4 <3=> 8 // <i> P Value // </e> */ PLL_SETUP EQU 1 PLLCFG_Val EQU 0x00000023
// Memory Accelerator Module (MAM) definitions
MAM_BASE EQU 0xE01FC000 /* MAM Base Address */ MAMCR_OFS EQU 0x00 /* MAM Control Offset*/ MAMTIM_OFS EQU 0x04 /* MAM Timing Offset */ /*
// <e> MAM Setup
// <i> Memory Accelerator Module // <o1.0..1> MAM Control // <0=> Disabled
// <1=> Partially Enabled // <2=> Fully Enabled // <i> Mode
// <o2.0..2> MAM Timing
// <0=> Reserved <1=> 1 <2=> 2 <3=> 3 // <4=> 4 <5=> 5 <6=> 6 <7=> 7 // <i> Fetch Cycles
// </e> */
MAM_SETUP EQU 1
MAMCR_Val EQU 0x00000002 MAMTIM_Val EQU 0x00000004
// External Memory Controller (EMC) definitions
EMC_BASE EQU 0xFFE00000 /* EMC Base Address */ BCFG0_OFS EQU 0x00 /* BCFG0 Offset */ BCFG1_OFS EQU 0x04 /* BCFG1 Offset */ BCFG2_OFS EQU 0x08 /* BCFG2 Offset */ BCFG3_OFS EQU 0x0C /* BCFG3 Offset */ /*
// <e> External Memory Controller (EMC) */
/*
// <e> Bank Configuration 0 (BCFG0) // <o1.0..3> IDCY: Idle Cycles <0-15> // <o1.5..9> WST1: Wait States 1 <0-31> // <o1.11..15> WST2: Wait States 2 <0-31> // <o1.10> RBLE: Read Byte Lane Enable // <o1.26> WP: Write Protect
// <o1.27> BM: Burst ROM
// <o1.28..29> MW: Memory Width <0=> 8-bit <1=> 16-bit // <2=> 32-bit <3=> Reserved // </e>
*/
BCFG0_SETUP EQU 0
BCFG0_Val EQU 0x0000FBEF /*
// <e> Bank Configuration 1 (BCFG1) // <o1.0..3> IDCY: Idle Cycles <0-15> // <o1.5..9> WST1: Wait States 1 <0-31> // <o1.11..15> WST2: Wait States 2 <0-31> // <o1.10> RBLE: Read Byte Lane Enable // <o1.26> WP: Write Protect
// <o1.27> BM: Burst ROM
// <o1.28..29> MW: Memory Width <0=> 8-bit <1=> 16-bit // <2=> 32-bit <3=> Reserved // </e>
*/
BCFG1_SETUP EQU 0
BCFG1_Val EQU 0x0000FBEF /*
// <e> Bank Configuration 2 (BCFG2) // <o1.0..3> IDCY: Idle Cycles <0-15> // <o1.5..9> WST1: Wait States 1 <0-31> // <o1.11..15> WST2: Wait States 2 <0-31> // <o1.10> RBLE: Read Byte Lane Enable // <o1.26> WP: Write Protect
// <o1.27> BM: Burst ROM
// <o1.28..29> MW: Memory Width <0=> 8-bit <1=> 16-bit // <2=> 32-bit <3=> Reserved // </e>
*/
BCFG2_SETUP EQU 0
BCFG2_Val EQU 0x0000FBEF /*
// <e> Bank Configuration 3 (BCFG3) // <o1.0..3> IDCY: Idle Cycles <0-15> // <o1.5..9> WST1: Wait States 1 <0-31> // <o1.11..15> WST2: Wait States 2 <0-31> // <o1.10> RBLE: Read Byte Lane Enable // <o1.26> WP: Write Protect
// <o1.27> BM: Burst ROM
// <o1.28..29> MW: Memory Width <0=> 8-bit <1=> 16-bit // <2=> 32-bit <3=> Reserved // </e>
*/
BCFG3_SETUP EQU 0
BCFG3_Val EQU 0x0000FBEF /*
// </e> End of EMC */
// External Memory Pins definitions
PINSEL2 EQU 0xE002C014 /* PINSEL2 Address */
PINSEL2_Val EQU 0x0E6149E4 /* CS0..3, OE, WE, BLS0..3, D0..31, A2..23, JTAG Pins */
// Starupt Code must be linked first at Address at which it expects to run. $IF (EXTERNAL_MODE) CODE_BASE EQU 0x80000000 $ELSE CODE_BASE EQU 0x00000000 $ENDIF
AREA STARTUPCODE, CODE, AT CODE_BASE // READONLY, ALIGN=4 PUBLIC __startup
EXTERN CODE32 (?C?INIT) __startup PROC CODE32
// Pre-defined interrupt handlers that may be directly // overwritten by C interrupt functions
EXTERN CODE32 (Undef_Handler?A) EXTERN CODE32 (SWI_Handler?A) EXTERN CODE32 (PAbt_Handler?A) EXTERN CODE32 (DAbt_Handler?A) EXTERN CODE32 (IRQ_Handler?A) EXTERN CODE32 (FIQ_Handler?A) // Exception Vectors
// Mapped to Address 0.
// Absolute addressing mode must be used. Vectors: LDR PC,Reset_Addr LDR PC,Undef_Addr
LDR PC,SWI_Addr LDR PC,PAbt_Addr LDR PC,DAbt_Addr
NOP /* Reserved Vector */ ; LDR PC,IRQ_Addr
LDR PC,[PC, #-0x0FF0] /* Vector from VicVectAddr */ LDR PC,FIQ_Addr Reset_Addr: DD Reset_Handler Undef_Addr: DD Undef_Handler?A SWI_Addr: DD SWI_Handler?A PAbt_Addr: DD PAbt_Handler?A DAbt_Addr: DD DAbt_Handler?A DD 0 /* Reserved Address */ IRQ_Addr: DD IRQ_Handler?A FIQ_Addr: DD FIQ_Handler?A // Reset Handler Reset_Handler: $IF (EXTERNAL_MODE) LDR R0, =PINSEL2 LDR R1, =PINSEL2_Val STR R1, [R0] $ENDIF IF (EMC_SETUP != 0) LDR R0, =EMC_BASE IF (BCFG0_SETUP != 0) LDR R1, =BCFG0_Val STR R1, [R0, #BCFG0_OFS] ENDIF IF (BCFG1_SETUP != 0) LDR R1, =BCFG1_Val
STR R1, [R0, #BCFG1_OFS] ENDIF IF (BCFG2_SETUP != 0) LDR R1, =BCFG2_Val STR R1, [R0, #BCFG2_OFS] ENDIF IF (BCFG3_SETUP != 0) LDR R1, =BCFG3_Val STR R1, [R0, #BCFG3_OFS] ENDIF ENDIF IF (VPBDIV_SETUP != 0) LDR R0, =VPBDIV LDR R1, =VPBDIV_Val STR R1, [R0] ENDIF IF (PLL_SETUP != 0) LDR R0, =PLL_BASE MOV R1, #0xAA MOV R2, #0x55 // Configure and Enable PLL
MOV R3, #PLLCFG_Val STR R3, [R0, #PLLCFG_OFS] MOV R3, #PLLCON_PLLE STR R3, [R0, #PLLCON_OFS] STR R1, [R0, #PLLFEED_OFS] STR R2, [R0, #PLLFEED_OFS] // Wait until PLL Locked
PLL_Loop: LDR R3, [R0, #PLLSTAT_OFS] ANDS R3, R3, #PLLSTAT_PLOCK BEQ PLL_Loop
// Switch to PLL Clock
MOV R3, #(PLLCON_PLLE | PLLCON_PLLC) STR R3, [R0, #PLLCON_OFS] STR R1, [R0, #PLLFEED_OFS] STR R2, [R0, #PLLFEED_OFS] ENDIF IF (MAM_SETUP != 0) LDR R0, =MAM_BASE MOV R1, #MAMTIM_Val STR R1, [R0, #MAMTIM_OFS] MOV R1, #MAMCR_Val STR R1, [R0, #MAMCR_OFS] ENDIF
// Memory Mapping (when Interrupt Vectors are in RAM)
MEMMAP EQU 0xE01FC040 /* Memory Mapping Control */ $IF (RAM_INTVEC)
LDR R0, =MEMMAP MOV R1, #2 STR R1, [R0] $ENDIF
// Setup Stack for each mode
// Enter Undefined Instruction Mode and set its Stack Pointer MSR CPSR_c, #Mode_UND|I_Bit|F_Bit
MOV SP, R0
SUB R0, R0, #UND_Stack_Size // Enter Abort Mode and set its Stack Pointer
MSR CPSR_c, #Mode_ABT|I_Bit|F_Bit MOV SP, R0
SUB R0, R0, #ABT_Stack_Size // Enter FIQ Mode and set its Stack Pointer
MSR CPSR_c, #Mode_FIQ|I_Bit|F_Bit MOV SP, R0
SUB R0, R0, #FIQ_Stack_Size // Enter IRQ Mode and set its Stack Pointer
MSR CPSR_c, #Mode_IRQ|I_Bit|F_Bit MOV SP, R0
SUB R0, R0, #IRQ_Stack_Size // Enter Supervisor Mode and set its Stack Pointer MSR CPSR_c, #Mode_SVC|I_Bit|F_Bit MOV SP, R0
SUB R0, R0, #SVC_Stack_Size // Enter User Mode and set its Stack Pointer MSR CPSR_c, #Mode_USR MOV SP, R0
// Enter the C code
LDR R0,=?C?INIT
TST R0,#1 ; Bit-0 set: INIT is Thumb LDREQ LR,=exit?A ; ARM Mode
LDRNE LR,=exit?T ; Thumb Mode BX R0
ENDP PUBLIC exit?A
exit?A PROC CODE32 B exit?A ENDP
PUBLIC exit?T
exit?T PROC CODE16 exit: B exit?T ENDP
#include <stdio.h> /* standard I/O .h-file */ #include <LPC213x.H> /* LPC213x definitions */ #include <math.h> #define MASKHR 0x1f0000 #define MASKMIN 0x3f00 #define MASKSEC 0x3f #define MASKDAY 0x1f #define MASKMON 0xf00 #define MASKYEAR 0xfff0000 void lcd_wrstr(char* str); void itoa(int i, char str[]); void lcd_curpos(char row,char col); int hour = 0; int min = 0; int sec = 0; int day = 0; int month = 0; int year = 0; char rtc_flag = 0; int hour_counter;
//Chua trang thai hien thoi va tam thoi cua ban phim