Jun 12, 2014

Trong quá trình viết Lập trình PLC cho hệ thống dù lớn hay nhỏ chúng ta đều cần sử dụng lệnh So sánh (Compare) để đưa ra các điều khiển thông minh nhất và tiện lợi nhất. Trong đó, lệnh So sánh được dùng với rất nhiều giá trị từ Byte, Integer, Double Word, Real. Đặc biệt trong PLC Seimens S7 nếu một ai không biết sử dụng hoặc dùng không tối ưu lệnh Compare thì sẽ không bao giờ trở thành người lập trình giỏi. Để hiểu rỏ hơn về lệnh Compare chúng ta cần hiểu sơ qua về các  giá trị Byte, Integer, Double Word, Real và cách chia sẻ dữ liệu của PLC. 

Khối lệnh Compare LAD, FBD
LỆNH SO SÁNH – COMPARE INSTRUCTIONS  
1. So sánh giá trị số
Comparing Numerical Values
Lệnh So sánh sử dụng so sánh giá trị giữa 02 giá trị:
IN1 = IN2          IN1 >= IN2           IN <= IN2
IN1 > IN2          IN1 < IN2             IN1<> IN2
Phép toán So Sánh Byte dùng không ký tự.
Khối lệnh Compare STL
Phép toán So Sánh Integer là có ký tự.
Phép toán So Sánh Double Word là có ký tự.
Phép toán So Sánh Real là có ký tự.
Với LAD và FBD: Khi các giá trị so sánh là đúng, lệnh Compare sẽ bật On cho mạch (LAD) hoặc cho ngỏ ra (FBD)
Với STL: Khi các giá trị so sánh là đúng, tùy vào lệnh ta đã gắn vào là Loads, And hay Or, giá trị sẽ được so sánh như trên lệnh.

Chú ý:
Các toán hạng lệnh Compare:
Ngỏ vào/ra
Loại
Toán hạng
IN1, IN2    
Byte
INT
DINT
REAL
IB, QB, VB, MB, SMB, SB, LB, AC,*VD, *LD,*AC,Constant                                       
IW, QW, VW, MW, SMW, SW, T, C, LW, AC, AIW, *VD, *LC, *AC, Constant
ID, QD, VD, MD, SMD, SD, LD, AC, HC, *VD, *LD, *AC, Constant
ID, QD, VD, MD, SMD, SD, LD, AC, HC, *VD, *LD, *AC, Constant

Các điều kiện sau đây khi sử dụng lệnh Compare sẻ làm cho PLC S7 của bạn dừng chương trình ngay lập tức:
  • Bất kỳ địa chỉ gián tiếp nào được gán bị lỗi (với tất cả lệnh Compare)
  • Số thực dược gán vào lỗi (với lệnh Compare Real instruction)
Để khắc phục tình trạng này chúng ta cần kiểm tra chắc chắc các lệnh và số thực được cài đặt trước khi sử dụng lệnh Compare.

Hướng dẫn sử dụng:
Lệnh So sánh Compare gồm có: Compare Byte (B), Compare Word (I), Compare Doubleword (D), Compare Real (R).
Tuy nhiên khi dùng lệnh Compare lại dùng chung một cấu trúc:
Compare cách khai báo và các dạng sử dụng

Jun 11, 2014

Bên cạnh các lệnh cơ bản trong lập trình PLC như: lệnh logic, các tiếp điểm đặc biệt, bộ định thời gian Timer,..
Bộ CPU của tất cả các PLC còn có một bộ cực kỳ quan trọng: Bộ đếm Counter. 
1. Bộ đếm số sườn lên Counter up (CTU):
Bộ đếm cạnh lên CTU
 Trong CTU ta dùng xung kích vào chân CU. Và nó sẽ đếm khi có xung lên vào ngõ CU. 
Khi muốn Reset ta thêm một tiếp điểm vào chân R. Nếu tác động chân R lên 1 thì bộ đếm Counter Reset các tiếp điểm Counter sẽ trở về trạng thái ban đầu (tức các tiếp điểm hở sẽ trở về hở và đóng sẽ về đóng).
Giá trị đếm của bộ đếm được gán vào chân PV.
Khí giá trị đếm vào chân CU lên bằng (hoặc cao hơn) giá trị đã gán ở chân PV. Các tiếp điểm của bộ Counter sẽ tác động. 
Toán hạng cho bộ đếm C (Cxxx): C0 ->C47, C80 -> C127. 
Ví dụ: 
Ví dụ dùng bộ đếm cạnh lên CTU
Phân tích mạch:
Trong ví dụ này ta dùng Counter C0 loại Counter CTU (loại đếm lên khi có sườn lên). Khi chân đếm CU là I0.3 có xung kích lên 1, giá trị sẽ được Counter C0 đếm lên 1. Sau đó khi I0.3 lại đếm lên 1 nữa, giá trị sẽ được Counter C0 đếm lên 1 nữa. Vậy giá trị C0 đang lưu trữ là 2. Tiếp tục cho đến khi giá trị C0 là đã đếm đủ 10. Bằng chân PV.
Thì các tiếp điểm của C0 hoặt động. Tức network 2: C0 thường hở đóng lại và cung cấp nguồn cho Q0.1. Còn ở network 3: C0 thường đóng mở ra làm mất nguồn Q0.0. 
Khi muốn Reset Counter C0. Ta kích vào chân I0.4. Khi đó các tiếp điểm của C0 tại network 2 và 3 sẽ trở về trạng thái ban đầu. Tức làm cho Q0.1 tắt nguồn và Q0.0 có nguồn.
2. Bộ đếm sườn lên xuống Counter Up Down (CTUD):
Bộ đếm cạnh lên xuống CTUD
CTUD đếm lên theo số sườn lên của chân CU và đếm xuống theo số sườn lên của chân CD.
Khi muốn Reset ta thêm một tiếp điểm vào chân R. Nếu tác động chân R lên 1 thì bộ đếm Counter Reset các tiếp điểm Counter sẽ trở về trạng thái ban đầu (tức các tiếp điểm hở sẽ trở về hở và đóng sẽ về đóng).
Giá trị đếm của bộ đếm được gán vào chân PV.
Khí giá trị đếm vào chân CU lên bằng (hoặc cao hơn) giá trị đã gán ở chân PV. Các tiếp điểm của bộ Counter sẽ tác động. 
Toán hạng cho bộ đếm CTUD (Cxxx): C48 ->C79
Ví dụ:
Ví dụ dùng bộ đếm lên xuống CTUD
Phân tích mạch:
Trong ví dụ này ta dùng Counter C48 loại Counter CTUD (loại đếm lên khi có sườn lên ở CU và xuống khi có sườn lên ở CD). Khi chân đếm CU là I0.3 có xung kích lên 1, giá trị sẽ được Counter C48 đếm lên 1. Sau đó khi I0.3 lại đếm lên 1 nữa, giá trị sẽ được Counter C48 đếm lên 1 nữa. Vậy giá trị C0 đang lưu trữ là 2. Nhưng khi chân I0.4 có điện lên 1 thì CD sẽ tiếp nhận và hạ mức lưu trữ trong C48 xuống 1. Vậy giá trị lưu trữ của C48 chỉ còn 1.Tiếp tục cho đến khi giá trị C0 là đã đếm đủ 10. Bằng chân PV.
Thì các tiếp điểm của C0 hoạt động. Tức ngỏ thường đóng của C48 sẽ mở và ngỏ thường mở của C48 sẽ đóng lại.
Khi muốn Reset Counter C48. Ta kích vào chân I0.5. Khi đó các tiếp điểm của C48 sẽ trở về trạng thái ban đầu.
Thế mạnh nhất của PLC Seimens nói riêng và tất cả các PLC của tất cả các hãng. Bộ định thời gian - Timer và Bộ đếm - Counter và Các lệnh so sánh - Compare là cực kỳ quan trọng trong lập trình PLC. Khi đã sử dụng được các lệnh và hiểu cấu trúc cơ bản của PLC Seimens. Chúng ta có thể áp dụng một cách dễ dàng vào các dòng PLC của các hãng khác như: Allen-Bradley, Mitsubishi Electric, General Electric, Omron, Honeywell....  
I. Bộ định thời gian Timer: 
Timer có địa chỉ từ T0 đến T255, được dùng thường xuyên trong các chương trình điều khiển, lập trình PLC. Và có 3 loại cơ bản sau:
- Đóng mạch chậm - TON (On-delay timer).
- Đóng mạch chậm có nhớ - TONR (Retentive On-delay timer).
- Mở mạch chậm - TOF (Off-delay timer). 
Khi sử dụng một Timer chúng ta cần quan tâm một số vấn đề sau đây:
- Loại Timer: on, off, onr.
- Thời gian delay của Timer: 1ms, 10ms, 100ms.
- Và các thông số khi đưa Timer ra sử dụng, cài đặt.
1. Timer đóng chậm TON. 
Ta dùng các Timer on khi muốn trì hoản một khoảng thời gian rồi sau đó mới tác động. 
Timer on
Bộ Timer On sẽ hoạt động khi ngõ vào In được tác động lên 1. Sau một thời gian (mình cài vào ở chân PT). TON sẽ tác động và khi đó ra sẽ dùng các ngõ logic của TON để điều khiển các nhánh.
Muốn dừng Timer ta dùng lệnh reset (R) hoặc ngắt nguồn vào IN của Timer.
Có 129 Timer on/off trong PLC S7 200. Như bảng sau:

Bảng chi tiết Timer on hoặc off của S7 200
Chú ý: Vì Timer sử dụng địa chỉ cho TON và TOF chung với nhau nên ta nên cẩn thận khi đặt tên cho các timer khi dùng. Ví dụ như nếu đã đặt tên cho Ton là T37 thì nếu muốn dùng Tof phải đặt khác T37. 
Ví dụ: Ta dùng Timer để trì hoản thời gian đóng và mở động cơ.
Dùng Ton - T37 đóng ngắt động cơ.
Trong ví trên ta thấy dùng công tắc I0.2 đưa vào ngõ IN của Timer. Nên khi tác động vào công tắc I0.2 thì timer T37 tác động. Ở đây ta dùng timer TON T37 tra bảng trên - T37 là timer 100ms, ngõ PT của Timer ta dùng cài +100. Vậy đổi ra ta sẽ được 10s sau timer T37 sẽ tác động. Và khi đó sẽ đóng Q0.3 (network 2) và mở Q0.4 (network 3).
Nếu muốn Timer hết tác dụng ta tắt công tắc I0.2.
Trong PLC Seimens S7 ngoài các tiếp điểm logic vào và ra (in, out), còn có các tiếp điểm đặc biệt. Nó là các tiếp điểm nằm trong bộ nhớ máy chúng ta thường gọi nó là các tiếp điểm đặc biệt.
1. Tiếp điểm luôn đóng SM0.0:
Là tiếp điểm luôn đóng dùng để cung cấp nguồn liên tục
Lệnh tiếp điểm luôn đóng SM0.





Với mạch trên Q0.0 luôn có điện vì SM0.0 là tiếp điểm luôn đóng.
2. Tiếp điểm phát một xung đầu tiên SM0.1:
Là tiếp điểm phát một xung khi PLC bật on và chuyển chế độ từ Stop sang Run
Lệnh phát một xung đầu tiên SM0.1
Khi PLC được chuyển từ chế độ Stop sang Run ta thấy Q0.1 được set lên on. 
Ví dụ:
Mạch sử dụng tiếp điểm phát xung lên đầu tiên SM0.1
Với mạch trên khi bật run PLC ta sẽ thấy SM0.1 tác động lên on và làm cho Q0.1 set. Khi nào tác động I0.2 thì Q0.1 mới reset.
3. Tiếp điểm tạo xung liên tục SM0.4, chu kỳ 60 giây:
Lệnh tiếp điểm tạo xung liên tục SM0.
Tiếp điểm này tạo xung liên tục trong chu kỳ 60 giây. Trong 30 giây đầu ở mức thấp, 30 giây sau ở mức cao.


4. Tiếp điểm tạo xung liên tục SM0.5, chu kỳ 1 giây:
Lệnh tiếp điểm tạo xung liên tục SM0.5
Tiếp điểm này tạo xung liên tục trong chu kỳ 1 giây. Trong 0.5 giây đầu ở mức thấp, 0.5 giây sau ở mức cao.
Bài tập:
1. Điều khiển đèn sáng tắt với chu kỳ tự động liên tục là 1 giây.

2. Nhấn nút On lần đầu - đèn A sáng, thả ra B sáng. nhấn nút On lần 2 - đèn C sáng, thả ra D sáng.
Nhấn nút Off cả 4 đèn cùng tắt.
Khi vừa mới làm quen ngôn ngữ lập trình PLC và bắt tay lập trình những chương trình cơ bản PLC của Seimens PLC S7 200/300. Thật sự, chúng ta chỉ cần nắm và thấu hiểu rỏ bản chất của các lệnh cơ bản cũng đã đủ dùng trong các dự án thực tế nhỏ hoặc mô phỏng trong lúc học. Sau đây là một số lệnh cơ bản mà chúng ta cần phải nắm rỏ khi viết lập trình PLC. Với ngôn ngữ lập trình Ladder logic (lập trình hình thang, thích hợp lập trình trong điện công nghiệp).
A. CÁC LỆNH TIẾP ĐIỂM
I. Bit logic ( các lệnh tiếp điểm)
1. Thường hở: Thường dùng tiếp điểm này để biểu thị hở mạch. Khi có dòng điện DC 24v đi vào tiếp điểm thì nó sẻ đóng lại.
Tiếp điểm thường hở
Mạch này sẻ đóng khi có dòng điện đi vào I0.1 và làm cho I0.1 đóng lại
Hoặc dùng nối tiếp, song song:
Mạch dùng nối tiếp và song song tiếp điểm thường hở

Mạch này chỉ đóng lại khi có dòng điện đi vào cả 3 tiếp điểm thường hở là I0.1/.2/.3 cùng đóng lại
2. Thường đóng: Thường dùng tiếp điểm này để biểu thị mạch đóng. Khi có dòng điện đi vào tiếp điểm thường đóng này mạch sẽ mở.
Tiếp điểm thường đóng


Mạch này sẽ mở ra khi có dòng điện đi vào I0.1.
Hoặc dùng nối tiếp song song như trên tiếp điểm thường đóng.
3. Lệnh Out: dùng để phát tín hiệu để điều khiển ngỏ ra hoặc các trung gian.
Lệnh Out và ví dụ

Với mạch trên ta điều khiển ngỏ Out Q0.1 bằng 2 ngỏ vào thường hở là I0.1 và I0.2. Khi đó nếu ngỏ thường hở I0.1, I0.2 đóng lại thì Q0.1 sẻ được đóng lại. Tới khi I0.1 và I0.2 không còn tác động thì Q0.1 sẻ mở lại trở ra. Do đó ta cần viết thêm mạch để duy trì cho mạch như sau:
Mạch điều khiển ngỏ ra có dùng tự duy trì

  1. 4. Lệnh set và Reset
Lệnh set (đưa giá trị lên 1 khi có điện)

Lưu ý: Hai lệnh luôn đi cùng nhau song song
Lệnh Reset (đưa giá trị về 0 khi có điện)

5. Tiếp điểm phát hiện cạnh lên: 
Tiếp điểm lên P
6. Tiếp điểm phát hiện cạnh xuống
Tiếp điểm xuống N
Ghi chú: Hai lệnh phát hiện cạnh lên và phát hiện cạnh xuống được dùng khi chúng ta muốn ngỏ ra tác động chính xác.
II. Bài tập.
1. Điều khiên động cơ máy bơm hút nước dưới bể bằng một nút ON (chạy), OFF (dừng).
2.  Dùng một tủ điện gồm các nút điều khiển và các đèn báo hiệu: On (chạy – đèn xan), Off (dừng – đèn đỏ). Nếu có sự cố đèn báo vàng và chuông kêu