Khi đầu vào S có tác động mà thời gian tồn tại của đầu vào nhỏ hơn giá trị đặt thì bộ thời gian ngừng đếm, bit của bộ đếm bằng 0 đầu ra Q không có tín kiệu Khi đầu vào S có tác động mà
Trang 1CÁC BỘ THỜI GIAN TRONG PLC S7 -300
• Khái quát chung
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)
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 giải với đơn vị ms
- Một số nguyên (BCD) trong khoảng 0 – 999 được gọi là PV (Preset Value)
Như vậy, thời gian τ mong muốn: τ = Độ phân giải*PV
• Độ phân giải của bộ thời gian
Bao gồm 4 độ phân giải như sau:
+ 0.01s thời gian từ 10ms đến 9s_990ms
+ 0.1s thời gian từ 100ms đến 1m_39s_900ms
+ 1s thời gian từ 1s đến 16m_39s
+ 10s thời gian từ 10s đến 2h_46m_30s
Trang 21 Bộ timer xung S_PULSE (SP) (tạo xung không có nhớ)
1.1 Cấu tạo và kí hiệu
1.1.1 Kí hiệu
1.1.2 Cấu tạo
???: mã hiệu bộ đếm PLC S7 – 300 gồm 256 bộ từ 0 – 255S_PULSE: tên bộ thời gian
Trang 3+ Chân S: tác động đầu vào, kiểu dữ liệu khai báo (BOOL) + Chân TV: giá trị đặt cho bộ thời gian, kiểu dữ liệu khai báo (S5Time hoặc S5T).
+ Chân R: reset bộ thời gian, kiểu dữ liệu khai báo
(BOOL).
+ Chân Q: tác động đầu ra, kiểu dữ liệu khai báo (BOOL) + Chân BI: chứa giá trị thời gian theo kiểu số nguyên
Integer, kiểu dữ liệu khai báo (WORD).
+ Chân BCD: chứa giá trị thời gian theo kiểu mã BCD,
kiểu dữ liệu khai báo (WORD).
Trang 5Ví dụ:
Giản đồ thời gian của timer S_PULSE:
Trang 62 Bộ thời gian S_PEXT (SE) (tạo xung có nhớ)
2.1 Cấu tạo và kí hiệu
2.1.1 Kí hiệu
2.1.2 Cấu tạo
???: mã hiệu bộ đếm PLC S7 – 300 gồm 256 bộ từ 0 – 255
S_PEXT: tên bộ thời gian
- Chân S: tác động đầu vào, kiểu dữ liệu khai báo (BOOL)
- Chân TV: giá trị đặt cho bộ thời gian, kiểu dữ liệu khai báo (S5Time hoặc S5T)
- Chân R: reset bộ thời gian, kiểu dữ liệu khai báo (BOOL)
Trang 7- Chân Q: tác động đầu ra, kiểu dữ liệu khai báo (BOOL).
- Chân BI: chứa giá trị thời gian theo kiểu số nguyên Integer, kiểu dữ liệu khai báo (WORD).
- Chân BCD: chứa giá trị thời gian theo kiểu mã BCD, kiểu dữ liệu khai báo (WORD).
Khí có tín hiệu ở chân R thì giá trị hiện thời cả bộ đếm bằng 0, đầu ra Q mất tín hiệu
Trang 8Giản đồ xung
Trang 93 Bộ thời gian trễ mở không nhớ (S_ODT) (SD)
3.1 Cấu tạo và kí hiệu
3.1.1 Kí hiệu
3.1.2 Cấu tạo
???: mã hiệu bộ đếm PLC S7 – 300 gồm 256 bộ từ 0 – 255
S_ODT: tên bộ thời gian
Chân S: tác động đầu vào, kiểu dữ liệu khai báo (BOOL)
Chân TV: giá trị đặt cho bộ thời gian, kiểu dữ liệu khai báo (S5Time hoặc S5T)
Chân R: reset bộ thời gian, kiểu dữ liệu khai báo (BOOL)
Trang 10- Chân Q: tác động đầu ra, kiểu dữ liệu khai báo (BOOL).
- Chân BI: chứa giá trị thời gian theo kiểu số nguyên Integer, kiểu dữ liệu khai báo (WORD).
- Chân BCD: chứa giá trị thời gian theo kiểu mã BCD, kiểu dữ liệu khai báo (WORD)
3.2 Nguyên lí hoạt động.
- Khi đầu vào S có tác động bộ thời gian bắt đầu đếm từ giá trị đặt trở về 0 Khi giá trị hiện thời của bộ đếm bằng giá trị đặt thì bit của bộ đếm được set lên 1, đầu ra Q có tín hiệu
Giá trị hiện thời của bộ đếm được chứa trong thanh ghi 16 bit T_WORD, được chuyển thành số nguyên ở đầu ra BI, chuyển thành mã thập phân ở đầu ra BCD
Khi đầu vào S có tác động mà thời gian tồn tại của đầu vào nhỏ hơn giá trị đặt thì bộ thời gian ngừng đếm, bit của bộ đếm bằng 0 đầu ra Q không có tín kiệu
Khi đầu vào S có tác động mà thời gian tồn tại của đầu vào lớn hơn hoặc bằng giá trị đặt thì bộ thời gian sẽ đếm từ giá trị đặt trở về 0
Khí gặp tín hiệu ở chân R thì giá trị hiện thời cả bộ đếm bằng 0, đầu ra Q
Trang 11Giản đồ xung
Trang 124 Bộ thời gian trễ mở có nhớ S_ODTS (SS)
4.1 Cấu tạo và kí hiệu
4.1.1 Kí hiệu
4.1.2 Cấu tạo
???: mã hiệu bộ đếm PLC S7 – 300 gồm 256 bộ từ 0 – 255
S_ODTS: tên bộ thời gian
Chân S: tác động đầu vào, kiểu dữ liệu khai báo (BOOL)
Chân TV: giá trị đặt cho bộ thời gian, kiểu dữ liệu khai báo (S5Time hoặc S5T)
Chân R: reset bộ thời gian, kiểu dữ liệu khai báo (BOOL)
Trang 13- Chân Q: tác động đầu ra, kiểu dữ liệu khai báo (BOOL).
- Chân BI: chứa giá trị thời gian theo kiểu số nguyên Integer, kiểu dữ liệu khai báo (WORD).
- Chân BCD: chứa giá trị thời gian theo kiểu mã BCD, kiểu dữ liệu khai báo (WORD).
4.2 Nguyên lí hoạt động.
Khi đầu vào S có tác động bộ thời gian bắt đầu đếm từ giá trị đặt trở về 0.Khi giá trị hiện thời của bộ đếm bằng giá trị đặt thì bit của bộ đếm được set lên 1, đầu ra Q có tín hiệu
Giá trị hiện thời của bộ đếm được chứa trong thanh ghi 16 bit T_WORD, được chuyển thành số nguyên ở đầu ra BI, chuyển thành mã thập phân ở đầu ra BCD
Khí gặp tín hiệu ở chân R thì giá trị hiện thời cả bộ đếm bằng 0, đầu ra Q mất tín hiệu
Trang 14Giản đồ xung
Trang 155 Bộ thời gian trễ theo sườn xuống S_OFFDT(SF)
5.1 Cấu tạo và kí hiệu
5.1.1 Kí hiệu
5.1.2 Cấu tạo
???: mã hiệu bộ đếm PLC S7 – 300 gồm 256 bộ từ 0 – 255
S_OFFDT: tên bộ thời gian
Chân S: tác động đầu vào, kiểu dữ liệu khai báo (BOOL)
Chân TV: giá trị đặt cho bộ thời gian, kiểu dữ liệu khai báo (S5Time hoặc S5T)
Chân R: reset bộ thời gian, kiểu dữ liệu khai báo (BOOL)
Trang 16- Chân Q: tác động đầu ra, kiểu dữ liệu khai báo (BOOL).
- Chân BI: chứa giá trị thời gian theo kiểu số nguyên Integer, kiểu dữ liệu khai báo (WORD)
- Chân BCD: chứa giá trị thời gian theo kiểu mã BCD, kiểu dữ liệu khai báo (WORD)
Khí gặp tín hiệu ở chân R thì giá trị hiện thời cả bộ đếm bằng 0, đầu ra Q mất tín hiệu
Trang 17Giản đồ xung
Trang 191 BỘ ĐẾM TIẾN S_CU (CU)
S: là chân SET, kiểu khai báo, miền dữ liệu I, Q, L, M, D.
PV: giá trị đặt của bộ đếm, kiểu dữ liệu WORD, vùng dữ liệu I, Q, L,
M, D, const Đối với khai báo kiểu hằng số phải dùng C#??? (với ???
từ 000 - 999)
R: là tín hiệu RESET, kiểu dữ liệu BOOL, vùng dữ liệu I, Q, L, M, D.
Trang 20Q: là đầu ra của bộ đếm, kiểu dữ liệu BOOL, vùng dữ liệu I, Q, L, M, D.
CV: là vùng chứa giá trị hiện thời của bộ đếm ở mã HEX, kiểu dữ liệu WORD, vùng dữ liệu I, Q, L, M, D
CV_BCD: là vùng chứa giá trị hiện thời của bộ đếm ở mã thập phân, kiểu
dữ liệu WORD, vùng dữ liệu I, Q, L, M, D
1.2 Nguyên lí làm việc của bộ đếm S_CU
Trường hợp 1: Chưa có tín hiệu vào chân SET.
Khi có một xung tới đầu vào CU (sườn lên của xung) thì giá trị hiện thời của bộ đếm tăng lên 1, tăng từ 0 đến giá trị cực đại 999
Giá trị hiện thời được chứa trong thanh ghi 16 bits C_WORD Và được chuyển thành mã HEX ở đầu ra CV, chuyển thành số nguyên ở đầu ra CV_BCD
Khi giá trị hiện thời của bộ đếm lớn hơn hoặc bằng 1 thì bít bộ đếm bằng 1, đầu ra Q có tín hiệu
Khi có tín hiệu vào chân R thì giá trị hiện thời của bộ đếm bằng 0, đầu ra Q mất tín hiệu
Trang 21Trường hợp 2: Khi có tín hiệu vào chân S
Khi có một xung tới đầu vào S thì giá trị hiện thời của bộ đếm bằng giá trị đặt, bít của bộ đếm bằng 1 đầu ra Q có tín hiệu
Khi có một xung tới đầu vào CU thì lúc này giá trị hiện thời của bộ đếm sẽ tăng lên 1, tăng từ giá trị đặt PV đến giá trị cực đại 999
Khi có tín hiệu vào chân R thì giá trị hiện thời của bộ đếm bằng 0, đầu ra Q mất tín hiệu
1.3 Giản đồ xung
Ta có giản đồ xung như hình vẽ sau:
Trang 223
Trang 23S: là chân SET, kiểu khai báo, miền dữ liệu I, Q, L, M, D.
PV: giá trị đặt của bộ đếm, kiểu dữ liệu WORD, vùng dữ liệu I, Q, L,
M, D, const Đối với khai báo kiểu hằng số phải dùng C#??? (với ???
từ 000 - 999)
R: là tín hiệu RESET, kiểu dữ liệu BOOL, vùng dữ liệu I, Q, L, M, D.
Trang 24Q: là đầu ra của bộ đếm, kiểu dữ liệu BOOL, vùng dữ liệu I, Q, L, M, D.
CV: là vùng chứa giá trị hiện thời của bộ đếm ở mã HEX, kiểu dữ liệu WORD, vùng dữ liệu I, Q, L, M, D
CV_BCD: là vùng chứa giá trị hiện thời của bộ đếm ở mã thập phân, kiểu
dữ liệu WORD, vùng dữ liệu I, Q, L, M, D
2.2 Nguyên lí làm việc của bộ đếm S_CD
Khi có một xung tới đầu vào S (sườn lên của xung) thì giá trị hiện thời của
bộ đếm bằng giá trị đặt PV
Khi có một xung tới đầu vào CD thì giá trị hiện thời giảm đi 1 đơn vị giảm
từ giá trị đặt PVGiá trị hiện thời của bộ đếm được chứa trong thanh ghi 16 bít C_WORD, được chuyển thành mã HEX tại đầu ra, và chuyển thành mã thập phân ở đầu ra CV_BCD
Khi có tín hiệu vào chân R thì giá trị hiện thời của bộ đếm bằng 0, đầu ra Q mất tín hiệu
Khi giá trị hiện thời cảu bộ đếm lớn hơn 0 thì bit bộ đếm bằng 1, đầu ra Q
có tín hiệu
Trang 25Giản đồ xung
Trang 263 Bộ đếm tiến lùi S_CUD
S: là chân SET, kiểu khai báo, miền dữ liệu I, Q, L, M, D.
PV: giá trị đặt của bộ đếm, kiểu dữ liệu WORD, vùng dữ liệu I, Q, L,
M, D, const Đối với khai báo kiểu hằng số phải dùng C#??? (với ???
từ 000 - 999)
CU: là đầu vào đếm tiến, kiểu khai báo BOOL, vùng dữ liệu I, Q, L,
M, D.
Trang 27Q: là đầu ra của bộ đếm, kiểu dữ liệu BOOL, vùng dữ liệu I, Q, L, M, D.
CV: là vùng chứa giá trị hiện thời của bộ đếm ở mã HEX, kiểu dữ liệu WORD, vùng dữ liệu I, Q, L, M, D
CV_BCD: là vùng chứa giá trị hiện thời của bộ đếm ở mã thập phân, kiểu
dữ liệu WORD, vùng dữ liệu I, Q, L, M, D
3.2 Nguyên lí làm việc của bộ đếm S_CUD
Khi có một xung tới đầu vào CU (sườn lên của xung) thì giá trị hiện thời của bộ đếm được tăng lên 1 và tăng từ 0 đến 999
Khi có một xung tới đầu vào CD thì giá trị hiện thời giảm đi 1 đơn vị
Khi có tín hiệu vào chân R thì giá trị hiện thời của bộ đếm bằng 0, đầu ra Q mất tín hiệu
Khi có một xung vào chân S thì giá trị hiện thời bằng giá trị đặt PV
Khi giá trị hiện thời của bộ đếm lớn hơn 0 thì bit của bộ đếm bằng 1 đầu ra
Q có tín hiệu
Trang 28CÁC KHỐI LỆNH SO SÁNH
Việc so sánh hai số bất kì thường được được thực hiện ở hai thanh ghi
Accumulator (ACCU), kí hiệu là ACCU1 và ACCU2
Hai thanh ghi ACCU có cùng kích thước 32 bits (1 từ kép) Mọi phép tính toán trên số thực, số nguyên, các phép tính logic với mảng nhiều bit… đều được thực hiện trên hai thanh ghi này
Trang 291 Nhóm lệnh so sánh số nguyên 16 bits
Nhóm lệnh này tác động vào thanh ghi trạng thái như sau:
Trang 30Nếu số nguyên trong từ thấp của ACCU1 có nội dung giống như số nguyên trong từ thấp của ACCU2 thì bit trạng thái RLO sẽ nhận giá trị 1
Ngược lại, sẽ có giá trị 0.
Trang 311.2 Lệnh so sánh không bằng nhau 2 số nguyên 16 bits
Cú pháp: <> I
Lệnh không có toán hạng.
Tác dụng: Lệnh thực hiện phép so sánh hai số nguyên 16 bits nằm trong hai từ thấp trong hai thanh ghi ACCU1 và ACCU2.
Nếu số nguyên trong từ thấp của ACCU1 có nội dung khác số nguyên trong từ thấp của ACCU2 thì bit trạng thái RLO sẽ nhận giá trị 1.
Ngược lại, sẽ có giá trị 0.
Trang 321.3 Lệnh so sánh lớn hơn 2 số nguyên 16 bits
Cú pháp: >I
Lệnh không có toán hạng.
Tác dụng: Lệnh thực hiện phép so sánh hai số nguyên 16 bits nằm trong hai từ thấp trong hai thanh ghi ACCU1 và ACCU2.
Nếu số nguyên trong từ thấp của ACCU2 lớn hơn số nguyên trong từ thấp của ACCU1 thì bit trạng thái RLO sẽ nhận giá trị 1.
Ngược lại, sẽ có giá trị 0.
Trang 331.4 Lệnh so sánh nhỏ hơn 2 số nguyên 16 bits
Cú pháp: < I
Lệnh không có toán hạng.
Lệnh thực hiện phép so sánh hai số nguyên 16 bits nằm trong hai từ thấp trong hai thanh ghi ACCU1 và ACCU2 Nếu số nguyên trong từ thấp của ACCU2 nhỏ hơn số nguyên trong từ thấp của ACCU1 thì bit trạng thái RLO sẽ nhận giá trị 1
Ngược lại sẽ có giá trị 0.
Trang 341.5 Lệnh so sánh lớn hơn hoặc bằng 2 số nguyên 16 bits
Cú pháp: >= I
Lệnh không có toán hạng.
Tác dụng: Lệnh thực hiện phép so sánh hai số nguyên 16 bits nằm trong hai từ thấp trong hai thanh ghi ACCU1 và ACCU2.
Nếu số nguyên trong từ thấp của ACCU2 lớn
hơn hoặc bằng số nguyên trong từ thấp của ACCU1 thì bit trạng thái RLO sẽ nhận giá trị 1
Ngược lại sẽ có giá trị 0.
Trang 351.6 Lệnh so sánh bé hơn hoặc bằng 2 số nguyên 16 bits
Cú pháp: <= I
Lệnh không có toán hạng.
Tác dụng: Lệnh thực hiện phép so sánh hai số nguyên 16 bits nằm trong hai từ thấp trong hai thanh ghi ACCU1 và ACCU2.
+ Nếu số nguyên trong từ thấp của ACCU2 bé
hơn hoặc bằng số nguyên trong từ thấp của ACCU1 thì bit trạng thái RLO sẽ nhận giá trị 1
+ Ngược lại sẽ có giá trị 0.
Trang 362 Nhóm lệnh so sánh số nguyên 32 bits
Nhóm lệnh này tác động vào thanh ghi trạng thi như sau:
Trang 37bit trạng thái RLO sẽ nhận giá trị 1
+ Ngược lại sẽ có giá trị 0.
Trang 382.2 Lệnh so sánh không bằng nhau 2 số nguyên 32 bits
Cú pháp: <> D
Lệnh không có toán hạng.
Tác dụng: Lệnh thực hiện phép so sánh hai số nguyên 32 bits nằm trong hai thanh ghi ACCU1 và ACCU2.
+ Nếu số nguyên trong thanh ghi ACCU1 có nội
dung khác số nguyên trong thanh ghi ACCU2 thì bit
trạng thái RLO sẽ nhận giá trị 1
+ Ngược lại sẽ có giá trị 0.
Trang 392.3 Lệnh so sánh lớn hơn 2 số nguyên 32 bits
Cú pháp: >D
Lệnh không có toán hạng.
Tc dụng: Lệnh thực hiện phép so sánh hai số nguyên 32 bits nằm trong hai thanh ghi ACCU1 và ACCU2.
+ Nếu số nguyên trong thanh ghi ACCU2 lớn hơn
số nguyên trong thanh ghi ACCU1 thì bit trạng thái RLO
sẽ nhận giá trị 1
+ Ngược lại sẽ có giá trị 0.
Trang 402.4 Lệnh so sánh nhỏ hơn 2 số nguyên 32 bits
Cú pháp: < D
Lệnh không có toán hạng.
Tác dụng: Lệnh thực hiện phép so sánh hai số nguyên 32 bits nằm trong hai thanh ghi ACCU1 và ACCU2.
+ Nếu số nguyên trong thanh ghi ACCU2 nhỏ
hơn số nguyên trong thanh ghi ACCU1 thì bit trạng
thái RLO sẽ nhận giá trị 1
+ Ngược lại sẽ có giá trị 0.
Trang 412.5 Lệnh so sánh lớn hơn hoặc bằng 2 số nguyên 32 bits
Cú pháp: >= D
Lệnh không có toán hạng.
Tc dụng: Lệnh thực hiện phép so sánh hai số nguyên
32 bits nằm trong hai thanh ghi ACCU1 và ACCU2.
+ Nếu số nguyên trong thanh ghi ACCU2 lớn
hơn hoặc bằng số nguyên trong thanh ghi ACCU1 thì
bit trạng thái RLO sẽ nhận giá trị 1
+ Ngược lại sẽ có giá trị 0.
Trang 422.6 Lệnh so sánh bé hơn hoặc bằng 2 số nguyên 32 bits
Cú pháp: <= D
Lệnh không có toán hạng.
Lệnh thực hiện phép so sánh hai số nguyên 32 bits
nằm trong hai thanh ghi ACCU1 và ACCU2.
+ Nếu số nguyên trong thanh ghi ACCU2 bé hơn
hoặc bằng số nguyên trong thanh ghi ACCU1 thì bit
trạng thái RLO sẽ nhận giá trị 1
+ Ngược lại sẽ có giá trị 0.
Trang 433 Nhóm lệnh so sánh số thực 32 bits
Nhóm lệnh này tác động vào thanh ghi trạng thi như sau:
Trang 443.1 Lệnh so sánh 2 số thực 32 bits
Cú pháp: = = R
Lệnh không có toán hạng.
Tác dụng: Lệnh thực hiện phép so sánh hai số thực 32 bits nằm trong hai thanh ghi ACCU1 và ACCU2.
+ Nếu số thực trong thanh ghi ACCU1 có nội
dung giống như số thực trong thanh ghi ACCU2 thì bit trạng thái RLO sẽ nhận giá trị 1
+ Ngược lại sẽ có giá trị 0.
Trang 453.2 Lệnh so sánh không bằng nhau 2 số thực 32 bits
Cú pháp: <> R
Lệnh không có toán hạng.
Tác dụng: Lệnh thực hiện phép so sánh hai số thực 32 bits nằm trong hai thanh ghi ACCU1 và ACCU2.
+ Nếu số thực trong thanh ghi ACCU1 có nội
dung khác số thực trong thanh ghi ACCU2 thì bit trạng
thái RLO sẽ nhận giá trị 1
+ Ngược lại sẽ có giá trị 0.
Trang 463.3 Lệnh so sánh lớn hơn 2 số thực 32 bits
Cú pháp: >R
Lệnh không có toán hạng.
Tc dụng: Lệnh thực hiện phép so sánh hai số thực 32 bits nằm trong hai thanh ghi ACCU1 và ACCU2.
+ Nếu số thực trong thanh ghi ACCU2 lớn hơn
số thực trong thanh ghi ACCU1 thì bit trạng thái RLO
sẽ nhận giá trị 1
+ Ngược lại sẽ có giá trị 0.
Trang 473.4 Lệnh so sánh nhỏ hơn 2 số thực 32 bits
Cú pháp: < R
Lệnh không có toán hạng
Tc dụng: Lệnh thực hiện phép so sánh hai số thực 32 bits nằm trong hai thanh ghi ACCU1 và ACCU2.
+ Nếu số thực trong thanh ghi ACCU2 nhỏ hơn
số thực trong thanh ghi ACCU1 thì bit trạng thái RLO
sẽ nhận giá trị 1
+ Ngược lại sẽ có giá trị 0.
Trang 484.5 Lệnh so sánh lớn hơn hoặc bằng 2 số thực 32 bits
Cú pháp: >= R
Lệnh không có toán hạng.
Tc dụng: Lệnh thực hiện phép so sánh hai số thực 32
bits nằm trong hai thanh ghi ACCU1 và ACCU2.
+ Nếu số thực trong thanh ghi ACCU2 lớn hơn
hoặc bằng số thực trong thanh ghi ACCU1 thì bit trạng thái RLO sẽ nhận giá trị 1
+ Ngược lại sẽ có giá trị 0.