- SF = Li nhúm, c hỗ ương trỡnh sai hay l it khi chun đoỏn ẩ BATF = L i Pin, Pin h t hay khụng cú pinỗế
b/ Lp trỡnh cú cu trỳc ấ: Chương trỡnh được chia thành nh ng ph n nhữ ỏ và m i ph n th c thi nh ng nhi m v chuyờn bi t riờng c a nú, t ng ph n này ỗầựữệụệủừầ
2.2.5 .B đờm counte rộ
1) Nguyờn t c làm vi cắ ệ
Counter là b đ m th c hi n ch c năng đ m sộ ế ự ệ ứ ế ườn xung c a cỏc tớn hi uủ ệ đ u vào. S7-300 cú t i đa 256 b đ m (ph thu c lo i CPU), ký hi u b i Cx,ầ ố ộ ế ụ ộ ạ ệ ở trong đú x là s nguyờn trong kho ng 0 – 255. Nh ng b đ m c a S7-300 cú thố ả ữ ộ ế ủ ể là đ ng th i đ m ti n theo sồ ờ ế ế ườn lờn c a m t tớn hi u th nh t CU và đ m lựiủ ộ ệ ứ ấ ế theo sườn lờn c a m t tớn hi u vào th hai CD.ủ ộ ệ ứ
Thụng thường b đ m ch đ m cỏc sộ ế ỉ ế ườn tớn hi u CU và CD, song cũng cúệ th để ược m r ng đ đ m c m c tớn hi u c a chỳng b ng cỏch s d ng tớnở ộ ể ế ả ứ ệ ủ ằ ử ụ hi u enable (kớch đ m). N u cú tớn hi u enable, b đ m s độm ti n khi xu nệ ế ế ệ ộ ế ẽ ế ố
S số ườn xung đ m đế ược được ghi vào thanh ghi C_word. N i dungộ C_word được g i là giỏ tr đ m t c th i c a b đ m và ký hi u b ng CVọ ị ế ứ ờ ủ ộ ế ệ ằ (Current Value). B đ m bỏo tr ng thỏi C_word ra ngoài qua C-bit. ộ ế ạ N u CV ≠ 0,ế C_bit = 1; n u CV = 0, C_bit = 0. CV luụn là m t giỏ tr khụng õm, do đú b đ mế ộ ị ộ ế s khụng đ m lựi khi CV = 0.ẽ ế
Khỏc vúi timer, giỏ tr đ t PV c a b đ m ch đị ặ ủ ộ ế ỉ ược chuy n vào C_wordể t i th i đi m cú sạ ờ ể ườn lờn c a tớn hi u đăt (set – S).ủ ệ
B đ m độ ế ược xoà ch đ ng b ng tớn hi u xoỏ (reset), khi đú c C_wordủ ộ ằ ệ ả và C_bit đ u b ng 0.ề ằ
2) Khai bỏo s d ngử ụ
Vi c khai bỏo m t counter g m cỏc bệ ộ ồ ước sau :
- Khai bỏo tớn hi u enable n u mu n ch đ ng kớch đ m.ệ ế ố ủ ộ ế
• A <đ a ch bit>ị ỉ
• FR <tờn counter>
- Khai bỏo đ u vào đ m ti n CUầ ế ế
• A <đ a ch bit>ị ỉ
• CU <tờn counter> - Khai bỏo đ u vào đ m lựi CDầ ế
• A <đ a ch bit>ị ỉ
• CD <tờn counter>
- Khai bỏo tớn hi u đ t (set) và giỏ tr đ t trệ ặ ị ặ ước PV
• A <đ a ch bit>ị ỉ
• L C#<h ng s >ằ ố
• S <tờn counter> - Khai bỏo tớn hi u xoỏ (reset)ệ
Trong đú ớt nh t ph i cú m t trong hai bấ ả ộ ước 2 ho c 3 đặ ược th c hiờn. ự - Đ c n i dung thanh ghi C_Word. Đ đ c n i dung thanh ghiọ ộ ể ọ ộ
C_word ta s d ng l nhử ụ ệ
• L <tờn counter> : chuy n giỏ tr thanh ghiể ị C_word vào ACCU1. Giỏ tr đ c đị ọ ược là m t s nguyờnộ ố dương
• LC <tờn counter> : chuy n giỏ tr thanh ghi C_wordể ị vào ACCU1. Giỏ tr đ c đị ọ ược là m t s đ nh d ng BCDộ ố ị ạ * Vớ d :ụ
A I2.0 // Tớn hi u enable là I2.0ệ FR C1
A I2.1 // Tớn hi u đ m ti n là I2.1ệ ế ế CU C1
A I2.2. // Tớn hi u đ m lựi là I2.2ệ ế CD C1
A I2.3 // Tớn hi u set là I2.3ệ
L C#3
S C1
A I2.4 // Tớn hi u Reset là I2.4ệ
R C1
LC C1 // đ c giỏ tr b đ m dọ ị ộ ế ướ ại d ng BCD
T MW0
L C1 // đ c giỏ tr b đ m dọ ị ộ ế ướ ại d ng Binary
R MW2
A C1 // Đ c bit C_bit c a C1ọ ủ = Q.0
Hỡnh 2.18. Tỏc đ ng c a cỏc đ u vao đ n giỏ tr CV c a counter ộ ủ ầ ế ị ủ
Khi cú tớn hi u c a đ u vào đ m tiờn I2.1, giỏ tr b đ m tăng lờn 1. Ti pệ ủ ầ ế ị ộ ế ế đú cú tớn hi u set I2.3, giỏ tr b đ m đệ ị ộ ế ược gỏn b ng giỏ tr đ t trằ ị ặ ước. Khi cú tớn hi u đ u vào đ m lựi, giỏ tr b đ m gi m đi 1 đ n v . Ti p đú khi cú tớn hi uệ ầ ế ị ộ ế ả ơ ị ế ệ vào đ m ch đ ng I2.0 và giỏ tr đ u vào đ m lựi là 1 nờn giỏ tr b đ m gi mế ủ ộ ị ầ ế ị ộ ế ả ti p đi 1. Trong trế ường h p cú tớn hi u đ m ch đ ng I2.0 mà tớn hi u đ m ti nợ ệ ế ủ ộ ệ ế ế I2.1 đang b ng 1 thỡ giỏ tr c a b đ m tăng thờm 1.ằ ị ủ ộ ế
B đ m ti nộ ế ế B đ m lựiộ ế B đ m ti n, lựiộ ế ế