You are on page 1of 200

GIỚI THIỆU PLC S7-1200

1. Giới thiệu chung về PLC S7-1200


1.1. Khái niệm chung PLC s7-1200

Năm 2009, Siemens ra dòng sản phẩm S7-1200 dùng để thay thế dần cho S7-200. So
với S7-200 thì S7-1200 có những tính năng nổi trội:

-S7-1200 là một dòng của bộ điều khiển logic lập trình (PLC) có thể kiểm soát
nhiều ứng dụng tự động hóa. Thiết kế nhỏ gọn, chi phí thấp, và một tập lệnh mạnh làm
cho chúng ta có những giải pháp hoàn hảo hơn cho ứng dụng sử dụng với S7-1200
-S7-1200 bao gồm một microprocessor, một nguồn cung cấp được tích hợp sẵn,
các đầu vào/ra (DI/DO).
-Một số tính năng bảo mật giúp bảo vệ quyền truy cập vào cả CPU và chương
trình điều khiển:
+Tất cả các CPU đều cung cấp bảo vệ bằng password chống truy cập vào PLC
+Tính năng “know-how protection” để bảo vệ các block đặc biệt của mình
-S7-1200 cung cấp một cổng PROFINET, hỗ trợ chuẩn Ethernet và TCP/IP.
Ngoài ra bạn có thể dùng các module truyền thong mở rộng kết nối bằng RS485 hoặc
RS232.
-Phần mềm dùng để lập trình cho S7-1200 là Step7 Basic. Step7 Basic hỗ trợ ba
ngôn ngữ lập trình là FBD, LAD và SCL. Phần mềm này được tích hợp trong TIA
Portal 11 của Siemens.
-Vậy để làm một dự án với S7-1200 chỉ cần cài TIA Portal vì phần mềm này đã
bao gồm cả môi trường lập trình cho PLC và thiết kế giao diện HMI
1.2. Các module trong hệ PLC S7-1200
1.2.1. Giới thiệu về các module CPU
Các module CPU khác nhau có hình dạng, chức năng, tốc độ xử lý lệnh, bộ nhớ
chương trình khác nhau….
PLC S7-1200 có các loại sau:
1.2.2. Sign board của PLC SIMATIC S7-1200
Sign board: SB1223 DC/DC

-Digital inputs / outputs

-DI 2 x 24 VDC 0.5A

-DO 2x24 VDC 0.5A

Sign boards : SB1232AQ

- Ngõ ra analog
-AO 1 x 12bit

-+/- 10VDC, 0 – 20mA

Cards ứng dụng:


-CPU tín hiệu để thích ứng với các ứng dụng
-Thêm điểm của kỹ thuật số I/O hoặc tương tự với CPU như các yêu cầu ứng dụng
-Kích thước của CPU sẽ không thay đổi

1.2.3. Module xuất nhập tín hiệu số


1.2.4. Module xuất nhập tín hiệu tương tự

1.2.5. Module truyền thông

2. Làm việc với phần mềm Tia Portal


2.1. Giới thiệu SIMATIC STEP 7 Basic – tích hợp lập trình PLC và HMI
Step 7 basic hệ thống kỹ thuật đồng bộ đảm bảo hoạt động liên tục hoàn hảo.
Một hệ thống kỹ thuật mới
Thông minh và trực quan cấu hình phần cứng kỹ thuật và cấu hình mạng, lập trình,
chẩn đoán và nhiều hơn nữa.
Lợi ích với người dùng:
-Trực quan : dễ dàng để tìm hiểu và dễ dàng để hoạt động

-Hiệu quả : tốc độ về kỹ thuật

-Chức năng bảo vệ : Kiến trúc phần mềm tạo thành một cơ sở ổn định cho sự đổi
mới trong tương lai.

2.2. Kết nối qua giao thức TCP/IP


-Để lập trình SIMATIC S7-1200 từ PC hay Laptop cần một kết nối TCP/IP
-Để PC và SIMATIC S7-1200 có thể giao tiếp với nhau, điều quan trọng là các địa
chỉ IP của cả hai thiết bị phải phù hợp với nhau
2.3. Cách tạo một Project
Bước 1: từ màn hình desktop nhấp đúp chọn biểu tượng Tia Portal V11

Bước 2 : Click chuột vào Create new project để tạo dự án.

Bước 3 : Nhập tên dự án vào Project name sau đó nhấn create


Bước 4 : Chọn configure a device

Bước 5 : Chọn add new device


Bước 6 : Chọn loại CPU PLC sau đó chọn add

Bước 7 : Project mới được hiện ra


2.4. TAG của PLC / TAG local

Tag của PLC


-Phạm vi ứng dụng : giá trị Tag có thể được sử dụng mọi khối chức năng trong PLC
-Ứng dụng : binary I/O, Bits of memory
-Định nghĩa vùng : Bảng tag của PLC
-Miêu tả : Tag PLC được đại diện bằng dấu ngoặc kép
Tag Local
-Phạm vi ứng dụng : giá trị chỉ được ứng dụng trong khối được khai báo, mô tả
tương tự có thể được sử dụng trong các khối khác nhau cho các mục đích khác nhau.
-Ứng dụng : tham số của khối, dữ liệu static của khối, dữ liệu tạm thời
-Định nghĩa vùng : khối giao diện
-Miêu tả : Tag được đại diện bằng dấu #
Sử dụng Tag trong hoạt động
-Layout : bảng tag PLC chứa các định nghĩa của các Tag và các hằng số có giá trị
trong CPU. Một bảng tag của PLC được tự động tạo ra cho mỗi CPU được sử dụng
trong project.
-Colum : mô tả biểu tượng có thể nhấp vào để di chuyển vào hệ thống hoặc có thể
kéo nhả như một lệnh chương trình
-Name : chỉ được khai báo và sử dụng một lần trên CPU
-Data type : kiểu dữ liệu chỉ định cho các tag
-Address : địa chỉ của tag
-Retain : khai báo của tag sẽ được lưu trữ lại
-Comment : comment miêu tả của tag
Nhóm tag : tạo nhóm tag bằng cách chọn add new tag table

Tìm và thay thế tag PLC

Ngoài ra còn có một số chức năng sau:


-Lỗi tag
-Giám sát tag của plc
-Hiện / ẩn biểu tượng
-Đổi tên tag : Rename tag
-Đổi tên địa chỉ tag : Rewire tag
-Copy tag từ thư viện Global
3. Làm việc với một trạm PLC
3.1. Quy định địa chỉ IP cho module CPU
IP TOOL có thể thay đổi IP address của PLC S7-1200 bằng 1 trong 2 cách.
Phương pháp thích hợp được tự động xác định bởi trạng thái của địa chỉ IP đó :
-Gán một địa chỉ IP ban đầu : Nếu PLC S7-1200 không có địa chỉ IP, IP TOOL
sử dụng các chức năng thiết lập chính để cấp phát một địa chỉ IP ban đầu cho PLC S7-
1200.
-Thay đổi địa chỉ IP : nếu địa chỉ IP đã tồn tại, công cụ IP TOOL sẽ sửa đổi cấu
hình phần cứng (HW config) của PLC S7-1200.
3.2. Đổ chương trình xuống CPU
Đổ từ màn hình soạn thảo chương trình bằng cách kích vào biểu tượng download
trên thanh công cụ của màn hình

Chọn cấu hình Type of the PG/PC interface và PG/PC interface như hình dưới
sau đó nhấn chọn load
Chọn start all như hình vẽ và nhấn finish
3.3. Giám sát và thực hiện chương trình
Để giám sát chương trình trên màn hình soạn thảo kích chọn Monitor trên thanh
công cụ.

Hoặc cách 2 làm như hình dưới

Sau khi chọn monitor chương trình soạn thảo xuất hiện như sau:

4. Kỹ thuật lập trình


4.1. Vòng quét chương trình
PLC thực hiện chương trình theo chu trình lặp. Mỗi vòng lặp được gọi là vòng
quét. Mỗi vòng quét được bắt đầu bằng giai đoạn chuyển dữ liệu từ các cổng vào số
tới vùng bộ đệm ảo I, tiếp theo là giai đoạn thực hiện chương trình. Trong từng vòng
quét chương trình được thực hiện từ lệnh đầu tiên đến lệnh kết thúc của khối OB1.
Sau giai đoạn thực hiện chương trình là giai đoạn chuyển các nội dụng của bọ đệm ảo
Q tới các cổng ra số. Vòng quét kết thúc bằng giai đoạn truyền thông nội bộ và kiểm
tra lỗi.
Chú ý rằng bộ đệm I và Q không liên quan tới các cổng vào / ra tương tự nên các
lệnh truy nhập cổng tương tự được thực hiện trực tiếp với cổng vật lý chứ không
thông qua bộ đệm.
4.2. Cấu trúc lập trình

4.2.1. Khối tổ chức OB – OGANIZATION BLOCKS


-Organization blocks (OBs) : là giao diện giữa hoạt động hệ thống và chương
trình người dùng. Chúng được gọi ra bởi hệ thống hoạt động, và điều khiển theo quá
trình:
+Xử lý chương trình theo quá trình

+Báo động – kiểm soát xử lý chương trình

+Xử lý lỗi
-Startup oB, Cycle OB, Timing Error OB và Diagnosis OB : có thể chèn và lập
trình các khối này trong các project. Không cần phải gán các thông số cho chúng và
cũng không cần gọi chúng trong chương trình chính.
-Process Alarm OB và Time Interrupt OB : Các khối OB này phải được tham số
hóa khi đưa vào chương trình. Ngoài ra, quá trình báo động OB có thể được gán cho
một sự kiện tại thời gian thực hiện bằng cách sủ dụng các lệnh ATTACH, hoặc tách
biệt với lệnh DETACH.
-Time Delay Interrupt OB : OB ngắt thời gian trễ có thể được đưa vào dự án và
lập trình. Ngoài ra, chúng phải được gọi trong chương trình với lệnh SRT_DINT,
tham số là không cần thiết
-Start Information : Khi một số OB được bắt đầu, hệ điều hành đọc ra thông tin
được thẩm định trong chương trình người dùng, điều này rất hữu ích cho việc chẩn
đoán lỗi, cho dù thông tin được đọc ra được cung cấp trong các mô tả của các khối OB
4.2.2. Hàm chức năng – FUNCTION
-Funtions (FCs) là các khối mã không cần bộ nhớ. Dữ liệu của các biến tạm thời
bị mất sau khi FC được xử lý. Các khối dữ liệu toàn cầu có thể được sử dụng để lưu
trữ dữ liệu FC.
-Functions có thể được sử dụng với mục đích
+Trả lại giá trị cho hàm chức năng được gọi

+Thực hiện công nghệ chức năng, ví dụ : điều khiển riêng với các hoạt động
nhị phân

+Ngoài ra, FC có thể được gọi nhiều lần tại các thời điểm khác nhau trong một
chương trình. Điều này tạo điều kiện cho lập trình chức năng lập đi lặp lại phức tạp.

-FB (function block) : đối với mỗi lần gọi, FB cần một khu vực nhớ. Khi một FB
được gọi, một Data Block (DB) được gán với instance DB. Dữ liệu trong Instance DB
sau đó truy cập vào các biến của FB. Các khu vực bộ nhớ khác nhau đã được gán cho
một FB nếu nó được gọi ra nhiều lần.
-DB (data block) : DB thường để cung cấp bộ nhớ cho các biến dữ liệu . Có hai
loại của khối dữ liệu DB : Global DBs nơi mà tất cả các OB, FB và FC có thể đọc
được dữ liệu lưu trữ, hoặc có thể tự mình ghi dữ liệu vào DB, và instance DB được
gán cho một FB nhất định.
5. Giới thiệu các tập lệnh
5.1. Bit logic (tập lệnh tiếp điểm)

1)tiếp điểm thường hở

L Tiếp điểm thường hở sẽ đóng khi giá trị của


bit có địa chỉ là n bằng 1
A
Toán hạng n: I, Q, M, L, D
D

2)tiếp điểm thường đóng

L Tiếp điểm thường đóng sẽ đóng khi giá trị

A của bit có địa chỉ n là 0

D Toán hạng n: I, Q, M, L, D

3)lệnh OUT

Giá trị của bit có địa chỉ là n sẽ bằng 1 khi đầu

L vào của lệnh này bằng 1 và ngược lại

A Toán hạng n : Q, M, L, D

D Chỉ sử dụng một lệnh out cho 1 địa chỉ

4)Lệnh OUT đảo

Giá trị của bit có địa chỉ là n sẽ bằng 1 khi đầu


L
vào của lệnh này bằng 0 và ngược lại
A
Toán hạng n : Q, M, L, D
D
Chỉ sử dụng một lệnh out not cho 1 địa chỉ

5)Lệnh logic NOT


L

A Lệnh đảo trạng thái ngõ vào / ra

6)Lệnh SET

Giá trị của các bit có địa chỉ là n sẽ bằng


L 1 khi đầu vào của lệnh này bằng 1 Khi đầu
A vào của lệnh bằng 0 thì bit này vẫn giữ
nguyên trạng thái.
D
Toán hạng n: Q, M, L, D

7)lệnh Reset

Giá trị của các bit có địa chỉ là n sẽ bằng


L 0 khi đầu vào của lệnh này bằng 1. Khi đầu
A vào của lệnh bằng 0 thì các bit này vẫn
giữ nguyên trạng thái.
D
Toán hạng n: Q, M, L, D

8)Lệnh set nhiều bit

Giá trị của các bit có địa chỉ đầu tiên là


OUT sẽ bằng 1 khi đầu vào của lệnh này
L bằng 1 Khi đầu vào của lệnh bằng 0 thì

A các bit này vẫn giữ nguyên trạng thái.


Trong đó số bit là giá trị của n
D
Toán hạng OUT: Q, M, L, D

n : là hằng số

9)lệnh reset nhiều bit


Giá trị của các bit có địa chỉ đầu tiên là
OUT sẽ bằng 0 khi đầu vào của lệnh này
L bằng 1 Khi đầu vào của lệnh bằng 0 thì

A các bit này vẫn giữ nguyên trạng thái.


Trong đó số bit là giá trị của n
D
Toán hạng OUT: Q, M, L, D

n : là hằng số

10)Tiếp điểm phát hiện xung cạnh lên dạng 1

Tiếp điểm phát hiện cạnh lên sẽ phát ra một


xung khi đầu vào tiếp điểm P có sự chuyển
L đổi từ mức thấp lên mức cao

A Trạng thái của tín hiệu được lưu lại vào

D “M_BIT”

Độ rộng của xung này bằng thời gian của


một chu kì quét.

11)Tiếp điểm phát hiện xung cạnh lên dạng 2

Thay đổi trạng thái tín hiệu phía trước không


ảnh hưởng đến “IN”

Phát hiện sự thay đổi trạng thái của 1 tín hiệu


L
“IN” từ 0 lên 1
A
Trạng thái của tín hiệu IN được lưu lại vào
D
“M_BIT”

Độ rộng của xung này bằng thời gian của


một chu kì quét.

12)Tiếp điểm phát hiện xung cạnh xuống dạng 1


Tiếp điểm phát hiện cạnh xuống sẽ phát ra
một xung khi đầu vào tiếp điểm này có sự
L chuyển đổi từ mức cao xuống mức thấp

A Trạng thái của tín hiệu được lưu lại vào

D “M_BIT”

Độ rộng của xung này bằng thời gian của


một chu kì quét.

13)tiếp điểm phát hiện xung cạnh xuống dạng 2

Thay đổi trạng thái tín hiệu phía trước không


ảnh hưởng đến “IN”

Phát hiện sự thay đổi trạng thái của 1 tín hiệu


L
“IN” từ 1 xuống 0
A
Trạng thái của tín hiệu IN được lưu lại vào
D
“M_BIT”

Độ rộng của xung này bằng thời gian của


một chu kì quét.

14)lệnh SR fliplop

A Mạch chốt RS ưu tiên Reset

15)lệnh RS fliplop
L

A Mạch chốt RS ưu tiên Set

5.2. Sử dụng bộ Timer

Sử dụng lệnh Timer để tạo một chương trình trễ định thời. Số lượng của Timer
phụ thuộc vào người sử dụng và số lượng vùng nhớ của CPU. Mỗi timer sử dụng 16
byte IEC_Timer dữ liệu kiểu cấu trúc DB. Step 7 tự động tạo khối DB khi lấy khối
Timer
Kích thước và tầm của kiểu dữ liệu Time là 32 bit, lưu trữ như là dữ liệu Dint :
T#-14d_20h_31m_23s_648ms đến T#24d_20h_31m_23s_647ms hay là -
2.147.483.648 ms đến 2.147.483.647 ms.

1)Timer tạo xung - TP

Timer TP tạo một chuỗi xung với độ rộng xung

L đặt trước. Thay đổi PT, IN không ảnh hưởng khi


Timer đang chạy.
A
Khi đầu vào IN được tác động vào timer sẽ tạo ra
D
một xung có độ rộng bằng thời gian đặt PT

2)Timer trễ sườn lên có nhớ - Timer TONR


Thay đổi PT không ảnh hưởng khi Timer đang vận
hành, chỉ ảnh hưởng khi timer đếm lại
L
Khi ngõ vào IN chuyển sang “FALSE” khi vận hành thì
A timer sẽ dừng nhưng không đặt lại bộ định thì. Khi

D chân IN “TRUE” trở lại thì Timer bắt đầu tính thời gian
từ giá trị thời gian đã tích lũy.

3)timer trễ không nhớ - TON

Khi ngõ vào IN ngừng tác động thì reset và dừng


L hoạt động Timer.
A Thay đổi PT khi Timer vận hành không có ảnh
D hưởng gì

4)timer trễ sườn xuống – TOF

Khi ngõ vào IN ngừng tác động thì reset và dừng


L
hoạt động Timer.
A
Thay đổi PT khi Timer vận hành không có ảnh hưởng
D gì

5.3. Sử dụng bộ Counter

Lệnh Counter được dùng để đếm các sự kiện ở ngoài hay các sự kiện quá trình ở
trong PLC. Mỗi Counter sử dụng cấu trúc lưu trữ của khối dữ liệu DB để làm dữ liệu
của Counter. Step 7 tự động tạo khối DB khi lấy lệnh.
Tầm giá trị đếm phụ thuộc vào kiểu dữ liệu mà bạn chọn lựa. Nếu giá trị đếm là
một số Interger không dấu, có thể đếm xuống tới 0 hoặc đếm lên tới tầm giới hạn. Nếu
giá trị đếm là một số interder có dấu, có thể đếm tới giá trị âm giới hạn hoặc đếm lên
tới một số dương giới hạn.

1)Counter đếm lên - CTU

L Giá trị bộ đếm CV được tăng lên 1 khi tín hiệu


ngõ vào CU chuyên từ 0 lên 1. Ngõ ra Q được tác
A
động lên 1 khi CV>=PV. Nếu trạng thái R = Reset
D được tác động thì bộ đếm CV = 0.

2)Counter đếm xuống – CTD

L Giá trị bộ đếm được giảm 1 khi tín hiệu ngõ vào CD
chuyển từ 0 lên 1. Ngõ ra Q được tác động lên 1 khi
A
CV <=0. Nếu trạng thái LOAD được tác động thì
D CV = PV.

3)Counter đếm lên xuống – CTUD

Giá trị bộ đếm CV được tăng lên 1 khi tín hiệu


ngõ vào CU chuyển từ 0 lên 1. Ngõ ra QU được
tác động lên 1 khi CV >=PV. Nếu trạng thái R =
L
Reset được tác động thì bộ đếm CV = 0.
A
Giá trị bộ đếm CV được giảm 1 khi tín hiệu ngõ
D
vào CD chuyển từ 0 lên 1. Ngõ ra QD được tác
động lên 1 khi CV <=0. Nếu trạng thái Load được
tác động thì CV = PV.
5.4. So sánh

1)Lệnh so sánh

So sánh 2 kiểu dữ liệu giống nhau, nếu lệnh so sánh thỏa thì ngõ ra sẽ là mức 1 =
TRUE
Kiểu dữ liệu so sánh là : SInt, Int, Dint, USInt, UDInt, Real, LReal, String, Char,
Time, DTL, Constant.

Lệnh so sánh dùng để so sánh hai giá trị IN1 và IN2


bao gồm IN1 = IN2, IN1 >= IN2, IN1 <= IN2, IN1
< IN2, IN1 > IN2 hoặc IN1 <> IN2
L
So sánh 2 kiểu dữ liệu giống nhau, nếu lệnh so sánh
A thỏa thì ngõ ra sẽ là mức 1 = TRUE (tác động mức
cao) và ngược lại
D
Kiểu dữ liệu so sánh là : SInt, Int, Dint, USInt,
UDInt, Real, LReal, String, Char, Time, DTL,
Constant.

2)Lệnh trong khoảng In – range

Tham số : MIN, VAL, MAX

L Kiểu dữ liệu so sánh : SInt, Int, Dint, USInt, UInt,


UDInt, Real, LReal, Constant
A
So sánh 2 kiểu dữ liệu giống nhau, nếu so sánh
D
MIN<=VAL<=MAX thỏa thì tác động mức cao và
ngược lại

3)Lệnh ngoài khoảng out-of-range


Tham số : MIN, VAL, MAX

L Kiểu dữ liệu so sánh : SInt, Int, Dint, USInt, UInt,


UDInt, Real, LReal, Constant
A
So sánh 2 kiểu dữ liệu giống nhau, nếu so sánh MIN
D
> VAL hoặc MAX < VAL thỏa thì tác động mức
cao và ngược lại

4)Lệnh OK

L Tham số : IN

A Kiểu dữ liệu : Real, LReal

D Lệnh OK kiểm tra tính hợp lệ của toán tử

5)Lệnh NOT OK

Tham số : IN
L
Kiểu dữ liệu : Real, LReal
A
Lệnh NOT_OK kiểm tra tính không hợp lệ của toán
D
tử

5.5. Toán học

1)Lệnh tính toán


Công dụng : thực hiện phép toán từ các giá trị
ngõ vào IN1, IN2, IN(n) theo công thức
L
OUT=…(+,-,*,/) rồi xuất kết quả ra ngõ ra
A
OUT.
D
Các thông số ngõ vào dùng trong khối phải
chung định dạng

2)Lệnh cộng, trừ, nhân, chia

Lệnh cộng ADD : OUT = IN1 + IN2

Lệnh trừ SUB : OUT = IN1 – IN2

Lệnh nhân MUL : OUT = IN1*IN2

Lệnh chia DIV : OUT = IN1/IN2

Tham số IN1, IN2 phải cùng kiểu dữ liệu : SInt, Int,


Dint, USInt, UInt, UDInt, Real, LReal, Constant

Tham số OUT có kiểu dữ liệu : SInt, Int, Dint,


L USInt, UInt, UDInt, Real, LReal

A Tham số ENO = 1 nếu không có lỗi xảy ra trong quá


trình thực thi. Ngược lại ENO = 0 khi có lỗi, một số
D
lỗi xảy ra khi thực hiện lệnh này :

-Kết quả toán học nằm ngoài phạm vi của kiểu dữ


liệu.

-Chia cho 0 (IN2 = 0)

-Real/LReal : Nếu một trong những giá trị đầu vào


là NaN sau đó được trả về NaN.

-ADD Real/LReal : Nếu cả hai giá trị IN là INF có


dấu khác nhau, đây là một khai báo không hợp lệ và
được trả về NaN

-SUB Real/LReal : Nếu cả hai giá trị IN là INF cùng


dấu, đây là một khai báo không hợp lệ và được trả
về NaN

-MUL Real/LReal : Nếu một trong 2 giá trị là 0


hoặc là INF, đây là khai báo không hợp lệ và được
trả về NaN.

-DIV Real/LReal : Nếu cả hai giá trị IN bằng không


hoặc INF, đây là khai báo không hợp lệ và được trả
về NaN.

3)Lệnh lấy phần dư

Lệnh Modulo sẽ lấy phần dư của phép toán. Giá trị


ngõ vào IN1 chia cho IN2 và giá trị phần dư sẽ
được lưu vào OUT

L Tham số:

A EN : Bool

ENO : Bool
D
IN1 : SINT, INT, DINT, USINT, UINT, UDINT

IN2 : SINT, INT, DINT, USINT, UINT, UDINT

OUT : SINT, INT, DINT, USINT, UINT, UDINT

4)Lệnh phủ định


Lệnh NEG đảo ngược dấu hiệu số học của giá trị ở
trong tham số và lưu trữ các kết quả trong tham số
OUT

Tham số :

EN : Bool – cho phép ngõ vào


L
ENO: Bool – cho phép ngõ ra
A
-ENO = 1 : không có lỗi
D
-ENO = 0: kết quả giá trị nằm ngoài tầm giá trị của
kiểu dữ liệu

IN : toán tử đầu vào SInt, INt, Dint, Real, LReal,


Constant

OUT : toán tử đầu ra Sint, Int, Dint, Real, LReal

5)Lệnh tăng, giảm

Tăng / giảm giá trị kiểu số Interger lên / xuống một


đơn vị

Tham số :

L EN : cho phép ngõ vào

A IN/OUT : toán tử ngõ vào và ra

D ENO : cho phép ngõ ra

-ENO = 1 : không có lỗi

-ENO = 0: kết quả nằm ngoài tầm giá trị của kiểu dữ
liệu

6)Lệnh giá trị tuyệt đối


Tinh giá trị tuyệt đối của một số nguyên hoặc số
thực của tham số IN và lưu trữ kết quả vào tham
số OUT
L
Tham số :
A
EN : cho phép ngõ vào
D
IN : Toán tử ngõ vào

OUT : Toán tử ngõ ra

ENO : Cho phép ngõ ra

7)Lệnh giá trị nhỏ nhất và lớn nhất

Lệnh MIN/MAX so sánh các giá trị đầu vào và trả


lại giá trị nhỏ nhất/ lớn nhất ở đầu ra

L Tham số :

A EN : cho phép ngõ vào

D IN : Toán tử đầu vào, có thể lên tới 32 đầu vào

OUT : Toán tử ngõ ra

ENO : cho phép ngõ ra

8)Lệnh giới hạn


Công dụng : Giới hạn giá trị của ngõ vào IN trong
khoảng của ngõ vào MIN và MAX. Nếu giá trị của
IN đáp ứng MIN < IN <MAX thì giá trị của IN được
copy vào giá trị của OUT. Còn nếu giá trị của IN <
MIN thì giá trị cảu MIN được copy vào OUT, và
nếu giá trị của IN > MAX thì giá trị của MAX được
copy vào OUT
L
Lệnh chỉ được thực hiện khi tín hiệu ngõ vào là 1 tại
A ngõ vào EN, Nếu lệnh được thực hiện mà không có
lỗi xảy ra thì tại ngõ ra ENO cũng có giá trị bằng 1.
D
Ngõ ra ENO có trạng thái 0 nếu 1 trong số các điều
kiện sau đây không thỏa mãn :

-Ngõ vào EN có tín hiệu “0”

-Các thông số nhập vào không đúng định dạng

-Các toán hạng không đúng giá trị

-Giá trị Min lớn hơn giá trị Max

9)Lệnh toán học số thực dấu chấm động


5.6. Di chuyển MOVE

1)Lệnh MOVE

Lệnh Move di chuyển nội dung ngõ vào IN đến


ngõ ra OUT mà không làm thay đổi giá trị ngõ IN

L Tham số:

A EN : cho phép ngõ vào

D ENO : cho phép ngõ ra

IN : nguồn giá trị đến

OUT1: Nơi chuyển đến


Lệnh Move_BLK sao chép các nội dung của một
vùng nhớ IN đến một bộ nhớ xác định khác. Số
lượng các giá trị được sao chép được quy định
trong COUNT. Hoạt động sao chép theo hướng
tăng dần các địa chỉ

Tham số:

EN : cho phép ngõ vào

ENO : cho phép ngõ ra

IN : nguồn giá trị đến

COUNT : số giá trị sao chép

OUT1: Nơi chuyển đến

2)Lệnh làm đầy FILL

Công dụng : dùng để lấp đầy một vùng nhớ với nội
dung tại một vùng nhớ khác. Lệnh Fill block di
L
chuyển nội dung của một vùng nhớ tới một vùng
A
nhớ xác định. Hành động vận chuyển các biến sao
D chép theo hướng tăng dần

3)Lệnh đảo Swap


Công dụng : Đổi thứ tự của 2 byte hay 4 byte thành
L
phần của một Word hay một Dword. Nó không làm
A
đổi thứ tự của các bit trong mỗi byte
D

5.7. Chuyển đổi

1)Lệnh CONV

Công dụng : chuyển đồi từ kiểu dữ liệu này sang


kiểu dữ liệu khác
L
Tham số :
A
IN : giá trị ngõ vào
D
OUT : giá trị sau khi chuyển đổi

2)Lệnh làm tròn ROUND và cắt bỏ TRUNCATE

Lệnh ROUND : Chuyển đổi số thực thành sô


Interger. Các phần phân số của sô thực được làm
tròn đến số nguyên gần nhất. Nếu số thực nằm ở
L
giữa 2 số nguyên thì số thực này được làm tròn
A
thành số nguyên chẵn. Ví dụ ROUND (10.5) = 10,
D ROUND (11.5) = 12.

Lệnh TRUNC : chuyển đổi số thực thành số


interger. Phần phân số của số thực bị cắt bỏ
3)Lệnh CEILING và FLOOR

Lệnh CEIL : chuyển đổi số thực thành số nguyên


L nhỏ nhất lớn hơn hay bằng số thực đó

A Lệnh FLOOR : Chuyển đổi số thực thành số


nguyên nhỏ hơn hya bằng số thực đó.
D

5.8. Lệnh điều khiển chương trinh

1)Lệnh nhảy JUMP và nhãn LABEL


Công dụng : Dừng chương trình đang chạy và tiếp
L
tục trên một network khác, network này được xác
A
định bởi 1 jump label.
D

2)Lệnh điều khiển thực thi RET

Công dụng : Để dừng việc thực thi trong một khối


L
hàm và chỉ đươc tiếp tục sau khi có lệnh gọi khối
A
hàm đó.
D

3)Lệnh Re – trigger giám sát quét chu kỳ

Công dụng : Khởi động lại việc giám sát chu


L kỳ của CPU. Thời gian giám sát được cấu hình
A trong phần cứng. Việc khởi động lại thời gian
giám sát chu kỳ để ngăn chặn lỗi.
D

4)Lệnh ngừng quét chu kỳ


L Công dụng : Đặt PLC về chế độ STOP, do vậy
A ngừng việc thực hiện chương trình

5)Lệnh lấy lỗi GET ERROR

L Công dụng : Truy vấn các lỗi xãy ra trong


A một khối

5.9. Toán tử word logic

1)Lệnh AND, OR và XOR

Công dụng :

-Lệnh AND kết hợp các giá trị ngõ vào IN1 và IN2
theo các bit tương ứng theo phép AND logic, xuất
L
kết quả tại OUT
A - Lệnh OR kết hợp các giá trị ngõ vào IN1 và IN2
D theo các bit tương ứng theo phép OR logic, xuất
kết quả tại OUT

- Lệnh XOR kết hợp các giá trị ngõ vào IN1 và
IN2 theo các bit tương ứng theo phép XOR logic,
xuất kết quả tại OUT

2)Lệnh đảo INVERT

L Công dụng : Đảo bit tín hiệu tại ngõ vào IN. Giá trị
A của những bit lấy bù sẽ được gửi tối ngõ ra

3)Lệnh SELECT, MULTIPLEX và DEMULTIPLEX

Công dụng :
L
-Lệnh SEL : Dựa vào tín hiệu ngõ vào G, lệnh SEL
A lựa chọn ngõ vào IN1 hoặc IN0 và di chuyển nội
dung của nó vào ngõ ra OUT.
D
+Nếu G = 0  OUT = IN0
+Nếu G = 1  OUT = IN1

-Lệnh MUX : Sao chép nội dung của một ngõ vào
xác định tới ngõ ra OUT. Nếu giá trị của tham số K
lớn hơn số ngõ vào hiện hữu thì nội dung của tham
số ELSE sẽ được sao chép tới ngõ ra OUT

5.10. Dịch chuyển và xoay vòng

1)Lệnh dịch phải

Công dụng : Dịch chuyển nội dung của toán hạng tại
L
ngõ vào IN theo từng bit sang bên phải và truy xuất
A
kết quả ra ngõ ra OUT.
D
Thông số N để xác định số bit dịch chuyển

2)Lệnh dịch trái


Công dụng : Dịch chuyển nội dung của toán hạng tại
L
ngõ vào IN theo từng bit sang bên trái và truy xuất
A
kết quả ra ngõ ra OUT.
D
Thông số N để xác định số bit dịch chuyển

3)Lệnh quay phải

Công dụng : Xoay nội dung của một toán hạng tại
L ngõ vào IN theo từng bit về hướng bên phải và truy

A xuất tại ngõ ra OUT

Thông số N xác định số bit dịch chuyển


D

4)Lệnh quay trái

Công dụng : Xoay nội dung của một toán hạng tại
L ngõ vào IN theo từng bit về hướng bên trái và truy

A xuất tại ngõ ra OUT

Thông số N xác định số bit dịch chuyển


D
www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Chƣơng 1

Tổng quan thiết bị

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ Trang 1 - 1


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

1.1. Giới thiệu về PLC S7-1200.

Bộ điều khiển logic khả trình (PLC) S7-1200 mang lại tính linh hoạt và sức
mạnh để điều khiển nhiều thiết bị đa dạng hỗ trợ các yêu cầu về điều khiển tự động. Sự
kết hợp giữa thiết kế thu gọn, cấu hình linh hoạt và tập lệnh mạnh mẽ đã khiến cho S7-
1200 trở thành một giải pháp hoàn hảo dành cho việc điều khiển nhiều ứng dụng đa
dạng khác nhau.

Kết hợp một bộ vi xử lý, một bộ nguồn tích hợp, các mạch ngõ vào và mạch
ngõ ra trong một kết cấu thu gọn, CPU trong S7-1200 đã tạo ra một PLC mạnh mẽ.
Sau khi người dùng tải xuống một chương trình, CPU sẽ chứa mạch logic được yêu
cầu để giám sát và điều khiển các thiết bị nằm trong ứng dụng. CPU giám sát các ngõ
vào và làm thay đổi ngõ ra theo logic của chương trình người dùng, có thể bao gồm
các hoạt động như logic Boolean, việc đếm, định thì, các phép toán phức hợp và việc
truyền thông với các thiết bị thông minh khác.

Một số tính năng bảo mật giúp bảo vệ việc truy xuất đến cả CPU và chương
trình điều khiển:

 Mỗi CPU cung cấp một sự bảo vệ bằng mật khẩu cho phép người dùng cấu hình
việc truy xuất đến các chức năng của CPU.
 Người dùng có thể sử dụng chức năng “know-how protection” để ẩn mã nằm
trong một khối xác định.

CPU cung cấp một cổng PROFINET để giao tiếp qua một mạng PROFINET.
Các module truyền thông là có sẵn dành cho việc giao tiếp qua các mạng RS232 hay
RS485.

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ Trang 1 - 2


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

 Bộ phận kết nối nguồn

 Các bộ phận kết nối nối dây của


người dùng có thể tháo được (phía sau
các nắp che)

 Khe cắm thẻ nhớ nằm dưới cửa phía


trên

 Các LED trạng thái dành cho I/O


tích hợp

 Bộ phận kết nối PROFINET (phía


trên của CPU.

Các kiểu CPU khác nhau cung cấp một sự đa dạng các tính năng và dung lượng giúp
cho người dùng tạo ra các giải pháp có hiệu quả cho nhiều ứng dụng khác nhau.

Chức năng CPU 1211C CPU 1212C CPU 1214C

Kích thước vật lý (mm) 90 x 100 x 75 110 x 100 x 75

Bộ nhớ người dùng:


 Bộ nhớ làm việc  25 kB  50 kB
 Bộ nhớ nạp  1 MB  2 MB
 Bộ nhớ giữ lại  2 kB  2 kB
I/O tích hợp cục bộ  6 ngõ vào / 4  8 ngõ vào / 6  14 ngõ vào /
 Kiểu số ngõ ra ngõ ra 10 ngõ ra
 Kiểu tương tự  2 ngõ ra  2 ngõ ra  2 ngõ ra

Kích thước ảnh tiến trình 1024 byte ngõ vào (I) và 1024 byte ngõ ra (Q)

Bộ nhớ bit (M) 4096 byte 8192 byte

Độ mở rộng các module tín


Không 2 8
hiệu

Bảng tín hiệu 1

Các module truyền thông 3 (mở rộng về bên trái)

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ Trang 1 - 3


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

3 4 6
Các bộ đếm tốc độ cao
 3 tại 100 kHz  3 tại 100 kHz  3 tại 100 kHz
 Đơn pha
1 tại 30 kHz 3 tại 30 kHz
 3 tại 80 kHz  3 tại 80 kHz  3 tại 80 kHz
 Vuông pha
1 tại 20 kHz 3 tại 20 kHz

Các ngõ ra xung 2

Thẻ nhớ Thẻ nhớ SIMATIC (tùy chọn)

Thời gian lưu giữ đồng hồ


Thông thường 10 ngày / ít nhất 6 ngày tại 400C
thời gian thực

PROFINET 1 cổng truyền thông Ethernet

Tốc độ thực thi tính toán thực 18 μs/lệnh

Tốc độ thực thi Boolean 0,1 μs/lệnh

Họ S7-1200 cung cấp một số lượng lớn các module tín hiệu và bảng tín hiệu để
mở rộng dung lượng của CPU. Người dùng còn có thể lắp đặt thêm các module truyền
thông để hỗ trợ các giao thức truyền thông khác.

Module Chỉ ngõ vào Chỉ ngõ ra Kết hợp In/Out

8 x DC In 8 x DC Out 8 x DC In / 8 x DC Out
8 x Relay Out 8 x DC In / 8 x Relay Out
Kiểu số 16 x DC In / 16 x DC Out
Module tín 16 x DC In 16 x DC Out
16 x DC In / 16 x Relay
hiệu (SM) 16 x Relay Out
Out
Kiểu 4 x Analog In 2 x Analog In 4 x Analog In / 2 x Analog
tương tự 8 x Analog In 4 x Analog In Out

Kiểu số _ _ 2 x DC In / 2 x DC Out
Bảng tín hiệu
Kiểu
(SB) _ 1 x Analog In _
tương tự
Module truyền thông (CM)
 RS485
 RS232

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ Trang 1 - 4


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

1.2. Các bảng tín hiệu.

Một bảng tín hiệu (SB) cho phép người dùng thêm vào I/O cho CPU. Người
dùng có thể thêm một SB với cả I/O kiểu số hay kiểu tương tự. SB kết nối vào phía
trước của CPU.

 SB với 4 I/O kiểu số (ngõ vào 2 x DC và ngõ ra 2 x DC)


 SB với 1 ngõ ra kiểu tương tự.

 Các LED trạng thái trên SB

 Bộ phận kết nối nối dây của người


dùng có thể tháo ra

1.3. Các module tín hiệu.

Người dùng có thể sử dụng các module tín hiệu để thêm vào CPU các chức
năng. Các module tín hiệu kết nối vào phía bên phải của CPU.

 Các LED trạng thái dành cho I/O của


module tín hiệu

 Bộ phận kết nối đường dẫn

 Bộ phận kết nối nối dây của người


dùng có thể tháo ra

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ Trang 1 - 5


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

1.4. Các module truyền thông.

Họ S7-1200 cung cấp các module truyền thông (CM) dành cho các tính năng bổ
sung vào hệ thống. Có 2 module truyền thông: RS232 và RS485.

 CPU hỗ trợ tối đa 3 module truyền thông


 Mỗi CM kết nối vào phía bên trái của CPU (hay về phía bên trái của một CM
khác)

 Các LED trạng thái dành cho


module truyền thông

 Bộ phận kết nối truyền thông

1.5. STEP 7 Basic.

Phần mềm STEP 7 Basic cung cấp một môi trường thân thiện cho người dùng
nhằm phát triển, chỉnh sửa và giám sát mạng logic được yêu cầu để điều khiển ứng
dụng, bao gồm các công cụ dành cho quản lý và cấu hình tất cả các thiết bị trong đề
án, như các thiết bị PLC hay HMI. STEP 7 Basic cung cấp hai ngôn ngữ lập trình
(LAD và FBD) để thuận tiện và có hiệu quả trong việc phát triển chương trình điều
khiển đối với ứng dụng, và còn cung cấp các công cụ để tạo ra và cấu hình các thiết bị
HMI trong đề án của người dùng.

Để giúp người dùng tìm ra thông tin cần thiết, STEP 7 Basic cung cấp một hệ
thống trợ giúp trực tuyến.

Để cài đặt STEP 7 Basic, người dùng cần đưa đĩa CD vào trong ổ CD-ROM
của máy tính. Trình thuật sĩ cài đặt sẽ khởi động một cách tự động và nhắc người dùng
trong suốt quá trình cài đặt.

Lƣu ý

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ Trang 1 - 6


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Để cài đặt STEP 7 Basic trên một máy tính cá nhân dùng hệ điều hành
Windows 2000, Windows XP hay Windows Vista, người dùng cần phải đăng nhập với
quyền hạn Administrator.

1.5.1. Các kiểu xem khác nhau giúp công việc dễ dàng hơn.

Nhằm giúp gia tăng hiệu suất công việc, phần Totally Intergrated Automation
Portal cung cấp hai kiểu xem thiết lập công cụ khác nhau: một là thiết lập được định
hướng theo công việc, thiết lập này được tổ chức trong chức năng của các công cụ
(kiểu xem Portal), hai là kiểu xem được định hướng theo đề án gồm các phần tử bên
trong đề án (kiểu xem Project). Người dùng cần chọn kiểu xem nào giúp làm việc với
hiệu quả tốt nhất. Với một cú nhấp chuột,
người dùng có thể chuyển đổi giữa kiểu
xem Portal và kiểu xem Project.

Kiểu xem Portal cung cấp một


kiểu xem theo chức năng đối với các
nhiệm vụ và tổ chức chức năng của các
công cụ theo nhiệm vụ để được hoàn
thành, như là tạo ra việc cấu hình các
thành phần và các mạng phần cứng.

Người dùng có thể dễ dàng xác định cách thức để tiến hành và nhiệm vụ để
chọn.

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ Trang 1 - 7


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Kiểu xem Project cung cấp việc


truy xuất đến tất cả các thành phần nằm
trong một đề án. Với tất cả các thành
phần này nằm trong một vị trí, người
dùng có một truy xuất dễ dàng đến mỗi
phương diện của đề án. Đề án chứa tất cả
các các phần tử đã vừa được tạo ra hay
hoàn thành.

1.5.2. Trợ giúp người dùng khi cần.

Nhanh chóng tìm kiếm tìm ra câu trả lời đến ngƣời dùng.

Để giúp người dùng giải quyết những phát sinh một cách nhanh chóng và có
hiệu quả, STEP 7 Basic cung cấp phần trợ giúp thông minh đến từng yêu cầu:

 Một trường nhập vào cung cấp trợ giúp kiểu “mở ra” để hỗ trợ người dùng nhập
vào thông tin chính xác (các phạm vi và kiểu dữ liệu) đối với trường đó. Ví dụ,
nếu người dùng đã nhập một giá trị không hợp lệ, một hộp văn bản thông điệp
sẽ mở ra nhằm cung cấp phạm vị các giá trị hợp lệ.
 Một số thủ thuật về công cụ trong giao diện (ví dụ đối với các lệnh) “xếp tầng”
nhằm cung cấp thông tin bổ sung. Các thủ thuật về công cụ này sẽ liên kết đến
các chủ đề xác định trong hệ thống thông tin trực tuyến (trợ giúp trực tuyến).

Thêm vào đó STEP 7 Basic có một hệ thống thông tin toàn diện miêu tả một
cách đầy đủ chức năng của các công cụ SIMATIC.

Trợ giúp kiểu mở ra và các thủ thuật về công cụ xếp tầng

Các trường nhập vào gồm nhiều hộp thoại khác nhau và các thẻ nhiệm vụ sẽ
cung cấp phản hồi dưới dạng một hộp thông điệp, hộp này mở ra và cho người dùng
biết về phạm vi hay các kiểu của dữ liệu được yêu cầu.

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ Trang 1 - 8


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Các phần tử trong giao diện phần mềm cung cấp các thủ
thuật về công cụ để giải thích chức năng của phần tử đó. Một vài
phần tử, ví dụ các biểu tượng “Open” hay “Save”, không yêu cầu
các thông tin bổ sung. Tuy nhiên, một số phần tử cung cấp cơ
chế để hiển thị phần miêu tả bổ sung về phần tử đó. Thông tin bổ
sung này “xếp tầng” trong một hộp từ thủ thuật về công cụ. (Một
mũi tên màu đen kế bên thủ thuật công cụ cho thấy rằng các thông tin thêm là có sẵn.)

Ở xung quanh một phần tử trong giao diện phần mềm hiển thị thủ thuật công
cụ. Cách đơn giản để hiển thị thông tin bổ sung là di chuyển con trỏ xung quanh phần
thủ thuật công cụ. Một số các thủ thuật công cụ còn cung cấp các kiên kết đến những
chủ đề có liên quan trong hệ thống thông tin. Việc nhấp chuột vào liên kết sẽ hiển thị
chủ đề xác định.

Hệ thống thông tin

Phần mềm STEP 7 Basic cung cấp các thông tin trực tuyến toàn diện và hệ
thống trợ giúp miêu tả tất cả các sản phầm SIMATIC mà người dùng đã cài đặt. Hệ
thống thông tin còn bao gồm các thông tin tham khảo và các ví dụ. Để hiển thị hệ
thống thông tin, người dùng chọn từ các điểm truy xuất sau:

 Từ kiểu xem Portal, lựa chọn cổng Start và nhấp chuột vào lệnh “Help”.
 Từ kiểu xem Project, lựa chọn lệnh “Show help” trong trình đơn “Help”.
 Từ một thủ thuật công cụ xếp tầng, nhấp vào liên kết để hiển thị thông tin bổ
sung về chủ đề đó.

Hệ thống thông tin sẽ mở ra trong một cửa sổ mà không che khuất vùng làm
việc.

Nhấp vào nút “Show/hide contents” trên hệ thống thông tin để hiển thị nội dung
và tách khỏi cửa sổ trợ giúp. Người dùng có thể thay đổi kích thước của cửa sổ. Sử
dụng các thẻ “Contents” hay “Index” để tìm kiếm xuyên suốt hệ thống thông tin theo
chủ đề hay từ khóa.

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ Trang 1 - 9


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Lƣu ý

Nếu chương trình STEP 7 Basic được phóng lớn tối đa, việc nhấp vào nút
“Show/hide contents” sẽ không làm tách rời khỏi cửa sổ trợ giúp. Nhấp vào nút
“Restore down” để thực hiện việc tách rời. Sau đó người dùng có thể di chuyển và
thay đổi kích thước cửa sổ này.

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ Trang 1 - 10


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Việc in ấn các chủ đề từ hệ thống thông tin

Để in từ hệ thống thông tin, nhấp vào nút “Print” trên cửa sổ trợ giúp.

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ Trang 1 - 11


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Hộp thoại “Print” cho phép người dùng lựa chọn các chủ đề để in. Hãy chắc
chắn rằng bảng này hiển thị một chủ đề. Người dùng sau đó có thể lựa chọn bất kỳ chủ
đề nào khác để in. Nhấp vào nút “Print” để gửi các chủ đề được chọn đến máy in.

1.6. Các bảng hiển thị.

Do sự trực quan hóa trở thành một thành phần tiêu chuẩn đối với hầu hết các
thiết kế máy móc, SIMATIC HMI Basic Panels cung cấp các thiết bị kiểu chạm màn
hình dành cho việc điều khiển thuật toán cơ bản và việc giám sát các nhiệm vụ. Tất cả
các bảng đều có cấp độ bảo vệ IP65 và chứng nhận CE, UL, cULus và NEMA 4x.

 Kích thước: 3,8 inch


 Độ phân giải: 320 x 240
 128 mục nhập
 50 màn hình xử lý

KTP 400 Basic PN  200 cảnh báo


 25 biểu đồ
 Đơn sắc (STN, dải màu xám)
 Bộ nhớ nhận 32 kB
 Màn hình chạm 4 inch với 4
 5 bộ nhận, 20 bản ghi dữ liệu, 20
phím tiếp xúc
mục nhập
 Kiểu thẳng đứng hay nằm ngang
 Màn hình chạm 6 inch với 6
phím tiếp xúc
 Kiểu thẳng đứng hay nằm ngang
 Kích thước: 5,7 inch
 Độ phân giải: 320 x 240
 128 mục nhập

KTP 600 Basic PN  50 màn hình xử lý


 200 cảnh báo
 Kiểu màu (TFT, 256 màu) hay
 25 biểu đồ
kiểu đơn sắc (STN, dải màu
 Bộ nhớ nhận 32 kB
xám)
 5 bộ nhận, 20 bản ghi dữ liệu, 20
mục nhập

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ Trang 1 - 12


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

 Kích thước: 10,4 inch


 Độ phân giải: 640 x 480
 256 mục nhập
 50 màn hình xử lý
 200 cảnh báo
 25 biểu đồ
 Bộ nhớ nhận 32 kB
KTP 1000 Basic PN  5 bộ nhận, 20 bản ghi dữ liệu, 20

 Kiểu màu (TFT, 256 màu) mục nhập

 Màn hình chạm 10 inch với 8


phím tiếp xúc
 Kiểu thẳng đứng hay nằm ngang

 Màn hình chạm 15 inch


 Kích thước: 15,1 inch
 Độ phân giải: 1024 x 768
 256 mục nhập
 50 màn hình xử lý
 200 cảnh báo
 25 biểu đồ
 Bộ nhớ nhận 32 kB
TP 1500 Basic PN
 5 bộ nhận, 20 bản ghi dữ liệu, 20
 Kiểu màu (TFT, 256 màu) mục nhập

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ Trang 1 - 13


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Chƣơng 2

Các khái niệm về PLC

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 1


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

2.1. Sự thực thi chƣơng trình ngƣời dùng.

CPU hỗ trợ các kiểu khối mã sau đây, cho phép ta tạo ra một cấu trúc hiệu quả
cho chương trình người dùng:

 Khối tổ chức (OB) xác định cấu trúc chương trình. Một vài OB có trạng thái và
các sự kiện khởi động được thiết lập trước, nhưng ta cũng có thể tạo ra các OB
với các sự kiện khởi động tùy chỉnh.
 Hàm (FC) và khối hàm (FB) chứa mã chương trình tương ứng với các nhiệm vụ
riêng biệt hay với sự kết hợp các thông số. Mỗi FC và FB cung cấp một tổ hợp
các thông số ngõ vào và ngõ ra dành cho việc chia sẻ dữ liệu với khối đang gọi.
FB cũng sử dụng một khối dữ liệu (đã gọi một DB tức thời) có liên quan để duy
trì trạng thái của các giá trị giữa sự thực thi mà có thể được sử dụng bởi các
khối khác trong chương trình.
 Khối dữ liệu (DB) lưu trữ dữ liệu mà có thể được sử dụng bởi các khối chương
trình.

Sự thực thi chương trình người dùng bắt đầu với một hay nhiều hơn các khối tổ
chức (OB) khởi động tùy chọn, được thực thi một lần trong lúc đi vào chế độ RUN, và
được theo sau bởi một hay nhiều hơn các OB chu kỳ chương trình được thực thi một
cách tuần hoàn. OB cũng có thể kết hợp với một sự kiện ngắt, có thể là một sự kiện
ngắt tiêu chuẩn hay một sự kiện lỗi, và thực thi khi nào mà sự kiện tiêu chuẩn hay sự
kiện lỗi tương ứng xuất hiện.

Hàm (FC) hay khối hàm (FB) là một khối mã chương trình mà có thể được gọi
từ một OB hay từ một FC hay FB khác, xuống đến các cấp độ sau đây:

 16 từ OB chu kỳ chương trình hay OB khởi động


 4 từ OB ngắt trì hoãn thời gian, OB ngắt theo chu trình, OB ngắt phần cứng,
OB ngắt lỗi thời gian, hay OB ngắt lỗi chẩn đoán.

FC không liên kết với bất kỳ phần nào của khối dữ liệu (DB), trong khi FB
được gắn kết một cách trực tiếp đến một DB và sử dụng DB để chuyển tiếp các thông
số và lưu trữ các giá trị và các kết quả tạm thời.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 2


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Kích thước của chương trình người dùng, của dữ liệu và của sự cấu hình được
giới hạn bởi bộ nhớ nạp có sẵn và bộ nhớ làm việc trong CPU. Không có giới hạn nào
đối với số lượng các khối được hỗ trợ bên trong lượng bộ nhớ làm việc có sẵn.

Mỗi chu kỳ bao gồm việc ghi các ngõ ra, việc đọc các ngõ vào, việc thực thi các
lệnh của chương trình người dùng, và việc thực hiện bảo trì hệ thống hay tiến trình xử
lý nền sau. Chu kỳ được nói đến như là một chu kỳ quét hay một lần quét.

Bảng tín hiệu, các module tín hiệu và các module truyền thông được nhận biết
và được ghi lại chỉ trong khi nguồn được bật.

Lƣu ý

Việc lắp vào và tháo ra một bảng tín hiệu, các module tín hiệu và module truyền thông
khi có nguồn (thao tác nóng) thì không được hỗ trợ. Chỉ một ngoại lệ là thẻ nhớ
SIMATIC, có thể được lắp vào hay lấy ra trong khi CPU đang được cấp nguồn.

Dưới cấu hình mặc định, tất cả các điểm I/O kiểu số và kiểu tương tự được cập
nhật một cách đồng bộ với chu kỳ quét bằng cách sử dụng một vùng nhớ bên trong
được gọi là ảnh tiến trình. Ảnh tiến trình chứa một sự chụp nhanh các ngõ vào và ngõ
ra vật lý (các điểm I/O trên CPU, trên bảng tín hiệu và trên các module tín hiệu).

CPU thực hiện các tác vụ sau đây:

 CPU ghi các ngõ ra từ vùng ngõ ra ảnh tiến trình đến các ngõ ra vật lý.
 CPU đọc các ngõ vào chỉ ưu tiên cho sự thực thi chương trình người dùng và
lưu trữ các giá trị ngõ vào trong vùng ngõ vào ảnh tiến trình. Điều này đảm bảo
rằng các giá trị này sẽ vẫn giữ nguyên tính nhất quán trong suốt sự thực thi của
các lệnh người dùng.
 CPU thực thi logic của các lệnh người dùng và cập nhật các giá trị ngõ ra trong
vùng ngõ ra ảnh tiến trình thay vì ghi đến các ngõ ra vật lý thực tế.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 3


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Chu trình này cung cấp logic nhất quán xuyên suốt sự thực thi của các lệnh
người dùng đối với trong một chu kỳ đã cho và ngăn chặn sự chập chờn của các điểm
ngõ ra, điều mà có thể thay đổi trạng thái nhiều lần trong vùng ngõ ra ảnh tiến trình.

Ta có thể chỉ định khi nào các điểm I/O kiểu số và kiểu tương tự được lưu trữ
trong ảnh tiến trình. Nếu ta chèn vào một module trong kiểu xem thiết bị, dữ liệu của
nó được đặt trong ảnh tiến trình của CPU S7-1200 (mặc định). CPU thực thi sự thay
đổi dữ liệu giữa module và vùng ảnh tiến trình một cách tự động trong suốt việc cập
nhật của ảnh tiến trình. Để gỡ bỏ các điểm kiểu số hay kiểu tương tự ra khỏi sự cập
nhật tự động ảnh tiến trình, ta lựa chọn thiết bị tương ứng trong Device configuration,
xem thẻ Properties, mở rộng nếu cần để đặt các điểm I/O mong muốn, và sau đó lựa
chọn “IO addresses/HW identifier”. Sau đó thay đổi mục nhập cho “Process image:”
từ “Cyclic PI” sang “---”. Để thêm các điểm trở lại sự cập nhật tự động ảnh tiến trình,
thay đổi mục lựa chọn này trở về “Cyclic PI”.

Ta có thể đọc các giá trị ngõ vào và ghi các giá trị ngõ ra ngay lập tức khi một
lệnh thực thi. Một lần đọc tức thời sẽ truy xuất đến trạng thái hiện thời của ngõ vào vật
lý và không cập nhật vùng ngõ vào ảnh tiến trình, bất chấp dù cho một điểm được cấu
hình để được lưu trữ trong ảnh tiến trình. Một lần ghi tức thời đến ngõ ra vật lý sẽ cập
nhật cả vùng ngõ ra ảnh tiến trình (nếu một điểm được cấu hình để được lưu trữ trong
ảnh tiến trình) và điểm ngõ ra vật lý. Ta nối thêm hậu tố “:P” vào địa chỉ I/O nếu muốn
chương trình truy xuất ngay lập tức dữ liệu I/O một cách trực tiếp từ điểm vật lý thay
vì sử dụng ảnh tiến trình.

Cấu hình các thông số khởi động

Ta sử dụng các thuộc tính của CPU để cấu hình cách thức CPU khởi động sau
một chu kỳ cấp nguồn.

Lựa chọn khi nào CPU khởi động trong


chế độ STOP, chế độ RUN, hay trong
chế độ trước đó (ưu tiên chu kỳ cấp
nguồn).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 4


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

CPU thực hiện một sự khởi động lại nóng trước khi đi vào chế độ RUN. Sự
khởi động lại nóng sẽ đặt lại toàn bộ các bộ nhớ giữ lại về các giá trị khởi động mặc
định, nhưng vẫn giữ nguyên các giá trị hiện thời được lưu trữ trong bộ nhớ giữ lại.

Lƣu ý

CPU luôn luôn thực hiện một sự khởi động lại sau một việc tải xuống

Khi ta tải xuống một phần tử của đề án (như một khối chương tình, một khối dữ
liệu hay cấu hình phần cứng), CPU thực hiện một sự khởi động lại trong lần chuyển
tiếp kế tiếp sang chế độ RUN. Ngoài việc xóa đi các ngõ vào, khởi chạy các ngõ ra và
khởi chạy bộ nhớ không có khả năng giữ lại, sự khởi động lại còn khởi kích hoạt các
vùng nhớ có khả năng giữ lại.

Sau một khởi động lại theo sau sự tải xuống, tất cả các chuyển đổi STOP sang
RUN tuần tự cũng sẽ thực hiện một sự khởi động lại nóng (mà không kích hoạt bộ nhớ
có khả năng giữ).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 5


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

2.1.1. Các chế độ hoạt động của CPU.

CPU có 3 chế độ hoạt động: chế độ STOP, chế độ STARTUP và chế độ RUN.
Các LED trạng thái trên mặt trước của CPU biểu thị chế độ hiện thời của sự vận hành.

 Trong chế độ STOP, CPU không thực thi chương trình nào, và ta có thể tải
xuống một đề án.
 Trong chế độ STARTUP, các OB khởi động (nếu có) được thực thi một lần.
Các sự kiện ngắt không được xử lý cho đến pha khởi động của chế độ RUN.
 Trong chế độ RUN, chu kỳ quét được thực thi một cách lặp lại. Các sự kiện
ngắt có thể xuất hiện và được thực thi tại bất kỳ điểm nào nằm trong pha chu kỳ
chương trình.

Ta không thể tải xuống một đề án trong khi đang ở chế độ RUN.

CPU hỗ trợ một sự khởi động lại nóng để đi vào chế độ RUN. Khởi động lại
nóng không bao gồm một sự đặt lại bộ nhớ. Tất cả các hệ thống không có khả năng giữ
và dữ liệu người dùng đều được khởi chạy tại một sự khởi động lại nóng. Dữ liệu
người dùng có khả năng giữ vẫn được giữ nguyên.

Một bộ nhớ đặt lại sẽ xóa tất cả các bộ nhớ làm việc, xóa các vùng nhớ có khả
năng giữ và không có khả năng giữ, và sao chép bộ nhớ nạp đến bộ nhớ làm việc. Một
sự đặt lại bộ nhớ không xóa đi bộ đệm chẩn đoán hay các giá trị được lưu vĩnh viễn
của địa chỉ IP.

Ta có thể chỉ định chế độ bật nguồn của CPU hoàn thành với phương pháp khởi
động lại bằng cách sử dụng phần mềm lập trình. Biểu tượng cấu hình này xuất hiện
trong mục Device Configuration đối với CPU đang trong khởi động. Khi nguồn được
bật, CPU thực hiện một tuần tự các kiểm tra chẩn đoán bật nguồn và khởi chạy hệ
thống. CPU sau đó sẽ đi vào chế độ bật nguồn tương ứng. Tất nhiên các lỗi được phát
hiện sẽ ngăn không cho CPU đi vào chế độ RUN. CPU hỗ trợ các chế độ bật nguồn
sau đây:

 Chế độ STOP
 Chuyển sang chế độ RUN sau một sự khởi động lại nóng

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 6


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

 Chuyển sang chế độ trước đó sau một sự khởi động lại nóng

Ta có thể thay đổi chế độ vận hành hiện thời bằng cách sử dụng các lệnh
“STOP” hay “RUN” từ các công cụ trực tuyến của phần mềm lập trình. Ta cũng có thể
bao gồm một lệnh STP trong chương trình để chuyển CPU về chế độ STOP. Điều này
cho phép ta dừng sự thực thi chương trình dựa trên logic lập trình.

Trong chế độ STOP, CPU  xử lý bất kỳ các


yêu cầu truyền thông nào (thích hợp) và  thực hiện tự
chẩn đoán.

Trong chế độ STOP, CPU không thực thi chương trình người dùng, và các cập
nhật tự động của ảnh tiến trình sẽ không xuất hiện.

Ta có thể tải xuống đề á chỉ khi CPU ở trong chế độ STOP.

Trong chế độ RUN, CPU thực hiện các tác vụ được thể hiện như trong hình sau
đây:

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 7


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

STARTUP

A Xóa vùng nhớ I.

B Khởi chạy các ngõ ra cả với giá trị cuối cùng hay giá trị thay thế.

C Thực thi các OB khởi động.

D Sao chép trạng thái của các ngõ vào vật lý đến vùng nhớ I.

E Lưu trữ bất kỳ các sự kiện ngắt nào vào trong thứ tự để xử lý trong chế độ RUN.

F Kích hoạt việc ghi vùng nhớ Q đến các ngõ ra vật lý.

RUN

 Ghi bộ nhớ Q đến các ngõ ra vật lý.

 Sao chép trạng thái các ngõ vào vật lý đến vùng nhớ I.

 Thực thi các OB chu kỳ chương trình.

 Thực hiện các chẩn đoán tự kiểm tra.

 Xử lý các ngắt và truyền thông trong suốt bất kỳ phần nào của chu kỳ quét.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 8


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Tiến trình khởi động (STARTUP)

Khi trạng thái hoạt động thay đổi từ STOP sang RUN, CPU xóa đi các ngõ vào
ảnh tiến trình, khởi chạy các ngõ ra ảnh tiến trình và thực thi các OB khởi động. Bất
kỳ việc đọc nào truy xuất đến các ngõ vào ảnh tiến trình bằng các lệnh trong các OB
khởi động sẽ đọc giá trị zero hơn là giá trị ngõ vào vật lý hiện thời. Do vậy, để đọc
trạng thái hiện thời của một ngõ vào vật lý trong suốt chế độ khởi động, ta phải thực
hiện một việc đọc tức thời. Các OB khởi động và bất kỳ các FC và FB nào có liên
quan sẽ được thực thi tiếp theo. Nếu có nhiều hơn 1 OB khởi động tồn tại, mỗi OB đó
sẽ được thực thi theo thứ tự số hiệu OB, trong đó số hiệu OB thấp nhất được thực thi
đầu tiên.

Mỗi OB khởi động bao gồm thông tin khởi động giúp ta xác định tính hợp lệ
của các dữ liệu lưu giữ và của đồng hồ giờ trong ngày. Ta có thể lập trình các lệnh bên
trong các OB khởi động để kiểm tra các giá trị khởi động này và để thực hiện thao tác
thích hợp. Các vùng khởi động sau đây được hỗ trợ bởi các OB khởi động:

Ngõ vào Kiểu dữ liệu Miêu tả

LostRetentive Bool Bit này đúng nếu các vùng lưu trữ dữ liệu giữ đã bị mất

Bit này đúng nếu đồng hồ giờ trong ngày (Real time
LostRTC Bool
Clock) đã bị mất

CPU còn thực hiện các tác vụ sau đây trong suốt quá trình khởi động:

 Các ngắt được sắp thứ tự nhưng không được thực thi trong suốt pha khởi động
 Không có việc giám sát thời gian chu trình nào được thực hiện trong suốt pha
khởi động
 Sự cấu hình làm thay đổi các module HSC, PWM và PtP đều có thể được thực
hiện trong lúc khởi động
 Sự vận hành thực tế của các module HSC, PWM và PtP chỉ xuất hiện trong chế
độ RUN

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 9


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Sau khi sự thực thi của các OB khởi động đã hoàn thành, CPU đi vào chế độ
RUN và thực thi các tác vụ điều khiển trong một chu kỳ quét liên tiếp.

Việc thực thi chu kỳ quét trong suốt chế độ RUN

Đối với mỗi chu kỳ quét, CPU ghi các ngõ ra, đọc các ngõ vào, thực thi chương
trình người dùng, cập nhật các module truyền thông, thực hiện các công việc nội dịch
(housekeeping) và đáp ứng đến các sự kiện ngắt của người dùng và các yêu cầu truyền
thông. Các yêu cầu truyền thông được xử lý một cách định kỳ xuyên suốt quá trình
quét.

Các hoạt động này (ngoại trừ các sự kiện ngắt của người dùng) được thực hiện
thường xuyên và theo một trật tự tuần tự. Các sự kiện ngắt của người dùng được kích
hoạt sẽ được phục vụ với mức ưu tiên theo trật tự mà chúng xuất hiện.

Hệ thống đảm bảo rằng chu kỳ quét sẽ được hoàn tất trong một chu kỳ thời gian
được gọi là thời gian chu trình tối đa, nếu không một sự kiện lỗi thời gian sẽ được sinh
ra.

 Mỗi chu kỳ quét bắt đầu bằng việc tìm kiếm các giá trị hiện thời của các ngõ ra
kiểu số hay kiểu tương tự từ ảnh tiến trình và sau đó ghi chúng đến các ngõ ra
vật lý của CPU, các module SB và SM được cấu hình cho việc cập nhật I/O tự
động (cấu hình mặc định). Khi một ngõ ra vật lý được truy xuất bởi một lệnh,
cả ảnh tiến trình ngõ ra và bản thân ngõ ra vật lý đều được cập nhật.
 Chu kỳ quét tiếp tục bằng việc đọc các giá trị hiện thời của các ngõ vào kiểu số
hay kiểu tương tự từ CPU, các module SB, SM được cấu hình cho việc cập nhật
I/O tự động (cấu hình mặc định), và sau đó ghi các giá trị này đến ảnh tiến
trình. Khi một ngõ vào vật lý được truy xuất bởi một lệnh, giá trị của ngõ vào
vật lý được truy xuất, nhưng ảnh tiến trình ngõ vào không được cập nhật.
 Sau khi đọc các ngõ vào, chương trình người dùng được thực thi từ lệnh đầu
tiên cho đến lệnh cuối cùng. Điều này bao gồm tất cả các OB chu kỳ chương
trình cộng với tất cả các FC và FB có liên quan của chúng. Các OB chu kỳ
chương tình được thực thi theo trật tự của số hiệu OB, trong đó số hiệu OB thấp
nhất được thực thi trước tiên.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 10


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Việc xử lý các truyền thông xuất hiện một cách định kỳ trong suốt quá trình
quét, có thể ngắt sự thực thi chương trình người dùng.

Các kiểm tra tự chẩn đoán bao gồm cả các kiểm tra định kỳ của hệ thống và các
kiểm tra trạng thái module I/O.

Các ngắt có thể xuất hiện trong suốt bất kỳ phần nào của chu kỳ quét, và được
điều khiển theo sự kiện. Khi một sự kiện xuất hiện, CPU ngắt chu kỳ quét và gọi OB
đã được cấu hình để thực thi sự kiện đó. Sau khi OB hoàn thành việc thực thi sự kiện,
CPU khôi phục lại sự thực thi của chương trình người dùng tại điểm ngắt.

Khối tổ chức (OB)

Các OB điều khiển sự thực thi của chương trình người dùng. Mỗi OB phải có
một số hiệu OB duy nhất. Một số số hiệu OB mặc định được đảo ngược dưới giá trị
200. Các OB khác phải được đánh số từ 200 hay lớn hơn.

Các sự kiện riêng biệt trong CPU kích hoạt sự thực thi của một khối tổ chức.
Các OB không thể gọi lẫn nhau hay được gọi từ một FC hay FB. Chỉ có một sự kiện
khởi động, như là một ngắt chẩn đoán hay một khoảng cách thời gian, là có thể khởi
động sự thực thi của một OB. CPU xử lý các OB theo các lớp ưu tiên tương ứng của
chúng, trong đó các OB có mức ưu tiên cao hơn được xử lý trước các OB có mức ưu
tiên thấp hơn. Lớp ưu tiên thấp nhất là 1 (đối với chu kỳ chương trình chính), và lớp
ưu tiên cao nhất là 27 (đối với các ngắt lỗi thời gian).

OB điều khiển các sự vận hành sau đây:

 Các OB chu kỳ chương trình thực thi một cách tuần hoàn trong khi CPU đang ở
chế độ RUN. Khối chính của chương trình là một OB chu kỳ chương trình. Đây
là nơi mà ta đặt các lệnh điều khiển chương trình và cũng là nơi ta gọi các khối
người dùng bổ sung. Nhiều OB chu kỳ chương trình được cho phép và được
thực thi theo thứ tự bằng số. OB 1 là mặc định. Các OB chu kỳ chương trình
khác phải được nhận dạng là OB 200 hay lớn hơn.
 Các OB trì hoãn thời gian thực thi tại một khoảng thời gian dừng được xác định
sau một sự kiện, được cấu hình hình bởi lệnh ngắt khởi động (SRT_DINT).
Thời gian trì hoãn được xác định trong thông số ngõ vào của lệnh mở rộng
CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 11
www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

SRT_DINT. Một OB trì hoãn thời gian ngắt sự thực thi chương trình theo chu
trình chuẩn khi một thời gian trì hoãn được định trước đã trôi qua. Ta có thể cấu
hình tối đa 4 sự kiện ngắt trì hoãn thời gian tại bất kỳ thời gian nào đã cho, với
một OB được cho phép cho mỗi sự kiện trì hoãn thời gian được cấu hình. OB trì
hoãn thời gian phải là từ OB 200 trở lên.
 Các OB ngắt theo chu trình thực thi tại mỗi khoảng thời gian dừng được xác
định. Chúng sẽ ngắt sự thực thi chương trình theo chu trình tại khoảng thời gian
do người dùng định trước, ví dụ như mỗi 2 giây. Ta có thể cấu hình tối đa 4 sự
kiện ngắt theo chu trình, với một OB được cho phép cho mỗi sự kiện ngắt theo
chu trình được cấu hình. OB này phải là OB 200 trở lên.
 Các OB ngắt phần cứng thực thi khi sự kiện phần cứng có liên quan xuất hiện,
bao gồm các ngưỡng tăng và giảm trên các ngõ vào số tích hợp và các sự kiện
HSC. Một OB ngắt phần cứng sẽ ngắt sự thực thi chương trình theo chu trình
chuẩn theo phản ứng đến một tín hiệu từ sự kiện phần cứng. Ta xác định các sự
kiện trong các thuộc tính của cấu hinh phần cứng. Một OB được cho phép cho
mỗi sự kiện phần cứng được cấu hình. OB này phải là OB 200 trở lên.
 Các OB ngắt lỗi thời gian thực thi ki một lỗi thời gian được phát hiện. Một OB
ngắt lỗi thời gian sẽ ngắt sự thực thi chương trình theo chu trình chuẩn nếu thời
gian chu trình tối đa đã bị vượt quá. Thời gian chu trình tối đa được xác định
trong các thuộc tính của PLC. Chỉ có OB 80 là OB được hỗ trợ cho các sự kiện
lỗi thời gian. Ta có thể cấu hình thao tác để thực hiện khi không có mặt OB 80:
hoặc bỏ qua lỗi hoặc chuyển về STOP.
 Các OB ngắt lỗi chẩn đoán thực thi khi một lỗi chẩn đoán được phát hiện và
được báo cáo lại. Một OB chẩn đoán sẽ ngắt sự thực thi chương trình theo chu
trình chuẩn nếu một module có khả năng chẩn đoán phát hiện ra một lỗi (nếu sự
ngắt lỗi chẩn đoán đã được khởi động cho module). Chỉ có OB 82 là OB được
hỗ trợ cho sự kiện lỗi chẩn đoán. Nếu không có OB chẩn đoán nào trong
chương trình, ta có thể cấu hình CPU để hoặc bỏ qua lỗi hoặc chuyển về STOP.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 12


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

2.1.2. Các mức ưu tiên và sự sắp xếp việc thực thi sự kiện.

Việc xử lý của CPU được điều khiển bởi các sự kiện. Các sự kiện kích hoạt các
OB ngắt để được thực thi. OB ngắt cho một sự kiện được xác định trong suốt quá trình
tạo ra khối, trong mục Device Configuration hay với một lệnh ATTACH hoặc
DETACH. Một số sự kiện xảy ra trên một nền tảng có hệ thống giống như chu kỳ
chương trình hay các sự kiện theo chu trình. Các sự kiện khác chỉ xảy ra trong một
thời gian ngắn, giống như sự kiện khởi động và các sự kiện trì hoãn thời gian. Một số
sự kiện xảy ra khi có một sự thay đổi được kích hoạt bởi phần cứng, ví dụ như một sự
kiện ngưỡng trên một điểm ngõ vào hay một sự kiện bộ đếm tốc độ cao. Ngoài ra còn
có các sự kiện như sự kiện lỗi chẩn đoán và sự kiện lỗi thời gian chỉ xảy ra khi có một
lỗi. Các mức ưu tiên sự kiện, các nhóm và thứ tự ưu tiên được sử dụng để xác định trật
tự xử lý đối với các OB ngắt sự kiện.

Sự kiện chu kỳ chương trình xảy ra một lần trong suốt mỗi chu kỳ chương trình
(hay chu kỳ quét). Trong suốt chu kỳ chương trình, CPU ghi các ngõ ra, đọc các ngõ
vào và thực thi các OB chu kỳ chương trình. Sự kiện chu kỳ chương trình là cần thiết
và luôn luôn được kích hoạt. Ta có thể không có các OB chu kỳ chương trình, hoặc có
nhiều OB được lựa chọn cho mỗi sự kiện chu kỳ chương trình. Sau khi sự kiện chu kỳ
chương trình được kích hoạt, OB chu kỳ chương trình được đánh số thấp nhất (thường
là OB 1) sẽ được thực thi. Các OB chu kỳ chương trình khác được thực thi một cách
tuần tự, theo trật tự được đánh số, chỉ trong chu kỳ chương trình.

Các sự kiện ngắt theo chu trình cho phép ta cấu hình sự thực thi của một OB
ngắt tại một khoảng thời gian được cấu hình. Khoảng thời gian được cấu hình khi OB
được tạo ra và được lựa chọn để trở thanh một OB ngắt theo chu trình. Các sự kiện
theo chu trình sẽ ngắt chu kỳ chương trình và thực thi OB ngắt theo chu trình (sự kiện
theo chu trình nằm ở nhóm mức ưu tiên cao hơn so với sự kiện chu kỳ chương trình).
Chỉ một OB ngắt theo chu trình là có thể được gắn kèm đến một sự kiện theo chu
trình. CPU hỗ trợ 4 sự kiện ngắt theo chu trình. Các OB ngắt theo chu trình có một
thuộc tính dịch chuyển pha, vì vậy sự thực thi của các ngắt theo chu trình trong chu kỳ
thời gian giống nhau có thể được dịch chỉnh từ một thời gian khác bởi một độ dịch
chỉnh pha.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 13


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Sự kiện khởi động xảy ra một lần trên sự chuyển đổi từ STOP sang RUN và
làm cho OB khởi động được thực thi. Nhiều OB có thể được lựa chọn cho sự kiện khởi
động. Các OB khởi động được thực thi theo thứ tự đánh số.

Các sự kiện ngắt trì hoãn thời gian cho phép ta cấu hình sự thực thi của một OB
ngắt sau khi một thời gian trì hoãn đã trôi qua. Thời gian trì hoãn được xác định với
lệnh SRT_DINT. Các sự kiện trì hoãn thời gian sẽ ngắt chu kỳ chương trình để thực
thi OB ngắt trì hoãn thời gian. Chỉ có một OB ngắt trì hoãn thời gian là có thể được
gắn kèm vào một sự kiện trì hoãn thời gian. CPU hỗ trợ 4 sự kiện trì hoãn thời gian.

Các sự kiện ngắt phần cứng được kích hoạt bởi một sự thay đổi trong phần
cứng, ví dụ một ngưỡng tăng hay ngưỡng giảm trên một điểm ngõ vào, hay một sự
kiện HSC. Có thể có một OB ngắt được lựa chọn cho mỗi sự kiện ngắt phần cứng. Các
sự kiện phần cứng được cho phép trong phần Device configuration. Các OB được xác
định cho sự kiện trong Device configuration hay với một lệnh ATTACH trong chương
trình người dùng. CPU hỗ trợ một số sự kiện ngắt phần cứng. Các sự kiện chính xác
được dựa trên kiểu CPU và số lượng các điểm ngõ vào.

Các sự kiện ngắt lỗi chẩn đoán và ngắt lỗi thời gian được kích hoạt khi CPU
phát hiện một lỗi. Các sự kiện này nằm ở nhóm mức ưu tiên cao hơn so với các sự kiện
ngắt khác và có thể ngắt sự thực thi của các sự kiện trì ngắt phần cứng, ngắt theo chu
trình và ngắt trì hoãn thời gian. Một OB ngắt có thể được xác định cho mỗi sự kiện
trong các sự kiện ngắt lỗi chẩn đoán và ngắt lỗi thời gian.

Nhận biết các mức ƣu tiên và xếp hàng thực thi sự kiện

Số lượng các sự kiện chờ (xếp hàng) từ một nguồn đơn lẻ được giới hạn bằng
cách sử dụng một hàng khác cho mỗi kiểu sự kiện. Dưới sự đạt đến giới hạn của các sự
kiện chờ đối với một kiểu sự kiện đã cho, sự kiện tiếp theo sẽ bị mất.

Mỗi sự kiện CPU có một mức ưu tiên liên quan, và các mức ưu tiên được phân
loại vào trong các nhóm ưu tiên. Bảng sau đây tóm lược các độ sâu xếp hàng, các
nhóm ưu tiên và các mức ưu tiên cho các sự kiện CPU được hỗ trợ.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 14


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Lƣu ý

Ta không thể thay đổi việc gán mức ưu tiên hay nhóm ưu tiên và độ sâu xếp hàng

Thông thường, các sự kiện được phục vụ theo thứ tự mức ưu tiên (mức ưu tiên
cao nhất trước tiên). Các sự kiện có cùng mức ưu tiên sẽ được phục vụ trên cơ sở “đến
trước, phục vụ trước”.

Kiểu sự kiện Các số hiệu OB Độ sâu Nhóm Mức


Số lƣợng
(OB) hợp lệ xếp hàng ƣu tiên ƣu tiên
Program 1 chu kỳ chương trình 1 (mặc định)
1 1 1
cycle Nhiều OB được cho phép 200 hay lớn hơn
1 sự kiện khởi động 1 100 (mặc định)
Startup 1 1
Nhiều OB được cho phép 200 hay lớn hơn
4 sự kiện trì hoãn thời gian
Time Delay 200 hay lớn hơn 8 2 3
1 OB cho mỗi sự kiện
4 sự kiện theo chu trình
Cyclic 200 hay lớn hơn 8 4
1 OB cho mỗi sự kiện
16 sự kiện ngưỡng tăng
Edges 16 sự kiện ngưỡng giảm 200 hay lớn hơn 32 5
1 OB cho mỗi sự kiện
6 sự kiện CV = PV
6 sự kiện mệnh lệnh thay
HSC đổi 200 hay lớn hơn 16 6
6 sự kiện đặt lại bên ngoài
1 OB cho mỗi sự kiện
Diagnostic
1 sự kiện Chỉ 82 8 9
Error
Sự kiện Time
Error/ Sự 1 sự kiện lỗi thời gian
kiện 1 sự kiện thời gian Chỉ 82 8 3 26
MaxCycle MaxCycle
time

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 15


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Sự kiện
1 sự kiện 2xMaxCycle Không có OB
2xMaxCycle - 3 27
time được gọi
time
1
Các trường hợp đặc biệt đối với sự kiện khởi động:
 Sự kiện khởi động và sự kiện chu kỳ chương trình sẽ không bao giờ xuất hiện tại cùng
một thời điểm vì sự kiện khởi động sẽ hoàn thành trước khi sự kiện chu kỳ chương trình
được bắt đầu (điều này được điều khiển bởi hệ điều hành).
 Không có sự kiện nào được cho phép để ngắt sự kiện khởi động. Các sự kiện xuất hiện
trong suốt sự kiện khởi động thay vào đó được xếp hàng để xử lý sau, sau khi sự kiện
khởi động được hoàn tất.

Sau khi sự thực thi của một OB đã bắt đầu, việc xử lý OB không thể bị ngắt
bằng sự xuất hiện của một sự kiện khác từ cùng một nhóm ưu tiên hay thấp hơn. Các
sự kiện nào được xếp hàng để xử lý sau sẽ cho phép OB hiện thời hoàn tất.

Tuy nhiên, sự kiện từ một nhóm ưu tiên cao hơn sẽ ngắt OB hiện thời, và CPU
sau đó sẽ thực thi OB của sự kiện có mức ưu tiên cao hơn. Sau khi OB có mức ưu tiên
cao hơn hoàn tất, CPU thực thi các OB của các sự kiện khác được xếp hàng trong
nhóm ưu tiên cao này, dựa trên mức ưu tiên nằm trong nhóm đó. Khi không có sự kiện
nào đang chờ (xếp hàng) trong nhóm ưu tiên cao hơn này, CPU sẽ trở lại đến nhóm ưu
tiên thấp hơn và khôi phục lại việc xử lý của OB đã bị xóa rỗng trước, tại điểm mà
việc xử lý của OB đó đã bị ngắt.

Độ trễ ngắt

Độ trễ sự kiện ngắt (thời gian tính từ thông báo của CPU rằng một sự kiện đã
xuất hiện cho đến khi CPU bắt đầu việc thực thi của lệnh đầu tiên trong OB phục vụ sự
kiện) là xấp xỉ 210 micro giây, cho biết rằng một OB chu kỳ chương trình chỉ là
chương trình con phục vụ sự kiện kích hoạt tại thời điểm của sự kiện ngắt.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 16


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Nhận biết các sự kiện lỗi thời gian

Sự xuất hiện của bất kỳ trong một số các điều kiện lỗi thời gian khác nhau, gây
ra kết quả là một sự kiện lỗi thời gian. Các sự kiện lỗi thời gian sau đây là được hỗ trợ:

 Thời gian chu trình tối đa bị vượt quá


 OB được yêu cầu không thể được khởi động
 Sự tràn ra trong hàng chờ đã xuất hiện

Điều kiện thời gian chu trình tối đa bị vượt quá xảy ra khi chu kỳ chương trình
không hoàn tất trong khoảng thời gian chu trình quét tối đa được định trước.

Điều kiện OB được yêu cầu không thể được khởi động xảy ra khi một OB được
yêu cầu bởi một ngắt theo chu trình hay một ngắt trì hoãn thời gian, nhưng OB được
yêu cầu đó lại vừa mới đang được thực thi.

Điều kiện tràn ra trong hàng chờ xảy ra khi các ngắt xuất hiện nhanh hơn so với
tốc độ chúng được xử lý. Số lượng các sự kiện chờ (xếp hàng) được giới hạn bằng
cách sử dụng một hàng chờ khác nhau cho mỗi kiểu sự kiện. Nếu một sự kiện xuất
hiện khi hàng chờ tương ứng đang đầy, một sự kiện lỗi thời gian được sinh ra.

Tất cả các sự kiện lỗi thời gian sẽ kích hoạt sự thực thi của OB 80 nếu có. Nếu
OB 80 không tồn tại, CPU sẽ bỏ qua lỗi này. Nếu hai điều kiện thời gian chu trình tối
đa bị vượt quá xuất hiện trong cùng một chu kỳ chương trình mà không đặt lại bộ định
thì chu kỳ, CPU sẽ chuyển về chế độ STOP, bất chấp OB 80 có tồn tại hay không.

OB 80 bao gồm các thông tin khởi động giúp ta xác định sự kiện và OB nào đã
sinh ra lỗi. Ta có thể lập trình tập lệnh bên trong OB 80 để kiểm tra các giá trị khởi
động này và để thực hiện thao tác thích hợp. Các vùng khởi động sau đây được hỗ trợ
bởi OB 80:

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 17


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Ngõ vào Kiểu dữ liệu Miêu tả

16#01 – thời gian chu trình tối đa bị vượt quá


fault_id BYTE 16#01 – OB được yêu cầu không thể được khởi động
16#07 vaf 16#09 – sự tràn quá hàng chờ đã xuất hiện

csg_OBnr ON_ANY Số hiệu của OB đã đang được thực thi khi lỗi xuất hiện

csg_prio UINT Mức ưu tiên của OB gây ra lỗi

Không có OB 80 ngắt lỗi thời gian nào hiện diện khi ta tạo ra một đề án mới.
Nếu muốn, ta thêm một OB 80 ngắt lỗi thời gian vào đề án bằng cách nhấp đôi chuột
vào “Add new block” phía dưới “Program blocks”, sau đó chọn “Organization block”
và “Time error interrupt”.

Nhận biết các sự kiện lỗi chẩn đoán

Một vài thiết bị có khả năng phát hiện và báo cáo lại các lỗi chẩn đoán. Sự xuất
hiện hay việc gỡ bỏ của bất kỳ trong một số các điều kiện lỗi chẩn đoán khác nhau sẽ
gây ra một sự kiện lỗi chẩn đoán. Các lỗi chẩn đoán sau đây là được hỗ trợ:

 Không có nguồn điện của người dùng


 Giới hạn cao bị vượt quá
 Giới hạn thấp bị vượt quá
 Đứt dây nối
 Ngắn mạch

Tất cả các sự kiện lỗi chẩn đoán sẽ kích hoạt sự thực thi của OB 82 nếu nó tồn
tại. Nếu OB 82 không tồn tại, CPU sau đó sẽ bỏ qua lỗi. Không có OB 82 ngắt lỗi
chẩn đoán nào hiện diện khi ta tạo ra một đề án. Nếu muốn, ta thêm một OB 82 ngắt
lỗi chẩn đoán vào đề án bằng cách nhấp đôi chuột vào “Add new block” phía dưới
“Program blocks”, sau đó chọn “Organization block” và “Diagnostic error interrupt”.

OB 82 bao gồm các thông tin khởi động giúp ta xác định khi nào sự kiện là dựa
vào sự xuất hiện hay sự gỡ bỏ một lỗi, và thiết bị cùng với kênh mà báo cáo lại lỗi đó.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 18


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Ta có thể lập trình tập lệnh bên trong OB 82 để kiểm tra các giá trị khởi động này và
để thực hiện thao tác thích hợp. Các vùng khởi động sau đây được hỗ trợ bởi OB 82:

Ngõ vào Kiểu dữ liệu Miêu tả

IOstate WORD Trạng thái I/O của thiết bị

Nhận dạng phần cứng của thiết bị hay của hàm cho đến
laddr HW_ANY
khi nó báo cáo lại lỗi

channel UINT Số hiệu kênh

multierror BOOL Nhận giá trị TRUE nếu có nhiều hơn một lỗi hiện diện

Bit 4 của IO_state biểu thị khi nào sự kiện là do bởi sự xuất hiện hay sự gỡ bỏ
của một lỗi. Bit 4 sẽ bằng 1 nếu một lỗi hiện diện (ví dụ: đứt dây nối) và bằng 0 nếu lỗi
không hiện diện.

Ngõ vào ladder chứa bộ định danh phần cứng (HW ID) của thiết bị hay các đơn
vị chức năng trả về lỗi. HW ID được gán một cách tự động khi các thành phần được
lắp vào thiết bị hay kiểu xem mạng và xuất hiện trong thẻ Constants của các thẻ ghi
PLC. Một tên gọi còn được gán một cách tự động cho HW ID. Các mục nhập này
trong thẻ Constants của các thẻ ghi PLC là không thể thay đổi.

Số hiệu kênh bắt đầu tại giá trị 0 đối với điểm ngõ vào đầu tiên (kiểu tương tự
hay kiểu số) và bắt đầu tại gia trị 64 đối với điểm ngõ ra đầu tiên (kiểu tương tự hay
kiểu số). Những sự dịch chỉnh khác nhau là cần thiết để phân biệt các ngõ vào với các
ngõ ra trong sự kiện mà thiết bị chứa cả hai. Nếu một lỗi ảnh hưởng đến thiết bị hoàn
chỉnh và đơn vị chức năng, ví dụ như không có nguồn, thì bit có trọng số lớn nhất của
ký tự số hiệu kênh sẽ được đặt (số hiệu kênh 32768).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 19


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Giám sát thời gian chu trình

Thời gian chu trình là thời gian mà hệ điều hành CPU cần thiết để thực thi pha
theo chu kỳ của chế độ RUN. CPU cung cấp cả hai phương pháp giám sát thời gian
chu trình:

 Thời gian chu trình quét tối đa


 Thời gian chu trình quét tối thiểu cố định

Việc giám sát chu trình quét bắt đầu sau khi sự kiện khởi động hoàn tất. Sự cấu
hình cho chức năng này xuất hiện dưới mục “Device Configuration” của CPU trong
“Cycle time”.

CPU luôn luôn giám sát chu kỳ quét và phản ứng lại nếu thời gian chu trình
quét tối đa bị vượt quá. Nếu thời gian chu trình quét tối đa bị vượt quá, một lỗi được
sinh ra và được xử lý theo một trong hai cách sau:

 Nếu không có OB 80 ngắt lỗi thời gian hiện diện, CPU sẽ sinh ra một lỗi và tiếp
tục thực thi chương trình người dùng.
 Nếu một OB 80 ngắt lỗi thời gian hiện diện, CPU sẽ thực hiện OB 80.

Lệnh RE_TRIGR (kích hoạt lại việc giám sát thời gian chu trình) cho phép ta
đặt lại bộ định thì đo thời gian chu trình. Tuy nhiên lệnh này chỉ có tác dụng nếu nó
được thực thi trong một OB chu kỳ chương trình; lệnh RE_TRIGR sẽ bị bỏ qua nếu
được thực thi trong OB 80. Nếu thời gian chu trình quét tối đa bị vượt quá hai lần
trong cùng một chu kỳ chương trình mà không có sự thực thi lệnh RE_TRIGR giữa cả
hai lần, CPU sau đó sẽ chuyển về STOP ngay lập tức. Việc sử dụng các sự thực thi lặp
lại của lệnh RE_TRIGR có thể tạo ra một vòng lặp vô tận hay một chu trình quét rất
dài.

Thông thường, chu trình quét thực thi nhanh nhất có thể và chu trình quét kế
tiếp bắt đầu ngay khi chu trình quét hiện thời hoàn tất. Phụ thuộc theo chương trình
người dùng và các tác vụ truyền thông, thời gian chu trình của mỗi chu trình quét có
thể khác nhau giữa các chu trình quét. Để loại bỏ sự khác nhau này, CPU hỗ trợ một
thời gian chu trình quét tối thiểu cố định (còn được gọi là chu trình quét cố định) tùy

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 20


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

chọn. Khi chức năng tùy chọn này được kích hoạt và một thời gian chu trình quét tối
thiểu cố định được cung cấp theo mili giây, CPU sẽ duy trì thời gian chu trình tối thiểu
trong khoảng ± 1 ms đối với sự hoàn thành của mỗi chu trình quét CPU.

Trong một sự kiện mà CPU hoàn tất chu trình quét bình thường trong khoảng
thời gian nhỏ hơn thời gian chu trình quét tối thiểu được định trước, CPU sẽ sử dụng
thời gian bổ sung của chu trình quét để thực hiện các chẩn đoán thời gian vận hành
và/hoặc để xử lý các yêu cầu truyền thông. Theo cách này CPU luôn luôn mất một
lượng thời gian cố định để hoàn tất một chu trình quét.

Trong một sự kiện mà CPU không thể hoàn tất chu trình quét trong khoảng thời
gian chu trình tối thiểu được xác định, CPU sẽ hoàn tất chu trình quét một cách bình
thường (bao gồm cả việc xử lý truyền thông) và không tạo ra bất kỳ phản ưng hệ thống
nào như là kết quả của việc vượt quá thời gian quét tối thiểu. Bảng sau đây xác định
phạm vi và các mặc định đối với các chức năng giám sát thời gian chu trình:

Thời gian chu trình Phạm vi (ms) Mặc định

Thời gian chu trình quét tối đa 1 1 đến 6000 150 ms

Thời gian chu trình quét tối thiểu cố định 1 đến thời gian chu trình quét tối
2
Bị vô hiệu
đa

1
Thời gian chu trình quét tối đa luôn luôn được kích hoạt. Ta cấu hình một thời gian
chu trình giữa 1 ms đến 6000 ms. Mặc định là 150 ms.

2
Thời gian chu trình quét tối thiểu là tùy chọn, và theo mặc định nó bị vô hiệu hóa.
Nếu cần thiết ta cấu hình một thời gian chu trình giữa 1 ms và thời gian chu trình quét
tối đa.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 21


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Cấu hình thời gian chu trình và nạp truyền thông

Ta sử dụng các thuộc tính của CPU trong Device Configuration để cấu hình các
thông số sau đây:

 Thời gian chu trình: ta nhập vào một thời gian chu trình quét tối đa. Cũng có thể
nhập vào một thời gian chu trình quét tối thiểu cố định.

 Nạp truyền thông: ta có thể cấu hình một giá trị phần trăm của thời gian chuyên
dụng cho các tác vụ truyền thông.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 22


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

2.1.3. Bộ nhớ CPU.

Sự quản lý bộ nhớ

CPU cung cấp các vùng nhớ sau đây để lưu trữ chương trình người dùng, dữ
liệu và cấu hình:

 Bộ nhớ nạp là một vùng lưu trữ không biến đổi dành cho chương trình người
dùng, dữ liệu và cấu hình. Khi một đề án được tải xuống vào CPU, trước tiên nó
được lưu trữ trong vùng bộ nhớ nạp. Vùng này được đặt trong cả trong một thẻ
nhớ (nếu có) hay trong CPU. Vùng nhớ không biến đổi này vẫn được duy trì
khi mất nguồn điện. Thẻ nhớ hỗ trợ một không gian lưu trữ lớn hơn vùng lưu
trữ được tích hợp trong CPU.
 Bộ nhớ làm việc là một vùng lưu trữ dành cho một vài phần tử của đề án người
dùng trong khi đang thực thi chương trình người dùng. CPU sao chép một số
phần tử trong đề án từ bộ nhớ nạp vào trong bộ nhớ làm việc. Bộ nhớ biến đổi
này bị mất đi khi mất nguồn, và nó được lưu trữ bởi CPU khi nguồn được khôi
phục lại.
 Bộ nhớ giữ lại là một vùng lưu trữ không biến đổi dành cho một số lượng giới
hạn các giá trị bộ nhớ làm việc. Vùng bộ nhớ giữ lại được sử dụng để lưu trữ
các giá trị của các vị trí nhớ dành cho người dùng được chọn trong suốt thời
gian không có nguồn. Khi nguồn được bật trở lại, CPU có đủ thời gian giữ lại
để duy trì các giá trị của một số lượng giới hạn các vị trí nhớ đặc biệt. Các giá
trị giữ lại này sau đó được khôi phục lại khi nguồn được bật.

Để hiển thị việ sử dụng bộ nhớ đối với đề án hiện thời, nhấp chuột phải vào
CPU (hay một trong các khối của CPU) và lựa chọn “Resources” từ ngữ cảnh. Để hiển
thị việc sử dụng của CPU hiện thời, nhấp đôi chuột lên “Online and diagnostics”, mở
rộng phần “Diagnostics” và lựa chọn “Memory”.

Bộ nhớ lƣu giữ

Việc mất đi dữ liệu sau khi nguồn gặp sự cố có thể được tránh bằng cách thao tác các
dữ liệu chắc chắn theo dạng lưu giữ. Các dữ liệu sau đây có thể được cấu hình để được
lưu giữ:

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 23


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

 Bộ nhớ bit (M): ta có thể xác định độ rộng chính xác của bộ nhớ đối với mỗi bộ
nhớ bit trong bảng thẻ ghi PLC hay trong danh sách gán. Bộ nhớ bit lưu giữ
luôn luôn khởi đầu tại MB0 và chạy lên liên tiếp đến một số lượng xác định các
byte. Ta xác định giá trị này từ bảng thẻ ghi PLC hay trong danh sách gán bằng
cách nhấp chuột lên biểu tượng “Retain”. Nhập vào số lượng các byte M để giữ
lại khởi đầu tại MB0.
 Các thẻ ghi trong một khối hàm (FB): nếu một khối hàm được tạo ra với hộp
“Symbolic access only” được chọn, giao diện trình soạn thảo cho FB này sau đó
sẽ chứa một cột “Retain”. Trong cột này, ta có thể lựa chọn cả “Retain” hay
“Non-retain” một cách riêng biệt cho mỗi thẻ ghi. Một DB tức thời đã được tạo
ra khi FB này được đặt trong trình soạn thảo sẽ cho thấy cột giữ lại này, nhưng
chỉ cho mục đích hiển thị; ta không thể thay đổi trạng thái lưu giữ từ trong trình
soạn thảo giao diện DB tức thời cho một FB mà FB đó đã được cấu hình là
“Symbolic access only”.

Nếu một FB đã được tạo ra với hộp “Symbolic access only” được hủy lựa chọn,
trình soạn thảo giao diện cho FB này sẽ không bao gồm cột “Retain”. Một DB tức thời
đã được tạo ra khi FB này được chèn vào trong trình soạn thảo chương trình sẽ cho
thấy một cột “Retain” có thể chỉnh sửa. Trong trường hợp này, việc lựa chọn tùy chọn
“Retain” cho bất kỳ mỗi thẻ ghi sẽ đưa đến kết quả là tất cả các thẻ ghi được lựa chọn.
Tương tự, việc hủy lựa chọn tùy chọn đối với bất kỳ mỗi thẻ ghi sẽ đưa đến kết quả là
tất cả các thẻ ghi được hủy lựa chọn. Đối với một FB đã được cấu hình không phải là
“Symbolic access only”, ta có thể thay đổi trạng thái lưu giữ từ trong phạm vi trình
soạn thảo DB tức thời, nhưng tất cả các thẻ ghi sẽ được thiết lập đến trạng thái lưu giữ
cùng với nhau.

Sau khi tạo ra FB, ta không thể thay đổi tùy chọn đối với “Symbolic access
only”. Tùy chọn này chỉ có thể được lựa chọn khi FB được tạo ra. Để xác định khi nào
một FB có sẵn đã được cấu hình cho “Symbolic access only”, nhấp chuột phải lên FB
trong cây Project, lựa chọn “Properties”, và sau đó lựa chọn “Attributes”.

 Các thẻ ghi của một khối dữ liệu tổng thể: trạng thái của một DB tổng thể liên
quan đến việc gán trạng thái lưu giữ thì giống với trạng thái đó của một FB. Phụ

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 24


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

thuộc vào việc thiết lập đối với việc ghi địa chỉ biểu tượng, ta có thể xác định
trạng thái lưu giữ cả đối với một thẻ ghi riêng lẻ hay đối với toàn bộ thẻ ghi của
một khối dữ liệu tổng thể.
- Nếu thuộc tính “Symbolic access only” của DB được đánh dấu chọn, trạng thái
lưu giữ có thể được thiết lập cho mỗi thẻ ghi riêng lẻ.
- Nếu thuộc tính “Symbolic access only” của DB không được đánh dấu chọn,
trạng thái lưu giữ được áp dụng đến tất cả các thẻ ghi của DB, tức là hoặc tất cả
thẻ ghi là lưu giữ hoặc không có thẻ ghi nào là lưu giữ.

Tổng cộng 2048 byte dữ liệu có thể là lưu giữ. Để xem có bao nhiêu byte, từ
bảng thẻ ghi PLC hay từ danh sách gán, ta nhấp chuột lên biểu tượng thanh công cụ
“Retain”. Dòng thứ hai sẽ chỉ ra tổng bộ nhớ còn lại được kết hợp cho M và DB, mặc
dù đây là nơi mà các phạm vi lưu giữ được xác định cho bộ nhớ M.

Bộ đệm chẩn đoán

CPU hỗ trợ một bộ đệm chẩn đoán chứa một mục nhập vào cho mỗi sự kiện
chẩn đoán. Mỗi mục nhập vào bao gồm ngày và giờ mà sự kiện đã xuất hiện, một danh
mục sự kiện và một phần miêu tả sự kiện. Các mục nhập vào được hiển thị theo thứ tự
thời gian với sự kiện gần nhất ở trên cùng. Trong khi CPU duy trì nguồn điện, có tối
đa 50 sự kiện gần nhất nằm trong nhật ký này. Khi nhật ký đầy, một sự kiện mới sẽ
thay thể sự kiện xảy ra lâu nhất trong nhật ký. Khi nguồn bị mất, 10 sự kiện gần đây
nhất sẽ được lưu lại.

Các kiểu sự kiện sau đây được ghi lại trong bộ đệm chẩn đoán:

 Mỗi sự kiện chẩn đoán hệ thống, ví dụ các lỗi CPU và các lỗi module
 Mỗi sự thay đổi trạng thái của CPU (mỗi khi bật nguồn, mỗi sự chuyển đổi sang
STOP, mỗi sự chuyển đổi sang RUN)

Để truy xuất bộ đệm chẩn đoán, ta phải đang trực tuyến. Ta đặt nhật ký ở dưới mục
“Online & Diagnostics/ Diagnostics/ Diagnostics buffer”.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 25


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Đồng hồ giờ trong ngày

CPU hỗ trợ một đồng hồ giờ trong ngày. Một tụ điện cỡ lớn cung cấp năng
lượng cần thiết để giữ đồng hồ chạy trong suốt thời gian mà CPU được tắt nguồn. Tụ
điện này được nạp trong lúc CPU được cấp nguồn. Đến ít nhất là 2 giờ sau khi CPU đã
được tắt nguồn, tụ điện cỡ lớn này sẽ được nạp đầy để giữ cho đồng hồ vận hành trong
khoảng thường là 10 ngày.

Đồng hồ giờ trong ngày (Time of Day Clock) được đặt theo giờ hệ thống là giờ
quốc tế phối hợp (Coordinate Universal Time – UTC). Có các lệnh đê đọc giờ hệ
thống (RD_SYS_T) hay giờ cục bộ (RD_LOC_T). Giờ cục bộ được tính toán bằng
cách sử dụng múi giờ và độ dịch chỉnh tiết kiệm ánh sáng ngày mà ta thiết lập trong
mục Device configuration phần CPU Clock.

Ta cấu hình đồng hồ giờ trong ngày dành cho CPU dưới thuộc tính “Time of
day”. Ta còn có thể kích hoạt thời gian tiết kiệm ánh sáng ngày và xác định các thời
điểm khởi động và dừng đối với thời gian tiết kiệm ánh sáng ngày. Để thiết lập đồng
hồ giờ trong ngày, ta phải đang trực tuyến và ở trong kiểu xem “Online &
Diagnostics” của CPU. Sử dụng chức năng “Set time of day”.

Bộ nhớ hệ thống và bộ nhớ đếm thời gian

Ta sử dụng các thuộc tính CPU để kích hoạt các byte dành cho “system
memory” và “clock memory”. Logic chương trình có thể tham chiếu các bit riêng lẻ
của các hàm này.

 Ta có thể gán một byte trong bộ nhớ M cho bộ nhớ hệ thống. Byte của bộ nhớ
hệ thống cung cấp 4 bit sau đây có thể được tham chiếu bởi chương trình người
dùng:
- Bit “Always 0 (low)” luôn luôn được đặt về 0.
- Bit “Always 1 (high)” luôn luôn được đặt lên 1.
- “Diagnostic graph changed” được đặt lên 1 đối với một chu kỳ quét sau khi
CPU ghi một sự kiện chẩn đoán. Vì CPU không đặt bit “diagnostic graph
changed” cho đến kết thúc của lần thực thi đầu tiên của các OB chu kỳ chương
trình, chương trình người dùng không thể phát hiện có một thay đổi chẩn đoán

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 26


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

cả trong suốt sự thực thi của các OB khởi động hay trong lần thực thi đầu tiên
của các OB chu kỳ chương trình.
- Bit “First scan” được đặt lên 1 đối với khoảng thời gian của lần quét đầu tiên
sau khi OB khởi động hoàn tất. (Sau sự thực thi của lần quét đầu tiên, bit “First
scan” được đặt về 0)
 Ta có thể gán một byte trong bộ nhớ M cho bộ nhớ đếm thời gian. Mỗi bit của
byte được cấu hình đóng vai trò như bộ nhớ đếm thời gian sẽ sinh ra một xung
dạng sóng vuông. Byte của bộ nhớ đếm thời gian cung cấp 8 tần số khác nhau,
từ 0,5 Hz (chậm) đến 10 Hz (nhanh). Ta có thể sử dụng các bit này như các bit
điều khiển, đặc biệt khi kết hợp với các lệnh sườn, để kích hoạt các hoạt động
trong chương trình người dùng trên một nền tảng theo chu trình.

CPU khởi chạy các byte này trên sự chuyển đổi từ chế độ STOP sang chế độ
STARTUP. Các bit của bộ nhớ đếm thời gian thay đổi một cách đồng bộ đến đồng hồ
CPU xuyên suốt các chế độ STARTUP và RUN.

CHÚ Ý
Việc ghi đè lên các bit của bộ nhớ hệ thống hay bộ nhớ đếm thời gian có thể làm sai lạc dữ
liệu trong các chức năng này và làm cho chương trình người dùng vận hành không chính
xác, điều này có thể gây phá hủy thiết bị và gây thương tích cho con người.
Bởi vì cả bộ nhớ đếm thời gian và bộ nhớ hệ thống đều không được dự trữ trong bộ nhớ M,
các lệnh hay truyền thông có thể ghi đến các vị trí này và làm sai lạc dữ liệu.
Tránh việc ghi dữ liệu đến các vị trí này để đảm bảo sự vận hành riêng của các chức năng
này, và luôn luôn lắp đặt một mạch dừng khẩn cấp dành cho quy trình hay bộ máy.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 27


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Bộ nhớ hệ thống cấu hình một


byte mà byte đó sẽ bật (giá trị = 1) trong
các điều kiện sau đây:

 First scan: byte được bật đối với


lần quét đầu tiên trong chế độ
RUN
 Diagnostic graph changed:
- Always 1 (high): luôn luôn bật
- Always 0 (low): luôn luôn tắt

Bộ nhớ đếm thời gian sẽ cấu


hình một byte mà byte đó bật và tắt một
các tuần hoàn các bit riêng lẻ tại các
khoảng thời gian dừng cố định.

Các cờ của bộ đếm thời gian


sinh ra một xung sóng vuông tương ứng
với bit bộ nhớ M. Các bit này có thể
được sử dụng như các bit điều khiển,
đặc biệt khi kết hợp với các lệnh sườn,
để kích hoạt các hoạt động trong
chương trình người dùng dựa trên một
nền tảng theo chu trình.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 28


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Cấu hình trạng thái của các giá trị ngõ ra khi CPU ở trong chế độ STOP

Ta có thể cấu hình trạng thái của các ngõ ra kiểu số và kiểu tương tự khi CPU
đang trong chế độ STOP. Đối với bất kỳ ngõ ra nào của một CPU, SB hay SM, ta có
thể thiết lập các ngõ ra hoặc gắn chặt giá trị hoặc sử dụng một giá trị thay thế:

 Thay thế một giá trị ngõ ra được định trước (mặc định): ta nhập vào một giá trị
thay thế cho mỗi ngõ ra (mỗi kênh) của thiết bị CPU, SB hay SM đó.

Giá trị thay thế mặc định cho các kênh ngõ ra kiểu số là OFF, và giá trị thay thế
mặc định cho các kênh ngõ ra kiểu tương tự là 0.

 Gắn chặt các ngõ ta để duy trì trạng thái cuối cùng: các ngõ ra giữ lại giá trị
hiện thời của chúng tại thời điểm của sự chuyển tiếp từ RUN sang STOP. Sau
khi bật nguồn, các ngõ ra được đặt đến giá trị thay thế mặc định.

Ta cấu hình trạng thái của các ngõ ra trong Device Configuration. Lựa chọn các
thiết bị riêng lẻ và sử dụng thẻ “Properties” để cấu hình các ngõ ra cho mỗi thiết bị.

Khi CPU chuyển từ RUN sang STOP, CPU giữ lại ảnh tiến trình và ghi các giá
trị tương ứng cho cả các ngõ ra kiểu số và kiểu tương tự, dựa vào sự cấu hình.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 29


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

2.1.4. Bảo vệ bằng mật khẩu cho CPU S7-1200.

CPU cung cấp 3 cấp độ bảo mật để hạn chế sự truy cập đến một số chức năng
riêng biệt. Khi cấu hình cấp độ bảo mật và mật khẩu cho một CPU, ta giới hạn các
chức năng và các vùng nhớ mà có thể truy cập không cần nhập vào mật khẩu.

Để cấu hình mật khẩu ta làm theo các


bước sau đây:

1. Trong mục “Device configuration”,


lựa chọn CPU.

2. Trong cửa sổ kiểm tra, lựa chọn thẻ


“Properties”.

3. Lựa chọn thuộc tính “Protection” để


chọn cấp độ bảo vệ và để nhập vào mật
khẩu.

Mật khẩu là nhạy với loại chữ.

Mỗi cấp độ cho phép các chức năng đã biết để có thể truy cập mà không cần
một mật khẩu. Điều kiện mặc định cho CPU là phải không có sự hạn chế nào và không
có một sự bảo vệ bằng mật khẩu nào. Để hạn chế việc truy xuất đến một CPU, ta cấu
hình các thuộc tính của CPU và nhập vào mật khẩu.

Việc nhập vào mật khẩu thông qua một mạng sẽ không làm giảm giá trị của sự
bảo vệ bằng mật khẩu cho CPU. Một CPU được bảo vệ bằng mật khẩu chỉ cho phép
một người dùng không bị hạn chế truy xuất tại một thời điểm. Sự bảo vệ bằng mật
khẩu không áp dụng đến sự thực thi của tập lệnh chương trình người dùng bao gồm
các hàm truyền thông. Việc nhập vào mật khẩu chính xác sẽ cung cấp truy xuất đến tất
cả các chức năng.

Truyền thông PLC đến PLC (sử dụng tập lệnh truyền thông trong các khối mã)
là không bị hạn chế bởi cấp độ bảo mật trong CPU. Chức năng HMI cũng không bị
hạn chế.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 30


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Cấp độ bảo mật Những sự hạn chế truy cập

No protection Cho phép truy xuất toàn diện mà không cần bảo vệ bằng mật khẩu.

Cho phép truy xuất HMI và tất cả các hình thức truyền thông PLC đến
PLC mà không cần bảo vệ bằng mật khẩu.
Write protection
Mật khẩu được yêu cầu dành cho việc chỉnh sửa (ghi đến) CPU và cho
việc thay đổi chế độ CPU (RUN/STOP).
Cho phép truy xuất HMI và tất cả các hình thức truyền thông PLC đến
Read/write PLC mà không cần bảo vệ bằng mật khẩu.
protection Mật khẩu được yêu cầu dành cho việc đọc dữ liệu trong CPU, cho việc
chỉnh sửa (ghi đến) và cho việc thay đổi chế độ CPU (RUN/STOP).

2.1.5. Sự phục hồi từ một mật khẩu bị mất.

Nếu đã đánh mất mật khẩu của một CPU được bảo vệ bằng mật khẩu, ta sử
dụng một thẻ chuyển trống để xóa đi chương trình được bảo vệ bằng mật khẩu. Thẻ
chuyển trống sẽ xóa bộ nhớ nạp bên trong của CPU. Sau đó ta có thể tải xuống một
chương trình người dùng mới từ phần mềm STEP 7 Basic đến CPU.

CHÚ Ý
Nếu ta lắp một thẻ chuyển vào trong một CPU đang chạy, CPU sẽ chuyển sang chế độ
STOP. Các thiết bị điều khiển có thể rơi vào một điều kiện không an toàn, kết quả là sự vận
hành không mong muốn của thiết bị được điều khiển. Một số các vận hành không mong
muốn có thể gây hậu quả tử vong hay tổn thương nghiêm trọng đến con người, và/hoặc phá
hủy thiết bị.

Ta phải lấy thẻ chuyển ra trước khi thiết lập CPU sang chế độ RUN.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 31


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

2.2. Lƣu trữ dữ liệu, các vùng nhớ và việc ghi địa chỉ.

CPU cung cấp một số các tùy chọn dành cho việc lưu trữ dữ liệu trong suốt sự
thực thi chương trình người dùng:

 Global memory (bộ nhớ toàn cục): CPU cung cấp nhiều vùng nhớ chuyên môn
hóa, bao gồm các ngõ vào (I), các ngõ ra (Q) và bộ nhớ bit (M). Bộ nhớ này là
có thể truy xuất bởi tất cả các khối mã mà không có sự hạn chế nào.
 Data block (DB – khối dữ liệu): ta có thể bao gồm các DB trong chương trình
người dùng để lưu trữ dữ liệu cho các khối mã. Dữ liệu được lưu trữ vẫn duy trì
khi sự thực thi của một khối mã có liên quan dần kết thúc.
 Temp memory (bộ nhớ tạm thời): khi một khối mã được gọi, hệ điều hành của
CPU phân bổ bộ nhớ tạm thời hay cục bộ (L) để sử dụng trong suốt sự thực thi
của khối. Khi sự thực thi của khối hoàn thành, CPU sẽ phân bổ lại bộ nhớ cục
bộ dành cho việc thực thi các khối mã khác.

Mỗi vị trí bộ nhớ khác nhau có một địa chỉ đơn nhất. Chương trình người dùng
sử dụng các địa chỉ này để truy xuất thông tin trong vị trí bộ nhớ.

Vùng nhớ Miêu tả Ép buộc Lƣu giữ

I Được sao chép từ các ngõ vào vật lý tại


Không Không
Ngõ vào ảnh tiến trình điểm bắt đầu của chu trình quét
I_:P Việc đọc ngay lập tức của các điểm ngõ
Có Không
Ngõ vào vật lý vào trên CPU, SB và SM
Q Được sao chép đến các ngõ ra vật lý tại
Không Không
Ngõ ra ảnh tiến trình điểm bắt đầu của chu trình quét
Q_:P Việc ghi ngay lập tức đến các điểm ngõ
Có Không
Ngõ ra vật lý ra vật lý trên CPU, SB và SM
M
Bộ nhớ dữ liệu và điều khiển Không Có
Bộ nhớ bit
L Dữ liệu tạm thời cho một khối, một bộ
Không Không
Bộ nhớ tạm thời phận của khối đó
DB Bộ nhớ dữ liệu và còn là bộ nhớ thông số
Không Có
Khối dữ liệu dành cho các FB

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 32


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Mỗi vùng nhớ khác nhau có một địa chỉ đơn nhất. Chương trình người dùng sử
dụng các địa chỉ này để truy xuất thông tin trong vị trí bộ nhớ. Hình dưới đây thể hiện
cách thức truy xuất một bit (còn được gọi là ghi địa chỉ “byte.bit”). Trong ví dụ này,
vùng bộ nhớ và địa chỉ byte (I = ngõ vào và 3 = byte 3) được theo sau bởi một dấu
chấm (“.”) để ngăn cách địa chỉ bit (bit 4).

A Bộ định danh vùng nhớ

B Địa chỉ byte: byte 3

C Dấu ngăn cách

D Vị trí bit của byte (bit 4 trong số 8


bit)

E Các byte của vùng nhớ

F Các bit của byte được chọn

Ta có thể truy xuất dữ liệu trong hầu hết các vùng bộ nhớ (I, Q, M, DB và L)
gồm các kiểu Byte, Word, hay Double Word bằng cách sử dụng định dạng “byte
address”. Để truy xuất một dữ liệu Byte, Word, hay Double Word trong bộ nhớ, ta
phải xác định địa chỉ theo cách giống như xác định địa chỉ cho một bit. Điều này bao
gồm một bộ định danh vùng, ký hiệu kích thước dữ liệu, và địa chỉ byte bắt đầu của
giá trị Byte, Word, hay Double Word. Các ký hiệu kích thước là B (Byte), W (Word)
và D (Double Word), ví dụ IB0, MW20 hay QD8. Các tham chiếu như là I0.3 và Q1.7
sẽ truy xuất ảnh tiến trình. Để truy xuất ngõ vào hay ngõ ra vật lý, ta cộng thêm tham
chiếu với ký tự “:P” (như là I0.3:P, Q1.7:P hay “Stop:P”).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 33


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Truy xuất dữ liệu trong các vùng nhớ của CPU

Phần mềm STEP 7 Basic tạo điều kiện cho việc lập trình ký hiệu. Thông
thường, các thẻ ghi được tạo ra cả trong thẻ ghi PLC, trong một khối dữ liệu hay trong
giao diện tại phía trên của một OB, FC hay FB. Các thẻ ghi này bao gồm tên, kiểu dữ
liệu, độ dịch chỉnh và chú giải. Ngoài ra, trong môt khối dữ liệu, một giá trị ban đầu có
thể được xác lập. Ta có thể sử dụng các thẻ ghi này khi lập trình bằng cách nhập vào
tên thẻ ghi tại thông số của lệnh. Một cách tùy chọn, ta cũng có thể nhập vào toán hạng
độc lập (bộ nhớ, vùng nhớ, kích cỡ và độ dịch chỉnh) tại thông số lệnh. Các ví dụ trong
phần sau đây cho thấy cách thức để nhập vào các toán hạng tuyệt đối. Ký tự % được tự
động chèn vào trước toán hạng tuyệt đối bởi trình soạn thảo chương trình. Ta có thể lật
chuyển kiểu xem trong trình soạn thảo chương trình đến một trong các kiểu sau: biểu
tượng (Symbolic), biểu tượng và tuyệt đối (Symbolic and absolute) hay tuyệt đối
(Absolute).

I (ngõ vào ảnh tiến trình): CPU tiến hành lấy mẫu các điểm ngõ vào vật lý
ngoại vi vừa trước khi thực thi OB chu trình của mỗi chu trình quét và ghi các giá trị
này đến ảnh tiến trình ngõ vào. Ta có thể truy xuất đến ảnh tiến trình ngõ vào theo bit,
byte, word hay double word. Cả truy xuất đọc và ghi đều được cho phép, nhưng thông
thường, các ngõ vào ảnh tiến trình là chỉ đọc.

Bit I [địa chỉ byte].[địa chỉ bit] I0.1

Byte, Word hay Double Word I [kích thước].[địa chỉ byte khởi đầu] IB4, IW5 hay ID12

Bằng cách cộng thêm “:P” đến một địa chỉ, ta có thể đọc ngay lập tức các ngõ
vào kiểu số hay kiểu tương tự của CPU, SB hay SM. Sự khác biệt giữa một truy xuất
sử dụng I_:P thay vì sử dụng I là ở chỗ dữ liệu sẽ đến một cách trực tiếp từ các điểm
đang được truy xuất hơn là từ ảnh tiến trình ngõ vào. Truy xuất I_:P được tham chiếu
đến một truy xuất “immediate read” vì dữ liệu được truy tìm ngay tức khắc từ nguồn
thay vì từ một bản sao chép đã được tạo ra trong lần cuối mà ảnh tiến trình ngõ vào
được cập nhật.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 34


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Vì các điểm ngõ vào vật lý nhận các dữ liệu của chúng một cách trực tiếp từ các
thiết bị trường được kết nối đến các điểm này, việc ghi đến các điểm này là bị cấm.
Điều đó có nghĩa là, các truy xuất I_:P là chỉ đọc, trái với các truy xuất I có thể được
đọc hay ghi.

Các truy xuất I_:P còn có thể bị hạn chế theo kích thước của các ngõ vào được
hỗ trợ bởi một CPU, SB hay SM đơn lẻ, được làm tròn lên đến byte gần nhất. Ví dụ,
nếu các ngõ vào của một SB có 2 DI/ 2DQ được cấu hình để khởi động tại I4.0, khi đó
các điểm ngõ vào có thể được truy xuất theo địa chỉ I4.0:P và I4.1:P hay theo IB4:P.
Các truy xuất đến địa chỉ tính từ I4.2:P cho tới I4.7:P là không bị từ chối, nhưng không
được nhận biết, vì các điểm này không được sử dụng. Các truy xuất đến địa chỉ IW4:P
và ID4:P bị cấm bởi chúng vượt quá độ dịch chỉnh byte có liên quan với SB.

Các truy xuất sử dụng I_:P không ảnh hưởng đến giá trị tương ứng được lưu trữ
trong ảnh tiến trình ngõ vào.

Bit I [địa chỉ byte].[địa chỉ bit]:P I0.1:P

Byte, Word hay Double Word I [kích thước].[địa chỉ byte khởi đầu]:P IB4:P, IW5:P hay ID12:P

Q (ngõ ra ảnh tiến trình): CPU sao chép các giá trị được lưu trữ trong ảnh tiến
trình ngõ ra đến các điểm ngõ ra vật lý. Ta có thể truy xuất ảnh tiến trình ngõ ra theo
bit, byte, word hay double word. Cả truy xuất đọc và ghi đều được cho phép đối với
các ngõ ra ảnh tiến trình.

Bit Q [địa chỉ byte].[địa chỉ bit] Q0.1

Byte, Word hay Double Word Q [kích thước].[địa chỉ byte khởi đầu] QB5, QW10 hay QB40

Bằng cách cộng thêm “:P” đến một địa chỉ, ta có thể ghi ngay lập tức đến các
ngõ ra kiểu số hay kiểu tương tự của CPU, SB hay SM. Sự khác biệt giữa một truy
xuất sử dụng Q_:P thay vì sử dụng Q là ở chỗ dữ liệu sẽ di chuyển một cách trực tiếp
đến các điểm đang được truy xuất bên cạnh đến ảnh tiến trình ngõ ra (ghi đến cả hai
nơi). Truy xuất Q_:P đôi khi được tham chiếu đến như một truy xuất “immediate

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 35


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

write” vì dữ liệu được gửi ngay tức khắc đến điểm đích; điểm đích không phải chờ tới
lần cập nhật kế tiếp từ ảnh tiến trình ngõ ra.

Vì các điểm ngõ ra vật lý điều khiển trực tiếp các thiết bị trường được kết nối
đến các điểm này, việc đọc từ các điểm này là bị cấm. Điều đó có nghĩa là, các truy
xuất Q_:P là chỉ ghi, trái với các truy xuất Q có thể được đọc hay ghi.

Các truy xuất Q_:P còn có thể bị hạn chế theo kích thước của các ngõ ra được
hỗ trợ bởi một CPU, SB hay SM đơn lẻ, được làm tròn lên đến byte gần nhất. Ví dụ,
nếu các ngõ ra của một SB có 2 DI/ 2DQ được cấu hình để khởi động tại Q4.0, khi đó
các điểm ngõ ra có thể được truy xuất theo địa chỉ Q4.0:P và Q4.1:P hay theo QB4:P.
Các truy xuất đến địa chỉ tính từ Q4.2:P cho tới Q4.7:P là không bị từ chối, nhưng
không được nhận biết, vì các điểm này không được sử dụng. Các truy xuất đến địa chỉ
QW4:P và QD4:P bị cấm bởi chúng vượt quá độ dịch chỉnh byte có liên quan với SB.

Các truy xuất sử dụng Q_:P ảnh hưởng đến cả ngõ ra vật lý cũng như giá trị
tương ứng được lưu trữ trong ảnh tiến trình ngõ ra.

Bit Q [địa chỉ byte].[địa chỉ bit]:P Q0.1:P

Q [kích thước].[địa chỉ byte khởi QB4:P, QW5:P hay


Byte, Word hay Double Word
đầu]:P QD12:P

M (vùng nhớ bit): ta sử dụng vùng nhớ bit (bộ nhớ M) dành cho cả các relay
điều khiển và dữ liệu dùng để lưu trữ trạng thái tức thời của một sự vận hành hay của
các thông tin điều khiển khác. Ta có thể truy xuất vùng bộ nhớ bit theo bit, byte, word
hay double word. Cả vtruy xuất đọc và ghi đều được cho phép đối với bộ nhớ M.

Bit M [địa chỉ byte].[địa chỉ bit] M26.7

Byte, Word hay Double Word M [kích thước].[địa chỉ byte khởi đầu] MB20, MW30, MD50

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 36


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Temp (bộ nhớ tạm): CPU phân bổ bộ nhớ tạm thời trên một nền tảng theo yêu
cầu. CPU phân bổ bộ nhớ tạm thời cho khối mã tại thời điểm khi khối mã được bắt đầu
(đối với một OB) hay được gọi (đối với một FC hay một FB). Sự phân bổ bộ nhớ tạm
thời cho một khối mã có thể sử dụng lại cùng một vị trí bộ nhớ Temp được sử dụng
trước đó bởi một OB, FC hay FB khác. CPU không thiết lập giá trị ban đầu cho bộ nhớ
tạm thời tại thời điểm phân bổ và do đó bộ nhớ tạm thời có thể chứa bất kỳ giá trị nào.

Bộ nhớ tạm thời giống với bộ nhớ M ngoại trừ một điểm chính: bộ nhớ M có
một dải hợp lệ là “global” (tổng thể) còn bộ nhớ tạm thời có dải hợp lệ là “local” (cục
bộ).

 Bộ nhớ M: bất kỳ các OB, FC hay FB nào cũng có thể truy xuất dữ liệu trong
bộ nhớ M, nghĩa là các dữ liệu trong bộ nhớ M là sẵn sàng một cách toàn diện
cho tất cả các phần tử của chương trình người dùng.
 Bộ nhớ Temp: truy xuất đến dữ liệu trong bộ nhớ tạm bị hạn chế đến OB, FC
hay FB mà đã tạo ra hay khai báo vùng bộ nhớ tạm. Các vị trí bộ nhớ tạm giữ
nguyên cục bộ và không được chia sẻ bởi các khối mã khác, ngay cả khi khối
mã gọi một khối mã khác. Ví dụ: khi một OB gọi một FC, FC đó không thể truy
xuất bộ nhớ tạm của OB đã gọi nó.

CPU cung cấp bộ nhớ tạm (cục bộ) cho mỗi nhóm trong số 3 nhóm ưu tiên:

 16 kB dành cho khởi động cà chu kỳ chương trình, bao gồm cả các FB và FC có
liên quan.
 4 kB cho các sự kiện ngắt tiêu chuẩn bao gồm cả các FB và các FC.
 4 kB cho các sự kiện ngắt chẩn đoán bao gồm cả các FB và các FC.

Ta chỉ truy xuất bộ nhớ tạm bằng cách ghi địa chỉ ký hiệu.

DB (khối dữ liệu): ta sử dụng bộ nhớ DB dành cho việc lưu trữ các kiểu dữ
liệu khác nhau, bao gồm trạng thái trung gian của một hoạt động hay các thông số về
thông tin điều khiển khác cho các FB, và các cấu trúc dữ liệu cần thiết cho nhiều lệnh
như các bộ định thì hay các bộ đếm. Ta có thể xác định một khối dữ liệu để được
đọc/ghi hay là chỉ đọc. Ta có thể truy xuất bộ nhớ khối dữ liệu theo bit, byte, word hay

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 37


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

double word. Cả truy xuất đọc và truy xuất ghi đều được cho phép đối với các khối dữ
liệu đọc/ghi. Chỉ truy xuất đọc là được cho phép đối với các khối dữ liệu chỉ đọc.

DB [số hiệu khối dữ liệu].DBX [địa


Bit DB1.DBX2.3
chỉ byte].[địa chỉ bit]
DB [số hiệu khối dữ liệu].DB [kích DB1.DBB4, DB10.DBW2,
Byte, Word hay Double Word
cỡ].[địa chỉ byte bắt đầu] DB20.DBD8

Ghi địa chỉ I/O trong CPU và các module I/O

Khi ta thêm một CPU và các


module I/O vào màn hình cấu hình, các
địa chỉ I và Q được gán một cách tự
động.

Ta có thể thay đổi việc ghi địa


chỉ mặc định bằng cách lựa chọn
trường địa chỉ trong màn hình cấu hình
và gõ vào các số hiệu mới. Các ngõ vào
và ngõ ra kiểu số được gán theo một
byte gồm 8 bit, dù cho module có sử
dụng tất cả các điểm hay không.

Các ngõ vào và ngõ ra kiểu


tương tự được gán theo nhóm gồm 2
điểm (4 byte). Trong ví dụ này, ta có
thể thay đổi địa chỉ của DI16 về 2 .. 3
thay vì 8 .. 9. Công cụ sẽ hỗ trợ bằng
cách thay đổi các phạm vi địa chỉ nào
sai kích thước hay xung đột với các địa
chỉ khác.
Hình trên thể hiện một ví dụ với một CPU cùng 2 SM.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 38


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

2.3. Các kiểu dữ liệu.

Các kiểu dữ liệu được sử dụng để xác định cả kích thước của một phần tử dữ
liệu cũng như cách thức mà dữ liệu được diễn dịch. Mỗi thông số lệnh hỗ trợ ít nhất
một kiểu dữ liệu, và một số thông số còn hỗ trợ nhiều kiểu dữ liệu. Ta giữ con trỏ qua
trường thông số của một lệnh để xem kiểu dữ liệu nào được hỗ trợ đối với một thông
số đã cho.

Một thông số chính thức là bộ định danh trên một lệnh đánh dấu vị trí của dữ
liệu được sử dụng bởi lệnh đó (ví dụ: ngõ vào IN1 của một lệnh ADD). Thông số thực
tế là vị trí bộ nhớ hay hằng số chứa dữ liệu dùng cho lệnh (ví dụ %MD400
“Number_of_Widgets”). Kiểu dữ liệu của thông số thực tế được chỉ định bởi người
dùng phải phù hợp với một trong các kiểu dữ liệu được hỗ trợ của thông số chính thức
được chỉ định bởi lệnh.

Khi chỉ định một thông số thực tế, ta phải chỉ định cả một thẻ ghi (ký hiệu) hay
một địa chỉ nhớ tuyệt đối. Các thẻ ghi có liên quan đến một tên ký hiệu (tên thẻ ghi)
với một kiểu dữ liệu, một vùng nhớ, độ dịch chỉnh bộ nhớ, và dòng chú giải, và có thể
được tạo ra cả trong trình soạn thảo thẻ ghi PLC hay trong trình soạn thảo Interface
cho một khối (OB, FC, FB ay DB). Nếu nhập vào một địa chỉ tuyệt đối mà không có
thẻ ghi liên quan, ta phải sử dụng một kích thước thích hợp phù hợp với kiểu dữ liệu
được hỗ trợ, và một thẻ ghi mặc định sẽ được tạo ra dưới mục nhập vào.

Ta còn có thể nhập vào giá trị hằng số cho nhiều thông số ngõ vào. Bảng sau
đây miêu tả các kiểu dữ liệu cơ bản được hỗ trợ, gồm các ví dụ của mục nhập cố định.
Tất cả các kiểu ngoại trừ kiểu String đều có sẵn trong trình soạn thảo các thẻ ghi PLC
và trong trình soạn thảo Interface của khối. Kiểu String chỉ có sẵn trong trình soạn
thảo Interface của khối. Bảng sau đây xác định các kiểu dữ liệu cơ bản.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 39


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Kích
Kiểu dữ Các ví dụ mục nhập vào
thƣớc Phạm vi
liệu cố định
(bit)

Bool 1 0 đến 1 TRUE, FALSE, 0, 1

Byte 8 16#00 đến 16#FF 16#12, 16#AB

Word 16 16#0000 đến 16#FFFF 16#ABCD, 16#0001

DWord 32 16#00000000 đến 16#FFFFFFFF 16#02468ACE

Char 8 16#00 đến 16#FF „A‟, „t‟, „@‟

SInt 16 -128 đến 127 123, -123

Int 16 -32768 đến 32767 123, -123

DInt 32 -2147483648 đến 2147483647 123, -123

USInt 8 0 đến 255 123

UInt 16 0 đến 65535 123

UDInt 32 0 đến 4294967295 123

123456, -3.4, -1.2E+12,


Real 32 +/- 1.18 x 10 -38 đến +/- 3.40 x 10 38
3.4E-3
12345.123456789, -
LReal 32 +/- 2.23 x 10 -308 đến +/- 1.79 x 10 308
1.2E+40
T#-24d_20h_31m_23s_648ms đến
T#5m_30s
T#24d_20h_31m_23s_647ms
Time 32 5#-2d
Được lưu trữ dưới dạng : -2147483648
T#1d_2h_15m_30s_45ms
ms đến +2147483647 ms
Các ký tự có kích thước 0 đến 254
String Thay đổi „ABC‟
byte

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 40


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Mặc dù không có sẵn như một kiểu dữ liệu, định dạng số BCD sau đây được hỗ trợ bởi
các lệnh chuyển đổi.

Các ví dụ mục
Định dạng Kích thƣớc (bit) Phạm vi số
nhập cố định

BCD16 16 -999 đến 999 123, -123

BCD32 32 -9999999 đến 9999999 1234567, -1234567

Định dạng cho các số thực

Các số thực (hay số có dấu chấm động) được hiển thị đưới dạng số với độ chính
xác đơn 32 bit (Real) hay số độ chính xác kép 64 bit (LReal) như được miêu tả trong
tiêu chuẩn ANSI/IEEE 754-1985. Các số dấu chấm động với độ chính xác đơn là
chính xác đến tối đa 6 chữ số có nghĩa và các số dấu chấm động với độ chính xác kép
là chính xác đến tối đa 15 chữ số có nghĩa. Ta có thể chỉ định tối đa 6 chữ số có nghĩa
(kiểu Real) hay 15 chữ số có nghĩa (LReal) khi nhập vào một hằng số dấu chấm động
để duy trì độ chính xác.

Các tính toán có liên quan đến một chuỗi dài các giá trị gồm các số rất lớn hay
rất nhỏ có thể tạo ra các kết quả không chính xác. Điều này có thể xuất hiện nếu các số
hơn kém nhau đến 10 lũy thừa x, trong đó x > 6 (kiểu Real) hay x > 15(kiểu LReal).
Ví dụ đối với kiểu Real: 100 000 000 + 1 = 100 000 000.

Định dạng cho kiểu dữ liệu chuỗi

CPU hỗ trợ kiểu dữ liệu String dành để lưu trữ một tuần tự các ký tự byte đơn
lẻ. Kiểu dữ liệu String chứa một bộ đếm ký tự tổng (số lượng các ký tự trong chuỗi) và
bộ đếm ký tự hiện thời. Kiểu String cung cấp tối đa 256 byte cho việc lưu trữ kết quả
đếm ký tự tổng tối đa (chiếm 1 byte), kết quả đếm ký tự hiện thời (chiếm 1 byte) và tối
đa 254 ký tự, trong đó mỗi ký tự được lưu trữ trong 1 byte.

Ta có thể sử dụng các chuỗi trực kiện (hằng số) cho các thông số lệnh của kiểu
IN bằng cách sử dụng các dấu nháy đơn. Ví dụ, một chuỗi gồm 3 ký tự „ABC‟ có thể
được sử dụng như là ngõ vào cho thông số IN của lệnh S_CONV. Ta còn có thể tạo ra

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 41


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

các biến chuỗi bằng cách lựa chọn kiểu dữ liệu “String” trong trình soạn thảo giao diện
khối cho OB, FC, FB và DB. Ta không thể tạo ra một chuỗi trong trình soạn thảo thẻ
ghi của PLC. Ta có thể xác định kích thước chuỗi tối đa tính theo byte khi khai báo
chuỗi, ví dụ, “MyString[10]” sẽ xác định kích thước tối đa là 10 byte cho MyString.
Nếu không bao gồm dấu ngoặc vuông với bộ chỉ thị kích thước lớn nhất, giá trị 254 sẽ
được cho.

Ví dụ sau đây xác định một chuỗi với giá trị đếm ký tự tối đa bằng 10 và giá trị
đếm ký tự hiện thời bằng 3. Điều này có nghĩa là hiện thời chuỗi chứa 3 ký tự 1 byte,
nhưng có thể được mở rộng để chứa tối đa 10 ký tự 1 byte.

Bộ đếm ký tự Bộ đếm ký tự
Ký tự 1 Ký tự 2 Ký tự 3 … Ký tự 10
tổng hiện thời
„C‟ „A‟ „T‟
10 3 … -
(16#43) (16#41) (16#54)

Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 … Byte 11

Các mảng

Ta có thể tạo ra một mảng chứa nhiều phần tử của một kiểu cơ bản. Các mảng
có thể được tạo ra trong trình soạn thảo gian diện khối dành cho OB, FC, FB và DB.
Ta không thể tạo ra một mảng trong trình soạn thảo thẻ ghi PLC.

Để tạo ra một mảng từ trình soạn thảo giao diện khối, ta chọn kiểu dữ liệu
“Array [lo…hi] of type”, sau đó chỉnh sửa “lo”, “hi” và “type” như sau:

 lo – chỉ số bắt đầu (thấp nhất) của mảng


 hi – chỉ số kết thúc (cao nhất) của mảng
 type – một trong các kiểu dữ liệu cơ bản, như là Bool, SInt, UDInt

Các chỉ số âm đều được hỗ trợ. Ta có thể đặt tên mảng trong cột Name của trình
soạn thảo giao diện khối. Bảng sau đây cho thấy các ví dụ của các mảng như chúng có
thể xuất hiện trong trình soạn thảo giao diện khối.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 42


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Tên Kiểu dữ liệu Chú giải

My_Bits Array [1 .. 10] đối với kiểu Bool Mảng này chứa 10 giá trị Boolean

Mảng này chứa 11 giá trị SInt, bao gồm chỉ


My_Data Array [-5 .. 5] đối với kiểu SInt
mục 0

Ta tham chiếu các phần tử của mảng trong chương trình bằng cách sử dụng cú
pháp sau:

 Array_name[i], trong đó i là chỉ mục mong muốn.

Các ví dụ có thể xuất hiện trong trình soạn thảo chương trình như một ngõ vào
thông số:

 #My_Bits[3] – tham chiếu bit thứ 3 của mảng “My_Bits”


 #My_Data[-2] – tham chiếu bit thứ 4 của mảng “My_Data”

Ký hiệu # được chèn vào một cách tự động bởi trình soạn thảo chương trình.

Kiểu dữ liệu DTL (Data and Time Long)

Kiểu dữ liệu DTL là một cấu trúc gồm 12 byte lưu trữ thông tin trên ngày và
giờ trong một cấu trúc được xác định trước. Ta xác có thể xác định một DTL cả trong
bộ nhớ tạm Temp của khối hay trong một DB.

Độ dài Ví dụ về ngõ
Định dạng Phạm vi giá trị
(byte) vào giá trị
Tối thiểu: DTL#1970-01-01-
Đếm thời gian và lịch (Year- DTL#2008-12-
:00:00:00.0
12 Month:Hour:Minute:Second 16-
Tối đa: DTL#2554-12-31-
.Nanosecond) 20:30:20.250
:23:59:59.999999999

Mỗi phần của DTL chứa một kiểu dữ liệu khác nhau và phạm vi của các giá trị.
Kiểu dữ liệu của một giá trị được định trước phải phù hợp với kiểu dữ liệu của các
thành phần tương ứng.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 43


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Byte Thành phần Kiểu dữ liệu Phạm vi giá trị

0 Year UInt 1970 đến 2554

2 Month USInt 1 đến 12

3 Day USInt 1 đến 31

1 (Chủ nhật) đến 2 (thứ bảy) Ngày trong tuần


4 Day of week USInt
không cần chú ý trong mục nhập giá trị

5 Hour USInt 0 đến 23

6 Minute USInt 0 đến 59

7 Second USInt 0 đến 59

8 Nanosecond UDInt 0 đến 999 999 999

10

11

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 44


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

2.4. Sử dụng thẻ nhớ.

GHI CHÚ

CPU chỉ hỗ trợ thẻ nhớ SIMATIC được định dạng trước. Nếu ta sử dụng một phần mềm
định dạng của Windows để định dạng lại thẻ nhớ SIMATIC, CPU không thể sử dụng thẻ
nhớ đã được định dạng lại này.
Trước khi sao chép bất kỳ chương trình nào đến thẻ nhớ đã được định dạng, ta phải xóa tất
cả chương trình đã được lưu trước đó khỏi thẻ nhớ.

Ta sử dụng thẻ nhớ đóng vai trò vừa là thẻ chuyển vừa là thẻ chương trình. Bất
kỳ chương trình nào mà ta sao chép đến thẻ nhớ đều chứa tất cả các khối hàm và khối
dữ liệu, các đối tượng công nghệ và cấu hình thiết bị. Chương trình không chứa các
giá trị ép buộc.

 Ta sử dụng một thẻ chuyển để sao chép một chương trình đến bộ nhớ nạp bên
trong của CPU mà không cần sử dụng phần mềm STEP 7 Basic. Sau khi lắp thẻ
chuyển vào, CPU trước tiên sẽ xóa chương trình người dùng và xóa mọi giá trị
ép buộc khỏi bộ nhớ nạp bên trong, và sau đó sao chép chương trình từ thẻ
chuyển đến bộ nhớ nạp bên trong. Khi quá trình chuyển đổi hoàn tất, ta phải lấy
thẻ chuyển ra.

Ta có thể sử dụng một thẻ chuyển trống để truy xuất một CPU được bảo vệ
bằng mật khẩu khi ta đánh mất hay quên mật khẩu này. Khi lắp một thẻ chuyển còn
trống, chương trình được bảo vệ bằng mật khẩu trong bộ nhớ nạp bên trong của CPU
sẽ bị xóa đi. Sau đó ta có thể tải xuống một chương trình mới vào CPU.

 Ta sử dụng một thẻ chương trình đóng vai trò là bộ nhớ nạp ngoại vi cho CPU.
Việc lắp thẻ chương trình vào CPU sẽ xóa đi toàn bộ bộ nhớ nạp bên trong của
CPU (bao gồm chương trình người dùng và các giá trị ép buộc). Sau đó CPU sẽ
thực thi chương trình người dùng trong bộ nhớ nạp ngoại vi (tức là trong thẻ
chương trình). Việc tải xuống đến một CPU mà CPU đó có một thẻ chương
trình sẽ chỉ cập nhật bộ nhớ nạp ngoại vi (thẻ chương trình).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 45


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Vì bộ nhớ nạp bên trong của CPU đã được xóa khi ta lắp thẻ chương trình vào,
nên thẻ chương trình phải được giữ nguyên trong CPU. Nếu lấy thẻ chương trình ra,
CPU sẽ chuyển sang chế độ STOP. (Đèn LED báo lỗi nhấp nháy để chỉ thị rằng thẻ
chương trình đã bị lấy ra.)

Chương trình trên một thẻ nhớ bao gồm các khối mã, các khối dữ liệu, các đối
tượng công nghệ và cấu hình thiết bị. Thẻ nhớ không chứa bất kỳ các giá trị ép buộc
nào. Các giá trị ép buộc không phải là một phần của chương trình, nhưng được lưu trữ
trong bộ nhớ nạp, hoặc là trong bộ nhớ nạp bên trong của CPU, hoặc là trong bộ nhớ
nạp ngoại vi (một thẻ chương trình). Nếu một thẻ chương trình được lắp vào trong
CPU, phần mềm STEP 7 Basic sẽ chỉ áp dụng các giá trị ép buộc đến bộ nhớ nạp
ngoại vi trên thẻ chương trình.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 46


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

2.4.1. Lắp một thẻ nhớ vào CPU.

KHUYẾN CÁO
Nếu ta lắp một thẻ nhớ (thẻ nhớ được cấu hình như một thẻ chương trình hay một thẻ
chuyển) vào trong một CPU đang chạy, CPU chuyển sang chế độ STOP ngay lập tức. Các
thiết bị điều khiển có thể rơi vào một điều kiện không an toàn, gây nên sự vận hành không
mong muốn của thiết bị được điều khiển. Các vận hành không mong muốn có thể gây tử
vong hay tổn thương nghiêm trọng đến con người, và/hoặc gây phá hủy thiết bị. Luôn luôn
lắp đặt mạch dừng khẩn cấp cho ứng dụng hay quy trình.

CHÚ Ý

Hiện tượng nạp tĩnh điện có thể phá hủy thẻ nhớ hay nơi cắm trên CPU.
Thực hiện việc tiếp xúc với một tấm đế được nối đất và/hoặc đeo một vòng dây cổ tay được
nối đất khi ta cầm thẻ nhớ. Cất thẻ nhớ trong một hộp chứa có tính dẫn điện.

Để lắp một thẻ nhớ, ta mở tấm che phía trên của CPU và lắp thẻ nhớ vào trong
rãnh. Kiểu kết nối nhấn – nhấn cho phép ta lắp vào và lấy ra một cách dễ dàng. Thẻ
nhớ được khóa lại nếu ta lắp vào đúng cách.

Cần kiểm tra rằng thẻ nhớ không được bảo vệ ghi. Trượt công tắc bảo vệ ra
khỏi vị trí “Lock”.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 47


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Chú ý

Nếu ta lắp vào thẻ nhớ khi CPU ở trong chế độ STOP, bộ đệm chẩn đoán sẽ
hiển thị một thông điệp mà sự định trị thẻ nhớ đã được khởi chạy. Hãy đừng lưu tâm
đến thông điệp này. Sự định trị thẻ nhớ sẽ không khởi động cho đến khi ta chuyển
CPU sang chế độ RUN, hoặc đặt lại bộ nhớ CPU bằng một lệnh MRES, hay đến chu
trình cấp nguồn cho CPU.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 48


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

2.4.2. Cấu hình các thông số khởi động cho CPU trước khi sao chép đề án đến thẻ
nhớ.

Khi ta sao chép một chương trình đến thẻ chuyển hay thẻ chương trình, chương
trình sẽ bao gồm các thông số khởi động cho CPU. Trước khi sao chép chương trình
vào thẻ nhớ, luôn luôn chắc chắn rằng ta đã cấu hình chế độ vận hành cho CPU theo
một chu trình cấp nguồn. Lựa chọn khi nào CPU khởi động trong chế độ STOP, chế độ
RUN hay trong chế độ trước đó (trước chu trình cấp nguồn).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 49


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

2.4.3. Thẻ chuyển.

CHÚ Ý

Hiện tượng nạp tĩnh điện có thể phá hủy thẻ nhớ hay nơi cắm trên CPU.
Thực hiện việc tiếp xúc với một tấm đế được nối đất và/hoặc đeo một vòng dây cổ tay được
nối đất khi ta cầm thẻ nhớ. Cất thẻ nhớ trong một hộp chứa có tính dẫn điện.

Tạo ra một thẻ chuyển

Luôn luôn nhớ cấu hình thông số khởi động của CPU trước khi sao chép một
chương trình đến thẻ chuyển. Để tạo ra một thẻ chuyển, làm theo các bước sau đây:

1. Lắp một thẻ nhớ trống vào trong bộ đọc/bộ ghi thẻ được gắn kèm với thiết bị lập
trình.

(Nếu không phải là thẻ nhớ trống, ta xóa thư mục “SIMATIC.S7S” và tập tin
“S7_JOB.S7S” trên thẻ nhớ bằng cách sử dụng một ứng dụng ví dụ như Windows
Explorer.)

2. Trong Project tree (kiểu xem Project), mở rộng thư mục “SIMATIC Card Reader”
và lựa chọn thẻ nhớ.

3. Hiển thị hộp thoại “Memory card” bằng cách nhấp chuột phải lên thẻ nhớ trong bộ
đọc thẻ và lựa chọn “Properties” từ trình đơn ngữ cảnh.

4. Trong hộp thoại “Memory card”, lựa chọn “Transfer” từ trình đơn thả xuống.

Tại đây, phần mềm STEP 7 Basic tạo ra một thẻ chuyển trống. Nếu ta tạo ra
một thẻ chuyển trống, ví dụ như để khôi phục từ một mật khẩu CPU bị mất, hãy lấy
thẻ chuyển ra khỏi bộ đọc thẻ.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 50


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5. Thêm chương trình bằng cách lựa chọn thiết bị CPU (ví dụ như PLC_1 [CPU 1214
DC/DC/DC]) trong Project tree và kéo thiết bị CPU đến thẻ nhớ. (Một phương pháp
khác là sao chép thiết bị CPU và dán vào thẻ nhớ). Việc sao chép thiết bị CPU đến thẻ
nhớ sẽ mở ra hộp thoại “Load preview”.

6. Trong hộp thoại “Load preview”, nhấp vào nút “Load” để sao chép thiết bị CPU đến
thẻ nhớ.

7. Khi hộp thoại hiển thị một thông điệp rằng thiết bị CPU (chương trình) đã được nạp
mà không xảy ra lỗi, ta nhấp vào nút “Finish”.

Sử dụng một thẻ chuyển

Để chuyển chương trình đến một CPU, ta làm theo các bước sau:

1. Lắp thẻ chuyển vào trong CPU. Nếu CPU đang ở chế độ RUN, CPU sẽ chuyển sang
chế độ STOP. (LED bảo dưỡng nhấp nháy để chỉ thị rằng thẻ nhớ cần được định trị.)

2. Sử dụng một trong các tùy chọn sau để định trị cho thẻ nhớ:

- Chu trình cấp nguồn CPU.


- Thực hiện một sự chuyển đổi từ STOP sang RUN.
- Thực hiện một sự đặt lại bộ nhớ (MRES).
CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 51
www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

3. Sau khi khởi động lại và định trị thẻ nhớ, CPU sẽ sao chép chương trình vào bộ nhớ
nạp bên trong của CPU. Khi hoạt động sao chép hoàn tất, CPU nhấp nháy LED bảo
dưỡng để chỉ thị rằng thẻ chuyển có thể được lấy ra.

4. Lấy thẻ chuyển ra khỏi CPU.

5. Sử dụng một trong số các tùy chọn sau để định trị chương trình mới được chuyển
đến bộ nhớ nạp bên trong:

- Chu trình cấp nguồn CPU.


- Thực hiện một sự chuyển đổi từ STOP sang RUN.
- Thực hiện một sự đặt lại bộ nhớ (MRES).

CPU sau đó sẽ chuyển sang chế độ khởi động (RUN hay STOP) mà ta đã cấu
hình cho đề án.

Lƣu ý

Ta phải lấy thẻ chuyển ra trước khi thiết lập CPU sang chế độ RUN.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 52


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

2.4.4. Thẻ chương trình.

CHÚ Ý

Hiện tượng nạp tĩnh điện có thể phá hủy thẻ nhớ hay nơi cắm trên CPU.
Thực hiện việc tiếp xúc với một tấm đế được nối đất và/hoặc đeo một vòng dây cổ tay được
nối đất khi ta cầm thẻ nhớ. Cất thẻ nhớ trong một hộp chứa có tính dẫn điện.

Kiểm tra rằng thẻ nhớ không được bảo vệ ghi. Trượt
công tắc bảo vệ ra khỏi vị trí “Lock”.

Trước khi sao chép bất kỳ các phần tử chương trình


vào thẻ chương trình, ta phải xóa các chương trình
được lưu trước đó ra khỏi thẻ nhớ.

Tạo ra một thẻ chƣơng trình

Khi được sử dụng với vai trò là một thẻ chương tình, thẻ nhớ trở thành bộ nhớ nạp
ngoại vi của CPU. Nếu ta lấy thẻ chương trình ra, bộ nhớ nạp bên trong của CPU sẽ
trống rỗng.

Lƣu ý

Nếu ta lắp một thẻ nhớ trống vào trong CPU và thực hiện định trị thẻ nhớ bằng
chu trình cấp nguồn cho CPU, bằng việc thực hiện một chuyển đổi từ STOP sang
RUN, hay thực hiện một sự đặt lại bộ nhớ (MRES), chương trình và các giá trị ép buộc
trong bộ nhớ nạp bên trong của CPU sẽ được sao chép đến thẻ nhớ. (Thẻ nhớ bây giờ
là một thẻ chương trình.) Sau khi việc sao chép đã hoàn tất, chương trình trong bộ nhớ
nạp bên trong của CPU sẽ bị xóa. CPU sẽ chuyển sang chế độ khởi động được cấu
hình (RUN hay STOP).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 53


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Luôn luôn nhớ cấu hình thông số khởi động của CPU trước khi sao chép một
chương trình đến thẻ chương trình. Để tạo ra một thẻ chương trình với STEP 7 Basic,
làm theo các bước sau đây:

1. Lắp một thẻ nhớ trống vào trong bộ đọc/bộ ghi thẻ được gắn kèm với thiết bị lập
trình.

(Nếu không phải là thẻ nhớ trống, ta xóa thư mục “SIMATIC.S7S” và tập tin
“S7_JOB.S7S” trên thẻ nhớ bằng cách sử dụng một ứng dụng ví dụ như Windows
Explorer.)

2. Trong Project tree (kiểu xem Project), mở rộng thư mục “SIMATIC Card Reader”
và lựa chọn thẻ nhớ.

3. Hiển thị hộp thoại “Memory card” bằng cách nhấp chuột phải lên thẻ nhớ trong bộ
đọc thẻ và lựa chọn “Properties” từ trình đơn ngữ cảnh.

4. Trong hộp thoại “Memory card”, lựa chọn “Program” từ trình đơn thả xuống.

Tại đây, phần mềm STEP 7 Basic tạo ra một thẻ chuyển trống. Nếu ta tạo ra
một thẻ chuyển trống, ví dụ như để khôi phục từ một mật khẩu CPU bị mất, hãy lấy
thẻ chuyển ra khỏi bộ đọc thẻ.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 54


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5. Thêm chương trình bằng cách lựa chọn thiết bị CPU (ví dụ như PLC_1 [CPU 1214
DC/DC/DC]) trong Project tree và kéo thiết bị CPU đến thẻ nhớ. (Một phương pháp
khác là sao chép thiết bị CPU và dán vào thẻ nhớ). Việc sao chép thiết bị CPU đến thẻ
nhớ sẽ mở ra hộp thoại “Load preview”.

6. Trong hộp thoại “Load preview”, nhấp vào nút “Load” để sao chép thiết bị CPU đến
thẻ nhớ.

7. Khi hộp thoại hiển thị một thông điệp rằng thiết bị CPU (chương trình) đã được nạp
mà không xảy ra lỗi, ta nhấp vào nút “Finish”.

Sử dụng một thẻ chƣơng trình nhƣ bộ nhớ nạp cho CPU

CHÚ Ý

Nếu ta lắp một thẻ nhớ vào trong một CPU, CPU sẽ chuyển sang chế độ STOP. Nếu ta thực
hiện chu trình cấp nguồn cho CPU, thay đổi CPU từ chế độ STOP sang RUN, hay đặt lại bộ
nhớ CPU (MRES), CPU sẽ sao chép bộ nhớ nạp bên trong đến thẻ nhớ (cấu hình thẻ nhớ
như là một thẻ chương trình) và xóa đi chương trình khỏi bộ nhớ nạp bên trong. Nếu ta lấy
thẻ chương trình ra, CPU sẽ không có chương trình trong bộ nhớ nạp bên trong.

Để sử dụng một thẻ chương trình với CPU, ta làm theo các bước sau:

1. Lắp thẻ chương trình vào trong CPU. Nếu CPU đang ở chế độ RUN, CPU sẽ
chuyển sang chế độ STOP. LED bảo dưỡng nhấp nháy để chỉ thị rằng thẻ nhớ cần
được định trị.

2. Sử dụng một trong các tùy chọn sau để định trị cho thẻ nhớ:

- Chu trình cấp nguồn CPU.


- Thực hiện một sự chuyển đổi từ STOP sang RUN.
- Thực hiện một sự đặt lại bộ nhớ (MRES).

3. CPU sẽ tự động khởi động lại. Sau khi khởi động lại và định trị thẻ chương trình,
CPU xóa đi bộ nhớ nạp bên trong.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 55


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

CPU sau đó sẽ chuyển sang chế độ khởi động (RUN hay STOP) mà ta đã cấu
hình.

Thẻ chương trình phải giữ nguyên trong CPU. Việc lấy thẻ chương trình ra sẽ
không để lại trong bộ nhớ nạp bên trong CPU một chương trình nào.

KHUYẾN CÁO
Nếu ta lấy thẻ chương trình ra, CPU sẽ mất đi bộ nhớ nạp ngoại vi của nó và sinh ra một
lỗi. CPU chuyển sang chế độ STOP và làm nhấp nháy LED báo lỗi.
Các thiết bị điều khiển có thể rơi vào một điều kiện không an toàn, gây nên sự vận hành
không mong muốn của thiết bị được điều khiển. Các vận hành không mong muốn có thể
gây tử vong hay tổn thương nghiêm trọng đến con người, và/hoặc gây phá hủy thiết bị.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC Trang 2 - 56


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Chƣơng 3

Cấu hình thiết bị

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 1


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Ta tạo ra cấu hình thiết bị cho PLC bằng cách thêm một CPU và các module bổ sung
vào đề án.

 Module truyền thông (CM): tối đa là 3, được chèn vào các khe số 101, 102 và 103

 CPU: khe số 1

 Cổng Ethernet của CPU

 Bảng tín hiệu (SB): tối đa là 1, được chèn vào CPU

 Module tín hiệu (SM) dành cho I/O tương tự hay số: tối đa là 8, được chèn vào
trong các khe từ 2 đến 9 (CPU 1214C khởi động 8 SM, CPU 1212C khởi động 2 SM
còn CPU 1211C không khởi động CM nào)

Để tạo ra cấu hình của thiết bị, thêm một thiết bị vào đề án.

 Trong kiểu xem Portal, chọn


“Device & Networks” và nhấp
vào “Add device”.

 Trong kiểu xem Project, dưới cây đề án nhấp đôi chuột vào “Add new device”.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 2


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

3.1. Chèn một CPU.

Người dùng tạo ra cấu hình cho thiết bị bằng cách chèn một CPU vào đề án.
Việc lựa chọn CPU từ hộp thoại “Add new device” sẽ tạo ra thanh đỡ (rack) và CPU.

Hộp thoại “Add new device”

Device view của cấu hình phần cứng

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 3


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Việc lựa chọn CPU trong mục Device view sẽ hiển thị các thuộc tính của CPU
trong cửa sổ kiểm tra.

Lƣu ý

CPU không có một địa chỉ IP được cấu hình trước. Một cách thủ công, người
dùng phải gán giá trị địa chỉ IP cho CPU trong suốt việc cấu hình thiết bị. Nếu CPU
được kết nối đến một bộ định tuyến (router) trong mạng, người dùng còn phải nhập
vào địa chỉ IP cho router đó.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 4


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

3.2. Nhận biết cấu hình của một CPU chƣa xác định.

Tải lên dễ dàng một cấu hình phần cứng đƣợc tạo sẵn

Nếu được kết nối đến một CPU, người dùng có thể tải
lên cấu hình của CPU đó đến đề án, bao gồm bất kỳ các
module nào. Thường là tạo ra một đề án mới và lựa
chọn “Unspecified CPU” thay vì lựa chọn một CPU
xác định. Người dùng hoàn toàn có thể bỏ qua việc cấu
hình thiết bị bằng cách lựa chọn mục “Create a PLC
program” từ “First Steps”. Phần mềm STEP 7 Basic
sau đó sẽ tự động tạo ra một CPU chưa được xác định.

Từ trình soạn thảo chương trình, lựa chọn lệnh “Hardware detection” trong trình đơn
“Online”.

Từ trình soạn thảo cấu hình thiết bị, lựa chọn tùy chọn cho việc phát hiện cấu
hình của thiết bị được kết nối.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 5


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Sau khi người dùng lựa chọn CPU từ hộp thoại trực tuyến, STEP 7 Basic tải lên
cấu hình phần cứng từ CPU, bao gồm bất kỳ module nào (SM, SB hay CM). Người
dùng sau đó có thể cấu hình các thông số của CPU và các module.

3.3. Cấu hình sự hoạt động của CPU.

Để cấu hình các thông số vận hành của CPU, lựa chọn CPU trong phần Device
view (viền xanh dương quanh CPU đó), và sử dụng thẻ “Properties” của cửa sổ kiểm
tra.

Chỉnh sửa các thuốc tính để cấu hình các thông số sau đây:

 Giao diện PROFINET: thiết lập địa chỉ IP cho CPU và sự đồng bộ hóa thời gian
 DI, DO và AI: cấu hình cách xử lý của I/O kiểu số và kiểu tương tự cục bộ (tích
hợp)
 Các bộ đếm tốc độ cao và các máy phát xung: khởi động và cấu hình các bộ
đếm tốc độ cao (HSC) và các máy phát xung được sử dụng cho các vận hành
chuỗi xung (PTO) và bộ điều chế độ rộng xung (PWM).

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 6


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Khi người dùng cấu hình các ngõ ra của CPU hay của bảng tín hiệu như các
máy phát xung (để sử dụng với PWM hay các lệnh điều khiển chuyển động cơ bản),
các địa chỉ ngõ ra tương ứng (Q0.0, Q0.1, Q4.0 và Q4.1) được di chuyển khỏi bộ nhớ
Q và không thể được sử dụng cho các mục đích khác trong chương trình người dùng.
Nếu chương trình người dùng ghi một giá trị đến một ngõ ra được dùng như một máy
phát xung, CPU sẽ không ghi giá trị đó đến ngõ ra vật lý.

 Startup: lựa chọn cách xử lý của CPU theo một sự chuyển đổi từ OFF sang ON,
ví dụ như khởi động trong chế độ STOP hay chuyển sang chế độ RUN sau một
sự khởi động lại nóng.
 Time of delay: thiết lập thời gian, múi giờ và thời gian tiết kiệm ánh sáng ngày.
 Protection: thiết lập bảo vệ đọc/ghi và mật khẩu cho việc truy xuất CPU.
 System and clock memory: khởi động một byte của các hàm “system memory”
(đối với bit “first scan”, bit “always on” và bit “always off”) và khởi động một
byte của các chức năng “clock memory” (ở đó mỗi bit đảo chiều ON và OFF tại
một tần số được xác định trước).
 Cycle time: xác định thời gian chu kỳ tối đa hay một thời gian chu kỳ tối thiểu
không đổi.
 Communication load: định vị một tỷ lệ phần trăm của thời gian CPU để chuyên
dụng cho các nhiệm vụ truyền thông.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 7


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

3.4. Thêm các module vào cấu hình.

Sử dụng danh mục phần cứng để thêm các module vào CPU. Có 3 kiểu module:

 Các module tín hiệu (SM): cung cấp các điểm I/O bổ sung kiểu số hay kiểu
tương tự. Các module này được kết nối bên phải CPU.
 Bảng tín hiệu (SB): cung cấp chỉ một vài điểm I/O bổ sung cho CPU. SB được
lắp đặt ở mặt trước của CPU.
 Các module truyền thông (CM): cung cấp một cổng truyền thông bổ sung
(RS232 hay RS485) cho CPU. Các module này được kết nối bên trái CPU.

Để chèn một module vào trong cấu hình phần cứng, lựa chọn module trong
danh mục phần cứng và nhấp đôi chuột hay kéo module đó đến khe được tô sáng.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 8


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Tên
Lựa chọn module Chèn module Kết quả
module

SM

SB

CM

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 9


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

3.5. Cấu hình các thông số của các module.

Để cấu hình các thông số vận hành cho các module, lựa chọn module trong
Device view và sử dụng thẻ “Properties” của cửa sổ kiểm tra để cấu hình các thông số
cho module.

Cấu hình một module tín hiệu (SM) hay một bảng tín hiệu (SB)

 I/O kiểu số: các ngõ vào có thể được cấu hình cho việc phát hiện ngưỡng tăng
hay ngưỡng giảm (mỗi ngưỡng liên quan với một sự kiện và ngắt phần cứng) và
còn cho việc “bắt giữ xung” (để lưu lại sau một xung tức thời) cho đến cập nhật
kế tiếp của ảnh tiến trình ngõ vào. Các ngõ ra có thể sử dụng một giá trị ngừng
phát triển hay một giá trị thay thế.

 I/O kiểu tương tự: đối với các ngõ vào riêng lẻ, cấu hình các thông số, như là
kiểu đại lượng đo (điện áp hay dòng điện), phạm vi và sự làm trơn, và để khởi
động các chẩn đoán tràn dưới hay tràn ra. Các ngõ ra cung cấp các thông số như
là kiểu ngõ ra (điện áp hay dòng điện) và dành cho các chẩn đoán, ví dụ như
ngắn mạch (đối với ngõ ra điện áp) hay các chẩn đoán giới hạn dưới/trên.

 Các địa chỉ chẩn đoán I/O: cấu hình địa chỉ khởi đầu dành cho thiết lập của các
ngõ vào và ngõ ra của module.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 10


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Việc cấu hình một module truyền thông (CM)

 Cấu hình cổng: cấu hình các thông số truyền thông, như tốc độ baud, tính chẵn
lẻ, các bit dữ liệu, các bit dừng, điều khiển dòng, các ký tự XON và XOFF, và
thời gian chờ.
 Cấu hình thông điệp truyền phát: khởi động và cấu hình các tùy chọn có liên
quan đến truyền phát.
 Cấu hình thông điệp thu nhận: khởi động và cấu hình các thông số khởi đầu
thông điệp và kết thúc thông điệp.

Các thông số cấu hình này có thể được thay đổi bởi chương trình.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 11


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

3.6. Tạo ra một kết nối mạng.

Người dùng sử dụng “Network view” trong Device Configuration để tạo ra các
kết nối mạng giữa các thiết bị trong đề án. Sau khi tạo ra kết nối mạng, sử dụng thẻ
“Properties” của cửa sổ kiểm tra để cấu hình các thông số của mạng.

Hoạt động Kết quả

Lựa chọn “Network view” để


hiển thị các thiết bị dùng để kết
nối

Lựa chọn cổng trên một thiết bị


và kéo kết nối đến cổng trên
thiết bị thứ hai

Thả chuột để tạo ra kết nối mạng

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 12


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

3.7. Cấu hình một địa chỉ IP trong đề án.

Việc cấu hình giao diện PROFINET

Sau khi cấu hình CPU trên thanh đỡ, người dùng có thể cấu hình các thông số
cho giao diện PROFINET. Để làm điều này, nhấp vào hộp PROFINET màu xanh lá
cây trên CPU để lựa chọn cổng PROFINET. Thẻ “Properties” trong cửa sổ kiểm tra sẽ
hiển thị cổng PROFINET.

 Cổng PROFINET

Việc cấu hình địa chỉ IP

Địa chỉ Ethernet (MAC): trong một mạng PROFINET, mỗi thiết bị được gán
một địa chỉ MAC (Media Access Control: điều khiển truy xuất truyền thông) bởi nhà
sản xuất nhằm nhận dạng. Một địa chỉ MAC bao gồm 6 nhóm gồm 2 ký chữ số thập
lục phân, được ngăn cách bằng các dấu gạch nối (-) hay các dấu hai chấm (:), theo thứ
tự truyền phát, ví dụ 01-23-45-67-89-AB hay 01:23:45:67:89:AB.

Địa chỉ IP: mỗi thiết bị còn cần phải có một địa chỉ IP (Internet Protocol: giao
thức mạng quốc tế). Địa chỉ này cho phép thiết bị chuyển giao dữ liệu trên một mạng
phức hợp hơn và được định tuyến.

Mỗi địa chỉ IP được chia thành 4 đoạn 8 bit và được thể hiện theo định dạng
thập phân có dấu chấm, ví dụ 211.154.184.16. Phần đầu tiên của địa chỉ IP được dùng
cho Network ID (loại mạng đang sử dụng), và phần thứ hai là cho Host ID (đơn nhất
đối với mỗi thiết bị trên mạng). Một địa chỉ IP dưới dạng 192.168.x.y là một ký hiệu
tiêu chuẩn được nhận biết như một phần của mạng riêng mà không được định tuyến
trên Internet.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 13


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Màn chắn mạng con: mạng con là một sự kết nhóm theo logic gồm các thiết bị
mạng được kết nối. Các điểm nút trên một mạng con có khuynh hướng được định vị
với một khoảng cách vật lý gần với nhau trên một mạng cục bộ (LAN: Local Area
Network). Một màn chắn (đóng vai trò là màn chắn mạng con hay màn chắn mạng) sẽ
xác định các vùng biên của một mạng con IP.

Một màn chắn mạng con 255.255.255.0 thông thường thích hợp cho một mạng
cục bộ loại nhỏ. Điều này có nghĩa là tất cả các địa chỉ IP trên mạng này đều có 3
trường 8 bit đầu tiên là giống nhau, và các thiết bị khác nhau trên mạng sẽ được định
danh bằng 8 bit cuối cùng. Ví dụ minh họa cho điều này là để gán một màn chắn mạng
con 255.255.255.0 và một địa chỉ IP nằm từ 192.168.2.0 đến 182.169.2.255 đến các
thiết bị trên một mạnh cục bộ loại nhỏ.

Chỉ kết nối giữa các mạng con khác nhau là thông qua một bộ định tuyến. Nếu
các mạng con được sử dụng, một bộ định tuyến IP phải được dùng.

Bộ định tuyến IP: các bộ định tuyến là liên kết giữa các mạng LAN. Việc sử
dụng một bộ định tuyến, một máy tính trong mạng LAN có thể gửi đi các thông điệp
đến bất kỳ các mạng nào khác mà có thể có các mạng LAN khác theo sau chúng. Nếu
đích đến của dữ liệu không nằm trong mạng LAN, bộ định tuyến sẽ chuyển tiếp dữ
liệu đến một mạng khác hay một nhóm các mạng mà dữ liệu có thể được chuyển giao
đến.

Các bộ định tuyến dựa vào các địa chỉ IP để chuyển giao và thu nhận các gói dữ
liệu.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 14


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Các thuộc tính địa chỉ IP: trong cửa sổ Properties, lựa chọn mục nhập cấu hình
“Ethernet address”. TIA Portal sẽ hiển thị hộp thoại cấu hình địa chỉ Ethernet, có liên
quan đến đề án phần mềm với địa chỉ IP của CPU sẽ nhận đề án đó.

Lƣu ý

CPU không có địa chỉ IP được cấu hình trước. Người dùng phải gán một địa chỉ
IP cho CPU một cách thủ công. Nếu CPU được kết nối đến một bộ định tuyến trên một
mạng, người dùng còn phải nhập vào địa chỉ IP của bộ định tuyến này. Tất cả các địa
chỉ IP được cấu hình khi người dùng tải xuống đề án.

Bảng sau đây xác định các thông số của địa chỉ IP:

Thông số Miêu tả

Tên của mạng con mà thiết bị được kết nối đến. Nhấp vào nút “Add new
subnet” để tạo ra một mạng con mới. Mặc định là “Not connected”.
Mạng con Hai kiểu kết nối có thể dùng:
 Mặc định “Not connected” cung cấp một kết nối cục bộ
 Một mạng con được yêu cầu khi mạng có nhiều hơn từ hai thiết bị

Địa chỉ IP Địa chỉ IP được gán cho CPU

Màn chắn mạng con Màn chắn mạng con được gán
Giao thức
Nhấp vào hộp chọn để chỉ ra mục đích của
IP Mục đích của bộ định tuyến IP
một bộ định tuyến IP
Địa chỉ IP được gán cho bộ định tuyến, nếu
Địa chỉ bộ định tuyến
áp dụng được

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ Trang 3 - 15


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Chƣơng 4

Khái niệm lập trình

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 1


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

4.1. Các hƣớng dẫn để thiết kế một hệ thống PLC.

Khi thiết kế một hệ thống PLC, ta có thể chọn từ nhiều phương pháp và chỉ tiêu
khác nhau. Các hướng dẫn chung sau đây có thể áp dụng đến nhiều đề án thiết kế. Tất
nhiên, ta phải theo các lệnh dẫn của các thủ tục của riêng công ty và các áp dụng được
chấp nhận đối với việc huấn luyện cũng như khu vực của mình.

Các bƣớc
Các nhiệm vụ
đề nghị
Phân chia tiến trình hay bộ máy thành các khâu có mức độ phụ thuộc vào
Phân vùng
nhau. Các phân vùng này xác định các vùng biên giữa các bộ điều khiển, sự
tiến trình
ảnh hưởng các đặc tính kỹ thuật miêu tả chức năng, và sự phân nhiệm của
hay bộ máy
các tài nguyên.

Ghi các miêu tả vận hành đối với mỗi công đoạn trong chu trình hay bộ máy,
như các điểm I/O, miêu tả chức năng của việc vận hành, các trạng thái phải
Tạo ra các
được đạt đến trước khi cho phép sự hoạt động đối với mỗi cơ cấu (như một
đặc tính
cuộn dây nam châm, động cơ hay một bộ điều khiển), một sự miêu tả giao
chức năng
diện điều khiển, và bất kỳ các giao diện nào với các công đoạn khác của tiến
trình hay bộ máy.

Nhận dạng bất kỳ thiết bị nào có thể yêu cầu logic gắn cứng để an toàn. Hãy
nhớ rằng các thiết bị điều khiển có thể hư hỏng khi phương pháp không an
toàn, điều này có thể sinh ra sự khởi động hay sự thay đổi không mong muốn
trong quá trình hoạt động của máy móc. Tại nơi mà sự vận hành không chính
xác hay không được mong muốn của thiết bị có thể gây ra hậu quả về mặt
tổn thương vật lý đến con người hay sự hủy hoại tài sản đáng kể, cần cân
Thiết kế các
nhắc đến việc thực thi của việc khống chế bằng điện cơ. Các nhiệm vụ sau
mạch an
đây nên được cài đặt sẵn trong thiết kế của các mạch an toàn:
toàn
 Nhận dạng bất kỳ sự vận hành không bình thường hay không mong
muốn của các cơ cấu mà có thể nguy hiểm.
 Nhận dạng các điều kiện sẽ bảo đảm sự vận hành không nguy hiểm,
và xác định làm cách nào để phát hiện các điều kiện này một cách
độc lập với PLC.
 Nhận dạng bằng cách nào mà PLC tác động đến tiến trình khi đặt vào

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 2


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

hay gỡ bỏ nguồn điện, và còn nhận dạng bằng cách nào và khi nào
mà các lỗi được phát hiện. Chỉ sử dụng thông tin này dành cho việc
thiết kế sự vận hành bình thường hay bất bình thường theo mong
muốn. Ta không nên phụ thuộc vào viễn cảnh của tình huống tốt nhất
này đối với các mục đích an toàn.
 Thiết kế việc khống chế an toàn bằng tay hay bằng điện cơ mà ngăn
chặn sự vận hành nguy hiểm một cách độc lập với PLC.
 Cung cấp thông tin trạng thái thích hợp từ các mạch độc lập đến PLC
để mà chương trình và bất kỳ các giao diện điều khiển khác có được
thông tin cần thiết.
 Nhận dạng bất kỳ các yêu cầu có liên quan đến an toàn khác dành
cho sự hoạt động an toàn của tiến trình.
Dựa trên những yêu cầu của các thông số kỹ thuật chức năng, tạo ra các bản
vẽ sau của các trạm điều hành:
Xác định  Bản vẽ tổng quan thể hiện vị trí của mỗi trạm điều hành theo quan hệ
các trạm đến tiến trình hay bộ máy.
điều hành  Bản vẽ bố trí máy móc của các thiết bị dành cho trạm điều hành, như
bộ hiển thị, các chuyển mạch và đèn.
 Bản vẽ điện với I/O có liên quan của PLC và các module tín hiệu.
Dựa trên những yêu cầu của các thông số kỹ thuật chức năng, tạo ra các bản
vẽ cấu hình của thiết bị điều khiển:
 Bản vẽ tổng quan thể hiện vị trí của mỗi PLC theo quan hệ đến tiến
Tạo ra các
trình hay bộ máy.
bản vẽ về
 Bản vẽ bố trí máy móc của mỗi PLC và bất kỳ các module I/O, bao
cấu hình
gồm các tủ máy và thiết bị khác.
 Bản vẽ điện cho mỗi PLC và bất kỳ các module I/O, bao gồm các số
hiệu mẫu của thiết bị, các địa chỉ truyền thông và các địa chỉ I/O.
Tạo ra một
Tạo ra một danh sách các tên gọi ký hiệu cho các địa chỉ tuyệt đối. Bao gồm
danh sách
không chỉ các tín hiệu I/O vật lý mà còn các phần tử khác (như các tên thẻ
các tên gọi
ghi) để được sử dụng trong chương trình.
ký hiệu

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 3


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

4.2. Việc cấu trúc chƣơng trình ngƣời dùng.

Khi tạo ra một chương trình người dùng cho các nhiệm vụ về tự động, ta chèn
các lệnh của chương trình vào trong các khối mã:

 Khối tổ chức (OB), đáp ứng một sự kiện xác định trong CPU và có thể ngắt sự
thực thi của chương trình. Mặc định đối với thực thi theo chu trình của chương
trình người dùng (OB 1) cung cấp cấu trúc cơ bản dành cho chương trình và chỉ
là khối mã được yêu cầu đối với chương trình. Nếu ta bao hàm các OB khác
trong chương trình, các OB này sẽ ngắt sự thực thi của OB 1. Các OB khác thực
hiện các hàm đặc trưng, ví dụ như cho các tác vụ khởi động, cho việc xử lý các
ngắt và lỗi, hay cho việc thực thi mã chương trình đặc trưng tại các khoảng thời
gian dừng riêng biệt.
 Khối chức năng (FB), là một đoạn chương trình con được thực thi khi nó được
gọi từ khối mã khác (OB, FB hay FC). Khối đang gọi chuyển tiếp các thông số
đến FB và còn nhận dạng một khối dữ liệu đặc trưng mà khối dữ liệu đó lưu trữ
dữ liệu cho lần gọi riêng hay cho giá trị mẫu của FB đó. Việc thay đổi DB mẫu
cho phép một FB chung điều khiển sự hoạt động của một tổ hợp các thiết bị. Ví
dụ, một FB có thể điều khiển một vài máy bơm hay van, với các DB mẫu chứa
các thông số vận hành riêng biệt của mỗi máy bơm hay van.
 Mã chức năng (FC), là một chương trình con mà được thực thi khi nó được gọi
từ một khối mã khác (OB, FB hay FC). FC không có một DB mẫu có liên quan.
Khối đang gọi chuyển tiếp các thông số đến FC. Các giá trị ngõ ra từ FC phải
được ghi đến một địa chỉ nhớ hay đến một DB toàn cục.

Việc chọn kiểu cấu trúc cho chƣơng trình ngƣời dùng

Dựa trên các yêu cầu của ứng dụng, ta có thể chọn cấu trúc thẳng hay cấu trúc
kiểu khối kết cấu để tạo ra chương trình.

 Chương trình thẳng thực thi tất cả các lệnh của tác vụ về tự động theo tuần tự,
lệnh này theo sau lệnh kia. Thông thường, chương trình thẳng đặt tất cả các
lệnh chương trình vào trong OB dành cho việc thực thi theo chu trình của
chương trình (OB 1).

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 4


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

 Chương trình khối kết cấu sẽ gọi các khối mã đặc trưng mà khối mã đó thực
hiện các tác vụ riêng biệt. Để tạo ra một cấu trúc theo khối kết cấu, ta chia tác
vụ thành nhiều tác vụ phụ nhỏ hơn phù hợp với các chức năng về mặt kỹ thuật
của tiến trình. Mỗi khối mã cung cấp đoạn chương trình cho mỗi tác vụ phụ. Ta
cấu trúc chương trình bằng cách gọi một trong số các khối mã từ một khối khác.

Cấu trúc thẳng Cấu trúc khối kết cấu

Bằng cách tạo ra các khối mã chung có thể được tái sử dụng trong chương trình người
dùng, ta có thể đơn giản hóa thiết kế và sự thực thi chương trình. Việc sử dụng các
khối mã chung có một số các lợi ích sau:

 Ta có thể tạo ra các khối hàm sử dụng lại được dành cho các tác vụ tiêu chuẩn,
như dành cho điều khiển một máy bơm hay một động cơ. Ta còn có thể lưu trữ
các khối hàm chung này trong một thư viện có thể được sử dụng bởi các ứng
dụng hay các giải pháp khác.
 Khi ta cấu trúc chương trình vào trong các thành phần kiểu kết cấu có liên quan
đến các tác vụ chức năng, thiết kế của chương trình có thể hiểu và quản lý dễ
dàng hơn. Các thành phần kiểu kết cấu không chỉ giúp tiêu chuẩn hóa thiết kế
chương trình mà còn giúp thực hiện việc cập nhật hay chỉnh sửa mã chương
trình nhanh hơn và dễ dàng hơn.
 Việc tạo ra các thành phần kiểu kết cấu làm đơn giản việc gỡ rối chương trình.
Bằng cách cấu trúc chương trình hoàn chỉnh như một tổ hợp các bộ phận của
chương trình kiểu kết cấu, ta có thể kiểm tra chức năng của mỗi khối mã hàm
khi nó được phát triển.
 Việc tạo ra các thành phần kiểu kết cấu có liên quan đến các chức năng về công
nghệ đặc trưng có thể giúp làm đơn giản và rút gọn thời gian dành cho thực
hiện một ứng dụng hoàn chỉnh.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 5


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

4.3. Sử dụng các khối để cấu trúc chƣơng trình.

Bằng cách thiết kế các FB và FC để thực hiện các tác vụ chung, ta tạo ra các
khối mã kiểu kết cấu. Sau đó cấu trúc chương trình bằng cách làm cho các khối mã
khác gọi những module có thể sử dụng lại này. Khối đang gọi sẽ chuyển tiếp các thông
số đặc trưng của thiết bị đến khối được gọi.

A Khối đang gọi

B Khối được gọi (hay đang ngắt)

 Sự thực thi chương trình

 Sự vận hành gọi một khối khác

 Sự thực thi chương trình

 Kết thúc khối (trở lại khối đang gọi)

Khi một khối mã gọi khối mã khác, CPU thực thi mã chương trình trong khối
được gọi. Sau khi sự thực thi của khối được gọi đã hoàn thành, CPU khôi phục lại sự
thực thi của khối đang gọi.

Việc xử lý tiếp tục với sự thực thi của lệnh theo sau việc gọi khối. Ta có thể xếp
các việc gọi khối lồng vào nhau đối với cấu trúc kiểu kết cấu phức tạp hơn.

 Khởi động chu trình

 Độ sâu lồng vào nhau

Tạo ra các khối mã sử dụng lại đƣợc

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 6


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Sử dụng hộp thoại “Add new


block” ở dưới mục “Program blocks”
trong điều hướng chương trình để tạo ra
các OB, FB, FC và các DB toàn cục.

Khi tạo ra khối mã, ta lựa chọn


ngôn ngữ lập trình cho khối. Không
lựa chọn ngôn ngữ lập trình cho DB vì
nó chỉ lưu trữ dữ liệu.

4.3.1. Khối tổ chức (OB).

Các khối tổ chức cung cấp cấu trúc cho chương trình. Chúng đóng vai trò như
một giao diện giữa hệ điều hành và chương trình người dùng. Các OB được điều khiển
theo sự kiện. Một sự kiện, ví dụ như một ngắt chẩn đoán hay một khoảng thời gian
dừng, sẽ làm cho CPU thực hiện một OB. Một vài OB có các sự kiện khởi động cách
hoạt động được định trước.

OB chu kỳ chương trình chứa chương trình chính của người dùng. Ta có thể
bao gồm nhiều hơn một OB chu kỳ chương trình trong chương trình. Trong suốt chế
độ RUN, các OB chu kỳ chương trình thực thi tại mức ưu tiên thấp nhất và có thể bị
ngắt bởi tất cả các việc xử lý chương trình khác. OB khởi động không ngắt OB chu kỳ
chương trình bởi vì CPU thực thi OB khởi động trước khi đi vào chế độ RUN.

Sau khi hoàn thành việc xử lý các OB chu kỳ chương trình, CPU ngay lập tức
thực thi một lần nữa các OB chu kỳ chương trình. Việc xử lý theo chu kỳ này là dạng
“bình thường” của kiểu xử lý được sử dụng cho các bộ điều khiển logic khả trình. Đối
với nhiều ứng dụng, chương trình người dùng toàn bộ được định vị trong OB chu kỳ
chương trình đơn lẻ.

Ta có thể tạo ra các OB khác để thực hiện các hàm đặc trưng, ví dụ như các tác
vụ khởi động, dành cho việc xử ký các ngắt và các lỗi, hay dành cho thực thi mã

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 7


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

chương trình đặc trưng tại các khoảng thời gian dừng riêng biệt. Các OB này ngắt việc
thực thi các OB chu kỳ chương trình.

Sử dụng hộp thoại “Add new block” để tạo ra các OB mới trong chương trình.

Tùy thuộc vào các mức độ ưu tiên


tương ứng, một DB có thể ngắt một OB
khác. Việc xử lý ngắt luôn luôn được
điều khiển theo sự kiện. Khi một sự
kiện xuất hiện, CPU ngắt sự thực thi
của chương trình người dùng và gọi OB
đã vừa được cấu hình để thực thi sự
kiện đó. Sau khi hoàn thành sự thực thi
của OB đang ngắt, CPU khôi phục sự
thực thi chương trình người dùng tại
điểm ngắt.

CPU xác định mệnh lệnh dành cho việc xử lý các sự kiện ngắt bằng một mức
ưu tiên được gán đến mỗi OB. Mỗi sự kiện ngắt có một mức ưu tiên phục vụ riêng
biệt. Một vài sự kiện ngắt có thể được tổ hợp vào trong các lớp ưu tiên.

Tạo ra một OB bổ sung nằm trong một lớp OB

Ta có thể tạo ra nhiều OB dành cho chương trình, cả cho chu kỳ chương trình
và các lớp OB khởi động. Sử dụng hộp thoại “Add new block” để tạo ra một OB.
Nhập vào tên cho OB và nhập vào một số hiệu OB lớn hơn 200.

Nếu ta tạo ra nhiều OB chu kỳ chương trình dành cho chương trình, COU thực
thi mỗi OB chu kỳ chương trình theo trình tự bằng số, bắt đầu với OB chu kỳ chương
trình chính (mặc định: OB 1). Ví dụ: sau khi OB chu kỳ chương trình đầu tiên (OB 1)
hoàn thành, CPU thực thi OB chu kỳ chương trình thứ hai (ví dụ OB 200).

Cấu hình sự hoạt động của một OB

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 8


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Ta có thể chỉnh sửa các thông số vận


hành của một OB. Ví dụ, có thể cấu
hình thông số thời gian cho một OB trì
hoãn thời gian hay cho một OB theo
chu trình.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 9


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

4.3.2. Hàm (FC).

Một hàm (FC) là một khối mã mà thông thường nó thực hiện một sự vận hành
đặc trưng trên một hệ thống các giá trị ngõ vào. FC lưu trữ các kết quả của hoạt động
này trong các vùng nhớ.

Sử dụng các FC để thực hiện các tác vụ sau đây:

 Để thực hiện các hoạt động tiêu chuẩn và có thể tái sử dụng, ví dụ như dành cho
các phép toán.
 Để thực hiện các hàm về công nghệ, ví dụ như dành cho điều khiển cá thể sử
dụng phép logic về bit.

Một FC có thể được gọi nhiều lần tại các điểm khác nhau trong chương trình.
Việc sử dụng lại này làm đơn giản hóa sự lập trình các tác vụ lặp lại một cách thường
xuyên.

Một FC không có khối dữ liệu (DB) mẫu liên quan. FC sử dụng nhóm dữ liệu
cục bộ dành cho các dữ liệu tạm thời được sử dụng để tính toán. Dữ liệu tạm thời
không được lưu lại. Để lưu trữ dữ liệu lâu dài, gán giá trị ngõ ra đến một khu vực nhớ
toàn cục, như bộ nhớ M hay đến một DB toàn cục.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 10


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

4.3.3. Khối hàm (FB).

Khối hàm là một khối mã sử dụng một khối dữ liệu mẫu cho các thông số và dữ
liệu tĩnh của nó. Các FB có bộ nhớ biến được đặt trong một khối dữ liệu (DB), hay DB
“mẫu”. DB mẫu cung cấp một khối bộ nhớ có liên quan đến giá trị mẫu (hay lần gọi)
của FB đó và lưu trữ dữ liệu sau khi FB hoàn thành. Ta có thể kết hợp các DB mẫu
khác nhau với những lần gọi FB khác nhau. Các DB mẫu cho phép ta sử dụng một FB
chung để điều khiển nhiều các thiết bị. Ta cấu trúc chương trình bằng cách cho một
khối mã thực hiện một việc gọi đến một FB và một DB mẫu. CPU sau đó sẽ thực thi
mã chương trình trong FB đó, và lưu trữ các thông số khối và dữ liệu cục bộ tĩnh trong
DB mẫu. Khi sự thực thi của FB hoàn thành, CPU trả về khối mã đã gọi FB. DB mẫu
giữ lại các giá trị cho giá trị mẫu đó của FB. Các giá trị này có sẵn cho các lần gọi theo
tuần tự đến khối hàm cả trong cùng chu kỳ quét hay trong các chu kỳ quét khác nhau.

Các khối mã có thể sử dụng lại với bộ nhớ có liên quan

Thông thường ta sử dụng một FB để điều khiển sự vận hành của các tác vụ mà
chúng không hoàn thành việc vận hành chỉ trong một chu kỳ quét. Để lưu trữ các
thông số vận hành để từ đó chúng có thể được truy xuất một cách dễ dàng từ một lần
quét đến lần quét tiếp theo, mỗi FB trong chương trình người dùng có một hay nhiều
hơn các DB mẫu. Khi gọi một FB, ta còn chỉ rõ một DB mẫu chứa các thông số khối
và dữ liệu cục bộ tĩnh cho việc gọi đó hay cho “mẫu” của FB. DB mẫu vẫn duy trì các
dữ liệu này sau khi FB hoàn tất sự thực thi.

Bằng cách thiết kế FB cho các tác vụ điều khiển chung, ta có thể sử dụng lại FB
cho nhiều thiết bị bằng cách lựa chọn các DB mẫu khác nhau đối với các lần gọi FB
khác nhau.

Một FB lưu trữ các thông số ngõ vào (IN), thông số ngõ ra (OUT) và thông số
vào/ra (IN_OUT) trong một DB mẫu.

Gán các giá trị ban đầu

Nếu các thông số ngõ vào, ngõ ra hay vào/ra của một khối hàm (FB) không
được gán các giá trị, khi đó các giá trị được lưu trữ trong khối dữ liệu (DB) mẫu sẽ
được sử dụng. Trong một vài trường hợp, ta phải gán giá trị các thông số.
CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 11
www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Ta có thể gán các giá trị ban đầu vào các thông số trong giao diện FB. Các giá
trị này được truyền đi đến DB mẫu có liên quan. Nếu ta không gán giá trị các thông số,
các giá trị hiện thời được lưu trữ trong DB mẫu sẽ được sử dụng.

Sử dụng một FB đơn lẻ với các DB

Hình sau đây thể hiện một OB mà OB đó gọi một FB 3 lần, bằng cách sử dụng
một khối dữ liệu khác nhau cho mỗi lần gọi. Cấu trúc này cho phép một FB chung
điều khiển nhiều thiết bị giống nhau, ví dụ như các động cơ, bằng cách gán mỗi khối
dữ liệu mẫu khác nhau cho mỗi lần gọi các thiết bị khác nhau. Mỗi DB mẫu lưu trữ
các dữ liệu (như tốc độ, thời gian tăng lên, và tổng thời gian hoạt động) cho mỗi thiết
bị riêng lẻ. Trong ví dụ này, FB 22 điều khiển 3 thiết bị riêng biệt, với DB 201 lưu trữ
dữ liệu hoạt động cho thiết bị đầu tiên, DB 202 lưu trữ dữ liệu hoạt động cho thiết bị
thứ hai, và DB 202 lưu trữ dữ liệu hoạt động cho thiết bị thứ ba.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 12


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

4.3.4. Khối dữ liệu (DB).

Ta tạo ra các khối dữ liệu (DB) trong chương trình người dùng để lưu trữ dữ
liệu cho các khối mã. Tất cả các khối chương trình đều có thể truy xuất dữ liệu trong
một DB toàn cục, nhưng một DB mẫu thì chỉ lưu trữ dữ liệu cho một khối hàm (FB)
đặc trưng. Ta có thể xác định một DB đóng vai trò chỉ đọc.

Các dữ liệu được lưu trữ trong một DB sẽ không bị xóa khi sự thực thi của khối
mã có liên quan kết thúc. Có hai kiểu DB:

 DB toàn cục lưu trữ dữ liệu cho các khối mã trong chương trình. Bất kỳ OB, FB
hay FC đều có thể truy xuất dữ liệu trong một DB toàn cục.
 DB mẫu lưu trữ dữ liệu cho một FB đặc trưng. Cấu trúc của dữ liệu trong một
DB mẫu phản ánh các thông số (IN, OUT và IN_OUT) và dữ liệu tĩnh của FB.
(Bộ nhớ Temp cho FB thì không được lưu trữ trong DB mẫu).

Lƣu ý

Mặc dù DB mẫu phản ánh các dữ liệu cho một FB đặc trưng, tuy nhiên bất kỳ
mã hàm nào cũng có thể truy xuất dữ liệu trong một DB mẫu.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 13


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

4.4. Hiểu dữ liệu một cách thống nhất.

CPU duy trì các dữ liệu một cách thống nhất cho tất cả các kiểu dữ liệu cơ bản
(ví dụ như kiểu Word hay DWord) và tất cả các cấu trúc được xác định trong hệ thống
(ví dụ IEC_TIMERS hay DTL). Việc đọc hay ghi giá trị không thể bị ngắt. (Ví dụ,
CPU bảo vệ việc truy xuất đến một giá trị DWord cho đến khi 4 byte DWord đã vừa
được đọc hay ghi). Để đảm bảo rằng các OB chu kỳ chương trình và các OB ngắt
không thể ghi vào cùng một vị trí nhớ tại cùng thời điểm, CPU sẽ không thực thi một
OB ngắt cho đến khi hoạt động đọc hay ghi ở trong OB chu kỳ chương trình đã hoàn
thành.

Nếu chương trình chia sẻ nhiều dữ liệu trong bộ nhớ giữa một OB chu kỳ
chương trình và một OB ngắt, chương trình phải còn đảm bảo rằng các dữ liệu này
được chỉnh sửa hay được đọc một cách thống nhất. Ta có thể sử dụng các lệnh
DIS_AIRT và EN_AIRT trong OB chu kỳ chương trình để bảo vệ bất kỳ truy xuất nào
đến các dữ liệu được chia sẻ.

 Chèn vào một lệnh DIS_AIRT trong khối mã để đảm bảo rằng một OB ngắt
không thể được thực thi trong suốt quá trình hoạt động đọc hay ghi.
 Chèn vào các lệnh đọc hay ghi các giá trị mà có thể được thay đổi bởi một OB
ngắt.
 Chèn vào một lệnh EN_AIRT tại điểm kết thúc của dãy tuần tự để bỏ qua lệnh
DIS_AIRT và cho phép sự thực thi của OB ngắt.

Một yêu cầu truyền thông từ một thiết bị HMI hay CPU khác còn có thể ngắt sự
thực thi của OB chu kỳ chương trình. Các yêu cầu truyền thông còn có thể gây ra các
ban hành dữ liệu nhất quán. CPU đảm bảo rằng các kiểu dữ liệu cơ bản luôn luôn được
đọc và được ghi một cách nhất quán bởi các lệnh chương trình người dùng. Vì chương
trình được ngắt một cách định kỳ bằng việc truyền thông, nó không thể bảo đảm rằng
tất cả các giá trị trong CPU sẽ được cập nhật tại cùng thời điểm bởi HMI. Ví dụ, các
giá trị được hiển thị trên một màn hình HMI đã cho có thể là từ các chu kỳ quét khác
của CPU.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 14


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Các lệnh PtP, và các lệnh PROFINET (như TSEND_C và TRCV_C) truyền các
bộ đệm dữ liệu mà có thể bị ngắt. Đảm bảo dữ liệu nhất quán cho các bộ đệm dữ liệu
bằng cách tránh bất kỳ hoạt động đọc hay ghi đến các bộ đệm trong cả OB chu kỳ
chương trình và OB ngắt. Nếu cần thiết chỉnh sửa các giá trị đệm cho các lệnh này
trong một OB ngắt, sử dụng lệnh DIS_AIRT để trì hoãn bất kỳ sự ngắt nào (một OB
ngắt hay một ngắt truyền thông từ một HMI hay một CPU khác) cho đến khi một lệnh
EN_AIRT được thực thi.

Lƣu ý

Việc sử dụng lệnh DIS_AIRT trì hoãn sự xử lý của các OB ngắt cho đến khi lệnh
EN_AIRT được thực thi, ảnh hưởng đến độ trễ ngắt (thời điểm tính từ sự kiện đến thời
điểm khi OB ngắt được thực thi) của chương trình người dùng.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 15


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

4.5. Lựa chọn ngôn ngữ lập trình.

Ta có tùy chọn trong việc lựa chọn cả ngôn ngữ lập trình LAD (ladder logic)
hay FBD (Function Block Diagram).

Ngôn ngữ lập trình LAD

LAD là một ngôn ngữ lập trình kiểu đồ họa. Sự hiển thị được dựa trên các sơ đồ
mạch điện.

Các phần tử của một sơ đồ mạch


điện, như các tiếp điểm thường đóng
hay thường mở, và các cuộn dây được
nối với nhau để tạo thành các mạng.
Để tạo ra sơ đồ logic cho các thực thi phức tạp, ta có thể chèn vào các nhánh để
tạo ra các mạch logic song song. Các nhánh song song được mở ra theo hướng xuống
hay được kết nối trực tiếp đến thanh dẫn tín hiệu. Ta kết thúc các nhánh theo hướng
lên trên.

Cần chú ý đến các quy tắc sau đây khi tạo ra một mạng LAD:

 Mỗi mạng LAD phải kết thúc bằng một cuộn dây hay một lệnh dạng hộp.
Không được kết thúc một mạng với cả lệnh so sánh (Compare) hay lệnh phát
hiện ngưỡng (ngưỡng dương hay ngưỡng âm).
 Ta không thể tạo ra một nhánh mà có thể đưa lại kết quả là một dòng tín hiệu
theo chiều ngược lại.

 Ta không thể tạo ra một nhánh mà có thể gây nên ngắn mạch.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 16


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Ngôn ngữ lập trình FBD

Giống như ngôn ngữ LAD, ngôn ngữ FBD cũng là một ngôn ngữ lập trình kiểu
đồ họa. Sự hiển thị của mạch logic được dựa trên các biểu tượng logic đồ họa sử dụng
trong đại số Boolean.

Các hàm toán học và các hàm


phức khác có thể được thể hiện một
cách trực tiếp trong sự kết hợp với các
hộp logic. Để tạo ra logic cho các vận
hành phức tạp, ta chèn các nhánh song
song giữa các hộp.
Việc hiểu biết về EN và ENO cho các lệnh “hộp”

Cả ngôn ngữ LAD và FBD đều sử dụng “dòng tín hiệu” (EN và ENO) đối với
một vài lệnh “hộp”. Các lệnh cố định (như lệnh toán học và lệnh di chuyển) hiển thị
các thông số cho EN và ENO. Các thông số này liên quan đến dòng tín hiệu và xác
định khi nào lệnh được thực thi trong suốt lần quét đó.

 EN (Enable In) là một ngõ vào Boolean cho các hộp trong ngôn ngữ LAD và
FBD. Dòng tín hiệu (EN = 1) phải được hiện diện tại ngõ vào này để cho lệnh
hộp được thực thi. Nếu ngõ vào EN của một hộp LAD được kết nối trực tiếp
đến thanh dẫn tín hiệu bên trái, hộp sẽ luôn luôn được thực thi.
 ENO (Enable Out) là một ngõ ra Boolean cho các hộp trong ngôn ngữ LAD và
FBD. Nếu hộp có dòng tín hiệu tại ngõ vào EN và hộp thực thi các chức năng
của nó mà không có lỗi, khi đó ngõ ra ENO sẽ cho dòng tín hiệu (ENO = 1) đi
qua đến phần tử kế tiếp. Nếu một lỗi được phát hiện trong quá trình thực thi của
lệnh hộp, dòng tín hiệu sau đó sẽ bị ngắt (ENO = 0) tại hộp lệnh đã sinh ra lỗi.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 17


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Trình soạn thảo Các ngõ Kiểu dữ


Toán hạng
chƣơng trình vào/ngõ ra liệu

LAD EN, ENO Power Flow (dòng tín hiệu) Bool

FBD EN I, I:P, Q, M, DB, Temp, Power Flow Bool

ENO Power Flow Bool

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 18


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

4.6. Bảo vệ chống sao chép.

Bảo vệ chống sao chép hay bảo


vệ “bí quyết” cho phép ta ngăn một hay
nhiều khối mã (OB, FB, hay FC) trong
chương trình khỏi việc truy cập không
được phép. Ta tạo ra một mật khẩu để
giới hạn việc truy xuất đến khối mã.

Khi ta cấu hình một khối để bảo


vệ “bí quyết”, mã nằm trong khối đó sẽ
không thể được truy xuất ngoại trừ sau
khi nhập vào mật khẩu.

Để bảo vệ chống sao chép một khối, lựa chọn lệnh “Know how protection” từ
trình đơn “Edit”. Sau đó ta nhập vào một mật khẩu cho phép truy xuất đến khối.

Sự bảo vệ bằng mật khẩu sẽ ngăn chặn việc đọc hay chỉnh sửa không được cho
phép một khối hàm. Nếu không có mật khẩu, ta chỉ có thể đọc các thông tin sau đây về
khối mã:

 Tiêu đề khối, chú giải khối và các thuộc tính của khối.
 Các thông số truyền (IN, OUT, IN_OUT, Return)
 Cấu trúc gọi của chương trình
 Các thẻ ghi tổng thể trong các tham chiếu chéo (không có thông tin trên điểm
sử dụng), nhưng các thẻ ghi cục bộ bị ẩn.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 19


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

4.7. Tải xuống các phần tử của chƣơng trình.

Ta có thể tải xuống các phần tử của đề án từ các thiết bị lập trình đến CPU. Khi
ta tải xuống một đề án, CPU sẽ lưu trữ chương trình người dùng (các OB, FC, FB và
DB) trong bộ nhớ thường trực.

Ta có thể tải xuống đề án từ một thiết bị lập trình đến CPU từ bất kỳ trong các
khu vực sau:

 “Project tree”: nhấp chuột phải


lên phần tử chương trình, sau đó
nhấp vào mục chọn “Download”
phụ thuộc vào ngữ cảnh.
 Trình đơn “Online”: nhấp vào
mục chọn “Download to
device”.
 Thanh công cụ: nhấp vào biểu
tượng “Download to device”.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 20


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

4.8. Tải lên các phần tử của chƣơng trình.

Ta có thể tải lên tất cả các khối chương trình và bảng thẻ ghi từ một CPU trực
tuyến (online) đến một đề án ngoại tuyến (offline), nhưng không thể tải lên cấu hình
thiết bị hay các bảng quan sát. Ta không thể tải lên vào trong một đề án trống, mà phải
có một CPU ngoại tuyến có thể tải lên. Ta không thể tải lên một khối đơn lẻ, mà chỉ có
thể tải lên toàn bộ chương trình. Nếu một việc tải lên được thực hiện, CPU ngoại tuyến
sẽ “bị xóa” (tất cả các khối và bảng thẻ ghi sẽ bị xóa) trước việc tải lên sau một câu hỏi
kiểm tra. Ta không thể chỉnh sửa một khối trong vùng trực tuyến, mà trước tiên phải
tải lên nó đến một vùng ngoại tuyến, sau đó chỉnh sửa tại đó và cuối cùng tải lại trở về
PLC.

Có hai cách để thực hiện việc tải lên: kéo và thả vào cây Project, hay đồng bộ
hóa trong trình soạn thảo Compare.

Kéo và thả vào cây đề án

1. Tạo ra một đề án mới.


2. Thêm một thiết bị CPU phù hợp với CPU mà ta đang tải lên từ đó.
3. Mở rộng nút của CPU một lần để thư mục “Program blocks” nhìn thấy được.
4. Từ cây Project, mở rộng nút “Online access”, mở rộng nút cho mạng muốn có,
và nhấp đôi chuột lên “Update accessible devices”.
5. Sau khi các CPU có sẵn được liệt kê, mở rộng nút của CPU mà ta quan tâm.
6. Nhấp chuột trái và giữ thư mục “Program blocks” từ vùng “Online access” và
kéo nó đến thư mục “Program blocks” từ vùng ngoại tuyến, sau đó thả chuột.
Con trỏ của chuột phải chuyển sang “+” khi ta đi qua vùng hiệu chỉnh.
7. Nên xem hộp thoại “Upload preview” mở. Nhấp vào hộp “Continue” và sau đó
nhấp vào “Upload from device”.
8. Cho phép việc tải lên hoàn thành. Lúc này nên xem tất cả các khối chương
trình, các khối công nghệ và các thẻ ghi trong vùng ngoại tuyến.
9. Do cấu hình thiết bị không thể được tải lên, sử dụng “Device configuration” để
thiết lập các thuộc tính của CPU một cách thủ công, bao gồm cả địa chỉ IP
mong muốn, và để thêm vào các thiết bị khác đến đề án ngoại tuyến.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 21


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Ta còn có thể kéo từ vùng trực tuyến đến vùng “Program blocks” của một
chương trình được tạo sẵn. Điều đó có nghĩa là, vùng ngoại tuyến “Program blocks”
không bắt buộc phải trống. Trong trường hợp này, chương trình được tạo sẵn sẽ bị xóa
và được thay thế bởi chương trình trực tuyến.

Đồng bộ hóa trong trình soạn thảo so sánh

1. Mở đề án.
2. Trong cây Project, lựa chọn CPU ngoại tuyến để so sánh.
3. Mở trình soạn thảo “Compare” bằng cách nhấp chuột phải lên CPU ngoại
tuyến, hay bằng cách lựa chọn lệnh “Compare offline/online” từ trình đơn
“Menu”.
4. Trình soạn thảo Compare liệt kê các khác biệt ở dưới thư mục “Program
blocks”. Nhấp vào biểu tượng trong cột thao tác. Để tải lên đề án, lựa chọn
“Upload from device”.
5. Nhấp vào nút “Synchronize online and offline” để sao chép đề án từ CPU trực
tuyến đến CPU ngoại tuyến.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 22


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

4.9. Gỡ rối và kiểm tra chƣơng trình.

Ta sử dụng “các bảng quan sát” để giám sát và chỉnh sửa các giá trị của một
chương trình người dùng đang được thực thi bởi CPU trực tuyến. Ta có thể tạo ra và
lưu các bảng quan sát khác nhau trong đề án để hỗ trợ một loạt các môi trường kiểm
tra. Điều này cho phép tái thực hiện các kiểm tra trong suốt việc thử nghiệm hay cho
các mục đích phục vụ và bảo trì.

Với một bảng quan sát, ta có thể giám sát và tương tác với CPU khi nó thực thi
chương trình người dùng. Ta có thể hiển thị hay thay đổi các giá trị không chỉ đối với
các thẻ ghi của khối hàm và khối dữ liệu, mà còn đối với các vùng nhớ của CPU, bao
gồm các ngõ vào và ngõ ra (I và Q), các ngõ vào và ngõ ra ngoại vi (I:P và Q:P), bộ
nhớ bit (M) và các khối dữ liệu (DB).

Với bảng quan sát, ta có thể kích hoạt các ngõ ra vật lý (Q:P) của một CPU
trong chế độ STOP. Ví dụ, ta có thể gán các giá trị đặc trưng đến các ngõ ra khi kiểm
tra việc nối dây đối với CPU.

Bảng quan sát còn cho phép ta “bắt buộc” hay thiết lập một thẻ ghi đến một giá
trị đặc trưng.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH Trang 4 - 23


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Chƣơng 5.

Tập lệnh lập trình

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-1


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1. Tập lệnh cơ bản.


5.1.1. Bit logic.

Các tiếp điểm ladder (LAD)

Ta có thể kết nối các tiếp điểm với nhau và tạo ra mạch logic kết nối. Nếu bit
ngõ vào mà ta chỉ rõ sử dụng bộ định danh I (ngõ vào) hay Q (ngõ ra), giá trị bit sẽ
được đọc từ một thanh ghi ảnh tiến trình. Các tín hiệu tiếp điểm vật lý trong tiến trình
điều khiển được nối đến các đầu cực I trên PLC. CPU quét các tín hiệu ngõ vào được
nối và cập nhật liên tục các giá trị tương ứng trong thanh ghi ngõ vào ảnh tiến trình.

Ta có thể ghi rõ một kết quả tức thời của một ngõ vào vật lý bằng cách sử dụng
“:P” theo sau sự dịch chỉnh I (ví dụ: “%I3.4:P”). Đối với một kết quả tức thời, các giá
trị dữ liệu bit được đọc một cách trực tiếp từ ngõ vào vật lý thay vì từ ảnh tiến trình.
Một kết quả tức thời thì không cập nhật ảnh tiến trình.

Thông số Kiểu dữ liệu Miêu tả

IN Bool Bit được gán giá trị

 Tiếp điểm thường hở NO (Normally Open) được đóng lại (ON) khi giá trị bit
được gán bằng 1.
 Tiếp điểm thường đóng NC (Normally Closed) được đóng lại (ON) khi giá trị
bit được gán bằng 0.
 Các tiếp điểm được nối nối tiếp sẽ tạo ra mạch logic AND.
 Các tiếp điểm được nối song song sẽ tạo ra mạch logic OR.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-2


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Các hộp FBD: AND, OR và XOR

Trong lập trình FBD, các mạng tiếp điểm LAD được chuyển đổi thành các
mạng dùng các khối logic AND (&), OR (> = 1) và OR loại trừ (XOR) mà ta có thể
chỉ rõ các giá trị bit cho các ngõ vào và ngõ ra của hộp. Ta còn có thể kết nối đến các
hộp logic khác và tạo ra một tổ hợp liên hợp logic riêng. Sau khi hộp được đặt trong
mạng, ta có thể kéo công cụ “Insert binary input” từ thanh công cụ “Favorites” hay từ
cây lệnh và sau đó thả nó lên trên phía đầu vào của hộp để thêm nhiều ngõ vào. Ta còn
có thể nhấp chuột phải lên bộ kết nối ngõ vào của hộp và chọn “Insert input”.

Các ngõ vào và ngõ ra của hộp có thể được kết nối đến một hộp logic khác, hay
ta có thể nhập vào một địa chỉ bit hay tên ký hiệu bit đối với một ngõ vào chưa được
kết nối. Khi lệnh trong hộp được thực thi, trạng thái ngõ vào hiện tại được áp dụng cho
mạch logic hộp nhị phân và nếu đúng thì ngõ ra của hộp sẽ là đúng.

Thông số Kiểu dữ liệu Miêu tả

IN1, IN2 Bool Bit ngõ vào

 Tất cả các ngõ vào của hộp AND phải là “TRUE” để ngõ ra là “TRUE”.
 Bất kỳ ngõ vào nào của hộp OR phải là “TRUE” để ngõ ra là “TRUE”.
 Một số lẻ các ngõ vào của hộp XOR phải là “TRUE” để ngõ ra là “TRUE”.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-3


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Bộ đảo logic NOT

Đối với lập tình FBD, ta có thể kéo công cụ “Negate binary input” từ thanh
công cụ “Favorites” hay từ cây lệnh và sau đó thả nó lên một ngõ vào hay ngõ ra để
tạo ra một bộ đảo logic trên bộ kết nối của hộp đó.

Tiếp điểm NOT (LAD) chuyển đổi trạng thái logic của đầu vào dòng tín hiệu.

 Nếu không có dòng tín hiệu vào trong tiếp điểm NOT, sẽ có dòng tín hiệu đi ra.
 Nếu có dòng tín hiệu vào trong tiếp điểm NOT, sẽ không có dòng tín hiệu đi ra.

Cuộn dây ngõ ra (LAD)

Lệnh xuất cuộn dây sẽ ghi một giá trị cho một bit ngõ ra. Nếu bit ngõ ra ta chỉ
ra sử dụng định danh bộ nhớ Q, thì sau đó CPU sẽ chuyển bit ngõ ra trong thanh ghi
ảnh tiến trình về on hoặc off, thiết lập giá trị bit được gán bằng với trạng thái luồng tín
hiệu. Các tín hiệu ngõ ra cho cơ cấu điều khiển được nối đến các đầu cực Q của S7 –
1200. Trong chế độ RUN, hệ thống CPU quét một cách liên tục các tín hiệu ngõ vào,
xử lý các trạng thái ngõ vào theo chương trình logic, và sau đó tác động trở lại bằng
cách thiết lập các giá trị trạng thái ngõ ra mới trong thanh ghi ngõ ra ảnh tiến trình.
Sau mỗi chu trình thực thi chương trình, hệ thống CPU chuyển phản ứng trạng thái
ngõ ra mới được lưu trữ trong thanh ghi ảnh tiến trình đến các đầu cực nối dây ngõ ra.

Ta có thể xác định một kết quả ghi tức thời của một ngõ ra vật lý bằng cách sử
dụng “:P” theo sau độ dịch chuyển Q (ví dụ “%Q3.4:P”). Đối với một kết quả ghi tức

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-4


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

thời, các giá trị dữ liệu bit được ghi đến ngõ ra ảnh tiến trình và trực tiếp đến ngõ ra
vật lý.

Thông số Kiểu dữ liệu Miêu tả

OUT Bool Bit được gán giá trị

 Nếu có luồng tín hiệu chạy qua một cuộn dây ngõ ra, bit ngõ ra được đặt lên 1.
 Nếu không có luồng tín hiệu chạy qua một cuộn dây ngõ ra, bit ngõ ra được đặt
về 0.
 Nếu có luồng tín hiệu chạy qua một cuộn dây ngõ ra đảo, bit ngõ ra được đặt về
0.
 Nếu không có luồng tín hiệu chạy qua một cuộn dây ngõ ra đảo, bit ngõ ra được
đặt lên 1.

Hộp gán ngõ ra (FBD)

Trong lập trình FBD, các cuộn dây LAD được chuyển đổi thành các hộp gán (=
và /=) mà ta có thể định rõ một địa chỉ bit cho hộp ngõ ra. Các ngõ vào và ngõ ra của
hộp có thể được kết nối với khối logic khác hay ta có thể nhập vào một địa chỉ bit.

Thông số Kiểu dữ liệu Miêu tả

OUT Bool Bit được gán giá trị

 Nếu tín hiệu vào của hộp ngõ ra là 1, bit OUT được đặt lên 1.
 Nếu tín hiệu vào của hộp ngõ ra là 0, bit OUT được đặt về 0.
 Nếu tín hiệu vào của hộp ngõ ra đảo là 1, bit OUT được đặt về 0.
 Nếu tín hiệu vào của hộp ngõ ra đảo là 0, bit OUT được đặt lên 1.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-5


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.1.1. Các lệnh Set (đặt) và Reset (đặt lại).

S và R: Set và Reset 1 bit

 Khi lệnh S (Set) được kích hoạt, giá trị dữ liệu ở địa chỉ OUT được đặt lên 1.
Khi lệnh S không được kích hoạt, ngõ ra OUT không bị thay đổi.
 Khi lệnh R (Reset) được kích hoạt, giá trị dữ liệu ở địa chỉ OUT được đặt về 0.
Khi lệnh R không được kích hoạt, ngõ ra OUT không bị thay đổi.
 Những lệnh này có thể được đặt tại bất cứ vị trí nào trong mạch.

Thông số Kiểu dữ liệu Miêu tả

IN Bool Vị trí bit được giám sát

OUT Bool Vị trí bit được đặt hoặc đặt lại

SET_BF và RESET_BF: Set và Reset một trƣờng bit

Thông số Kiểu dữ liệu Miêu tả

n Constant Số lượng các bit để ghi

Phần tử bắt đầu của một trường bit được đặt


OUT Phần tử của một mảng Boolean
hay đặt lại. Ví dụ #MyArray[3]

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-6


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

 Khi SET_BF được kích hoạt, một giá trị dữ liệu bằng 1 được gán cho “n” bit
bắt đầu tại địa chỉ OUT. Khi SET_BF không được kích hoạt, địa chỉ OUT
không bị thay đổi.
 RESET_BF ghi một giá trị dữ liệu bằng 0 đến “n” bit bắt đầu tại địa chỉ OUT.
Khi RESET_BF không được kích hoạt, địa chỉ OUT không bị thay đổi.
 Những lệnh này phải là lệnh nằm về bên phải trong một nhánh.

RS và SR: các mạch chốt của bit set trội và reset trội

RS là một mạch chốt set trội mà set chiếm ưu thế. Nếu tín hiệu set (S1) và reset
(R) đều là đúng, địa chỉ ngõ ra OUT sẽ bằng 1.

SR là một mạch chốt reset trội mà reset chiếm ưu thế. Nếu tín hiệu set (S) và
reset (R1) đều là đúng thì địa chỉ ngõ ra OUT sẽ là 0.

Thông số OUT định rõ địa chỉ bit được set hay reset. Ngõ ra OUT tùy chọn (Q )
phản ánh trạng thái tín hiệu của địa chỉ OUT.

Thông số Kiểu dữ liệu Miêu tả

S, S1 Bool Ngõ vào set; số “1” biểu thị sự ưu thế

R, R1 Bool Ngõ vào reset; số “1” biểu thị sự ưu thế

OUT Bool Ngõ ra của bit được gán “OUT”

Q Bool Trạng thái kèm theo của bit “OUT”

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-7


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Lệnh S1 R Bit “OUT”

0 0 Trạng thái kề trước

0 1 0
RS
1 0 1

1 1 1

S R1 Bit “OUT”

0 0 Trạng thái kề trước

0 1 0
SR
1 0 1

1 1 0

5.1.1.2. Các lệnh ngưỡng dương và âm.

Các bộ dò quá độ dƣơng và âm

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-8


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Thông số Kiểu dữ liệu Miêu tả

M_BIT Bool Bit nhớ trong đó trạng thái kề trước của ngõ vào được lưu trữ

IN Bool Bit ngõ vào mà ngưỡng quá độ của nó là dùng để phát hiện

OUT Bool Bit ngõ ra, cho biết một ngưỡng quá độ đã được phát hiện

Luồng tín hiệu hay bit ngõ vào mà ngưỡng quá độ của chúng là
CLK Bool
dùng để phát hiện

Q Bool Ngõ ra biểu thị một ngưỡng đã được phát hiện

Tiếp điểm P (LAD): trạng thái của tiếp điểm này là “TRUE” khi một sự quá độ
dương (từ OFF sang ON) được phát hiện trên bit “IN” được gán. Trạng thái logic của
tiếp điểm sau đó được kết hợp với dòng tín hiệu trong mạch để thiết lập trạng thái ngõ
ra của dòng tín hiệu. Tiếp điểm P có thể được định vị tại bất kỳ vị trí nào trong mạch,
ngoại trừ vị trí kết thúc của một nhánh.

Tiếp điểm N (LAD): trạng thái của tiếp điểm này là “TRUE” khi một sự quá độ
âm (từ ON sang OFF) được phát hiện trên bit được gán. Trạng thái logic của tiếp điểm
sau đó được kết hợp với dòng tín hiệu trong mạch để thiết lập trạng thái ngõ ra của
dòng tín hiệu. Tiếp điểm N có thể được định vị tại bất kỳ vị trí nào trong mạch, ngoại
trừ vị trí kết thúc của một nhánh.

Hộp P (FBD): trạng thái logic ngõ ra là “TRUE” khi một sự quá độ dương (từ
OFF sang ON) được phát hiện trên bit ngõ vào được gán. Hộp P chỉ có thể được định
vị tại vị trí bắt đầu của một nhánh.

Hộp N (FBD): trạng thái logic ngõ ra là “TRUE” một sự quá độ âm (từ ON
sang OFF) được phát hiện trên bit ngõ vào được gán. Hộp N chỉ có thể được định vị tại
vị trí bắt đầu của một nhánh.

Cuộn dây P (LAD): bit được gán “OUT” là “TRUE” khi một sự quá độ dương
(từ OFF sang ON) được phát hiện trên dòng tín hiệu đi vào cuộn dây. Dòng tín hiệu
trong mạch luôn chạy xuyên qua cuộn dây, đóng vai trò như trạng thái ngõ ra dòng tín
hiệu. Cuộn dây P có thể được định vị tại bât kỳ vị trí nào trong mạch.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-9


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Cuộn dây N (LAD): bit được gán “OUT” là “TRUE” khi một sự quá độ âm (từ
ON sang OFF) được phát hiện trên dòng tín hiệu đi vào cuộn dây. Dòng tín hiệu trong
mạch luôn chạy xuyên qua cuộn dây, đóng vai trò như trạng thái ngõ ra dòng tín hiệu.
Cuộn dây N có thể được định vị tại bât kỳ vị trí nào trong mạch.

Hộp P= (FBD): bit được gán “OUT” là “TRUE” khi một sự quá độ dương (từ
OFF sang ON) được phát hiện trên trạng thái logic tại kết nối ngõ vào của hộp hoặc
trên sự gán bit ngõ vào, nếu hộp này được định vị tại điểm khởi đầu của một nhánh.
Trạng thái logic ngõ vào luôn chạy xuyên qua hộp giống như trạng thái logic ngõ ra.
Hộp P= có thể được định vị tại bất kỳ vị trí nào trong nhánh.

Hộp N= (FBD): bit được gán “OUT” là “TRUE” khi một sự quá độ âm (từ ON
sang OFF) được phát hiện trên trạng thái logic tại kết nối ngõ vào của hộp hoặc trên sự
gán bit ngõ vào, nếu hộp này được định vị tại điểm khởi đầu của một nhánh. Trạng
thái logic ngõ vào luôn chạy xuyên qua hộp giống như trạng thái logic ngõ ra. Hộp N=
có thể được định vị tại bất kỳ vị trí nào trong nhánh.

P_TRIG (LAD/FBD): dòng tín hiệu ngõ ra Q hoặc trạng thái logic là “TRUE”
khi một sự quá độ dương (từ OFF sang ON) được phát hiện trên trạng thái ngõ vào
CLK (FBD) hay trên dòng tín hiệu CLK (LAD). Trong ngôn ngữ LAD, lệnh P_TRIG
không thể được định vị tại vị trí khởi đầu hay kết thúc của một mạch. Trong ngôn ngữ
FBD, lệnh P_TRIG có thể được định vị tại bất kỳ vị trí nào, ngoại trừ vị trí cuối của
một nhánh.

N_TRIG (LAD/FBD): dòng tín hiệu ngõ ra Q hoặc trạng thái logic là “TRUE”
khi một sự quá độ âm (từ ON sang OFF) được phát hiện trên trạng thái ngõ vào CLK
(FBD) hay trên dòng tín hiệu CLK (LAD). Trong ngôn ngữ LAD, lệnh N_TRIG
không thể được định vị tại vị trí khởi đầu hay kết thúc của một mạch. Trong ngôn ngữ
FBD, lệnh N_TRIG có thể được định vị tại bất kỳ vị trí nào, ngoại trừ vị trí cuối của
một nhánh.

Tất cả các lệnh ngưỡng sử dụng một bit nhớ (M_BIT) để lưu trữ trạng thái kề
trước của tín hiệu ngõ vào đang được giám sát. Một ngưỡng được phát hiện bằng cách
so sánh trạng thái của tín hiệu ngõ vào với trạng thái của bit nhớ. Nếu các trạng thái
cho biết rằng một sự thay đổi của tín hiệu theo hướng cần quan tâm thì sau đó một
CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-10
www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

ngưỡng được thuật lại bằng việc ghi giá trị ngõ ra “TRUE”. Nếu không, ngõ ra được
ghi là “FALSE”.

Lƣu ý

Các lệnh ngưỡng sẽ đánh giá các giá trị của ngõ vào và bit nhớ trong mỗi lần
chúng được thực thi, kể cả lần thực thi đầu tiên. Ta phải tính đến các trạng thái ban
đầu của ngõ vào và bit nhớ trong thiết kế chương trình để cho phép hay để tránh sự
phát hiện ngưỡng trên lần quét đầu tiên.

Do bit nhớ phải được duy trì từ một lần thực thi đến lần thực thi tiếp theo, ta
nên dùng một bit đơn nhất cho mỗi lệnh ngưỡng, và không nên dùng bit này tại bất kỳ
vị trí nào khác trong chương trình. Ngoài ra ta còn nên tránh bộ nhớ tạm thời và bộ
nhớ mà có thể bị tác động đến bởi những hàm hệ thống khác, ví dụ như một cập nhật
I/O. Chỉ sử dụng bộ nhớ M, bộ nhớ DB tổng thể hay bộ nhớ Static (trong DB mẫu) cho
việc gán vùng nhớ M_BIT.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-11


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.2. Các bộ định thì (Timer).

Ta sử dụng các lệnh định thì để tạo ra các trì hoãn thời gian được lập trình.

 TP : bộ định thì xung phát ra một xung với bề rộng xung được đặt trước.
 TON : ngõ ra của bộ định thì ON – delay Q được đặt lên ON sau một sự trì
hoãn thời gian đặt trước.
 TOF : ngõ ra Q của bộ định thì OFF – delay được đặt lại về OFF sau một sự
trì hoãn thời gian đặt trước.
 TONR : ngõ ra bộ định thì có khả năng nhớ ON – delay được đặt lên ON sau
một trì hoãn thời gian đặt trước. Thời gian trôi qua được tích lũy qua nhiều giai
đoạn định thì cho đến khi ngõ vào R được sử dụng để đặt lại thời gian trôi qua.
 RT : đặt lại một bộ định thì bằng cách xóa dữ liệu thời gian được lưu trữ
trong khối dữ liệu tức thời của bộ định thì xác định.

Mỗi bộ định thì sử dụng một cấu trúc được lưu trữ trong một khối dữ liệu nhằm
duy trì dữ liệu định thì. Ta gán giá trị khối dữ liệu khi lệnh định thì được đặt trong
trình soạn thảo.

Khi ta đặt các lệnh định thì trong một khối hàm, ta có thể lựa chọn tùy chọn
khối dữ liệu Multi – instance, các tên cấu trúc định thì có thể khác nhau với những cấu
trúc dữ liệu riêng biệt, nhưng dữ liệu định thì được chứa trong một khối dữ liệu đơn và
không cần một khối dữ liệu riêng biệt cho mỗi bộ định thì. Điều này làm giảm thời
gian xử lý và nơi lưu trữ cần thiết cho việc xử lý các bộ định thì. Không có mối tương
tác giữa những cấu trúc dữ liệu định thì trong khối dữ liệu Multi – instance được chia
sẻ.

Các bộ định thì TP, TON và TOF có các thông số ngõ


vào và ngõ ra giống nhau.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-12


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Bộ định thì TONR có thông số ngõ vào đặt lại được


thêm vào R. Ta tạo ra một “Timer name” riêng chỉ định
Data Block định thì và miêu tả mục đích của bộ định
thì này trong chu trình.

Lệnh RT đặt lại dữ liệu định thì cho bộ định thì được
chỉ định.

Thông số Kiểu dữ liệu Miêu tả

IN Bool Ngõ vào bộ định thì cho phép

R Bool Đặt lại thời gian trôi qua của TONR về 0

PT Bool Ngõ vào giá trị thời gian đặt trước

Q Bool Ngõ ra bộ định thì

ET Time Ngõ ra giá trị thời gian trôi qua

Khối dữ liệu định thì DB Chỉ ra bộ định thì nào để đặt lại với lệnh RT

Thông số IN khởi động và dừng các bộ định thì:

 Sự quá độ từ 0 lên 1 của thông số IN làm khởi động các bộ định thì TP, TON và
TONR.
 Sự quá độ từ 1 về 0 của thông số IN làm khởi động bộ định thì TOF.

Bảng dưới đây thể hiện tác động của những sự thay đổi giá trị trong các thông
số PT và IN.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-13


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Bộ định thì Những thay đổi trong các thông số PT và IN

 Thay đổi PT không có ảnh hưởng trong khi bộ định thì vận hành.
TP
 Thay đổi IN không có ảnh hưởng trong khi bộ định thì vận hành.

 Thay đổi PT không có ảnh hưởng trong khi bộ định thì vận hành.
TON  Thay đổi IN sang “FALSE”, trong khi bộ định thì vận hành, sẽ đặt lại
và dừng bộ định thì.

 Thay đổi PT không có ảnh hưởng trong khi bộ định thì vận hành.
TOF  Thay đổi IN sang “TRUE”, trong khi bộ định thì vận hành, sẽ đặt lại
và dừng bộ định thì.

 Thay đổi PT không có ảnh hưởng trong khi bộ định thì vận hành,
nhưng có ảnh hưởng khi định thì khôi phục lại.
 Thay đổi IN sang “FALSE”, trong khi bộ định thì vận hành, sẽ dừng
TONR
bộ định thì nhưng không đặt lại bộ định thì. Thay đổi IN trở lại sang
“TRUE” sẽ làm bộ định thì bắt đầu tính toán thời gian từ giá trị thời
gian được tích lũy.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-14


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Các giá trị TIME.

Các giá trị PT (preset time – thời gian đặt trước) và ET (elapsed time – thời
gian đã trôi qua) được lưu trữ trong bộ nhớ như các số nguyên double có dấu, tượng
trưng cho những mili giây thời gian. Dữ liệu TIME sử dụng bộ định danh T# và có thể
được nhập vào như một đơn vị thời gian thuần túy “T#200ms” hay như các đơn vị thời
gian phức hợp “T#2s_200ms”.

Kiểu dữ liệu Kích cỡ Phạm vi số hợp lệ

T#-24d_20h_31m_23s_648ms đến
TIME 32 bit T#24d_20h_31m_23s_647ms
– 2.147.483.648 ms đến + 2.147.483.647 ms

Lƣu ý

Vùng giá trị âm của kiểu dữ liệu TIME được thể hiện ở trên không thể được sử
dụng với các lệnh định thì. Các giá trị PT (thời gian đặt trước) âm được đặt về 0 khi
lệnh định thì được thực thi. ET (thời gian đã trôi qua) luôn luôn là một giá trị dương.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-15


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-16


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.3. Các bộ đếm (Counter).


5.1.3.1. Các bộ đếm.

Ta sử dụng các lệnh bộ đếm để đếm các sự kiện chương trình bên trong và các
sự kiện xử lý bên ngoài:

 CTU: bộ đếm đếm lên.


 CTD: bộ đếm đếm xuống.
 CTUD: bộ đếm đếm lên và xuống.

Mỗi bộ đếm sử dụng một cấu trúc được lưu trữ trong một khối dữ liệu nhằm
duy trì dữ liệu đếm. Ta gán giá trị khối dữ liệu khi lệnh đếm được đặt trong trình soạn
thảo. Các lệnh này sử dụng các bộ đếm phần mềm với tốc độ đếm cực đại bị giới hạn
bởi tốc độ sự thực thi của OB mà nó được chứa trong đó. OB mà các lệnh được đặt
trong nó phải được thực thi thường xuyên đủ để phát hiện tất cả các chuyển đổi của
các ngõ vào CU hay CD.

Khi đặt các lệnh bộ đếm vào trong một khối hàm, ta có thể lựa chọn tùy chọn
khối dữ liệu Multi – instance, các tên gọi cấu trúc bộ đếm có thể khác với các cấu trúc
dữ liệu riêng biệt, nhưng dữ liệu bộ đếm thì được chứa trong một khối dữ liệu đơn và
không cần một khối dữ liệu riêng biệt cho mỗi bộ đếm. Điều này làm giảm thời gian
xử lý và giảm nơi lưu trữ dữ liệu cần cho các bộ đếm. Không có mối tương tác nào
giữa những cấu trúc dữ liệu bộ đếm trong khối dữ liệu Multi – instance được chia sẻ.

Lựa chọn kiểu dữ liệu giá trị đếm từ danh sách thả
xuống dưới tên hộp.

Ta tạo ra một “Counter name” riêng chỉ định Data


Block bộ đếm và miêu tả mục đích của bộ đếm này
trong chu trình.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-17


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Thông số Kiểu dữ liệu Miêu tả

CU, CD Bool Đếm lên hay đếm xuống, bởi một lần đếm

R (CTU, CTUD) Bool Đặt lại giá trị đếm về 0

LOAD (CTD, CTUD) Bool Nạp điều khiển cho giá trị đặt trước

SInt, Int, DInt,


PV Giá trị đếm đặt trước
USInt, UInt, UDInt

Q, QU Bool Đúng nếu CV >= PV

QD Bool Đúng nếu CV <= 0

SInt, Int, DInt,


CV Giá trị đếm hiện thời
USInt, UInt, UDInt

Phạm vi số của các giá trị đếm bằng số phụ thuộc vào kiểu dữ liệu mà ta lựa
chọn. Nếu giá trị đếm là một kiểu số nguyên không dấu, ta có thể đếm xuống về 0
hoặc đếm lên đến giới hạn của phạm vi. Nếu giá trị đếm là một số nguyên có dấu, ta có
thể đếm xuống đến giới hạn số nguyên âm và đếm lên đến giới hạn số nguyên dương.

CTU: CTU đếm lên 1 đơn vị khi giá trị của thông số CU thay đổi từ 0 lên 1.
Nếu giá trị của thông số CV (Current count value – giá trị đếm hiện thời) lớn hơn hoặc
bằng giá trị thông số PV (Preset count value – giá trị đếm đặt trước) thì thông số ngõ
ra của bộ đếm Q = 1. Nếu giá trị của thông số đặt lại R thay đổi từ 0 lên 1, giá trị đếm
hiện thời được xóa về 0. Hình dưới đây thể hiện một giản đồ định thì CTU với một giá
trị đếm là số nguyên không dấu (với PV = 3).

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-18


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

CTD: CTD đếm xuống 1 đơn vị khi giá trị của thông số CD thay đổi từ 0 lên 1.
Nếu giá trị của thông số CV (Current count value – giá trị đếm hiện thời) nhỏ hơn
hoặc bằng 0 thì thông số ngõ ra của bộ đếm Q = 1. Nếu giá trị của thông số LOAD
thay đổi từ 0 lên 1, giá trị tại thông số PV (Preset count value – giá trị đặt trước) được
nạp đến bộ đếm như một giá trị CV mới. Hình dưới đây thể hiện một giản đồ định thì
CTD với một giá trị đếm là số nguyên không dấu (với PV = 3).

CTUD: CTUD đếm lên hay xuống 1 đơn vị theo sự quá độ từ 0 lên 1 của ngõ
vào đếm lên (Count up – CU) hay đếm xuống (Count down – CD). Nếu giá trị của
thông số CV (giá trị đếm hiện thời) lớn hơn hoặc bằng giá trị thông số PV (giá trị đếm
đặt trước) thì thông số ngõ ra của bộ đếm QU = 1. Nếu giá trị của thông số CV nhỏ
hơn hay bằng 0, thông số ngõ ra của bộ đếm QD = 1. Nếu giá trị của thông số LOAD
thay đổi từ 0 lên 1, giá trị tại thông số PV được nạp đến bộ đếm như một giá trị CV
mới. Nếu giá trị của thông số đặt lại R thay đổi từ 0 lên 1, giá trị đếm hiện thời sẽ được
xóa về 0. Hình dưới đây cho thấy một biểu đồ đếm thời gian CTUD với một giá trị
đếm số nguyên không dấu (với PV = 4).
CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-19
www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.3.2. Lệnh CTRL_HSC.

Lệnh CTRL_HSC điều khiển các bộ đếm tốc độ cao được sử dụng để đếm các
sự kiện xuất hiện nhanh hơn tốc độ thực thi OB. Tốc độ đếm của các lệnh bộ đếm
CTU, CTD và CTUD bị giới hạn bởi tốc độ thực thi của OB mà chúng được chứa
trong đó.

Một ứng dụng thông dụng của các bộ đếm tốc độ cao là đếm các xung được
sinh ra bởi một máy phát xung có trục điều khiển chuyển động.

Mỗi lệnh CTRL_HSC sử dụng một cấu trúc


đsược lưu trữ trong một khối dữ liệu để duy trì dữ liệu.
Ta gán giá trị khối dữ liệu khi lệnh CTRL_HSC được
đặt trong trình soạn thảo

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-20


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Kiểu Kiểu dữ
Thông số Miêu tả
thông số liệu

HSC IN HW_HSC Bộ định danh HSC

DIR IN Bool 1 = yêu cầu hướng đếm mới

CV IN Bool 1 = yêu cầu đặt một giá trị đếm mới

RV IN Bool 1 = yêu cầu đặt một giá trị tham chiếu mới

1 = yêu cầu đặt một giá trị chu kỳ mới (chỉ


PERIOD IN Bool
dành cho chế độ đo tần số)
Hướng đếm mới:
NEW_DIR IN Int
1 = tiến; – 1 = lùi

NEW_CV IN Dint Giá trị đếm mới

NEW_RV IN Dint Giá trị tham chiếu mới

Giá trị chu kỳ mới (s): .01, .1 hay 1 (chỉ dành


NEW_PERIOD IN Int
cho chế độ đo tần số)

BUSY OUT Bool Chức năng bận

STATUS OUT Word Mã điều kiện thực thi

Ta phải cấu hình các bộ đếm tốc độ cao trong thiết lập sự cấu hình thiết bị PLC
cho đề án trước khi có thể sử dụng các bộ đếm tốc độ cao trong chương trình. Việc
thiết lập cấu hình thiết bị HSC lựa chọn các chế độ đếm, các kết nối I/O, phân vùng
ngắt, và sự vận hành như một bộ đếm tốc độ cao hoặc như một thiết bị dùng đo tần số
xung. Ta có thể vận hành bộ đếm tốc độ cao với có hay không có điều khiển chương
trình.

Nhiều thông số cấu hình bộ đếm tốc độ cao chỉ được thiết lập trong cấu hình
thiết bị cho đề án. Một vài thông số bộ đếm tốc độ cao được khởi chạy trong cấu hình
thiết bị đề án, nhưng không thể được chỉnh sửa về sau dưới sự điều khiển chương
trình.

Các thông số của lệnh CTRL_HSC cung cấp sự điều khiển chương trình của
tiến trình đếm:
CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-21
www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

 Thiết lập hướng đếm đến một giá trị NEW_DIR.


 Thiết lập giá trị đếm hiện thời đến một giá trị NEW_CV.
 Thiết lập giá trị tham chiếu đến một giá trị NEW_RV.
 Thiết lập giá trị chu kỳ (cho chế độ đo tần số) đến một giá trị NEW_PERIOD.

Nếu các giá trị cờ boolean sau đây được đặt lên 1 khi lệnh CTRL_HSC được
thực thi, giá trị NEW_xxx tương ứng được nạp đến bộ đếm. Nhiều yêu cầu (tức là có
nhiều hơn một cờ được đặt tại cùng một thời điểm) được xử lý trong một sự thực thi
đơn thuần của lệnh CTRL_HSC.

 DIR = 1: yêu cầu nạp một giá trị NEW_DIR; DIR = 0: không thay đổi.
 CV = 1: yêu cầu nạp một giá trị NEW_CV; CV = 0: không thay đổi.
 RV = 1: yêu cầu nạp một giá trị NEW_RV; RV = 0: không thay đổi.
 PERIOD = 1: yêu cầu nạp một giá trị NEW_PERIOD; PERIOD = 0: không
thay đổi.

Lệnh CTRL_HSC thường được đặt trong một OB ngắt phần cứng, OB này
được thực hiện khi sự kiện ngắt phần cứng bộ đếm được kích hoạt. Lấy ví dụ, nếu một
sự kiện CV = RV kích hoạt việc ngắt bộ đếm, một khối mã OB ngắt phần cứng sau đó
sẽ thực thi lệnh CTRL_HSC và có thể thay đổi giá trị tham chiếu bằng cách nạp một
giá trị NEW_RV.

Giá trị đếm hiện thời thì không có sẵn trong các thông số của CTRL_HSC. Địa
chỉ ảnh tiến trình lưu trữ giá trị đếm hiện thời được gán giá trị trong suốt sự cấu hình
phần cứng bộ đếm tốc độ cao. Ta có thể sử dụng chương trình logic để đọc trực tiếp
giá trị đếm và giá trị được trả lại chương trình sẽ là một số đếm đúng trong lúcmà bộ
đếm đã được đọc. Bộ đếm sẽ tiếp tục đếm các sự kiện tốc độ cao. Vì vậy, giá trị đếm
thực tế có thể thay đổi trước khi chương trình hoàn thành một chu trình sử dụng một
giá trị đếm cũ.

Các chi tiết thông số CTRL_HSC:

 Nếu một cập nhật của một giá trị thông số không được yêu cầu, các giá trị ngõ
vào tương ứng sẽ bị bỏ qua.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-22


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

 Thông số DIR chỉ có hợp lệ nếu mệnh lệnh đếm đã cấu hình được đặt về “User
program (internal direction control)”. Ta xác định sử dụng thông số này trên
cấu hình thiết bị HSC như thế nào.
 Đối với một HSC S7 – 1200 trên CPU hay trên Signal Board, thông số BUSY
luôn luôn mang giá trị là 0.

Các mã điều kiện: trong trường hợp có lỗi, ENO được đặt về 0 và ngõ ra STATUS
chứa một mã điều kiện.

Giá trị STATUS


Miêu tả
(W#16#...)

0 Không có lỗi

80A1 Nhận dạng HSC không ghi địa chỉ HSC

80B1 Giá trị không phù hợp trong NEW_DIR

80B2 Giá trị không phù hợp trong NEW_CV

80B3 Giá trị không phù hợp trong NEW_RV

80B4 Giá trị không phù hợp trong NEW_PERIOD

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-23


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.3.3. Hoạt động của bộ đếm tốc độ cao.

Một bộ đếm tốc độ cao (HSC) có thể được sử dụng như một ngõ vào cho một
bộ mã hóa trục tăng. Bộ mã hóa trục cung cấp một số lượng xác định sự đếm trên mỗi
vòng quay và một xung đặt lại xuất hiện chỉ một lần cho mỗi vòng. Xung đồng hồ và
xung đặt lại từ bộ mã hóa trục cung cấp các ngõ vào đến HSC.

Một HSC được nạp với thiết lập trước đầu tiên trong số các thiết lập trước
(preset), và các ngõ ra được kích hoạt cho chu trình thời gian mà ở đó giá trị đếm hiện
thời nhỏ hơn thiết lập trước hiện thời. HSC mang lại một sự ngắt khi giá trị đếm hiện
thời bằng với giá trị thiết lập trước, khi sự đặt lại xuất hiện, và còn khi có một thay đổi
định hướng.

Vì mỗi sự kiện ngắt với giá trị đếm hiện thời bằng với giá trị đặt trước xuất
hiện, một sự đặt lại mới được nạp và trạng thái kế tiếp của các ngõ ra được thiết lập.
Khi sự kiện ngắt đặt lại xuất hiện, sự đặt lại đầu tiên và các trạng thái ngõ ra đầu tiên
được thiết lập, và chu trình được lặp lại.

Do các ngắt xuất hiện với một tốc độ thấp hơn nhiều so với tốc độ đếm của
HSC, việc điều khiển chính xác của các vận hành với tốc độ cao có thể được thực thi
với ảnh hưởng nhỏ một cách tương đối đến chu trình quét của CPU. Phương pháp với
phần ngắt kèm theo cho phép mỗi lần nạp một thiết lập trước được thực hiện trong một
đoạn chương trình ngắt riêng để điều khiển trạng thái dễ dàng. (Như một sự lựa chọn,
tất cả các sự kiện ngắt có thể được thực thi trong một đoạn chương trình ngắt đơn
thuần.)

Lựa chọn chức năng cho bộ đếm tốc độ cao HSC

Tất cả các HSC hoạt động theo cách thức giống nhau đối với một chế độ bộ
đếm tương ứng trong vận hành. Có 4 kiểu cơ bản của HSC:

 Bộ đếm một pha với điều khiển định hướng bên trong
 Bộ đếm một pha với điều khiển định hướng bên ngoài
 Bộ đếm hai pha với 2 ngõ vào đồng hồ đếm (clock)
 Bộ đếm trạng thái vuông pha A/B

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-24


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Ta có thể sử dụng mỗi kiểu HSC với có/không có ngõ vào đặt lại. Khi ta kích
hoạt ngõ vào đặt lại (với một vài hạn chế, xem ở bảng dưới đây), giá trị hiện thời được
xóa và được giữ trống cho đến khi ta giải hoạt ngõ vào đặt lại.

 Chức năng tần số: một chế độ HSC cho phép HSC được cấu hình (kiểu đếm) để
báo cáo lại tần số thay vì giá trị đếm hiện tại các xung. Có sẵn 3 thời kỳ đo tần
số khác nhau: 0,01, 0,1 và 1,0 giây.

Thời kỳ đo tần số xác định mức độ HSC thường xuyên tính toán và báo cáo một
giá trị tần số mới. Tần số được báo cáo là một giá trị trung bình được xác định bởi tổng
số lượng sự đếm trong thời kỳ đo cuối cùng. Nếu tần số thay đổi một cách nhanh
chóng, giá trị được báo cáo sẽ là một trung gian giữa tần số cao nhất và thấp nhất xuất
hiện trong suốt thời kỳ đo. Tần số luôn được xác định theo Hertz (số lượng xung trong
mỗi giây) bất chấp sự thiết lập thời kỳ đo tần số.

 Các chế độ và các ngõ vào của bộ đếm: bảng dưới đây thể hiện các ngõ vào
được sử dụng cho đồng hồ, điều khiển định hướng và các chức năng đặt lại liên
quan đến HSC.

Một ngõ vào giống nhau không thể được sử dụng cho hai chức năng khác nhau,
nhưng bất kỳ ngõ vào nào mà đang không được sử dụng bởi chế độ hiện thời HSC của
nó thì có thể được sử dụng cho một mục đích khác. Ví dụ, nếu HSC1 ở trong chế độ sử
dụng các ngõ vào gắn liền nhưng không sử dụng đặt lại bên ngoài (I0.3) thì I0.3 có thể
được sử dụng cho các ngắt ở ngưỡng hoặc cho HSC2.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-25


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Miêu tả Gán ngõ vào mặc định Chức năng

I0.0 I0.1
Tích hợp hay I0.3
I4.0 I4.1
HSC1 Signal Board hay I4.3
1
Xung PTO Mệnh lệnh
màn hình PTO 0 _
0 PTO 0
I0.2 I0.3
Tích hợp hay I0.1
I4.2 I4.3
HSC: Signal Board hay I4.1
1
Xung PTO Mệnh lệnh
màn hình PTO 1 _
1 PTO 1
HSC
HSC32 Tích hợp I0.4 I0.5 I0.7

HSC43 Tích hợp I0.6 I0.7 I0.5

Tích hợp hay I1.0 I1.1 I1.2


HSC54
Signal Board I4.0 I4.1 I4.3

Tích hợp hay I1.3 I1.4 I1.5


HSC64
Signal Board I4.2 I4.3 I4.1

Bộ đếm một pha với điều Đồng hồ _ _ Đếm hay tần số

khiển định hướng bên trong đếm Reset Đếm

Bộ đếm một pha với điều Đồng hồ Mệnh lệnh _ Đếm hay tần số

khiển định hướng bên ngoài đếm Reset Đếm

Chế độ Đồng hồ Đồng hồ đếm _ Đếm hay tần số


Bộ đếm hai pha với 2 tín hiệu
đếm lên xuống
vào clock Reset Đếm

Bộ đếm trạng thái vuông pha Pha A Pha B _ Đếm hay tần số
A/B Pha Z Đếm
Giám sát các tín hiệu ra Đồng hồ
Mệnh lệnh _ Đếm
chuỗi xung (PTO)1 đếm

1
Việc giám sát các ngõ ra chuỗi xung luôn luôn sử dụng đồng hồ đếm và mệnh lệnh.
Nếu ngõ ra PTO tương ứng chỉ được cấu hình cho xung, ngõ ra của lệnh thông thường
được thiết lập cho việc đếm giá trị dương.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-26


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

2
HSC3 với một ngõ vào đặt lại thì không dùng được cho CPU 1211C vốn chỉ hỗ trợ 6
ngõ vào tích hợp.

3
HSC4 không dùng được cho CPU 1211C vốn chỉ hỗ trợ 6 ngõ vào tích hợp.

4
HSC5 và HSC6 chỉ được hỗ trợ bởi CPU 1211C và CPU 1212C khi một bảng mạch
tín hiệu được lắp đặt.

Truy xuất giá trị hiện thời cho HSC

CPU lưu trữ giá trị hiện thời của mỗi HSC trong một địa chỉ ngõ vào (I). Bảng
dưới đây thể hiện các địa chỉ mặc định được gán cho giá trị hiện hành của mỗi HSC.
Ta có thể thay đổi địa chỉ I của giá trị hiện thời bằng cách chỉnh sửa các thuộc tính của
CPU trong mục Device Configuration.

Bộ đếm tốc độ cao Kiểu dữ liệu Địa chỉ mặc định

HSC1 DInt ID1000

HSC2 DInt ID1004

HSC3 DInt ID1008

HSC4 DInt ID1012

HSC5 DInt ID1016

HSC6 DInt ID1020

Các điểm I/O số đƣợc gán đến các thiết bị HSC không thể bị tác động.

Các điểm I/O số được sử dụng bởi các thiết bị đếm tốc độ cao được gán giá trị
trong suốt sự cấu hình thiết bị. Khi các địa chỉ điểm I/O được gán đến những thiết bị
này, giá trị của các địa chỉ điểm I/O đó không thể được chỉnh sửa bởi hàm tác động
bảng Watch.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-27


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.3.4. Cấu hình cho HSC.

CPU cho phép ta cấu hình đến 6 bộ đếm tốc độ cao. Để cấu hình các thông số
cho mỗi HSC riêng biệt, ta chỉnh sửa phần “Properties” của CPU.

Sau khi kích hoạt HSC, ta cấu


hình các thông số khác như chức năng
đếm, các giá trị ban đầu, các tùy chọn
đặt lại và các sự kiện ngắt.

Sau khi cấu hình HSC, ta sử


dụng lệnh CTRL_HSC trong chương
trình để điều khiển sự vận hành của
HSC.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-28


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-29


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.4. So sánh.

Ta sử dụng các lệnh so sánh để so sánh hai giá trị của cùng một kiểu dữ liệu.
Khi việc so sánh tiếp điểm LAD là “TRUE”, tiếp điểm này được kích hoạt. Khi việc so
sánh hộp FBD là “TRUE”, ngõ ra của hộp sẽ là “TRUE”.

Sau khi nhấp chuột lên lệnh trong trình soạn thảo chương trình, ta có thể lựa
chọn kiểu so sánh và kiểu dữ liệu từ các trình đơn thả xuống.

Kiểu quan hệ Sự so sánh là đúng nếu:

== IN1 bằng IN2

<> IN1 không bằng IN2

>= IN1 lớn hơn hay bằng IN2

<= IN1 nhỏ hơn hay bằng IN2

> IN1 lớn hơn IN2

< IN1 nhỏ hơn IN2

Thông số Kiểu dữ liệu Miêu tả

SInt, Int, Dint, USInt, UInt, UDInt, Real,


IN1, IN2 Các giá trị để so sánh
LReal, String, Char, Time, DTL, Constant

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-30


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Các lệnh “IN_RANGE” và “OUT_RANGE”

Ta sử dụng các lệnh IN_RANGE và


OUT_RANGE để kiểm tra trong trường hợp một giá trị
ngõ vào nằm trong hay nằm ngoài mức giá trị được
định sẵn. Nếu sự so sánh là “TRUE” thì ngõ ra của hộp
là “TRUE”.

Các thông số ngõ vào MIN, VAL và MAX phải có cùng kiểu dữ liệu.

Sau khi nhấp chuột lên lệnh trong trình soạn thảo chương trình, ta có thể lựa
chọn kiểu dữ liệu từ các trình đơn thả xuống.

Kiểu quan hệ Sự so sánh là đúng nếu:

IN_RANGE MIN <= VAL <= MAX

OUT_RANGE VAL< MIN hoặc VAL > MAX

Thông số Kiểu dữ liệu Miêu tả

SInt, Int, DInt, USInt, UDInt, Real,


MIN, VAL, MAX Các ngõ vào phần tử so sánh
Constant

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-31


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Các lệnh “OK” và “NOT_OK”

Ta sử dụng các lệnh OK và NOT_OK để kiểm tra xem một sự tham chiếu dữ
liệu ngõ vào có phải là một số thực hợp lệ hay không theo tiêu chuẩn IEE 754. Khi
tiếp điểm LAD là “TRUE”, tiếp điểm được kích hoạt và cho dòng tín hiệu đi qua. Khi
hộp FBD là “TRUE”, ngõ ra của hộp nhận giá trị “TRUE”.

Một giá trị Real hay LReal là không hợp lệ nếu nó là +/– INF (infinity: vô
cùng), NaN (not a number: không phải một số), hay nếu nó là một giá trị không được
chuẩn hóa. Giá trị không được chuẩn hóa ở đây là một con số rất gần với 0. CPU thay
thế bằng số 0 đối với một con số không được chuẩn hóa trong tính toán.

Lệnh Sự kiểm tra số thực là “TRUE” nếu:

OK Giá trị ngõ vào là một số thực hợp lệ

NOT_OK Giá trị ngõ vào không phải là một số thực hợp lệ

Thông số Kiểu dữ liệu Miêu tả

IN Real, LReal Dữ liệu ngõ vào

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-32


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.5. Phép toán.

Các lệnh cộng, trừ, nhân và chia

Ta sử dụng một lệnh hộp phép toán để lập trình các vận hành phép toán cơ bản:

 ADD : phép cộng (IN1 + IN2 = OUT)


 SUB : phép trừ (IN1 – IN2 = OUT)
 MUL : phép nhân (IN1 * IN2 = OUT)
 DIV : phép chia (IN1 / IN2 = OUT)

Một hoạt động chia số nguyên sẽ cắt bỏ phần phân số của thương số để tạo ra
một tín hiệu ra số nguyên. Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu
từ trình đơn thả xuống.

Lƣu ý

Các thông số lệnh phép toán cơ bản IN1, IN2 và OUT phải có kiểu dữ liệu
giống nhau.

Thông số Kiểu dữ liệu Miêu tả

IN1, IN2 SInt, Int, DInt, UInt, UDInt, Real, LReal, Constant Các ngõ vào phép toán

OUT SInt, Int, DInt, UInt, UDInt, Real, LReal Ngõ ra phép toán

Khi được cho phép (EN = 1), lệnh phép toán thực hiện hoạt động được định rõ
trên các giá trị ngõ vào (IN1 và IN2) và lưu trữ kết quả trong địa chỉ nhớ được xác

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-33


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

định bởi thông số ngõ ra (OUT). Sau một sự hoàn tất thành công phép toán, lệnh sẽ đặt
ENO = 1.

Trạng
Miêu tả
thái ENO

1 Không có lỗi

Giá trị kết quả tính toán có thể đã vượt quá phạm vi hợp lệ của kiểu dữ liệu
0 được chọn. Phần trọng số thấp nhất trong kết quả mà vừa với kích thước nơi
đến thì được trả về.

0 Phép chia cho 0 (IN2 = 0): kết quả không được xác định và số 0 được trả lại.

Real/LReal: nếu một trong các giá trị ngõ vào là NaN (không phải một số) thì
0
NaN được trả lại.
ADD Real/LReal: nếu cả hai giá trị IN đều là INF với dấu khác nhau, đây là
0
một phép toán không hợp lệ và NaN được trả lại.
SUB Real/LReal: nếu cả hai giá trị IN đều là INF và cùng dấu, đây là một
0
phép toán không hợp lệ và NaN được trả lại.
MUL Real/LReal: nếu một giá trị IN là 0 còn giá trị kia là INF, đây là một
0
phép toán không hợp lệ và NaN được trả lại.
DIV Real/LReal: nếu cả hai giá trị IN là 0 hoặc là INF, đây là một phép toán
0
không hợp lệ và NaN được trả lại.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-34


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.5.1. Lệnh MOD.

Ta sử dụng lệnh MOD (modulo) cho phép toán IN1 modulo IN2. Phép toán IN1
MOD IN2 = IN1 – (IN1/IN2) = thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn
một kiểu dữ liệu từ trình đơn thả xuống.

Lƣu ý

Các thông số IN1, IN2 và OUT phải có kiểu dữ liệu giống nhau.

Thông số Kiểu dữ liệu Miêu tả

IN1 và IN2 Int, DInt, USInt, UInt, UDInt, Constant Các ngõ vào modulo

OUT Int, DInt, USInt, UInt, UDInt Ngõ ra modulo

Trạng thái ENO Miêu tả

1 Không có lỗi

0 Giá trị IN2 = 0, OUT được gán giá trị bằng 0

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-35


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Lệnh NEG

Ta sử dụng lệnh NEG (phép đảo) để đảo ngược dấu số học của giá trị tại thông
số IN và lưu trữ kết quả trong thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn
một kiểu dữ liệu từ trình đơn thả xuống.

Lƣu ý

Các thông số IN và OUT phải có kiểu dữ liệu giống nhau.

Thông số Kiểu dữ liệu Miêu tả

IN SInt, Int, DInt, Real, LReal, Constant Ngõ vào phép toán

OUT SInt, Int, DInt, Real, LReal Ngõ ra phép toán

Trạng
Miêu tả
thái ENO
1 Không có lỗi
Giá trị kết quả vượt quá phạm vi hợp lệ của kiểu dữ liệu được chọn. Ví dụ đối
0 với SInt: NEG (– 128) cho kết quả + 128 vượt quá giá trị tối đa của kiểu dữ
liệu này.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-36


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Các lệnh tăng và giảm

Ta sử dụng các lệnh INC và DEC để:

 Tăng giá trị một số nguyên có dấu hoặc không


dấu. INC: giá trị thông số IN/OUT + 1 = giá trị
thông số IN/OUT.
 Giảm giá trị một số nguyên có dấu hoặc không
dấu. DEC: giá trị thông số IN/OUT – 1 = giá trị
thông số IN/OUT.

Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Thông số Kiểu dữ liệu Miêu tả

IN/OUT SInt, Int, DInt, USInt, UDInt Ngõ vào và ngõ ra phép toán

Trạng
Miêu tả
thái ENO

1 Không có lỗi

Giá trị kết quả vượt quá phạm vi hợp lệ của kiểu dữ liệu được chọn. Ví dụ đối
0 với SInt: INC (127) cho kết quả + 128 vượt quá giá trị tối đa của kiểu dữ liệu
này.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-37


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Lệnh giá trị tuyệt đối

Ta sử dụng lệnh ABS để nhận được giá trị tuyệt đối của một số nguyên có dấu
hoặc một số thực tại thông số IN và lưu trữ kết quả trong thông số OUT. Ta nhấp vào
phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lƣu ý

Các thông số IN và OUT phải có kiểu dữ liệu giống nhau.

Thông số Kiểu dữ liệu Miêu tả

IN SInt, Int, DInt, Real, LReal Ngõ vào phép toán

OUT SInt, Int, DInt, Real, LReal Ngõ ra phép toán

Trạng thái
Miêu tả
ENO

1 Không có lỗi

Giá trị kết quả phép toán vượt quá phạm vi hợp lệ của kiểu dữ liệu được
0 chọn. Ví dụ đối với SInt: ABS (– 128) cho kết quả + 128 vượt quá giá trị tối
đa của kiểu dữ liệu này.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-38


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Lệnh MIN và MAX

Ta sử dụng lệnh MIN (minimum: cực tiểu) và MAX


(maximum: cực đại) như sau:

 Lệnh MIN so sánh giá trị của hai thông số IN1


và IN2 và gán giá trị cực tiểu (nhỏ hơn) cho
thông số OUT.
 Lệnh MAX so sánh giá trị của hai thông số IN1
và IN2 và gán giá trị cực đại (lớn hơn) cho
thông số OUT.

Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lƣu ý

Các thông số IN và OUT phải có kiểu giá trị giống nhau.

Thông số Kiểu dữ liệu Miêu tả

IN1, IN2 SInt, Int, DInt, USInt, UDInt, Real, Constant Các ngõ vào phép toán

OUT SInt, Int, DInt, USInt, UDInt, Real Ngõ ra phép toán

Trạng thái
Miêu tả
ENO

1 Không có lỗi

(Chỉ đối với dữ liệu kiểu Real)


0  Một hay cả hai ngõ vào không phải là một số thực (NaN).
 Kết quả OUT là +/– INF (vô cùng)

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-39


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Lệnh giới hạn

Ta sử dụng lệnh LIMIT để kiểm tra xem giá trị của


thông số IN có nằm bên trong phạm vi giá trị xác định
bởi các thông số MIN và MAX hay không. Giá trị
OUT được giữ lại tại giá trị MIN hay MAX, nếu giá trị
IN nằm ngoài phạm vi này.

 Nếu giá trị thông số IN nằm trong phạm vi xác định, giá trị IN được lưu trữ
trong thông số OUT.
 Nếu giá trị thông số IN nằm ngoài phạm vi xác định, giá trị OUT sẽ là giá trị
của thông số MIN (nếu IN nhỏ hơn MIN) hoặc sẽ là giá trị của thông số MAX
(nếu IN lớn hơn MAX).

Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lƣu ý

Các thông số MIN, IN, MAX và OUT phải có kiểu giá trị giống nhau.

Thông số Kiểu dữ liệu Miêu tả

SInt, Int, DInt, USInt, UInt, UDInt, Real,


MIN, IN và MAX Các ngõ vào phép toán
Constant

OUT SInt, Int, DInt, USInt, UInt, UDInt, Real Ngõ ra phép toán

Trạng thái
Miêu tả
ENO

1 Không có lỗi

Real: nếu một hay nhiều hơn các giá trị của MIN, IN và MAX là NaN
0
(không phải một số) thì NaN sẽ được trả về.

0 Nếu MIN lớn hơn MAX, giá trị IN được gán đến OUT.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-40


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Các lệnh toán học dấu phẩy động

Ta sử dụng các lệnh dấu phẩy động để lập trình việc vận hành toán học sử dụng
kiểu dữ liệu Real hay LReal:

 SQR : bình phương (IN2 = OUT)


 SQRT : căn bậc hai ( IN  OUT )
 LN : logarite tự nhiên (LN(IN) = OUT)
 EXP : lũy thừa tự nhiên (eIN = OUT) với cơ số e = 2,71828182845904523536
 SIN : hàm sin (sin(IN radian) = OUT)
 COS : hàm cos (cos(IN radian) = OUT)
 TAN : hàm tan (tan(IN radian) = OUT)
 ASIN : sin ngược (arcsin (IN) = OUT)
 ACOS : cos ngược (arccos (IN) = OUT)
 ATAN: tan ngược (arctan (IN) = OUT)
 FRAC : phân số (phần phân số của số có dấu phẩy động IN = OUT)
 EXPT : lũy thừa tổng quát (IN1IN2 = OUT)

Ta nhấp vào phía dưới tên hộp và chọn một kiểu


dữ liệu từ trình đơn thả xuống. Các thông số EXPT là
IN1 và OUT luôn luôn là Real. Ta có thể lựa chọn kiểu
dữ liệu cho thông số số mũ IN2.

Thông số Kiểu dữ liệu Miêu tả

IN, IN1 Real, LReal, Constant Các ngõ vào

SInt, Int, DInt, USInt, UInt, UDInt, Real,


IN2 Ngõ vào số mũ EXPT
LReal, Constant

OUT Real, LReal Ngõ ra

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-41


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Trạng
Lệnh Điều kiện Kết quả (OUT)
thái ENO

1 Tất cả Không có lỗi Kết quả hợp lệ

Kết quả vượt quá phạm vi Real/LReal hợp


+ INF
SQR lệ

IN là +/– NaN (không phải số) + NaN

IN âm – NaN
SQRT
IN là +/– INF hay +/– NaN +/– INF hay +/– NaN

IN bằng 0, số âm, – INF hay – NaN – NaN


LN
IN là + INF hay + NaN + INF hay + NaN

Kết quả vượt quá phạm vi Real/LReal hợp


+ INF
EXP lệ

IN là +/– NaN +/– NaN

SIN, COS, TAN IN là +/– INF hay +/– NaN +/– INF hay +/– NaN

0 IN nằm ngoài phạm vi hợp lệ từ – 1 đến +


+ NaN
ASIN, ACOS 1

IN là +/– NaN +/– NaN

ATAN IN là +/– NaN +/– NaN

FRAC IN là +/– INF hay +/– NaN + NaN

IN1 là + INF và IN2 không phải là – INF + INF

+ NaN nếu IN2 là


Real/ LReal;
IN1 âm hay bằng – INF
EXPT – INF với trường hợp
khác

IN1 hay IN2 là +/– NaN + NaN

IN1 bằng 0 và IN2 (chỉ) là Real/LReal + NaN

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-42


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.6. Di chuyển.

Các lệnh di chuyển và di chuyển khối

Ta sử dụng các lệnh di chuyển để sao chép các phần tử dữ liệu đến một địa chỉ
nhớ mới và chuyển đổi từ một kiểu dữ liệu này sang kiểu khác. Dữ liệu nguồn không
bị thay đổi trong quá trình di chuyển.

 MOVE: sao chép một phần tử dữ liệu được lưu trữ tại một địa chỉ xác định đến
một địa chỉ mới.
 MOVE_BLK: di chuyển có thể ngắt mà sao chép một khối các phần tử dữ liệu
đến một địa chỉ mới.
 UMOVE_BLK: di chuyển không ngắt được mà sao chép một khối các phần tử
dữ liệu đến một địa chỉ mới.

MOVE
Thông số Kiểu dữ liệu Miêu tả
SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte,
IN Địa chỉ nguồn
Word, DWord, Char, Array, Struct, DTL, Time
SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte,
OUT Địa chỉ đích
Word, DWord, Char, Array, Struct, DTL, Time

MOVE_BLK, UMOVE_BLK
Thông số Kiểu dữ liệu Miêu tả
SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte, Địa chỉ bắt đầu
IN
Word, DWord nguồn
Số lượng phần tử dữ
COUNT UInt
liệu để sao chép
SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte,
OUT Địa chỉ bắt đầu đích
Word, DWord

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-43


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Lƣu ý

Các quy tắc đối với hoạt động sao chép dữ liệu:

 Để sao chép kiểu dữ liệu Bool, sử dụng SET_BF, RESET_BF, R, S hoặc cuộn
dây ngõ ra (LAD).
 Để sao chép một kiểu dữ liệu cơ bản đơn lẻ, sử dụng MOVE.
 Để sao chép một mảng kiểu dữ liệu cơ bản, sử dụng MOVE_BLK hay
UMOVE_BLK.
 Để sao chép một cấu trúc, sử dụng MOVE.
 Để sao chép một chuỗi, sử dụng S_CONV.
 Để sao chép một ký tự đơn lẻ trong một chuỗi, sử dụng MOVE
 Lệnh MOVE_BLK và UMOVE_BLK không thể được dùng để sao chép các
mảng hay cấu trúc đến các vùng nhớ I, Q hay M.

Lệnh MOVE sao chép một phần tử dữ liệu đơn lẻ từ một địa chỉ nguồn được
xác định bởi thông số IN đến địa chỉ đích được xác định bởi thông số OUT.

Lệnh MOVE_BLK và UMOVE_BLK có một thông số thêm vào là COUNT.


Thông số COUNT chỉ ra có bao nhiêu phần tử dữ liệu được sao chép. Số lượng các
byte trong mỗi phần tử được sao chép phụ thuộc vào kiểu dữ liệu được gán cho tên gắn
nhãn của thông số IN và OUT trong bảng gắn nhãn PLC.

Các lệnh MOVE_BLK và UMOVE_BLK khác nhau ở cách thức mà các ngắt
được thực hiện:

 Các sự kiện ngắt đƣợc xếp hàng và đƣợc xử lý trong suốt việc thực thi
MOVE_BLK. Sử dụng lệnh MOVE_BLK khi dữ liệu tại địa chỉ di chuyển đích
không được sử dụng bên trong một chương trình con OB ngắt, hoặc nếu nó
được sử dụng thì dữ liệu đích không bắt buộc phải là nhất quán. Nếu một hoạt
động MOVE_BLK bị ngắt, phần tử dữ liệu sau cùng được di chuyển sẽ hoàn tất
và nhất quán tại địa chỉ đích. Hoạt động MOVE_BLK được khôi phục lại sau
khi thực thi OB ngắt hoàn tất.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-44


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

 Các sự kiện ngắt đƣợc xếp hàng nhưng không đƣợc xử lý cho đến khi thực thi
UMOVE_BLK hoàn tất. Sử dụng lệnh MOVE_BLK khi hoạt động di chuyển
phải được hoàn tất và dữ liệu đích nhất quán, trước sự thực thi của một chương
trình con OB ngắt.

ENO luôn luôn đúng theo sự thực thi của lệnh MOVE.

Trạng thái ENO Điều kiện Kết quả

Tất cả phần tử COUNT đã được


1 Không có lỗi
sao chép thành công.
Cả phạm vi nguồn (IN) hay Các phần tử phù hợp được sao
0 phạm vi đích (OUT) vượt quá chép. Các phần tử lẻ ra không được
vùng nhớ có sẵn sao chép.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-45


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Các lệnh lấp đầy

Ta sử dụng các lệnh FILL_BLK và UFILL_BLK như


sau:

 FILL_BLK: lệnh lấp đầy có thể ngắt sẽ lấp đầy


một phạm vi địa chỉ bằng các bản sao của một
phần tử dữ liệu xác định.
 UFILL_BLK: lệnh lấp đầy không ngắt được sẽ
lấp đầy một phạm vi địa chỉ bằng các bản sao
của một phần tử dữ liệu xác định.

Thông số Kiểu dữ liệu Miêu tả

SInt, Int, DInt, USInt, UDInt, Real, Byte,


IN Địa chỉ nguồn dữ liệu
Word, DWord
Số lượng các phần tử dữ
COUNT USInt, UInt
liệu để sao chép
SInt, Int, DInt, USInt, UDInt, Real, Byte,
OUT Địa chỉ đích dữ liệu
Word, DWord

Lƣu ý:

Các quy tắc đối với việc thực thi lắp đầy

 Để lấp đầy với kiểu dữ liệu Bool, sử dụng SET_BF, RESET, R, S, hay cuộn
dây ngõ ra (LAD).
 Để lấp đầy với kiểu dữ liệu cơ bản đơn lẻ, sử dụng MOVE.
 Để lấp đầy với một mảng kiểu dữ liệu cơ bản, sử dụng FILL_BLK hay
UFILL_BLK.
 Để lấp đầy một ký tự đơn lẻ trong một chuỗi, sử dụng MOVE.
 Các lệnh FILL_BLK và UFILL_BLK không thể được sử dụng để lấp đầy các
mảng trong các vùng nhớ I, Q, hay M.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-46


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Các lệnh FIll_BLK và UFILL_BLK sao chép phần tử dữ liệu nguồn IN đến
đích tại đó địa chỉ ban đầu được xác định bởi thông số OUT. Tiến trình sao chép lặp
lại và một khối các địa chỉ kế cận nhau được lấp đầy cho đến khi số lượng các bản sao
bằng với thông số COUNT.

Các lệnh FILL_BLK và UFILL_BLK khác nhau ở cách thức mà các ngắt được
thực hiện:

 Các sự kiện ngắt đƣợc xếp hàng và đƣợc xử lý trong suốt việc thực thi
FILL_BLK. Sử dụng lệnh FILL_BLK khi dữ liệu tại địa chỉ đích di chuyển thì
không được sử dụng bên trong một chương trình con OB ngắt, hoặc nếu nó
được sử dụng thì dữ liệu đích không buộc phải nhất quán.
 Các sự kiện ngắt đƣợc xếp hàng nhưng không đƣợc xử lý cho đến khi thực thi
UFILL_BLK hoàn tất. Sử dụng lệnh UFILL_BLK khi hoạt động di chuyển phải
được hoàn tất và dữ liệu đích nhất quán, trước sự thực thi của một chương trình
con OB ngắt.

Trạng thái ENO Điều kiện Kết quả

Phần tử IN đã được sao chép thành


1 Không có lỗi.
công đến tất cả các đích đến COUNT.
Các phần tử phù hợp được sao chép.
Phạm vi đích (OUT) vượt quá
0 Các phần tử lẻ ra không được sao
vùng nhớ có sẵn.
chép.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-47


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.6.1. Lệnh tráo đổi.

Ta sử dụng lệnh SWAP để đảo ngược trật tự


byte cho các phần tử dữ liệu 2 byte và 4 byte. Không có
sự thay đổi nào được thực hiện đến trật tự bit trong
phạm vi mỗi byte.

ENO luôn luôn nhận giá trị “TRUE” theo sự thực thi của lệnh SWAP.

Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Thông số Kiểu dữ liệu Miêu tả

IN Word, DWord Các byte dữ liệu được sắp xếp IN

OUT Word, DWord Đảo ngược các byte dữ liệu được sắp xếp OUT

Ví dụ: thông số IN = MB0 Ví dụ: thông số OUT = MB4


trƣớc sự thực thi SWAP sau sự thực thi SWAP

Địa chỉ MB0 MB1 MB4 MB5

W#16#1234 12 34 34 12

Word MSB LSB MSB LSB

Địa chỉ MB0 MB MB2 MB3 MB4 MB5 MB6 MB7

DW#16#12345678 12 34 56 78 78 56 34 12

DWord MSB LSB MSB LSB

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-48


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.7. Chuyển đổi.

Lệnh chuyển đổi

Ta sử dụng lệnh CONVERT để chuyển đổi một


phần tử dữ liệu từ một kiểu dữ liệu này sang một kiểu
dữ liệu khác. Ta nhấp vào phía dưới tên hộp và chọn
các kiểu dữ liệu IN và OUT từ danh sách thả xuống.

Sau khi ta lựa chọn kiểu dữ liệu để chuyển đổi, một danh sách những sự chuyển
đổi có khả năng sẽ được cho thấy trong danh sách thả xuống chuyển đổi đến. Những
sự chuyển đổi từ/đến BCD16 bị hạn chế đối với kiểu dữ liệu Int. Những sự chuyển đổi
từ/đến BCD32 bị hạn chế đối với kiểu dữ liệu DInt.

Ta nhấp vào phía dưới tên hộp và chọn các kiểu dữ liệu từ trình đơn thả xuống.

Thông số Kiểu dữ liệu Miêu tả

SInt, Int, DInt, USInt, UInt, UDInt, Byte,


IN Giá trị IN
Word, DWord, Real, LReal, BCD16, BCD32
SInt, Int, DInt, USInt, UInt, UDInt, Byte, Giá trị IN được chuyển đổi
OUT
Word, DWord, Real, LReal, BCD16, BCD32 sang một kiểu dữ liệu mới

Trạng thái
Miêu tả Kết quả OUT
ENO

1 Không có lỗi Kết quả hợp lệ

0 IN là +/– INF hay +/– NaN +/– INF hay +/– NaN

Kết quả vượt quá phạm vi hợp lệ OUT được đặt về các byte có trọng
0
của kiểu dữ liệu OUT số thấp nhất của IN

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-49


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Các lệnh làm tròn và cắt bỏ

Lệnh ROUND chuyển đổi một số thực thành


một số nguyên. Phần phân số của số thực được làm
tròn đến giá trị số nguyên gần nhất (IEEE – làm tròn
đến gần nhất). Nếu số thực nằm chính xác ở giữa vùng
giữa 2 số nguyên thì số thực này được làm tròn đến số
nguyên chẵn. Ví dụ: ROUND(10,5) = 10 và
ROUND(11,5) = 12.

Lệnh TRUNC chuyển đổi một số thực thành một số nguyên. Phần phân số của
số thực được cắt bỏ thành 0 (IEEE – làm tròn thành 0).

Thông số Kiểu dữ liệu Miêu tả

IN Real, LReal Ngõ vào dấu phẩy động

SInt, Int, DInt, USInt, UInt, UDInt, Real,


OUT Ngõ ra được làm tròn hay cắt bỏ
LReal

Trạng thái ENO Miêu tả Kết quả OUT

1 Không có lỗi Kết quả hợp lệ

0 IN là +/– INF hay +/– NaN +/– INF hay +/– NaN

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-50


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Các lệnh CEIL và FLOOR

Lệnh CEIL chuyển đổi một số thực thành số


nguyên nhỏ nhất lớn hơn hay bằng số thực đó (IEEE –
làm tròn đến dương vô cùng).

Lệnh FLOOR chuyển đổi một số thực thành số


nguyên lớn nhất nhỏ hơn hay bằng số thực đó (IEEE –
làm tròn đến âm vô cùng).

Thông số Kiểu dữ liệu Miêu tả

IN Real, LReal Ngõ vào dấu phẩy động

OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal Ngõ ra được chuyển đổi

Trạng thái ENO Miêu tả Kết quả OUT

1 Không có lỗi Kết quả hợp lệ

0 IN là +/– INF hay +/– NaN +/– INF hay +/– NaN

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-51


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.7.1. Các lệnh định tỷ lệ và chuẩn hóa.

Các lệnh định tỷ lệ và chuẩn hóa

Lệnh SCALE_X định tỷ lệ của thông số số thực


được chuẩn hóa VALUE, với (0,0 <= VALUE <= 1,0)
thành kiểu dữ liệu và phạm vi giá trị được xác định bởi
các thông số MIN và MAX: OUT = VALUE (MAX –
MIN) + MIN

Đối với lệnh SCALE_X, các thông số MIN,


MAX và OUT phải là kiểu dữ liệu giống nhau.

Lệnh NORM_X làm chuẩn hóa thông số


VALUE bên trong phạm vi giá trị được xác định bởi
các thông số MIN và MAX: OUT = (VALUE – MIN) /
(MAX – MIN) với (0,0 <= OUT <= 1,0)

Đối với lệnh NORM_X, các thông số MIN,


VALUE và MAX phải là kiểu dữ liệu giống nhau.
Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Thông số Kiểu dữ liệu Miêu tả

Giá trị cực tiểu ngõ vào


MIN SInt, Int, DInt, USInt, UInt, UDInt, Real
của phạm vi

SCALE_X: Real
Giá trị ngõ vào để định tỷ
VALUE NORM_X: SInt, Int, DInt, USInt, UInt, UDInt,
lệ hay chuẩn hóa
Real

Giá trị cực đại ngõ vào của


MAX SInt, Int, DInt, USInt, UInt, UDInt, Real
phạm vi

SCALE_X: Real
Giá trị ngõ ra đã được định
OUT NORM_X: SInt, Int, DInt, USInt, UInt, UDInt,
tỷ lệ hay được chuẩn hóa
Real

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-52


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Lƣu ý

Thông số VALUE trong lệnh SCALE_X nên đƣợc hạn chế trong khoảng
(0,0 <= VALUE <= 1,0)

Nếu thông số VALUE nhỏ hơn 0,0 hay lớn hơn 1,0 thì:

 Hoạt động chia tỷ lệ tuyến tính có thể sinh ra các giá trị OUT nhỏ hơn giá trị
thông số MIN, hay nằm trên giá trị thông số MAX đối với các giá trị OUT nằm
vừa trong phạm vi kiểu dữ liệu OUT. Sự thực thi SCALE_X đặt ENO = TRUE
trong các trường hợp này.
 Có khả năng tạo ra các số được định tỷ lệ mà không nằm trong phạm vi của
kiểu dữ liệu OUT. Trong những trường hợp này, giá trị thông số OUT được đặt
đến một giá trị trung gian, bằng với phần có trọng số nhỏ nhất của số thực được
tỷ lệ ưu tiên cho sự chuyển đổi cuối cùng sang kiểu dữ liệu OUT. Sự thực thi
SCALE_X đặt ENO = FALSE trong trường hợp này.

Thông số VALUE trong NORM_X nên đƣợc hạn chế trong khoảng (MIN
<= VALUE <= MAX)

Nếu thông số VALUE nhỏ hơn MIN hay lớn hơn MAX, sự hoạt động chia tỷ lệ
tuyến tính có thể tạo ra các giá trị OUT được chuẩn hóa nhỏ hơn 0 hay lớn hơn 1.
Trong trường hợp này sự thực thi NORM_X đặt ENO = TRUE.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-53


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Trạng
Điều kiện Kết quả OUT
thái ENO

1 Không có lỗi Kết quả hợp lệ

Kết quả trung gian: phần có trọng số nhỏ nhất của


Kết quả vượt quá phạm vi hợp lệ
0 một số thực ưu tiên cho sự chuyển đổi sau cùng
đối với kiểu dữ liệu OUT
sang kiểu dữ liệu OUT.

SCALE_X: phần có trọng số nhỏ nhất của số thực


VALUE lấp đầy kích thước OUT.
0 Thông số MAX <= MIN NORM_X: VALUE trong kiểu dữ liệu VALUE
được kéo dài để lấp đầy một kích thước Double
Word.

Thông số VALUE là +/– INF


0 VALUE được ghi ra OUT
hay +/– NaN

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-54


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

5.1.8. Điều khiển chương trình.

Các lệnh nhảy và ghi nhãn

Ta sử dụng các lệnh điều khiển chương trình cho các điều khiển điều kiện trong
chuỗi thực thi:

Lệnh JMP: nếu có dòng tín hiệu đến


một cuộn dây JMP (LAD), hay nếu tín
hiệu vào hộp JMP (FBD) là đúng thì sau
đó sự thực thi chương trình tiếp tục với
lệnh đầu tiên theo nhãn được chỉ định.

Lệnh JMPN: nếu không có dòng


tín hiệu đi đến một cuộn dây JMP (LAD),
hay nếu tín hiệu vào hộp JMP (FBD) là
sai thì sau đó sự thực thi chương trình
tiếp tục với lệnh đầu tiên theo nhãn được
chỉ định.

Lệnh Label: nhãn nơi đến cho lệnh nhảy JMP hay JMPN.

Thông số Kiểu dữ liệu Miêu tả

Bộ định danh cho các lệnh nhảy và nhãn lập trình nơi
Label_name Bộ định danh nhãn
đến của lệnh nhảy tương ứng

Ta tạo ra các tên nhãn bằng cách gõ trực tiếp trong lệnh LABEL. Các tên nhãn
sẵn có cho trường tên nhãn JMP và JMPN có thể được chọn bằng cách sử dụng biểu
tượng trợ giúp thông số. Ta còn có thể gõ một tên nhãn trực tiếp bên trong lệnh JMP
hay JMPN.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-55


www.TuDongHoaVietNam.net

ĐỒ ÁN HỌC PHẦN 2A GVHD: ThS HOÀNG ĐÌNH KHÔI

Lệnh điều khiển thực thi trả về giá trị (RET)

Ta sử dụng lệnh RET để kết thúc sự thực thi của khối hiện thời.

Thông số Kiểu dữ liệu Miêu tả

Thông số “Return_Value” của lệnh RET được gán cho


Return_Value Bool
ngõ ra ENO của khối gọi hộp trong khối đang gọi

Lệnh tùy chọn RET được sử dụng để kết thúc sự thực thi của khối hiện thời.
Nếu và chỉ nếu có dòng tín hiệu đi đến cuộn dây RET (LAD) hay nếu tín hiệu vào của
hộp RET là đúng (FBD) thì sau đó sự thực thi chương trình của khối hiện thời sẽ kết
thúc tại điểm đó và các lệnh nằm sau lệnh RET sẽ không được thực thi. Nếu khối hiện
thời là một OB, thông số “Return_Value” được bỏ qua. Nếu khối hiện thời là một FC
hay FB, giá trị thông số “Return_Value” được đi qua trở về đến đoạn chương trình
đang gọi như giá trị ENO của hộp được gọi.

Ta không được yêu cầu sử dụng lệnh RET là câu lệnh cuối cùng trong một khối
vì điều này được thực hiện một cách tự động cho ta. Ta có thể có nhiều lệnh RET bên
trong một khối đơn lẻ.

Các bước mẫu để sử dụng lệnh RET bên trong một khối mã FC:

1. Tạo một đề án mới và thêm một FC.


2. Chỉnh sửa FC:
- Thêm vào các lệnh từ cây lệnh.
- Thêm vào lệnh RET, bao gồm một trong các đối tượng sau đây cho thông số
“Return_Value”: TRUE, FALSE hay một vị trí bộ nhớ mà định rõ giá trị trả lại
được yêu cầu.
- Thêm vào các lệnh khác.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH Trang 5-56

You might also like