PLC HomeMade phiên bản 1.0 của Tubes
I. Đặt vấn đề:
1. PLC?
....
2. Tại sao phải DIY:
- For fun & study !!!
- Muốn có 1 số bộ PLC giá thật thật rẻ, dễ làm, linh kiện có sẵn, đáp ứng được các lệnh cơ bản.
- Khả năng ứng dụng: Cho các công việc có sử dụng đến bộ điều khiển PLC đơn giản, đk relay điện từ, yêu cầu kỹ thuật độ ổn định không quá cao, số cổng điều khiển ít, chương trình đơn giản như: Điều khiển động cơ với hành trình đơn giản, hệ thống báo cháy, chống trộm v.v...
II. Phương án triển khai
1. Tính năng dự kiến:
- Xử dụng vi xử lý AVR của Atmel. Trước mắt chọn ATmega32 (ngon bổ rẻ)
- 8 cổng vào logic X0-X7, cách ly về điện, điện từ 12-24V DC kháng nhiễu, dòng 5mA-15mA. Đáp ứng của cổng 10ms.
- 8 cổng ra logic Y0-Y7 sử dụng relay
- 8 ô nhớ trong M0-M7
- 8 bộ đếm trong C0-C7. Tất cả bộ đếm đều là loại 8 bít.
- 8 bộ định thời T0-T7. T0-T4 là loại 10ms, T5-T7 là loại 100ms. Tất cả bộ timer đều là loại 8 bít.
- 1 cổng giao diện LCD 4x20 hoặc 2x16, giao diện dạng 4 bit
- 4 phím đa năng: Up, Down, Enter, Cancel để thiết lập các chế độ cho PLC
- 1 cổng RS232 điều khiển và nạp chương trình
- 1 nút Stop / Run-Program
- 1 đèn Yellow = RUN
- 1 đèn Red = ERROR
- 1 đèn Green = POWER
- Bộ lệnh sử dụng tương tự của Mitsubishi, có thể thay đổi sang Siemens, OMRON trong tương lai .
- Tập các lệnh hỗ trợ:
+ LD, LDI
+ OUT
+ OR, ORI
+ AND, ANI
+ RST,SET
+ PLS, PLF
+ INV, ANB, ORB,
+ MPS, MPP, MPR,
+ END, ...
+ Các lệnh vào ra
- Bộ nhớ lệnh 800 byte, sử dụng EEPROM với chip ATMega32.
- Nạp chương trình thông qua cổng RS232
2. Xử lý chống nhiễu EMI:
- Lọc, lọc và lọc !!. (dùng cả phần mềm).
3. Ma trận lệnh: Bước đầu hỗ trợ 2 loại lệnh
- Lệnh 1 byte
- Lệnh 2 byte
4. Quản lý bộ nhớ:
Quản lý bộ nhớ theo dạng vector.
5. Quản lý vào ra:
Quản lý vào ra, tương tự như quản lý bộ nhớ. Chưa hỗ trợ các lệnh dạng xung như LDP, ORP, ANP v.v...
6. Xây dựng hệ điều hành (gọi cho oai) và chương trình dịch:
Yêu cầu phải thật gọn nhẹ, chạy nhanh hiệu quả
- Quản lý cổng vào ra, bộ nhớ, tiến trình, ngăn xếp:
- Quản lý vào ra màn hình LCD, bàn phím
- Nạp chương trình từ EEPROM vào RAM để tăng tốc độ xử lý
- Ngắt định thời 1ms,100ms
- Chức năng của HĐH:
* Chế độ RUN:
+ Nạp cổng và trạng thái đầu vào
+ Nạp lệnh
+ Phân tích xử lý
+ Thiết lập đầu ra
+ Quay lại bước 1
* Chế độ PROGRAM:
a. Giao tiếp bàn phím
+ Thiết lập các thông số của PLC bằng nút bấm
b. Giao tiếp cổng RS232
+ Thiết lập các thông số của PLC bằng PC
+ Nạp chương trình phần mềm PLC bằng file Intel Hex.
- Các chức năng khác.
7. Chương trình biên dịch
Dịch chương trình dạng Text sang dạng Hex
- Viết bằng VC6, biên dịch từ file text sang dạng Hex hoặc Dat
Cú pháp:
MyPLC [InputFile.txt] [OutputFile.hex][ListFile.txt]
8. Các module:
- Phần cứng:
- Chống nhiễu EMI
- Nguồn chuyển mạch
- Lệnh nâng cao của các loại PLC
IV - Điều kiện triển khai:
- Thời gian + hứng thú
V - Kế hoạch và thời gian dự kiến:
- None !!
VI - Phương án test thử:
- Thử trong môi trường nhiễu công nghiệp, hàn điện, điện phập phù.
- Bài test ??
VII - Các phần đã thực hiện xong:
- Hệ điều hành:
- Chương trình biên dịch:
- Phần cứng:
I. Đặt vấn đề:
1. PLC?
....
2. Tại sao phải DIY:
- For fun & study !!!
- Muốn có 1 số bộ PLC giá thật thật rẻ, dễ làm, linh kiện có sẵn, đáp ứng được các lệnh cơ bản.
- Khả năng ứng dụng: Cho các công việc có sử dụng đến bộ điều khiển PLC đơn giản, đk relay điện từ, yêu cầu kỹ thuật độ ổn định không quá cao, số cổng điều khiển ít, chương trình đơn giản như: Điều khiển động cơ với hành trình đơn giản, hệ thống báo cháy, chống trộm v.v...
II. Phương án triển khai
1. Tính năng dự kiến:
- Xử dụng vi xử lý AVR của Atmel. Trước mắt chọn ATmega32 (ngon bổ rẻ)
- 8 cổng vào logic X0-X7, cách ly về điện, điện từ 12-24V DC kháng nhiễu, dòng 5mA-15mA. Đáp ứng của cổng 10ms.
- 8 cổng ra logic Y0-Y7 sử dụng relay
- 8 ô nhớ trong M0-M7
- 8 bộ đếm trong C0-C7. Tất cả bộ đếm đều là loại 8 bít.
- 8 bộ định thời T0-T7. T0-T4 là loại 10ms, T5-T7 là loại 100ms. Tất cả bộ timer đều là loại 8 bít.
- 1 cổng giao diện LCD 4x20 hoặc 2x16, giao diện dạng 4 bit
- 4 phím đa năng: Up, Down, Enter, Cancel để thiết lập các chế độ cho PLC
- 1 cổng RS232 điều khiển và nạp chương trình
- 1 nút Stop / Run-Program
- 1 đèn Yellow = RUN
- 1 đèn Red = ERROR
- 1 đèn Green = POWER
- Bộ lệnh sử dụng tương tự của Mitsubishi, có thể thay đổi sang Siemens, OMRON trong tương lai .
- Tập các lệnh hỗ trợ:
+ LD, LDI
+ OUT
+ OR, ORI
+ AND, ANI
+ RST,SET
+ PLS, PLF
+ INV, ANB, ORB,
+ MPS, MPP, MPR,
+ END, ...
+ Các lệnh vào ra
- Bộ nhớ lệnh 800 byte, sử dụng EEPROM với chip ATMega32.
- Nạp chương trình thông qua cổng RS232
2. Xử lý chống nhiễu EMI:
- Lọc, lọc và lọc !!. (dùng cả phần mềm).
3. Ma trận lệnh: Bước đầu hỗ trợ 2 loại lệnh
- Lệnh 1 byte
- Lệnh 2 byte
4. Quản lý bộ nhớ:
Quản lý bộ nhớ theo dạng vector.
5. Quản lý vào ra:
Quản lý vào ra, tương tự như quản lý bộ nhớ. Chưa hỗ trợ các lệnh dạng xung như LDP, ORP, ANP v.v...
6. Xây dựng hệ điều hành (gọi cho oai) và chương trình dịch:
Yêu cầu phải thật gọn nhẹ, chạy nhanh hiệu quả
- Quản lý cổng vào ra, bộ nhớ, tiến trình, ngăn xếp:
- Quản lý vào ra màn hình LCD, bàn phím
- Nạp chương trình từ EEPROM vào RAM để tăng tốc độ xử lý
- Ngắt định thời 1ms,100ms
- Chức năng của HĐH:
* Chế độ RUN:
+ Nạp cổng và trạng thái đầu vào
+ Nạp lệnh
+ Phân tích xử lý
+ Thiết lập đầu ra
+ Quay lại bước 1
* Chế độ PROGRAM:
a. Giao tiếp bàn phím
+ Thiết lập các thông số của PLC bằng nút bấm
b. Giao tiếp cổng RS232
+ Thiết lập các thông số của PLC bằng PC
+ Nạp chương trình phần mềm PLC bằng file Intel Hex.
- Các chức năng khác.
7. Chương trình biên dịch
Dịch chương trình dạng Text sang dạng Hex
- Viết bằng VC6, biên dịch từ file text sang dạng Hex hoặc Dat
Cú pháp:
MyPLC [InputFile.txt] [OutputFile.hex][ListFile.txt]
8. Các module:
- Phần cứng:
+ Main CPU, IO, giao tiếp LCD, RS232.
+ Main nguồn: 5VDC, 12VDC, 24VDC
- Phần mềm:+ Main nguồn: 5VDC, 12VDC, 24VDC
+ Phần HĐH, nạp chương trình vào EEPROM
+ Phần mềm biên dịch chương trình.
+ Phần mềm giao tiếp và nạp chương trình.
III - Các phần cần ngâm cứu thêm:- RTOS+ Phần mềm biên dịch chương trình.
+ Phần mềm giao tiếp và nạp chương trình.
- Chống nhiễu EMI
- Nguồn chuyển mạch
- Lệnh nâng cao của các loại PLC
IV - Điều kiện triển khai:
- Thời gian + hứng thú
V - Kế hoạch và thời gian dự kiến:
- None !!
VI - Phương án test thử:
- Thử trong môi trường nhiễu công nghiệp, hàn điện, điện phập phù.
- Bài test ??
VII - Các phần đã thực hiện xong:
- Hệ điều hành:
+ Đã hỗ trợ và thực hiện tốt các lệnh: LD, LDI, OUT, OR, ORI, AND, ANI, RST,SET, PLS, PLF, INV, ANB, ORB, MPS, MPP, MPR, END, NOP
+ Đã có phần giao tiếp LCD
+ Kích thước hiện tại 9Kbyte
+ Đang hoàn thiện phần giao tiếp, phần nạp file chương trình qua RS232
+ Đã có phần giao tiếp LCD
+ Kích thước hiện tại 9Kbyte
+ Đang hoàn thiện phần giao tiếp, phần nạp file chương trình qua RS232
- Chương trình biên dịch:
+ Dòng lệnh. Hỗ trợ các lệnh cơ bản.
+ Đã ra file Intel Hex, có List file để kiểm tra.
+ Bắt lỗi sơ sài.
+ Sửa đối tiếp ...
+ Đã ra file Intel Hex, có List file để kiểm tra.
+ Bắt lỗi sơ sài.
+ Sửa đối tiếp ...
- Phần cứng:
+ Đang triển khai thử .
Comment