Bài giảng Các hệ PLC và DCS - Chương 5: Phần mềm điều khiển

Vấn đề thời gian thực trong các hệ

thống điều khiển

 Khái niệm thời gian thực, hệ thời gian thực và xử lý

thời gian thực

 Khái niệm tác vụ và vai trò của xử lý cạnh tranh

trong các hệ thống điều khiển

 Lập trình điều khiển thời gian thực

 Hệ điều hành thời gian thực

Khái niệm về hệ thời gian thực

Thời gian thực không phải là thời gian tuyệt đối

Tính năng thời gian thực không đồng nghĩa với tốc

độ tính toán rất nhanh

Tính năng thời gian thực = tính chính xác + tính kịp

thời

pdf 64 trang kimcuc 18182
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Các hệ PLC và DCS - Chương 5: Phần mềm điều khiển", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Các hệ PLC và DCS - Chương 5: Phần mềm điều khiển

Bài giảng Các hệ PLC và DCS - Chương 5: Phần mềm điều khiển
 HMS
C
hư
ơ
ng
 5
1
Tháng Sáu 2015
Chương 5: Phần mềm điều khiển
5.1 Vấn đề TGT trong các hệ thống điều khiển
5.2 Lập trình theo chuẩn IEC 61131-3
5.3 Phương pháp luận khối chức năng và chuẩn
IEC 61499
 HMS
C
hư
ơ
ng
 5
2
Tháng Sáu 2015
Nội dung liên ngành
Kỹ thuật 
điều khiển
Khoa học 
máy tính
Công nghệ 
truyền thông
Hệ thời gian thực
Mạng truyền thông
công nghiệp
Hệ phân tán
Hệ điều khiển
PLC & DCS
 HMS
C
hư
ơ
ng
 5
3
Tháng Sáu 2015
5.1 Vấn đề thời gian thực trong các hệ
thống điều khiển
 Khái niệm thời gian thực, hệ thời gian thực và xử lý 
thời gian thực
 Khái niệm tác vụ và vai trò của xử lý cạnh tranh 
trong các hệ thống điều khiển
 Lập trình điều khiển thời gian thực
 Hệ điều hành thời gian thực
 HMS
C
hư
ơ
ng
 5
4
Tháng Sáu 2015
5.1.1 Khái niệm về hệ thời gian thực
A real-time system is one in which the correctness of the 
system depends not only on the logical results, but also on the 
time at which the results are produced.
Một hệ thời gian thực là một hệ thống mà sự hoạt động tin cậy 
của nó không chỉ phụ thuộc vào sự chính xác của kết quả, mà 
còn phụ thuộc vào thời điểm đưa ra kết quả để phản ứng với sự 
kiện bên ngoài. Hệ thống có lỗi khi thời gian yêu cầu không 
được thoả mãn.
JOHN A. STANKOVIC ET AL.: Strategic Directions in Real-Time and 
Embedded Systems. ACM Computing Surveys, Vol. 28, No. 4, December 1996
Thời gian thực không phải là thời gian tuyệt đối
Tính năng thời gian thực không đồng nghĩa với tốc 
độ tính toán rất nhanh
Tính năng thời gian thực = tính chính xác + tính kịp 
thời
 HMS
C
hư
ơ
ng
 5
5
Tháng Sáu 2015
Các dạng của “tính kịp thời”
Thời gian
Sự kiện Phản ứng
ts tp
T
a) Chính xác tại ... (t = tp)
Thời gian
Sự kiện Phản ứng
ts tp2
T
b) Trong khoảng ... (tp2 t tp2 )
Thời gian
Sự kiện Phản ứng
ts tp
T
c) Chậm nhất là ... (t tp)
tp1
Thời gian
Sự kiện Phản ứng
ts tp
T
d) Sớm nhất là ... (t tp)
 HMS
C
hư
ơ
ng
 5
6
Tháng Sáu 2015
Đặc điểm của một hệ thời gian thực
 Tính phản ứng: Hệ thống phải phản ứng với các sự 
kiện xuất hiện vào các thời điểm không biết trước.
 Tính nhanh nhạy: Hệ thống phải xử lý thông tin một 
cách nhanh chóng để có thể đưa ra kết quả phản 
ứng một cách kịp thời.
 Tính đồng thời: Hệ thống phải có khả năng phản ứng 
và xử lý đồng thời nhiều sự kiện diễn ra.
 Tính tiền định: Dự đoán trước được thời gian phản 
ứng tiêu biểu, thời gian phản ứng chậm nhất cũng 
như trình tự đưa ra các phản ứng.
 HMS
C
hư
ơ
ng
 5
7
Tháng Sáu 2015
Liên quan tới HTđiều khiển?
Mỗi hệ thống điều khiển là một hệ thời gian thực
Chất lượng điều khiển không chỉ phụ thuộc vào thuật toán 
điều khiển, mà còn phụ thuộc vào khả năng phản ứng của 
hệ thống, thời điểm đọc tín hiệu đầu vào (tín hiệu đo), vào 
thời gian tính toán luật điều khiển và thời điểm đưa ra tín 
hiệu điều khiển
Tính năng thời gian thực của một HTĐK phụ thuộc cả vào 
phần cứng và phần mềm và vào kiến trúc hệ thống
 Phần cứng: Tốc độ tính toán của vi xử lý, tốc độ chuyển đổi DA/AD, 
cơ chế vào/ra, chậm trễ trong các thiết bị
 Phần mềm: Thuật toán điều khiển, phương pháp lập trình, tổ chức 
thực hiện chương trình
Tính năng TGT của một HTĐK liên quan tới tính mạng con 
người
Phần lớn các hệ thời gian thực là các hệ thống điều 
khiển
 HMS
C
hư
ơ
ng
 5
8
Tháng Sáu 2015
Hai dạng hệ thống điều khiển thời gian 
thực tiêu biểu
1. Hệ thống nhúng (Embedded Systems)
– Các hệ thống điều khiển chuyên dụng, đặc chủng cho các
thiết bị, máy móc đơn lẻ
– Máy tính điều khiển là một phần không tách rời của thiết bị
được điều khiển
– Dựa trên nền vi xử lý, nhân thời gian thực, hệ điều hành
thời gian thực
– Ví dụ ứng dụng: công nghiệp hàng không-vũ trụ, robot công 
nghiệp, phương tiện giao thông, ...
2. Hệ thống điều khiển công nghiệp (Industrial Control 
Systems)
– Distributed Control Systems (DCS), Programmable Logic
Controllers (PLC), Soft-PLCs
– Các hệ thống điều khiển phân cấp, phân tán
– Ứng dụng trong CN chế biến, CN chế tạo
 HMS
C
hư
ơ
ng
 5
9
Tháng Sáu 2015
Xử lý thời gian thực là gì?
Xử lý thời gian thực là hình thức xử lý thông tin trong một 
hệ thống để đảm bảo tính năng thời gian thực của nó.
Luôn liên quan với các sự kiện bên ngoài (tính phản 
ứng)
Yêu cầu cao về hiệu suất phần mềm (tính nhanh 
nhạy)
Đòi hỏi xử lý đồng thời nhiều tác vụ (tính đồng thời) 
Đòi hỏi cơ sở lý thuyết chặt chẽ phục vụ phân tích 
và đánh giá (tính tiền định)
 HMS
C
hư
ơ
ng
 5
10
Tháng Sáu 2015
Tại sao phải nghiên cứu về xử lý thời gian 
thực?
 Xử lý thời gian thực là nguyên lý làm việc cơ bản 
của mỗi bộ điều khiển, nhìn từ quan điểm tin học
 Chất lượng điều khiển và độ tin cậy của hệ thống 
điều khiển không chỉ phụ thuộc vào thuật toán điều 
khiển, công nghệ phần cứng, mà còn phụ thuộc một 
cách tất yếu vào phương pháp xử lý thời gian thực
 Chúng ta còn biết quá ít về cơ chế thực hiện các 
chức năng bên trong một bộ điều khiển (số)
 HMS
C
hư
ơ
ng
 5
11
Tháng Sáu 2015
5.1.2 Khái niệm “tác vụ” (task) và xử lý 
cạnh tranh
 Một quá trình tính toán cho một nhiệm vụ cụ thể, có 
thể được thực hiện đồng thời, ví dụ:
– Các tác vụ xử lý giá trị vào/ra
– Các tác vụ điều chỉnh
– Các tác vụ điều khiển logic
– Các tác vụ xử lý biến cố
– ...
 Một tác vụ là sự thi hành một chương trình hoặc một 
phần chương trình
– Một chương trình chạy nhiều lần => nhiều tác vụ
– Một đoạn mã chương trình (ví dụ một hàm) được gọi tuần 
hoàn với các chu kỳ khác nhau => nhiều tác vụ khác nhau
 Multitasking (đa nhiệm): khả năng thi hành đồng thời 
nhiều tác vụ
 HMS
C
hư
ơ
ng
 5
12
Tháng Sáu 2015
Các trạng thái của một tác vụ
 Trạng thái nghỉ, chưa tồn tại (Dormant, 
Nonexistence): Task trong bộ nhớ 
nhưng hệ điều hành không quản lý.
 Trạng thái sẵn sàng (Ready state): Khi 
nó có thể được điều hoạt nhưng hiện 
đang có một Task khác có mức ưu tiên 
cao hơn đang được thực hiện. 
 Trạng thái chạy (Running state): Khi nó 
đang được điều khiển bởi CPU
 Trạng thái đợi (Waiting state) : Khi nó 
đang chờ một sự kiện xảy ra để được 
sẵn sàng như một sự kiện vào/ra, khi tài 
nguyên chung có thể sử dụng hay là khi 
có các ngắt thời gian.
DORMANT READY
RUNNINGWAITING
 HMS
C
hư
ơ
ng
 5
13
Tháng Sáu 2015
Phân loại tác vụ (IEC 61131-3)
Mã thực thi
Tác vụ mặc định
Ví dụ: 
- Điều khiển logic
- Kiểm tra lỗi
Chờ tới chu kỳ
Mã thực thi
Thời gian
Tác vụ tuần hoàn
Ví dụ: 
- Điều chỉnh vòng kín 
- Xử lý truyền thông
Chờ sự kiện
Mã thực thi
Sự kiện
Tác vụ sự kiện
Ví dụ: 
- Điều khiển trình tự 
- Xử lý sự cố
 HMS
C
hư
ơ
ng
 5
14
Tháng Sáu 2015
Quản lý tác vụ tuần hoàn
void OldTask(void *pdata)
{ 
while(1){ 
// user codes
// ...
OSTimeDly(nTick); 
}
}
void NewTask(void *pdata)
{ 
while(1){ 
// user codes
// ...
OSWaitPeriod(); 
}
}
 HMS
C
hư
ơ
ng
 5
15
Tháng Sáu 2015
Các hình thức xử lý đồng thời
 Xử lý song song: Các tác vụ (task) được phân chia 
thực hiện song song trên nhiều bộ xử lý
 Xử lý cạnh tranh: Nhiều tác vụ chia sẻ thời gian của 
một bộ xử lý.
 Xử lý phân tán: Mỗi (nhóm) tác vụ được thực hiện 
riêng trên một máy tính (trường hợp đặc biệt của xử 
lý song song).
Xử lý cạnh tranh là hình thức quan trọng nhất trong 
các hệ thống điều khiển (có thể kết hợp với xử lý 
phân tán)
 HMS
C
hư
ơ
ng
 5
16
Tháng Sáu 2015
Xử lý cạnh tranh
 Các vấn đề:
– Tổ chức, lập lịch phân 
chia tài nguyên cho các
tác vụ
– Giao tiếp giữa các tác vụ
– Đồng bộ hóa giữa các tác
vụ
 HMS
C
hư
ơ
ng
 5
17
Tháng Sáu 2015
Phương pháp lập lịch
 Cơ chế lập lịch
– Lập lệnh tĩnh: thứ tự thực hiện các tác vụ được xác định trước khi 
hệ thống đi vào hoạt động.
– Lập lệnh động: thứ tự thực hiện các tác vụ được xác định trong khi 
hệ thống đang hoạt động.
 Sách lược lập lịch
– FIFO: đến trước sẽ được thực hiện trước.
– Mức ưu tiên cố định/động: các tác vụ được đặt các mức ưu tiên cố 
định hoặc có thể thay đổi nếu cần.
– Preemptive: chen hàng, chọn một tác vụ để thực hiện trước các tác 
vụ khác.
– Non-preemptive: không chen hàng, các tác vụ được thực hiện bình 
thường dựa trên mức ưu tiên của chúng.
 Thuật toán lập lịch
– Rate monotonic: càng thường xuyên càng được ưu tiên.
– Deadline monotonic: càng gấp càng được ưu tiên.
– Least laxity: tỷ lệ thời gian tính toán/thời hạn cuối cùng (deadline) 
càng lớn càng được ưu tiên.
 HMS
C
hư
ơ
ng
 5
18
Tháng Sáu 2015
Các vấn đề thời gian trong các hệ điều 
khiển phân tán
Sensor
I/O
Controller
I/O
ActuatorSensor
I/O
Actuator
I/O
Bus trường
Tsd
Tin Tout
Tad
Tc
Ts
Tio
Ta
Tbus
 Không đồng bộ trong các chu kỳ hoạt động của các 
thiết bị
 Đặc tính khác nhau của các hệ bus 
 Thời gian trễ bất định
 Chù kỳ trích mẫu biến thiên
 HMS
C
hư
ơ
ng
 5
19
Tháng Sáu 2015
5.1.3 Hệ điều hành thời gian thực
 Hệ điều hành thời gian thực là một hệ điều hành hỗ 
trợ các chương trình ứng dụng xử lý thời gian thực
 Hầu hết các bộ điều khiển công nghiệp (PLC, 
DCS,...) đều hoạt động trên nền một hệ điều hành 
thời gian thực (RTOS, Real-time Operating System)
 Bản thân hệ điều hành thời gian thực cũng là một hệ 
thời gian thực 
 Một hệ điều hành thời gian thực bao giờ cũng là một 
hệ đa nhiệm (multitasking), hỗ trợ xử lý cạnh trạnh 
hoặc/và xử lý song song. 
 HMS
C
hư
ơ
ng
 5
20
Tháng Sáu 2015
Các nhiệm vụ chính của hệ điều hành thời 
gian thực trong một bộ điều khiển
 Nạp chương trình, hỗ trợ thử nghiệm, gỡ rối chương 
trình
 Quản lý dữ liệu vào/ra và quản lý truyền thông
– Giúp các chương trình ứng dụng dễ dàng truy cập dữ liệu 
mà không cần quan tâm tới cơ chế phần cứng cụ thể
 Quản lý tác vụ:
– Lập lịch: Phân chia thời gian CPU cho thi hành các tác vụ 
khác nhau (trong xử lý cạnh tranh)
– Hỗ trợ đồng bộ hóa quá trình: Giúp các tác vụ chia sẻ tài 
nguyên sử dụng chung (bộ nhớ, cổng vào/ra,..)
– Hỗ trợ giao tiếp liên quá trình: Giúp các tác vụ thực hiện 
giao tiếp, trao đổi dữ liệu hoặc phối hợp hoạt động
 Các chức năng kiểm tra, chẩn đoán lỗi
 HMS
C
hư
ơ
ng
 5
21
Tháng Sáu 2015
Hệ điều hành thời gian thực trong các
hệ thống điều khiển
 Yêu cầu đặc biệt
– Mã rất nhỏ, gọn
– Đơn giản, dễ sử dụng, dễ lập trình
– Thời gian phản ứng với một sự kiện (ví dụ khi xuất hiện ngắt
truyền thông, ngắt vào/ra,...) đủ ngắn
– Quản lý hiệu quả các tác vụ tuần hoàn, đảm bảo chính xác 
về chu kỳ thời gian, độ rung nhỏ (jitter)
– Quản lý vào/ra hiệu quả, đơn giản
 Hai dạng thực hiện:
– Mã nguồn: Nhân thời gian thực, được dịch và liên kết cùng 
với CTĐK tạo thành một chương trình duy nhất -> giải pháp 
vi điều khiển.
– Mã chạy cài đặt sẵn trên thiết bị: Hệ điều hành thời gian 
thực đầy đủ, cung cấp các dịch vụ độc lập với chương trình 
điều khiển -> giải pháp PLC và DCS.
 HMS
C
hư
ơ
ng
 5
22
Tháng Sáu 2015
GIAO DIỆN PHẦN CỨNG
PHẦN CỨNG MÁY TÍNH
QUẢN LÝ
TASK
QUẢN LÝ
BỘ NHỚ
QUẢN LÝ
VÀO/RA
XỬ LÝ
GIAO TIẾP
QUẢN LÝ
SỰ KIỆN
GIAO DIỆN LẬP TRÌNH ỨNG DỤNG
CHƯƠNG TRÌNH
ỨNG DỤNG
CHƯƠNG TRÌNH
ỨNG DỤNG
CHƯƠNG TRÌNH
ỨNG DỤNG
Cấu trúc tiêu biểu của một hệ điều hành thời 
gian thực
 HMS
C
hư
ơ
ng
 5
23
Tháng Sáu 2015
Ví dụ phát triển: MicroC/OS-II
CHƯƠNG TRÌNH ỨNG DỤNG
MÃ XỬ LÝ ĐỘC LẬP
OS_CORE.C
OS_FLAG.C
OS_MBOX.C
OS_MEM.C
OS_TASK.C
OS_TIME.C
uCOS_II.C
uCOS_II.H
CẤU HÌNH µC/OS-II
OS_CFG.H
INCLUDE.H
CHUYỂN MÃ µC/OS-II
OS_CPU.H
OS_CPU_A. ASM
OS_CPU_C.C
CPU TIMER
PHẦN MỀM
PHẦN CỨNG
 HMS
C
hư
ơ
ng
 5
24
Tháng Sáu 2015
HĐHTGT trong các giải pháp PLC và
DCS
 Quản lý vào/ra, quản lý các ngoại vi
 Quản lý, xử lý truyền thông
 Nạp chương trình xuống (download) và lên (upload)
 Chạy từng (phần) chương trình ứng dụng
 Hỗ trợ chạy chế độ thử nghiệm, gỡ rối
 Tạo và quản lý các tác vụ (sự kiện và tuần hoàn)
 Quản lý bộ nhớ
 Chẩn đoán lỗi
 Giao diện người-máy đơn giản
 Tự động hồi phục trạng thái làm việc sau khi khởi
động lại (warm-start)
 HMS
C
hư
ơ
ng
 5
25
Tháng Sáu 2015
Ví dụ một số RTOS trong các hệ
DCS/SoftPLC
 AdvantOCS (ABB): Advant Controller, hệ điều hành 
riêng
 Freelance 2000 (ABB): D-PS hoặc D-FC, hệ điều 
hành pSOS
 Symphonie (ABB): Melody, hệ điều hành pSOS
 DeltaV (Fisher-Rosermount): Visual Controller, hệ 
điều hành TSOS
 I/A Series (Foxboro): CP60, hệ điều hành VRTX
 PlantScape (Honeywell): PlantScape Controller, hệ 
điều hành riêng
 Centum CS1000/CS3000 (Yokogawa): PFCx-E, 
AFS10x/AFS20x, hệ điều hành ORKID
 4Control (Softing): SoftPLC, hệ điều hành VxWorks
 HMS
C
hư
ơ
ng
 5
26
Tháng Sáu 2015
5.2 Lập trình công nghiệp theo chuẩn
IEC 61131-3
 Giới thiệu chung về IEC 61131
 Tiến trình chuẩn hóa IEC 61131
 Mô hình phần mềm
 Biến và kiểu dữ liệu
 Tổ chức chương trình
 Ngôn ngữ lập trình
 HMS
C
hư
ơ
ng
 5
27
Tháng Sáu 2015
IEC 61131 là gì?
 Tập chuẩn phần mềm quan trọng nhất cho các 
thiết bị điều khiển công nghiệp có khả năng lập 
trình (PLC, DCS, Soft PLC,...)
 Bao gồm nhiều phần:
– Phần 1 (General Information)
– Phần 2 (Equipment requirements)
– Phần 3 (Programming languages)
– Phần 4 (Guidelines for users)
– Phần 5 (Communication)
– Phần 7 (Fuzzy Control)
– ...
 Hầu hết các hệ PLC và DCS hiện đại đều hỗ trợ 
chuẩn IEC 61131-3
 HMS
C
hư
ơ
ng
 5
28
Tháng Sáu 2015
Tiến trình chuẩn hóa IEC 61131
 1977: IEC 848
 1979: Bắt đầu soạn bản thảo IEC 1131
 1982: Hoàn thành bản thảo đầu tiên (5 nhóm làm
việc)
 1983: DIN 19239 PLC-Programming
 1992: Chuẩn hóa quốc tế IEC 1131-1 và 1131-2
 1993: Chuẩn hóa quốc tế IEC 1131-3
 1995: Chuẩn hóa quốc tế IEC 1131-TR4
 1994-1997: Đính chính IEC 1131-3 (Corrigendum)
 1996-1999: Sửa đổi, bổ sung (Amendment)
 Từ 2000 -> IEC 61131-3 2nd Edition
 HMS
C
hư
ơ
ng
 5
29
Tháng Sáu 2015
Các tiến bộ của IEC 61131-3
 Các yếu tố cấu hình thống nhất (CONFIGURATION, 
TASK, RESOURCE), mô hình TASK và RESOURCE 
thích hợp cho nhiều hệ thống khác nhau 
 Mô hình phần mềm thống nhất, hiện đại, với các khối 
tổ chức chương trình hợp lý (PROGRAM, 
FUNCTION BLOCK, FUNCTION)
 Các ngôn ngữ lập trình thống nhất, phát triển trên cơ
sở chuẩn hóa các ngôn ngữ hiện có quen thuộc 
 Các kiểu dữ liệu đa dạng, khả mở
 Một thư viện các hàm và khối chức năng chuẩn
 Bước đầu có ý tưởng hướng đối tượng
 Một mô hình giao tiếp thống nhất.
 HMS
C
hư
ơ
ng
 5
30
Tháng Sáu 2015
Mô hình phần mềm
CONFIGURATION
RESOURCE
TASK TASK
PROGRAM PROGRAM
FB FB
RESO URCE
TASK TASK
PROGRAM PROGRAM
FB FB
GLOBAL and D IRECTLY REPRESENTED VARIABLES
and INSTANCE-SPECIFIC IN ITIALIZATIONS
ACCESS PATHS
Execution control path
Variable access paths
FB Function block
Variable
or
Com m unication function (See IEC 1131-5)
 HMS
C
hư
ơ
ng
 5
31
Tháng Sáu 2015
Các yếu tố cấu hình
 Cấu hình (CONFIGURATION):
– Tương ứng cho cả hệ PLC, có thể gồm nhiều CPU ghép nối
– Mỗi PLC tại một thời điểm bất kỳ chỉ có một cấu hình. 
– Bao gồm một hay nhiều tài nguyên
 Tài nguyên (RESOURCE)
– Tương ứng cho một CPU với các vào/ra và HMI (đơn giản) 
tương ứng 
– Bao gồm một hoặc nhiều chương trình hoạt động dưới sự 
điều khiển của một hoặc nhiều tác vụ
 Tác vụ (TASK)
– Tác vụ tuần hoàn (Periodic Task)
– Tác vụ ... task đơn (Event Task, Single Task)
– Tác vụ rỗi (Idle Task)
 Biến toàn cục (Global Variables)
 Lối truy nhập (Access Path)
 HMS
C
hư
ơ
ng
 5
32
Tháng Sáu 2015
Các kiểu dữ liệu cơ bản
 Kiểu Bool BOOL
 Kiểu nguyên có dấu SINT, INT, DINT, LINT, INT
 Kiểu nguyên dương USINT, UINT, UDINT, ULINT
 Số thực REAL, LREAL
 Khoảng thời gian TIME
 Ngày tháng DATE
 Thời gian trong ngày TIME_OF_DAY, TOD
 Ngày tháng và thời gian DATE_AND_TIME, DT
 Chuỗi ký tự STRING, WSTRING
 Chuỗi bit BYTE, WORD, DWORD, 
LWORD
 HMS
C
hư
ơ
ng
 5
33
Tháng Sáu 2015
Các kiểu dữ liệu dẫn xuất
 Dẫn xuất trực tiếp:
TYPE RU_REAL : REAL ; END_TYPE
 Liệt kê:
TYPE ANALOG_SIGNAL_TYPE : (SINGLE_ENDED, DIFFERENTIAL) ;
END_TYPE
 Dãy con:
TYPE ANALOG_DATA : INT (-4095..4095) ; END_TYPE 
 Mảng: 
TYPE ANALOG_16_INPUT_DATA : ARRAY [1..16] OF ANALOG_DATA ;
END_TYPE
 Cấu trúc:
TYPE ANALOG_CHANNEL_CONFIGURATION: STRUCT 
RANGE : ANALOG_SIGNAL_RANGE ; 
MIN_SCALE : ANALOG_DATA ; 
MAX_SCALE : ANALOG_DATA ; 
END_STRUCT;
 HMS
C
hư
ơ
ng
 5
34
Tháng Sáu 2015
Các kiểu dữ liệu tổng quát
ANY
ANY_DERIVED
ANY_ELEMENTARY
ANY_MAGNITUDE
ANY_NUM
ANY_REAL
LREAL
REAL
ANY_INT
LINT, DINT, INT, SINT
ULINT, UDINT, UINT, USINT
TIME
ANY_BIT
LWORD, DWORD, WORD, BYTE, BOOL
ANY_STRING
STRING
WSTRING
ANY_DATE
DATE_AND_TIME
DATE, TIME_OF_DAY
 HMS
C
hư
ơ
ng
 5
35
Tháng Sáu 2015
Khai báo biến
 Kiểu của biến:
– Kiểu cơ bản,
– Kiểu dẫn xuất,
– Kiểu tổng quát
– Khối chức năng,
– Khối chương trình
 Từ khóa 
– Bắt đầu với VAR, VAR_INPUT, VAR_OUTPUT, 
VAR_IN_OUT, VAR_EXTERNAL, VAR_GLOBAL, 
VAR_ACCESS, VAR_TEMP hoặc VAR_CONFIG
– Có thể kèm theo thuộc tính RETAIN, NON_RETAIN, 
CONSTANT, AT
– Kết thúc với END_VAR
 HMS
C
hư
ơ
ng
 5
36
Tháng Sáu 2015
Ký hiệu biến trực tiếp
 Tiền tố
– I Biến đầu vào (Input)
– Q Biến đầu ra (Output)
– M Biến nhớ (Memory)
– X hoặc không ghi 1 bit, mặc định là BOOL
– B 8 bit, mặc định là BYTE
– W 16 bit, mặc định là WORD
– D 32 bit, mặc định là DWORD
– L 64 bit, mặc định là LWORD
 Ví dụ:
– %QX75, %Q75 Bit ra vị trí 75
– %IW215 Từ vào vị trí 215
– %QB7 Byte vào vị trí 7
– %MD48 Từ đúp vào tại vị trí ô nhớ 48
– %IW2.5.7.1 Từ vào kênh 1, slot 7, rack 5, station 2
– %Q* Đầu vào chưa định vị trí 
 HMS
C
hư
ơ
ng
 5
37
Tháng Sáu 2015
VAR RETAIN
AT %IW6.2 : WORD; 
AT %MW6 : INT;
END_VAR
VAR_GLOBAL
LIM_SW_S5 AT %IX27 : BOOL = TRUE;
CONV_START AT %QX25 : BOOL;
TEMPERATURE AT %IW28: INT;
C2 AT %Q* : BYTE;
END_VAR
VAR INARY AT %IW6 : ARRAY [0..9] OF INT; END_VAR
VAR
CONDITION_RED : BOOL = 1; 
IBOUNCE : WORD = 16#FF00; 
MYDUB : DWORD; 
AWORD, BWORD, CWORD : INT = 8;
MYSTR: STRING[10];
END_VAR
Ví dụ khai báo biến
 HMS
C
hư
ơ
ng
 5
38
Tháng Sáu 2015
Các khối tổ chức chương trình (POU)
 Hàm (FUNCTION)
– Tương tự hàm PASCAL, có thể nhiều vào, chính xác một 
ra
– Như một hệ tĩnh, không có trạng thái
– Có giá trị sử dụng lại
 Khối chức năng (FUNCTION BLOCK)
– Tương tự lớp trong lập trình HĐT, có thể có nhiều đầu ra
– Như một hệ động, có trạng thái
– Phân biệt giữa kiểu và thể nghiệm theo ngữ cảnh
– Có giá trị sử dụng lại
 Chương trình (PROGRAM)
– Về cơ bản giống như khối chức năng
– Truy cập được các biến trực tiếp (biến vào/ra, biến nhớ 
trực tiếp) và các biến toàn cục
– Không có giá trị sử dụng lại
 HMS
C
hư
ơ
ng
 5
39
Tháng Sáu 2015
Khai báo và sử dụng hàm
(* Khai báo hàm *)
FUNCTION fct1 : REAL
VAR_INPUT
a, b: REAL;
c : REAL:= 1.0;
END_VAR
fct1 := a*b/c;
END_FUNCTION
(* Gọi hàm *)
...
y := fct1(a:= x, b:= 2.0);
...
Name
P1
P2
P3
Data Type
Data Type
Data Type
Data Type
Các tham số hình thức
KHAI BÁO HÀM
Name
P1
P2
P3
X
0.25
Các tham số thực tại
SỬ DỤNG HÀM
 HMS
C
hư
ơ
ng
 5
40
Tháng Sáu 2015
Khai báo và sử dụng khối chức năng
FUNCTION_BLOCK Example
VAR_INPUT
X : BOOL;
Y : BOOL;
END_VAR
VAR_OUTPUT
Z : BOOL;
END_VAR
VAR
INTERNAL_STATE: BOOL;
END_VAR
(* statements of 
functionblock body *)
END_FUNCTION_BLOCK
X
0.25
Các tham số thực tại
SỬ DỤNG KHỐI CHỨC NĂNG
fb1
FB_NAME
P1 O1
P2 O2
P3
Y
Tên biến thể nghiệm
FB_NAME
P1 O1
P2 O2
P3
Data Type
Data Type
Data Type
Data Type
Các tham biến hình thức
KHAI BÁO KHỐI CHỨC NĂMG
Data Type
 HMS
C
hư
ơ
ng
 5
41
Tháng Sáu 2015
Các ngôn ngữ lập trình
 Các ngôn ngữ lập trình văn bản (textual languages):
– Instruction List (IL) : Một dạng hợp ngữ
– Structured Text (ST): Giống PASCAL
– Các thành phần SFC có thể sử dụng phối hợp
 Các ngôn ngữ đồ họa (graphical languages):
– Ladder Diagram (LD): Giống mạch rơ le
– Funtion Block Diagram (FBD): Giống mạch nguyên lý
– Sequential Funtion Charts (SFC): Xuất xứ từ mạng Petri/Grafcet
Instruction List (IL) Structured Text (ST)
Function Block Diagram (FBD) Ladder Diagram (LD)
LD A
ANDN B
ST C
C:= A AND NOT B
 A B C
-| |--|/|----------------( )
AND
A C
B
Sequential Function 
Charts
 HMS
C
hư
ơ
ng
 5
42
Tháng Sáu 2015
Các ngôn ngữ văn bản: IL và ST 
 Các yếu tố chung:
TYPE...END_TYPE
VAR...END_VAR
VAR_INPUT...END_VAR
VAR_OUTPUT...END_VAR 
VAR_IN_OUT...END_VAR 
VAR_EXTERNAL...END_VAR 
VAR_TEMP...END_VAR 
VAR_ACCESS...END_VAR 
VAR_GLOBAL...END_VAR 
VAR_CONFIG...END_VAR 
FUNCTION ... END_FUNCTION
FUNCTION_BLOCK...END_FUNCTION_BLOCK
PROGRAM...END_PROGRAM
STEP...END_STEP
TRANSITION...END_TRANSITION
ACTION...END_ACTION
 HMS
C
hư
ơ
ng
 5
43
Tháng Sáu 2015
Instruction List (IL)
Cú pháp câu lệnh
NHÃN TOÁN TỬ/HÀM TOÁN HẠNG CHÚ THÍCH
START: LD %IX1 (* PUSH BUTTON *)
ANDN %MX5 (* NOT INHIBITED *)
ST %QX2 (* FAN ON *)
LD 2#00010001
ST %QB3
Lệnh phức hợp
AND(
LD %IX1 
OR %IX2
)
AND( %IX1
hoặc OR %IX2
)
Accu đa năng: chứa "giá trị tức thời"
• Thích hợp với các kiểu dữ liệu khác nhau
• Mã thực hiện cụ thể do trình biên dịch tạo ra
• Chuẩn không qui định về các cờ trạng thái accu
 HMS
C
hư
ơ
ng
 5
44
Tháng Sáu 2015
Structured Text (ST)
 Ngôn ngữ hoàn toàn mới, dựa trên PASCAL/C
 Ưu điểm: Đơn giản, mạnh
– Lập trình ở mức cao
– Dễ mô tả nhiệm vụ điều khiển
– Lập trình có cấu trúc
– Các lệnh điều khiển chương trình (IF, WHILE, FOR,..)
 Nhược điểm: Mã chậm, lớn
– Phụ thuộc nhiều vào chất lượng của trình biên dịch
– Không phải hệ PLC/DCS nào cũng hỗ trợ
 Lựa chọn hay không?
– Qui mô ứng dụng
– Tỉ lệ đầu tư phần cứng/phát triển phần mềm
– Điều khiển đơn giản hay điều khiển cao cấp
 HMS
C
hư
ơ
ng
 5
45
Tháng Sáu 2015
Các ngôn ngữ đồ họa: LD, FBD và SFC
 Các yếu tố chung:
– Ký hiệu mô tả các khối và đường nét: 
– Hướng của các dòng trong mạng
 Power flow
 Signal flow
 Activity flow
– Đánh giá mạng (network evaulation)
– Các yếu tố điều khiển thực thi
 Các ký hiệu nhảy
 Các ký hiệu kết thúc 
 Lựa chọn ngôn ngữ phù hợp:
– LD cho mạch điều khiển logic
– FBD cho điều khiển tương tự (ĐK quá trình) và điều khiển 
logic
– SFC cho điều khiển trình tự, phối hợp sử dụng LD và FBD
 HMS
C
hư
ơ
ng
 5
46
Tháng Sáu 2015
Ladder Diagram
I1 I2 O1
I3
Tiếp điểm thường mở (NO)
Tiếp điểm thường đong (NC)
Tiếp điểm nhận biết sườn xung lên
Tiếp điểm nhận biết sườn xung xuống
Cuộn dây (đầu ra)
Cuộn dây âm (đầu ra nghịch đảo)
Cuộn dây đặt
Cuộn dây xoá
Cuộn dây cảm nhận sườn xung lên
Cuộn dây cảm nhận sườn xung xuống
P
N
S
R
P
N
CTU
PV50 CV
C1
CU Q
I1
 HMS
C
hư
ơ
ng
 5
47
Tháng Sáu 2015
Function Block Diagram
CTU
PV CV
CU Q
R
50
C1
&
I1
I2
I3
PID
PV CV
SP
MAN
TC001
AI
TT001
SP001
M001
AO
TY001
INOUT
>> Safety
LED
 HMS
C
hư
ơ
ng
 5
48
Tháng Sáu 2015
Sequential Function Chart (SFC)
 Step: Một bước thực hiện trong điều khiển 
trình tự
– Có thể bao gồm nhiều hành động đi kèm
– Có ít nhất một bước tích cực
– Trạng thái hệ thống được xác định qua các 
bước tích cực
 Transition: Chuyển tiếp, được thực hiện 
khi điều kiện chuyển tiếp thỏa mãn
– Lập trình bằng ST, FBD, LD hoặc IL 
 Action: Hành động đi với một bước
– Nằm trong một "Action Block"
– Được kiểm soát thực thi qua các "Qualifier"
– Lập trình bằng ST, FBD, LD hoặc IL 
Active
Final
Initial
T1
T2
T3
 HMS
C
hư
ơ
ng
 5
49
Tháng Sáu 2015
Các loại chuyển tiếp SFC
S1
S2
S1
S2 S3
S2 S3
S4
S1
S2 S3
S2 S3
S4
a) Đơn giản b) Phân nhánh cạnh tranh
(phân nhánh OR)
c) Phân nhánh song song
(phân nhánh AND)
d) Chuyển tiếp lựa chọn
Kết hợp kiểu OR
e) Chuyển tiếp đồng bộ
(Kết hợp kiểu AND) 
 HMS
C
hư
ơ
ng
 5
50
Tháng Sáu 2015
5.3 Khối chức năng và chuẩn IEC 61499
 Phương pháp luận khối chức năng
 Các mô hình khối chức năng:
– IEC 61131-3
– IEC 61158-2, Foundation Fieldbus, Profibus-PA
– IEC 61499
 Chuẩn IEC 61499: Điều khiển và tự động hóa phân 
tán
– Các tư tưởng cơ bản
– Các mô hình kiến trúc
– Viễn cảnh tương lai
 HMS
C
hư
ơ
ng
 5
51
Tháng Sáu 2015
Phương pháp luận khối chức năng
 Gần như bất cứ một chương trình nào cũng có thể
viết dưới dạng một sơ đồ khối chức năng (FBD)
 FBD đơn giản, trực quan, đủ linh hoạt
 FBD là ngôn ngữ lập trình bậc cao, không phụ thuộc 
vào cơ chế thực hiện bên dưới
 Hỗ trợ kiểu "lập trình" cũng như "không lập trình" hay 
"cấu hình"
 Phù hợp với các ứng dụng tập trung cũng như phân 
tán
 Khả năng sử dụng lại giống như các lớp đối tượng
 Dễ mở rộng thông qua bổ sung các thư viện, mỗi
khối chức năng có thể lập trình bằng một ngôn ngữ
riêng
 HMS
C
hư
ơ
ng
 5
52
Tháng Sáu 2015
Các mô hình khối chức năng
 IEC 61131-3:
– Thực hiện trên các bộ điều khiển khả trình
– Chỉ hỗ trợ các liên kết dữ liệu (kiểu tự do)
– Điều khiển thực hiện khối chức năng do tác vụ
– Người sử dụng "lập trình"
 IEC 61158-2
– Thực hiện trên các thiết bị tham gia bus trường (PLC, Controller, 
Transmitter, Valves, Positioner,...)
– Chỉ hỗ trợ liên kết dữ liệu (kiểu tự do)
– Cơ chế điều khiển thực hiện phụ thuộc vào thiết bị
– Người sử dụng "cấu hình"
– Được hỗ trợ trong Foundation Fieldbus và Profibus-PA
 IEC 61499
– Thực hiện trên các thiết bị trong hệ thống đo lường và điều khiển 
công nghiệp (IPMCS)
– Hỗ trợ liên kết dữ liệu và liên kết sự kiện
– Qui định riêng về cơ chế điều khiển thực hiện
– Lập trình theo IEC 61131-3
 HMS
C
hư
ơ
ng
 5
53
Tháng Sáu 2015
IEC 61499: Function Blocks for Industrial 
Process Measurement and Control Systems
khả năng phân tán
linh hoạt
khả năng lập trình
linh hoạt
linh hoạt
khả năng phân tán
khả năng cấu hình
khả năng lập trình
HT sản xuất 
linh hoạt
Khối chức năng
IEC 61499
PLC
IEC 61131-3
Tập trung
Khả năng lập trình
Khả năng cấu hình
DCS
IEC 61804
Phân tán
Khả năng cấu hình
Chính đề
Phản đề
Tổng hợp
 HMS
C
hư
ơ
ng
 5
54
Tháng Sáu 2015
Cấu hình phân tán trong các hệ bus trường
(Physical View)
Control Room
PC
H1 Fieldbus
Segment # 1
H1 Fieldbus
Segment # 2
CV-101
A/O
IP
102
20
19
21
AT
107A
LT
101
AT
107B
TT
105
AT
106
Re-Burned
Lime
LT
108 
Purchased
Lime
LT
112 
Green 
Liquor 
Storage
IP
104A IP
104B
Heater Cooler
LT
111 
SC
111 SC
112
SC
108
DT
109
FT
110
SC
110
TT
104
FT
102
AT
103
24
25
23
22
H1 Fieldbus
Segment # 3
 HMS
C
hư
ơ
ng
 5
55
Tháng Sáu 2015
Cấu hình phân tán trong các hệ bus trường
(logical view)
AI ISEL PID
AI
AI
PID RATIO
 AI
AO
 CV-102
 A/O
Conductivity
PID AOAI LL
FIC
102
AT
107B
AT
107A
AT
106
AT
103
IP
102
FT
102
SC
103 HS
107
AIC
107
AC
106
FRC
103
AY
103
AT107A
AT107B HS107 AIC107 AIC106 FRC103 SC103
IP102FIC102FT102
AT106
AY103AT103
 HMS
C
hư
ơ
ng
 5
56
Tháng Sáu 2015
Các tư tưởng chính của IEC 61499
 Xuất phát từ các yêu cầu:
– Khả năng sử dụng lại và đóng gói phần mềm
– Tính linhh hoạt, khả năng cấu hình động
– Lập lịch thực thi
– Thiết kế trên cơ sở máy trạng thái
– Tương tác giao tiếp/thực thi
– Yêu cầu thời gian đáp ứng
– Lựa chọn các thuật toán
 Các tư tưởng chính:
– Các ứng dụng phân tán
– Đóng gói và sử dụng lại phần mềm hướng dối tượng
– Giao diện dữ liệu và sự kiện
– Máy trạng thái điều khiển theo sự kiện
– Giao diện dịch vụ
– Dịch vụ quản lý
– Tính khả chuyển của phần mềm
 HMS
C
hư
ơ
ng
 5
57
Tháng Sáu 2015
Mô hình hệ thống (System model)
Dòng sự kiện
Dòng dữ liệu
Mạng truyền thông công nghiệp
Thiết bị 2 Thiết bị 3 Thiết bị 4Thiết bị 1
Ứng dụng A
ƯD. C Ứng dụng B
Quá trình kỹ thuật
 HMS
C
hư
ơ
ng
 5
58
Tháng Sáu 2015
Mô hình thiết bị (Device model)
 Thiết bị chứa các tài nguyên (resources)
 Thiết bị cung cấp các giao diện truyền thông và giao diện quá trình
Liên kết truyền thông
Tài nguyên x
Quá trình kỹ thuật
Tài nguyên zTài nguyên y
Ứng dụng BỨng dụng C
Ứng dụng A
Ranh giới thiết bị
Giao diện truyền thông
Giao diện quá trình
 HMS
C
hư
ơ
ng
 5
59
Tháng Sáu 2015
Mô hình tài nguyên (Resource model)
 Tài nguyên lập lịch và thực thi các thuật toán FB
 Tài nguyên ánh xạ các chức năng truyền thông và giao diện I/O 
tới các khối chức năng giao diện dịch vụ
Ứng dụng cục bộ
(hoặc một phần của ứng dụng phân tán)Ánh xạ truyền thông
Các chức năng truyền thông
Các chức năng giao diện quá trình
Ánh xạ quá trình
Dữ liệu
Sự kiện
Thuật 
toán
Chức năng lập lịch
FB 
giao diện 
dịch vụ
FB 
giao diện 
dịch vụ
 HMS
C
hư
ơ
ng
 5
60
Tháng Sáu 2015
Mô hình khối chức năng
Dữ liệu raDữ liệu vào
Sự kiện raSự kiện vào
Điều khiển
thực thi
Dòng dữ liệu
Dòng sự kiện
Liên hệ sự kiện/dữ liệu
Dòng sự kiện
Dòng dữ liệu
Chức năng lập lịch
Thuật toán
 HMS
C
hư
ơ
ng
 5
61
Tháng Sáu 2015
Khối chức năng tổng hợp
Các biến raCác biến vào
Các sự kiện vào Sác sự kiện ra
Tên kiểu
Điều khiển 
thực thi
 Tổng hợp chức năng
 Sử dụng lại
 Không phân tán được
 HMS
C
hư
ơ
ng
 5
62
Tháng Sáu 2015
Các khối chức năng giao diện dịch vụ
(application-initiated transactions) (resource-initiated transactions)
BOOLQO
ANYSTATUSPARAMSANY
XXXXXX
SD_mANY
QIBOOL
 : : 
SD_1ANY
EVENTCNFREQEVENT
INITEVENT EVENTINITO
 :: 
ANYRD_n
ANYRD_1
BOOL BOOL
ANYANY
ANY
 : 
ANY
EVENTEVENT
EVENT EVENT
INDRSP
INIT INITO
 :
ANY
ANY
QO
STATUSPARAMS
YYYYYY
SD_m
 :
SD_1
: 
RD_n
RD_1
QI
REQ(+)
SD_1,...,SD_m
RD_1,...,RD_n
CNF(+)
INIT(-)
STATUS
resourceapplication
PARAMS
INIT(+)
INITO(+)
INITO(-)
data transfer
service termination
service initiation
STATUS
STATUS
IND(+)
RD_1,...,RD_m
SD_1,...,SD_n
RSP(+)
INIT(-)
STATUS
resource application
PARAMS
INIT(+)
INITO(+)
INITO(-)
data transfer
service termination
service initiation
STATUS
STATUSt
 HMS
C
hư
ơ
ng
 5
63
Tháng Sáu 2015
Mô hình quản lý thiết bị
Device Management Kernel
(in Device)
Device Management Proxy
(in Software Toolset)
CREATE FB
CREATE CON
START FB
STOP FB
DELETE CON
DELETE FB
 Tách biệt nhiệm vụ
– Công cụ phần mềm với Thiết bị thực thi
– Dịch vụ truyền thống với Dịch vụ quản lý
 HMS
C
hư
ơ
ng
 5
64
Tháng Sáu 2015
Viễn cảnh với IEC 61499
Project
Repository
Software
Tools
DeviceNet EDSs
Fieldbus DDs
IEC 61915
ISO 15745
ISO 10303
etc.
Libraries:
IEC 61499
IEC 61131-3
import
XML
PORTABILITY
Standard management protocols ==> CONFIGURABILITY
Standard data transfer protocols ==> INTEROPERABILITY
Distributed intelligent devices & controllers

File đính kèm:

  • pdfbai_giang_cac_he_plc_va_dcs_chuong_5_phan_mem_dieu_khien.pdf