hsc s7200 tut

18
 TÌM HIU VBĐẾM TC ĐỘ CAO TRONG PLC S7-200 1. Định ng hĩa bđ ếm tc độ cao ( High-s peed c ounte r defination ) : Lnh dùng định nghĩa bđếm tc độ cao HDEF(High speed counter Defination) scho phép chn chế độ hot động ca mt bđếm tc độ cao cth(HSCx). Chế độ hot động squyết định xung vào, chiu đếm, tín hiu bt đầu, và chc năng reset ca mt bđếm tc độ cao. Bn sdng mt lnh định nghĩa bđếm tc độ cao cho mi bđếm tc độ cao. Các điu kin gây ra li sset bit ENO = 0 0003 ( đầu vào xung đột ) 0004 ( lnh trong chương trình ngt không hp l) 000A ( bđếm cn được định nghĩa li ) 2. Bđế m tc độ c ao ( High spee d counter – HSC ) : Lnh khai báo bđếm tc độ cao HSC cu hình và điu khin bđếm tc độ cao nhờ vào các bit nhđặc bit ca bđếm tc độ cao đó. Tham sN chra bđếm tc độ cao đang sdng là bđếm bao nhiêu. Bđếm tc độ cao có thđược cu hình lên ti 12 chế độ hot động khác nhau (tham kho bng 6-26) Mi bđếm được cung cp đầu vào cho xung clock, điu khin hướng đếm, tín hiu reset và bt đầu mà bđếm đó htr. Đối vi nhng bđếm 2 pha thì chai đầu vào xung có thchy tc độ cc đại ca chúng. Trong chế độ nhân tc thì bn có thchn chế độ nhân 1 hoc nhân 4 tc độ cc đại. Tt ccác bđếm chy tc độ cc đại mà không nh hưởng ti bđếm khác. Điu kin gây ra li sset ENO = 0 0001 ( lnh HSC đặt trước HDEF ) 0005 ( sdng đồng thi HSC/PLS ) Bđếm tc độ cao đếm các skin mà tc độ ca nó vượt khi tm kim soát ca vòng quét S7-200. Tn sđếm ln nht có thca bđếm tùy thuc vào loi CPU mà  bn sdng. CPU 221 và CPU 222 htr4 bđếm tc độ cao : HSC0, HSC3, HSC4 và HSC5. Hai loi CPU này không htrbđếm HSC2 và HSC1. CPU 224, CPU 224XP và CPU 226 htrc6 loi bđếm tc độ cao tHSC0 đến HSC5. Vcơ bn thì bđếm tc độ cao hot động tương tnhư nguyên lý cơ bn ca bđếm trong S7-200. đây có thtưởng tượng rng mt encoder scung cp đầu vào xung clock cho bđếm. Encoder scho ra mt slượng xung nht định trong mt vòng quay và mt xung reset sđược cho ra sau mt vòng quay. Xung clock và xung reset slà 2 đầu vào ca bđếm tc độ cao. Bđếm tc độ cao sđược đặt trước vi mt hng sđầu ra sđược tích cc trong khong thi gian mà giá trđếm tc thi nhhơn giá trđặt trước ca bđếm. Bđếm được thiết lp để cung cp mt ngt khi giá trđếm tc thi bng vi giá trđặt trước hoc là khi ta reset bđếm. Mi khi giá trđếm tc thi bng giá trđặt trước mt ngt xy ra thì mt giá trđặt trước mi được np vào cho ln hot động tiếp theo ca bđếm. Còn khi mt tín hiu reset tích cc, mt ngt xy ra thì giá trđặt trước đầu tiên sđược np vào bđếm cho chu ktiếp theo. 3. Skh ác n hau g i a các b đếm tc đ ca o : Mi chc năng ca bđếm là như nhau cho các chế độ hot động ging nhau. Có tt c4 chế độ cơ bn : bđếm mt pha vi tín hiu hướng đếm bên trong, mt pha vi tín hiu điu khin hướng bên ngoài, hai pha vi 2 đầu vào clock, và A/B pha cho chế độ nhân tc. Chú ý rng không phi tt ccác chế độ đều được htrbi mt b

Upload: duong-van-thanh

Post on 09-Jul-2015

699 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 1/18

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ủamộ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êntớ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ệureset và bắt đầu mà bộ đếm đó hỗ trợ. Đối với những bộ đếm 2 pha thì cả hai đầu vàoxung 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ủavò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, HSC4và HSC5. Hai loại CPU này không hỗ trợ bộ đếm HSC2 và HSC1. CPU 224, CPU224XP 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àoxung clock cho bộ đếm. Encoder sẽ cho ra một số lượng xung nhất định trong mộtvòng quay và một xung reset sẽ được cho ra sau một vòng quay. Xung clock và xungreset sẽ là 2 đầu vào của bộ đếm tốc độ cao. Bộ đếm tốc độ cao sẽ được đặt trước vớimộ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 khigiá 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ị đặttrướ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ệureset 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ộ đếmcho 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ấtcả 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ớití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ộ

Page 2: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 2/18

đế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ó đầuvà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ứcthờ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ênvà 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ũngtí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ở trongchu kỳ quét đầu tiên của PLC và đóng ở các chu kỳ sau đó) để gọi một chương trìnhcon 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àoTool 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ế độ đếm2. Thiết lập byte điều khiển3.  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ụngcho 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ởichế độ hoạt động hiện thời của bộ đếm thì có thể được sử dụng cho các mục đíchkhá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.

Page 3: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 3/18

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ácnhau 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 đượcnạ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ắtnày bộ đếm bắt đầu đếm xuống từ giá trị 4.

Page 4: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 4/18

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ạora 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ậysau 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àmcho hướng đếm của bộ đếm thay đổi thành đếm xuống thì bộ đếm bắt đầu đếm từ 54 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átsinh.

- Khi bạn sử dụng chế độ đếm 6, 7 hoặc 8, khi đó một cạnh xung lênxả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ũngkhông có sự thay đổi về hướng đếm. Cho đến khi nào sự xuất hiệncủa cạnh lên hai xung này diễn ra trong khoảng thời gian cách nhaulớ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 đượcthông báo và bộ đếm vẫn giữ chính xác giá trị đếm của nó.

Page 5: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 5/18

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 rasự 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ạisẽ đếm xuống. Ở đây cũng có ngắt phát sinh khi giá trị đếm bằng giá trị đặt trước.

Page 6: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 6/18

Hình 6-26 biểu diễn HSC ở mode đếm 9, 10 hoặc 11 chế độ quadrate nhân 4x. Ở đâygiá 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à bitcho 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ớitố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à 4như 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átsinh 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-27và 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 Resetvà 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.

Page 7: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 7/18

Ở 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ệureset 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ếuchâ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ânReset 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áití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 1xhoặc 4x ( dành cho quadrate mode ). Các bit này nằm trong byte điều khiển và đượcsử 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ạnthực thi lệnh HDEF. Nếu không, bộ đếm sẽ lấy giá trị mặc định để cấu hình cho modetươ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ầnchạy đầu tiên

Page 8: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 8/18

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 thamsố độ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

Page 9: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 9/18

Để 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ụngkiể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 khigiá 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ắtnà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ộ đếmhoặc cấm sau đó cho phép bộ đếm hoạt động trong khi thực thi chương trình ngắt củangắ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 địnhhướ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ể .

Page 10: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 10/18

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ầnthì 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ợpchú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 SinglePhase 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ươngtrì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ọichươ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ủamộ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ùythuộ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 (chochế độ không cho phép Reset và Start bên ngoài), 1(cho phép Reset bênngoà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 mongmuố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 mongmuố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ậptrì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 khiCV=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ệureset (sự kiện ngắt số 15) cho một chương trình ngắt.

Page 11: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 11/18

8. Thực thi lệnh ENI để cho phép các ngắt xảy ra9. 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 PhaseUp/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ươngtrì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ọichươ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ủamộ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ùythuộ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ênngoài nhưng không cho phép Start), 5 ( cho phép cả Start và Reset bênngoài)

4. Nạp cho SMD48 (giá trị ở dạng double word) với giá trị bắt đầu mongmuố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 mongmuố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ậptrì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 khiCV=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ệnngắ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ậptrì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ệureset (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 ra10. Thực thi lệnh HSC để S7-200 lập trình cho HSC1.11. Thoát khỏi chương trình con.

Page 12: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 12/18

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 PhaseUp/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ươngtrì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ọichươ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ủamộ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ùythuộ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 (chochế độ không cho phép Reset và Start bên ngoài), 7(cho phép Reset bênngoài nhưng không cho phép Start), 8 ( cho phép cả Start và Reset bênngoài)

4. Nạp cho SMD48 (giá trị ở dạng double word) với giá trị bắt đầu mongmuố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 mongmuố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ậptrì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 khiCV=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ươngtrình ngắt bằng cách gán sự kiện ngắt khi hướng đếm thay đổi (sự kiệnngắ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ậptrì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ệureset (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 ra10. 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 độngA/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

Page 13: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 13/18

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ủamộ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ùythuộ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 (chochế độ không cho phép Reset và Start bên ngoài), 7(cho phép Reset bênngoài nhưng không cho phép Start), 8 ( cho phép cả Start và Reset bênngoài)

4. Nạp cho SMD48 (giá trị ở dạng double word) với giá trị bắt đầu mongmuố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 mongmuố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 khiCV=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ươngtrình ngắt bằng cách gán sự kiện ngắt khi hướng đếm thay đổi (sự kiệnngắ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ệureset (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 ra10. 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ươngtrì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

Page 14: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 14/18

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ủamộ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ùythuộ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 mongmuố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 mongmuố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ậptrì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 khiCV=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 ra8. 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 12Cá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 (Mode0, 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ốngSMB47 = 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ộ đếmtạ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ấtkì mode nào)

1. Nạp cho SMB47 giá trị để có thể thực hiện việc nạpSMB47 = 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

Page 15: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 15/18

 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ạpSMB47 = 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ốn3. 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ộ đếmSMB47 = 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 :

Page 16: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 16/18

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

Page 17: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 17/18

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

Page 18: Hsc s7200 Tut

5/10/2018 Hsc s7200 Tut - slidepdf.com

http://slidepdf.com/reader/full/hsc-s7200-tut 18/18