Tải bản đầy đủ (.doc) (18 trang)

TÌM HIỂU về bộ đếm tốc độ CAO TRONG PLC s7 200

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (443.64 KB, 18 trang )

TÌM HIỂU VỀ BỘ ĐẾM TỐC ĐỘ CAO TRONG PLC S7-200
1. Định nghĩa bộ đếm tốc độ cao ( High-speed counter defination ) :
Lệnh dùng định nghĩa bộ đếm tốc độ cao HDEF(High speed counter Defination) sẽ
cho phép chọn chế độ hoạt động của một bộ đếm tốc độ cao cụ thể (HSCx). Chế độ
hoạt động sẽ quyết định xung vào, chiều đếm, tín hiệu bắt đầu, và chức năng reset của
một bộ đếm tốc độ cao.
Bạn sử dụng một lệnh định nghĩa bộ đếm tốc độ cao cho mỗi bộ đếm tốc độ cao.
Các điều kiện gây ra lỗi sẽ set bit ENO = 0
0003 ( đầu vào xung đột )
0004 ( lệnh trong chương trình ngắt không hợp lệ )
000A ( bộ đếm cần được định nghĩa lại )
2. Bộ đếm tốc độ cao ( High speed counter – HSC ) :
Lệnh khai báo bộ đếm tốc độ cao HSC cấu hình và điều khiển bộ đếm tốc độ cao nhờ
vào các bit nhớ đặc biệt của bộ đếm tốc độ cao đó. Tham số N chỉ ra bộ đếm tốc độ
cao đang sử dụng là bộ đếm bao nhiêu. Bộ đếm tốc độ cao có thể được cấu hình lên
tới 12 chế độ hoạt động khác nhau (tham khảo bảng 6-26)
Mỗi bộ đếm được cung cấp đầu vào cho xung clock, điều khiển hướng đếm, tín hiệu
reset và bắt đầu mà bộ đếm đó hỗ trợ. Đối với những bộ đếm 2 pha thì cả hai đầu vào
xung có thể chạy ở tốc độ cực đại của chúng. Trong chế độ nhân tốc thì bạn có thể
chọn chế độ nhân 1 hoặc nhân 4 tốc độ cực đại. Tất cả các bộ đếm chạy ở tốc độ cực
đại mà không ảnh hưởng tới bộ đếm khác.
Điều kiện gây ra lỗi sẽ set ENO = 0
0001 ( lệnh HSC đặt trước HDEF )
0005 ( sử dụng đồng thời HSC/PLS )
Bộ đếm tốc độ cao đếm các sự kiện mà tốc độ của nó vượt khỏi tầm kiểm soát của
vòng quét S7-200. Tấn số đếm lớn nhất có thể của bộ đếm tùy thuộc vào loại CPU mà
bạn sử dụng. CPU 221 và CPU 222 hỗ trợ 4 bộ đếm tốc độ cao : HSC0, HSC3, HSC4
và HSC5. Hai loại CPU này không hỗ trợ bộ đếm HSC2 và HSC1. CPU 224, CPU
224XP và CPU 226 hỗ trợ cả 6 loại bộ đếm tốc độ cao từ HSC0 đến HSC5.
Về cơ bản thì bộ đếm tốc độ cao hoạt động tương tự như nguyên lý cơ bản của bộ
đếm trong S7-200. Ở đây có thể tưởng tượng rằng một encoder sẽ cung cấp đầu vào


xung clock cho bộ đếm. Encoder sẽ cho ra một số lượng xung nhất định trong một
vòng quay và một xung reset sẽ được cho ra sau một vòng quay. Xung clock và xung
reset sẽ là 2 đầu vào của bộ đếm tốc độ cao. Bộ đếm tốc độ cao sẽ được đặt trước với
một hằng số và đầu ra sẽ được tích cực trong khoảng thời gian mà giá trị đếm tức thời
nhỏ hơn giá trị đặt trước của bộ đếm. Bộ đếm được thiết lập để cung cấp một ngắt khi
giá trị đếm tức thời bẳng với giá trị đặt trước hoặc là khi ta reset bộ đếm.
Mỗi khi giá trị đếm tức thời bằng giá trị đặt trước một ngắt xảy ra thì một giá trị đặt
trước mới được nạp vào cho lần hoạt động tiếp theo của bộ đếm. Còn khi một tín hiệu
reset tích cực, một ngắt xảy ra thì giá trị đặt trước đầu tiên sẽ được nạp vào bộ đếm
cho chu kỳ tiếp theo.
3. Sự khác nhau giữa các bộ đếm tốc độ cao :
Mọi chức năng của bộ đếm là như nhau cho các chế độ hoạt động giống nhau. Có tất
cả 4 chế độ cơ bản : bộ đếm một pha với tín hiệu hướng đếm bên trong, một pha với
tín hiệu điều khiển hướng bên ngoài, hai pha với 2 đầu vào clock, và A/B pha cho chế
độ nhân tốc. Chú ý rằng không phải tất cả các chế độ đều được hỗ trợ bởi một bộ
đếm. Có thể sử dụng các loại điều khiển : không sử dụng đầu vào reset và start, có đầu
vào reset nhưng không có start, có cả reset và start.
Khi bạn cấp tín hiệu tích cực vào đầu reset, bộ đếm sẽ bị xóa giá trị đếm tức
thời và sẽ giữ ở trạng thái này cho đến khi bạn vô hiệu hóa đầu reset.
Khi bạn cấp tín hiệu tích cực cho đầu vào start, điều này cho phép bộ đếm bắt
đầu đếm. Trong khi tín hiệu start bị vô hiệu hóa thì giá trị đếm tức thời sẽ giữ nguyên
và tín hiệu clock đầu vào sẽ bị bỏ qua.
Nếu tín hiệu reset tích cực trong khi start không tích cực thì tín hiệu reset sẽ bị
bỏ qua và giá trị đếm không thay đổi. Nếu tín hiệu start tích cực trong khi reset cũng
tích cực thì giá trị đếm sẽ bị xóa.
Trước khi bạn sử dụng một bộ đếm tốc độ cao, bạn sử dụng một lệnh định nghĩa bộ
đếm HDEF để chọn chế độ hoạt động. Sử dụng bit đặc biệt SM0.1 ( bit này mở trong
chu kỳ quét đầu tiên của PLC và đóng ở các chu kỳ sau đó) để gọi một chương trình
con khởi tạo có chứa lệnh HDEF.
4. Lập trình một bộ đếm tốc độ cao :

Bạn có thể dùng HSC winzard để cấu hình cho bộ đếm tốc độ cao. HSC winzard sử
dụng các thông tin: loại và chế độ hoạt động của bộ đếm, giá trị đặt trước của bộ đếm,
giá trị tức thời của bộ đếm và khởi tạo hướng đếm. Để sử dụng HSC winzard bạn vào
Tool  Instruction Winzard  HSC
Để lập trình được một bộ đếm tốc độ cao bạn cần làm những bước sau đây:
1. Chỉ định bộ đếm và chọn chế độ đếm
2. Thiết lập byte điều khiển
3. Nạp giá trị bắt đầu cho bộ đếm ( starting value )
4. Nạp giá trị đặt trước cho bộ đếm ( target value )
5. Gán và cho phép chương trình ngắt
6. Khởi động bộ đếm ( tích cực bộ đếm )
I. Chỉ định chế độ hoạt động và các đầu vào :
Sử dụng lệnh định nghĩa bộ đếm tốc độ cao HDEF để chọn chế độ đếm (mode) và các
đầu vào sử dụng.
Bảng 6-26 mô tả các đầu vào sử dụng cho xung clock, điều khiển hướng và điều khiển
bắt đầu được gắn với mỗi bộ đếm cụ thể. Cùng một đầu vào không thể được sử dụng
cho hai chức năng khác nhau, nhưng nếu có bất kỳ đầu vào nào không được dùng bởi
chế độ hoạt động hiện thời của bộ đếm thì có thể được sử dụng cho các mục đích
khác. Ví dụ : nếu HSC0 hoạt động ở mode 1, điều này có nghĩa là I0.0 và I0.2, I0.1 có
thể được sử dụng cho các ngắt cạnh xung hoặc có thể được sử dụng cho HSC3.
Tip: Chú ý rằng tất cả các chế độ hoạt động của HSC0 ( trừ mode 12 ) luôn luôn sử
dụng I0.0 và tất cả HSC4 luôn luôn sử dụng I0.3, vì vậy những đầu vào này không
bao giờ được phép sử cho các yêu cầu khác khi các bộ đếm này được sử dụng.
Ví dụ cho chế độ đếm của HSC :
- Giản đồ thời gian ở hình 6-22 đến 6-26 biểu diễn chức năng khác
nhau của các bộ đếm tùy thuộc vào chế độ hoạt động của nó
Hình 6-22 biểu diễn HSC hoạt động ở mode 0, 1 hoặc 2. Ở đây giá trị bắt đầu được
nạp là 0, giá trị đặt trước là 4, hướng đếm được set là đếm lên và bit cho phép bộ đếm
được tích cực. Khi giá trị đếm tức thời bằng giá trị đặt trước thì ngắt xảy ra và trong
chương trình ngắt ta thực hiện việc thay đổi hướng đếm cho counter vì vậy sau ngắt

này bộ đếm bắt đầu đếm xuống từ giá trị 4.
Hình 6-23 biểu diễn HSC ở chế độ đếm 3, 4 hoặc 5. Ở đây giá trị bắt đầu được nạp là
0 và giá trị đặt trước được nạp là 4, hướng đếm được đặt đếm lên và bit cho phép
được tích cực. Khi giá trị đếm tức thời bằng với giá trị đặt trước thì một ngắt được tạo
ra và trong chuơng trình ngắt này ta không thay đổi gì về thông số của bộ đếm vì vậy
sau khi thực hiện ngắt thì bộ đếm vẫn tiếp tục hoạt động với những tham số đã hoạt
động trước đó. Sau khi có một xung điều khiển hướng đếm từ bên ngoài tác động làm
cho hướng đếm của bộ đếm thay đổi thành đếm xuống thì bộ đếm bắt đầu đếm từ 5
4 và tại đây giá trị đếm tức thời lại bằng giá trị đặt trước và một ngắt lại được phát
sinh.
- Khi bạn sử dụng chế độ đếm 6, 7 hoặc 8, khi đó một cạnh xung lên
xảy ra cách nhau 0.3 micro giây ở cả hai đầu vào up và down thì bộ
đếm tốc độ cao sẽ xem như hai sự kiện này xảy ra cùng lúc. Nếu
điều này xảy ra, giá trị đếm tức thời sẽ không thay đổi gì và cũng
không có sự thay đổi về hướng đếm. Cho đến khi nào sự xuất hiện
của cạnh lên hai xung này diễn ra trong khoảng thời gian cách nhau
lớn hơn 0.3 micro giây thì bộ đếm mới xem đây là 2 sự kiện riêng
biệt nhau. Trong cả hai trường hợp trên thì sẽ không có lỗi được
thông báo và bộ đếm vẫn giữ chính xác giá trị đếm của nó.
Trong hình 6-24 biểu diễn HSC ở mode đếm 6, 7 hoặc 8. Ở đây giá trị bắt đầu và giá
trị đặt trước vẫn là 0 và 4, hướng đếm lên và bit cho phép được tích cực. Ở các chế độ
này thì ta sẽ đếm 2 sự kiện ở đầu vào up và down và một ngắt cũng phát sinh khi giá
trị đếm tức thời bằng giá trị đặt trước của bộ đếm.
Hình 6-25 là ví dụ về HSC hoạt động ở chế độ quadrate nhân 1x. Giá trị bắt đầu và
giá trị đặt trước được nạp là 0 và 3, hướng đếm lên và bit cho phép được tích cực. Ở
các mode đếm này ta đếm sự kiện ở đầu vào A và B, đầu vào của xung A và B tạo ra
sự kiện đếm cho HSC. Và dựa vào thời gian xuất hiện của xung ở đầu A và B mà bộ
đếm sẽ đếm lên hoặc đếm xuống. Nếu pha A sớm hơn pha B thì đếm lên và ngược lại
sẽ đếm xuống. Ở đây cũng có ngắt phát sinh khi giá trị đếm bằng giá trị đặt trước.
Hình 6-26 biểu diễn HSC ở mode đếm 9, 10 hoặc 11 chế độ quadrate nhân 4x. Ở đây

giá trị bắt đầu và giá trị đặt trước được nạp tương ứng là 0 và 9, hướng đếm lên và bit
cho phép được tích cực. Với các mode đếm này ta đếm sự kiện ở đầu vào A và B với
tốc độ nhân 4. Nghĩa là với một xung ở A và một xung ở B ta sẽ có được số đếm là 4
như trong hình vẽ. Cũng giống như ở chế độ quadrate nhân 1x thì tùy vào sự xuất hiện
của xung ở A hay B trước mà bộ đếm sẽ đếm lên hay xuống. Cũng có ngắt được phát
sinh khi giá trị đếm bằng giá trị đặt.
Hoạt động của tín hiệu Reset và tín hiệu Start :
Hoạt động của tín hiệu Reset và tín hiệu Start được biểu diễn cụ thể trong hình 6-27
và nó được áp dụng cho tất cả các chế độ hoạt động có sử dụng đầu vào tín hiệu Reset
và Start. Trong hình tất cả các tín hiệu đầu vào Start và Reset đều được cho tích cực ở
mức cao.
Ở hình phía bên tay trái là chế độ hoạt động chỉ với tín hiệu Reset. Giá trị đếm của bộ
đếm sẽ trong khoảng -2.147.483.648 +2.147.483.648 khi đầu vào Reset đang ở
mức không tích cực (0). Khi đầu vào Reset được tích cực (1) thì một ngắt reset được
phát sinh và giá trị bộ đếm được xóa về 0 và sẽ tiếp tục giữ giá trị 0 khi mà tín hiệu
reset còn tích cực (1). Khi chân tín hiệu reset được vô hiệu hóa (0) thì giá trị bộ đếm
sẽ nằm trong khoảng -2.147.483.648 +2.147.483.648.
Ở hình phía bên tay phải biểu diễn chế độ hoạt động với cả hai tín hiệu Reset và
Start. Sẽ có các trường hợp sau có thể xảy ra :
- Start không tích cực (0) : thì giá trị bộ đếm sẽ không thay đổi bất chấp giá trị
của tín hiệu Reset
- Tín hiệu Start tích cực (1) : khi tín hiệu Start tích cực bộ đếm bắt đầu đếm và
giá trị thay đổi và giá trị bộ đếm trong khoảng -2.147.483.648 +2.147.483.648 nếu
chân Reset là không tích cực (0) và sẽ là 0 nếu chân Reset tích cực (1). Nếu chân
Reset tích cực thì giá trị bộ đếm xóa về 0 và có ngắt phát sinh.
Có tất cả 4 bộ đếm mà chúng có 3bit điều khiển được sử dụng để cấu hình trạng thái
tích cực cho tín hiệu đầu vào Reset và Start của bộ đếm và để cấu hình chế độ đếm 1x
hoặc 4x ( dành cho quadrate mode ). Các bit này nằm trong byte điều khiển và được
sử dụng khi lệnh HDEF được thực thi. Những bit này được mô tả trong bảng 6-27.
Tip: Bạn cần thiết lập các bit điều khiển này ở trạng thái mong muốn trước khi bạn

thực thi lệnh HDEF. Nếu không, bộ đếm sẽ lấy giá trị mặc định để cấu hình cho mode
tương ứng được chọn. Một khi lệnh HDEF đã được thực thi thì bạn không thể thay
đổi thiết đặt của bộ đếm trừ khi bạn cho PLC dừng hoạt động và thiết lập lại trước lần
chạy đầu tiên
II. Thiết lập byte điều khiển :
Sau khi đã định nghĩa bộ đếm và chọn chế độ đếm bạn có thể lập trình cho các tham
số động của bộ đếm. Mỗi bộ đếm có một byte điều khiển với các chức năng dưới đây:
- Cho phép hoặc cấm bộ đếm
- Điều khiển hướng đếm (dùng cho mode 0,1,2) hoặc thiết lập hướng
đếm ban đầu cho tất cả các mode.
- Nạp giá trị bắt đầu
- Nạp giá trị đặt trước
Bảng 6-28 biểu diễn những bit trong byte điều khiển :
III. Thiết lập giá trị bắt đầu và giá trị đặt trước cho bộ đếm :
Mỗi bộ đếm tốc độ cao có một giá trị đếm tức thời 32 bit và một giá trị đặt trước 32
bit. Cả hai giá trị này đều được đặt dưới dạng số integer. Để nạp giá trị mới cho giá trị
đặt trước và giá trị bắt đầu ta cần bạn phải thiết lập cho byte điều khiển và các byte bộ
nhớ đặc biệt chứa giá trị tức thời và giá trị đặt trước và cũng phải thực thi lệnh HSC
để giá trị mới này có thể được nạp lại cho bộ đếm tốc độ cao. Bảng 6-29 liệt kê các
byte bộ nhớ đặc biệt được sử dụng để lưu giá trị tức thời và giá trị đặt trước của bộ
đếm tốc độ cao.
Ngoài byte điều khiển, giá trị tức thời của bộ đếm chỉ có thể được đọc bằng cách sử
dụng kiểu dữ liệu HC (high speed counter current) và theo sau đó là chỉ số của bộ
đếm như được trình bày ở bảng 6-29. Giá trị tức thời được truy cập trực tiếp bởi các
toán hạng nhưng chỉ có thể ghi bằng lệnh HSC.
Định địa chỉ cho bộ đếm tốc độ cao : HC
Để truy cập giá trị của bộ đếm tốc độ cao ta cần chỉ định chỉ số của bộ đếm sử dụng
kiểu dữ liệu HC và chỉ số của bộ đếm ví dụ như HC0. Giá trị tức thời của bộ đếm tốc
độ cao là một giá trị chỉ đọc và chỉ có thể được định địa chỉ ở dạng double word
(32bit) như được biểu diễn ở hình 6-28.

IV. Gán chương trình ngắt :
Tất cả các chế độ hoạt động của bộ đếm tốc độ cao đều cung cấp một sự kiện ngắt khi
giá trị tức thời của HSC bằng với giá đị được nạp trước của nó. Ở các chế độ hoạt
động với việc sử dụng tín hiệu reset từ bên ngoài thì có thêm một ngắt khi tín hiệu
reset được tích cực. Tất cả các chế độ hoạt động của bộ đếm tốc độ cao ngoại trừ
mode 0,1,2 cung cấp một sự kiện ngắt khi chiều đếm được thay đổi. Mỗi sự kiện ngắt
này có thể được cho phép hoặc cấm một cách riêng biệt nhau. Để có sự thảo luận kỹ
hơn về cách sử dụng các chương trình ngắt chúng ta cần tham khảo thêm tài liệu về
phần lệnh ngắt và lệnh giao tiếp.
Tip : Một lỗi nghiêm trọng có thể xảy ra nếu ta đồng thời nạp giá trị mới cho bộ đếm
hoặc cấm sau đó cho phép bộ đếm hoạt động trong khi thực thi chương trình ngắt của
ngắt ngoài với tín hiệu reset.
Byte trạng thái :
Byte trạng thái cho mỗi bộ đếm tốc độ cao sẽ cung cấp các bit nhớ nhằm xác định
hướng đếm và khi nào giá trị tức thời lớn hơn hoặc bằng với giá trị đặt trước. Bảng 6-
31 định nghĩa những bit trạng thái này cho mỗi bộ đếm cụ thể .
5. Các ví dụ về trình tự lập trình cho bộ đếm tốc độ cao :
HSC1 được sử dụng như một ví dụ mẫu cho các bài toán dưới đây. Việc khởi tạo
được thực hiện với giả thuyết rằng S7-200 vừa mới được thiết lập ở chế độ RUN vì
thế bit nhớ cho vòng quét đầu tiên đã tích cực. Trong các trường hợp khác, phải nhớ
rằng lệnh HDEF chỉ có thể được thực thi một lần cho mỗi bộ đếm tốc độ cao sau khi
đã chuyển sang chế độ RUN. Nếu ta thực thi HDEF cho một bộ đếm tốc độ cao 2 lần
thì một lỗi thồi gian thực sẽ xảy ra và nó sẽ không thay đổi thiết lập ban đầu của bộ
đếm.
Tip: mặc dù các ví dụ dưới đây chỉ ta cách chuyển hướng đếm, giá trị tức thời, giá trị
đặt trước một cách riêng lẻ nhau, nhưng bạn có thể thay đổi tất cả chúng hoặc kết hợp
chúng trong một lần thay đổi bằng cách thiết lập các giá trị ở byte SMB47 và sau đó
thực thi lệnh HSC.
Khởi tạo Mode 0,1 hoặc 2 :
Các bước được trình bày bên dưới mô tả cách thiết lập HSC1 ở chế độ đếm Single

Phase Up/Down Counter với tín hiệu điều khiển hướng bên trong ( mode 0,1,2)
1. Sử dụng bit cho trạng thái on ở vòng quét đầu tien SM0.1 để gọi chương
trình con mà trong đó việc khởi tạo bộ đếm được tiến hành. Vì bạn sử
dụng một lệnh gọi chương trình con nên các vòng quét sau sẽ không gọi
chương trình con này nữa, điều này giúp giảm thiểu thời gian thực thi của
một vòng quét đồng thời cho ta một chương trình có cấu trúc tốt
2. Trong chương trình con ta nạp cho byte điều khiển SMB47 giá trị tùy
thuộc vào chế độ mà ta muốn thiết lập. Ví dụ như :
SMB47 = 16#F8 sẽ cho ta kết quả như sau :
- Cho phép bộ đếm
- Ghi giá trị tức thời mới cho bộ đếm
- Ghi một giá trị đặt trước mới cho bộ đếm
- Thiết lập hướng đếm cho bộ đếm là đếm lên
- Thiết lập tín hiệu Reset và Start tích cực ở mức cao
3. Thực thi lệnh HDEF với đầu vào của HSC được thiết lập là 1 và chế độ
hoạt động MODE được thiết lập theo một trong các lựa chọn sau : 0 (cho
chế độ không cho phép Reset và Start bên ngoài), 1(cho phép Reset bên
ngoài nhưng không cho phép Start), 2 ( cho phép cả Start và Reset bên
ngoài)
4. Nạp cho SMD48 (giá trị ở dạng double word) với giá trị bắt đầu mong
muốn ( nạp giá trị 0 nếu muốn xóa)
5. Nạp cho SMD52 (giá trị ở dạng double word) với giá trị đặt trước mong
muốn.
6. Để có thể biết được khi nào giá trị tức thời bằng giá trị đặt trước ta lập
trình một chương trình ngắt bằng cách gán một ngắt bằng sự kiện ngắt khi
CV=PV (sự kiện ngắt số 13) cho một chương trình ngắt. Tham khảo thêm
phần hướng dẫn chương trình ngắt để có thêm thông tin chi tiết về xử lý
ngắt.
7. Để có thể phát hiện được một sự kiện reset bên ngoài xảy ra ta cần lập
trình một chương trình ngắt bằng cách gán sự kiện ngắt ngoài ở tín hiệu

reset (sự kiện ngắt số 15) cho một chương trình ngắt.
8. Thực thi lệnh ENI để cho phép các ngắt xảy ra
9. Thực thi lệnh HSC để S7-200 lập trình cho HSC1.
10. Thoát khỏi chương trình con.
Khởi tạo Mode 3,4 hoặc 5 :
Dưới đây là các bước thực hiện việc cấu hình cho HSC1 cho chế độ Single Phase
Up/Down Counter với tín hiệu điều khiển hướng bên ngoài (Mode 3,4 hoặc 5)
1. Sử dụng bit cho trạng thái on ở vòng quét đầu tien SM0.1 để gọi chương
trình con mà trong đó việc khởi tạo bộ đếm được tiến hành. Vì bạn sử
dụng một lệnh gọi chương trình con nên các vòng quét sau sẽ không gọi
chương trình con này nữa, điều này giúp giảm thiểu thời gian thực thi của
một vòng quét đồng thời cho ta một chương trình có cấu trúc tốt
2. Trong chương trình con ta nạp cho byte điều khiển SMB47 giá trị tùy
thuộc vào chế độ mà ta muốn thiết lập. Ví dụ như :
SMB47 = 16#F8 sẽ cho ta kết quả như sau
- Cho phép bộ đếm
- Ghi một giá trị tức thời cho bộ đếm
- Ghi giá trị đặt trước cho bộ đếm
- Thiết lập hướng đếm cho HSC là đếm lên
- Thiết lập tín hiệu Reset và Start tích cực ở mức cao
3. Thực thi lệnh HDEF với đầu vào của HSC được thiết lập là 1 và chế độ
hoạt động MODE được thiết lập theo một trong các lựa chọn sau : 3 (cho
chế độ không cho phép Reset và Start bên ngoài), 4(cho phép Reset bên
ngoài nhưng không cho phép Start), 5 ( cho phép cả Start và Reset bên
ngoài)
4. Nạp cho SMD48 (giá trị ở dạng double word) với giá trị bắt đầu mong
muốn ( nạp giá trị 0 nếu muốn xóa)
5. Nạp cho SMD52 (giá trị ở dạng double word) với giá trị đặt trước mong
muốn.
6. Để có thể biết được khi nào giá trị tức thời bằng giá trị đặt trước ta lập

trình một chương trình ngắt bằng cách gán một ngắt bằng sự kiện ngắt khi
CV=PV (sự kiện ngắt số 13) cho một chương trình ngắt. Tham khảo thêm
phần hướng dẫn chương trình ngắt để có thêm thông tin chi tiết về xử lý
ngắt.
7. Để có thể phát hiện sự thay đổi hướng đếm ta cần lập trình một chương
trình ngắt bằng cách gán sự kiện ngắt khi hướng đếm thay đổi (sự kiện
ngắt thứ 14) cho một chương trình ngắt.
8. Để có thể phát hiện được một sự kiện reset bên ngoài xảy ra ta cần lập
trình một chương trình ngắt bằng cách gán sự kiện ngắt ngoài ở tín hiệu
reset (sự kiện ngắt số 15) cho một chương trình ngắt.
9. Thực thi lệnh ENI để cho phép các ngắt xảy ra
10. Thực thi lệnh HSC để S7-200 lập trình cho HSC1.
11. Thoát khỏi chương trình con.
Khởi tạo Mode 6,7 hoặc 8 :
Dưới đây là các bước thực hiện việc cấu hình cho HSC1 cho chế độ Two Phase
Up/Down Counter (Mode 6,7 hoặc 8)
1. Sử dụng bit cho trạng thái on ở vòng quét đầu tien SM0.1 để gọi chương
trình con mà trong đó việc khởi tạo bộ đếm được tiến hành. Vì bạn sử
dụng một lệnh gọi chương trình con nên các vòng quét sau sẽ không gọi
chương trình con này nữa, điều này giúp giảm thiểu thời gian thực thi của
một vòng quét đồng thời cho ta một chương trình có cấu trúc tốt
2. Trong chương trình con ta nạp cho byte điều khiển SMB47 giá trị tùy
thuộc vào chế độ mà ta muốn thiết lập. Ví dụ như :
SMB47 = 16#F8 sẽ cho ta kết quả như sau
- Cho phép bộ đếm :
- Ghi một giá trị tức thời cho bộ đếm
- Ghi giá trị đặt trước cho bộ đếm
- Thiết lập hướng đếm cho HSC là đếm lên
- Thiết lập tín hiệu Reset và Start tích cực ở mức cao
3. Thực thi lệnh HDEF với đầu vào của HSC được thiết lập là 1 và chế độ

hoạt động MODE được thiết lập theo một trong các lựa chọn sau : 6 (cho
chế độ không cho phép Reset và Start bên ngoài), 7(cho phép Reset bên
ngoài nhưng không cho phép Start), 8 ( cho phép cả Start và Reset bên
ngoài)
4. Nạp cho SMD48 (giá trị ở dạng double word) với giá trị bắt đầu mong
muốn ( nạp giá trị 0 nếu muốn xóa)
5. Nạp cho SMD52 (giá trị ở dạng double word) với giá trị đặt trước mong
muốn.
6. Để có thể biết được khi nào giá trị tức thời bằng giá trị đặt trước ta lập
trình một chương trình ngắt bằng cách gán một ngắt bằng sự kiện ngắt khi
CV=PV (sự kiện ngắt số 13) cho một chương trình ngắt. Tham khảo thêm
phần hướng dẫn chương trình ngắt để có thêm thông tin chi tiết về xử lý
ngắt.
7. Để có thể phát hiện sự thay đổi hướng đếm ta cần lập trình một chương
trình ngắt bằng cách gán sự kiện ngắt khi hướng đếm thay đổi (sự kiện
ngắt thứ 14) cho một chương trình ngắt.
8. Để có thể phát hiện được một sự kiện reset bên ngoài xảy ra ta cần lập
trình một chương trình ngắt bằng cách gán sự kiện ngắt ngoài ở tín hiệu
reset (sự kiện ngắt số 15) cho một chương trình ngắt.
9. Thực thi lệnh ENI để cho phép các ngắt xảy ra
10. Thực thi lệnh HSC để S7-200 lập trình cho HSC1.
11. Thoát khỏi chương trình con.
Khởi tạo Mode 9,10 hoặc 11 :
Các bước thực hiện dưới đây mô tả cách cấu hình bộ đếm HSC1 với chế độ hoạt động
A/B Phase Quadrate Counter (Mode 9,10 hoặc 11)
1. Sử dụng bit cho trạng thái on ở vòng quét đầu tien SM0.1 để gọi chương
trình con mà trong đó việc khởi tạo bộ đếm được tiến hành. Vì bạn sử
dụng một lệnh gọi chương trình con nên các vòng quét sau sẽ không gọi
chương trình con này nữa, điều này giúp giảm thiểu thời gian thực thi của
một vòng quét đồng thời cho ta một chương trình có cấu trúc tốt

2. Trong chương trình con ta nạp cho byte điều khiển SMB47 giá trị tùy
thuộc vào chế độ mà ta muốn thiết lập. Ví dụ như :
SMB47 = 16#FC sẽ cho ta kết quả như sau (ví dụ cho mode x1)
- Cho phép bộ đếm :
- Ghi một giá trị tức thời cho bộ đếm
- Ghi giá trị đặt trước cho bộ đếm
- Thiết lập hướng đếm cho HSC là đếm lên
- Thiết lập tín hiệu Reset và Start tích cực ở mức cao
SMB47 = 16#F8 sẽ cho ta kết quả như sau (ví dụ cho mode x4)
- Cho phép bộ đếm :
- Ghi một giá trị tức thời cho bộ đếm
- Ghi giá trị đặt trước cho bộ đếm
- Thiết lập hướng đếm cho HSC là đếm lên
- Thiết lập tín hiệu Reset và Start tích cực ở mức cao
3. Thực thi lệnh HDEF với đầu vào của HSC được thiết lập là 1 và chế độ
hoạt động MODE được thiết lập theo một trong các lựa chọn sau : 6 (cho
chế độ không cho phép Reset và Start bên ngoài), 7(cho phép Reset bên
ngoài nhưng không cho phép Start), 8 ( cho phép cả Start và Reset bên
ngoài)
4. Nạp cho SMD48 (giá trị ở dạng double word) với giá trị bắt đầu mong
muốn ( nạp giá trị 0 nếu muốn xóa)
5. Nạp cho SMD52 (giá trị ở dạng double word) với giá trị đặt trước mong
muốn.
6. Để có thể biết được khi nào giá trị tức thời bằng giá trị đặt trước ta lập
trình một chương trình ngắt bằng cách gán một ngắt bằng sự kiện ngắt khi
CV=PV (sự kiện ngắt số 13) cho một chương trình ngắt. Tham khảo thêm
phần hướng dẫn chương trình ngắt để có thêm thông tin chi tiết về xử lý
ngắt.
7. Để có thể phát hiện sự thay đổi hướng đếm ta cần lập trình một chương
trình ngắt bằng cách gán sự kiện ngắt khi hướng đếm thay đổi (sự kiện

ngắt thứ 14) cho một chương trình ngắt.
8. Để có thể phát hiện được một sự kiện reset bên ngoài xảy ra ta cần lập
trình một chương trình ngắt bằng cách gán sự kiện ngắt ngoài ở tín hiệu
reset (sự kiện ngắt số 15) cho một chương trình ngắt.
9. Thực thi lệnh ENI để cho phép các ngắt xảy ra
10. Thực thi lệnh HSC để S7-200 lập trình cho HSC1.
11. Thoát khỏi chương trình con.
Khởi tạo Mode 12 :
Các bước thực hiện dưới đây mô tả cách cấu hình bộ đếm HSC0 với chế độ hoạt động
đếm xung do bộ phát xung PTO0 phát ra (Mode 12)
1. Sử dụng bit cho trạng thái on ở vòng quét đầu tien SM0.1 để gọi chương
trình con mà trong đó việc khởi tạo bộ đếm được tiến hành. Vì bạn sử
dụng một lệnh gọi chương trình con nên các vòng quét sau sẽ không gọi
chương trình con này nữa, điều này giúp giảm thiểu thời gian thực thi của
một vòng quét đồng thời cho ta một chương trình có cấu trúc tốt
2. Trong chương trình con ta nạp cho byte điều khiển SMB37 giá trị tùy
thuộc vào chế độ mà ta muốn thiết lập. Ví dụ như :
SMB37 = 16#F8 sẽ cho ta kết quả như sau
- Cho phép bộ đếm :
- Ghi một giá trị tức thời cho bộ đếm
- Ghi giá trị đặt trước cho bộ đếm
- Thiết lập hướng đếm cho HSC là đếm lên
- Thiết lập tín hiệu Reset và Start tích cực ở mức cao
3. Thực thi lệnh HDEF với đầu vào của HSC được thiết lập là 0 (bộ đếm 0)
và chế độ hoạt động MODE được thiết lập 12 (mode 12)
4. Nạp cho SMD38 (giá trị ở dạng double word) với giá trị bắt đầu mong
muốn ( nạp giá trị 0 nếu muốn xóa)
5. Nạp cho SMD42 (giá trị ở dạng double word) với giá trị đặt trước mong
muốn.
6. Để có thể biết được khi nào giá trị tức thời bằng giá trị đặt trước ta lập

trình một chương trình ngắt bằng cách gán một ngắt bằng sự kiện ngắt khi
CV=PV (sự kiện ngắt số 13) cho một chương trình ngắt. Tham khảo thêm
phần hướng dẫn chương trình ngắt để có thêm thông tin chi tiết về xử lý
ngắt.
7. Thực thi lệnh ENI để cho phép các ngắt xảy ra
8. Thực thi lệnh HSC để S7-200 lập trình cho HSC0.
9. Thoát khỏi chương trình con.
Sự thay đổi hướng đếm trong các chế độ hoạt động Mode 0, 1, 2 hoặc 12
Các bước được trình bày dưới đây mô tả cách cấu hình HSC1 cho việc thay đổi hướng
đếm trong các chế độ hoạt động với tín hiệu điều khiển hướng đếm bên ngoài (Mode
0, 1, 2 hoặc 12)
1. Nạp cho byte điều khiển SMB47 để có được hướng đếm mong muốn:
SMB47 = 16#90 Cho phép bộ đếm
Thiết lập hướng đếm cho bộ đếm là đếm xuống
SMB47 = 16#98 Cho phép bộ đếm
Thiết lập hướng đếm cho bộ đếm là đếm lên
2. Thực thi lệnh HSC để S7-200 lập trình cho bộ đếm tốc độ cao HSC1
Nạp một giá trị bắt đầu mới cho bộ đếm (bất kỳ mode nào)
Để thay đổi giá trị bắt đầu (hoặc nạp giá trị đếm) cho bộ đếm ta sẽ làm cho bộ đếm
tạm thời ngừng hoạt động trong khi thay đổi được thực hiện. Trong khi bộ đếm bị
ngừng hoạt động nó không thay đổi giá trị đếm và các ngắt không được phát sinh.
Các bước thực hiện dưới đây chỉ ra cách thay đổi giá trị đếm cho bộ đếm HSC1 (bất
kì mode nào)
1. Nạp cho SMB47 giá trị để có thể thực hiện việc nạp
SMB47 = 16#C0 Cho phép bộ đếm ghi giá trị đếm mới
2. Nạp cho SMD48 một giá trị đếm mong muốn (nạp 0 nếu muốn xóa)
3. Thực thi lệnh HSC để S7-200 lập trình cho bộ đếm HSC1
Nạp một giá trị đặt trước mới cho bộ đếm (bất kỳ mode nào)
Các bước thực hiện dưới đây chỉ ra cách thay đổi giá trị đặt trước cho bộ đếm HSC1
(bất kì mode nào)

1. Nạp cho SMB47 giá trị để có thể thực hiện việc nạp
SMB47 = 16#A0 Cho phép bộ đếm ghi giá trị đặt trước mới
2. Nạp cho SMD52 một giá trị đặt trước mong muốn
3. Thực thi lệnh HSC để S7-200 lập trình cho bộ đếm HSC1
Cấm bộ đếm tốc độ cao (bất kỳ mode nào)
Các bước thực hiện dưới đây sẽ cấm HSC1 (có thể áp dụng ở mọi chế độ)
1. Nạp cho SMB47 giá trị để cấm bộ đếm
SMB47 = 16#00 Cấm bộ đếm
2. Thực thi lệnh HSC để cấm bộ đếm
Ví dụ lập trình bộ đếm tốc độ cao :
Ví dụ khởi tạo HSC0 hoạt động ở Mode 0:
Chương trình chính :
Chương trình con khởi tạo HSC0 ở Mode0
Ví dụ khởi tạo HSC1 hoạt động ở Mode 0 :
Chương trình chính :
Chương trình con khởi tạo HSC1 hoạt động ở mode 0

×