CHƯƠNG 2 TÌM HIỂU VỀ PLC S7-300 VÀ PHẦN MỀM WINCCTÌM HIỂU VỀ PLC S7-300 VÀ PHẦN MỀM WINCC
2.7. Ngôn ngữ lập trình PLC
Các loại PLC nói chung có nhiều loại ngôn ngữ lập trình nhằm phục vụ các đối tượng sử dụng khác nhau. PLC S7-300 có 3 ngôn ngữ lập trình cơ bản đó là:
Ngôn ngữ STL (Statement List): Ngôn ngữ “liệt kê lệnh”, 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 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 hàng và có cấu trúc chung “ tên lệnh + toán hạng ”.
Ngôn ngữ FBD (Function Block Diagram): Ngôn ngữ “hình khối” là ngôn ngữ đồ hoạ cho những người quen thiết kế mạch điều khiển số.
Ngôn ngữ LAD (Ladder diagram): Đây là ngôn ngữ lập trình “hình thang”, dạng ngôn ngữ đồ hoạ thích hợp cho nhữmg người quen thiết kế mạch điều khiển logic.
Hình 2.8. Các ngôn ngữ lập trình.
Trong đề tài này em chọn làm về ngôn ngữ dạng LAD.
2.7.1. Ngôn ngữ lập trình LAD
LAD là một ngôn ngữ lập trình bằng đồ hoạ. Những thành phần cơ bản dùng trong LAD tương ứng với các thành phần của bảng điều khiển kiểu rơle. Trong chương
- Tiếp điểm là biểu tượng (Symbol) mô tả các tiếp điểm kiểu role. Các tiếp điểm đó có thể là thường đóng hoặc thường mở.
- Cuộn dây (Coil) là biểu tượng mô tả rơ le được mắc theo chiều dòng điện cung cấp cho role.
- Hộp (Box) là biểu tượng mô tả hàm khác nhau, nó làm việc khi có dòng điện chạy đến hộp. Những dạng hàm thường được biểu diễn bằng hộp là các bộ thời gian, bộ đếm và các hàm toán học. Cuộn dây và các hộp phải được mắc đúng chiều dòng điện.
- Mạng LAD là đường nối các phần tử thành 1 mạch hoàn thiện đi từ đường nguồn bên trái là dây nóng, đường nguồn bên phải là dây trung hoà hay là đường trở về của nguồn cung cấp. Dòng điện chạy từ trái qua phải các tiếp điểm đóng đến các cuộn dây hoặc các hộp trở về bên phải nguồn.
2.7.2. Các lệnh cơ bản dạng LAD của PLC S7-300 a) Nhóm lệnh logic
Lệnh gán: ----( ):
Lệnh And: Lệnh And Not:
Lệnh Or: Lệnh Or Not:
Lệnh đảo giá trị RLO:
- Q4.0 là 0 nếu 1 trong những điều kiện sau xảy ra: I0.0 = 1 hoặc I0.1 = 1 và I0.2 = 1.
Lệnh gán 1 vào ô nhớ:
- Q4.0 là 1 nếu 1 trong những điều kiện sau xảy ra I0.0 = 1 và I0.1 = 1 hoặc I0.2 = 0.
Lệnh gán 0 vào ô nhớ:
b) Lệnh Timer
Bộ thời gian timer là bộ tạo thời gian trễ T mong muốn giữa tín hiệu logic ngõ vào và tín hiệu logic ngõ ra. S7-300 CPU314 có 128 timer (từ T0-T127) bao gồm 5 loại timer khác nhau. Tất cả 5 loại timer này đều bắt đầu tạo thời gian trễ tín hiệu kể từ thời điểm kích của tín hiệu đầu vào.
* Timer đóng chậm SD ( S_ODT)
Tại thời điểm sườn lên của tín hiệu vào SET bộ thời gian được thiết lập và thời gian sẽ được tính. Kết thúc thời gian đặt tín hiệu đầu ra sẽ có giá trị là 1. Khi S=0 thì đầu ra cũng lập tức trở về 0, nghĩa là tín hiệu đầu ra sẽ không được duy trì. Khi R=1 Timer được RESET .
* Timer đóng chậm có nhớ SS (S_ODTS)
Tại thời điểm sườn lên của tín hiệu vào Set bộ thời gian được thiết lập và thời gian sẽ được tính. Kết thúc thời gian đặt tín hiệu đầu ra sẽ có giá trị là 1, giá trị này
vẫn được duy trì ngay cả khi tín hiệu vào kích S từ 1 xuống 0 khi Timer đang chạy.
Khi có tín hiệu RESET thời gian lập tức trở về 0 đầu ra cũng bằng 0.
* Timer mở chậm SA (S_OFFDT)
Tại thời điểm sườn lên của tín hiệu vào Set bộ thời gian được tính, đồng thời giá trị ở đầu ra là 1. Khi thời gian kết thúc giá trị ở đầu ra trở về 0. Khi timer đang chạy mà S chuyển từ 1 xuống 0, timer sẽ dừng và đầu ra trở về 0. Khi có tín hiệu RESET (R) thời gian tính lập tức trở về 0 và giá trị đầu ra cũng có giá trị 0.
* Timer giữ độ rộng xung: SE (S_PEXT)
Tại thời điểm sườn lên của tín hiệu vào SET cuối cùng bộ thời gian được thiết lập và thời gian sẽ được tính đồng thời giá trị đầu ra là 1. Kết thúc thời gian đặt thì đầu ra bằng 0. Khi S chuyển từ 1 xuống, timer vẫn chạy và đầu ra vẫn là 1. Timer sẽ tự khởi động lại khi tín hiệu vào S chuyển từ 0 lên 1 khi timer đang chạy. khi có tín hiệu RESET (R) thời gian tính lập tức trở về 0 và tín hiệu đầu ra cũng có giá trị là 0.
Cách khai báo thời gian:
Cách 1: S5T#aH_bM_cS_dMS; a giờ, b phút, c giây, d mili giây. Và tối đa là 2H_46M_30S.
Ví dụ: S5T#1H_30M_30S – thời gian trễ là 30 phút, 30 giây Cách 2: W#16#wxyz;
w: độ phân giải.
xyz: thời gian dạng BCD gọi là PV.
T = độ phân giải x PV.
c) Lệnh Counter
Bộ Counter là bộ đếm số xung của đầu vào. S7-300 có tối đa 256 counter, tùy từng loại CPU (từ C0-C255) bao gồm 3 loại counter khác nhau. Tất cả 3 loại counter này cũng bắt đầu đếm khi tín hiệu cho phép đếm được kích hoạt.
* Bộ đếm lên S_CU ( UP COUNTER)
Khi tín hiệu S chuyển từ 0 lên 1 bộ đếm được đặt giá trị PV. Giá trị đầu ra Q=1 (Q=1 nếu giá trị counter khác 0). Bộ đếm sẽ thực hiện đếm tiến (từ giá trị PV trở lên cho đến khi đạt 999) tại các sườn lên của tín hiệu ở chân CU. Giá trị bộ đếm trở về 0 và Q=0 khi có tín hiệu tại sườn lên của chân R.
* Bộ đếm xuống S_CD ( DOWND COUNTER)
Khi tín hiệu S chuyển từ 0 lên 1 bộ đếm được đặt giá trị tại PV. Giá trị đầu ra
xuống cho đến khi bằng 0) tại các tín hiệu sườn lên của chân CD. Giá trị bộ đếm trở về 0 và Q=0 khi có tín hiệu tại sườn lên của chân R.
* Bộ đếm lên xuống S_CUD (UP DOWND COUNTER) CU: là tín hiệu đếm lên.
CD: là tín hiệu đếm xuống.
Khi tín hiệu S chuyển từ 0 lên 1 bộ đếm được đặt giá trị PV. Giá trị đầu ra Q=1 (nếu Q=1 nếu giá trị Counter khác 0). Bộ đếm sẽ thực hiện đếm tiến (từ giá trị PV trở lên cho đến khi đạt 999) tại các sườn lên của tín hiệu ở chân CU và sẽ thực hiện đếm lùi tại các sườn lên của tín hiêu ở chân CD (cho đến khi bằng 0). Giá trị bộ đếm trở về 0 và Q=0 khi có tín hiệu tại sườn lên của chân R.
d) Nhóm lệnh so sánh và chuyển quyền điều khiển - So sánh số nguyên 16 bit:
- So sánh số nguyên 32 bit:
- So sánh số thực 32 bit: