Thông báo

Collapse
No announcement yet.

khó khăn: nhập thời gian cho timer??? mong mọi người chỉ giúp

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

  • khó khăn: nhập thời gian cho timer??? mong mọi người chỉ giúp

    mình đang làm bài tập về PLC S7 300. yêu cầu là lập trình điều khiển quá trình sấy sản phẩm, thời gian được đặt trước qua 10 phím số thập phân( chỉ đặt thời gian là số có 3 chữ số vd: 123 phút ) và hiển thị thời gian ở ngõ ra dưới dạng BCD, mình không biết phải viết chương trình để nhập thập phân trong PLC như thế nào? ai có gợi ý gì thì có thể giúp mình với. xin cảm ơn!

  • #2
    bạn muốn hiển thị ra led 7 đoạn à
    bạn thử dùng lệnh MOVE thử xem để chuyển từ số I sang W rồi nạp vào cho time

    Comment


    • #3
      cám ơn bạn. mình đã làm thử rồi, nhưng mình vẫn chưa thành công được. hiện tại mình sử dụng lệnh move và lệnh xoay 8 bits để nhập số.ấn nút với số tương ứng thì số đó được đưa vào thanh ghi và có lệnh xoay thanh ghi để nhập số tiếp theo,nhưng khi đưa giá trị đã nhập vào cho timer thì nó lại ko đúng, hiển thị thời gian ko giống như đã nhập, mình phải làm được cái nhập số này mới có thể tính đến phần hiển thị, yêu cầu ko nhất thiết phải sử dụng led 7 đoạn,trong timer có ngõ ra BCD sẽ hiển thị giá trị tức thời của thời gian rùi. bạn nào biết thì chỉ giúp mình để mình hoàn thành với.

      Comment


      • #4
        đầu tiên bạn chuyển số bcd sang dạng số BCD sang số nguyên 16 bít , sau đó chuyển số nguyên 16 bít sang 32 bít , và cuối cùng bạn chuyển sang số thực . thế là được bạn ạ. bạn thử xem

        Comment


        • #5
          cám ơn bạn luctadien đã góp ý giùm mình, bây giờ mình viết chương trình nhập số và đưa giá trị số đó đã nhập vào thanh ghi 16bit sau đó đưa giá trị thanh ghi đó vào thanh ghi PV của timer(thanh ghi PV 16bit, bit số 13 14 của nó là biểu diễn độ phân giải)nhưng mình chỉ nhập dc 3 số vào có nghĩa là tương đương với 3 số ở dưới dạng bcd --> chỉ mới có 12 bit thui mà, tại sao độ phân giải của nó lại đặt ở 10ms nhỉ? mình thử ấn 4 lần = 4 số BCD thì nó phải là 16 bit nhưng trên timer chỉ hiện ra 3 số đã nhập thôi ví dụ nhấn 064( mình thấy độ phân giải nó đặt sẵn là 10ms) nó sẽ hiện trên timer là 4s600ms dùng lệnh dịch phải 4bit nên khi nhập là ngược bạn ạ.hi.nếu có nhấn 4 lần vd 3064 ( số 3 là 0011 (bcd)-->mụch đích là độ phân giải 10s) nhưng nó cũng chỉ hiện lên 3 số cuối đã nhập thôi( mình dùng thanh thanh ghi MB để nhập các số và dùng lệnh xoay 4bit trên thanh ghi MW(1 số BCD)để nhập số tiếp theo) liệu có phải mình sử dụng các thanh ghi ko đúng nhỉ

          Comment


          • #6
            time trong plc thì độ phân giải cao nhất cũng chỉ là 100ms mục đích là để cho mình thuận lợi quan sát vì độ phân giải càng nhỏ thì độ chính xác càng cao. về lệnh liên quan đến thanh ghi thì mình it dùng nếu lập trình bằng ngôn ngữ STL thì bạn sẽ giải quyết vấn đề này được. đôi khi lad cũng có một số hạn chế. bài toán của bạ cũng máy móc quá thực ra mình có nhiều giải pháp khác mà không phải phức tạp như thế này đâu. dạo này mình bận quá , sếp đang giao cho lắp đặt hệ thống can nhiệt của các buồng lò rồi hiển thị trên may tính qua PCS7 quan sát trên nhiều máy tính nên ít có thời gian để tìm hiểu sâu về PLC.

            Comment


            • #7
              . anh đi làm rồi ạ, vậy thì em chỉ là tiểu đệ của anh thui. e mới học về PLC thui anh a nên còn kém lắm.e mới học mà lại chẳng biết ai để hỏi nên cũng phải tự mò nhiều. e mới chỉ làm các bài kiểu đơn giản thui,(bài này là khó với e rùi đấy a. hi). nếu lúc nào anh có thời gian mong anh chỉ giúp em với ạ.

              Comment


              • #8
                tại sao lại làm phức tạp vấn đề lên quá vậy.
                mình đã làm mô hình điều khiển đèn giao thông có thời gian sáng các đền theo cài đặt và đã chạy ok. mình không sử dụng các lệnh xoay vì đôi khi mình khó kiểm soát lắm.vấn đề có thể giải quyết như thế này:
                giả sử bạn cần cài đặt thời gian sấy là 321s thì bạn làm như sau:
                nhấn nút số 3: Move số 3 vào VB10, Mul VB10 với số 100 để tạo thành số hàng trăm lưu vào VB20
                Nhấn số 2:Move số 2 vào VB11, Mul VB11 với số 10 để tạo thành số hàng chục lưu vào VB21
                Nhấn số 1: Move số 1 vào VB12.
                Thực hiện lệnh cộng VB20+VB21+VB12. Lưu vào VB25 (Lúc này ô nhớ VB25 sẽ lưu số 321).
                Chuyển VB25 thành số nguyên Interger. Lưu vào VW30. nếu muốn hiển thị thì số đã nhấn thì bạn đọc dữ liệu ở ô nhớ này ra.
                tùy theo loại timer được sử dụng. Ví dụ TON T33 (độ phân giải là 10ms) thì bạn nhân VW30 với số 100. kết quả lưu vào VW32.
                Tại Network khai báo Timer giá trị PT bạn khai là ô nhớ VW32. như thế là timer sẽ chạy đúng theo thời gian cài dặt của bạn.
                chúc thành công.
                Khoa Điện Tử
                Trường Cao Đẳng Nghề Thành phố Hồ Chí Minh
                số 38- Trần Khánh Dư - F. Tân Định - Q. 1

                Comment


                • #9
                  cám ơn các bạn. mình cũng đang bị hóc bài này

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X