Bai giang S7 300 rất cơ bản, dễ hiểu
BÀI 3
SỬ DỤNG BỘ TIMER VÀ COUNTER
1. Sử dụng bộ TIMER.
1.1. Nguyên tắc hoạt động.
Bộ thời gian (Timer) là bộ tạo thời gian trễ mong muốn giữa tín hiệu logic đầu
vào u(t) và tín hiệu logic đầu ra y(t).
u(t)
PV
Timer
y(t)
CV
T-bit
Thời gian trễ
đặt trước
S7-300 có 5 loại Timer khác nhau. Thời gian trễ mong muốn được khai báo
với Timer bằng một giá trị 16 bits bao gồm hai thành phần:
- Độ phân dải với đơn vị ms. Timer của S7-300 có 4 loại độ phân dải khác nhau
là 10ms, 100ms, 1s và 10s.
- Một số nguyên (BCD) trong khoảng 0 999 được gọi là PV (Preset Value-giá
trị đặt trước).
Vậy thời gian trễ mong muốn sẽ là:
= Độ phân dải x PV
1514131211109876543210
Không sử dụng
Độ phân dải
0010ms01100ms10
1s1110s
Giá trị PV dưới dạng mã BCD
0PV999
Ngay tại thời điểm kích Timer, giá trị PV được chuyển vào thanh ghi 16 bits
của Timer T-Word (gọi là thanh ghi CV). Timer sẽ ghi nhớ khoảng thời gian trôi
qua kể từ khi được kích bằng cách giảm dần một cách tương ứng nội dung thanh
ghi CV. Nếu nội dung thanh ghi trở về 0 thì Timer đã đạt được giá trị mong muốn
và điều này sẽ được báo ra ngoài bằng cách đổi trạng thái tín hiệu y(t). Việc
thông báo ra ngoài bằng cách thay đổi trạng thái tín hiệu đầu ra y(t) như thế nào
còn phụ thuộc vào loại Timer nào được sử dụng.
Bên cạnh sườn lên của tín hiệu đầu vào u(t), Timer còn có thể được kích bằng
sườn lên của tín hiệu kích chủ động có tên là tín hiệu enable nếu như tại thời điểm
có sườn lên của tín hiệu enable và tín hiệu đầu vào u(t) có giá trị logic 1.
Nguyên lý làm việc của Timer
Tín hiệu đầu vào u(t)
Tín hiệu enable
Giá trị PV
Nội dung thanh ghi CV
Thời điểm Timer được kích
Từng loại Timer được đánh số từ 0 255. Tùy thuộc từng loại CPU). Timer ký
hiệu là Tx với x là số hiệu của Timer (0 x 255). Ký hiệu Tx đồng thời cũng là
địa chỉ hình thức của thanh ghi CV (T-Word) và đầu ra (T_bit) của Timer đó. Tuy
có cùng địa chỉ hình thức nhưng T-Word và T-bit vẫn được phân biệt với nhau nhờ
toán hạng Tx. Khi dùng lệnh làm việc làm việc với từ, T-bit được hiểu là địa chỉ
của T-Word, ngược lại khi sử dụng lệnh làm việc với tiếp điểm, Tx được hiểu là
địa chỉ của T-bit.
Một Timer có thể được đưa về trạng thái chờ khởi động ban đầu bằng lệnh
Reset. Khi đó, T-Word và T-bit đồng thời được xóa về 0, tức là thanh ghi đếm tức
thời CV được đặt về 0 và tín hiệu đầu ra cũng có trạng thái logic bằng 0.
1.2. Các loại Timer của S7-300.
1.2.1. Tổng quan chung
S7-300 có 255 Timer, được chia thành các loại khác nhau :
- S_PULSE: Tạo xung không có nhớ
- S_PEXT: Tạo xung có nhớ
- S_SDT: Trễ theo sườn lên không có nhớ
- S_ODTS: Trễ theo sườn lên có nhớ
- S_OFFDT: Trễ theo sườn xuống.
1.2.2. Khai báo sử dụng Timer
Khai báo sử dụng một Timer bao gồm các bước :
- Khai báo tín hiệu enable nếu muốn sử dụng tín hiệu chủ động kích
- Khai báo tín hiệu đầu vào u(t)
- Khai báo thời gian trễ mong muốn
- Khai báo loại Timer được sử dụng (SD, SS, SP, SE, SF)
- Khai báo tín hiệu xóa Timer nếu muốn sử dụng chế độ reset chủ động
Trong tất cả các bước thì bước 2, 3, 4 là bắt buộc.
1.2.2.1. Timer S_PULSE .
Kí hiệu
Txxx
S_PULSE
S
Q
TV
BI
R
BCD
Thông số
Txxx
S
TV
R
BI
Loại Data
TIMER
BOOL
S5TIME
BOOL
WORD
Vùng nhớ
T
I, Q, M, L, D
I, Q, M, L, D
I, Q, M, L, D
I, Q, M, L, D
Miêu tả
Tín hiệu vào
Thời gian đặt
Reset
Thời gian còn lại Dạng I
BCD
Q
WORD
BOOL
I, Q, M, L, D
I, Q, M, L, D
Thời gian còn lại Dạng BCD
Trạng thái Timer
Giản đồ thời gian:
S
R
CV
Q
Timer S_PULSE bắt đầu đếm giảm từ giá trị đặt TV về 0 khi đầu vào cho phép
hoạt động của Timer có giá trị chuyển từ 01.
Trạng thái đầu ra Q bật lên “1” trong quá trình Timer đếm. Tuy nhiên, nếu tín
hiệu vào S chuyển từ 10 trước khi Timer đếm về 0 thì trạng thái của bit đầu ra Q
chuyển ngay xuống 0.
Bộ Timer được reset (R) khi tín hiệu đầu vào R chuyển từ 01. Khi đó,
T-Word (thanh ghi CV) và T-bit cũng đồng thời được đưa về 0. Nếu tín hiệu xóa
về 0, Timer sẽ chờ được kích lai.
Thanh ghi trạng thái:
BR
-
CC1
-
CC0
-
OV
-
Ví dụ:
Mô phỏng bằng PLCSIM:
OS
-
OR
x
STA
x
RLO
x
FC
1
Nếu tín hiệu đầu vào I124.0 chuyển từ 01, Timer sẽ bắt đầu đếm lùi. Bộ đếm
sẽ tiếp tục đếm hết 20s trong khi tín hiệu I124.0 giữ là 1. Nếu trước khi thời gian
đặt của Timer được đếm về 0 mà tín hiệu I124.0 chuyển từ 1 xuống 0 thì Timer sẽ
dừng lại.
Đầu ra Q124.0 là 1 khi Timer đang đếm và bằng 0 khi có tín hiệu reset hay hết
thời gian đặt.
1.2.2.2. Timer S_PEXT.
Txxx
Kí hiệu
S_PEXT
S
Q
TV
BI
R
BCD
Thông số
Txxx
S
TV
R
BI
Loại Data
TIMER
BOOL
S5TIME
BOOL
WORD
Vùng nhớ
T
I, Q, M, L, D
I, Q, M, L, D
I, Q, M, L, D
I, Q, M, L, D
Miêu tả
Tín hiệu vào
Thời gian đặt
Reset
Thời gian còn lại Dạng I
BCD
Q
WORD
BOOL
I, Q, M, L, D
I, Q, M, L, D
Thời gian còn lại Dạng BCD
Trạng thái Timer
Giản đồ thời gian:
S
R
CV
Q
Thời gian giữ trễ được bắt đầu tính từ khi xuất hiện sườn lên của tín hiệu vào(S),
tức là ở ngay thời điểm đó giá trị PV được chuyển vào thanh ghi T-Word(CV).
Trong khoảng thời gian trễ, tức là khi T-Word 0, T-bit có giá trị bằng 1. Ngoài
khoảng thời gian trễ T-bit có giá trị bằng 0. Nếu chưa hết thời gian trễ mà tín hiệu
đầu vào về 0 thì thời gian trễ vẫn được tính tiếp tục, tức là T-bit và T-Word không
về 0 theo tín hiệu đầu vào.
Thanh ghi trạng thái:
BR
-
Ví dụ:
CC1
-
CC0
-
OV
-
OS
-
OR
x
STA
x
RLO
x
FC
1
Nếu tín hiệu vào I124.0 chuyển từ 0 lên 1, Timer T5 sẽ được khởi động. Timer sẽ
tiếp tục chạy hết thời gian đặt (PV) mà không phụ thuộc vào tín hiệu đầu vào S.
Tín hiệu đầu ra Q124.0 bằng 1 từ khi có đầu vào I 124.0 đến hết thời gian đặt PV.
Timer sẽ được reset lại khi tín hiệu vào I 124.1 bằng 1.
Mô phỏng bằng PLCSIM:
1.2.2.3. Timer S_ODT.
Kí hiệu
Txxx
S_ODT
S
Q
TV
BI
R
BCD
Thông số
Txxx
S
TV
R
BI
Loại Data
TIMER
BOOL
S5TIME
BOOL
WORD
Vùng nhớ
T
I, Q, M, L, D
I, Q, M, L, D
I, Q, M, L, D
I, Q, M, L, D
Tín hiệu vào
Thời gian đặt
Reset
Thời gian còn lại Dạng I
BCD
Q
WORD
BOOL
I, Q, M, L, D
I, Q, M, L, D
Thời gian còn lại Dạng BCD
Trạng thái Timer
Giản đồ thời gian:
Miêu tả
S
R
CV
Q
Thời gian giữ trễ được bắt đầu khi có sườn lên của tín hiệu đầu vào(S), tức là ở
ngay thời điểm đó giá trị PV được chuyển vào thanh ghi T-Word(CV). Trong đó,
khoảng thời gian trễ T-bit có giá trị bằng 0. Khi hết thời gian trễ T-bit có giá trị
bằng 1. Như vậy, T-bit có giá trị bằng 1 khi T-Word bằng 0.
Khoảng thời gian trễ chính là khoảng thời gian giữa thời điểm xuất hiện sườn lên
của tín hiệu đầu vào và sườn lên của T-bit.
Khi tín hiệu vào bằng 0, T-bit và T-Word cùng nhận giá trị 0. Khi có tín hiệu
reset ở đầu vào R tín hiệu ra Q(T-Word) trở về 0.
Thanh ghi trạng thái:
BR
-
CC1
-
CC0
-
OV
-
OS
-
OR
x
STA
x
RLO
x
Ví dụ:
Nếu tín hiệu đầu vào I 124.0 chuyển trạng thái từ 0 lên 1, Timer T30 sẽ được khởi
động. Nếu như thời gian trễ kết thúc và tín hiệu đầu vào I 124.0 vẫn là 1 thì tín hiệu
đầu ra Q124.0 sẽ đươc bật lên 1. Nếu tín hiệu đầu vào I 124.0 chuyển trạng thái từ
FC
1
1 xuống 0, bộ Timer dừng lại và đầu ra Q 124.0 sẽ bằng 0. Nếu tín hiệu đầu vào R
chuyển trạng thái từ 1 lên 0, Timer sẽ được reset dù thời gian trễ còn hay không.
Mô phỏng bằng PLCSIM:
1.2.2.4. Timer S_ODTS.
Txxx
Kí hiệu
S_ODTS
S
Q
TV
BI
R
BCD
Thông số
Txxx
S
TV
R
BI
Loại Data
TIMER
BOOL
S5TIME
BOOL
WORD
Vùng nhớ
T
I, Q, M, L, D
I, Q, M, L, D
I, Q, M, L, D
I, Q, M, L, D
Miêu tả
Tín hiệu vào
Thời gian đặt
Reset
Thời gian còn lại Dạng I
BCD
Q
WORD
BOOL
I, Q, M, L, D
I, Q, M, L, D
Thời gian còn lại Dạng BCD
Trạng thái Timer
Giản đồ thời gian:
S
R
CV
Q
Thời gian giữ trễ được bắt đầu khi có sườn lên của tín hiệu đầu vào(S), tức là ở
ngay thời điểm đó giá trị PV được chuyển vào thanh ghi T-Word(CV). Khi hết thời
gian trễ, tức là khi T-Word =0, T-bit có giá trị băng 1.
Khoảng thời gian trễ chính là khoảng thời gian giữa thời điểm xuất hiện sườn lên
của tín hiệu đầu vào và sườn lên của T-bit.
Với bộ Timer có nhớ thời gian trễ vẫn được tính cho dù lúc đó tín hiệu đầu vào
đã về 0.
Khi tín hiệu vào bằng 0, T-bit và T-Word cùng nhận giá trị 0. Khi có tín hiệu reset
ở đầu vào R tín hiệu ra Q(T-Word) trở về 0.
Thanh ghi trạng thái:
BR
-
CC1
-
CC0
-
OV
-
OS
-
OR
x
STA
x
RLO
x
FC
1
Ví dụ:
Nếu tín hiệu đầu vào I 124.0 chuyển trạng thái từ 0 lên 1, Timer T30 sẽ được khởi
động. Timer sẽ chạy mà không quan tâm đến tín hiệu đầu vào I 124.0. Nếu tín hiệu
đầu vào I 124.0 chuyển trạng thái từ 0 lên 1 trước khi hết thời gian trễ, bộ Timer sẽ
khởi động lại. Đầu ra Q 124.0 sẽ bằng 1 khi thời gian trễ kết thúc.. Nếu tín hiệu đầu
vào R chuyển trạng thái từ 1 lên 0, Timer sẽ được reset dù thời gian trễ còn hay
không.
Mô phỏng bằng PLCSIM:
Txxx
1.2.2.5. Timer S_OFFDT
Kí hiệu
S_OFFDT
S
Q
TV
BI
R
BCD
Thông số
Txxx
S
TV
R
BI
Loại Data
TIMER
BOOL
S5TIME
BOOL
WORD
Vùng nhớ
T
I, Q, M, L, D
I, Q, M, L, D
I, Q, M, L, D
I, Q, M, L, D
Miêu tả
Tín hiệu vào
Thời gian đặt
Reset
Thời gian còn lại Dạng I
BCD
Q
WORD
BOOL
I, Q, M, L, D
I, Q, M, L, D
Thời gian còn lại Dạng BCD
Trạng thái Timer
Giản đồ thời gian:
S
R
CV
Q
Thời gian giữ trễ được bắt đầu khi có sườn xuống của tín hiệu đầu vào(S), tức là
ở ngay thời điểm đó giá trị PV được chuyển vào thanh ghi T-Word(CV).
Trong khoảng thời gian giữa sườn lên của tín hiệu vào hoặc T-Word khác 0, thì
T-bit có giá bằng 1. Ngoài khoảng đó T-bit có giá trị bằng 0.
Khi tín hiệu vào bằng 0, T-bit và T-Word cùng nhận giá trị 0. Khi có tín hiệu
reset ở đầu vào R, tín hiệu ra Q(T-Word) trở về 0.
Thanh ghi trạng thái:
BR
-
CC1
-
CC0
-
OV
-
OS
-
OR
x
STA
x
RLO
x
Ví dụ:
Nếu tín hiệu đầu vào I 124.0 chuyển trạng thái từ 1 xuống 0, Timer sẽ được khởi
động. Đầu ra Q có giá trị bằng 0 khi đầu vào I 124.0 bằng 1 hoặc khi bộ Timer
đang đếm.
Nếu tín hiệu đầu vào I 124.1 chuyển từ 0 lên 1 trong khi bộ Timer chưa hết thời
gian trễ, Timer sẽ bị reset.
FC
1
Mô phỏng bằng PLCSIM:
1.2.3. Bài tập ứng dụng bộ timer.
Điều khiển động cơ chạy, dừng theo chế độ sao- tam giác :
Yêu cầu bài toán :
Bấm nút Start đóng động cơ chạy.
Khi chạy có khởi động sao tam giác
Bấm nút Stop dừng động cơ.
Ký hiệu:
Start : I0.0
Stop : I0.1
K1 : Q0.0
K2 : Q0.1
K3 : Q0.2
Phân tích bài toán
Khi nhấn Start động cơ chạy theo theo chế độ sao
Khi hoạt động cơ ở chế sao thì đóng Contactor K1, K2.
Khởi tạo timer T0, tạo trễ trong khoảng thời gian 5s
Khi hoạt động cơ ở chế tam giác thì đóng Contactor K1, K3.
Chương trình main:
Bài tập về nhà :
1. Tạo xung vuông như hình vẽ:
5ms
10ms
2. Bài toán đèn giao thông ngã tư :
Giản đồ thời gian được cho như sau (bạn đọc hãy tự phân tích để có giản đồ này)
Timer
Blue(A)
Yellow(A)
Red(A)
Red(B)
Blue(B)
Yellow(B)
2. Sử dụng bộ COUNTER.
2.1. Giới thiệu về Counter.
2.1.1. Nguyên tắc làm việc.
Counter là bộ đếm thực hiện chức năng đếm sườn (cạnh) xung của tín hiệu đầu
vào. S7-300 có tối đa 256 counter (Phụ thuộc vào từng loại CPU)
Ký hiệu: Cx, Trong đó x là số nguyên từ 0->255.
Tín hiệu đếm tiến
CU
C-Bit
Báo trạng thái
C-Word
C-Word
Số sườn xung đếm được ghi vào thanh ghi 2 byte ( Word ) của bộ đếm gọi là
thanh ghi C_Word ( CV). Bộ đếm khai báo trạng thái của C_Work ra ngoài qua chân
C_Bit của nó :
Nếu CV # 0 thì C_bit =1. Ngược lại CV=0 thì C_bit = 0
Giá trị đặt trước PV ( Present Value ) của bộ đếm chỉ được truyền vào C_Word
tại thời điểm xuất hiện sườn lên của tín hiệu đặt ( Set ) S.
Bộ đếm có thể được xóa bằng tín hiệu Reset. Khi bộ đếm được xóa thì cả
C_Word và C_bit đều có giá trị = 0
2.1.2. Phân loại.
Bộ đếm lên : Counter Up ( S_CU)
Bộ đếm lùi : Counter Down (S_CD)
Bộ đếm tiến lùi :Counter UpDown ( S_CUD )
- Xem thêm -