12 – 48VAC 5VDC (TTL) 0VAC 24VDC
BÀI 2: CÁC PHÉP TỐN NHỊ PHÂN CỦA PLC MÃ BÀI: MĐ21-
MÃ BÀI: MĐ21-02
Mục tiêu:
+ Trình bày được các lệnh bit logic, Timer, counter (bộ định thời, bộ đếm).
+ Ứng dụng linh hoạt các chức năng của RS, Timer, counter trong các bài tốn thực tế: Lập trình, kết nối, chạy thử...
+ Rèn luyện đức tính tích cực, chủ động và sáng tạo.
Nội dung chính:
1. Nhĩm Lệnh Bit logic 1.1. Lệnh NO, NC, NOT, Coil
- Tiếp điểm thường mở - Normally Open Contact (Address) Symbol
Thơng số Kiểu dữ liệu Vùng nhớ Mơ tả
<address> Bool I,Q,M,L,D,T,C Kiểm tra bit Tiếp điểm thường mở sẽ đĩng nếu <address>=1
- Tiếp điểm thường đĩng - Normally Closed Contact (Address) Symbol
Thơng số Kiểu dữ liệu Vùng nhớ Mơ tả
<address> Bool I,Q,M,L,D,T,C Kiểm tra bit Tiếp điểm thường đĩng sẽ mở nếu <address>=1
- Lệnh NOT Symbol
Lệnh khơng cĩ tốn hạng, kết quả thu được bằng đảo của kết quả trước - Ngõ ra ( Coil ): Sao chép nội dung của bit đầu tiên trong ngăn xếp vào bit được chỉ định trong lệnh. Nội dung của ngăn xếp khơng thay đổi. Symbol
Thơng số Kiểu dữ liệu Vùng nhớ Mơ tả
<address> Bool I,Q,M,L,D Địa chỉ bit được set
Cuộn dây đầu ra được kích thích khi được cấp dịng điều khiển Khi giá trị logic của bit tại <address> bằng 1 thì RLO cĩ giá trị 1. Khi giá trị logic của bit tại <address> bằng 0 thì RLO cĩ giá trị bằng 0. - Xác định kết quả (Midline Output)
Symbol:
Gán KQ tại vị trí mà lệnh được chèn
Vd: M0.0 lưu kết quả sau 2 phép tính qua I0.0 và I0.1
1.2. Lệnh S, R, SR, RS
- Lệnh gán cĩ điều kiện giá trị 1(Set Coil): Symbol:
Thơng số Kiểu dữ liệu Vùng nhớ Mơ tả
<address> Bool I,Q,M,L,D Địa chỉ bit được set Nếu RLO = 1 thì địa chỉ cụ thể được đặt ở mức 1 và duy trì ở trạng thái này cho đến khi nĩ bị xĩa về 0 bằng lệnh reset.
- Lệnh gán cĩ điều kiện giá trị 0 (Reset Coil
Thơng số Kiểu dữ liệu Vùng nhớ Mơ tả
<address> Bool I,Q,M,L,D,T,C Địa chỉ bit được Reset
Nếu RLO = 1 thì địa chỉ cụ thể được đặt ở mức 0 và duy trì ở trạng thái này cho đến khi nĩ đặt lên 1 bằng lệnh set.
- Lệnh SR(Set-Reset Flip Flop)
Thơng số Kiểu dữ liệu Vùng nhớ Mơ tả
<address> Bool I,Q,M,L,D Địa chỉ bit set hoặc reset
S Bool I,Q,M,L,D Lệnh cho phép set
R Bool I,Q,M,L,D Lệnh cho phép reset
Q Bool I,Q,M,L,D Trạng thái tín hiệu
addreess
Lệnh SR được set nếu đầu vào S=1, bị reset nếu đầu vào R=0. Ngược lại nếu đầu vào R=1, S=0 thì FF sẽ bị Reset. Nếu cả 2 đầu vào bằng 1 đầu ra bị reset.
I0.0 I0.1 M0.0 Q0.0
0 0 Giữ trạng thái Giữ trạng thái
0 1 0 0
1 0 1 1
1 1 0 0
- Lệnh RS(Reset - Set Flip Flop)
Thơng số Kiểu dữ liệu Vùng nhớ Mơ tả
<address> Bool I,Q,M,L,D Địa chỉ bit set hoặc reset
S Bool I,Q,M,L,D Lệnh cho phép set
R Bool I,Q,M,L,D Lệnh cho phép reset
Q Bool I,Q,M,L,D Trạng thái tín hiệu
addreess
Lệnh SR được set nếu đầu vào S=1, bị reset nếu đầu vào R=0. Ngược lại nếu đầu vào R=1, S=0 thì FF sẽ bị Reset. Nếu cả 2 đầu vào bằng 1 đầu ra sẽ được set.
VD: Lệnh RS:
I0.0 I0.1 M0.0 Q0.0
0 0 Giữ trạng thái Giữ trạng thái
0 1 1 1
1 0 0 0
1 1 1 1
- Lệnh phát hiện sườn lên (Positive RLO Edge Detection- kiểm tra khi bit RLO chuyển từ 0 lên 1 thì cho RLO=1)
Symbol
Thơng số Kiểu dữ liệu Vùng nhớ Mơ tả
<address> Bool I,Q,M,L,D Địa chỉ bit lưu trữ trạng thái tín hiệu RLO trước đĩ
Khi RLO thay đổi từ 0 lên 1 kết quả của lệnh kiểm tra FB ở trạng thái 1 trong một vịng quét. Để hệ thống phát hiện được sự thay đổi cạnh lên thì RLO phải được lưu trữ trong 1 bit nhớ FB hoặc bit dữ liệu <address>. Nếu giá trị RLO trước đĩ lưu trữ trong <address > cĩ giá trị 0 và RLO ở vịng quét hiện tại cĩ giá trị 1 thì kết quả RLO của lệnh cĩ giá trị 1 trong vịng quét.
VD: M0.0 lưu giá trị KQ ở vịng quét trước
Khi I0.0 chuyển trạng thái từ 0 sang 1 và M0.0 =0 thì Q0.0 =1
- Lệnh phát hiện sườn xuống (Negative RLO Edge Detection- kiểm tra khi bit RLO chuyển từ1 xuống 0 thì cho RLO=1)
Symbol
Thơng số Kiểu dữ liệu Vùng nhớ Mơ tả
<address> Bool I,Q,M,L,D Địa chỉ bit lưu trữ trạng thái tín hiệu RLO trước đĩ
Khi RLO thay đổi từ 1 xuống 0 kết quả của lệnh kiểm tra FB ở trạng thái trong 1 vịng quét. Để hệ thống phát hiện được sự thay đổi cạnh lên thì RLO phải được lưu trữ trong một bit nhớ FB hoặc bit dữ liệu <address>.
Nếu giá trị RLO trước đĩ lưu trữ trong <address > cĩ giá trị 0 và RLO ở vịng quét hiện tại cĩ giá trị 1 thì kết quả RLO của lệnh cĩ giá trị 1 trong vịng quét.
VD: M0.0 lưu giá trị KQ ở vịng quét trước
Khi I0.0 chuyển trạng thái từ 1 xuống 0 và M0.0=1 thì Q0.0=1
Như vậy trong cả 2 phát hiện sườn xuống và phát hiện sườn lên thì Q0.0 chỉ ON trong 1 chu kì tại thời điểm thoả điều kiện.
Lệnh Save : Lưu giá trị RLO ( KQ) vào Bit cờ BR (Binary Result Bit)
Lệnh NEG: Khi I0.0=1 và I0.1 chuyển trạng thái từ 1 xuống 0 thì Q0.0 ON trong 1 chu kì Hay nĩi cách Khác Q0.0 chỉ ON tại thời điểm thoả điều kiện bài tốn.
Lệnh POS: : Khi I0.0=1 và I0.1 chuyển trạng thái từ 0 lên 1 thì Q0.0 ON trong 1
chu kì. Hay nĩi cách Khác Q0.0 chỉ ON tại thời điểm thoả điều kiện bài tốn.
2. Nhĩm lệnh timer Khái niệm:
U(t) là tín hiệu logic đầu vào, Y(t) là tín hiệu logic đầu ra
- PV là thời gian trễ đặt trước
- T-Word là giá trị đếm thời gian hiện tại, T-bit là giá trị bit Thời gian trễ T được khai báo bằng giá trị 16 bits bao gồm: - Độ phân giải: 10ms, 100ms, 1s và 10s
- Một số nguyên BCD từ 0 ... 999 (PV: Preset Value)
Thời gian trễ được tính: T = Độ phân giải x PV - Nguyên lý hoạt động
- Cĩ 5 loại Timer khác nhau: SP, SE, SD, SS, SF
- Timer bắt đầu tạo thời gian trễ kể từ thời điểm cĩ sườn dương tín hiệu U(t) (thời điểm Timer được kích)
- Tại thời điểm kích, giá trị PV được nạp vào T-Word - Nội dung T_Word giảm dần tương ứng với độ phân giải
- Khi nội dung T-Word đạt giá trị 0 thì Timer đạt được thời gian trễ T và báo thay đổi trạng thái tín hiệu Y(t)
- Thay đổi thế nào Y(t) phụ thuộc vào loại Timer
- Timer đang làm việc cĩ thể được đưa về trạng thái ban đầu khi cĩ sườn dương tín hiệu Reset
Truy nhập Timer
- Timer được ký hiệu là Tx, x là số hiệu và phụ thuộc vào loại CPU (x trong khoảng 0...255)
- Ký hiệu Tx đồng thời là địa chỉ hình thức thanh ghi T-Word và tín hiệu logic đầu ra T-bit
- T-Word và T-bit phân biệt nhau nhờ câu lệnh sử dụng tốn hạng Tx
- Khi xử lý dữ liệu là kiểu Word, Tx được hiểu là địa chỉ hình thức thanh ghi T-Word, ví dụ lệnh so sánh, move...
- Khi xử lý dữ liệu là kiểu bit, Tx được hiểu là địa chỉ hình thức T-bit, ví dụ lệnh AND, OR...
2.1. Timer S_ODT:
Thơng số Loại dữ liệu Vùng nhớ Mơ tả
Tno (T0) Timer T Xác định rơle thời gian số mấy, số rơle thời gian phụ thuộc vào loại CPU
Chân S Bool I,Q,L,M,D Ngõ vào của rơle Chân R Bool I,Q,L,M,D Ngõ vào của chân reset
TV S5time I,Q,L,M,D Ngõ vào để đặt giá trị thời gian cho rơle.
Chân BI Word I,Q,L,M,D Giữ giá trị của timer, giá trị này cĩ dạng số nguyên (integer) Chân
BCD
Word I,Q,L,M,D Giữ giá trị của timer, giá trị này cĩ dạng số nguyên BCD
Nguyên lý hoạt động
- Khi cĩ sườn dương tín hiệu S, Timer được thiết lập và thời gian được tính. - Kết thúc thời gian đặt thì tín hiệu đầu ra là “1”
- Khi tín hiệu S về “0” hoặc cĩ sườn dương tín hiệu R thì thì tín hiệu đầu ra là “0”
2.2. Timer S_ODTS
Nguyên lý hoạt động
- Khi cĩ sườn dương tín hiệu S, Timer được thiết lập và thời gian được tính. - Kết thúc thời gian đặt thì tín hiệu đầu ra là “1”
2.3. Timer S_OFFDT
- Khi cĩ sườn dương tín hiệu S, Timer được thiết lập và tín hiệuđầu ra là “1” - Khi cĩ sườn âm tín hiệu S, thời gian được tính
- Kết thúc thời gian đặt, tín hiệu đầu ra là “0”
2.4. Timer S_PEXT
Nguyên lý hoạt động
- Khi cĩ sườn dương tín hiệu S, Timer được thiết lập và thời gian được tính, đồng thời tín hiệu đầu ra là “1”
- Kết thúc thời gian đặt thì tín hiệu đầu ra là “0”
- Khi cĩ sườn dương tín hiệu R thì tín hiệu đầu ra là “0”
2.5. Timer S_PULSE:
- Khi cĩ sườn dương ở đầu vào S, Timer được thiết lập và thời gian được tính, đồng thời tín hiệu đầu ra là “1”
- Kết thúc thời gian đặt, tín hiệu đầu ra là “0”
- Chưa kết thúc thời gian đặt mà tín hiệu S về “0” hoặc cĩ sườn dương tín hiệu R thì tín hiệu đầu ra là “0”
2.6. Timer SD, SS, SP, SE, SF
Bài tập áp dụng: Hệ thống băng tải gồm 3 động cơ M1, M2, M3 hoạt động theo trình tự sau:
ấn (Start) động cơ M1 chạy, sau 5s động cơ M2 chạy, sau 5s tiếp theo động cơ M3 chạy.
ấn (Stop) động cơ M1 dừng, sau 5s động cơ M2 dừng, sau 5s tiếp theo động cơ M3 dừng.
Ba động co được bảo vệ quá tải bằng rơle nhiệt. Khi một trong ba động co bị quá tải thì 3 động cơ dừng.
Khi ấn nút dừng khẩn cấp ( Emergency) thì ba động cơ dừngi2Yêu cầu :
- Lập bảng thiết bị vào ra - Vẽ sơ đồ kết nối phần cứng - Vẽ giản đồ thời gian
Viết chương trình điều khiển 3. Nhĩm lệnh Counter
Khái niệm:
Trong cơng nghiệp, bộ đếm rất cần cho các quá trình đếm khác nhau như: đếm số chai, đếm xe hơi, đếm số chi tiết, …
Một word 16bit (counter word) được lưu trữ trong vùng bộ nhớ dữ liệu hệ thống của PLC dùng cho mỗi counter. Số đếm được chứa trong vùng nhớ dữ liệu hệ thống dưới dạng nhị phân và cĩ giá trị trong khoảng 0 đến 999.
Các phát biểu dùng để lập trình cho bộ đếm cĩ các chức năng như sau: Đếm lên (CU = Counting Up): Tăng counter lên 1. Chức năng này chỉ được thực hiện nếu cĩ một tín hiệu dương ( từ “0” chuyển xang “1” ) xảy ra ở ngõ vào CU. Một khi số đếm đạt đến giới hạn trên là 999 thì nĩ khơng được tăng nữa.
Đếm xuống (CD = Counting Down): Giảm counter đi 1. Chức năng này chỉ được thực hiện nếu cĩ sự thay đổi tín hiệu dương ( từ “0” xang “1” ) ở ngõ vào CD.
Một khi số đếm đạt đến giới hạn dưới 0 thì thì nĩ khơng cịn giảm được nữa. Đặt counter ( S = Setting the counter): Counter được đặt với giá trị được lập trình ở ngõ vào PV khi cĩ cạnh lên ( cĩ sự thay đổi từ mưc “0” lên mức “1” ) ở ngõ vào S này. Chỉ cĩ sự thay đổi mới từ “0” xang “1” ở ngõ vào S này mới đặt giá trị cho counter một lần nữa.
Đặt số đếm cho Counter ( PV = Presetting Value ): Số đếm PV là một word 16 bit ở dạng BCD. Các tốn hạng sau cĩ thể được sử dụng ở PV là: Word IW, QW, MW,… Hằng số: C#0,…,999
Xĩa Counter ( R = Resetting the counter ): Counter được đặt về 0 (bị reset) nếu ở ngõ vào R cĩ sự thay đổi tín hiệu từ mức “0” lên mức “1” . Nếu tín hiệu ở ngõ vào R là “0” thì khơng cĩ gì ảnh hưởng đến bộ đếm.
Quét số của số đếm: (CV, CV_BCD ): số đếm hiện hành cĩ thể được nạp vào thanh ghi tích lũy ACCU như một số nhị phân (CV = Counter Value) hay số thập phân ( CV_BCD ). Từ đĩ cĩ thể chuyển các số đếm đến các vùng tốn hạng khác.
Quét nhị phân trạng thái tín hiệu của Counter (Q): ngõ ra Q của counter cĩ thể được quét để lấy tín hiệu của nĩ. Nếu Q = “0” thì counter ở zero, nếu Q = “1” thì số đếm ở counter lớn hơn zero.
Biểu đồ chức năng:
Bảng thơng số
Thơng số Loại dữ liệu
Vùng nhớ Mơ tả
Cno(C10) Counter C Xác định bộ đếm thứ mấy
Chân CU Bool I,Q,M,L,D Ngõ vào đếm. Nếu chân này cĩ mức logic chuyển từ 0 lên 1 thì bộ đếm sẽ tăng một giá trị. Khi bộ đế tăng đến giá trị 999 thì khơng tăng nữa.
Chân S Bool I,Q,M,L,D Cài đặt giá trị cho bộ đếm. Nếu chân này chuyể từ mức 0 lên mức 1 thì bộ đếm sẽ chuyển đến giá trị đặt ở chân PV vào ngõ ra CV và CV_BCD. Chân PV Word I,Q,M,L,D
và hằng số
Giá trị đặt cho bộ đếm.
Chân R Bool I,Q,M,L,D Dùng để xố bộ đếm về trạng thái ban đầu.
Chân CV Word I,Q,M,L,D Ngõ ra để lưu giữ giá trị đếmtu71c thời của bộ đếm. Dữ liệu được lưu giữ ở cdạng cơ số 16
Chân CV_BCD
Word I,Q,M,L,D Ngõ ra để lưu giữ giá trị đếmtu71c thời của bộ đếm. Dữ liệu được lưu giữ ở dạng cơ số 16
Chân Q Bool I,Q,M,L,D Ngõ ra hiển thị trạng thái bộ đếm. Nguyên lý hoạt động:
Khi tín hiệu I0.2 chuyển từ "0" lên "1" bộ đếm được đặt giá trị là 55. Giá trị đầu ra Q4.0 =1 .
Bộ đếm sẽ thực hiên đếm tiến tại các sườn lên của tín hiệu tại chân CU khi tín hiệu I0.0 chuyển giá trị từ "0" lên "1"
Giá trị của bộ đếm sẽ trở về 0 khi cĩ tín hiệu tai sườn lên của chân R (I0.3)
Bộ đếm sẽ chỉ đếm đến giá trị <= 999. 3.2. Counter S_CD
-Nguyên lý hoạt động:
Khi tín hiệu I0.2 chuyển từ "0" lên "1" bộ đếm được đặt giá trị là 55. Giá trị đầu ra Q4.0 =1 .
Bộ đếm sẽ thực hiên đếm lùi tại các sườn lên của tín hiệu tại chân CD khi tín hiệu I0.0 chuyển giá trị từ "0" lên"1"
Giá trị của bộ đếm sẽ trở về 0 khi cĩ tín hiệu tai sườn lên của chân R (I0.3).
Bộ đếm sẽ chỉ đếm đến giá trị >= 0. 3.3. Counter S_CUD
- Nguyên lý hoạt động:
Khi tín hiệu I0.2 chuyển từ 0 lên 1bộ đếm được đặt giá trị là 55. Giá trị đầu ra Q4.0 =1 .
Bộ đếm sẽ thực hiên đếm tiến tại các sườn lên của tín hiệu tại chân CU khi tín hiệu I0.0 chuyển giá trị từ "0" lên "1"
Bộ đếm sẽ đếm lùi tại các sườn lên của tín hiệu tại chân I0.1 khi tín hiệu chuyển từ "0" lên "1"
Giá trị của bộ đếm sẽ trở về 0 khi cĩ tín hiệu tai sườn lên của chân R ( I0.3) Bài tập áp dụng 1:
Một bầy gia súc 300 con, được phân ra 3 chuồng khác nhau, mỗi chuồng 100 con. Gia súc sẽ đi theo một đường chung sau đĩ sẽ phân ra mỗi chuồng 100 con.
Nhấn Start Mở cổng 1 cho gia súc vào (100 con) đĩng cổng 1, mở cổng 2 (100 con) đĩng cổng 2, mở cổng 3 (100 con) đĩng cổng 3.
Hãy giúp nơng trại:
- Thiết kế phần cứng cho hệ thống điều khiển - Viết chương trình điều khiển (dùng PLC S7-300) Bài tập áp dụng 2 : Mơ hình điều khiển xe ra khỏi bãi.
Hệ thống điều khiển xe ra vào bãi xe. Hệ thống điều khiển bãi đậu xe chứa tối đa là 12 chiếc mơ tả hình vẽ. Mỗi lần xe vào, PLC tự động tăng thêm 1 bởi cảm biến phát hiện xe S1. Bất kỳ một chiếc xe nào đi ra khỏi bãi, PLC sẽ tự động giảm đi 1 bởi cảm biến phát hiện S2. Khi 12 chiếc xe được đăng ký, bảng hiệu đầy xe sẽ được sáng lên thơng báo đến các xe khơng được vào nữa.
4.1. Lệnh nhảy JPM Nguyên lý của lệnh
Khi đầu vào của lệnh ở mức logic thấp (logic 0) chương trình sẽ làm việc theo trình tự vịng quét. Khi đầu vào của lệnh ở mức logic cao ( logic 1) lệnh