Kỹ thuật điều khiển bơm luân phiên thường được sử dụng trong các dự án ngành nước. Tuy nhiên chỉ dùng 1 phao để điều khiển bơm thì không đủ, ít nhất phải 2 phao cho 2 mức Start và Stop. Nếu dùng 1 phao bạn phải delay để có 2 khoảng Start Stop.
Cách 1: dễ - bài toán đơn giản
Thông thường nếu chỉ có 2 bơm thì dùng giải thuật "gắn cờ".
Ví dụ bơm 1 chạy rồi thì bạn gắn cờ cho nó, lần sau nó không chạy nữa để bơm 2 chạy. Bơm 2 chạy xong thì cờ trả cho bơm 2. Cứ luân phiên như vậy.
Cách 2: khó - dùng cho bài toán tổng quát
Nếu nhiều hơn 2 bơm và áp dụng cho trường hợp tổng quát thì bạn dùng giải thuật so sánh thời gian thực. Tức là xem khoảng thời gian nghỉ của thằng nào nhiều nhất thì thằng đó được ưu tiên chạy cho lần tiếp theo.
Ví dụ hệ thống có 4 bơm:
Bơm 1 đang chạy
Bơm 2 đang nghỉ, thời gian nghỉ đạt 2.5 tiếng
Bơm 3 đang nghỉ, thời gian nghỉ đạt 2 tiếng
Bơm 4 đang nghỉ, thời gian nghỉ đạt 3 tiếng
Sau khi mực nước đạt mức Stop, bơm 1 dừng. Khi mực nước đạt mức Start trở lại hệ thống sẽ so sánh thời gian nghỉ của cả 4 bơm. Tất nhiên vì bơm 1 vừa chạy xong nên thời gian nghỉ của nó là ngắn nhất. Như vậy lúc này Bơm 4 sẽ được ưu tiên chạy trước vì nãy giờ "ngồi chơi" quá lâu rồi.
Tất nhiên trong thực tế thì số lượng bơm chạy phụ thuộc vào nhu cầu của process (có thể chia làm nhiều mức chạy khác nhau - 2, 3 hay 4 bơm cùng lúc) và bạn phải có giải thuật sắp xếp ưu tiên. Nhưng tóm lại chỉ cần dựa trên hướng mình vừa nêu là giải quyết được bài toán.
Cuối cùng, làm cách nào là do bạn quyết định, làm cách 2 thì cực hơn nhưng bạn sẽ giải quyết được bài toán tổng quát.
Lần sửa cuối bởi chauvinhloi, ngày 11-24-2015 lúc 04:04 PM.
E mới mò mẫm vào lập trình S7-300 có 1 đề bài như sau:
+ Có 2 máy bơm chạy theo 3 mức phao: mức thấp(MT),Mức trung bình(MTB), mức cao(MC):
- MT: 2 bơm không hoạt động
- MTB: 2 bơm hoạt động luân phiên cho tới khi xuống MT thì dừng
- MC: 2 bơm hoạt động cùng lúc cho tới khi xuống MT thì dừng
Đối với loại bài này e không biết chia quá trình sao cho hợp lí,ko có hướng đi,mong các anh chỉ giáo cho thằng em
-
E mới mò mẫm vào lập trình S7-300 có 1 đề bài như sau:
+ Có 2 máy bơm chạy theo 3 mức phao: mức thấp(MT),Mức trung bình(MTB), mức cao(MC):
- MT: 2 bơm không hoạt động
- MTB: 2 bơm hoạt động luân phiên cho tới khi xuống MT thì dừng
- MC: 2 bơm hoạt động cùng lúc cho tới khi xuống MT thì dừng
Đối với loại bài này e không biết chia quá trình sao cho hợp lí,ko có hướng đi,mong các anh chỉ giáo cho thằng em
-
Còn làm kiểu xét thời gian thì có vẻ hơi khó so với bạn nên khi nào gặp bài toán thực tế mình hướng dẫn sau. Vẫn dùng ngôn ngữ SCL vì nó dễ hiểu và gần với giải thuật.
Còn làm kiểu xét thời gian thì có vẻ hơi khó so với bạn nên khi nào gặp bài toán thực tế mình hướng dẫn sau. Vẫn dùng ngôn ngữ SCL vì nó dễ hiểu và gần với giải thuật.
bài toán của e,em đã viết giải thuật rồi,những chuyển xuống code thì e chưa làm được,em viết LAD thôi assss.jpg
Lần sửa cuối bởi ducozil, ngày 12-01-2015 lúc 09:13 AM.
bài toán của e,em đã viết giải thuật rồi,những chuyển xuống code thì e chưa làm được,em viết LAD thôi assss.jpg
có lưu đồ tốt vậy rồi thì chuyển qua ngôn ngữ PLC viết thôi. Lưu đồ này vẫn viết bẳng LAD dc, không có gì phức tạp hết, có phức tạp hơn nữa vẫn viết được. Bạn cứ viết theo lưu đồ, từng bước 1 sẽ ra
lẬP TRÌNH CHO LOGO
2 BƠM CHẠY THEO PHAO,PHAO MỨC THẤP KO CHẠY,PHAO MỨC CAO 2 BƠM CHẠY LUÂN PHIÊN.AI CÓ THỂ VIẾT BẰNG LADDER KO Ạ.CẢM ƠN
Chuyển lưu đồ của bạn về dạng GRAFCET rồi viết bằng LAD, không nên để lưu đồ như vầy mà triển khai vì bạn đang viết theo cấu trúc rẽ nhánh và vòng lặp. LAD vẫn có thể làm được dạng vòng lặp nhưng bạn phải Jump rất nhiều nếu thực sự viết theo dạng vòng lặp. Cuối cùng bạn cũng sẽ viết xong thôi nhưng vấn đề nằm ở chỗ, code của bạn nhìn vào có dễ hiểu không, dễ chẩn đoán lỗi không đó mới là quan trọng.
Về SCL thì đó là ngôn ngữ dựa trên Pascal, hỗ trợ rất mạnh các cấu trúc rẽ nhánh và vòng lặp có điều kiện. SCL hiệu quả khi bạn dùng nó để xử lý dữ liệu, còn LAD thì mạnh về điều khiển. Khi mới bắt đầu học PLC, mình cũng làm lưu đồ như bạn bây giờ. Và mình từng thử làm điều ngược lại, nghĩa là dùng LAD để xử lý dữ liệu và dùng SCL để viết điều khiển tuần tự. Kết quả thì cuối cùng mình vẫn làm được nhưng mất rất nhiều thời gian và đưa code cho người khác đọc không hiểu gì cả. Còn như bạn thấy mình viết bằng SCL, bạn đọc vào là hiểu dù bạn không biết viết SCL vì nó gần với giại thuật của bạn.
Khi phát triển PLC, họ phát triển ngôn ngữ LAD với mục đích là giúp các kỹ sư quen với việc thiết kế hệ thống điều khiển bằng relay trước đây có thể chuyển lên dùng PLC dễ dàng. Sau đó thì họ bổ sung thêm nhiều hàm cho LAD khiến nó trở nên mạnh mẽ hơn, không chỉ dừng lại ở các lệnh on off, delay nên ta có thể dùng lad để xử lý các thuật toán điều khiển phức tạp hơn. Tuy nhiên xét về bản chất thì LAD cũng từ hệ thống điều khiển relay phát triển lên. Song song với LAD, các nhà phát triển vẫn muốn hỗ trợ bộ phận kỹ sư làm việc với vi điều khiển, vi xử lý nên đã phát triển thêm ngôn ngữ SCL để giúp các kỹ sư này làm quen với PLC nhanh hơn.
Nên nếu đánh giá so sánh giữa việc viết bằng LAD hay SCL thì bạn nên đi về bản chất của nó. Ngày xưa bạn thiết kế hệ thống điều khiển relay như thế nào (mà mình nghĩ là thế hệ các bạn bây giờ chắc cũng không còn được làm cái đó) hay bạn lập trình vi điều khiển (PIC, ARM, 8051, AVR,...) như thế thì cứ dựa vào đó mà suy nghĩ tiếp.
Và quan trọng nhất đó là áp dụng tư duy (giải thuật) của bạn vào thực tế như thế nào cho gần với cách bạn suy nghĩ giải quyết vấn đề, nếu bạn chọn một con đường vòng thì có khả năng mindset của bạn sẽ bị thay đổi theo dẫn đến khó phát triển các giải thuật cao hơn.
Như vậy không nhất thiết bạn phải dùng SCL. Bạn có 2 lựa chọn, một là thay đổi lưu đồ để triển khai với LAD (bạn có học qua thiết kế tuần tự sẽ biết), hai là thay đổi ngôn ngữ viết để phù hợp với cách mà bạn đang suy nghĩ. Mình khuyên là bạn mới bắt đầu thì làm cái dễ trước - dùng LAD nhưng thay đổi lưu đồ lại. Nếu muốn phát triển các giải thuật cao hơn thì dùng SCL, tài liệu thì bạn xem cuốn "Automation with STEP 7 in STL and SCL của Hans Berger", xem cuốn này biết được cả hai ngôn ngữ STL và SCL.
Đánh dấu