MỤC LỤC
CHƯƠNG 1 MỞ ĐẦU.5
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP NGHIÊN CỨU.9
2.1 Giới thiệu chuẩn IEC 61131-3.9
2.1.1 Giới thiệu chung. 9
2.1.2 Mô hình phần mềm, mô hình giao tiếp và mô hình lập trình . 10
2.1.3 Một số yếu tố ngôn ngữ chung . 12
2.1.4 Ngôn ngữ lập trình SFC theo chuẩn IEC 61131-3. 17
2.2 Phân tích, thiết kế và lập trình hướng đối tượng.23
2.2.1 Lập trình hướng đối tượng. 24
2.2.2 Phương pháp phân tích, thiết kế hướng đối tượng . 24
2.2.3 Ngôn ngữ UML . 25
2.2.4 Mẫu thiết kế . 26
2.3 Ngôn ngữ XML .27
2.3.1 Sự ra đời của ngôn ngữ XML. 27
2.3.2 Những ưu điểm của XML. 28
2.3.3 Cấu trúc của tài liệu XML. 28
2.3.4 DOM và XML. 29
CHƯƠNG 3 CẤU TRÚC CHUNG CỦA GÓI PHẦN MỀM. 30
CHƯƠNG 4 THIẾT KẾ VÀ THỰC HIỆN CHƯƠNG TRÌNH CHẠY. 33
4.1 Giới thiệu chung về chương trình chạy .33
4.2 Cấu trúc của chương trình chạy .34
4.2.1 Phần cốt lõi . 36
4.2.2 Phần chương trình nạp cấu hình . 37
4.2.3 Không gian thực thi . 37
4.3 Thiết kế và thực hiện phần cốt lõi của chương trình chạy.38
4.3.1 Các định nghĩa cơ bản. 38
4.3.2 Các đối tượng trong chương trình chạy. 39
4.3.3 Kiểu đối tượng và quản lý các kiểu đối tượng. 42
4.3.4 Các lớp đối tượng cơ bản. 43
4.3.5 Cơ chế vào / ra . 45
4.3.6 Module điều khiển và mã chương trình . 47
4.3.7 Tác vụ và những vấn đề liên quan . 49
4.3.8 Thực hiện ngôn ngữ lập trình SFC . 53
4.3.9 Xây dựng thư viện khung lập trình SFC. 58
4.4 Thiết kế và thực hiện trình nạp cấu hình .59
4.4.1 Cơ sở. 59
18 trang |
Chia sẻ: lethao | Lượt xem: 2790 | Lượt tải: 5
Bạn đang xem nội dung tài liệu Đồ án Xây dựng gói phần mềm SFC cho điều khiển trình tự theo chuẩn IEC 61131-3, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
rong đồ án. Việc tìm hiểu
và nghiên cứu kĩ nội dung của chuẩn là một công việc rất quan trọng và chiếm
khá nhiều thời gian thực hiện đồ án. Nội dung của chương này sẽ giới thiệu qua về
chuẩn IEC 61131-3 để người đọc có những hiểu biết cơ sở giúp dễ dàng nắm bắt
và hiểu được các thiết kế và thực hiện của các phần mềm trong đồ án (sẽ trình
bày trong các chương sau). Bên cạnh đó, chương này cũng giới thiệu về một số
phương pháp chính được sử dụng trong quá trình nghiên cứu và thực hiện đồ án.
2.1 Giới thiệu chuẩn IEC 61131-3
2.1.1 Giới thiệu chung
IEC (International Electrotechnical Commission) là một tổ chức toàn cầu bao
gồm các hội đồng ở các quốc gia. Mục tiêu của tổ chức này là thúc đẩy công việc
chuẩn hóa trong lĩnh vực điện và điện tử.
IEC 61131 là tiêu chuẩn về bộ điều khiển khả trình PLC và các thiết bị ngoại vi đi
kèm. IEC 61131 gồm 9 phần, trong đó các phần 1 đến 5 là quan trọng nhất.
Phần 1 (General Information): đưa ra các định nghĩa chung và các đặc tính
chức năng tiêu biểu cho một hệ thống điều khiển lập trình PLC, ví dụ cơ chế
thực hiện tuần hoàn, ảnh quá trình, thiết bị lập trình và giao diện người – máy.
Phần 2 (Equipment Requirements): đặt ra các yêu cầu về điện học, cơ học và chức
năng cho các thiết bị; định nghĩa phương pháp kiểm tra và thử nghiệm các kiểu
thiết bị tương ứng. Các yêu cầu được định nghĩa là nhiệt độ, độ ẩm, cung cấp
nguồn, độ kháng nhiễu, phạm vi tín hiệu logic và sức bền cơ học của các thiết bị.
Phần 3 (Programming Languages): định nghĩa các ngôn ngữ lập trình cho các
thiết bị điều khiển khả trình, bao gồm hai ngôn ngữ đồ họa là biểu đồ hình
thang (Ladder Diagram, LD) và biểu đồ khối chức năng (Function Block
Diagram, FBD), hai ngôn ngữ kiểu văn bản là liệt kê lệnh (Instruction List, IL)
và ngôn ngữ kiểu văn bản có cấu trúc (Structured Text, ST), và cuối cùng là
phương pháp lập trình đồ họa SFC (Sequential Function Chart) để biểu diễn
các thuật toán điều khiển trình tự.
Xây dựng gói phần mềm SFC cho điều khiển trình tự theo chuẩn IEC 61131-3
Nghiêm Xuân Trường – Nguyễn Minh Hồng
10
Phần 4 (Guidelines for Users): đưa ra các nguyên tắc chỉ đạo cho người sử
dụng trong các quá trình của một dự án, từ phân tích hệ thống cho tới lựa chọn
thiết bị, vận hành và bảo trì hệ thống.
Phần 5 (Communication): đề cập tới phương pháp truyền thông giữa các PLC
cũng như giữa PLC và một thiết bị khác trên cơ sở các khối hàm chuẩn.
Ngoài các phần trên, một phần cũng được tham khảo nhiều trong quá trình
thực hiện đồ án là phần 8 (Programmer Guide). Phần này đưa ra các hướng
dẫn và các nguyên tắc cho việc ứng dụng và thực hiện các ngôn ngữ lập trình
cho các thiết bị điều khiển khả trình (đã được nêu trong phần 3).
Bên cạnh việc định nghĩa các ngôn ngữ lập trình, IEC 61131-3 còn đưa ra mô
hình phần mềm, mô hình giao tiếp và mô hình lập trình cùng những thành
phần quan trọng của chúng như chương trình (Program), khối chức năng
(Function Block), hàm (Function), cấu hình (Configuration), tài nguyên
(Resource), tác vụ (Task),…
2.1.2 Mô hình phần mềm, mô hình giao tiếp và mô hình lập trình
2.1.2.1 Mô hình phần mềm
Mỗi PLC tại một thời điểm chỉ có một cấu hình (configuration). Mỗi cấu hình
bao gồm một hay nhiều tài nguyên (resource). Mỗi tài nguyên tương ứng với một
“chức năng xử lý tín hiệu” cùng với “giao diện người - máy” và “giao diện cảm
biến và chấp hành” của nó (được định nghĩa trong IEC 61131-1). Mỗi tài
nguyên bao gồm ít nhất một chương trình (program) hoạt động dưới sự điều
khiển của các tác vụ (task). Một chương trình được xây dựng từ các khối chức
năng (function block) hoặc các yếu tố ngôn ngữ khác (định nghĩa trong IEC
61131-3). Các chương trình và các tài nguyên giao tiếp với nhau thông qua biến
toàn cục (global variables) và lối truy cập (access path). Có thể thấy rõ mô
hình này qua hình dưới.
Xây dựng gói phần mềm SFC cho điều khiển trình tự theo chuẩn IEC 61131-3
Nghiêm Xuân Trường – Nguyễn Minh Hồng
11
TASK TASK
RESOURCE
PROGRAM PROGRAM
FB FB
TASK TASK
RESOURCE
PROGRAM PROGRAM
FB FB
CONFIGURATION
ACCESS PATH
BiÕn toµn côc
Chøc n¨ng truyÒn th«ng (m« t¶ trong IEC61131-5)
®iÒu khiÓn thùc thi
hoÆc Truy cËp biÕn
FB Khèi chøc n¨ng
BiÕn
Hình 2-1 Mô hình phần mềm trong IEC 61131-3
2.1.2.2 Mô hình giao tiếp
Trong một chương trình, giá trị của biến có thể được truyền trực tiếp bằng cách
kết nối đầu ra của một phần tử tới đầu vào của một phần tử khác.
Giữa các chương trình trong cùng một cấu hình, giá trị của biến có thể được
truyền thông qua các biến toàn cục.
Cách giao tiếp đa năng nhất là sử dụng các khối chức năng giao tiếp
(Communication Function Blocks). Với cách này, giá trị của biến có thể được
truyền giữa các phần khác nhau của một chương trình, giữa các chương trình
khác nhau (thuộc hay không thuộc cùng một cấu hình), giữa một chương trình
chạy trên bộ điều khiển khả trình với một hệ thống không phải PLC.
Ngoài ra, bộ điều khiển khả trình và hệ thống không phải PLC có thể trao đổi
dữ liệu thông qua lối truy cập (access paths), sử dụng các cơ chế định nghĩa
trong IEC 61131-5.
2.1.2.3 Mô hình lập trình
Các yếu tố ngôn ngữ lập trình cho PLC được phân loại như sau:
Xây dựng gói phần mềm SFC cho điều khiển trình tự theo chuẩn IEC 61131-3
Nghiêm Xuân Trường – Nguyễn Minh Hồng
12
Data types
Variables
Program organization units
Functions
Function blocks
Programs
Sequential Function Chart (SFC) elements
Configuration elements
Global variables
Resources
Access paths
Tasks
Các hàm (function) và các khối chức năng (function block) có thể được thực
hiện bằng các ngôn ngữ khác với các ngôn ngữ định nghĩa trong chuẩn, tuy
nhiên cách thức kích hoạt và truy cập dữ liệu của các yếu tố này từ chương
trình của người dùng phải tuân theo những qui định của chuẩn.
2.1.3 Một số yếu tố ngôn ngữ chung
IEC 61131-3 định nghĩa một số yếu tố ngôn ngữ chung, là những yếu tố cơ bản
được sử dụng thống nhất không phụ thuộc vào ngôn ngữ lập trình cụ thể nào.
2.1.3.1 Định danh và từ khóa
Định danh là một chuỗi bao gồm các chữ cái, chữ số và dấu gạch dưới
(underline character), bắt đầu bằng một chữ cái hoặc dấu gạch dưới. Định
danh không phân biệt chữ hoa và chữ thường.
Từ khoá là tổ hợp kí tự mang một ý nghĩa riêng xác định trong chương trình.
Các định danh không được phép đặt trùng với các từ khoá. Từ khoá không
phân biệt chữ hoa và chữ thường và không được phép chứa dấu cách.
2.1.3.2 Cách biểu diễn của dữ liệu
1) Cách biểu diễn các số
Số nguyên có thể được biểu diễn dưới dạng thập phân hay một cơ số khác (2, 8
và 16). Ở dạng thập phân, cách biểu diễn số nguyên giống như ở các ngôn ngữ
lập trình quen thuộc. Để biểu diễn các số nguyên ở cơ số khác (2, 8, 16), các số
được bắt đầu bằng một hoặc hai chữ số thể hiện cơ số, theo sau bởi một kí tự
“#”. Khi biểu diễn ở cơ số khác, số nguyên không được mang dấu.
Xây dựng gói phần mềm SFC cho điều khiển trình tự theo chuẩn IEC 61131-3
Nghiêm Xuân Trường – Nguyễn Minh Hồng
13
Các số thực luôn được biểu diễn ở dạng thập phân, có thể sử dụng dạng mũ.
Nói chung, cách biểu diễn số thực giống như trong các ngôn ngữ lập trình khác.
Các giá trị logic có thể được biểu diễn bằng hai từ khoá TRUE và FALSE hoặc
hai giá trị nguyên 0 (tương ứng với FALSE) và 1 (tương ứng với TRUE).
Có thể xác định rõ kiểu dữ liệu cho các giá trị số bằng cách đưa thêm tên kiểu
dữ liệu, theo sau bởi một dấu “#”, vào trước biểu diễn bình thường của số.
2) Cách biểu diễn các chuỗi kí tự
Có hai kiểu kí tự được qui định là kí tự một byte và kí tự hai byte.
Các kí tự một byte sử dụng một byte để lưu trữ, bao gồm các kí tự trong hàng
00 của bảng mã ISO/IEC 10646. Các kí tự một byte được bao giữa hai dấu móc
đơn (‘). Các kí tự đặc biệt được bắt đầu bằng dấu dollar ($).
Các kí tự hai byte sử dụng hai byte để lưu trữ (kí tự mã Unicode), bao gồm toàn
bộ các kí tự của bảng mã ISO/IEC 10646. Các kí tự hai byte được bao giữa hai
dấu móc kép (“). Các kí tự đặc biệt cũng được bắt đầu bằng dấu dollar ($).
3) Cách biểu diễn thời gian
Có hai loại dữ liệu thời gian cần biểu diễn là khoảng thời gian (duration) và
thời gian ngày tháng.
Khoảng thời gian xác định một khoảng chênh về thời gian giữa hai thời điểm
nào đó. Kiểu dữ liệu là TIME được xác định bằng từ khoá T# hoặc TIME# ở
đầu. Khoảng thời gian được đo bằng ngày, giờ, phút, giây và milli giây. Các ví dụ
sau đều biểu diễn một khoảng thời gian là 1 giờ, 2 phút, 5 giây và 2.5 milli giây
: T#1h2m5s2.5ms, TIME#1h_2m_5s_2.5ms,…
Thời gian ngày tháng xác định một thời điểm nhất định nào đó. Có ba cách
biểu diễn thời điểm là: ngày (D, DATE), thời gian trong ngày (TOD,
TIME_OF_DAY), ngày và thời gian (DT, DATE_AND_TIME). Bản thân tên gọi của
chúng đã cho biết rõ ý nghĩa của từng cách biểu diễn.
2.1.3.3 Các kiểu dữ liệu
Chuẩn IEC 61131-3 qui định một số kiểu dữ liệu cơ sở. Ngoài ra còn có các
kiểu dữ liệu tổng quát và các kiểu dữ liệu dẫn xuất (các kiểu dữ liệu mới do
người dùng định nghĩa).
Xây dựng gói phần mềm SFC cho điều khiển trình tự theo chuẩn IEC 61131-3
Nghiêm Xuân Trường – Nguyễn Minh Hồng
14
Các kiểu dữ liệu cơ sở trong IEC 61131-3 được liệt kê trong bảng sau.
STT Từ khoá Kiểu dữ liệu Chiều dài
1 BOOL Boolean 1
2 SINT Nguyên ngắn 8
3 INT Nguyên 16
4 DINT Nguyên đúp 32
5 LINT Nguyên dài 64
6 USINT Nguyên ngắn không dấu 8
7 UINT Nguyên không dấu 16
8 UDINT Nguyên đúp không dấu 32
9 ULINT Nguyên dài không dấu 64
10 REAL Số thực 32
11 LREAL Số thực dài 64
12 TIME Khoảng thời gian --
13 DATE Ngày tháng --
14 TIME_OF_DAY or TOD Thời gian trong ngày --
15 DATE_AND_TIME or DT Ngày tháng và thời gian --
16 STRING Chuỗi kí tự 8 bit 8 × N
17 BYTE Chuỗi 8 bit 8
18 WORD Chuỗi 16 bit 16
19 DWORD Chuỗi 32 bit 32
20 LWORD Chuỗi 64 bit 64
21 WSTRING Chuỗi kí tự 16 bit 16 × N
Bảng 2-1 Các kiểu dữ liệu cơ sở
IEC 61131-3 đưa ra khái niệm “kiểu dữ liệu tổng quát” để đại diện cho một
nhóm các kiểu dữ liệu có chung một tính chất nào đó. Ví dụ tất cả các kiểu dữ
Xây dựng gói phần mềm SFC cho điều khiển trình tự theo chuẩn IEC 61131-3
Nghiêm Xuân Trường – Nguyễn Minh Hồng
15
liệu để biểu diễn số (thực hay nguyên) đều được nhóm vào cùng một kiểu tổng
quát là ANY_NUM. Các kiểu dữ liệu tổng quát chỉ được dùng cho các biến vào
và ra của hàm và khối chức năng. Điều này làm cho các hàm và khối chức năng
đó mang tính tổng quát và có thể áp dụng cho nhiều kiểu dữ liệu khác nhau.
Các kiểu dữ liệu tổng quát không có ý nghĩa nào khác trong một chương trình
và không thể được sử dụng cho một biến bình thường.
IEC 61131-3 cũng cho phép người sử dụng có thể định nghĩa các kiểu dữ liệu
riêng từ các kiểu dữ liệu vốn có, được gọi là các kiểu dữ liệu dẫn xuất. Có năm
kiểu dẫn xuất là:
• Các kiểu dẫn xuất trực tiếp (từ các kiểu dữ liệu cơ sở).
• Các kiểu liệt kê (enumerated data type).
• Các kiểu dãy con (subrange data type).
• Các kiểu cấu trúc (STRUCT data type).
• Các kiểu mảng (ARRAY data type).
2.1.3.4 Biến
Biến là đại diện cho một nơi lưu trữ dữ liệu thuộc một kiểu dữ liệu nào đó. Mỗi biến
có tên là một định danh. Mỗi biến phải có một kiểu dữ liệu xác định, ngoại trừ các
biến vào/ra của hàm và khối chức năng thì có thể thuộc một kiểu dữ liệu tổng quát.
Về cách biểu diễn, IEC 61131-3 chia hai loại biến là biến đơn phần tử (single-
element variable) và biến đa phần tử (multi-element variable). Các biến đơn
phần tử là các biến chỉ có một phần tử dữ liệu duy nhất, và việc đưa ra tên của
biến đã xác định được chính xác vị trí của dữ liệu trong bộ nhớ. Các biến đa
phần tử là những biến mà trong nó có nhiều phần tử dữ liệu khác nhau. Các
biến này thuộc kiểu mảng (ARRAY) hoặc kiểu cấu trúc (STRUCT). Việc đưa ra
tên của biến chưa đủ để xác định vị trí của dữ liệu trong bộ nhớ mà cần phải có
thêm một chỉ số để xác định phần tử cụ thể cần truy cập.
IEC 61131-3 cũng qui định nhiều loại biến khác nhau như biến toàn cục
(Global Variable), biến cục bộ (Local Variable), biến vào (Input Variable), biến
ra (Output Variable), biến lối truy cập (Access Path Variable),…
2.1.3.5 Khối tổ chức chương trình
Khối tổ chức chương trình (Program Organization Unit – POU) được định
nghĩa trong IEC 61131-3 là các chương trình, các hàm và các khối chức năng.
Xây dựng gói phần mềm SFC cho điều khiển trình tự theo chuẩn IEC 61131-3
Nghiêm Xuân Trường – Nguyễn Minh Hồng
16
Những thành phần này, đặc biệt là các hàm và các khối chức năng, có thể do
nhà sản xuất cung cấp sẵn, hoặc có thể do người sử dụng tạo nên.
• Hàm: là một khối tổ chức chương trình mà khi thực hiện sẽ cho chính xác
duy nhất một kết quả đầu ra. Hàm có thể có nhiều đầu vào và có thể có các
đầu ra bổ sung khác. Một hàm không có trạng thái, nghĩa là nếu gọi hàm với
các giá trị đầu vào như nhau sẽ cho kết quả như nhau. Vì lẽ đó, một hàm
không được phép sử dụng các biến toàn cục. Một hàm có thể được nạp
chồng để có thể áp dụng với nhiều kiểu dữ liệu khác nhau, sử dụng các kiểu
dữ liệu tổng quát. Việc nạp chồng này cần được thực hiện với các hàm chuẩn
do nhà sản xuất cung cấp sẵn nhưng có thể không được hỗ trợ đối với các
hàm do người sử dụng tạo ra. IEC 61131-3 cũng đưa ra một danh sách các
hàm chuẩn cần được cung cấp sẵn.
• Khối chức năng: một khối chức năng cũng là một khối tổ chức chương
trình nhưng khác với hàm, khối chức năng có thể có nhiều hơn một đầu ra
và có trạng thái. Một khối chức năng có thể coi như một đối tượng, có trạng
thái bên trong và có một hàm thành viên duy nhất. Người ta phân biệt giữa
khái niệm kiểu khối chức năng (giống như khái niệm lớp trong lập trình
hướng đối tượng) và khái niệm thực thể khối chức năng (giống như khái
niệm đối tượng trong lập trình hướng đối tượng).
• Chương trình: một chương trình được định nghĩa trong IEC 61131-3 như
“một sự kết hợp logic của tất cả các yếu tố ngôn ngữ lập trình và các cấu
trúc cần thiết cho quá trình xử lý tín hiệu mà việc điều khiển một máy hoặc
quá trình bằng một hệ thống điều khiển khả trình yêu cầu”. Một chương
trình có nhiều điểm giống với một khối chức năng nhưng không có tính sử
dụng lại và chỉ có thể được tạo ra trong một tài nguyên.
2.1.3.6 Các yếu tố cấu hình
Các yếu tố cấu hình bao gồm các cấu hình (configuration), tài nguyên
(resource), tác vụ (task), biến toàn cục (global variable), lối truy cập (access
path) và các khởi tạo.
IEC 61131-3 qui định rõ về cách khai báo các yếu tố cấu hình trên. Đặc biệt,
cách thức hoạt động và lập lịch của các tác vụ được qui định rất rõ. Các tác vụ
là những yếu tố điều khiển quá trình thực thi của các chương trình hay các khối
chức năng. Các tác vụ có thể được thực hiện theo một chu kì nhất định, cũng có
Xây dựng gói phần mềm SFC cho điều khiển trình tự theo chuẩn IEC 61131-3
Nghiêm Xuân Trường – Nguyễn Minh Hồng
17
thể thực hiện theo sự kiện hoặc thực hiện vào những thời điểm hệ thống rỗi.
Mỗi tác vụ có một mức ưu tiên (priority), qui định khả năng ưu tiên thực hiện
của nó khi hệ thống có nhiều tác vụ cùng yêu cầu được thực hiện. Việc thực
hiện các tác vụ phụ thuộc nhiều vào khả năng của hệ điều hành.
2.1.4 Ngôn ngữ lập trình SFC theo chuẩn IEC 61131-3
Như đã biết, SFC là một phương pháp biểu diễn các thuật toán điều khiển trình
tự, đặc biệt tiện dụng khi mô tả hoạt động (theo trình tự) của một hệ thống,
một quá trình điều khiển lớn. Việc chuyển đổi từ sơ đồ hoạt động (trình tự)
trong tài liệu mô tả hệ thống sang SFC là khá đơn giản. Ngôn ngữ SFC có thể
mô tả các khối chức năng và các chương trình nhưng không thể mô tả các hàm
vì các phần tử SFC có trạng thái trong khi một hàm không thể có trạng thái.
Thông thường, ngôn ngữ SFC được sử dụng để mô tả các chương trình.
SFC được xây dựng trên cơ sở mạng Petri và chuẩn IEC 848 Grafcet với một số
thay đổi nhất định cho phù hợp với chức năng điều khiển. Các yếu tố cơ bản
của SFC là bước (Step), chuyển tiếp (Transition) và hành động (Action). Ngoài
ra, gắn với mỗi chuyển tiếp là một điều kiện chuyển tiếp (Transition
Condition) và gắn với mỗi bước có các khối hành động (Action Block).
2.1.4.1 Bước (Step)
Một bước (step) diễn tả một trạng thái mà tại đó, ứng xử
của khối tổ chức chương trình (được mô tả bằng SFC)
đối với các đầu ra và đầu vào của nó tuân theo một tập các luật được xác định
bởi các hành động (action) gắn với bước đó. Một bước có thể tích cực (active)
hoặc không tích cực (inactive). Mỗi bước có thể không gắn hoặc gắn với một
hay nhiều hành động. Tại một thời điểm, trạng thái của một khối tổ chức
chương trình được xác định bởi tập hợp các bước tích cực và giá trị các biến nội
bộ và các biến ra của nó.
Một bước được thể hiện đồ hoạ bằng một hình chữ nhật với tên của nó. Tên của
một bước tuân theo các qui định về định danh. Mỗi bước có một cờ (flag) xác
định trạng thái tích cực hay không tích cực của nó. Cờ này là một biến logic với
tên là X, được coi là một thành viên của bước (xác định bởi ***.X với *** là tên
của bước). Tương tự, một biến ***.T, thuộc kiểu TIME, xác định thời gian mà
bước đó đã tích cực tính đến thời điểm hiện tại. Mỗi khi một bước chuyển từ
trạng thái không tích cực sang trạng thái tích cực, biến T được xoá về T#0s. Khi
Step1 Step0
B−íc th−êng B−íc b¾t ®Çu
Xây dựng gói phần mềm SFC cho điều khiển trình tự theo chuẩn IEC 61131-3
Nghiêm Xuân Trường – Nguyễn Minh Hồng
18
một bước bị mất tích cực, giá trị của T vẫn giữ nguyên cho đến khi bước đó
được tích cực lại. Tên của bước cũng như tên của các biến X và T là cục bộ đối
với khối tổ chức chương trình chứa SFC đó.
Trạng thái ban đầu của khối tổ chức chương trình được xác định bằng giá trị
ban đầu của các biến nội bộ và biến ra cũng như bước ban đầu của nó. Mỗi
mạng SFC chỉ có chính xác duy nhất một bước ban đầu (initial step). Khi mạng
SFC bắt đầu hoạt động, bước này ở trạng thái tích cực, còn tất cả các bước khác
đều ở trạng thái không tích cực. Bước ban đầu này được biểu diễn bằng một
hình chữ nhật với đường bao là nét đôi.
2.1.4.2 Chuyển tiếp (Transition)
Một chuyển tiếp thể hiện một điều kiện để trạng thái tích cực
chuyển từ một hay nhiều bước phía trước chuyển tiếp đó tới một hay nhiều
bước phía sau theo các đường nối trực tiếp. Chiều của quá trình chuyển tiếp là
chiều từ trên xuống dưới, trừ những trường hợp đặc biệt. Một chuyển tiếp được
biểu diễn đồ hoạ bằng một đường nằm ngang (xem hình vẽ trên).
Mỗi chuyển tiếp gắn với một điều kiện chuyển tiếp (transition condition) mà giá
trị logic của nó sẽ quyết định xem chuyển tiếp đó có cho phép điều khiển được
chuyển qua hay không.
Theo IEC 61131-3, điều kiện chuyển tiếp có thể được thực hiện bằng bất kì
ngôn ngữ nào trong số các ngôn ngữ lập trình đã định nghĩa, với điều kiện kết
quả phải là một giá trị logic. Tuy nhiên trong thực tế, điều kiện chuyển tiếp là
một biến Boolean hay một biểu thức logic là phổ biến hơn cả.
Tên của chuyển tiếp có phạm vi cục bộ đối với khối tổ chức chương trình chứa
SFC đó.
2.1.4.3 Hành động (Action)
Một bước có thể không gắn hoặc gắn với
một hay nhiều hành động. Một bước không
gắn với hành động nào sẽ hoạt động như
một bước chờ (WAIT). Hành động là tập
hợp các luật ứng xử của khối tổ chức chương trình đối với các đầu vào và đầu
ra của nó. Một hành động có thể đơn giản chỉ là đặt một biến Bool (Bool
Action), cũng có thể là một đoạn chương trình viết bằng một trong các ngôn ngữ
ChuyÓn tiÕp
T1
Step1
D
T#1s Q0.1
N Q0.0 C¸c khèi
hµnh ®éng
Hµnh ®éng
Qualifier cña
khèi hµnh ®éng
Xây dựng gói phần mềm SFC cho điều khiển trình tự theo chuẩn IEC 61131-3
Nghiêm Xuân Trường – Nguyễn Minh Hồng
19
đã định nghĩa, có thể chính là một mạng SFC. Tuy nhiên, việc sử dụng mạng
SFC như một hành động (SFC Action) là không nên, và thực tế, trong phiên bản
mới của IEC 61131-3 đã khuyến cáo không sử dụng SFC Action.
Mỗi hành động, và cả đoạn chương trình trong nó, phải được coi là một phần và
là cục bộ đối với khối tổ chức chương trình chứa mạng SFC đó. Điều đó nghĩa
là tất cả các biến, các thực thể FB được dùng trong hành động đều là của khối
tổ chức chương trình chứ không phải chỉ của riêng hành động đó.
• Các khối hành động (Action Block)
Các hành động không gắn trực tiếp với các bước mà gián tiếp thông qua các
khối hành động (Action Block). Một khối hành động gắn với một hành động duy
nhất và một bước duy nhất. Mỗi khối hành động có một cờ (qualifier) xác định
cách thức hoạt động của nó, qua đó cho phép hay không cho phép hành động
tương ứng thực thi. Cách thức hoạt động của khối hành động phụ thuộc vào
qualifier của nó. Những loại qualifier sau được định nghĩa:
Qualifier Giải thích
Không có gì Giống như N
N Không lưu trữ
R Xoá
S Lưu trữ (đặt)
L Giới hạn về thời gian
D Trễ thời gian
P Xung
SD Lưu trữ và trễ thời gian
DS Trễ thời gian và lưu trữ
SL Lưu trữ và giới hạn thời gian
P1 Sườn lên
P0 Sườn xuống
Bảng 2-2 Các qualifier của khối hành động
• Điều khiển các hành động
Việc điều khiển các hành động tuân theo các qui tắc sau:
1) Mỗi hành động gắn với một khối điều khiển hành động (Action Control
Block) duy nhất. Khối này điều khiển sự hoạt động của hành động. Có
Xây dựng gói phần mềm SFC cho điều khiển trình tự theo chuẩn IEC 61131-3
Nghiêm Xuân Trường – Nguyễn Minh Hồng
20
hai loại khối điều khiển hành động: có vòng quét cuối (final scan) và
không có vòng quét cuối. Với khối điều khiển hành động không có vòng
quét cuối, đầu ra Q của khối sẽ cho phép hay không cho phép hành động
tương ứng thực hiện. Với khối điều khiển hành động có vòng quét cuối,
khi đầu ra Q chuyển từ 1 xuống 0 thì hành động còn được thực hiện một
lần cuối cùng. Ở vòng thực hiện cuối này, hành động có thể kiểm tra biến
Q để xem đây có phải là lần thực hiện cuối của nó hay không. Đầu ra A
của khối điều khiển hành động có vòng quét cuối được dùng để cho phép
hay không cho phép hành động thực hiện.
Hai loại khối điều khiển hành động này được biểu diễn như hình dưới.
Các đầu vào của khối tương ứng với các qualifier của khối hành động.
Đầu vào T là một giá trị thuộc kiểu TIME (khoảng thời gian), được sử
dụng với các đầu vào có liên quan đến thời gian (L, D, SD, DS, SL).
+----------------+
| ACTION_CONTROL |
BOOL---|N Q|---BOOL
BOOL---|R A|---BOOL
BOOL---|S |
BOOL---|L |
BOOL---|D |
BOOL---|P |
BOOL---|P1 |
BOOL---|P0 |
BOOL---|SD |
BOOL---|DS |
BOOL---|SL |
TIME---|T |
+----------------+
+----------------+
| ACTION_CONTROL |
BOOL---|N Q|---BOOL
BOOL---|R |
BOOL---|S |
BOOL---|L |
BOOL---|D |
BOOL---|P |
BOOL---|P1 |
BOOL---|P0 |
BOOL---|SD |
BOOL---|DS |
BOOL---|SL |
TIME---|T |
+----------------+
Có vòng quét cuối Không có vòng quét cuối
Hình 2-2 Các khối điều khiển hành động
2) Nếu một hành động là một biến logic Boolean (Bool Action) thì giá trị của
biến này sẽ là giá trị của đầu ra Q của khối điều khiển hành động.
3) Nhiều khối hành động khác nhau có thể gắn với cùng một khối điều
khiển hành động của một hành động.
4) Có thể nhiều khối hành động cùng gắn với các đầu vào liên quan đến thời
gian (L, D, SD, DS, SL) của một khối điều khiển hành động nhưng chúng
phải không được đồng thời tích cực. Nếu trường hợp này xảy ra thì cần
được coi là một lỗi. Giá trị thời gian T cũng chỉ là duy nhất.
5) Không nhất thiết phải xây dựng một khối điều khiển hành động độc lập
nhưng cách thức điều khiển hoạt động của hành động phải thoả mãn các
điều kiện trên.
Xây dựng gói phần mềm SFC cho điều khiển trình tự theo chuẩn IEC 61131-3
Nghiêm Xuân Trường – Nguyễn Minh Hồng
21
Có thể tóm tắt quan hệ giữa bước, khối hành động, khối điều khiển hành động
và hành động trong bốn qui tắc sau:
• Mỗi bước có thể gắn với nhiều khối hành động.
• Mỗi khối hành động chỉ gắn với một bước.
• Mỗi hành động chỉ gắn với một khối điều khiển hành động.
• Mỗi khối điều khiển hành động có thể gắn với một hay nhiều khối hành
động khác nhau.
2.1.4.4 Luật chuyển tiếp
Trạng thái bắt đầu của một khối tổ chức chương trình (chứa SFC) gắn với bước
ban đầu (initial step) của SFC đó.
Quá trình chuyển tiếp luôn diễn ra theo các đường nối trực tiếp, theo chiều từ
trên xuống dưới trừ khi một hướng khác được chỉ ra rõ ràng.
Một chuyển tiếp được cho phép (enabled) khi và chỉ khi tất cả các bước phía
trước nối trực tiếp với chuyển tiếp đó được tích cực. Một quá trình chuyển tiếp
sẽ xảy ra khi chuyển tiếp đó được cho phép và điều kiện chuyển tiếp thoả mãn.
Có hai qui tắc cần được đảm bảo về quan hệ giữa các bước và chuyển tiếp:
• Hai bước không bao giờ được nối trực tiếp với nhau mà luôn phải thông
qua một chuyển tiếp.
• Hai chuyển tiếp không bao giờ được nối trực tiếp với nhau mà luôn phải
thông qua một bước.
Khi một chuyển tiếp xảy ra, quá trình chuyển tiếp diễn ra theo trình tự sau:
1) Tất cả các bước
Các file đính kèm theo tài liệu này:
- Xay dung phan men plc.pdf