Lời nói đầu
Nền công nghiệp thế giới đang trên đã phát triển ngày càng cao, trong đó vấn đề tự động điều khiển được đặt lên hàng đầu trong quá trình nghiên cứu cũng như ứng dụng công nghệ mới vào trong sản xuất. Nó đòi hỏi khả năng xử lý, mức độ hoàn hảo, sự chính xác của hệ thống ngày một cao hơn để có thể đáp ứng được nhu cầu về số lượng, chất lượng, thẩm mỹ ngày càng cao của xã hội. Nhận thức được tầm quan trọng đó nên chúng em nghiên cứu, tìm hiểu về PLC S7-300, nhằm góp phần vào công nghiệp hóa, hiện đại hóa đất nước. Nội dung dồ án bao gồm 4 chương, trong dó:
- Chương I: Cấu hình cứng của hệ PLC S7-300
- Chương II: Kỹ thuật lập trình trên nền PLC S7-300
- Chương III: Giới thiệu và làm việc với phần mềm Step7
- Chương IV: Bài toán ứng dụng
Trong qua trình thiết kế đồ án, chúng em xin cảm ơn sự giúp đỡ tận tình của giáo viên hướng dẫn, PGS.TS Phan Xuân Minh và dặc biệt là sự giúp đỡ của bộ môn đã cho chúng em sử dụng phòng Siemens để hoàn thành đồ án này.
Mặc dù đã rất cố gắng nhưng trong quá trình làm đồ án vẫn không thể tránh khỏi những sai sót, chúng em mong sự đóng góp ý kiến và gúp đỡ của các thầy cô và các bạn sinh viên để đồ án của em được hoàn thiện hơn.
Mục lục
Chương I: Cấu hình cứng của hệ PLC S7-300
1.1. Cấu tạo chung của PLC S7-300
1.2. Các lĩnh vực ứng dụng của PLC S7-300 .
1.3. Phân loại PLC S7-300 theo cấu trúc .
1.3.1. PLC có cấu trúc Onboard .
1.3.2. PLC có cấu trúc module (Great PLC) .
1.3.2.1. Module nguồn (PS) .
1.3.2.2. Module CPU .
1.3.2.3. Module tín hiệu vào/ra (SM) .
1.3.2.4. Module chức năng (FM)
1.3.2.5. Module truyền thông CP
1.3.2.6. Module kết nối vào/ra phân tán (ET 200M)
1.4. Cấu hình tập trung
1.4.1. Kết nối hệ SIMATIC PLC S7-300
1.4.2. Phương pháp gán địa chỉ tự động
1.4.3. Trao đổi dữ liệu giữa CPU và Module mở rộng .
1.5. Cấu hình vào ra phân tán
1.5.1. Giới thiệu
1.5.2. Module CPU có cổng DP
1.5.3. Module CPU không có cổng DP
1.6. Mạng MPI (Multi-point-Capable-Interface) .
1.6.1. Giới thiệu về mạng MPI .
1.6.2. Các bước khai báo một mạng MPI .
Chương II: kỹ thuât lập trình trên nền SIMATIC S7-300 .
2.1. Giới thiệu chung về ngôn ngữ lập trình S7-300 .
2.1.1 Kiểu dữ liệu
2.1.2. Sơ lược về ngôn ngữ lập trình STL (Statement list) .
2.1.3. Các lệnh cơ bản
2.1.4. Các lệnh toán học .
2.1.5. Lệnh logic tiếp điểm trên thanh ghi trạng thái .
2.2. Bộ thời gian (Timer)
2.3. Bộ đếm (counter)
2.4. Lập trình tuyến tính
2.5. Lập trình có cấu trúc .
2.5.1. Cơ sở lý thuyết
2.5.1.1. Khai báo local block cho FC .
2.5.1.2. Gọi khối FC và thủ tục truyền tham trị .
2.5.1.3. Local block của FB .
2.5.1.4. Instance block và thủ tục gọi khối FB
2.5.1.5. Sử dụng các khối OB .
2.5.1.5.1. Ngăn xếp I (I - Stack) .
2.5.1.5.2. Chương trình ứng dụng xử lý ngắt .
2.5.1.5.3. Chương trình khởi động (Initialization)
2.5.1.5.4. Xử lý lỗi hệ thống .
2.5.1.6. Những hàm chuẩn quản lý ngắt .
2.5.1.6.1. Che và bỏ mặt nạ che các tín hiệu ngắt .
2.5.1.6. 2. Che và bỏ mặt nạ che tín hiệu báo lỗi đồng bộ
Chương III: Giới thiệu và làm việc với phần mềm Step7 .
3.1. Giới thiệu chung về phần mềm Step7
3.2. Cài đặt Step7 và chọn chế độ làm việc .
3.2.1. Cài Đặt Step7
3.2.2. Đặt tham số làm việc
3.3. Soạn Thảo Một Project
3.3.1. Khai báo và mở rộng một Project .
3.3.2. Xây dựng cấu hình cứng cho trạm PLC
3.3.3. Đặt tham số quy định chế độ làm việc cho module .
3.3.4. Soạn thảo chương trình cho các khối logic .
3.3.5. Sử dụng thư viện của Step7
3.3.6. Sử dụng tên hình thức
3.4. Làm Việc Với PLC S7 – 300 .
3.4.1. Quy định địa chỉ MPI cho module CPU
4.4.2. Ghi chương trình lên module CPU
4.4.3. Giám sát việc thực hiện chương trình .
4.4.4. Giám sát module CPU .
4.4.5. Quan sát nội dung ô nhớ .
CHƯƠNG IV: Bài toán ứng dụng .
4.2. Bài toán điều khiển đèn đường giao thông .
4.2.1. Thiết lập bài toán điều khiển
4.2.2. Chọn các cổng vào ra .
4.2.3. Cấu trúc chương trình .
4.2.4. Chương trình điều khiển .
41 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3900 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Nghiên cứu, tìm hiểu về PLC S7-300, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
nã.
Xo¸ OB1 vµ gi¶i phãng local block trong Work memory.
Thùc hiÖn OB1 trong Work memory
System memory
Share DB
Instance DB
vßng quÐt
H×nh 2.1. Thùc hiÖn mét ch¬ng tr×nh tuyÕn tÝnh
Local block cña OB1
Khi thùc hiÖn khèi OB1, hÖ ®iÒu hµnh lu«n cÊp cña mét Local block cã kÝch thíc mÆc ®Þnh lµ 20 bytes trong Work memory ®Ó OB1 cã thÓ lÊy nh÷ng d÷ liÖu tõ hÖ ®iÒu hµnh, nh÷ng d÷ liÖu nµy gåm:
Tªn h×nh thøc
KiÓu
Gi¸ trÞ vµ ý nghÜa
OB1_EV_CLASS
Byte
Bits 0-3=1(Coming event). Bits 4-7=1(Event class 1)
OB1_SCAN_1
Byte
1=vßng quÐt ®Çu, 3=tõ vßng quÐt thø 2
OB1_PRIORITY
Byte
Møc u tiªn 1(Møc u tiªn thø nhÊt)
OB1_OB_NUMBR
Byte
1=ChØ sè cña khèi OB
OB1_RESERVED_1
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh)
OB1_RESERVED_2
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh)
OB1_PREV_CYCLE
Int
Thêi gian vßng quÐt tríc (miliseconds)
OB1_MIN_ CYCLE
Int
Thêi gian vßng quÐt ng¾n nhÊt ®· cã (miliseconds)
OB1_MAX_ CYCLE
Int
Thêi gian vßng quÐt lín nhÊt ®· cã (miliseconds)
OB1_DATE_TIME
Date_And_Time
Thêi ®iÓm OB1 b¾t ®Çu ®îc thùc hiÖn
MÆc dï kÝch thíc chØ lµ 20 bytes mÆc ®Þnh nhng ngêi sö dông cã thÓ më réng Local block ®Ó sö dông thªm c¸c biÕn nhí cho ch¬ng tr×nh (h×nh díi), tuy nhiªn ph¶i ®Ó ý r»ng do Local block ®îc gi¶i phãng ë cuèi mçi vßng quÐt vµ ®îc cÊp l¹i ë vßng quÐt sau nªn c¸c gi¸ trÞ cã trong Local block cña vßng quÐt tríc còng bÞ mÊt khi b¾t ®Çu vßng quÐt míi. Do ®ã tèt nhÊt chØ nªn sö dông Local block cho viÖc lu gi÷ biÕn nh¸p t¹m thêi trong tÝnh to¸n cña mét vßng quÐt.
Address
Decl.
Name
Type
0.0
temp.
OB1_EV_CLASS
1.0
temp.
OB1_SCAN_1
2.0
temp.
OB1_PRIORITY
3.0
temp.
OB1_OB_NUMBR
4.0
temp.
OB1_RESERVED_1
5.0
temp.
OB1_RESERVED_2
6.0
temp.
OB1_PREV_CYCLE
8.0
temp.
OB1_MIN_ CYCLE
10.0
temp.
OB1_MAX_ CYCLE
12.0
temp.
OB1_DATE_TIME
20.0
temp.
Temp1
24.0
temp.
Temp2
28.0
temp.
Temp3
30.0
temp.
Temp4
31.0
temp.
Temp5
31.1
temp.
Temp6
Ngêi sö dông
kh«ng ®îc thay ®æi c¸c biÕn nµy.
PhÇn ngêi sö dông ®Þnh nghÜa thªm ®Ó sö dông.
Cßn l¹i c¸ch sö dông local block còng kh«ng kh¸c g× nh sö dông vïng biÕn cê M (Bit memory). Ch¼ng h¹n, ®Ó ®äc kho¶ng thêi gian thùc hiÖn vßng quÐt tríc ®· ®îc hÖ ®iÒu hµnh chuyÓn vµo « nhí 2 bytes gåm byte 6 vµ byte 7 trong local block díi d¹ng sè nguyªn 16 bits, ta dïng lÖnh.
L LW6 //§äc néi dung 2 bytes kÓ tõ ®Þa chØ 6 cña local block vµo ACCU1
Bªn c¹nh viÖc truy nhËp theo ®Þa chØ « nhí nh ®· lµm, ta cßn cã thÓ sö dông tªn biÕn h×nh thøc OB1_PREV_CYCLE ®· cã cña « nhí LW6 nh sau:
L #OB1_PREV_CYCLE
2.5. LËp tr×nh cã cÊu tróc
2.5.1. C¬ së lý thuyÕt
LËp tr×nh cã cÊu tróc (structure programming) lµ kü thuËt cµi ®Æt thuËt to¸n ®iÒu khiÓn b»ng c¸ch chia nhá thµnh c¸c khèi ch¬ng tr×nh con FC hay FB víi mçi khèi thùc hiÖn mét nhiÖm vô cô thÓ cña bµi to¸n ®iÒu khiÓn chung vµ toµn bé c¸c khèi ch¬ng tr×nh nµy l¹i ®îc qu¶n lý mét c¸ch thèng nhÊt bëi khèi OB1. Trong OB1 cã c¸c lÖnh gäi nh÷ng khèi ch¬ng tr×nh con theo thø tù phï hîp víi bµi to¸n ®iÒu khiÓn ®Æt ra.
Hoµn toµn t¬ng tù, mét nhiÖm vô ®iÒu khiÓn con cã thÓ cßn ®îc chia nhá thµnh nhiÒu nhiÖm vô nhá vµ cô thÓ h¬n n÷a, do ®ã mét khèi ch¬ng tr×nh con còng cã thÓ ®îc gäi tõ mét khèi ch¬ng tr×nh con kh¸c. Duy cã ®iÒu cÊm kþ ta cÇn ph¶i tr¸nh lµ kh«ng bao giê mét khèi ch¬ng tr×nh con l¹i gäi ®Õn chÝnh nã. Ngoµi ra do cã sù h¹n chÕ vÒ ng¨n xÕp cña c¸c module CPU nªn kh«ng ®îc tæ chøc ch¬ng tr×nh con gäi lång nhau qu¸ sè lÇn mµ module CPU ®îc sö dông cho phÐp.
§Ó ®¬n gi¶n trong tr×nh bµy, khi mét khèi ch¬ng tr×nh con nµy gäi mét khèi ch¬ng tr×nh con kh¸c, ta sÏ ký hiÖu khèi chøa lÖnh gäi lµ khèi mÑ vµ khèi ®îc gäi lµ khèi con. H×nh díi ®©y m« t¶ quy tr×nh thùc hiÖn viÖc gäi mét khèi con FC10 tõ khèi mÑ OB1.
ChuyÓn FC10 vµo Work memory, cÊp ph¸t local block vµ g¸n tham trÞ tõ OB1
FC10
BE
OB1
call FC10
Tr¶ tham trÞ vÒ OB1. Xo¸ FC10 vµ local block trong Work memory
H×nh 2.2. Thùc hiÖn gäi khèi FC10
Gi÷a khèi mÑ vµ khèi con cã sù liªn kÕt thÓ hiÖn qua viÖc trao ®æi c¸c gi¸ trÞ, khi gäi khèi con khèi mÑ cÇn cho nh÷ng s¬ kiÖn th«ng qua c¸c tham trÞ ®Çu vµo ®Ó khèi con thùc hiÖn nhiÖm vô. Sau khi thùc hiÖn xong nhiÖm vô, khèi con ph¶i tr¶ l¹i cho khèi mÑ kÕt qu¶ b»ng nh÷ng tham trÞ ®Çu ra, hÖ ®iÒu hµnh cña CPU tæ chøc viÖc truyÒn tham trÞ th«ng qua local block cña tõng khèi con.
Nh vËy, khi thùc hiÖn lÖnh gäi khèi con, hÖ ®iÒu hµnh sÏ :
ChuyÓn khèi con ®îc gäi tõ vïng Load memory vµo vïng Work
memory.
CÊp ph¸t cho khèi con mét phÇn bé nhí trong Work memory ®Ó lµm local block. CÊu tróc local block ®îc qui ®Þnh khi so¹n th¶o c¸c khèi.
3) TruyÒn c¸c tham trÞ tõ khèi mÑ cho biÕn h×nh thøc IN, IN-OUT cña local
block.
Sau khi khèi con thùc hiÖn xong nhiÖm vô vµ ghi kÕt qu¶ díi d¹ng tham trÞ ®Çu ra cho biÕn OUT,IN-OUT cña local block , hÖ ®iÒu hµnh sÏ chuyÓn c¸c tham trÞ nµy cho khèi mÑ vµ gi¶i phãng khèi con cïng local block ra khái vïng Work memory.
2.5.1.1. Khai b¸o local block cho FC
Local block cña khèi con ®îc chia thµnh hai phÇn:
- PhÇn c¸c biÕn h×nh thøc ®Ó khèi con nhËn vµ truyÒn tham trÞ víi
khèi mÑ. BiÕn h×nh thøc trong local block cña FC cã ba lo¹i cho trong b¶ng díi:
Lo¹i biÕn h×nh thøc
ý nghÜa
IN
BiÕn h×nh thøc nhËn tham trÞ tõ khèi mÑ lµm s¬ kiÖn cho ch¬ng tr×nh trong khèi con
OUT
BiÕn h×nh thøc truyÒn tham trÞ tõ khèi con vÒ khèi mÑ
IN- OUT
BiÕn h×nh thøc võa cã kh¶ n¨ng nhËn võa cã kh¶ n¨ng truyÒn tham trÞ gi÷a khèi con víi khèi mÑ.
- PhÇn chøa c¸c biÕn t¹m thêi ®îc ký hiÖu lµ TEMP (ch÷ viÕt t¾t cña temporary) chøa c¸c gi¸ trÞ tÝnh to¸n tøc thêi. Do local block sÏ ®îc gi¶i phãng khi kÕt thóc ch¬ng tr×nh, gi¸ trÞ c¸c biÕn t¹m thêi nµy còng sÏ bÞ mÊt theo ngay sau khi ch¬ng tr×nh trong khèi con ®îc thùc hiÖn xong.
ViÖc khai b¸o local block ®ång nghÜa víi viÖc ®Æt tªn biÕn, ®Þnh nghÜa lo¹i biÕn (biÕn h×nh thøc hay biÕn t¹m thêi) vµ kiÓu d÷ liÖu (nguyªn, thùc,ký tù…) cho tõng biÕn, trong ®ã tªn biÕn lµ nh÷ng d·y ký tù hoÆc sè vµ kh«ng thuéc nhãm ký tù kho¸ (®· ®îc dïng bëi hÖ ®iÒu hµnh).
Ch¬ng tr×nh truy nhËp local block th«ng qua c¸c tªn biÕn díi d¹ng to¸n h¹ng cña lÖnh theo cÊu tróc:
#
VÝ dô:
L # receive // §äc néi dung cña « nhí cã tªn lµ receive trong local block vµo ACCU1.
T # transit // ChuyÓn ACCU1 tíi « nhí cã tªn lµ transit trong local block.
Chó ý: Mét ®iÒu cÇn ph¶i ®îc ®Æc biÖt chó ý lµ b¾t ®Çu tõ miÒn c¸c biÕn t¹m thêi TEMP, ®Þa chØ ®îc ®¸nh l¹i tõ ®Çu. MiÒn biÕn h×nh thøc kh«ng ®îc cÊp « nhí mµ chØ cã con trá ®Þa chØ. Do ®ã nÕu trong tr¬ng tr×nh, to¸n h¹ng cña nh÷ng lÖnh truy nhËp « nhí cña local block cã cÊu tróc:
L#
Th× ®ã sÏ lµ « nhí thuéc miÒn c¸c biÕn TEMP .
Nh÷ng kiÓu d÷ liÖu hîp lÖ cho tÊt c¶ c¸c lo¹i biÕn (kÕ c¶ biÕn h×nh thøc vµ biÕn t¹m thêi) ®îc tæng kÕt trong b¶ng sau:
KiÓu d÷ liÖu
KÝch thíc (bit)
Tham trÞ thÝch hîp
BOOL
1
KiÓu biÕn logic v¬Ý hai gi¸ trÞ 0 hoÆc 1.Tham trÞ cã thÓ lµ mét gi¸ trÞ logic (TRUE/FALSE) hoÆc lµ néi dung mét bit
BYTE
8
Tham trÞ ph¶i lµ néi dung cña mét byte
WORD
16
Tham trÞ ph¶i lµ néi dung cña mét tõ (2 byte)
DWORD
32
Tham trÞ ph¶i lµ néi dung cña mét tõ kÐp (4 byte )
CHAR
8
Tham trÞ ®îc truyÒn cã thÓ lµ mét m· ASCII hoÆc néi dung cña mét byte
INT
16
Tham trÞ ®îc truyÒn vµo cã thÓ lµ néi dung cña mét tõ(2 byte) hoÆc lµ mét sè nguyªn trong kho¶ng -32768 ¸32767
DINT
32
Tham trÞ ®îc truyÒn vµo cã thÓ lµ néi dung cña mét tõ kÐp (4 byte) hoÆc lµ mét sè nguyªn trong kho¶ng -231¸231 –1
REAL
32
Tham trÞ ®îc truyÒn vµo cã thÓ lµ néi dung cña mét tõ kÐp (4 byte) hoÆc lµ mét sè thùc dÊu ph¶y ®éng.VÝ dô:3.1416.
TIME
32
Tham trÞ ®îc truyÒn vµo cã thÓ lµ néi dung cña mét tõ kÐp hoÆc lµ mét sè ®o kho¶ng thêi gian d¹ng T# ngµy D_giêH_phótM_gi©yS_mili gi©yMS
DATE
32
Tham trÞ ®îc truyÒn vµo cã thÓ lµ néi dung cña mét tõ kÐp (4 byte) hoÆclµ mét gi¸ trÞ ngµy th¸ng d¹ng D#n¨m-th¸ng-ngµy
TOD
32
Tham trÞ ®îc truyÒn vµo cã thÓ lµ néi dung cña mét tõ kÐp (4 byte) hoÆc lµ mét gi¸ trÞ thêi gian d¹ng TOD# ngµy D_giêH_phótM_gi©yS_mili gi©yMS
S5TIME
32
Tham trÞ ®îc truyÒn vµo cã thÓ lµ néi dung cña mét tõ kÐp (4 byte) hoÆc lµ mét gi¸ trÞ thêi gian d¹ng S5T# ngµy D_giêH_phótM_gi©yS_mili gi©yMS
Date_And_Time
64
Tham trÞ ®îc truyÒn vµo cã thÓ lµ néi dung cña « nhí cã kiÓu Date_And_Time(DT) hoÆc lµ mét gi¸ trÞ d¹ng DT # n¨m-th¸ng-ngµy-giê:phót:gi©y:mili gi©y
ANY
80
§©y lµ kiÓu biÕn tæng qu¸t, thay thÕ ®îc cho c¸c kiÓu ë trªn.Ngoµi ra tham trÞ cña kiÓu biÕn nµy cßn cã thÓ lµ thanh ghi CV,T_Bit,C_Bit,tªn cña Timer, tªn cña Counter; tªn c¸c logic block nh FB10, FC2… tªn biÕn h×nh thøc
2.5.1.2. Gäi khèi FC vµ thñ tôc truyÒn tham trÞ
LÖnh gäi mét khèi con vµ truyÒn tham trÞ cho nã tõ khèi mÑ cã d¹ng:
Có ph¸p CALL FCx
Trong ®ã FCx lµ tªn khèi con ®îc gäi.
Ngay khi gÆp lÖnh gäi mét khèi con, ch¬ng tr×nh so¹n th¶o Step7 sÏ c¨n cø vµo cÊu tróc cña local block, cô thÓ lµ nh÷ng biÕn h×nh thøc cña khèi con (biÕn IN, OUT, IN_OUT), mµ cho hiÖn t¹i nh÷ng biÕn nµy chê ngêi sö dông khai b¸o tham trÞ.
KiÓu tham trÞ truyÒn tõ khèi con th«ng qua biÕn h×nh thøc IN hay IN_OUT phô thuéc vµo kiÓu ®· g¸n, cô thÓ lµ:
- NÕu biÕn ®îc khai b¸o mét trong c¸c kiÓu BOOL, CHAR, INT, DINT, TIME, BOOL, DATE, TOD, S5TIME th× tham trÞ truyÒn cã thÓ lµ mét gi¸ trÞ cô thÓ hoÆc lµ néi dung cña mét « nhí cã kÝch thíc t¬ng øng.
- NÕu biÕn ®îc khai b¸o theo kiÓu BYTE, WORD, DWORD, DINT th× ph¶i lµ néi dung cña « nhí cã kÝch thíc phï hîp.
Riªng ®èi víi tham trÞ ®îc khèi con tr¶ vÒ cho khèi mÑ qua biÕn h×nh thøc OUT hay IN-OUT th× lu«n ph¶i lµ mét « nhí cã kÝch thíc cïng víi biÕn.
2.5.1.3. Local block cña FB
Nhîc ®iÓm cña cña kiÓu khèi FC lµ néi dung c¸c biÕn t¹m thêi theo TEMP kh«ng ®îc lu gi÷ l¹i cho nh÷ng vßng quÐt sau. §iÒu nµy b¾t buéc nh÷ng khèi FC sö dông biÕn kiÓu TEMP trong local block ph¶i ®îc thùc hiÖn xong trong mét vßng quÐt vµ do ®ã h¹n chÕ miÒn sö dông cña chóng.
Kh¾c phôc nhîc ®iÓm trªn, S7-300/400 cung cÊp mét lo¹i khèi cã tÝnh n¨ng t¬ng tù nh khèi FC nhng l¹i cã kh¶ n¨ng lu gi÷ l¹i ®îc néi dung c¸c biÕn t¹m thêi cho c¸c vßng quÐt kÕ tiÕp, ®îc gäi lµ khèi hµm FB. Lo¹i biÕn t¹m thêi cã néi dung ®îc lu gi÷ nµy cã tªn lµ STAT (viÕt t¾t cña static).
Ph¬ng thøc lu gi÷ l¹i néi dung c¸c biÕn lo¹i STAT ®îc hÖ ®iÒu hµnh thùc hiÖn nhê mét khèi d÷ liÖu nh sau:
OB1
call FB1, DB2
ChuyÓn FB1 vµo Work memory, cÊp ph¸t local block g¾n tham trÞ cho biÕn h×nh thøc tõ OB1 vµ cho biÕn lo¹i STAT tõ DB2
DB22
Tr¶ tham trÞ vÒ OB1 ghi l¹i biÕn lo¹i STAT vµo DB2. Xo¸ FB1 vµ local block cña nã khái Work memory
FB1
BE
BD2
H×nh 2.3. Thùc hiÖn gäi khèi FB1 kÌm cïng víi DB2 vµ OB1.
- Khi thùc hiÖn lÖnh gäi, hÖ ®iÒu hµnh chuyÓn khèi FB ®îc gäi vµo Work memory cÊp ph¸t cho nã trong Work memory mét local block nh yªu cÇu. Ghi c¸c tham trÞ tõ khèi mÑ vµo c¸c biÕn h×nh thøc lo¹i IN, IN-OUT, vµ néi dung c¸c « nhí t¬ng øng trong DB kÌm theo biÕn lo¹i STAT trong local block.
- Khi ch¬ng tr×nh trong khèi FB kÕt thóc, hÖ ®iÒu hµnh chuyÓn néi dung cña biÕn h×nh thøc lo¹i OUT, IN-OUT vÒ cho khèi mÑ vµ ghi l¹i c¸c gi¸ trÞ biÕn théc lo¹i STAT trong local block vµo khèi d÷ liÖu kÌm theo, sau ®ã gi¶i phãng local block cïng khèi FB ra khái Work memory.
VÒ c¬ b¶n local block cña khèi FB còng gièng nh cña khèi FC, nhng cã thªm biÕn lo¹i STAT. C¸c lo¹i biÕn cña khèi FB cho trong b¶ng díi:
Lo¹i biÕn
ý nghÜa
IN
BiÕn h×nh thøc sö dông ®Ó nhËn tham trÞ tõ khèi mÑ lµm s¬ kiÖn cho ch¬ng tr×nh trong khèi con
OUT
BiÕn h×nh thøc dïng ®Ó tr¶ tham trÞ tõ khèi con vÒ khèi mÑ
IN-OUT
BiÕn h×nh thøc, lo¹i biÕn nµy võa cã kh¶ n¨ng nhËn võa cã kh¶ n¨ng tr¶ tham trÞ cho khèi mÑ.
STAT
Néi dung cña biÕn lo¹i nµy cã kh¶ n¨ng lu gi÷ l¹i khi kÕt thóc ch¬ng tr×nh trong FB
TEMP
BiÕn t¹m thêi.Néi dung sÏ bÞ mÊt khi ch¬ng tr×nh trong FB kÕt thóc
ViÖc khai b¸o local block cho FB còng hoµn toµn t¬ng tù nh cho FC gåm ®Æt tªn biÕn, x¸c ®Þnh, x¸c ®Þnh lo¹i biÕn (biÕn h×nh thøc hay, STAT hay TEMP) vµ kiÓu d÷ liÖu (nguyªn, thùc, ký tù) cho tõng biÕn.
Tªn biÕn ph¶i lµ nh÷ng d·y ký tù hoÆc sè vµ kh«ng thuéc nhãm ký tù kho¸ (®· ®îc dïng bëi hÖ ®iÒu hµnh).
2.5.1.4. Instance block vµ thñ tôc gäi khèi FB
Kh¸c víi khèi FC, khèi hµm FB bao giê còng lµm viÖc víi mét khèi d÷ liÖu DB dïng ®Ó lu gi÷ néi dung c¸c biÕn kiÓu STAT local block. Khèi DB nµy cã tªn khèi d÷ liÖu lµ Instance, lý do lµ khi ta thùc hiÖn lÖnh gäi khèi hµm FB, hÖ ®iÒu hµnh còng më lu«n khèi d÷ liÖu nµy b»ng lÖnh “OPN DI”.
Nh vËy kÌm víi lÖnh gäi khèi FB ta ph¶i chØ thÞ lu«n c¶ lu«n c¶ tªn khèi d÷ liÖu DB t¬ng øng. LÖnh gäi khèi hµm FB cã cÊu tróc nh sau:
Có ph¸p CALL FBx , DBy
Trong ®ã FBx lµ tªn khèi hµm ®îc gäi, vµ DBy lµ tªn khèi d÷ liÖu kÌm theo, khèi d÷ liÖu DBy ph¶i cã cÊu tróc phï hîp víi local block cña FBx ®· ®îc so¹n th¶o.
PhÇn mÒm Step7 hç trî ngêi so¹n th¶o viÖc t¹o lËp khèi d÷ liÖu DB cã cÊu tróc phï hîp víi local block cña khèi hµm FB ®îc gäi, ngay sau khi viÕt lÖnh gäi mét khèi hµm FB vµ nÕu khèi DB kÌm theo cha ®îc so¹n th¶o tríc, Step7 sÏ sÏ t¹o lËp mét DB míi cã cÊu tróc phï hîp víi local block cña khèi hµm FB ®ã.
2.5.1.5. Sö dông c¸c khèi OB
C¸c khèi OB cã thÓ ®îc xÕp theo lo¹i c«ng dông thµnh 3 nhãm:
Nhãm c¸c khèi OB chøa ch¬ng tr×nh øng dông xö lý ng¾t,
Nhãm c¸c khèi OB chøa ch¬ng tr×nh khëi ®éng,
Nhãm c¸c khèi OB xö lý lçi trong hÖ thèng.
Còng nh FC, FB, khèi OB lµ khèi chøa ch¬ng tr×nh, do ®ã còng lµ mét logic block. §iÓm kh¸c biÖt c¬ b¶n gi÷a OB vµ c¸c khèi kh¸c thuéc logic block lµ OB kh«ng ®îc gäi chñ ®éng ®Ó thùc hiÖn (vÝ dô b»ng lÖnh CALL) mµ bÞ ®éng bëi c¸c tÝn hiÖu ng¾t. Kh¸i niÖm “bäi bÞ ®éng” ®îc hiÓu lµ vÞ trÝ còng nh thêi ®iÓm ph¸t lÖnh gäi kh«ng ®îc lËp tr×nh tõ tríc mµ hoµn toµn mang tÝnh ngÉu nhiªn. Ch¬ng tr×nh trong c¸c khèi OB nµy còng cã thÓ cã c¸c lÖnh gäi khèi FC hoÆc khèi FB nhng tÊt nhiªn kh«ng thÓ gäi mét khèi OB kh¸c.
Mçi khèi OB ®îc gäi b»ng mét lo¹i tÝn hiÖu ng¾t, nÕu x¶y ra hiÖn tîng xuÊt hiÖn cïng mét lóc nhiÒu tÝn hiÖu ng¾t th× sao? Trong trêng hîp nh vËy, khèi OB nµo cã thø tù u tiªn cao h¬n sÏ ®îc xö lý tríc vµ ch¬ng tr×nh trong khèi OB cã thø tù u tiªn thÊp h¬n ph¶i chê cho tíi khi tÊt c¶ c¸c khèi cã u tiªn cao h¬n ®îc xö lý xong míi ®Õn lît ®îc thùc hiÖn. Khèi OB1 lµ khèi cã møc u tiªn thÊp nhÊt vµ do ®ã mäi tÝn hiÖu ng¾t ®Òu ng¾t ®îc qu¸ tr×nh thùc hiÖn ch¬ng tr×nh cña khèi OB1.
2.5.1.5.1. Ng¨n xÕp I (I - Stack)
Do còng ®îc gäi (bÞ ®éng b»ng tÝn hiÖu ng¾t) nªn gièng nh viÖc xö lý lÖnh CALL, hÖ ®iÒu hµnh cÇn ph¶i cÊt gi÷ vÞ trÝ quay vÒ, c¸c d÷ liÖu cµn thiÕt ®Ó tiÕp tôc c«ng viÖc trong khèi mÑ. Ng¨n xÕp cÊt nh÷ng d÷ liÖu nµy cã tªn lµ I-Stack (h×nh díi), ®é s©u cña ng¨n xÕp I quyÕt ®Þnh sè c¸c khèi ch¬ng tr×nh xö lý ng¾t (OB) ®îc lång nhau vµ ®é s©u nµy phô thuéc vµo chñng lo¹i cña tõng module CPU.
I- Stack
Néi dung thanh ghi ACCU1,ACCU2
Néi dung thanh ghi AR1,AR2
Néi dung thanh ghi DI,DB
Con 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¸i
Tªn khèi mÑ
§Þa chØ quay vÒ
OB1
OB35
TÝn hiÖu ng¾t gäi
khèi OB35
H×nh 2.4. CÊt gi÷ d÷ liÖu cÇn thiÕt cho viÖc quay vÒ khi xö lý xong ng¾t vµo
2.5.1.5.2. Ch¬ng tr×nh øng dông xö lý ng¾t
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)
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_Time
Thêi ®iÓm OB35 b¾t ®Çu ®îc thùc hiÖ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_EXE
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). Ngoµ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õ ngoµi ®a vµo.
2.5.1.5.3. Ch¬ng tr×nh khëi ®éng (Initialization)
§äc DI vµo Process
image input table (I)
OB1
ChuyÓn Process image output table (Q) tíi DO
KiÓm tra lçi vµ truyÒn th«ng
OB100
H×nh 2.5. M« t¶ qu¸ tr×nh khëi ®éng ch¬ng tr×nh
®iÒu khiÓn víi khèi OB100 cña S7-300
STOPRUN
Khi cµi ®Æt ch¬ng tr×nh øng dông, rÊt nhiÒu thuËt to¸n ®ßi hái ph¶i cã nh÷ng gi¸ trÞ, tham sè hay s¬ kiÖn ban ®Çu nh÷ng gi¸ trÞ, tham sè nµy kh«ng thÓ ®îc khai b¸o trong khèi OB1 v× nh vËy cø ®Çu vßng quÐt lµ ch¬ng tr×nh ®iÒu khiÓn sÏ l¹i trë vÒ tr¹ng th¸i khëi ®éng.
HÖ ®iÒu hµnh cña CPU S7-300 cung cÊp khèi OB100 cho phÐp ta thùc hiÖn ®îc c¸c c«ng viÖc khëi ®éng cho ch¬ng tr×nh ®iÒu khiÓn. Khi chuyÓn CPU tõ tr¹ng th¸i tõ STOP sang RUN ®Ó thùc hiÖn ch¬ng tr×nh ®iÒu khiÓn, hÖ ®iÒu hµnh bao giê còng gäi vµ thùc hiÖn ch¬ng tr×nh trong khèi OB100 tríc, sau ®ã míi thùc sù b¾t ®Çu vßng quÐt víi viÖc gäi OB1.
Mçi khi CPU chuyÓn tr¹ng th¸i tõ STOP sang RUN lµ OB100 ®îc gäi vµ thùc hiÖn, kh«ng ph©n biÖt viÖc chuyÓn tr¹ng th¸i ®ã ®îc tiÕn hµnh trùc tiÕp b»ng kho¸ chuyÓn c«ng t¾c trªn module CPU hay nhê phÇn mÒm Simatic Manager.
Khèi OB100 cã local block nh sau:
Tªn h×nh thøc
KiÓu
Gi¸ trÞ vµ ý nghÜa
OB100_EV_CLASS
Byte
B#16#13
OB100_STRTUP
Byte
ChÕ ®é gäi OB1
* B#16#81=®îc gäi khi chuyÓn tõ STOP sang RUN
* B#16#82=®îc gäi tù ®éng khi chuyÓn tõ STOP sang RUN hoÆc khi chuyÓn tõ OFF sang ON vµ CPU vÉn ®ang ë tr¹ng th¸i RUN.
OB100_PRIORITY
Byte
27 (thø tù u tiªn)
OB100_OB_NUMBR
Byte
100 lµ chØ sè cña khèi OB100
OB100_RESERVED_1
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh)
OB100_RESERVED_2
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh)
OB100_STOP
Word
M· hiÖu ng¾t lµm cho CPU chuyÓn vÒ tr¹ng th¸i STOP.Th«ng tin vÒ viÖc thùc hiÖn chÕ ®é khëi ®éng.
OB100_STRT_INFO
Dword
Th«ng tin vÒ viÖc thùc hiÖn chÕ ®é khëi ®éng.
OB100_DATE_TIME
Date_And_Time
Thêi ®iÓm OB100 b¾t ®Çu ®îc thùc hiÖn.
2.5.1.5.4. Xö lý lçi hÖ thèng
Lçi hÖ thèng cã hai lo¹i:
Lçi asynchronous (lçi kh«ng ®ång bé), bao gåm:
+ Lçi vît qu¸ thêi gian xoay vßng cho phÐp – OB80,
+ Lçi sù cè nguån nu«i (vÝ dô kh«ng cã pin) – OB81,
+ Lçi sù cè module (vÝ dô chËp m¹ch trªn module vµo) – OB82,
+ Lçi thiÕu khèi OB chøa ch¬ng tr×nh xö lý ng¾t – OB85,
+ Lçi truyÒn th«ng – OB87.
Lçi synchronous (lçi ®ång bé), bao gåm:
+ Lçi lËp tr×nh (vÝ dô thiÕu khèi DB, FC hoÆc FB) –OB121,
+ Lçi truy nhËp module (vÝ dô cã lÖnh truy nhËp module më réng nhng l¹i kh«ng t×m thÊy module ®ã) – OB122.
Khi gÆp lçi kh«ng ®ång bé, hÖ thèng sÏ chuyÓn CPU vÒ tr¹ng th¸i STOP. TÊt c¶ c¸c tÝn hiÖu b¸o ng¾t lçi kh«ng ®ång bé ®Òu cã thÓ ®îc che hoÆc bá mÆt n¹ che nhê sö dông:
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 xö 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 xö lý.
* Xö lý lçi vÒ thêi gian thùc hiÖn ch¬ng tr×nh (OB80)
Khèi OB80 sÏ ®îc hÖ thèng gäi khi:
Thêi gian thùc hiÖn ch¬ng tr×nh vît qu¸ thêi gian vßng quÐt cùc ®¹i cho phÐp. MÆc ®Þnh mçi vßng quÐt ®îc quy ®Þnh lµ ph¶i thùc hiÖn kh«ng qu¸ 150ms. Sù quy ®Þnh nµy lµ cÇc thiÕt ®Ó cã thÓ ®¶m b¶o tÝnh thêi gian thùc cña ch¬ng tr×nh ®iÒu khiÓn. MÆc dï ta cã thÓ sö dông phÇn mÒm Simatic Manager ®Ó t¨ng kho¶ng thêi gian vßng quÐt cùc ®¹i cho phÐp, song ®iÒu nµy lµ hoµn toµn kh«ng nªn, nhÊt lµ khi ph¶i ®iÒu khiÓn ®èi tîng biÕn ®æi nhanh.
Theo thiÕt kÕ, mét trong sè OB10 ¸ OB17 ®¸ng ra ph¶i ®îc gäi t¹i mét thêi ®iÓm ®Þnh tríc, song v× mét lý do nµo ®ã, vÝ dô nh do ®ång hå thêi gian thùc hiÖn cña CPU ®· bÞ chØnh l¹i, mµ ®iÒu ®ã kh«ng ®îc thùc hiÖn.
HÖ thèng ®ang ph¶i xö lý mét tÝn hiÑu ng¾t cha xong mµ ®· gÆp ph¶i tÝn hiÖu b¸o ng¾t cïng lo¹i. VÝ dô nÕu thêi gian cÇn thiÕt ®Ó thùc hiÖn OB35 l¹i l©u h¬n chu kú ph¸t tÝn hiÖu b¸o ng¾t Ta ®· khai b¸o th× sÏ x¶y ra trêng hîp OB35 cha ®îc xö lý xong hÖ thèng ®· l¹i ph¶i gäi OB35 ®Ó xö lý cho lÇn tiÕp theo.
GÆp ph¶i lçi trong ch¬ng tr×nh cña mét khèi OB, ch¼ng h¹n nh lçi logic, lçi thuËt to¸n ngay c¶ trong trêng hîp gÆp mét tÝn hiÖu ng¾t cøng hoÆc ng¾t theo chu kú thêi gian nhng l¹i kh«ng cã khèi OB t¬ng øng (OB40 hay OB35) cña tÝn hiÖu ng¾t ®ã, hÖ thèng còng chuyÓn sang gäi khèi OB80 ®ång thêi ®a CPU vÒ tr¹ng th¸i STOP.
Nh vËy, sÏ cã nhiÒu lo¹i tÝn hiÖu b¸o ng¾t lçi kh¸c nhau cïng gäi ®Õn OB80, chóng sÏ ®îc OB80 ph©n biÖt víi nhau trong qu¸ tr×nh xö lý b»ng m· nhËn biÕt kiÓu lçi, t¬ng øng víi nh÷ng m· nhËn biÕt kiÓu lçi kh¸c nhau, khèi OB sÏ tù tæ chøc cho m×nh c¸c local block kh¸c nhau.
Local block cña khèi OB80 cho trong trêng hîp a) cã cÊu tróc nh sau:
Tªn h×nh thøc
KiÓu
Gi¸ trÞ vµ ý nghÜa
OB80_EV_CLASS
Byte
B#16#35.M· nhËn biÕt thø nhÊt
OB80_FLT_ID
Byte
B#16#01. M· nhËn biÕt thø hai
OB80_PRIORITY
Byte
26 (thø tù u tiªn).
OB80_OB_NUMBR
Byte
80. Lµ chØ sè cña khèi OB80
OB80_RESERVED_1
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB80_RESERVED_2
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB80_LAST_CYL
Word
Thêi gian vßng quÐt võa thùc hiÖn.
OB80_MIN_CYL
Word
Thêi gian vßng quÐt ng¾n nhÊt ®· thùc hiÖn.
OB80_MAX_CYL
Word
Thêi gian vßng quÐt l©u nhÊt ®· thùc hiÖn.
OB80_DATE_TIME
Date_And_Time
Thêi ®iÓm OB80 b¾t ®Çu thùc hiÖn.
Local block cña khèi OB80 cho c¸c trêng hîp b), c), d) nh sau:
Tªn h×nh thøc
KiÓu
Gi¸ trÞ vµ ý nghÜa
OB80_EV_CLASS
Byte
B#16#35. M· nhËn biÕt thø nhÊt
OB80_FLT_ID
Byte
M· nhËn biÕt thø hai
B#16#02.
B#16#03.
B#16#07.
OB80_PRIORITY
Byte
26 (thø tù u tiªn).
OB80_OB_NUMR
Byte
80. Lµ chØ sè cña khèi OB80.
OB80_RESERVED_1
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB80_RESERVED_2
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB80_ERR_INFO
Word
KiÓu lçi ph¸t hiÖn ®îc.
OB80_ERR_EV_CLA
Byte
KiÓu tÝn hiÖu ng¾t.
OB80_ERR_EV_NUM
Byte
Sè hiÖu tÝn hiÖu ng¾t.
OB80_OB_PRIORIT
Byte
Thø tù u tiªn cña khèi OB ®ang ®îc thùc hiÖn th× xuÊt hiÖn tÝn hiÖu b¸o ng¾t.
OB80_OB_NUM
Byte
Tªn khèi OB ®ang ®îc thùc hiÖn th× xuÊt hiÖn tÝn hiÖu b¸o ng¾t.
OB80_DATE_TIME
Date_And_Time
Thêi ®iÓm OB80 b¾t ®Çu ®îc thùc hiÖn.
Xö lý lçi nguån nu«i (OB81)
HÖ thèng sÏ gäi khèi OB81 khi ph¸t hiÖn cã lçi kh«ng ®ång bé b¸o sù cè vÒ nguån nu«i hoÆc pin nu«i miÒn nhí non-volatile. Kh¸c víi viÖc xö lý nh÷ng lçi kh«ng ®ång bé kh¸c, khi xö lý sù cè nguån nu«i hÖ thèng sÏ kh«ng chuyÓn CPU vÒ tr¹ng th¸i STOP.
TÝn hiÖu ng¾t b¸o lçi nguån nu«i cã thÓ ®îc che hoÆc bá mÆt n¹ che nhê:
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 xö 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 xö lý.
Local block cña khèi OB81 cã d¹ng:
Tªn h×nh thøc
KiÓu
Gi¸ trÞ vµ ý nghÜa
OB81_EV_CLASS
Byte
B#16#39.
OB81_FLT_ID
Byte
B#16#22. M· nhËn biÕt lçi.
OB81_PRIORITY
Byte
26/28 (thø tù u tiªn).
OB81_OB_NUMR
Byte
81. lµ chØ sè cña khèi OB81.
OB81_RESERVED_1
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB81_RESERVED_2
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB81_MDL_A§R
Int
KiÓu lçi ph¸t hiÖn ®îc.
OB81_RESERVED_3
Byte
KiÓu tÝn hiÖu ng¾t.
OB81_ER_EV_NUM
Byte
Sè hiÖu tÝn hiÖu ng¾t.
OB81_RESERVED_4
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB81_RESERVED_5
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB81_RESERVED_6
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB81_DATE_TIME
Date_And_Time
Thêi ®iÓm OB81 b¾t ®Çu ®îc thùc hiÖn.
Xö lý lçi module (OB82)
HÖ thèng sÏ gäi khèi OB82 khi ph¸t hiÖn lçi kh«ng ®ång bé vÒ sù cè trªn module më réng. Nh÷ng module nµy ph¶i lµ c¸c module cã kh¶ n¨ng tù kiÓm tra lçi, nÕu kh«ng t×m thÊy OB82, hÖ thèng sÏ chuyÓn CPU vÒ tr¹ng th¸i STOP. TÝn hiÖu ng¾t b¸o lçi module cã thÓ ®îc che hoÆc bá mÆt n¹ che nhê:
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 xö 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 xö lý.
Local block cña khèi OB82 cã d¹ng:
Tªn h×nh thøc
KiÓu
Gi¸ trÞ vµ ý nghÜa
OB82_EV_CLASS
Byte
B#16#38 hoÆc B#16#39
OB82_FLT_ID
Byte
B#16#42 m· nhËn biÕt cã lçi module
OB82_PRIORITY
Byte
26/28 (thø tù u tiªn)
OB82_OB_NUMR
Byte
82: Lµ chØ sè cña khèi OB82
OB82_RESERVED_1
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh)
OB82_IO_FLAG
Byte
01010100 Module vµo
01010101 Module ra
OB82_MDL_ADDR
Int
§Þa chØ module cã lçi
OB82_MDL_DEFECT
Bool
Tr¹ng th¸i module: Lçi
OB82_INT_FAULT
Bool
Lçi bªn trong module
OB82_EXT_INFO
Bool
Lçi bªn ngoµi module
OB82_FLD_CONNCT
Bool
Lçi nèi víi bus dÉn néi
OB82_NO_CONFIG
Bool
Module kh«ng cã tham sè cÊu h×nh
OB82_CONFIG_ERR
Bool
Tham sè cÊu h×nh cña module sai
OB82_MDL_TYPE
Byte
KiÓu module
OB82_SUP_MDL_ER
Bool
PhÇn phô cña module bÞ lçi hoÆc kh«ng cã
OB82_COMM_FAULT
Bool
Lçi truyÒn th«ng víi module
OB82_MDL_STOP
Bool
Module ë tr¹ng th¸I STOP
OB82_WTCH_DOG_F
Bool
Module dõng bëi Watch-dog-Timer
OB82_INT_PS_FLT
Bool
Lçi do nguån trong
OB82_PRIM_BATT
Bool
Lçi do pin nu«i chÝnh
OB82_BCKUP_BATT
Bool
Lçi do pin nu«i phô
OB82_RESERVED_2
Bool
Dù tr÷ (cña hÖ ®iÒu hµnh)
OB82_RACK_FLT
Bool
Lçi bëi thanh ray
OB82_PROC_FLT
Bool
Lçi bé vi xö lý cña module
OB82_EPROM_FLT
Bool
Lçi bé nhí EPROM cña module
OB82_RAM_FLT
Bool
Lçi bé nhí Ram cña module
OB82_ADU_FLT
Bool
Lçi ADU cña module
OB82_FUSE_FLT
Bool
Lçi cÊu ch× cña module
OB82_HW_INTR_FL
Bool
Lçi tÝn hiÖu ng¾t cøng ®Çu vµo
OB82_RESERVED_3
Bool
Kh«ng sö dông.
OB82_DATE_TIME
Date_And_Time
Thêi ®iÓm OB82 b¾t ®Çu ®îc thùc hiÖn.
Xö lý lçi thiÕu khèi OB (OB85)
HÖ thèng sÏ gäi khèi OB85 khi gÆp lçi ®ång bé còng nh tÝn hiÖu b¸o ng¾t t¹i thêi ®iÓm ®Þnh tríc nhng l¹i kh«ng t×m thÊy c¸c khèi OB t¬ng øng ®Ó xö lý nh÷ng tÝn hiÖu ng¾t nµy (vÝ dô thiÕu khèi OB10, OB82). Khèi OB85 còng ®îc hÖ thèng gäi nÕu trong ch¬ng tr×nh øng dông cã sö dông c¸c hµm chuÈn cña hÖ thèng (SFC) mµ nh÷ng hµm nµy l¹i truy nhËp ®Õn khèi OB kh«ng cã trong bé nhí, vÝ dô ch¬ng tr×nh sö dông hµm SFC30 ®Ó tÝch cùc OB10 nhng kh«ng t×m thÊy OB10 trong bé nhí. NÕu kh«ng t×m thÊy OB85, hÖ thèng sÏ chuyÓn CPU vÒ tr¹ng th¸i STOP.
TÝn hiÖu ng¾t b¸o lçi thiÕu khèi OB nµy cã thÓ ®îc che nhê hµm SFC39 (tªn h×nh thøc DIS_IRT) hoÆc bá mÆt n¹ che nhê hµm SFC40 (tªn h×nh thøc EN_IRT), ta còng cã thÓ sö dông hµm SFC41 (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 (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ý.
Local block cña khèi OB85 cã d¹ng:
Tªn h×nh thøc
KiÓu
Gi¸ trÞ vµ ý nghÜa
OB85_EV_CLASS
Byte
B#16#35.
OB85_FLT_ID
Byte
M· b¸o kiÓu lçi
B#16#A1: Ch¬ng tr×nh SFC kh«ng t×m thÊy khèi OB.
B#16#A1: HÖ ®iÒu hµnh kh«ng t×m thÊy khèi OB (vÝ dô nh khi ®Æt tham sè cÊu h×nh).
OB85_PRIORITY
Byte
26 (thø tù u tiªn).
OB85_OB_NUMR
Byte
85. Lµ chØ sè cña khèi OB85.
OB85_RESERVED_1
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB85_RESERVED_2
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB85_RESERVED_3
Word
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB85_ERR_EV_CLA
Byte
D¹ng tÝn hiÖu b¸o lçi.
OB85_ERREV_NUM
Byte
ChØ sè tÝn hiÖu b¸o lçi.
OB85_OB_PRIORIT
Byte
Thø tù u tiªn cña OB ®ang ®îc thùc hiÖn khi cã lçi
OB85_OB_NUM
Byte
Tªn khèi OB ®ang thùc hiÖn khi cã lçi.
OB85_DATE_TIME
Date_And_Time
Thêi ®iÓm OB85 b¾t ®Çu ®îc thùc hiÖn.
Xö lý lçi truyÒn th«ng (OB87)
HÖ thèng sÏ gäi khèi OB87 khi cã lçi truyÒn th«ng, vÝ dô nh lçi time out.
kh«ng t×m thÊy thÊy OB87 ®Ó xö lý lçi, hÖ thèng sÏ chuyÓn CPU vÒ tr¹ng th¸i STOP.
TÝn hiÖu ng¾t b¸o lçi truyÒn th«ng cã thÓ ®îc che hoÆc bá mÆt n¹ che nhê:
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 xö 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 xö lý.
Local block cña khèi OB87 cã d¹ng:
Tªn h×nh thøc
KiÓu
Gi¸ trÞ vµ ý nghÜa
OB87_EV_CLASS
Byte
B#16#35.
OB87_FLT_ID
Byte
M· b¸o kiÓu lçi:
B#16#D2: kh«ng ph¸t ®îc tÝn hiÖu yªu CPU kiÓm tra (diagnostic).
B#16#E1: Sai cÊu trróc ID khi truyÒn th«ng víi global data (GD).
B#16#E2: Kh«ng ®a ®îc th«ng tin tr¹ng th¸i cña GD vµo DB.
B#16#E6: Nhãm th«ng tin tr¹ng th¸I cña GD kh«ng chuyÓn ®îc vµo DB.
OB87_PRIORITY
Byte
26 (thø tù u tiªn).
OB87_OB_NUMR
Byte
87. Lµ chØ sè cña khèi OB87.
OB87_RESERVED_1
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB87_RESERVED_2
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB87_RESERVED_3
Word
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB87_RESERVED_4
Dword
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB87_DATE_TIME
Date_And_Time
Thêi ®iÓm OB87 b¾t ®Çu ®îc thùc hiÖn.
Xö lý lçi lËp tr×nh (OB121)
Khèi OB121 sÏ ®îc gäi b»ng tÝn hiÖu b¸o lçi lËp tr×nh, vÝ dô nh lçi chuyÓn ®æi sai kiÓu d÷ liÖu BCD lçi truy nhËp khèi DB hay gäi mét khèi FC kh«ng cã trong bé nhí…
Khèi OB121 cã cïng thø tù u tiªn gièng nh khèi OB bÞ ng¾t (thêng lµ OB1). §iÒu nµy gióp cho ch¬ng tr×nh trong OB121 sö dông ®îc néi dung cã trong c¸c thanh ghi tríc khi xuÊt hiÖn tÝn hiÖu b¸o lçi. T¬ng tù khi thùc hiÖn xong ch¬ng tr×nh trong OB121 vµ trë vÒ khèi OB bÞ ng¾t, ch¬ng tr×nh øng dông trong khèi OB nµy sö dông néi dung c¸c thanh ghi ®· söa ®æi bëi OB121.
TÝn hiÖu ng¾t b¸o lçi lËp tr×nh cã thÓ ®îc che hoÆc bá mÆt n¹ che nhê:
Hµm SFC36 (tªn h×nh thøc MSK_FLT) cã t¸c dông che ng¾t.
Hµm SFC37 (tªn h×nh thøc DMSK_FLT) cã t¸c dông bá mÆt n¹ che ng¾t.
Ch¬ng tr×nh øng dông còng cã thÓ sö dông hµm SFC38 (tªn h×nh thøc READ_ERR) ®Ó ®äc néi dung thanh ghi b¸o kiÓu lçi lËp tr×nh gÆp ph¶i.
Local block cña khèi OB121 cã d¹ng:
Tªn h×nh thøc
KiÓu
Gi¸ trÞ vµ ý nghÜa
OB121_EV_CLASS
Byte
B#16#25.
OB121_SW_FLT
Byte
M· b¸o kiÓu lçi:
B#16#21:Lçi biÕn ®æi BCD
B#16#22:Lçi ®äc « nhí ngoµi miÒn cho phÐp.
B#16#23:Lçi ghi vµo « nhí ngoµi miÒn cho phÐp
B#16#24:Lçi ®äc « nhí cã ®Þa chØ kh«ng ®óng cÊu tróc
B#16#25:Lçi ghi vµo « nhí cã ®Þ chØ sai cÊu tróc
B#16#26:Lçi sai tªn Timer
B#16#27:Lçi sai tªn Counter
B#16#28:Lçi ®äc « nhí qua con trá cã ®Þa chØ sai
B#16#29:Lçi ghi vµo « nhí qua con trá cã ®Þa chØ sai
B#16#30:Lçi ghi vµo DB chØ cho phÐp ®äc
B#16#31:Lçi ghi vµo DI chØ cho phÐp ®äc
B#16#32:Lçi më mét DB cã tªn qu¸ lín
B#16#33:Lçi më mét DI cã tªn qu¸ lín
B#16#34:Lçi gäi 1 khèi FC cã tªn qu¸ lín
B#16#35:Lçi gäi 1 khèi FB cã tªn qu¸ lín
B#16#3A:Kh«ng t×m thÊy DB
B#16#3C:Kh«ng t×m thÊy Fc
B#16#3E:K«ng t×m thÊy FB
OB121_PRIORITY
Byte
Thø tù u tiªn cña khèi OB bÞ ng¾t (thêng lµ OB1)
OB121_OB_NUMBR
Byte
121
OB121_BLK_TYPE
Byte
KiÓu khèi mµ t¹i ®ã xuÊt hiÖn lçi
OB121_RESERVED_1
Byte
Dù tr÷ (cña hÖ ®iÒu hµnh).
OB121_FLT_REG
Word
KiÓu lçi
OB121_BLK_NUM
Word
Tªn khèi mµ t¹i ®ã xuÊt hiÖn lçi
OB121_PRG_ADDR
Dword
§Þa chØ c©u lÖnh sinh ra lçi
OB121_DATE_TIME
Date_And_Time
Thêi ®iÓm OB121 b¾t ®Çu ®îc thùc hiÖn.
Xö lý lçi truy nhËp module (OB122)
HÖ thèng sÏ gäi khèi OB122 khi gÆp sù cè truy nhËp c¸c module më réng, vÝ dô gÆp sù cè ®äc tÝn hiÖu t¹i cæng cña mét module I/O. Khèi OB122 cã cïng thø tù u tiªn gièng nh khèi OB bÞ ng¾t nªn ch¬ng tr×nh trong OB122 cã thÓ sö dông ®îc néi dung cò cã trong c¸c thanh ghi tríc khi xuÊt hiÖn tÝn hiÖu b¸o sù cè. T¬ng tù khi thùc hiÖn xong ch¬ng tr×nh trong OB122 vµ trë vÒ khèi bÞ ng¾t, ch¬ng tr×nh øng dông trong khèi OB nµy sö dông ®îc néi dung c¸c thanh ghi ®· ®îc söa ®æi bëi OB122.
TÝn hiÖu b¸o ng¾t sù cè truy nhËp module cã thÓ ®îc nhê hµm SFC (víi tªn h×nh thøc MSK_FLT) hoÆc bá mÆt n¹ che ng¾t nhê hµm SFC37 (tªn h×nh thøc MSK_FLT).
Ch¬ng tr×nh øng dông còng cã thÓ sö dông hµm SFC38 (tªn h×nh thøc READ_ERR) ®Ó ®äc néi dung thanh ghi b¸o kiÓu lçi truy nhËp module gÆp ph¶i.
Local block cña khèi OB122 cã d¹ng:
Tªn h×nh thøc
KiÓu
Gi¸ trÞ vµ ý nghÜa
OB122_EV_CLASS
Byte
B#16#29.
OB122_FLT_ID
Byte
M· b¸o kiÓu lçi
B#16#42:Lçi ®äc
B#16#43:Lçi ghi
OB122_PRIORITY
Byte
Thø tù u tiªn cña khèi OB bÞ ng¾t (thêng lµ OB1)
OB122_ OB_NUMBR
Byte
122
OB122_ BLK_TYPE
Byte
KiÓu khèi mµ t¹i ®ã xuÊt hiÖn lçi
OB122_MEM_AREA
Byte
Vïng bé nhí mµ t¹i ®ã xuÊt hiÖn lçi
OB122_MEM_ADDR
Word
§Þa chØ « nhí mµ t¹i ®ã xuÊt hiÖn lçi
OB122_BLK_NUM
Word
Tªn khèi mµ t¹i ®ã xuÊt hiÖn lçi
OB122_PRG_ADDR
Dword
§Þa chØ c©u lÖnh gÆp ph¶i lçi
OB122_DATE_TIME
Date_And_Time
Thêi ®iÓm OB122 b¾t ®Çu ®îc thùc hiÖn
2.8.1.6. Nh÷ng hµm chuÈn qu¶n lý ng¾t
2.8.1.6.1. Che vµ bá mÆt n¹ che c¸c tÝn hiÖu ng¾t, tÝn hiÖu b¸o lçi kh«ng ®ång bé
C¸c hµm hÖ thèng dïng ®Ó che hoÆc bá mÆt n¹ che c¸c tÝn hiÖu ng¾t, c¸c tÝn hiÖu b¸o lçi, 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 xö 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 xö lý.
C¸c tÝn hiÖu ng¾t, b¸o lçi ®îc xÕp theo tõng nhãm nh sau:
Nhãm tÝn hiÖu b¸o ng¾t t¹i mét thêi ®iÓm ®Þnh tríc. Ch¬ng tr×nh xö lý c¸c tÝn hiÖu ng¾t nµy ph¶i n»m trong c¸c khèi OB10¸OB17.
Nhãm tÝn hiÖu b¸o ng¾t trÔ so víi thêi ®iÓm ®Þnh tríc. Ch¬ng tr×nh xö lý tÝn c¸c tÝn hiÖu ng¾t nµy ph¶i n»m trong c¸c khèi OB30 ¸OB23.
Nhãm tÝn hiÖu b¸o ng¾t theo chu kú thêi gian Ta . Ch¬ng tr×nh xö lý c¸c tÝn hiÖu ng¾t nµy ph¶i n»m trong c¸c khèi OB30¸OB38.
Nhãm tÝn hiÖu b¸o ng¾t cøng tõ bªn ngoµi. Ch¬ng tr×nh xö lý c¸c tÝn hiÖu ng¾t nµy ph¶i n»m trong c¸c khèi OB40¸OB47.
Nhãm tÝn hiÖu b¸o ng¾t truyÒn th«ng. Ch¬ng tr×nh xö lý c¸c tÝn hiÖu ng¾t nµy ph¶i n»m trong c¸c khèi OB50, OB51.
Nhãm tÝn hiÖu ng¾t b¸o lçi kh«ng ®ång bé. Ch¬ng tr×nh xö lý c¸c tÝn hiÖu ng¾t nµy ph¶i n»m trong c¸c khèi OB80¸OB87.
Nhãm tÝn hiÖu ng¾t b¸o lçi ®ång bé. Ch¬ng tr×nh xö lý c¸c tÝn hiÖu ng¾t nµy ph¶i n»m trong c¸c khèi OB121, OB122. §Æc biÖt cña nhãm nµy lµ ngoµi c¸c hµm SFC39, SFC40, SFC41, SFC42, chóng cßn cã thÓ ®îc che ng¾t hoÆc bá mÆt n¹ che nhê c¸c hµm SFC36 (tªn h×nh thøc MSK_FLT) vµ SFC37 (tªn h×nh thøc DMSK _FLT).
Hµm SFC39 (DIS_IRT)
Hµm cã t¸c dông d¬ng mÆt n¹ che: mét tÝn hiÖu ng¾t nhÊt ®Þnh, mét nhãm c¸ tÝn hiÖu ng¾t hoÆc che tÊt c¶ c¸c tÝn hiÖu ng¾t vµ tÝn hiÖu b¸o lçi kh«ng ®ång bé. Khi mét tÝn hiÖu ng¾t hay b¸o lçi ®îc d¬ng mÆt n¹ che, hÖ thèng sÏ kh«ng ®Ó ý tíi tÝn hiÖu ®ã n÷a, tøc lµ kh«ng gäi khèi OB t¬ng øng chøa ch¬ng tr×nh xö lý tÝn hiÖu ng¾t, b¸o lçi nµy cho tíi khi mÆt n¹ che ®îc bá ®i.
Hµm SFC39 cã c¸c tham biÕn h×nh thøc vµo-ra nh sau:
Lo¹i biÕn
Tªn biÕn
KiÓu d÷ liÖu
ý nghÜa
IN
MODE
Byte
X¸c ®Þnh lo¹i tÝn hiÖu ng¾t, b¸o lçi ®îc che:
B#16#0: Che tÊt c¶ c¸c tÝn hiÖu ng¾t vµ tÝn hiÖu b¸o lçi kh«ng ®ång bé. Kh«ng che tÝn hiÖu b¸o lçi ®ång bé.
B#16#1: Che c¸c tÝn hiÖu ng¾t, b¸o lçi thuéc mét nhãm nhÊt ®Þnh. Nhãm c¸c tÝn hiÖu ®îc che ®îc chØ thÞ bëi tªn khèi OB ®Çu tiªn cña nhãm cho biÕn OB_NR.
B#16#2: Che mét tÝn hiÖu ng¾t. TÝn hiÖu ng¾t ®îc che ®îc chØ thÞ bëi tªn khèi OB t¬ng øng cho biÕn OB_NR.
IN
OB_NR
Int
Tªn khèi OB cña tÝn hiÖu ng¾t, b¸o lçi ®îc che.
OUT
RET_VAL
Int
Gi¸ trÞ tr¶ vÒ cña hµm :
W#16#0000: Hµm lµm viÖc b×nh thêng.
W#16#8090: D÷ liÖu cho OB_NR bÞ sai.
W#16#8091: D÷ liÖu cho MODE bÞ sai.
Hµm SFC 40 (EN_IRT)
Hµm cã t¸c dông gì bá mÆt n¹ che:
Cña mét tÝn hiÖu ng¾t
Cña mét nhãm c¸c tÝn hiÖu ng¾t
Cña tÊt c¶ c¸c tÝn hiÖu ng¾t vµ tÝn hiÖu b¸o lçi kh«ng ®ång bé.
Khi mét tÝn hiÖu ng¾t hoÆc b¸o lçi kh«ng ®ång bé ®îc gì bá mÆt n¹ che, hÖ thèng sÏ gäi khèi OB t¬ng øng chøa ch¬ng tr×ng xö lÝ mçi khi xuÊt hiÖn tÝn hiÖu ng¾t, b¸o lçi nµy.
Hµm SFC40 cã c¸c tham biÕn h×nh thøc vµo - ra nh sau:
Lo¹i biÕn
Tªn biÕn
KiÓu d÷ liÖu
ý nghÜa
IN
MODE
Byte
X¸c ®Þnh lo¹i tÝn hiÖu ng¾t, b¸o lçi ®îc bá mÆt n¹ che:
B#16#0: Bá mÆt n¹ che cho tÊt c¶ c¸c tÝn hiÖu ng¾t vµ tÝn hiÖu b¸o lçi kh«ng ®ång bé.
B#16#1: Bá mÆt n¹ che cho c¸c tÝn hiÖu ng¾t , b¸o lçi thuéc mét nhãm nhÊt ®Þnh. Nhãm c¸c tÝn hiÖu nµy ph¶i ®îc chØ thÞ bëi tªn khèi OB ®Çu tiªn cña nhãm cho biÕn OB_NR
B#16#2: Bá mÆt n¹ che cho mét tÝn hiÖu ng¾t. TÝn hiÖu ng¾t ®îc bá mÆt n¹ ph¶I ®îc chØ thÞ bëi tªn khèi OB t¬ng øng cho biÕn OB_NR
IN
OB_NR
Int
Tªn khèi OB cña tÝn hiÖu ng¾t b¸o lçi ®îc bá mÆt n¹ che.
OUT
RET_VAL
Int
Gi¸ tri tr¶ vÒ cña hµm:
W#16#0000: Hµm lµm viÖc b×nh thêng.
W#16#8090: D÷ liÖu cho OB_NR bÞ sai.
W#16#8091: D÷ liÖu cho MODE bÞ sai.
Hµm SFC 41 (DIS_AIRT):
Hµm cã t¸c dông d¬ng mÆt n¹ che cho tÊt c¶ c¸c tÝn hiÖu ng¾t, tÝn hiÖu b¸o lçi kh«ng ®ång bé cã thø tù u tiªn cao h¬n ®é u tiªn cña khèi OB chøa lÖnh gäi hµm nµy.
Trong mét khèi ch¬ng tr×nh, hµm SFC41 cã thÓ ®îc gäi nhiÒu lÇn, sè lÇn gäi ®îc hÖ ®iÒu hµnh ®Õm vµ ghi nhËn l¹i díi d¹ng tham trÞ tr¶ vÒ cña hµm.
Hµm chØ cã mét biÕn h×nh thøc díi tªn RET_VAL thuéc lo¹i biÕn OUT vµ cã kiÓu d÷ liÖu lµ INT. Tham trÞ cña hµm tr¶ vÒ qua biÕn nµy lµ sè lÇn hµm ®· ®îc gäi.
C¸c tÝn hiÖu ng¾t, b¸o lçi ®· ®îc che sÏ kh«ng ®îc hÖ ®iÒu hµnh xö lý cho ®Õn khi chóng ®îc tÝch cùc l¹i nhê hµm SFC42 (EN_AIRT) hoÆc khi khèi ch¬ng tr×nh chøa lÖnh gäi hµm ®· ®îc thùc hiÖn xong, hµm SFC42 (EN_AIRT).
Hµm cã t¸c dông bá mÆt n¹ che cña tÊt c¶ c¸c tÝn hiÖu ng¾t, tÝn hiÖu b¸o lçi kh«ng ®ång bé cã thø tù u tiªn cao h¬n ®é u tiªn cña khèi OB chøa lÖnh gäi hµm nµy.
Trong mét khèi ch¬ng tr×nh, hµm SFC42 cã thÓ ®îc gäi nhiÒu lÇn, c¸c tÝn ng¾t b¸o lçi chØ thùc sù ®îc bá mÆt n¹ che nÕu sè lÇn gäi hµm SFC42 ®óng b»ng sè lÇn ®· gäi hµm SFC41 tríc ®ã. VÝ dô nÕu tríc ®ã ta ®· gäi hµm SFC41 3 lÇn th× ®Ó bá ®îc mÆt n¹ che ng¾t cho c¸c tÝn hiÖu b¸o ng¾t, b¸o lçi kh«ng ®ång bé, ta còng ph¶I gäi hµm SFC42 ®óng 3 lÇn.
Hµm chØ cã mét biÕn h×nh thøc víi tªn RET_VAL thuéc lo¹i biÕn OUT vµ cã kiÓu d÷ liÖu lµ INT. Tham trÞ cña hµm tr¶ vÒ qua biÕn nµy lµ:
Sè lÇn hµm cßn cÇn ph¶I gäi ®Ó cã thÓ thùc sù bá ®îc mÆt n¹ che cña tÊt
c¶ c¸c tÝn hiÖu ng¾t, tÝn hiÖu b¸o lçi kh«ng ®ång bé,
HoÆc lµ gi¸ trÞ W#16#8080 nÕu hµm SFC42 ®îc gäi khi tÊt c¶ c¸c tÝn hiÖu ng¾t vµ tÝn hiÖu b¸o lçi kh«ng ®ång bé ®ang ë tr¹ng th¸i tÝch cùc.
Hµm SFC kh«ng bÞ ng¾t.
2.5.1.6. 2. Che vµ bá mÆt n¹ che tÝn hiÖu b¸o lçi ®ång bé
§èi víi c¸c tÝn hiÖu b¸o lçi ®ång bé ta cã 3 hµm hÖ thèng sau ®Î quy ®Þnh chÕ ®é lµm viÖc cho ch¬ng tr×nh xö lý (khèi OB121, OB122):
SFC36 (tªn h×nh thøc MSK_FLT) dïng ®Ó ®Æt mÆt n¹ che,
SFC37 (tªn h×nh thøc DMSK_FLT) dïng ®Ó bá mÆt n¹ che,
SFC38 (tªn h×nh thøc READ_ERR) dïng ®Ó ®äc néi dung thanh ghi b¸o lçi tÝn hiÖu.
Th«ng thêng khi gÆp mét tÝn hiÖu b¸o lçi ®ång bé (lçi lËp tr×nh, lçi truy nhËp module), hÖ ®iÒu hµnh sÏ kiÓm tra tÝn hiÖu ®ã cã bÞ che ng¾t hay kh«ng:
NÕu kh«ng bÞ che, hÖ thèng sÏ gäi khèi OB chøa ch¬ng tr×nh xö lý lçi t¬ng øng. Khèi nµy do ngêi sö dông viÕt tuú theo yªu cÇu cña bµi to¸n ®iÒu khiÓn. Trong trêng hîp kh«ng t×m thÊy nh÷ng khèi OB nµy, hÖ ®iÒu hµnh sÏ chuyÓn CPU vÒ tr¹ng th¸i STOP.
NÕu bÞ che, hÖ thèng kh«ng gäi OB xö lý lçi. M· b¸o kiÓu lçi ®îc hÖ ®iÒu hµnh vµo thanh ghi b¸o lçi ®ång bé. Néi dung thanh ghi nµy ta cã thÓ ®äc ®îc nhê hµm SFC38 (READ_ERR).
BÞ che?
Ghi nhí m· tÝn hiÖu lçi
Cã khèi OB?
Gäi khèi OB
ChuyÓn CPU vÒ STOP
TÝn hiÖu b¸o lçi ®ång bé
No
yes No
yes
H×nh 2.6. C¸c bíc hÖ ®iÒu hµnh xö lý tÝn hiÖu b¸o lçi ®ång bé
C¸c bíc xö lý tÝn hiÖu b¸o lçi ®ång bé cña hÖ ®iÒu hµnh
Lçi ®ång bé cã hai lo¹i:
Lo¹i lçi lËp tr×nh (xö lý bëi OB121)
Lo¹i lçi truy nhËp module (xö lý bëi OB122),
Trong ®ã mçi lo¹i cã nhiÒu kiÓu lçi, nÕu ta cã mét c¸ch nh×n tæng qu¸t vÒ c¸c kiÓu lçi ®ã sÏ rÊt cÇn thiÕt cho viÖc sö dông c¸c hµm SFC36, SFC37.
* C¸c kiÓu lçi lËp tr×nh (OB121)
Lçi biÕn ®æi BCD: TÝn hiÖu b¸o lçi nµy sÏ ®îc ph¸t khhi hÖ thèng gÆp ph¶i lÖnh ®æi kiÓu d÷ liÖu cã cÊu tróc BCD víi mét ch÷ sè ngoµi kho¶ng 0¸9. VÝ dô hÖ thèng sÏ ph¸t tÝn hiÖu b¸o lçi kiÓu nµy nÊu gÆp lÖnh:
L W#16#2E
BTI //Lçi, v× ch÷ E n»m ngoµi kho¶ng 0¸9
Lçi ®äc « nhí ngoµi miÒn cho phÐp: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh ®äc néi dung mét « nhí cã ®Þa chØ n»m ngoµi miÒn cho phÐp. VÝ dô hÖ thèng sÏ ph¸t tÝn hiÖu b¸o lçi kiÓu nµy nÕu gÆp lÖnh:
L MW300 //Lçi, v× miÒn biÕn cê (M) chØ cã 256 byte
Lçi ghi vµo « nhí ngoµi miÒn cho phÐp: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh ghi vµo « nhí cã ®Þa chØ n»m ngoµi miÒn cho phÐp. VÝ dô hÖ thèng sÏ ph¸t tÝn hiÖu b¸o lçi kiÓu nµy nÕu gÆp lÖnh:
T MW320 // Lçi, v× miÒn biÕn cê (M) chØ cã 256 byte
Lçi ®äc « nhí cã ®Þa chØ sai cÊu tróc: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh ®äc mét « nhí nhng ®Þa chØ l¹i sai cÊu tróc. Th«ng thêng viÖc truy nhËp « nhí cã cÊu tróc ®Þa chØ sai mµ kh«ng bÞ ph¸t hiÖn sai có ph¸p khi so¹n th¶o lµ nh÷ng lÖnh truy nhËp th«ng qua con trá. VÝ dô hÖ thèng sÏ ph¸t tÝn hiÖu b¸o lçi kiÓu nµy nÕu gÆp lÖnh:
LAR1 P#0.0
L W[AR1,P#0.0] //Lçi, v× ®Þa chØ ®óng ph¶i lµ IW[AR1, P#0.0]
Lçi ghi vµo « nhí cã ®Þa chØ sai cÊu tróc: TÝn hiÖu b¸o lçi khiÓu nµy sÏ ®îc ph¸t hiÖn khi hÖ thèng gÆp ph¶i lÖnh ghi vµo mét « nhí cã ®Þa chØ sai cÊu tróc. Th«ng thêng viÖc truy nhËp « nhí cã cÊu tróc sai ®Þa chØ mµ kh«ng bÞ ph¸t hiÖn sai có ph¸p khi so¹n th¶o lµ nh÷ng lÖnh truy nhËp th«ng qua con trá. VÝ dô hÖ thèng sÏ ph¸t tÝn hiÖu b¸o lçi kiÓu nµy nÕu gÆp lÖnh:
LAR1 P#4.0
T W[AR1,P#0.0] //Lçi, v× ®Þa chØ ®óng ph¶i lµ QW[AR1, P#0.0]
Lçi sai tªn Timer: TÝn hiÖu b¸o lçi kiÓu nµy sÏ xuÊt hiÖn khi gÆp ph¶i lÖnh lµm viÖc víi Timer cã tªn n»m ngoµi kho¶ng mµ CPU cho phÐp. VÝ dô CPU 312 chØ cã 128 Timer nªn hÖ thèng sÏ ph¸t tÝn hiÖu b¸o lçi kiÓu nµy nÕuMW0=129 vµ gÆp lÖnh :
SP T[MW0] //Lçi , nÕu MW0 cã gi¸ trÞ lµ 129
Lçi sai tªn Counter : TÝn hiÖu b¸o lçi nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh lµm viÖc víi Counter cã tªn n»m ngoµi kho¶ng CPU cho phÐp. VÝ dô CPU312 chØ cã 64 Counter nªn hÖ thèng sÏ ph¸t tÝn hiÖu b¸o lçi kiÓu nµy nÕu MW0 = 100 gÆp lÖnh CU C[MW0] //Lçi ,nÕu MW0 cã gi¸ trÞ lµ 100
Lçi ®äc « nhí qua con trá cã ®Þa chØ sai: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh ®äc néi dung « nhí cã kÝch thíc bytes,word hay dword nhng con trá l¹i cã phÇn ®Þa chØ bit ¹ 0. VÝ dô hÖ thèng sÏ ph¸t tÝn hiÖu b¸o lçi kiÓu nµy nÕu gÆp lÖnh:
LAR1 P#M0 .2
L B[AR1, P# 0.0] // Lçi v× mét bytes ®îc tÝnh tõ bit thø 0
Lçi ®äc « nhí qua con trá cã ®Þa chØ sai: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh ®äc néi dung « nhí cã kÝch thíc bytes, word hay dword nhng con trá l¹i cã phÇn ®Þa chØ bit ¹ 0. VÝ dô hÖ thèng sÏ ph¸t tÝn hiÖu b¸o lçi kiÓu nµy nÕu gÆp lÖnh:
LAR1 P#M0 .2
T B[AR1, P# 0.0] // Lçi v× mét bytes ®îc tÝnh tõ bit thø 0
Lçi lµm viÖc víi DB: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh ghi d÷ liÖu vµo mét DB (share) chØ cho phÐp ®äc
Lçi lµm viÖc víi DI: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh ghi d÷ liÖu vµo mét DI (Instance) chØ cho phÐp ®äc.
Lçi më mét DB cã tªn qu¸ lín: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh më mét DB (share) cã tªn n»m ngoµi miÒn mµ CPU cho phÐp.
Lçi më mét DI cã tªn qu¸ lín: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh më mét DI (Instance) cã tªn n»m ngoµi miÒn mµ CPU cho phÐp.
Lçi gäi mét khèi FC cã tªn qua lín: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh gäi mét khèi FC cã tªn n»m ngoµi miÒn mµ CPU cho phÐp.
Lçi gäi mét khèi FB cã tªn qua lín: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh gäi mét khèi FB cã tªn n»m ngoµi miÒn mµ CPU cho phÐp.
Lçi më mét khèi DB kh«ng cã trong bé nhí: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh më mét khèi DB nhng khèi nµy l¹i cha ®îc n¹p vµo bé nhí (Load memory) cña CPU
Lçi më mét khèi FC kh«ng cã trong bé nhí: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh më mét khèi FC nhng khèi nµy l¹i cha ®îc n¹p vµo bé nhí (Load memory) cña CPU.
Lçi më mét khèi FB kh«ng cã trong bé nhí: TÝn hiÖu b¸o lçi kiÓu nµy sÏ ®îc ph¸t khi hÖ thèng gÆp ph¶i lÖnh më mét khèi FB nhng khèi nµy l¹i cha ®îc n¹p vµo bé nhí (Load memory) cña CPU.