1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Thiết kế phần mềm điều khiển hệ thống plc

14 528 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 876,95 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phương pháp thay thế phần cứng bằng phần mềm, những lưu ý đặc biệt khi thay thế; Cơ sở thiết lập tài liệu điều khiển quá trình; Lập tài liệu dự án; Phân tích trình tự các bước thực hiện

Trang 1

Copyright 2014 by www.azauto.vn 71 /326 Tutorial

CHƯƠNG 3 : THIẾT KẾ PHẦN MỀM ĐIỀU KHIỂN HỆ THỐNG

Mục đích :

Giới thiệu ngôn ngữ thiết kế phần mềm lập trình xử lý tín hiệu Phương pháp thay thế phần cứng bằng phần mềm, những lưu ý đặc biệt khi thay thế; Cơ sở thiết lập tài liệu điều khiển quá trình; Lập tài liệu dự án; Phân tích trình tự các bước thực hiện chương trình trong dự án lớn

Yêu cầu sau khi học :

1 Nắm được phương pháp thay thế phần cứng, phần mềm

2 Những lưu ý đặc biệt trong việc thay thế

3 Sơ đồ và kết nối tủ điện, nối đất, bọc chống nhiễu và tải cảm

4 Biết được các ý chính trong thiết kế chương trình

5 Có thể thiết lập tài liệu của một quá trình dùng sơ đồ quá trình

6 Có thể lập tài liệu một dự án

7 Có thể phân tích đề ra các bước thực hiện cho chương trình trong một dự án lớn

Số tiết giảng dạy: 4

Bảng phân chia thời lượng :

7 Phương pháp thiết kế phần mềm hệ thống điều khiển trên cơ sở yêu cầu tuần tự :

lưu đồ, phương trình trạng thái, grafcet/SFC, Petri-NET

2

8 Controller design; failsafe, debugging, troubleshooting, forcing

9 Phương pháp lập trình hệ thống lớn

Trọng tâm bài giảng :

1 Các phương pháp thiết kế phần mềm lập trình xử lý tín hiệu dạng logic

2 Phương pháp phân tích, thiết kế các hệ thống lớn

Trang 2

3.1 CÁC NGÔN NGỮ LẬP TRÌNH

Chuẩn IEC 1131 được phát minh làm cơ sở cho việc xây dựng cấu trúc PLC và được chấp nhận bởi hầu hết các công ty và tập đoàn trên thế giới Việc nghiên cứu nắm rõ về nó mở ra khả năng khám phá, lập trình cho các loại PLC

Chuẩn được đăng kí vào năm 1992 và lúc ấy chúng được giới thiệu với tên là IEC-61131 Các thành phần chính của chuẩn bao gồm :

1 IEC 61131-1 Overview

2 IEC 61131-2 Requirements and Test Procedures

3 IEC 61131-3 Data types and programming

4 IEC 61131-4 User Guidelines

5 IEC 61131-5 Communications

6 IEC 61131-7 Fuzzy control

Chuẩn được định nghĩa đủ gần gũi để các công ty vẫn giữ đặc trưng riêng, nhưng cách mô tả

dữ liệu chính tương đối giống nhau

Loại dữ liệu được định nghĩa trong IEC 61131-3

Bảng 3.1.1: Định nghĩa loại dữ liệu trong chuẩn IEC 1131-3

Loại ngôn ngữ lập trình (IEC 61131-3) có sự liên quan mật thiết với người dùng

 IL (Instruction List) - This is effectively mnemonic programming

 ST (Structured Text) - A BASIC like programming language

 LD (Ladder Diagram) - Relay logic diagram based programming

Trang 3

Copyright 2014 by www.azauto.vn 73 /326 Tutorial

 FBD (Function Block Diagram) - A graphical dataflow programming method

 SFC (Sequential Function Charts) - A graphical method for structuring programs Hầu hết các công ty đều hỗ trợ các ngôn ngữ này

3.1.1 Ngôn ngữ Ladder

Hình 3.1.1: Ladder Rung (LAD) Language 3.1.2 Ngôn ngữ danh sách lệnh-Instruction List (IL) Language

Hình 3.1.2 : Đoạn chương trình tương đương giữa LAD và IL 3.1.3 Ngôn ngữ Structured Text Programming

Trang 4

Structured text (ST) là ngôn ngữ cấp cao cho phép lập trình có cấu trúc, điều này có nghĩa là nhiều tác vụ quan trọng có thể chia nhỏ thành nhiều tác vụ con ST gần giống như ngôn ngữ BASIC- hoặc PASCAL, trong đó dùng chương trình con để thực hiện các phần khác nhau của điều khiển và truyền tham số và giữa trị giữa các phần của chương trình

Hình 3.1.3: Một đoạn chương trình viết theo kiểu Structured Programming

Giống như LD, FBD, và IL, ngôn ngữ ST dùng định nghĩa các biến để xác định các trường thiết bị ngõ vào và ngõ ra và các biến khác được dùng trong chương trình ST cũng sử dụng các vòng lặp, chẳng hạn như WHILE DO và REPEAT UNTIL, cũng như các phép toán điều kiện khác như IF THEN ELSE Nó còn hỗ trợ các phép toán logic như AND, OR, etc

và đa dạng trong xử lý các loại dữ liệu đặc biệt như ngày, giờ

Hình 3.1.4: Function Block (FBD) Language 3.1.4 Ngôn ngữ lập trình SFC/Grafcet

Trang 5

Copyright 2014 by www.azauto.vn 75 /326 Tutorial

Hình 3.1.5 : Ngôn ngữ lập trình SFC

Ngôn ngữ Sequential functional chart (SFC) là dạng ngôn ngữ đồ họa cung cấp cách mô tả sơ

đồ của việc tuần tự điều khiển trong chương trình Về cơ bản, SFC là lưu đồ của các khối được tổ chức dưới dạng các chương trình con hoặc chương trình nhỏ (được lập trình trong

LD, FBD, IL, và/hoặc ST) hình thành nên chương trình điều khiển SFC đặc biệt có ích cho các hoạt động điều khiển tuần tự, trong đó chương trình nhảy từ bước này sang bước khác khi điều kiện nhảy thỏa mãn (TRUE hoặc FALSE)

3.1.5 Sự khác biệt giữa SFC và Grafcet

Trang 6

Hình 3.1.6 : Sự khác biệt giữa Grafcet và SFC

3.2 CÁC BƯỚC PHÂN TÍCH XÂY DỰNG PHẦN MỀM

Tại sao phải thiết kế chương trình có cấu trúc ?

Thiết kế chương trình có cấu trúc rất quan trọng trong kỹ thuật, nhưng nhiều kỹ sư viết chương trình mà không để dành thời gian hay nỗ lực để thiết kế nó Như vậy, chương trình chỉ phụ thuộc vào kinh nghiệm về chương trình và khả năng gỡ rối của kỹ sư đó Biện pháp này không thể chấp nhận được trong việc xây dựng các hệ thống điều khiển công nghiệp bởi những lý do :

1 Cùng một lúc vừa bị chi phối giữa những việc sử dụng tập lệnh, cách thức lập trình, các điều kiện có thể xảy ra trong hệ thống, Điều này dẫn đến tốc độ lập trình chậm, không dự kiến được các khả năng có thể xảy ra đối với hệ thống

2 Chương trình không có cấu trúc, giải thuật rõ ràng  không thể bổ sung, cải tiến, sửa chữa, mở rộng

Thời gian cho một chương trình thiết kế không tốt là 10% cho thiết kế, 30% để viết chương trình, 50% để gỡ rối và kiểm tra, 10% để lập tài liệu Thời gian để thiết kế một chương trình

có chất lượng cao là 30% thiết kế, 20% để viết chương trình, 10% để gỡ rối và kiểm tra, 10%

để lập tài liệu Như vậy, ta thấy rằng một thiết kế tốt tốn ít thời gian thực hiện và bảo trì

Kết luận : Dùng càng nhiều thời gian để thiết kế càng tốt

Các thành phần tham gia vào chương trình điều khiển

Nguyên tắc thực hiện lệnh trong PLC

Trang 7

Copyright 2014 by www.azauto.vn 77 /326 Tutorial

Việc thực hiện các lệnh được sắp xếp theo tuần tự từ trái sang phải, từ trên xuống dưới cho đến khi kết thúc chương trình Sau đó, việc thực hiện được tiếp tục quay lại từ đầu

Chú ý : Đây là sự khác biệt dẫn đến sự khác biệt trong lập trình PLC so với cách lập trình trong vi điều khiển

Hình 3.2.1 : Nguyên tắc thực hiện lệnh trong PLC

Trình tự thiết kế chương trình điều khiển

Hình 3.2.2 : Trình tự thiết kế chương trình điều khiển

3.3 THIẾT KẾ PHẦN MỀM ĐIỀU KHIỂN

Trang 8

Một cách tiếp cận có phương pháp, cẩn thận để thiết kế phần mềm có thể làm giảm thời gian thiết kế và tạo ra được một hệ thống có độ tin cậy cao

Cách tiếp cận đó được bao gồm :

1 Thiết kế an toàn

2 Khả năng gỡ rối

3 Khả năng khắc phục sự cố

4 Dùng việc gán trong kiểm tra chương trình

5 Xây dựng mô hình hệ thống

3.3.1 Thiết kế an toàn (Fail Safe Design)

Cần phải dự đoán được hệ thống lỗi thế nào Một số trường hợp lỗi có thể xảy ra như sau :

Kẹt thiết bị - Một thiết bị chấp hành hoặc một khối thiết bị đột nhiên bị kẹt Vấn đề

này có thể dò bằng cách bổ sung cảm biến dò vị trí thiết bị chấp hành hoặc khối đó

Lỗi do người dùng phát hiện – Một số lỗi bất ngờ có thể được xác định bởi người

công nhân Trong các trường hợp đó, người công nhân phải có thể dừng máy dễ dàng

Ngõ vào lỗi (Erroneous) – Dùng cảm biến xác định lỗi

Mode không an toàn (Unsafe modes) – Một vài hệ thống cần được nhập dữ liệu thông

qua công nhân hay đội ngũ bảo trì Thiết bị dò người có thể được kết hợp dùng để ngăn ngừa hoạt động trong khi người đang thực hiện bảo trì thiết bị

Chương trình lỗi (Programming errors) – Một chương trình lớn được không tốt có thể

chạy thất thường khi một ngõ vào tác động không theo dự kiến

Phá hoại (Sabotage) – Với một vài lý do, một vài người có thể cố phá hệ thống Những

vấn đề này có thể được giảm thiểu bằng cách ngăn ngừa truy cập

Lỗi ngẫu nhiên (Random failure) – Mỗi thiết bị có các lỗi ngẫu nhiên khác nhau Ta

phải dự đoán các trường hợp có thể xảy ra để đề ra phương án xử lý nến các thiết bị này bị lỗi

3.3.2 Một số lưu ý khi thiết kế : Giúp cải tiến mức độ an toàn của hệ thống

Chương trình

• Thiết kế an toàn – Chương trình phải được thiết kế để có thể tự kiểm tra lỗi và dừng

trong trường hợp an toàn Hầu hết các loại PLC có các cảm biến dò lỗi nguồn sắp xảy

Trang 9

Copyright 2014 by www.azauto.vn 79 /326 Tutorial

ra (imminent power failure sensors), và dùng tác động này khi có nguy hiểm để tắt hệ thống an toàn

• Kỹ thuật lập trình phù hợp và lập trình theo module làm hệ thống có thể dò được

lỗi trên giấy thay vì cho nó hoạt động

• Modular hóa các chương trình được thiết kế

• Dùng các chương trình không được cấu hình, có thể dự đoán trước

• Lập trình hạn chế sự truy cập của người không có thẩm quyền

• Kiểm tra hệ thống trước khi khởi động, cho phép khởi động nếu OK

• Dùng các chức năng tích hợp trong PLC để dò sai số và lỗi

Con người

• Cung cấp tài liệu kỹ thuật của hệ thống đang hoạt động, rõ ràng cho người sử dụng và

tổ bảo trì

• Thực hiện huấn luyện đối với người dùng mới và kỹ sư để giảm việc cẩu thả và lỗi do không am hiểu về hệ thống

3.3.3 Gỡ rối (DEBUGGING)

Gỡ rối bao gồm chạy chương trình, kiểm tra lỗi và sau đó khắc phục nó Một người lập trình

ít kinh nghiệm cần nhiều thời gian để gỡ rối hơn là thời gian lập trình phần mềm Đối với PLC, điều này không thể chấp nhận được! Nếu bạn đang chạy chương trình và nó đang hoạt động sai, nó thường phá hỏng phần cứng Đồng thời, nếu xuất hiện lỗi không rõ ràng, ta phải khảo sát và thiết kế lại chương trình Khi một chương trình được gỡ rối bằng “trial and error”,

có lẽ là có lỗi còn lại trong chương trình, và chương trình khó mà đúng Nên nhớ, lỗi trong chương trình PLC có thể giết chết người người sử dụng

Chú ý : Khi chương trình chạy lần đầu, tốt nhất nên đặt một tay lên nút dừng khẩn cấp (E-stop)

3.3.4 Khắc phục lỗi (Troubleshooting)

Sau khi hệ thống hoạt động, đến một lúc nào đó nó sẽ có lỗi Khi lỗi xảy ra, cần thiết phải xác định và xử lý lỗi nhanh chóng Các bước sau hỗ trợ cách dò tìm lỗi trong hệ thống PLC

1 Quan sát quy trình để biết trạng thái hoạt động bình thường, chẳng hạn như không bị kẹt thiết bị chấp hành, cơ cấu không bị lỗi,… Nếu thấy lỗi, xử lý và khởi động lại hệ thống

Trang 10

2 Quan sát PLC để xác định đèn lỗi được tích cực Mỗi nhà cung cấp PLC đều cung cấp tài liệu hỗ trợ việc xác định lỗi tương ứng với đèn lỗi Các lỗi tương ứng được liệt

kê dưới đây Nếu các đèn cảnh báo ON, xem lại lỗi nguồn của PLC

HALT – có vấn đề gì đó làm cho CPU dừng

RUN - PLC hoạt động bình thường (có thể là như thế) ERROR – lỗi vật lý xảy ra với PLC

3 Kiểm tra đèn báo trên I/O cards, tương ứng với hệ thống Chẳng hạn, quan sát cảm biến on/off, và thiết bị chấp hành on/off, kiểm tra đèn tương ứng trên PLC I/O cards Nếu có đèn tương ứng với phần cứng nào đó không sáng, cần kiểm tra lại giao tiếp điện/cơ

4 Tham khảo tài liệu hoặc dùng phần mềm nếu có thể Nếu không có vấn đề nào tồn

tại cụ thể, lỗi chắc chắn sẽ phức tạp, cần đến hỗ trợ kỹ thuật (azauto.corp@gmail.com

– 0913.586147)

5 Nếu với những bước kiểm tra trên không mang lại kết quả, cần liên hệ với nhà cung cấp hoặc hỗ trợ kỹ thuật

3.3.5 Gán (Forcing)

Hầu hết các loại PLCs cho phép người dùng gán ngõ vào và ngõ ra Có nghĩa là nó có thể được tích cực mà không cần có tác động vật lý ở ngõ vào hoặc kết quả chương trình Điều này hỗ trợ thuận tiện cho việc gỡ rối chương trình và có thể dễ dàng ngắt hoặc dừng mọi thứ! Phương pháp gán có thể làm cho chương trình hoạt động không hoàn hảo Chúng có thể làm cho ngõ ra được điều khiển không tuần tự Nếu có một lỗi logic, cách này có thể làm cho người lập trình không xác định lỗi

3.4 LẬP TRÌNH HỆ THỐNG LỚN

Để có thể lập trình các hệ thống lớn, ta phải bắt đầu từ các hệ thống nhỏ và hoàn thiện các phương pháp lập trình dùng các kỹ thuật như sơ đồ trạng thái, SFC hoặc PetriNET Hệ thống lớn có thể chứa đến vài trăm loại vấn đề mà ta sẽ thiết kế lập trình dựa trên cơ sở của các phương pháp này Phần này sẽ hướng dẫn để giúp ta biết phương pháp tiếp cận những cách thiết kế này Quan trọng nhất là rõ ràng và đơn giản

Trang 11

Copyright 2014 by www.azauto.vn 81 /326 Tutorial

3.4.1 Xây dựng cấu trúc chương trình

Hiểu quá trình sẽ đơn giản được quá trình thiết kế điều khiển Khi hệ thống chỉ được hiểu sơ sài hay gần đúng sẽ dẫn đến xây dựng quá trình trở nên không thể thực hiện được

Những câu hỏi có thể dùng để làm rõ ràng hệ thống, bao gồm :

1 "Có những ngõ vào nào?"

2 "Có những ngõ ra nào?"

3 "Mối liên hệ giữa ngõ vào và ngõ ra?"

4 "Hoạt động của hệ thống có thể sơ đồ hóa được không?"

5 "Thông tin mà hệ thống cần?"

6 "Thông tin về sản phẩm của hệ thống?

Khi một vấn đề điều khiển lớn được chia nhỏ thành những những vấn đề nhỏ Điều này có nghĩa là từng phần nhỏ của hệ thống hoạt động độc lập nhau Điều này có thể đồng thời xảy

ra khi các hoạt động xảy ra trong một quá trình tuần tự không thay đổi Nếu đây là trường hợp vấn đề điều khiển có thể được chia nhỏ thành hai phần đơn giản hơn Câu hỏi được hỏi là:

 "Những hoạt động này có bao giờ xảy ra cùng một thời điểm?"

 "Hoạt động này có ảnh hưởng đến hoạt động khác?"

 "Các hoạt động này có rõ ràng các bước không? "

 "Có vấn đề vật lý trong quá trình điều khiển hay thiết bị không? "

Sau khi khảo sát hệ thống, bộ điều khiển phải được chia ra trong hoạt động Tham khảo cấu trúc hình cây trong hình sau Cấu trúc này chia vấn đề điều khiển thành những tác nhiệm nhỏ hơn được thực thi Kỹ thuật này chỉ được dùng để chia để lập trình các tác nhiệm thành những phần nhỏ hơn

Hình 3.4.1 : Sơ đồ chức năng cho điều khiển máy nén

Trang 12

Mỗi khối trong sơ đồ chức năng có thể được viết dưới dạng các chương trình con riêng biệt (separate subroutine) Một chương trình cấp cao hơn sẽ gọi các chương trình con nếu cần Chương trình có thể được chia thành các phần nhỏ hơn Cách này làm cho chương trình chính

trở nên gọn gàng hơn, giảm được thời gian thực thi chung (giải thích!!!) Và do chương trình

con chỉ được chạy khi chúng được gọi, sự thay đổi hoạt động do những điều kiện bất ngờ được giảm xuống Phương pháp này thường được thực hiện với SFCs hoặc FBDs

Mỗi chương trình hàm được cho bởi khối riêng bộ nhớ của nó nên không có xung đột trong chia sẽ bộ nhớ Dữ liệu của hệ thống hay thông tin trạng thái có thể được đặt trong vùng nhớ chung Ví dụ như cờ xác định loại sản phẩm hay phương pháp định hướng hệ thống

Việc kiểm tra phải được thực hiện trong lúc lên kế hoạch và viết chương trình Kịch bản tốt nhất là phần mềm được viết ở những phần nhỏ và sau đó những phần nhỏ được kiểm tra Điều này vô cùng quan trọng trong một hệ thống lớn Khi một hệ thống lớn được viết như một thành một khối lớn mã, nó trở nên khó khăn hơn để xác định nguyên nhân lỗi

Thường, ít được quan tâm nhất là tài liệu kỹ thuật (documentation) Tất cả tài liệu kỹ thuật phải được viết khi viết chương trình Lời chú thích phải được nhận khi nhập các toán tử LAD Điều này làm cho quá trình suy nghĩ rõ ràng và phần mềm ít lỗi Tài liệu kỹ thuật cần thiết cho một dự án lớn để phục vụ cho việc bảo trì hệ thống Thậm chí nếu ta bảo trì nó, ta cũng

có thể quên mục đích nguyên bản thiết kế là gì!

Một vài điều khó khăn không ngờ đến đối với người thiết kế trong những dự án lớn được liệt

kê dưới đây

 Những người thiết kế nghiệp dư lao vào thiết kế bắt đầu công việc dễ dàng, nhưng những chi tiết họ bỏ qua tốn nhiều thời gian để khắc phục khi họ thực hiện được nữa quảng đường

 Những chi tiết không được dự đoán và dự án trở nên một tác nhiệm phức tạp, đồ sộ thay vì nó chỉ là một nhóm các tác nhiệm nhỏ đơn giản

 Người thiết kế viết một chương trình đồ sộ (huge program) thay vì những chương trình nhỏ Điều này làm (proof reading) việc đọc lại khó khăn hơn

 Người lập trình ngồi trước bàn phím và gỡ rối bằng “trial and error” Nếu một người lập trình đang kiểm tra một chương trình và một lỗi xảy ra, có hai trường hợp có thể xảy ra Thứ nhất, người lập trình biết rõ vấn đề lỗi và có thể khắc phục nó tức thời Thứ hai, người lập trình chỉ có một ý tưởng lờ mờ, và thường là thực hiện quá trình gỡ

Ngày đăng: 13/05/2015, 19:06

HÌNH ẢNH LIÊN QUAN

Bảng phân chia thời lượng : - Thiết kế phần mềm điều khiển hệ thống plc
Bảng ph ân chia thời lượng : (Trang 1)
Bảng 3.1.1: Định nghĩa loại dữ liệu trong chuẩn IEC 1131-3 - Thiết kế phần mềm điều khiển hệ thống plc
Bảng 3.1.1 Định nghĩa loại dữ liệu trong chuẩn IEC 1131-3 (Trang 2)
Hình 3.1.1: Ladder Rung (LAD) Language  3.1.2. Ngôn ngữ danh sách lệnh-Instruction List (IL) Language - Thiết kế phần mềm điều khiển hệ thống plc
Hình 3.1.1 Ladder Rung (LAD) Language 3.1.2. Ngôn ngữ danh sách lệnh-Instruction List (IL) Language (Trang 3)
Hình 3.1.2 : Đoạn chương trình tương đương giữa LAD và IL  3.1.3. Ngôn ngữ Structured Text Programming - Thiết kế phần mềm điều khiển hệ thống plc
Hình 3.1.2 Đoạn chương trình tương đương giữa LAD và IL 3.1.3. Ngôn ngữ Structured Text Programming (Trang 3)
Hình 3.1.4: Function Block (FBD) Language  3.1.4. Ngôn ngữ lập trình SFC/Grafcet - Thiết kế phần mềm điều khiển hệ thống plc
Hình 3.1.4 Function Block (FBD) Language 3.1.4. Ngôn ngữ lập trình SFC/Grafcet (Trang 4)
Hình 3.1.3: Một đoạn chương trình viết theo kiểu Structured Programming - Thiết kế phần mềm điều khiển hệ thống plc
Hình 3.1.3 Một đoạn chương trình viết theo kiểu Structured Programming (Trang 4)
Hình 3.1.5 : Ngôn ngữ lập trình SFC - Thiết kế phần mềm điều khiển hệ thống plc
Hình 3.1.5 Ngôn ngữ lập trình SFC (Trang 5)
Hình 3.1.6 : Sự khác biệt giữa Grafcet và SFC - Thiết kế phần mềm điều khiển hệ thống plc
Hình 3.1.6 Sự khác biệt giữa Grafcet và SFC (Trang 6)
Hình 3.2.2 : Trình tự thiết kế chương trình điều khiển - Thiết kế phần mềm điều khiển hệ thống plc
Hình 3.2.2 Trình tự thiết kế chương trình điều khiển (Trang 7)
Hình 3.2.1 : Nguyên tắc thực hiện lệnh trong PLC - Thiết kế phần mềm điều khiển hệ thống plc
Hình 3.2.1 Nguyên tắc thực hiện lệnh trong PLC (Trang 7)
Hình 3.4.1 : Sơ đồ chức năng cho điều khiển máy nén. - Thiết kế phần mềm điều khiển hệ thống plc
Hình 3.4.1 Sơ đồ chức năng cho điều khiển máy nén (Trang 11)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w