kiểu được "Time-of-Day Interrupt", "Cyclic Interrupt", "Hardware Interrupt", "Time-Delay Interrupt", "Diagnostic Interrupt" và có thể thực thi chúng để tác động tới các phản ứng của CPU
Trang 1Contents Page
Objectives 2
Overview of the Organization Blocks … 3
Startup OBs 4
Interrupting the Cyclic Program ……… 5
Time-of-Day Interrupt (OB10) 6
Cyclic Interrupt (OB35) 7
Hardware Interrupt (OB40) 8
Time-Delay Interrupt (OB20) 9
The Diagnostic Interrupt and Asynchronous Error Interrupt (OB81 to OB87) 10
Asynchronous Error OBs 11
Synchronous Errors 12
System Functions for Controlling Interrupt OBs 13
OB Start Information … 14
Exercise: Displaying the Startup Type (OB100) 15
Exercise: Response to a Synchronous Error 16
Date: 25.07.2008 File: PRO1_12E.1
SIMATIC®S7
Siemens AG 2003 All rights reserved.
SITRAINTraining for Automation and Drives
Organization Blocks
Operating system
OB1
FC FB
SFC
SFB
Other OBs
FC
FB
Trang 2Date: 25.07.2008 File: PRO1_12E.2
Siemens AG 2003 All rights reserved.
SITRAINTraining for Automation and Drives
Objectives
Sau khi hoàn thành chương này người học sẽ:
và "Cold restart"
kiểu được "Time-of-Day Interrupt", "Cyclic Interrupt", "Hardware
Interrupt", "Time-Delay Interrupt", "Diagnostic Interrupt"
và có thể thực thi chúng để tác động tới các phản ứng của CPU khi lỗi xuất hiện
đánh giá chúng trong chương trình
Trang 3Date: 25.07.2008 File: PRO1_12E.3
SIMATIC®S7
Siemens AG 2003 All rights reserved.
SITRAINTraining for Automation and Drives
OB 10 to 17
(Time-of-day interrupts)
OB 80 to 87
(Asynchronous errors)
OB 20 to 23 (Time-delay interrupts)
Overview of the Organization Blocks
Periodic program execution
OB 30 to 38 (Cyclic interrupts)
Event-driven program execution
OB 40 to 47 (Hardware interrupts)
Startup
OB 102
OB 100
OB 101
Cyclic
program
execution
OB 1
OB 121, 122
(Synchronous errors)
Startup Chương trình khởi động - startup program được thực hiện sau khi nguồn điện
được phục hồi và trước việc thi hành chương trình theo chu kỳ, hoặc sau một
sự thay đổi chế độ hoạt động (bằng nút chọn lựa chế độ của CPU hoặc bằng PG) Các OB từ OB 100 đến OB 102 sẵn sàng để dùng cho việc này
Trong các block này bạn có thể đặt trước các kết nối truyền thông chẳng hạn
Cyclic Program Chương trình cần xử lý liên tục được lưu trữ trong Organization Block OB 1
Execution Sau khi chương trình được thi hành xong trong OB 1, một chu kỳ mới bắt đầu
bằng việc cập nhật vùng ảnh và xử lý lệnh đầu tiên trong OB 1 Thời gian của chu kỳ quét và thời gian đáp ứng của hệ thông là kết quả của các thao tác này Thời gian của chu kỳ quét là tổng số thời gian thi hành của hệ điều hành CPU
và thời gian để thi hành tất cả chương trình
Thời gian đáp ứng là thời gian mà một đầu ra chuyển đổi tùy thuộc vào một tín hiệu đầu vào, bằng 2 lần thời gian chu kỳ quét
Periodic Program Với việc thực hiện chương trình tuần tự theo chu kỳ, bạn có thể ngắt việc thực
Execution hiện chương trình tại các khoảng thời gian cố định (at fixed interval) Với các
ngắt theo chu kỳ, một trong các khối OB 30 đến OB 37 được thực hiện sau khi hết thời gian định trước, ví dụ mỗi chu kỳ 100 ms Ví dụ các block điều khiển vòng (Control-loop block) với các khoảng thời gian lấy mẫu được gọi trong các block này
Với các ngắt theo thời gian trong ngày (time-of-day interrupt), một OB được thực hiện ở một thời điểm nhất định Ví dụ như lưu dữ liệu vào mỗi ngày lúc 17:00 h (5:00 p.m.)
Trang 4Complete Restart Complete restart (khởi động lại hoàn toàn) sẽ xóa vùng ảnh quá trình (PII,
PIQ) và tất các bit nhớ, timer và counter không có khả năng lưu trữ (non-retentive) Các bit nhớ, timer và counter có khả năng lưu trữ cũng như các giá trị hiện hành của data block được giữ nguyên (chỉ có thể thực hiện được với pin backup hoặc trường hợp S7-300 dù không có pin backup có dùng EPROM
và đã được cài đặt các thông số vùng nhớ cho CPU)
Chương trình lưu trong OB 100 được thi hành một lần và rồi việc xử lý chương trình theo chu kỳ sẽ bắt đầu
(Warm) Restart Khởi động kiểu restart giữ lại trạng thái của tất cả các địa chỉ (bit nhớ, timer,
counter, vùng ảnh quá trình, giá trị hiện tại của các data block) Chương trình được lưu trong OB 101 sẽ được thực hiện một lần
Rồi sau đó chương trình sẽ tiếp tục thực hiện từ điểm mà ngắt đã xuất hiện (tắt nguồn, CPU STOP) Sau khi thực hiện xong "chu kỳ còn dư" này, việc thực hiện chương trình tuần tự bắt đầu
Cold Restart CPU 318-2 và 417-4 cũng có kiểu khởi động cold restart Kiểu khởi động này
có thể được thiết lập để phục hồi nguồn điện trong công cụ HW Config khi CPU đã được cài đặt thông số
Sự khác nhau duy nhất giữa cold restart và complete restart là: bên cạnh vùng ảnh quá trình, tất cả các bit nhớ, timer và counter (ngay cả những cái có tính lưu trữ được - retentive!) đều bị xóa Cũng như vậy thì các giá trị hiện tại của data block cũng bị ghi đè lên bằng các giá trị hiện tại được lưu trong vùng nhớ tải (load memory) hoặc với những giá trị mà được download lúc nguyên thủy ban đầu cùng với các data block vào CPU
Date: 25.07.2008 File: PRO1_12E.4
SIMATIC®S7
Siemens AG 2003 All rights reserved.
SITRAINTraining for Automation and Drives
Startup OBs
Read in PII Execute OB1
Output PIQ
Delete the process images,
non-retentive M, T, C
Execute OB 100
Output PIQ Enable outputs
C
Y
C
L
E
Output PIQ Enable outputs
STOP
yes no
Monitoring time for restart exceeded?
Delete PIQ (parameter-assignable) Process residual scan cycle Execute OB 101
Output PIQ
Restart (manual)
• only for S7-400™
(according to setting in HW-Config):
STOP -> RUN + WRST
CPU in the STOP state
(Peripheral modules have switched all outputs to the safe state)
Completer Restart
automatic manual
S7-300™/400
Power ON
S7-300™
STOP->RUN
S7-400™
STOP->RUN + CRST
Execute OB1
Read in PII
C Y C L E
Trang 5OB Calls Khối tổ chức - organization block (OB) là giao diện giữa hệ điều hành của
CPU và chương trình
Hệ điều hành gọi các OB riêng nhau Có nhiều loại sự kiện khởi động (time-of-day interrupt, hardware interrupt - xem hình) mà mỗi cái lại dẫn đến sự khởi động của OB liên quan của nó
Interrupting Khi hệ điều hành gọi một OB khác, nó sẽ ngắt việc thực hiện chương trình
the Cyclic Program theo chu kỳ vì OB1 có mức độ ưu tiên thấp nhất Bất kỳ OB nào khác cũng có
thể ngắt chương trình chính (OB1) và thực hiện chương trình của nó Sau đó OB1 lại tiếp tục thi hành tại điểm bị ngắt
Nếu một OB được gọi có mức độ ưu tiên cao hơn OB đang được thi hành thì
OB có mức độ ưu tiên thấp hơn bị ngắt sau khi câu lệnh hiện tại của nó được thực hiện xong Hệ điều hành sẽ lưu toàn bộ ngăn xếp thanh ghi - register stack cho block bị ngắt Thông tin thanh ghi này sẽ được phục hồi khi hệ điều hành tiếp tục thực hiện block bị ngắt đó
Priorities Mọi việc thi hành OB đều có thể bị ngắt bởi một sự kiện (OB) có mức ưu tiên
cao hơn ở các ranh giới lệnh (command boundaries) Mức độ ưu tiên được chia từ 0 đến 27, trong đó 0 có mức ưu tiên thấp nhất và 28 có mức ưu tiên cao nhất
Các OB có mức ưu tiên như nhau thì không thể ngắt lẫn nhau được, nhưng chúng sẽ được khởi động OB này rồi đến OB kia theo thứ tự mà chúng được ghi nhận
Date: 25.07.2008 File: PRO1_12E.5
SIMATIC®S7
Siemens AG 2003 All rights reserved.
SITRAINTraining for Automation and Drives
Such as OB82
(Prio.26) = Error
handling Executed in
event of wire break at
a analog input PIW 352
Such as OB10 (Prio.2) = Time-of-day interrupt
Executed once a minute from 9:30 OB1
is executed continu-ously
OB 1
3 Time-of-day interrupt Cyclic interrupt
1
16 Error handling
Cyclic program Time-delay interrupt Hardware interrupt
2 12
26 / 28
OB 20
OB 40
OB 10
OB 35
OB 82
OB No OB Type Priority
Such as OB20 (Prio.3)
= Time-delay interrupt
Execution starts 3.25s
after a part is
detected
Interrupting the Cyclic Program
until it is interrupted
by another OB
Trang 6Date: 25.07.2008 File: PRO1_12E.6
SIMATIC®S7
Siemens AG 2003 All rights reserved.
SITRAINTraining for Automation and Drives
Time-of-Day Interrupt (OB10)
Time-of-Day Time-of-day interrupt (ngắt theo thời gian trong ngày) được dùng để thực hiện
Interrupts một chương trình nào đó được gọi trong OB 10 (như ví dụ) 1 lần ở một thời
điểm nào đó hoặc theo định kỳ (một lần trong một phút, một giờ, một ngày, một tuần, một tháng, một năm) tính từ thời điểm đó
Time-of-day interrupt được cấu hình bằng công cụ "HW Config" Để chọn thời gian và cách thức OB10 được kích hoạt, bạn chọn menu CPU -> Object
Properties -> chọn “Time-of-Day Interrupts" tab
"Active" Nếu bạn chọn "Active", OB time-of-day interrupt sẽ được thi hành mỗi khi thực
hiện complete restart cho CPU
khiển các time-of-day interrupt Các SFC sau có thể được sử dụng:
động
S7-400™ Có đến 8 OB ngắt theo thời gian trong ngày khác nhau (OB 10 đến 17) dùng
cho PLC S7-400
Trang 7Cyclic Interrupt Cyclic (watchdog) interrupt (ngắt chu kỳ để giám sát lỗi) được dùng để thi
hành các block theo các khoảng thời gian cố định (fixed interval) OB ngắt chu
kỳ cho S7-300 là OB 35
Khoảng thời gian gọi mặc định đối với OB 35 là 100ms Bạn có thể thay đổi giá trị này trong khoảng thời gian cho phép từ 1ms đến 1 phút
Starting Time Khi bạn kích hoạt một ngắt điều khiển theo thời gian (time-controlled interrupt),
bạn chỉ định khoảng thời gian lên quan đến "starting time" Starting time bắt đầu mỗi khi CPU chuyển từ STOP sang RUN
Interval Bạn phải chắc chắn rằng khoảng thời gian (interval) mà bạn chỉ định phải dài
hơn thời gian cần để thi hành Hệ điều hành gọi OB35 ở thời điểm định trước Nếu OB35 vẫn đang hoạt động (active) ở thời điểm đó, hệ điều hành gọi OB80 (cyclic interrupt error OB - OB quản lý lỗi ngắt theo chu kỳ)
được ngắt chu kỳ - cyclic interrupt
S7-400™ Có đến 9 OB ngắt chu kỳ khác nhau (OB30 đến 38) dùng cho PLC S7-400
Date: 25.07.2008 File: PRO1_12E.7
SIMATIC®S7
Siemens AG 2003 All rights reserved.
SITRAINTraining for Automation and Drives
Interval
O
Prio 12 Cyclic Interrupt (OB35)
Trang 8Hardware Interrupt Chương trình trong OB hardware interrupt (OB ngắt phần cứng) (OB40) được
thực hiện ngay khi có một lỗi nào đó xuất hiện
Nhiều loại tín hiệu riêng biệt của các module có thể gây ra ngắt phần cứng:
dùng công cụ "HW Config" để chỉ định tín hiệu sẽ gây ra ngắt phần cứng
bằng cách dùng phần mềm cấu hình cho các module liên quan
Example Trong ví dụ trên, các giá trị giới hạn thích hợp được cấu hình cho một module
analog đầu vào Nếu giá trị đi được vượt quá giới hạn thì OB40 được gọi Việc này có tác dụng giống như dùng một phép so sánh trong OB1 để gọi một
FB hoặc FC khi vượt quá giới hạn trên Tuy nhiên nếu bạn dùng OB40 thì bạn không cần viết một chương trình trong một khối khác
Bạn có thể dùng chương trình trong OB40 để tạo ra ngắt hoặc để điều khiển quá trình
S7-400™ Có đến 8 OB ngắt phần cứng khác nhau (OB40 đến 47) dùng cho PLC
S7-400
Date: 25.07.2008 File: PRO1_12E.8
SIMATIC®S7
Siemens AG 2003 All rights reserved.
SITRAINTraining for Automation and Drives
Analog input module
Upper limit value Lower limit value
HW Config:
Analog input module properties
+27648
0
Hardware Interrupt (OB40)
CPU properties
Trang 9Time-Delay Chương trình trong một time-delay OB (OB trễ) Chương trình trong một
Interrupt time-delay OB (OB20) được thi hành sau một khoảng thời gian trễ đã định tính
từ lúc có một sự kiện nào đó xảy ra
OB20 chỉ có thể được kích hoạt bằng cách gọi system function SFC32 (SRT_DINT) SFC32 cũng được dùng để thiết lập thời gian trễ
SFC 32 • OB_NR = OB number: số hiệu của OB cần được thi hành với một thời
gian trễ đã định
tín hiệu do người sử dụng chỉ định để khởi động OB ngắt trễ
OB ngắt trễ (xem phần online help để biết ý nghĩa của số hiệu các lỗi)
S7-400™ Có đến 4 OB ngắt trễ khác nhau (OB20 đến 23) dùng cho PLC S7-400
Date: 25.07.2008 File: PRO1_12E.9
SIMATIC®S7
Siemens AG 2003 All rights reserved.
SITRAINTraining for Automation and Drives
(SRT_DINT)
OB_NR DTIME SIGN
RET_VAL 20
T#500ms W#16#01
MW10
M2.0
Time-Delay Interrupt (OB20)
Trang 10Asynchronous Các lỗi không đồng bộ là các hỏng hóc trong chức năng của CPU Chúng xuất
Errors hiện không đồng bộ với việc thực hiện chương trình và không thể dò theo dấu
của lỗi (truy nguyên) đến một điểm cụ thể trong chương trình (ví dụ như một ngắt chẩn đoán từ một)
Response Nếu một lỗi được phát hiện trong chế độ RUN và OB quản lý lỗi tương ứng đã
được lập trình thì OB đó được gọi và chương trình trong OB đó được thực hiện Ví dụ chương trình này có thể chứa:
sang trạng thái STOP
động chuyển sang trạng thái STOP
Example Ví dụ OB82 để ngắt xử lý lỗi không đồng bộ được gọi trong các tình huống
sau:
Date: 25.07.2008 File: PRO1_12E.10
SIMATIC®S7
Siemens AG 2003 All rights reserved.
SITRAINTraining for Automation and Drives
Analog input module
Wirebreak
+27648
0
The Diagnostic Interrupt and Asynchronous Error Interrupt
Analog input module properties CPUproperties
Trang 11Priority Các OB quản lý lỗi được gọi để phản ứng với các lỗi không đồng bộ được thi hành
ngay lập tức vì chúng có mức độ ưu tiên cao nhất trong tất cả các ngắt và các OB quản lý lỗi:
(<26) đang được thi hành
ưu tiên 27) đang được thi hành
Date: 25.07.2008 File: PRO1_12E.11
SIMATIC®S7
Siemens AG 2003 All rights reserved.
SITRAINTraining for Automation and Drives
Asynchronous Error OBs
Time error Maximum scan cycle time exceeded OB80
26 / 28
Priority
26 Power supply fault Backup battery failure OB81
Diagnostic interrupt Wirebreak at input of diagnostics-capable
Insert / remove
interrupt
Removal of a signal module during operation
CPU hardware fault Incorrect signal level at the
Program execution error Error in updating the process image
Rack fault Failure of an expansion device or a
Communication error Error in reading message frame OB87
Trang 12Synchronous Các lỗi đồng bộ này có thể được dò theo dấu của lỗi đến một điểm cụ thể trong
Errors chương trình nếu lỗi xuất hiện khi đang thực hiện một lệnh cụ thể Các OB quản lý
lỗi được gọi để phản ứng với các lỗi đồng bộ được thi hành như một thành phần
của chương trình, với cấp độ ưu tiên ngang với block đang được thi hành khi phát hiện lỗi
Date: 25.07.2008 File: PRO1_12E.12
SIMATIC®S7
Siemens AG 2003 All rights reserved.
SITRAINTraining for Automation and Drives
Synchronous Errors
Same as that
of the OB interrupted
as a result of the error
Programming error
A block that is not present in the CPU is called in the program OB121
Access error
A module that is either defective
or not present is addressed in the program (such as direct access to a non-existent I/O module)
OB122
Trang 13OBs Bạn sẽ tìm thấy một danh sách đầy đủ và một bảng mô tả của các OB quản lý
lỗi trong mục online help:
LAD/STL/FBD Editor -> Help -> Contents -> Help on Blocks -> Help on
Organization Blocks.
đề cập cụ thể trong giáo trình nâng cao
Date: 25.07.2008 File: PRO1_12E.13
SIMATIC®S7
Siemens AG 2003 All rights reserved.
SITRAINTraining for Automation and Drives
System Functions for Controlling Interrupt OBs
Organization block
Function Number
Priority
in S7-300™
SFCs for controlling OBs Remarks
Time-of-day interrupt OB 10 to 17 2 SFC 28 to 31 HW Config alternative
Time-delay interrupt OB 20 to 23 3 SFC32 to 34 Mandatory
Hardware interrupt OB 40 to 47 16 none
Diagnostic interrupt OB 81 to 87 26 none
Cyclic interrupt OB 30 to 38 12 none