Thông báo

Collapse
No announcement yet.

Làm lấy PLC đơn giản

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Làm lấy PLC đơn giản

    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:
    + Main CPU, IO, giao tiếp LCD, RS232.
    + Main nguồn: 5VDC, 12VDC, 24VDC
    - Phần mềm:
    + 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
    - 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

    - 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 ...

    - Phần cứng:
    + Đang triển khai thử .

  • #2
    wel!! những gì Tubes nói quá hay!Không biết đấy có phải là sự thật không???
    Tubes hãy diễn dải kỹ từng phần của minh xem va có hình ảnh! biết đâu VIET NAM lại có được PLC made in TUBES!!!
    --------------------------------------
    Cùng nhau tỏa sáng
    Email:

    Comment


    • #3
      Nguyên văn bởi luonghanh Xem bài viết
      wel!! những gì Tubes nói quá hay!Không biết đấy có phải là sự thật không???
      Tubes hãy diễn dải kỹ từng phần của minh xem va có hình ảnh! biết đâu VIET NAM lại có được PLC made in TUBES!!!
      He he, "Made by Tubes" chứ bác
      Phần cứng em đang làm mạch in, nên chưa có ảnh. Hiện đang chạy tạm trên cái bo của dự án trước.
      Đây là dự án đầu tiên mà phần mềm lại làm trước phần cứng!!

      Comment


      • #4
        Đây là chương trình thử

        # Chuong trinh thu
        #


        ld x0
        set m0

        ld m0
        out t4 k100

        ld t4
        inv
        out y0

        ld x1
        rst m0
        rst t4

        end

        Comment


        • #5
          Biên dịch ra file sau

          testdata.hex
          :1001000000FD7010FD246424FD00F001FD40FD544D
          :02011000FE00EF
          :00000001FF

          Nạp vào 0x100 của ATMega, gạt nút RUN là xong
          Chưa xong phần upload nên phải dùng STK500 để ghi vào EEPROM
          Last edited by Tubes; 04-06-2007, 21:50.

          Comment


          • #6
            hôm trước mình vừa làm project môn học mô phỏng plc , lập trình bằng console .Dùng atmega16L . Hôm nay lên mạng có người cũng làm.
            Bác làm xong chưa vậy

            Comment


            • #7
              Nguyên văn bởi ntuan Xem bài viết
              hôm trước mình vừa làm project môn học mô phỏng plc , lập trình bằng console .Dùng atmega16L . Hôm nay lên mạng có người cũng làm.
              Bác làm xong chưa vậy
              Làm PLC không phải bài toán mới, nhưng là bài toán khó và rộng, liên quan rất nhiều vấn đề, do đó theo tôi, nếu bạn đang là sinh viên và thích thì nên mở rộng thành đề tài, nếu chỉ làm bài tập lớn và dừng lại thì sẽ hơi phí. Vì thời gian cho 1 bài tập lớn môn học có lẽ sẽ không đủ để nghiên cứu và phát triển sâu được.

              Có lẽ cũng có một số bạn làm đề tài loại này rồi, nhưng điều đó không quan trọng, quan trọng là đi theo hướng riêng, có sản phẩm hoặc theo ý tưởng riêng!

              Chúc thành công

              Comment


              • #8
                Phần cứng rất đơn giản và hiệu quả.
                Đây là phiên bản sử dụng Relay
                Attached Files

                Comment


                • #9
                  Mình thấy cái PLC này của Tây làm còn đơn giản hơn nữa
                  Attached Files
                  Chuyên làm các mạch điện tử bí hiểm và kỳ quặc .
                  nguyendinhvan1968@gmail.com

                  Mobil : 0903 252 168 Chỉ gọi từ 09 giờ đến 17 giờ . Từ 18 giờ ngoài vùng phủ sóng

                  Comment


                  • #10
                    Mình cũng nghĩ rằng phát triển theo hướng lệnh STL = lệnh script, hay dạng bảng tra sẽ mềm dẻo hơn việc biên dịch trực tiếp ra mã uP. Tuy tốc độ xlý lệnh sẽ lâu hơn nhưng ta có thể chia ra 2 cong việc làm firm và PC độc lập. Còn về hardware có thể dùng PIC24HF hoặc ARM7 là tốt nhất vì nó rất nhanh,hoặc bét ra dùng ATMEGA128 dễ kiếm. Mình cũng có ý tưởng như Tubes. Hiện tại mình fát triển phần firm trứoc mắt là để đi nâng cấp các máy cũ. Mạch của mình đang làm có tính năng 24In,24Out full opto. 4 rotary encoder,4 ADC in configable (ADC,I,RTD,Thermal),2 DAC out V or I.Phần Analog này khó nhất vì cần fải hỗ trợ nhiều dạng điện áp vào. 1 LCD16x2 và Key 9 phím như TD200, có thể kéo ra xa bằng cáp.Có 1 cổng RS232 và 1 RS485 half-duplex. uP dùng tạm con ATMEGA128,nếu dùng ARM7 thì mình nghĩ thêm 1 usb nữa sẽ càng ngon. Output dùng IRF640 chứ kô dùng relay. Nếu làm được cả LAD trên PC thì mình rất muốn bán cái này với giá 100usd :-) . Hiện tại vẫn dừng ở mức lập trình bằng AVRStudio :-( nhưng mình thấy nó đã hiệu quả lắm rồi. mọi bài toán về máy cũ hầu như đều quy chuẩn thành bộ PLC dạng này, do vậy rất tiết kiệm tgian làm mạch và vẫn nuôi được ý chí làm PLC.
                    Bravo Tubes và xin bác NDV cho ít chỉ giáo.
                    ! ! you can win if you want ! !

                    Comment


                    • #11
                      Sample

                      Sample

                      Comment


                      • #12
                        Mạch của Bác Vân bên trên sài ROM thì làm sao mà linh hoạt được!!
                        Dùng PAL/GAL hay hơn mạch của bác nhiều.
                        Last edited by Tubes; 09-06-2007, 12:34.

                        Comment


                        • #13
                          Chào bác Anhtuan133, thực ra ý tưởng làm một PLC hoặc SBC (single board computer) tổng quát mình đã thử từ khá lâu rồi, thậm chí đã từng tích hợp cả giao diện ổ cứng IDE vào vi xử lý để chứa tập lệnh. Nhưng cũng có cái làm được và chưa làm được. Lần này thì khác, làm đơn giản nhẹ nhàng như đẩy xe hàng, nhưng phần firmware sẽ phức tạp, có tập lệnh riêng, có thể download được chương trình. Khi đó người dùng chỉ cần biên dịch lại ứng dụng là xong, không cần phải cập nhật lại firmware

                          Do thời gian không có nhiều, dành thời gian cho việc khác, phần cứng mình không làm hầm hố quá, khó khả thi. Tập trung vào nghiên cứu phát triển firmware tổng quát và trình biên dịch.

                          Vừa rỗi đã bổ sung thêm được các lệnh pulse: LDP, LDF, ORP, ORF, ANDP, ANDF. Mở rộng tập lệnh lên 3 byte. Như vậy tập lệnh coi như đã hoàn thành kế hoạch.

                          Đợt tới, trong khi chờ mạch in, nếu có thời gian, sẽ nghiên cứu mở rộng địa chỉ thêm 1 byte nữa tức là có 11bit địa chỉ cho X,Y,M,T,C khi đó thì phần mềm và trình biên dịch có thể hiểu được phần cứng tới 2048 cổng vào ra mà không làm chậm chương trình đi nhiều. Vậy cũng quá đủ cho 1 PLC đơn giản!!

                          Nhận mạch in, hàn cắm, nạp firmware, chạy thử, đưa vào ứng dụng là xong kế hoạch!!! (nói có vẻ dễ nhỉ )

                          Comment


                          • #14
                            Nguyên văn bởi ITS Xem bài viết
                            Sample
                            Ý bác là cần ví dụ hả?

                            Có ngay!

                            # Chuong trinh dieu khien - (Lenh Mitsubishi)

                            LDI X0
                            OUT M0
                            LD M0
                            AND X1
                            SET M1
                            LD M1
                            OUT T0 K10
                            LD T0
                            MPS
                            ANI T2
                            OUT Y0
                            MPP
                            OUT T1 K10
                            LD T1
                            ANI X3
                            ANI M2
                            OUT Y2
                            LD X3
                            SET M2
                            LD M2
                            OUT T2 K10
                            OUT T3 K10
                            LD T3
                            ANI X2
                            AND M2
                            OUT Y3
                            LD X2
                            RST M1
                            RST M2
                            END

                            Comment


                            • #15
                              Kết quả biên dịch

                              :1001000028FD1010A1FD7111FD200A20FAEAF0FC73
                              :10011000FD210A21CBDAF203FD7212FD220AFD2332
                              :0C0120000A23CAB2F302FD41FD42FF00B9
                              :00000001FF
                              Attached Files

                              Comment

                              Về tác giả

                              Collapse

                              Tubes Tìm hiểu thêm về Tubes

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X