Giáo trình PLC S7-300: Lý thuyết và ứng dụng - Chương 1: Giới thiệu
Để thực hiện được một chương trình điều khiển, tất nhiên PLC phải có
tính năng như một máy tính, nghĩa là phải có một bộ vi xử lý (CPU), một hệ
điều hành, bộ nhớ để lưu chương trình điều khiển, dữ liệu và tất nhiên phải có
các cổng vào/ra để giao tiếp được với đối tượng điều khiển và để trao đổi
Bộ nhớ chương trình
Timer Bit cờ
Bộ đếm Bộ xử lý trung tâm + Hệ điều hành
Quản lý kết nốiCổng ngắt và đếm tốc độ cao
Cổng vào/ra onboard Bus của PLC
Hình1.1. Cấu trúc bên trong của một PLC
Bộ đệm vào/ra CPUthông tin với môi trường xung quanh. Bên cạnh đó nhằm phục bài toán điều
khiển số, PLC còn phải có thêm một số khối chức năng đặc biệt khác như bộ
đếm (Counter), bộ định thời (Timer) và những khối hàm chuyên dùng.
Ưu điểm của bộ điều khiển lập trình được so với điều khiển nối dây:
? Tính năng mở rộng: khả năng mở rộng xử lý bằng cách thay đổi chương
trình lập trình một cách dễ dàng.
? Độ tin cậy cao.
? Cách kết nối các thiết bị điều khiển đơn giản.
? Hình dáng PLC gọn nhẹ.
? Giá thành và chi phí lắp đặt thấp.
? Phù hợp với môi trươ ng công nghiệp.
ợc thực hiện lâu, có vòng quét được thực hiện nhanh tuỳ Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M Trang 11 thuộc vào số lệnh trong chương trình được thực hiện, vào khối dữ liệu được truyền thông trong vòng quét đó. Như vậy giữa việc đọc dữ liệu từ đối tượng để xử lý, tính toán và việc gửi tín hiệu điều khiển tới đối tượng có một khoảng thời gian trễ đúng bằng thời gian vòng quét. Nói cách khác, thời gian vòng quét quyết định tính thời gian thực của chương trình điều khiển trong PLC. Thời gian vòng quét càng ngắn, tính thời gian thực của chương trình càng cao. Nếu sử dụng các khối chương trình đặc biệt có chế độ ngắt, ví dụ như khối OB40, OB80, Chương trình của các khối đó sẽ được thực hiện trong vòng quét khi xuất hiện tín hiệu báo ngắt cùng chủng loại. Các khối chương trình này có thể được thực hiện tại mọi điểm trong vòng quét chứ không bị gò ép là phải ở trong giai đoạn thực hiện chương trình. Chẳng hạn nếu một tín hiệu báo ngắt xuất hiện khi PLC đang ở giai đoạn truyền thông và kiểm tra nội bộ, PLC sẽ tạm dừng công việc truyền thông, kiểm tra, để thực hiện khối chương trình tương ứng với khối tín hiệu báo ngắt đó. Với hình thức xử lý tín hiệu ngắt như vậy, thời gian vòng quét sẽ càng lớn khi càng có nhiều tín hiệu ngắt xuất hiện trong vòng quét. Do đó, để nâng cao tính thời gian thực cho chương trình điều khiển tuyệt đối không nên viết chương trình xử lý ngắt quá dài hoặc quá lạm dụng việc sử dụng chế độ ngắt trong chương trình điều khiển. Tại thời điểm thực hiện lệnh vào/ra, thông thường lệnh không làm việc trực tiếp với cổng vào/ra mà chỉ thông qua bộ đểm ảo của cổng trong vùng nhớ tham số. Việc truyền thông giữa bộ đệm ảo với ngoại vi trong các giai đoạn 1 và 3 do hệ điều hành CPU quản lý. Ở một số module CPU, khi gặp lệnh vào/ra ngay lập tức, hệ thống sẽ cho dừng mọi công việc khác, ngay cả chương trình xử lý ngắt, để thực hiện lệnh trực tiếp với cổng vào/ra. Hình 1.16. Vòng quét CPU Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M Trang 12 1.4. Cấu trúc chương trình. Chương trình cho S7-300 được lưu trong bộ nhớ của PLC ở vùng dành riêng cho chương trình. Ta có thể được lập trình với hai dạng cấu trúc khác nhau: 1.4.1. Lập trình tuyến tính Toàn bộ chương trình điều khiển nằm trong một khối trong bộ nhớ. Loại lập trình cấu trúc chỉ thích hợp cho những bài toán tự động nhỏ, không phức tạp. Khối được chọn là khối OB1, là khối mà PLC luôn 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: 1.4.2 Lập trình 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 biệt và các phần này nằm trong những khối chương trình khác nhau. Loại lập trình có cấu trúc 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. Các khối cơ bản : Khối OB (Organization Block): khối tổ chức và quản lý chương trình điều 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 số nguyên theo sau nhóm ký tự OB, ví dụ như OB1, OB35, OB80 Khối FC (Program Block): khối chương trình với những chức năng riêng biệt giống như một chương trình con hay một hàm (chương trình co 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 FC này được phân biệt với nhau bằng số nguyên theo sau nhóm ký tự FC, chẳng hạn như FC1, FC2, Lệnh 1 Lệnh 2 Lệnh n OB1 Hinh 1.17. Vòng quét PLC Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M Trang 13 Khối FB (Function Block): là khối FC đặt 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 gọi là Data Block. Một chương trình ứng dụng 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 số nguyên theo sau nhóm ký tự FB. Chẳng hạn như FB1, FB2, Khối DB (Data Block): khối 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 sử dụng tự đặt. Một chương trình ứng dụng 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 số nguyên theo sau nhóm ký tự DB. Chẳng hạn như DB1, DB2, Chương trình trong các khối được liên kết với nhau bằng các lệnh gọi khối và chuyển khối. Các chương trình con được phép gọi lồng nhau, tức từ một chương trình con này gọi một chương trình con khác và từ chương trình con được gọi lại gọi một chương trình con thứ 3. 1.4.3 Các khối OB đặc biệt. 1) OB10 (Tinme of Day Interrupt ): Chương trình trong khối OB10 sẽ được thực hiện khi giá trị thời gian của đồng hồ thời gian thực nằm trong một khoảng thời gian đã được quy định. Việc quy định khoảng thời gian hay số lần gọi OB10 được thực hiện nhờ chương trình hệ thống SFC28 hay trong bảng tham số của module CPU nhờ phần mềm STEP 7. 2) OB20 (Time Relay Interrupt): Chương trình trong khối OB20 sẽ được thực hiện sau một khoảng thời gian trễ đặt trước kể từ khi gọi chương trình hệ thống SFC32 để đặt thời gian trễ. 3) OB35 (Cyclic Interrupt): Chương trình trong khối OB35 sẽ được thực hiện cách đều nhau một khoảng thời gian cố định. Mặc định, khoảng thời gian này là 100ms, nhưng ta có thể thay đổi nhờ STEP 7. OB1 Hình 1.18. Lập trình có cấu trúc FC7 FB2 FC1 . . . FB9 FC3 FB5 . . . Hệ Điều Hành . . . . . . . . . Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M Trang 14 4) OB40 (Hardware Interrupt): Chương trình trong khối OB40 sẽ được thực hiện khi xuất hiện một tín hiệu báo ngắt từ ngoại vi đưa vào CPU thông qua các cổng onboard đặc biệt, hoặc thông qua các module SM, CP, FM. 5) OB80 (Cycle Time Fault ): Chương trình trong khối OB80 sẽ được thực hiện khi thời gian vòng quét (scan time) vượt quá khoảng thời gian cực đại đã qui định hoặc khi có một tín hiệu ngắt gọi một khối OB nào đó mà khối OB này chưa kết thúc ở lần gọi trước. Thời gian quét mặc định là 150ms. 6) OB81 (Power Supply Fault): Chương trình trong khối OB81 sẽ được thực hiện khi thấy có xuất hiện lỗi về bộ nguồn nuôi. 7) OB82 (Diagnostic Interrupt): Chương trình trong khối OB82 sẽ được thực hiện có sự cố từ các module mở rộng vào/ra. Các module này phải là các module có khả năng tự kiểm tra mình (diagnostic cabilities). 8) OB87 (Communication Fault): Chương trình trong khối OB87 sẽ được thực hiện có xuất hiện lỗi trong truyền thông. 9) OB100 (Start Up Information): Chương trình trong khối OB100 sẽ được thực hiện một lần khi CPU chuyển từ trạng thái STOP sang RUN. 10) OB101 (Cold Start Up Information-chỉ với S7-400): Chương trình trong khối OB101 sẽ được thực hiện một lần khi công tắt nguồn chuyển từ trạng thái OFF sang ON. 11) OB121 (Synchronous Error): Chương trình trong khối OB121 sẽ được thực hiện khi CPU phát hiện thấy lỗi logic trong chương trình đổi sai kiểu dữ liệu hay lỗi truy nhập khối DB, FC, FB không có trong bộ nhớ. 12) OB122 (Synchronous Error): Chương trình trong khối OB122 sẽ được thực hiện khi có lỗi truy nhập module trong chương trình. 1.5 Ngôn ngữ lập trình. PLC S7-300 có ba ngôn ngữ lập trình cơ bản sau: Ngôn ngữ lập trình liệt kê lệnh 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 được hoàn chỉnh bởi sự ghép nối của nhiều câu lệnh theo một thuật toán nhất định, mỗi lệnh chiếm một hàng và có cấu trúc chung “tên lệnh” + “toán hạng”. Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M Trang 15 Ngôn ngữ lập trình LAD (Ladder Logic). Đây là dạng ngôn ngữ đồ hoạ, thích hợp với những người lập trình quen với việc thiết kế mạch điều khiển logic. Ngôn ngữ lập trình FBD (Function Block Diagram). Đây cũng là dạng ngôn ngữ đồ hoạ, thích hợp cho những người quen thiết kế mạch điều khiển số. Ngôn ngữ lập trình Graph. Đây cũng là dạng ngôn ngữ đồ hoạ, thích hợp cho những hệ thống tuần tự. Ngôn ngữ lập trình SCL. Đây cũng là dạng ngôn ngữ cấp cao, thích hợp cho những người biết viết ngôn ngữ cấp cao. Trong PLC có nhiều ngôn ngữ lập trình nhằm phục vụ cho các đối tượng sử dụng khác nhau. Tuy nhiên một chương trình viết trên ngôn ngữ LAD hay FBD có thể chuyển sang dạng STL, nhưng ngược lại thì không. Và trong STL có nhiều lệnh mà LAD hoặc FBD không có. Đây cũng là thế mạnh của ngôn ngữ STL: Ví dụ: Ladder Diagram LAD Stamentl list STL Function Block Diagram FBD Hình 1.19. STL là ngôn ngữ mạnh nhất STL LAD FBD Truong DH SPKT TP. HCM Thu vien DH SPKT TP. HCM - Ban qu yen © T ruong D H Su ph am Ky thuat TP. HC M
File đính kèm:
- giao_trinh_plc_s7_300_ly_thuyet_va_ung_dung_chuong_1_gioi_th.pdf