Chơng trình ứng dụng xử lý ngắt

Một phần của tài liệu Đề tài nghiên cứu, tìm hiểu về PLC s7 300 (Trang 46 - 48)

Chơng trình ứng dụng xử lý ngắt đợc hiểu là loại chơng trình viết cho các khối OB và đợc gọi bởi các tín hiệu báo ngắt thuộc loại:

Đợc phát ra đều đặn cách đều nhau một khoảng thời gian định trớc.

Đợc phát ra tại một điểm thời gian định trớc

Đợc phát ra từ các modul (ngắt cứng)

* Ngắt tuần tự theo thời gian (OB30 OB38)

Ngay khi nhận thấy trong chơng trình cĩ một trong các khối OB30

OB38, hệ thống sẽ tự động tích cực chế độ phát tín hiệu báo ngắt gọi các khối này với khoảng thời gian cách đều nhau. Giá trị mặc định cho chu kỳ phát tín hiệu báo ngắt này là 100ms, nĩi cách khác cứ 100ms thì các khối OB này đợc gọi và thực hiện một lần.

Tổng hợp thì tất cả các khối trong khoảng OB30 OB38 đều thuộc

nhĩm.

khối chơng trình xử lý ngắt theo chu kỳ thời gian. Song khơng phải module nào cũng cho phép sử dụng tất cả các khối OB đĩ, chẳng hạn CPU 314 chỉ cho phép sử dụng OB35.

Trờng hợp cĩ nhiều khối OB cùng xử lý một tín hiệu báo ngắt thì ta cĩ thể phân biệt chúng với nhau theo thứ tự u tiên. Chỉ số thứ tự u tiên đợc gắn cho từng khối nhờ phần mềm Step7. Ta cũng cĩ thể sử dụng Step7 để thay đổi chu kỳ phát tín hiệu báo ngắt.

Local block của các khối OB30 OB38 cĩ dạng chung giống nh của

OB35 cho trong bảng sau:

Tên hình thức Kiểu Giá trị và ý nghĩa

OB35_EV_CLASS Byte Bits 0-3=1(Coming event), Bits 4-

7=1(Event class 1)

OB35_SCAN_1 Byte Báo OB35 đã đợc thực hiện bằng giá

trị 16#36

OB35_PRIORITY Byte Cĩ giá trị là 11(thứ tự u tiên)

I- Stack

Nội dung thanh ghi

ACCU1,ACCU2Nội dung thanh ghi AR1,AR2Nội dung thanh ghi DI,DBCon trỏ chỉ vào L-Stack chứa nội dung local block của khối mẹNội dung thanh ghi trạng tháiTên khối mẹĐịa chỉ quay về OB1

OB35_OB_NUMBR Byte 35 là chỉ số của khối OB35

OB35_RESERVED_1 Byte Dự trữ (của hệ điều hành)

OB35_ RESERVED_2 Byte Dự trữ (của hệ điều hành)

OB35_PHASE_OFFSET Word Thời gian trễ (miliseconds)

OB35_ RESERVED_3 Int Dự trữ (của hệ điều hành)

OB35_ EXC_FREQ Int Chu kỳ thời gian thực hiện

(miliseconds)

OB35_DATE_TIME Date_And_Tim

e Thời điểm OB35 bắt đầu đợc thựchiện

So với các biến trong local block của OB1 thì biến OB35_EXC_FREQ và OB35_PHASE_OFFSET là hơi khác về mặt ý nghĩa sử dụng và cần đợc giải thích rõ thêm :

OB35_EXC_FREQ chứa chu kỳ phát tín hiệu ngắt (mặc định là 100ms hoặc đã đợc qui định lại thành Ta nhờ Step7).

OB35_PHASE_OFFSET chứa khoảng thời gian trễ kể từ khi xuất hiện tín hiệu báo ngắt cho tới khi OB35 đợc gọi. Thơng thờng ơ nhớ này cĩ nội dung bằng 0, song trong một số trờng hợp ứng dụng ngời ta vẫn phải gán cho

nĩ một giá trị dơng khác 0 nhằm tránh nguy cơ nhiều khối OB30 OB38

cùng đợc thực hiện một lúc dễ gây ra lỗi về thời gian cho hệ thống.

Nh đã nĩi, ngay khi phát hện thấy một trong các khối OB30 OB38 cĩ

trong Load memory hệ thơng sẽ tự động tích cực chế độ phát tín hiệu báo

ngắt theo chu kỳ 100ms. Chu kỳ Ta =100ms mặc định cĩ thể sửa lại đợc nhờ

cơng cụ phần mềm Simatic Manager nhng giá trị sửa lại đĩ là cố định trong suốt quá trình thực hiện chơng trình ứng dụng sau này, tức là ta chỉ cĩ thể sửa

lại chu kỳ Ta phát tín hiệu ngắt khi CPU ở chế độ STOP và phải sử dụng

Simatic Manager để nạp tham số mới cho module CPU.

Linh hoạt hơn so với việc sửa đổi lại T, ta cĩ thể tích cực hoặc huỷ bỏ chế độ ngắt theo chu kỳ bằng những hàm cĩ sẵn trong hệ điều hành và do đĩ khơng cần phảI chuyển về trạng thái STOP cụ thể là:

Hàm SFC39 (tên hình thức DIS_IRT) cĩ tác dụng che ngắt.

Hàm SFC40 (tên hình thức EN_IRT) cĩ tác dụng bỏ mặt nạ che ngắt.

Hàm SFC41 (tên hình thức DIS_AIRT) cĩ tác dụng che tất cả các ngắt

cĩ.

mức u tiên cao hơn tín hiệu ngắt đang đợc sử lý.

Hàm SFC42 (tên hình thức EN_AIRT) cĩ tác dụng bỏ mặt nạ che tất

cả, các ngắt cĩ mức u tiên cao hơn tín hiệu ngắt đang đợc sử lý ngắt tại một thời điểm định trớc (OB10 OB17).

Khối OB10 nĩi riêng (ví dụ cho module CPU 314) và các khối OB10

OB17 nĩi chung (phụ thuộc chủng loại của module CPU) sẽ đợc hệ điều hành gọi một lần tại một thời điểm định trớc hoăc nhiều lần kể từ thời điểm đã cho. Khi đợc gọi nhiều lần kể từ thời điểm đã đợc xác định ta cĩ thể qui định:

Mỗi phút một lần, Mỗi tiếng một lần,Mỗi ngày một lần,Mỗi tuần một lần,Mỗi tháng một lần,Mỗi năm một lần.

Khối OB10 cĩ local block (tơng tự cho cả các khối OB11 OB17)

Tên hình thức Kiểu Giá trị và ý nghĩa

OB10_EV_CLASS Byte B#16#11=ngắt đang đợc tích cực

OB10_STRT_INFO Byte B#16#11=OB10 đã đợc gọi và thực hiện

OB10_ PRIORITY Byte Cĩ giá trị là 2(thứ tự u tiên)

OB10_OB_NUMBR Byte 10 là chỉ số của khối OB10

OB10_RESERVED_

1 Byte Dự trữ (của hệ điều hành)

OB10_RESERVED_

2 Byte Dự trữ (của hệ điều hành)

OB10_PERIOD_EX

E Word Mã qui định về chế độ thực hiện sử lýngắt

W#16#0000 : một lần W#16#0201: mỗi phút một lần W#16#0401: mỗi giờ một lần W#16#1001: mỗi ngày một lần W#16#1201: mỗi tuần một lần W#16#1401: mỗi tháng một lần W#16#1801: mỗi năm một lần OB10_RESERVED_

3 Int Dự trữ (của hệ điều hành)

OB10_RESERVED_

4 Int Dự trữ (của hệ điều hành)

OB10_DATE_TIME Date_And_Time Thời điểm OB10 bắt đầu đợc thực hiện.

Cĩ hai cách để định nghĩa thời điểm phát tín hiệu ngắt và quy định chế

độ làm việc (một lần hay nhiều lần) cho OB10 OB17, cách thứ nhất là sử

dụng cơng cụ phần mềm Simatic Manager và cách thứ hai là sử dụng hàm SFC28 cĩ tên hình thức SET_ TINT của hệ thống.

Sau khi định nghĩa thời điểm gọi OB10, bản thân khối OB10 cũng cần phải đợc tích cực. Ta cũng cĩ hai cách để tích cực khối OB10 hoặc bằng cơng cụ phần mềm Simatic Manager hoặc nhờ hàm SFC30 (cĩ tên hình thức CAN_TINT) của hệ thống.

Để huỷ bỏ trạng thái tích cực của khối OB10 ta sử dụng hoặc cơng cụ phần mềm Simatic Manager hoặc nhờ hàm SFC29 (cĩ tên hình thức CAN_TINT).

Tín hiệu báo ngắt tại thời điểm định trớc này cĩ thể đợc che nhờ hàm SFC39 (cĩ tên hình thức DIS_IRT) hay bĩc mặt nạ che nhờ hàm SFC40 (cĩ tên hình thức EN_IRT). Ngồi ra ta cũng cĩ thể sử dụng hàm SFC41 (cĩ tên hình thức DIS_AIRT) để che tất cả các ngắt cĩ mức u tiên cao hơn tín hiệu ngắt đang đợc xử lý hoặc hàm SFC42 (cĩ tên hình thức EN_AIRT) để bỏ mặt nạ che tất cả các ngắt cĩ mức u tiên cao hơn tín hiệu ngắt đang đợc xử lý.

Ngắt cứng (OB40 OB47)

Đây là loại tín hiệu báo ngắt đợc phát từ module mở rộng (module I/O, AI/AO, CP hay FM) hoặc từ các cổng vào ra số onboard (của module CPU IFM) Chế độ báo ngắt cứng này thờng đợc sử dụng trong các chơng trình điều khiển mà ở đĩ địi hỏi phải cĩ sự đáp ứng nhanh với tín hiệu từ ngồi đa vào.

Một phần của tài liệu Đề tài nghiên cứu, tìm hiểu về PLC s7 300 (Trang 46 - 48)

Tải bản đầy đủ (DOC)

(84 trang)
w