Đồ á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

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

pdf18 trang | Chia sẻ: lethao | Lượt xem: 2696 | Lượt tải: 5download
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:

  • pdfXay dung phan men plc.pdf