3.3.4.1. Lưu đồ thuật toán cho công đoạn cân định lượng.
¾ Yêu cầu công nghệ bài toán cân định lượng.
Đối với vật nuôi, việc đảm bảo cung cấp đầy đủ chất dinh dưỡng là một yêu câu hiển nhiên. Bên cạnh đó, việc đảm bảo yếu tố kinh tế cho nhà sản xuất và người chăn nuôi cũng quan trọng. Với mỗi loại vật nuôi khác nhau thì nhu cầu về dinh dưỡng cũng khác nhau. Thành phần dinh dưỡng của thức ăn xác định bởi tỉ lệ khối lượng của các nguyên liệu như ngô, đậu tương, bột cá, bột xương, phụ gia…Trên cơ sở nhu cầu dinh dưỡng của vật nuôi, bộ phận phân tích sẽđưa ra tỉ lệ khối lượng của các nguyện liệu trên một đơn vị thức ăn.
Nhiệm vụ của hệ thống cân định lượng là phải đảm bảo được việc đo lường khối lượng của các thành phần nguyên liệu theo yêu cầu, để thức ăn sản xuất ra cung cấp đầy đủ chất dinh dưỡng cho vật nuôi, và đồng thời đảm bảo được lợi ích kinh tế cho nhà sản xuất thức ăn và người chăn nuôi.
Ví dụ: Đối với loại thức ăn T21 cho gà đẻ, thì khi trộn một mẻ khối lượng 1000kg có các thành phần nguyên liệu như sau:
+ Bột các mịn: 7kg + Ngô: 600kg + Sắn: 240 kg + Đậu tượng: 50 kg + Cải khô: 20 kg + Bột xương: 30 kg + Phụ gia, vi lượng: 53 kg.
Trong thực tế, khi cân bao giờ cũng tồn tại sai số cân và khối lượng các thành phần sẽ không hoàn toàn đúng như tính toán. Tuy nhiên, sai số khi cân cần phải đượng giới hạn trong một phạm vi cho phép. Cụ thể là:
+ Sai số khi cân khôi lượng một thành phần:>1,7% + Sai số khi cân một mẻ thức ăn là: 0,7%
Như vậy, yêu cầu đối với hệ thống cân định lượng là làm sao đảm bảo được sai số cân nhỏ hơn giới hạn cho phép. Ngoài yêu câu quan trọng trên thì hệ thống phải đảm bảo hoạt động an toàn, tin cậy, dễ dàng vận hành giám sát…
¾ Lưu đồ thuật toán điều khiển hệ thống cân định lượng.
3.3.4.2. Lập trình chương trình điều khiển cho PLC-300. Tạo một project
Khái niêm project trong Simatic không đơn thuần chỉ là chương trình ứng dụng mà rộng hơn bao gồm tất cả những gì liên quan đến việc thiết kế phần mềm ứng dụng để điều khiển, giám sát một hay nhiều tram PLC. Do đó, trong một project sẽ có:
+ bảng cấu hình phần cứng về tất cả các module của từng trạm PLC,
+ bảng tham số xác định chế độ làm việc cho từng module của mỗi trạm PLC,
+ các logic block chứa chương trình ứng dụng của từng trạm PLC, + cấu hình ghép nối và truyền thông giữa các trạm PLC,
+ các màn hình giao diện phục vụ việc giám sát toàn bộ mạng hoặc giám sát từng trạm PLC của mạng
Khai báo một Project
Để khai báo một Project, từ màn hình chíng của Step7 ta chọn File→New.
Khi đó trên màn hình sẽ xuất hiện hộp thoại như hinh sau:
Chọn tên và vị trí lưu Project rồi ấn OK.
Nơi lưu Project mới Tên của Project mới
Xây dựng cấu hình cho một trạm PLC
Sau khi khai bao xong một Project mới, trên màn hình sẽ xuất hiện Project đó nhưng ở dạng rỗng. Do đó công việc tiếp theo ta phải làm là xây dựng cấu hình cho trạm PLC đó.
Trước hêt ta khai báo cấu hình cứng cho một trạm PLC với Simatic S7-300 bằng cách chọn: Insert→Station→Simatic 300 Station
Sau khi khai báo xong một trạm, thư mục Project chuyển sang dạng không rỗng với thư mục con trong nó có tên mặc đinh là Simatic 300(1). Ta hoàn toàn có thể thay đổi tên mặc định này. Thư mục Simatic 300(1) chứa tệp thông tin về cấu hình cứng của trạm.
Tiếp theo để vào màn hình khai báo cấu hình cứng, ta kích đúp chuột tại biểu
tượng Hardware. Trong hộp hội thoại hiện ra ta khai báo thay rack và các module
có trên thanh rack đó. Muốn chọn module nào vào bảng cấu hình ta chỉ việc đánh dấu slot nơi module sẽ được đưa vào rồi nháy kép chuột tại module đó trong bảng danh mục.
Soạn thảo chương trình cho các khối logic
Sau khi khai báo xong câu hình cứng cho một tram PLC và quay trở về cửa sổ chính của Step7 ta sẽ thây trong thư mục Simatic 300(1) bây giờ có thêm các thư mục con: CPU314, S7 Program(1), Source files, Blocks.
Muốn soạn thảo cho khối nào ta chỉ việc nháy kép chuột vào biểu tượng của khối đó ở cửa sổ bên phải màn hình.
Ví dụ để soạn thảo chương trình cho khối OB1 ta nháy chuột vào biểu tượng của khối này ở cửa sổ bên phải. Trên màn hình sẽ xuất hiện cửa sổ của chếđộ soạn thảo chương trình như sau:
Để khai báo và soạn thảo chương trình cho các khối OB hoặc các khối FC, FB, DB, ta có thể tạo ra một khối mới ngay trực tiếp từ chương trình soạn thảo bằng cách kich chuột vào biểu tượng new rồi ghi tên vào khối ô tương ứng của cửa sổ hiện ra.
Các bước soạn thảo một khối logic cho chương trình ứng dụng được chia thành 3 bước chính sau:
+ Tạo các khối logic mong muốn,
+ Thiết kế local block cho các khối logic vừa tạo, + Viết chương trình cho khối được tạo.
Ngôn ngữ lập trình
* Ngôn ngữ “liệt kê lệnh”, ký hiệu là STL (Statement list)
Đây là dạng ngôn ngữ lập trình thông thường của máy tính. Một chương trình đuợc ghép bởi nhiều câu lệnh theo một thuật toán nhất định, mỗi lệnh chiếm một dòng và đều có cấu trúc chung “tên lệnh” + “toán hạng”.
Ví dụ: A "OnOff" AN "Silo_300_full" AN "V303" = "V217" = "Conveyor218" STL là ngôn ngữ mạnh nhất = "V219" trong ba loại ngôn ngữ lập trình = "Bucket_222 cho S7-300.
* Ngôn ngữ “hình thang”, ký hiệu là LAD (Ladder logic)
Đây là dạng ngôn ngữ đồ họa thích hợp với những người quen thiết kế mạch điều khiển logic.
* Ngôn ngữ “hình khối”, ký hiệu là FBD (Function block diagram)
Đây cũng là kiểu ngôn ngữđồ họa dành cho người có thói quen thiết kế mạch điều khiển số.
Một chương trình viết trên LAD hoặc FBD có thể chuyển sang dạng STL, nhưng ngược lại thì không. Trong STL có nhiều lệnh không có trong LAD hay FBD.
Kỹ thuật lập trình
* Lập trình tuyến tính
Hình 3. 22: Vòng quét chương trình
Toàn bộ chương trình điều khiển nằm trong một khối trong bộ nhớ. Loại hình cấu trúc tuyến tính này phù hợp với những bài toán tự động nhỏ, không phức tạp. Khối được chọn phải là khối OB1, là khối mà PLC luôn quét và thực hiện các lệnh trong nó thường xuyên, từ lênh đầu tiên đến lệnh cuối cùng và quay lại lệnh đầu tiên. Nó được hệ điều hành gọi theo chu kỳ lặp với khoảng thời gian không cách đều nhau mà phụ thuộc vào độ dài của chương trình. Các khối OB1 duy nhất như vậy được gọi là lập trình tuyến tính (linear programming).
Các khối OB khác không tham dự vào vòng quét mà được gọi bằng những tín hiệu báo ngắt. S7-300 có nhiều loại tín hiệu báo ngắt như tín hiệu báo ngắt khi có sự cố nguồn nuôi, tín hiệu báo ngắt khi có sự cố chập mạch ở các module mở rộng, tín hiệu báo ngắt theo chu kỳ thởi gian,… và mỗi loại tín hiệu cũng chỉ có khả năng gọi một loại khối OB nhất định. Ví dụ tín hiệu báo ngắt sự cố nguồn nuôi chỉ gọi khối OB81, tín hiệu báo ngắt truyền thông chỉ gọi khối OB87…
Mỗi khi xuất hiện một tín hiệu báo ngắt hệ thống sẽ tạm dừng công việc đang thực hiện lại, chẳng hạn như tạm dừng công việc trong khối OB1, và chuyển sang thực hiện công việc xử lý ngắt trong các khối OB tương ứng. Chỉ sau khi đã
thực hiện xong chương trình trong khối OB tương ứng đó, hệ thống mới quay trở về thực hiện tiếp tục phần chương trình còn lại trong khối OB1.
*Lập trình có cấu trúc
Chương trình được chia thành những phần nhỏ với từng nhiệm vụ riêng và các phần này nằm trong những khối chương trình khác nhau. Loại hình cấu trúc này phủ hợp với những bài toán điều khiển nhiều nhiệm vụ và phức tạp. PLC S7-300 có bốn loại khối cơ bản:
+ Loại khối OB: Khối tổ chức và quản lý chương trình điền khiển. Có nhiều loại khối OB với những chức năng khác nhau, chúng được phân biệt với nhau bằng một số nguyên đi sau nhóm ký tự OB, ví dụ như OB1, OB35, OB80…
+ Loại khối FC: Khối chương trình với những chức năng riêng giống như một chương trình con hoặc một hàm (chương trình con có biến hình thức). Một chương trình ứng dụng có thể có nhiều khối FC và các khối này được phân biệt với nhau bằng một số nguyên sau nhóm ký tự FC. Chẳng hạn như FC1, FC2…
+ Loại khối FB: Là loại khối FC đặc biệt có khả năng trao đổi một lượng dữ liệu lớn với các khối chương trình khác. Các dữ liệu này phải được tổ chức thành khối dữ liệu riêng có tên có tên gọi là Data Block. Một chương trình có thể có nhiều khối FB và các khối FB này được phân biệt với nhau bằng một số nguyên sau nhóm ký tự FB. Chẳng hạn như FB1, FB2…
+ Loại khối DB: Khối chứa các dữ liệu cần thiết để thực hiện chương trình. Các tham số của khối do người dùng tựđặt. Một chương trình có thể có nhiều khối DB và các khối DB này được phân biệt với nhau bằng một số nguyên sau nhóm ký tự DB. Chẳng hạn DB1, DB2…
Chương trình con trong các khối được liên kết với nhau bằng các lệnh gọi khối, chuyển khối. Xem những phần chương trình trong các khối như là các chương trình con thì S7-300 cho phép gọi chương trình con lồng nhau, tức là từ chương trình con này gọi chương trình con khác và từ chương trình con được gọi lại gọi tới một chương trình con thứ 3…
Hình 3. 23: Lập trình có cấu trúc