TÌM HIỂU Về Bộ đếm Tốc độ CAO TRONG PLC S7 200 - Tài Liệu Text

Tải bản đầy đủ (.doc) (18 trang)
  1. Trang chủ
  2. >>
  3. Luận Văn - Báo Cáo
  4. >>
  5. Thạc sĩ - Cao học
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 (436.18 KB, 18 trang )

TÌM HIỂU VỀ BỘ ĐẾM TỐC ĐỘ CAO TRONG PLC S7-2001. Đị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 = 00003 ( đầ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 = 00001 ( 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ế độ đế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ắt6. 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ênII. 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ốt2. 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 cao3. 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 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 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ốt2. 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 cao3. 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 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 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ốt2. 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 cao3. 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 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 độ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ốt2. 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 caoSMB47 = 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 cao3. 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 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ươ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ốt2. 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 cao3. 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 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 (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ộ đếmThiết lập hướng đếm cho bộ đếm là đếm xuốngSMB47 = 16#98 Cho phép bộ đếmThiết lập hướng đếm cho bộ đếm là đếm lên2. Thực thi lệnh HSC để S7-200 lập trình cho bộ đếm tốc độ cao HSC1Nạ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 HSC1Nạ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 HSC1Cấ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ộ đếm2. Thực thi lệnh HSC để cấm bộ đếmVí 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 ở Mode0Ví 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

Từ khóa » đọc Xung Tốc độ Cao S7 200