Professional Documents
Culture Documents
Huong Dan Lap Trinh Dong Co Buoc Tieng Viet
Huong Dan Lap Trinh Dong Co Buoc Tieng Viet
Trang 1
- Vít chỉnh tương tự:
Mỗ i PLC đề u có từ mộ t đến hai vít chỉnh tương tự có thể xoay đượ c 270 độ để thay
đổ i giá trị củ a vù ng nhớ biến trong chương trình.
b. Cấu trúc phần cứng:
Cấ u trú c phầ n cứ ng củ a mộ t PLC gồ m có cá c module sau:
- Module nguồ n.
- Module đầ u và o.
- Module đầ u ra.
- Module đơn vị xử lý trung tâ m (CPU).
- Module bộ nhớ .
- Module quả n lý phố i ghép và o ra.
Khố i ngõ và o
Mô hình tổng quát của một
PLC Bộ nguồ n Đơn vị xử lý Quả n lý ghép
- Đơn vị trung tâ m nố i xử lý trung tâm
Bộ nhớ
(CPU Central Processing
Unit): Khố i ngõ ra
CPU dù ng để xử lý, thự c hiện nhữ ng chứ c năng điề u khiển phứ c tạ p quan trọ ng củ a
PLC. Mỗ iPLC thườ ng có từ mộ t đến hai đơn vị xử lý trung tâ m.CPU thườ ng đượ c chia
là m hai loạ i: đơn vị xử lý “mộ t bit” và đơn vị xử lý “từ ngữ ”:
+ Đơn vị xử lý “mộ t bit”: Chỉ á p dụ ng cho nhữ ng ứ ng dụ ng nhỏ , đơn giả n, chỉ đơn
thuầ n xử lýON/OFF nên kết cấ u đơn giả n, thờ i gian xử lý dà i.
+ Đơn vị xử lý “từ ngữ ”: Có khả năng xử lý nhanh cá c thô ng tin số , văn bả n, phép
toá n, đolườ ng, đá nh giá , kiểm tra nên cấ u trú c phầ n cứ ng phứ c tạ p hơn nhiề u tuy
nhiên thờ i gian xử lýđượ c cả i thiện nhanh hơn.
- Bộ nhớ:
Bao gồ m cá c loạ i bộ nhớ RAM, ROM, EEFROM, là nơi lưu trữ cá c thô ng tin cầ n xử lý
trongchương trình củ a PLC.Bộ nhớ đượ c thiết kế thà nh dạ ng module để cho phép dễ
dà ng thích nghi vớ i cá c chứ c nă ng điề ukhiển vớ i cá c kích cỡ khá c nhau. Muố n mở
rộ ng bộ nhớ chỉ cầ n cắ m thẻ nhớ và o rã nh cắ m chờ sẵ n trênmodule CPU
Bộ nhớ có mộ t tụ dù ng để duy trì dữ liệu chương trình khi mấ t điện
- Khối vào/ra:
Khố i và o ra dù ng để giao tiế p giữ a mạ ch vi điện tử củ a PLC (điện á p 5/15VDC) vớ i
mạ ch cô ngsuấ t bên ngoà i (điện á p 24VDC/220VAC).Khố i ngõ và o thự c hiện việc
chuyển mứ c điện á p từ cao xuố ng mứ c tín hiệu tiêu chuẩ n để đưa và obộ xử lý.
Khố i ngõ ra thự c hiện việc chuyển mứ c tín hiệu từ tiêu chuẩ n sang tín hiệu ngõ ra và
cá ch ly quang.
- Bộ nguồn:
Biến đổ i từ nguồ n cấ p bên ngoà i và o để cung cấ p cho sự hoạ t độ ng củ a PLC.
- Khối quản lý ghép nối:
Dù ng để phố i ghép giữ a PLC vớ i cá c thiết bị bên ngoà i như má y tính, thiế t bị lậ p
trình, bả ng vậ nhà nh, mạ ng truyền thô ng cô ng nghiệp.
Trang 2
c. Ngôn ngữ lập trình.
Có 3 dạ ng ngô n ngữ lậ p trình cơ bả n đó là :
- Phương phá p hình thang ( Ladder Logic ) viết tắ t là LAD.
- Phương phá p liệt kê lệnh ( Statemnt List ) viết tắ t là STL.
- Phương phá p theo dạ ng dữ liệu hình khố i( Data Block) viết tắ t là DB.
- Nếu chương trình dượ c viết theo kiểu LAD, thiết bị lậ p trình sẽ tự tạ o ra mộ t
chương trình theo kiểu STL tương ứ ng. Nhưng ngượ c lạ i khô ng phả i mộ t
chương trình nà o đượ c viết theo kiểu STL cũ ng có thể chuyển đượ c sang 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 bằ ng rơle.Trong
chương trình LAD cá c phầ n tử cơ bả n dù ng để biểu diễn lệnh logic như sau.
- Tiếp điểm: Là biểu tượ ng (symbol) mô tả cá c tiếp điểm củ a rơ le, cá c tiếp điểm
đó có thể là thườ ng mở hoặ c thườ ng đó ng
- Cuộ n dâ y (coil): Là biểu tượ ng mô tả cá c rơ le đượ c mắ c theo chiều dò ng điện
cung cấ p cho rơ le.
- Hộ p (box): Là biểu tượ ng mô tả cá c 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 (Timer), bộ đếm (Counter) và cá c hà m toá n họ c..
- Mạ ng LAD: Là đườ ng nố i cá c phầ n tử thà nh mộ t mạ ch hoà n thiện, đi từ đườ ng
nguồ n bên trá i sang đườ ng nguồ n bên phả i. Đườ ng nguồ n bên trá i là dâ y nó ng,
cấ p (đườ ng nguồ n bên phả i thườ ng khô ng đượ c thể hiện khi dù ng chương
trình tiện dụ ng STEP7-Mcro/Dos hoặ cMicro/Win).
3. Tập lệnh s7-200
3.1 Lệnh logic với bit
3.1.1 Contact
Trang 3
a. Công tắc
Trang 4
giá trị đầu vào vật lý với đỉnh ngăn xếp, kết quả được ghi vào đỉnh ngăn xếp,
những giá trị cũ trong ngăn xếp bị đẩy xuống một bậc). Hoà n toà n tương tự đố i
vớ i cá c cô ng tắ c thườ ng đó ng tứ c khắ c, đượ c sử dụ ng trong cá c lệnh LOAD NOT
IMMEDIATE, AND NOT IMMEDIATE và OR NOT IMMEDIATE (giá trị đầ u và o
vậ t lý bị đả o).
c. Lệnh đảo bit, lệnh sườn
Lệnh đảo :
- Đề u thuộ c nhó m lệnh cá c cô ng tắ c, ghi nhậ n trạ ng thá i cá c bit dữ liệu (0 hay 1),
quen thuộ c vớ i khá i niệm “mứ c”. Cá c lệnh về sườ n ghi nhậ n khô ng phả i mứ c
đơn thuầ n mà là sự biế n đổ i mứ c. Lệnh sườ n dương (Positive Transition) cho
dò ng nă ng lượ ng đi qua trong khoả ng thờ i gian bằ ng thờ i gian mộ t vò ng quét
khi ở đầ u và o củ a nó có sự thay đổ i mứ c từ 0 lên 1. Lệnh sườ n â m (Negative
Transition) cho dò ng nă ng lượ ng đi qua trong khoả ng thờ i gian bằ ng thờ i gian
mộ t vò ng quét khi ở đầ u và o củ a nó có sự thay đổ i mứ c từ 1 xuố ng 0.
- Trong LAD, cá c lệ nh này đượ c biểu diễn cũ ng như cá c cô ng tắ c. Trong FBD, cá c
lệ nh này đượ c biểu diễn bằ ng cá c khố i chứ c nă ng P và N. Trong STL, lệnh Edge
Up, nế u phá t hiệ n có sự thay đổ i mứ c củ a đỉnh ngă n xếp từ 0 lên 1, sẽ đặ t và o
đỉnh ngă n xế p giá trị 1. Trong trườ ng hợ p ngượ c lạ i, nó đặ t và o đó giá trị 0.
- Tương tự , lệnh Edge Down, nếu phá t hiện có sự thay đổ i mứ c củ a đỉnh ngă n
xếp từ 1 xuố ng 0, sẽ đặ t và o đỉnh ngă n xếp giá trị 1. Trong trườ ng hợ p ngượ c
lạ i, nó cũ ng đặ t và o đó giá trị 0.
Trang 5
- Chú ý: Theo cấu trúc hoạt động của PLC, sự thay đổi mức tất nhiên chỉ được phát
hiện giữa các vòng quét liên tiếp. Do đó mỗi lệnh sườn này cần một bit nhớ để
nhớ trạng thái đầu vào của nó ở vòng quét kế trước. Vì đặc tính này mà tổng số
lệnh sườn được sử dụng trong một chương trình bị hạn chế (do dung lượng bộ
nhớ dành cho chúng có hạn).
3.1.2 Coil
a. Lệnh ra
-
Giá trị bit đượ c định địa chỉ bở i toá n hạ ng củ a lệ nh ra phả n ả nh trạ ng thá i củ a
dò ng nă ng lượ ng (Power Flow) ở đầ u và o lệ nh này. Trong LAD và FBD, lệ nh ra
đặ t giá trị bit đượ c trỏ đến bở i toá n hạ ng củ a nó bằ ng giá trị dò ng nă ng lượ ng ở
đầ u và o củ a lệ nh. Trong STL, lệnh ra sao chép giá trị đỉnh ngă n xế p ra giá trị bit
đượ c trỏ đế n bở i toá n hạ ng củ a lệnh.
b. Lệnh ra tức khắc
Trang 6
- Giá trị đầ u ra rờ i rạ c (digital) vậ t lý đượ c định địa chỉ bở i toá n hạ ng củ a lệ nh ra
trự c tiếp phả n ả nh trạ ng thá i củ a dò ng nă ng lượ ng (Power Flow) ở đầ u và o
lệ nh này. Trong LAD và FBD, lệ nh ra trự c tiế p đặ t đồ ng thờ i giá trị đầ u ra vậ t lý
đượ c trỏ đế n bở i toá n hạ ng củ a nó và bit ả nh củ a đầ u ra nà y bằ ng giá trị dò ng
nă ng lượ ng ở đầ u và o củ a lệ nh. Điều đó khá c vớ i lệ nh ra thô ng thườ ng ở chỗ
lệ nh ra thô ng thườ ng chỉ ghi giá trị và o bit ả nh củ a đầ u ra. Trong STL, lệnh ra
trự c tiếp sao chép giá trị đỉnh ngă n xếp ra đồ ng thờ i giá trị đầ u ra vậ t lý đượ c
trỏ đế n bở i toá n hạ ng củ a lệnh và bit ả nh củ a đầ u ra này.
c. Lệnh Set, Reset
- Cá c lệnh SET và RESET đặ t mộ t số cá c bit liên tiế p trong bộ nhớ dữ liệ u thà nh 1
(Set) hay 0 (Reset). Số lượ ng cá c bit đượ c định bở i toá n hạ ng [N] và bắ t đầ u từ
bit đượ c định địa chỉ bở i toá n hạ ng [bit]. Số lượ ng cá c bit có thể Set hoặ c Reset
nằ m trong khoả ng từ 1 đế n 255. Trong trườ ng hợ p sử dụ ng lệ nh Reset vớ i cá c
bit nằ m trong nhữ ng vù ng T hay C, cá c bộ định thờ i hay bộ đế m tương ứ ng sẽ
bị reset. Nghĩa là bit trạ ng thá i củ a chú ng đượ c đưa về 0 và số đang đế m cũ ng
bị xó a (sẽ có giá trị 0).
- Những lỗi có thể được gây nên bởi các lệnh này (ENO = 0):
+ Bit đặc biệt SM4.3 = 1: lỗi Run - Time.
+ Lỗi 0006: địa chỉ gián tiếp.
+ Lỗi 0091: toán hạng vượt quá giới hạn cho phép.
d. Lệnh Set, Reset Immediat
a. So sánh Byte
Trang 8
c. So sánh từ kép (Double Word)
Trang 9
- SIMATIC S7-200 có 03 loạ i bộ định thờ i:
+ Bộ đóng trễ (On - Delay Timer) TON
Trang 10
- Cá c bộ đó ng trễ và đó ng trễ có nhớ bắ t đầ u đế m thờ i gian khi có đầ u và o EN
(Enable) ở mứ c 1 (ON). Lú c giá trị đếm đượ c lớ n hơn hoặ c bằ ng giá trị đặ t
trướ c tạ i đầ u và o PT (Preset Time) thì bit trạ ng thá i sẽ đượ c đặ t bằ ng 1 (ON).
Điề u khá c nhau giữ a hai loạ i bộ đó ng trễ này là : bộ đó ng trễ bình thườ ng sẽ bị
reset (cả giá trị đang đế m lẫ n bit trạ ng thá i đề u bị xó a về 0) khi đầ u và o EN
bằ ng 0; trong khi đó bộ định thờ i có nhớ lưu lạ i giá trị củ a nó khi đầ u và o EN
bằ ng 0 và tiế p tụ c đếm nếu đầ u và o EN lạ i bằ ng 1. Như vậ y ta có thể dù ng loạ i
có nhớ để cộ ng thờ i gian nhữ ng lú c đầ u và o EN bằ ng 1. Loạ i bộ định thờ i nà y có
thể reset (xó a giá trị đang đếm về 0) bằ ng lệnh R (Reset). Cả hai loạ i bộ đó ng
trễ vẫ n tiế p tụ c đếm thờ i gian ngay cả sau khi đã đạ t đến giá trị đặ t trướ c PT và
chỉ dừ ng đế m khi đạ t giá trị tố i đa 32767 (16#7FFF). Bộ ngắ t trễ dù ng để đưa
giá trị đầ u ra (bit trạ ng thá i) về 0 (OFF) trễ mộ t khoả ng thờ i gian sau khi đầ u
và o (EN) đổ i về 0. Khi đầ u và o EN đượ c đặ t bằ ng 1 (ON) thì bit trạ ng thá i củ a
bộ ngắ t trễ cũ ng bằ ng 1 ngay lú c đó đồ ng thờ i giá trị đếm củ a nó bị xó a về 0.
Khi đầ u và o EN về 0, bộ định thờ i bắ t đầ u đếm và đếm cho đến khi đạ t giá trị
đặ t trướ c PT. Lú c đó bit trạ ng thá i củ a bộ ngắ t trễ sẽ về 0 đồ ng thờ i nó cũ ng
ngừ ng đế m. Nếu đầ u và o EN chỉ bằ ng 0 trong khoả ng thờ i gian ngắ n hơn thờ i
gian đượ c đặ t rồ i quay lạ i bằ ng 1 thì bit trạ ng thá i củ a bộ định thờ i vẫ n giữ
nguyên bằ ng 1. Bộ ngắ t trễ chỉ bắ t đầ u đế m khi có sườ n thay đổ i từ 1 thà nh 0 ở
đầ u và o EN. Nếu bộ ngắ t trễ ở trong vù ng mộ t SCR (Sequence Control Relay) và
vù ng SCR đó khô ng đượ c kích hoạ t thì giá trị đếm củ a nó đượ c xó a về 0, bit
trạ ng thá i cũ ng bằ ng 0 (OFF) và bộ định thờ i khô ng đếm. Khá i niệ m vù ng SCR
sẽ đượ c định nghĩa ở phầ n sau củ a tà i liệu này.
- Thờ i gian trễ đượ c tính như là tích củ a giá trị đang đếm vớ i độ phân giải củ a
củ a bộ định thờ i.
- Những bộ định thời có nhớ có địa chỉ được qui định riêng. Những bộ định thời
còn lại (không nhớ) có thể được khai báo như là bộ đóng trễ hoặc ngắt trễ,
nhưng không thể là cả hai. Ví dụ không thể có TON 33 và TOF 33 đồng thời.
- Bả ng sau tó m tắ t nhữ ng đặ c điể m hoạ t độ ng củ a ba loạ i bộ định thờ i nêu trên:
- Lệnh Reset (R) có thể đượ c sử dụ ng để reset bấ t kỳ bộ định thờ i nà o. Cá c bộ
định thờ i có nhớ (loạ i TONR) chỉ có thể reset bằ ng lệ nh này. Cá c bộ định thờ i
sau khi reset có bit trạ ng thá i cũ ng như giá trị đếm đề u đượ c xó a về 0. Cá c bộ
ngắ t trễ (TOF) chỉ bắ t đầ u đếm khi có sự thay đổ i từ 1 xuố ng 0 ở đầ u và o IN.
- Các bộ định thời có độ phân giải khác nhau có cách hoạt động cũng khác nhau.
Chúng ta xem xét kỹ hơn về vấn đề này:
Trang 11
Bộ định thời với độ phân giải 1 ms:
- Bộ định thờ i loạ i này đếm số khoả ng thờ i gian 1 ms trô i qua kể từ khi nó đượ c
kích hoạ t. Bộ định thờ i vớ i độ phâ n giả i 1 ms đượ c kích hoạ t bằ ng lệ nh khai bá o
củ a nó nhưng sau đó nó đượ c cậ p nhậ t (bit trạ ng thá i cũ ng như giá trị đế m)
mỗ i giâ y mộ t lầ n mộ t cá ch độ c lậ p khô ng phụ thuộ c và o vò ng quét chương
trình. Nó i mộ t cá ch khá c, mộ t bộ định thờ i loạ i này có thể đượ c cậ p nhậ t nhiều
lầ n trong mộ t vò ng quét nếu như thờ i gian vò ng quét lớ n hơn 1 ms. Bở i vì mộ t
bộ định thờ i vớ i độ phâ n giả i 1 ms có thể đượ c kích hoạ t ở bấ t kỳ mộ t thờ i
điểm nà o trong vò ng 1 ms nên ta nên đặ t giá trị đặ t trướ c lớ n hơn 1 đơn vị so
vớ i giá trị yêu cầ u cầ n đếm. Ví dụ để đếm khoả ng thờ i gian 56 ms, ta thườ ng
đặ t giá trị đặ t trướ c bằ ng 57.
Bộ định thời với độ phân giải 10 ms:
- Bộ định thờ i loạ i này đếm số khoả ng thờ i gian 10 ms trô i qua kể từ khi nó đượ c
kích hoạ t. Bộ định thờ i vớ i độ phâ n giả i 10 ms đượ c kích hoạ t bằ ng lệ nh khai
bá o củ a nó và sau đó nó đượ c cậ p nhậ t (bit trạ ng thá i cũ ng như giá trị đếm)
mỗ i vò ng quét mộ t lầ n ở ngay đầ u mỗ i vò ng quét bằ ng cá ch cộ ng và o giá trị
đang đếm củ a nó số khoả ng thờ i gian 10 ms trô i qua kể từ đầ u vò ng quét trướ c.
Nó i mộ t cá ch khá c, giá trị đang đếm củ a bộ định thờ i loạ i nà y giữ nguyên khô ng
đổ i trong suố t thờ i gian mộ t vò ng quét. Bở i vì mộ t bộ định thờ i vớ i độ phâ n giả i
10 ms có thể đượ c kích hoạ t ở bấ t kỳ mộ t thờ i điể m nà o trong vò ng 10 ms nên
ta nên đặ t giá trị đặ t trướ c lớ n hơn 1 đơn vị so vớ i giá trị yêu cầ u cầ n đếm. Ví
dụ để đế m khoả ng thờ i gian 140 ms, ta thườ ng đặ t giá trị đặ t trướ c bằ ng 15.
Bộ định thời với độ phân giải 100 ms:
- Bộ định thờ i loạ i này tính số khoả ng thờ i gian 100 ms trô i qua kể từ khi nó
đượ c cậ p nhậ t lầ n cuố i. Lệnh khai bá o bộ định thờ i vớ i độ phâ n giả i 100 ms cậ p
nhậ t bit trạ ng thá i cũ ng như giá trị đếm củ a nó bằ ng cá ch cộ ng và o giá trị đang
đếm củ a nó số khoả ng thờ i gian 100 ms trô i qua kể từ vò ng quét trướ c. Như
vậ y, giá trị đang đếm củ a bộ định thờ i loạ i nà y chỉ đượ c cậ p nhậ t khi có lệnh
khai bá o nó thự c hiệ n. Vì thế nế u bộ định thờ i vớ i độ phâ n giả i 100 ms đã đượ c
Trang 12
kích hoạ t nhưng lệ nh khai bá o nó khô ng đượ c thự c hiện trong mỗ i vò ng quét
thì nó có thể khô ng đượ c cậ p nhậ t kịp thờ i và đế m thiế u thờ i gian. Ngượ c lạ i
nế u lệnh khai bá o bộ định thờ i đượ c thự c hiện nhiều lầ n trong mộ t vò ng quét
thì nó có thể đế m dư thờ i gian do mộ t số khoả ng thờ i gian 100 ms đượ c cộ ng
nhiề u lầ n. Tó m lạ i nên sử dụ ng bộ định thờ i loạ i nà y vớ i lệnh khai bá o thự c
hiện chính xá c mỗ i vò ng quét mộ t lầ n. Bở i vì mộ t bộ định thờ i vớ i độ phâ n giả i
100 ms có thể đượ c khở i độ ng ở bấ t kỳ mộ t thờ i điểm nà o trong vò ng 100 ms
nên ta nên đặ t giá trị đặ t trướ c lớ n hơn 1 đơn vị so vớ i giá trị yêu cầ u cầ n đế m.
Ví dụ để đếm khoả ng thờ i gian 2100 ms, ta thườ ng đặ t giá trị đặ t trướ c bằ ng
22.
- Để hiểu thêm về cơ chế cập nhật của các bộ định thời với những độ phân giải
khác nhau, chúng ta xem xét ví dụ sau, tạo bộ định thời 3 giây với lần lượt ba bộ
định thời khác nhau (xem chương trình kèm theo):
- Đầ u tiên bộ định thờ i vớ i độ phâ n giả i 1 ms đượ c sử dụ ng (T32, giá trị đặ t
trướ c 300). Q0.0 sẽ có giá trị bằ ng 1 (ON) trong thờ i gian mộ t vò ng quét khi và
chỉ khi nà o thờ i điểm cậ p nhậ t củ a bộ định thờ i mà giá trị đếm vượ t qua giá trị
đặ t trướ c rơi và o đú ng giữ a lú c thự c hiện hai lệnh nà y. Nghĩa là sau khi lệ nh
trướ c đượ c thự c hiện nhưng phả i trướ c khi thự c hiện lệnh sau.
- Nế u sử dụ ng bộ định thờ i vớ i độ phâ n giả i 10 ms (T33, giá trị đặ t trướ c 30),
Q0.0 khô ng bao giờ có giá trị 1 (luô n luô n OFF).
- Trườ ng hợ p cuố i cù ng sử dụ ng bộ định thờ i vớ i độ phâ n giả i 100 ms (T37, giá
trị đặ t trướ c bằ ng 3). Q0.0 luô n luô n có giá trị bằ ng 1 (ON) trong đú ng thờ i gian
mộ t vò ng quét. Để đả m bả o chắ c chắ n Q0.0 sẽ có giá trị 1 (ON) trong thờ i gian
mộ t vò ng quét, ta phả i dù ng cô ng tắ c thườ ng đó ng Q0.0 để kích hoạ t cá c bộ
định thờ i thay vì dù ng cô ng tắ c thườ ng đó ng vớ i bit trạ ng thá i củ a nó .
Trang 13
3.5 Lệnh bộ đếm
- Ba loại bộ đếm:
+ Bộ đếm lên (Count Up):
Trang 14
+ Bộ đếm xuống (Count Down) :
+ Bộ đếm có thể vừa đếm lên vừa đếm xuống (Count Up / Down):
Trang 15
bị xó a (reset) bở i mứ c 1 ở đầ u và o reset (R), lú c đó cả giá trị đế m lẫ n bit trạ ng
thá i sẽ bị xó a về 0.
- Số hiệu cá c bộ đế m: C0 đến C255. Trong CPU 221, 222 và 224 mỗ i bộ đế m đượ c
xá c định loạ i tù y theo lệ nh khai bá o nhưng khô ng thể khai bá o cá c bộ đế m loạ i
khá c nhau vớ i cù ng mộ t địa chỉ (trong vù ng C). Trong STL, đầ u và o reset (R)
củ a bộ đế m tiến là bit đỉnh củ a ngă n xếp và đầ u và o đế m củ a nó (CU) là bit thứ
hai củ a ngă n xếp. Trong STL, đầ u và o tả i (LD) củ a bộ đếm lù i là bit đỉnh củ a
ngă n xế p và đầ u và o đếm củ a nó (CD) là bit thứ hai củ a ngă n xếp. Trong STL,
đầ u và o reset (R) củ a bộ đếm vừ a đếm tiế n vừ a đếm lù i là bit đỉnh củ a ngă n
xếp, đầ u và o đế m lù i củ a nó (CD) là bit thứ hai củ a ngă n xế p và đầ u và o đếm
tiến củ a nó (CU) là bit thứ ba củ a ngă n xế p.
- Cá c bộ đế m cò n có thể bị reset bở i lệ nh Reset. Bộ đếm vừ a tiế n vừ a lù i khi đếm
đến giá trị tố i đa (32767) mà tiế p tụ c đếm lên thi số đếm sẽ nhả y sang giá trị tố i
thiểu (-32768) và tiếp tụ c đế m bình thườ ng. Tương tự , nếu nó đế m lù i khi đã ở
giá trị nhỏ nhấ t (-32768) thì số đếm sẽ nhả y thà nh giá trị lớ n nhấ t (32767).
3.6 Lệnh dịch chuyển ô nhớ
- Các lệnh dịch chuyển một Byte, một từ đơn (Word), một từ kép (Double
Word) hay một số thực (Real):
- Lệnh dịch chuyể n mộ t Byte, Move Byte, sao chép nộ i dung ô nhớ kích thướ c
mộ t byte đượ c định địa chỉ ở đầ u và o IN lên ô nhớ kích thướ c mộ t byte đượ c
định địa chỉ ở đầ u ra OUT. Nộ i dung byte nhớ ở địa chỉ [IN] khô ng thay đổ i.
Tương tự cho cá c câ u lệ nh vớ i W, DW. Lệnh dịch chuyể n mộ t Số thự c, Move
Real, sao chép số thự c kích thướ c 32 bit đượ c định địa chỉ ở đầ u và o IN lên số
thự c kích thướ c 32 bit đượ cđịnh địa chỉ ở đầ u ra OUT. Số thự c ở địa chỉ [IN]
khô ng thay đổ i.
- Những lỗi có thể được gây nên bởi các lệnh này (ENO = 0):
+ Bit đặc biệt SM4.3 = 1: lỗi Run - Time.
+ Lỗi 0006: địa chỉ gián tiếp.
Các lệnh dịch chuyển một Byte, một từ đơn (Word) tức khắc: đọc hoặc ghi.
Trang 16
- Lệnh dịch chuyển một khối các byte, Block Move Byte:
- Lệnh này điề n đầ y mộ t khoả ng nhớ bao gồ m mộ t số cá c từ đơn liên tiế p (đượ c
xá c định bở i đầ u và o N) vớ i từ đơn (Word) đầ u tiên đượ c định địa chỉ bở i đầ u
ra OUT bằ ng từ đơn đượ c định địa chỉ ở đầ u và o IN. Kích thướ c khoả ng nhớ có
thể nằ m trong khoả ng từ 1 đến 255 từ đơn.
- Những lỗi có thể được gây nên bởi lệnh này (ENO = 0):
+ Bit đặc biệt SM4.3 = 1: lỗi Run - Time.
+ Lỗi 0006: địa chỉ gián tiếp.
+ Lỗi 0091: toán hạng vượt quá giới hạn cho phép
3.7.3 Lệnh tìm kiếm trong bảng
Trang 18
- Cá c lệnh nà y cộ ng (Add) hay trừ (Subtract) hai số nguyên đượ c định địa chỉ ở
cá c đầ u và o IN1 và IN2, kế t quả lưu và o số nguyên đượ c định địa chỉ bở i đầ u ra
OUT.
[IN1] + [IN2] = [OUT]
[IN1] - [IN2] = [OUT]
- Những lỗi có thể được gây nên bởi lệnh này (ENO = 0):
+ Bit đặc biệt SM4.3 = 1: lỗi Run - Time.
+ Lỗi 0006: địa chỉ gián tiếp.
+ Bit đặc biệt SM1.1 = 1: lỗi tràn (Overflow).
Những bit nhớ đặc biệt có nội dung bị ảnh hưởng bởi lệnh này:
+ SM1.0 (Zero): bằng 1 nếu kết quả bằng 0.
+ SM1.1 (Overflow): bằng 1 nếu kết quả bị tràn.
+ SM1.2 (Negative): bằng 1 nếu kết quả là số âm
- Cá c lệnh nà y cộ ng (Add) hay trừ (Subtract) hai số nguyên 32 bit đượ c định địa
chỉ ở cá c đầ u và o IN1 và N2, kế t quả lưu và o số nguyên 32 bit đượ c định địa chỉ
bở i đầ u ra OUT.
[IN1] + [IN2] = [OUT]
[IN1] - [IN2] = [OUT]
- Những lỗi có thể được gây nên bởi lệnh này (ENO = 0):
+ Bit đặc biệt SM4.3 = 1: lỗi Run - Time.
+ Lỗi 0006: địa chỉ gián tiếp.
+ Bit đặc biệt SM1.1 = 1: lỗi tràn (Overflow).
- Những bit nhớ đặc biệt có nội dung bị ảnh hưởng bởi lệnh này:
+ SM1.0 (Zero): bằng 1 nếu kết quả bằng 0.
+ SM1.1 (Overflow): bằng 1 nếu kết quả bị tràn.
+ SM1.2 (Negative): bằng 1 nếu kết quả là số âm.
a. Các lệnh nhân (Multiply) hay chia (Divide) hai số nguyên 16 bit:
Trang 19
- Đượ c định địa chỉ ở cá c đầ u và o IN1 và IN2, kết quả lưu và o số nguyên đượ c
định địa chỉ bở i đầ u ra OUT. Trong phép chia, số dư bị bỏ qua. Bit bá o trà n sẽ
thà nh 1 nếu kết quả lớ n hơn mộ t số nguyên 16 bit. Nhữ ng lệnh này khô ng có
trong cá c CPU 212, 214.
[IN1] * [IN2] = [OUT]
[IN1] / [IN2] = [OUT]
- Những lỗi có thể được gây nên bởi lệnh này (ENO = 0):
+ Bit đặc biệt SM4.3 = 1: lỗi Run - Time.
+ Lỗi 0006: địa chỉ gián tiếp.
+ Bit đặc biệt SM1.1 = 1: lỗi tràn (Overflow).
+ Bit đặc biệt SM1.3 = 1: lỗi chia cho 0 (Divide-by-zero).
- Những bit nhớ đặc biệt có nội dung bị ảnh hưởng bởi lệnh này:
+ SM1.0 (Zero): bằng 1 nếu kết quả bằng 0.
+ SM1.1 (Overflow): bằng 1 nếu kết quả bị tràn.
+ SM1.2 (Negative): bằng 1 nếu kết quả là số âm.
+ SM1.3 (Divide-by-zero): bằng 1 nếu số chia bằng 0.
- Trong trường hợp bit SM1.1 (Overflow) bằng 1, kết quả sẽ không được ghi và các
bit đặc biệt khác liên quan đến các phép toán (Zero, Negative, ...) đều được xóa về
0.
- Trong trường hợp bit SM1.3 (Divide-by-zero) bằng 1, các bit đặc biệt khác liên
quan đến các phép toán (Zero, Negative, ...) đều được giữ nguyên không thay đổi
và các toán hạng ở đầu vào cũng không đổi.
- Trong các trường hợp còn lại, các bit đặc biệt nói trên sẽ có giá trị phản ảnh
trạng thái của kết quả theo tính năng của chúng.
b. Các lệnh nhân (Multiply) hay chia (Divide) hai số nguyên 32 bit:
Trang 20
- Đượ c định địa chỉ ở cá c đầ u và o IN1 và IN2, kết quả lưu và o số nguyên 32 bit
đượ c định địa chỉ bở i đầ u ra OUT. Trong phép chia, số dư bị bỏ qua. Bit bá o
trà n sẽ thà nh 1 nếu kết quả lớ n hơn mộ t số nguyên 32 bit. Nhữ ng lệnh nà y
khô ng có trong cá c CPU 212, 214.
[IN1] * [IN2] = [OUT]
[IN1] / [IN2] = [OUT]
- Những lỗi có thể được gây nên bởi lệnh này (ENO = 0):
+ Bit đặc biệt SM4.3 = 1: lỗi Run - Time.
+ Lỗi 0006: địa chỉ gián tiếp.
+ Bit đặc biệt SM1.1 = 1: lỗi tràn (Overflow).
+ Bit đặc biệt SM1.3 = 1: lỗi chia cho 0 (Divide-by-zero).
- Những bit nhớ đặc biệt có nội dung bị ảnh hưởng bởi lệnh này:
+ SM1.0 (Zero): bằng 1 nếu kết quả bằng 0.
+ SM1.1 (Overflow): bằng 1 nếu kết quả bị tràn.
+ SM1.2 (Negative): bằng 1 nếu kết quả là số âm.
+ SM1.3 (Divide-by-zero): bằng 1 nếu số chia bằng 0.
- Trong trường hợp bit SM1.1 (Overflow) bằng 1, kết quả sẽ không được ghi và các
bit đặc biệt khác liên quan đến các phép toán (Zero, Negative, ...) đều được xóa về
0.
- Trong trường hợp bit SM1.3 (Divide-by-zero) bằng 1, các bit đặc biệt khác liên
quan đến các phép toán (Zero, Negative, ...) đều được giữ nguyên không thay đổi
và các toán hạng ở đầu vào cũng không đổi.
c. Các lệnh Nhân, Chia hai số nguyên (Integer) và ghi kết quả vào số nguyên dài
(Double Integer):
Trang 21
- Cá c lệnh nà y nhâ n (Multiply) hay chia (Divide) hai số nguyên 16 bit đượ c định
địa chỉ ở cá c đầ u và o IN1 và IN2, kết quả lưu và o số nguyên 32 bit đượ c định
địa chỉ bở i đầ u ra OUT. Trong phép chia, kết quả bao gồ m số dư ở 16 bit cao và
thương số ở 16 bit thấ p.
[IN1] * [IN2] = [OUT]
[IN1] / [IN2] = [OUT]
- Trong STL, lệ nh MUL chỉ sử dụ ng 16 bit thấ p củ a từ kép [OUT] là m số nhâ n.
Tương tự lệ nh DIV cũ ng chỉ sử dụ ng 16 bit thấ p củ a từ kép [OUT] là m số bị
chia.
- Những lỗi có thể được gây nên bởi lệnh này (ENO = 0):
+ Bit đặc biệt SM4.3 = 1: lỗi Run - Time.
+ Lỗi 0006: địa chỉ gián tiếp.
+ Bit đặc biệt SM1.1 = 1: lỗi tràn (Overflow).
+ Bit đặc biệt SM1.3 = 1: lỗi chia cho 0 (Divide-by-zero).
- Những bit nhớ đặc biệt có nội dung bị ảnh hưởng bởi lệnh này:
+ SM1.0 (Zero): bằng 1 nếu kết quả bằng 0.
+ SM1.1 (Overflow): bằng 1 nếu kết quả bị tràn.
+ SM1.2 (Negative): bằng 1 nếu kết quả là số âm.
+ SM1.3 (Divide-by-zero): bằng 1 nếu số chia bằng 0.
- Trong trường hợp bit SM1.3 (Divide-by-zero) bằng 1, các bit đặc biệt khác liên
quan đến các phép toán (Zero, Negative, ...) đều được giữ nguyên không thay đổi
và các toán hạng ở đầu vào cũ ng khô ng đổ i.
- Các số thực được biểu diễn bằng 32 bit dưới dạng dấu phẩy động theo
chuẩn ANSI / IEEE 754 - 1985.
3.8.2 Lệnh tăng giảm một đơn vị
Trang 22
- Thêm và o hay bớ t đi mộ t đơn vị từ mộ t Byte đượ c định địa chỉ ở đầ u và o IN,
kết quả lưu và o Byte đượ c định địa chỉ bở i đầ u ra OUT. Cá c số trong Byte toá n
hạ ng đượ c xem là cá c số khô ng dấ u.
[IN] + 1 = [OUT]
[IN] - 1 = [OUT]
- Những lỗi có thể được gây nên bởi lệnh này (ENO = 0):
+ Bit đặc biệt SM4.3 = 1: lỗi Run - Time.
+ Lỗi 0006: địa chỉ gián tiếp.
+ Bit đặc biệt SM1.1 = 1: lỗi tràn (Overflow).
Những bit nhớ đặc biệt có nội dung bị ảnh hưởng bởi lệnh này:
+ SM1.0 (Zero): bằng 1 nếu kết quả bằng 0.
+ SM1.1 (Overflow): bằng 1 nếu kết quả bị tràn.
3.8.3 Các lệnh hàm số học
Trang 23
3.9.2 Lệnh AND, OR, XOR
- AND bytes, OR bytes, EXCLUSIVE OR bytes: Lệ nh AND Bytes thự c hiện phép
toá n lô gic AND giữ a cá c bit tương ứ ng củ a cá c byte đầ u và o đượ c định địa chỉ
bở i cá c đầ u và o IN1 và IN2, kế t quả lưu và o byte đượ c định địa chỉ bở i đầ u ra
OUT. Lệ nh OR Bytes thự c hiện phép toá n lô gic OR giữ a cá c bit tương ứ ng củ a
cá c byte đầ u và o đượ c định địa chỉ bở i cá c đầ u và o IN1 và IN2, kết quả lưu và o
byte đượ c định địa chỉ bở i đầ u ra OUT. Lệnh EXCLUSIVE OR Bytes thự c hiện
phép toá n lô gic XOR giữ a cá c bit tương ứ ng củ a cá c byte đầ u và o đượ c định địa
chỉ bở i cá c đầ u và o IN1 và IN2, kế t quả lưu và o byte đượ c định địa chỉ bở i đầ u
ra OUT.
- Những lỗi có thể được gây nên bởi lệnh này (ENO = 0):
+ Bit đặc biệt SM4.3 = 1: lỗi Run - Time.
+ Lỗi 0006: địa chỉ gián tiếp.
Những bit nhớ đặc biệt có nội dung bị ảnh hưởng bởi lệnh này:
+ SM1.0 (Zero): bằng 1 nếu kết quả bằng 0.
- Tương tự cho các câu lệnh AND words, OR words, EXCLUSIVE OR words. AND
double words, OR doublewords, EXCLUSIVE OR double words.
Trang 24
II. Thực hành
1. Yêu cầu
- Sử dụ ng plc s7-200 phá t xung điều khiển bộ điều khiển độ ng cơ bướ c HB-B3C.
2. Giới thiệu thiết bị
2.1 PLc s7-200
- PLC hã ng siemens : CPU 224 – DC/DC/DC : DI/DO=14/10 .
(- )
(+)
M OD ULE P LC S7 -200
( -)
(+)
2L
PO WER
2 4VD C
L+ M
M L+
.0
0 0.1 .2
0 .3
0 0.4 .5
0 .6
0 0.7 .0
1 .1
1 1.2 1.3 .4
1 1.5
BD- DC
B02-10
Sơ đồ
Trang 25
M O DU LE BỘ ĐI ỀU K HI ỂN S tep s
L A
Singl e- phas
e
Power supply
22
0- 240VAC
N
B
M
C Three- phas
e
WF 220VAC
PE
C OM
UD
C OM
CP
PD
C OM
AL
BD-DCB02-9
Trang 26
Trang 27