0% found this document useful (0 votes)
870 views382 pages

Slide PLC

t4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
870 views382 pages

Slide PLC

t4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 382

Môn học

Tự động hóa với PLC


GV: Nguyễn Thị Lan Anh
Bộ môn Tự động & Kỹ thuật tính
Khoa Kỹ thuật điều khiển
Học viện kỹ thuật quân sự
http://mta.edu.vn
Giới thiệu môn học
• Mục đích: nhằm giới thiệu cho sinh viên bộ điều khiển logic khả trình

• Nội dung:
• Phần 1
– Chương 1: Giới thiệu tổng quan về Micro PLC S7 – 200
– Chương 2: Cài đặt cấu hình phần cứng và phần mềm cho hệ thống
– Chương 3: Những khái niệm cơ bản về lập trình PLC
– Chương 4: Cấu trúc bộ nhớ, kiểu dữ liệu và chế độ định địa chỉ
Phần 2
– Chương 5: Giới thiệu tập lệnh cơ bản
– Chương 6: Một số lệnh mở rộng và những bài toán ứng dụng
• Thời gian: 45 tiết
• Phương pháp: Nghe giảng kết hợp với ghi chép và tài liệu được cung
cấp.
• Hình thức thi: thi viết
BÀI 1

Phần 1: Nhập môn PLC


Chương 1: Giới thiệu tổng quan về PLC S7-200
• Mục đích: giúp sinh viên nắm bắt tổng quan về tên
gọi, chức năng, ý nghĩa và phạm vi ứng dụng của các
sản phẩm, thiết bị công nghiệp của Simatic. Từ đó có
khả năng tự đọc và nghiên cứu ứng dụng đối với các
sản phẩm liên quan.
• Nội dung:
Chương 1: Giới thiệu tổng quan về PLC S7-200
• Thời gian: 3 tiết
Sản phẩm của SIMATIC
Một số dòng sản phẩm của Simatic

• Micro Automation
– Module Logic Logo
– S7-200
– TD200, TP070
• Controller
– S7 – 300
– S7 – 400
– C7
• Simatic PG
• Simatic Software
Micro Automation
• Logo
• S7-200
• Tp070, TD 200
Logo

Các loại:
LOGO! 24 C0 (Điện áp cấp 24V, đầu ra Trasitor, không có Clock trong).

LOGO! 12/24RC (Điện áp cấp 12/24V, đầu ra Relay ,có Clock trong).

LOGO! 24RC (Điện áp cấp 24V, đầu ra Relay ,có Clock trong).

Phần mềm lập trình: Soft Comfort


Sự khác biệt với S7_200 ?
S7-200
CPU
Một số module mở rộng

EM 231, EM 232, EM 235


EM221, EM222, EM223

EM 253 positioning Module EM 277 PROFIBUS-DP module


Nguồn cấp
Giao diện người máy

TD 200 text display


SIMATIC TP 070
Controller
+ S7 – 300
+ S7 – 400
+ C7
SIMATIC S7-300
Các loại CPU S7 - 300

CPU 312C CPU 313C CPU 313C - 2PtP

CPU 313C-2DP CPU 314-2PtP CPU 314-2DP


Các module số và analog của S7-300

SM 321 digital Input


SM 331/ 332 analog Input
SM 322 digital Output SM 334/335 analog Input/Output
SM 323 digital
Input/Output
Các module chức năng

FM 350-1 counter module FM 350-2 counter module


Các module truyền thông

CP 340 CP 341
Control System (C7)
SIMATIC PG
(Programming Divice)

Field PG Power PG
Simatic Software
Standard Tools

• Step 7
• Step 7 professional
• Step 7 Micro/WIN
Engineering Tools

• S7 SCL
• S7-GRAPH
• S7-HiGraph
Chương 1: Giới thiệu tổng quan về
PLC S7-200
1.1. Ôn tập kỹ thuật số
1.2. Giới thiệu PLC S7-200
1.1. Ôn tập kỹ thuật số
• Các khái niệm về số: Bit, byte, word, double word,
int, real.
• Các phép toán logic: AND, OR, XOR, NOT.
• Các dạng tín hiệu:
– Các dạng tín hiệu số: là các tín hiệu thuộc dạng hàm
boolean, chỉ có 2 trị là 0 và 1. (VD: 0 tương ứng với 0V
và 1 tương ứng với 24V)
– Tín hiệu tương tự: từ 0-10V hoặc 0-24mA …
– Các tín hiệu khác: gồm các tín hiệu giao tiếp với máy
tính, các thiết bị ngoại vi bằng các giao thức khác nhau
như RS232, RS485, Modbus….
1.2. Giới thiệu PLC S7-200
• PLC là gì? Là một thiết bị cho phép lập trình linh hoạt
các thuật toán thông qua một ngôn ngữ lập trình nào đó
để thay thế cho việc thực hiện nó thông qua các mạch số.
Cấu trúc cơ bản của PLC:
CPU: thực hiện chương trình và chứa dữ liệu cho điều khiển các quá
trình tự động.
Nguồn cấp điện (Power supply)
Các đầu vào/ra hệ thống (Inputs/Outputs)
Các cổng truyền thông (Communications Port)
Các đèn trạng thái (Status light )
Sơ đồ cấu trúc của CPU PLC
Cấu trúc bộ nhớ của CPU S7-200

Tụ

EEPROM
RAM (memory cartridge)
Bộ nhớ PLC
• Gồm 3 vùng chính:
– Vùng chứa chương trình ứng dụng: chia thành 3 miền
• OB1(organisation block): chứa chương trình tổ chức, chương
trình chính.
• Subroutine: chứa chương trình con được tổ chức thành hàm
và có biến hình thức để trao đổi dữ liệu. Chương trình được
thực hiện khi có lệnh gọi trong OB1.
• Interrupt: được tổ chức thành hàm và có khả năng trao đổi
dữ liệu với bất kỳ 1 khối dữ liệu nào khác. Chương trình này
sẽ được thực hiện khi sự kiện ngắt xảy ra.
– Vùng chứa tham số của hệ điều hành: I, Q, M, T, C.
– Vùng chứa các khối dữ liệu:
• DB(Data Block): miền chứa dữ liệu được tổ chức thành khối.
• L(Local Data Block): miền dữ liệu địa phương, được các khối
chương trình ứng dụng tổ chức và sử dụng cho các biến tức
thời và trao đổi dữ liệu của biến hình thức với những khối
chương trình gọi nó.
Yêu cầu tối thiểu về mặt thiết bị cho hệ thống PLC S7-200

Hình 1-1: Các thành phần cơ bản của hệ thống PLC S7-200
Hết Bài 1
Bài 2
Chương 1: (tt)
Chương 2:
1.3. Các điểm đặc trưng của họ S7-200
( CPU212, CPU214, CPU 215, CPU 216.)
Đặc điểm CPU212 CPU 214 CPU 215 CPU 216
Kích cỡ vật lý
Bộ nhớ
I/O (Inputs/Outputs)
I/O cục bộ 8DI/6DQ 14DI/10DQ 14DI/10DQ 24DI/16DQ
Modul mở rộng (max) 2 7 7 7
Thanh nghi I/O ảo 64DI/64DQ 64DI/64DQ 64DI/64DQ 64DI/64DQ

I/O analog 16AI/16AQ 16AI/16AQ 16AI/16AQ 16AI/16AQ

Tập lệnh (Instructions)


Truyền thông (Communications)
Các đặc tính khác
Hình 1-3: CPU S7-214
Hình 1-4: CPU S7-215 hoặc S7-216
Module mở rộng
Ưu điểm của PLC
• Người sử dụng không cần có kiến thức sâu về mạch điện tử như
VĐK vẫn có thể khai thác dễ dàng.
• Được thiết kế để làm việc trong môi trường CN nên có khả năng
chống nhiễu, chịu ẩm, hóa học, …Điện áp làm việc và ghép nối
tương thích với chuẩn CN.
• Được thiết kế để có thể kết nối với nhau tạo thành mạng công
nghiệp hoặc kết nối với Internet dễ dàng.
• Phần mềm lập trình có giao diện và ngôn ngữ đồ họa dễ nhớ, dễ
học.
• Có các phần mềm giao diện giám sát trên máy tính được thiết kế
chuyên nghiệp giao tiếp truyền thông hoàn toàn ẩn với người sử
dụng.
Chương 2: Cấu hình phần cứng và phần mềm cho
hệ thống PLC S7-200

2.1. Thiết lập phần cứng cho hệ Micro PLC S7-200


• 2.1.1. Phân loại PLC
• 2.1.2. Các kiểu Module vào/ra
• 2.1.3: Kết nối với PC
2.2. Cài đặt phần mềm STEP7- Micro/WIN

Ý nghĩa: giúp SV nắm vững các loại module PLC cơ bản


và cách đấu nối dây với các ngoại vi ứng với
từng loại PLC.
2.1.1. Phân loại PLC
• PLC phân thành 2 loại chính:
– Loại cấp điện áp 220VAC (Module AC/DC/Relay)
– Loại cấp điện áp 24VDC (Module DC/DC/DC)
a. Loại cấp điện áp 220VAC
(Module AC/DC/Relay)
• Đặc điểm
– Điện áp nguồn nuôi: 85v -265v (AC)
– Input Module (ngõ vào): tích cực mức 1 ở cấp điện áp
+24VDC (15VDC – 30VDC) (điện áp vào cấp cho các sensor
là +24Vdc)
– Output Module (ngõ ra): là rơ le (Điện áp DC/AC).
• Ưu điểm: là ngõ ra rơ le, có thể sử dụng ngõ ra ở nhiều
cấp điện áp DC/AC trong khoảng (0V, 24V, 220V…).
• Nhược điểm: thời gian đáp ứng của rơ le không nhanh
cho ứng dụng điều chế độ rộng xung, hoặc Output tốc
độ cao…
b. Loại cấp điện áp 24VDC
(Module DC/DC/DC)
• Đặc điểm:
– Điện áp nguồn nuôi: 24VDC
– Input Module: tích cực mức 1 ở cấp điện áp 24VDC (15VDC –
30VDC).
– Output Module: là transitor (điện áp cấp 24VDC)
• Ưu điểm: ngõ ra là transitor, do đó có thể sử dụng để điều chế
độ rộng xung, hoặc output tốc độ cao….
• Nhược điểm: chỉ có một cấp điện áp duy nhất là +24VDC, do
vậy sẽ gặp rắc rối trong ứng dụng có cấp điện áp là 0VDC, trong
trường hợp này phải thông qua một rơ le 24VDC đệm.
Ví dụ: sơ đồ nối dây
với mạch điều khiển a-
B+
động A+
cơ một chiều có đảo b-
chiều
sử dụng module
DC/DC/DC
2.1.2. Các kiểu Module vào/ra
a- Tín hiệu vào/ra của module
PLC
• Module vào/ra của PLC được phân loại:
– Số ( logical/Discrete Signals)
– Tương tự (Continuous/analog Signals)
Module đầu ra

• Các phần tử chấp hành:


– Van điện từ (Solenoid Valves): logical outputs
– Bóng đèn (Lights): logical outputs
– Khởi động động cơ (Motor starter): logical
outputs
– Động cơ bước ( Servo Motor): Countinuous
outputs (Tốc độ, vị trí)
Module đầu ra (tt)
• Phân loại theo cấu tạo có 2 loại:
– Relay (dry contacts): DC và AC. Thời gian đáp ứng >=
10ms. Ứng dùng: khi yêu cầu dòng lớn ( 2 ampe) hoặc
điện trở tải rất nhỏ.
– Solid state:
• Tranzitor (DC) hoặc
• Triac (AC) (switches outputs)
Thời gian đáp ứng < 1ms.
• Dải điện áp đầu ra
• 120 Vac
• 24 Vdc
Sơ đồ mạch điện đầu ra của 3 loại

Tranzito

Triac

Relay
1- Relay Output card - Nguồn chung
Relay Output card - Nguồn khác nhau
VD: Relay Output card

Khi nào đèn


sáng?
Khi nào động
cơ hoạt động?
2- Transitor Output Card
Dạng Sinking (NPN)

Chú thích: khi transitor mở thì chiều dòng điện đi là chiều mũi tên
Dạng Sourcing (PNP)

Chú thích: khi transitor mở thì chiều dòng điện đi là chiều mũi tên
3- Triac Output card
Module đầu vào
• Tín hiệu ra từ các loại cảm biến: số và tương tự.
– Cảm biến tiệm cận (Proximity Senso): cảm biến điện cảm,
điện dung, quang …. Tín hiệu là logic
– Khóa chuyển mạch (Switchs): đóng mở cơ khí. Tín hiệu
logic.
– Potentiometer: đo vị trí góc dùng điện trở. Tín hiệu liên tục.
– LVDT(Linear variable differential Transformer): tín hiệu
liên tục.
• Nguồn cấp • Dải điện áp đầu vào
– Có 2 loại: • 12-24 Vdc
• DC • 24 Vac
• AC
Sơ đồ mạch điện của đầu vào của PLC
b. Tín hiệu đầu ra của cảm biến

• Gồm 2 loại:
– PNP (Sourcing)
– NPN (Sinking)
Sơ đồ mạch đầu ra của sensor
PNP/Sourcing sensor

V+
PNP sensor kết nối với
NPN Input card(PLC)

Transitor off -> Input off


Transitor on -> Input on
NPN/Sinking Sensor

V-
Note:
+ Sensor off -> Output
+ Sensor on -> Output
NPN sensor kết nối với PNP Input card

PLC

Transitor off -> Input off


Transitor on -> Input on
Chú ý: không sử dụng nguồn điện cấp AC đối với các module DC
2.1.3. Kết nối PC

Hình 2.1 – Truyền thông ở chế độ PPI


Chọn cổng giao tiếp
• Cáp USB: phải chọn cổng giao tiếp là USB
• COM: phải chọn đúng cổng giao tiếp của máy
tính.
• Cách chọn cổng giao tiếp, vào mục
Communication, chọn Set PG/PC Interface. Các
bước:
+ B1: Mở cửa sổ Set PG/PC Interface -> Chọn Properties (của P
+ B2: Chọn đúng tốc độ transmission rate (Tab PPI)
+ B3: Chọn cổng COM trong Tab Local Connection
+ B4: Chọn địa chỉ PLC (thông thường là 2)

Chú ý: nếu không biết địa chỉ PLC thì kích chọn vào mục Search a
đó double click vào phần “Double – Click to refresh” chương trình
2.2. Cài đặt phần mềm STEP7- Micro/WIN
Hết bài 2
Bài 3
Chương 3: Cơ sở chung trong lập trình
PLC
• 3.1. Phần tử tự động cơ bản liên quan đến lập
trình trên PLC.
• 3.2. Các bước thiết kế hệ thống PLC
• 3.3. Nguyên tắc hoạt động của chương trình
• 3.4. Khái niệm ngôn ngữ lập trình trên PLC
• 3.5. Cấu trúc chương trình
• 3.6. Vòng quét của CPU
3.1. Phần tử tự động cơ bản

• 3.1.1. Sensor số 3.1.3. Phần tử chấp hành số


– Chuyển mạch (Swichts) • Solenoid
– Solid State Relays • Vale và xi lanh
• Hệ thủy lực và khí nén

• 3.1.2. Sensor tương tự 3.1.4. Phần tử chấp hành tương


– Cảm biến biến trở tự
– Encoder - Động cơ DC, AC
– Cảm biến nhiệt ….. - Động cơ bước
Chuyển mạch (Swichts)
• Pushbutton
• Pushbutton Switch Actuator (Bộ phận kích
hoạt cho switch)
• Selector Switches (Rotary Switches)
• Limit Switches
Pushbutton
• Có hai loai chính:
– Không duy trì (Momentary pushbutton)
– Duy trì (Maintained pushbutton hoặc Push – Push
switch)
• Tiếp điểm trên switch gồm 2 loại (Contact):
– Thường đóng (NC)
– Thường mở (NO)

Momentary Pushbutton Switches Maintained Switch


Pushbutton Switch Actuator
• Guarded pushbutton: START,RUN, RESET,CYCLE…
• Flush pushbutton : STOP, BRAKES
• Extended pushbutton: STOP, PAUSE, BRAKES

Guarded pushbutton Flush pushbutton Extended pushbutton


• Mushroom Head Pushbutton: sử dụng
trong những trường hợp khẩn cấp để cảnh
báo.
Selector Switches
(Rotary Switches)
• Có hai loại:

Switch on Switch off


Limit Switches
Relay hay Contactor
Solenoid
Valve
Xi lanh
Hệ điều khiển vòng kín tốc độ động cơ
3.2. Các bước thiết kế hệ thống PLC

• 1- Phân chia quá trình hoạt động thành từng phần.


• 2- Mô tả chi tiết hoạt động và chức năng của từng phần
(functional specifications).
– Các điểm I/O (số lượng)
– Chức năng của từng đối tượng
– Trạng thái của các đối tượng sau mỗi quá trình (solenoid, motor,
drive,…)
– Giao tiếp với bộ phận khác của quá trình
• 3- Thiết kế các mạch điện an toàn
• 4- Định rõ các trạm làm việc (Operator Stations)
• 5 - Thực hiện các bản vẽ cấu hình PLC
• 6 - Tạo một danh sách các tên bằng ký hiệu
3.3. Nguyên tắc hoạt động của chương
trình

• Nguyên tắc hoạt động của CPU:


– CPU đọc trạng thái các đầu vào
– Chương trình trong CPU sẽ sử dụng các đầu
vào để tính toán trạng thái logic điều khiển (Khi
CPU chạy nó sẽ cập nhật dữ liệu).
– CPU sẽ đưa dữ liệu ra đầu ra
Mối quan hệ giữa chương trình với đầu vào
và đầu ra
3.4. Vòng quét của CPU

1- Đọc các đầu vào 4- Thực hiện tự chuẩn đoán


2- Thực hiện chương trình 5- Truyền dữ liệu ra
3- Thực hiện các yêu cầu truyền
thông
• Bộ đệm I/O (I, Q): không liên quan đến các cổng I/O analog. Các
lệnh truy nhập đến cổng tương tự phải truy nhập trực tiếp từ cổng
I/O vật lý.
• Các thanh ghi vào/ra ảo (Process-Image I/O Registers):
– Lấy mẫu tất cả các đầu vào và cố định các giá trị đó.
– Cho phép xử lý nhanh hơn.
– Bộ đệm ảo có tính linh hoạt (truy nhập theo các bit, byte, word,
double word).
• Thời gian vòng quét (Scan time): không cố định.
• Scan time quyết định tính thời gian thực của chương trình.
• Các chương trình ngắt không phụ thuộc vào Scan time. Chương
trình ngắt phải gọn nhẹ để nâng cao tính thời gian thực cho hệ
thống.
3.5. Khái niệm về ngôn ngữ lập
trình S7-200
• Ladder logic (LAD)
• Statement list (STL)
3.5.1. Những phần tử cơ bản trong LAD
• Tiếp điểm (Contact) • Hộp (box).
• Cuộn dây (coil) • Mạng (Network).
3.5.2. Các phần tử cơ bản của STL
• Network • Toán tử (Operand)
• Câu lệnh (Instruction) • Chú thích
Nguyên tắc làm việc cơ bản trong lập trình STL

Ngăn xếp logic


Ví dụ
3.6. Cấu trúc chương trình

• Tổ chức chương trình


– Main program
– Subroutine
– Interrupt
Cấu trúc chương trình
Ví dụ
Hết bài 3
BÀI 4
Chương 4:
Kiểu dữ liệu và các chế độ định địa chỉ
• 4.1. Định địa chỉ trực tiếp của miền nhớ.
• 4.2. Định địa chỉ gián tiếp của miền nhớ.
4.1. Định địa chỉ trực tiếp của miền nhớ
• Sử dụng địa chỉ miền nhớ để truy nhập dữ liệu
• Biểu diễn các con số
• Định địa chỉ thanh ghi đầu vào ảo (I)
• Định địa chỉ thanh ghi đầu ra ảo(Q)
• Định địa chỉ miền nhớ chứa biến (V)
• Định địa chỉ miền nhớ bit (M)
• Định địa chỉ miền nhớ rơle điều khiển tuần tự (S)
• Định địa chỉ các bit nhớ đặc biệt (SM)
• Định địa chỉ miền nhớ Timer (T)
• Định địa chỉ miền nhớ Counter (C)
• Định địa chỉ các đầu vào analog (AI)
• Định địa chỉ các đầu ra analog (AQ)
• Định địa chỉ cho các bộ chứa
• Định địa chỉ cho các bộ đếm tốc độ cao (HC)
• Sử dụng các giá trị hằng số
4.1.1. Sử dụng địa chỉ miền nhớ để
truy nhập dữ liệu

• Truy nhập địa chỉ của một bit nào đó trong


miền nhớ:
– Tên của miền nhớ?
– Địa chỉ byte?
– Chỉ số bit?
Truy nhập bit dữ liệu trong miền nhớ
• Truy nhập một byte, word, hay double word
trong miền nhớ:
– Tên miền nhớ?
– Kích cỡ dữ liệu? (Data Size: B, W, D)
– Địa chỉ byte đầu tiên của byte, word, double word.
Truy nhập Byte, Word và Double Word
4.1.2. Biểu diễn các con số
4.1.3. Định địa chỉ thanh ghi đầu vào ảo
(Process-Image Input Register)
• Ý nghĩa: miền dữ liệu các cổng vào số (bộ đệm I). Trước
khi bắt đầu thực hiện chương trình , PLC đọc giá trị
logic của tất cả các đầu vào số và lưu giữ trong vùng nhớ
I. Thông thường chương trình ứng dụng sẽ đọc trạng thái
logic của các đầu vào số thông qua bộ đệm I.
• Định dạng:
– Bit
I[byte address].[bit address] I0.1
– Byte, word, double word
I [size] [starting byte address] IB4
4.1.4. Định địa chỉ thanh ghi đầu ra ảo
(Process-Image Output Register)
• Ý nghĩa: Miền dữ liệu cổng ra số (bộ đệm đầu ra Q).
Thông thường, khi thực hiện chương trình PLC không
trực tiếp đưa giá trị tới các cổng ra vật lý mà đưa vào bộ
đệm Q. Kết thúc mỗi vòng quét, PLC sẽ chuyển các giá trị
từ bộ đệm Q ra các đầu ra số.
• Định dạng:
– Bit
Q[byte address].[bit address] Q1.1
– Byte, word, double word
Q [size] [starting byte address] QB5
4.1.5. Định địa chỉ miền nhớ V
(Variable memory)
• Ý nghĩa: lưu giữ các kết quả tức thời của các quá
trình đang được thực hiện bởi các phép toán logic
trong chương trình hoặc lưu giữ các dữ liệu có
liên quan tới chương trình xử lý khác.
• Định dạng:
– Bit
V[byte address].[bit address]
Ví dụ: V10.2
– Byte, word, double word
V [size] [starting byte address]
Ví dụ: V W100
4.1.6. Định địa chỉ miền nhớ nội M
(Internal memory)

• Ý nghĩa: được sử dụng như là một control


relay, để lưu giữ các trạng thái tức thời của
một quá trình hoạt động nào đó hoặc một số
thông tin điều khiển.
• Định dạng:
– Bit
M[byte address].[bit address] M20.2
– Byte, word, double word
M [size] [starting byte address] MD20
4.1.7. Định địa chỉ miền nhớ S
(Sequence Control Relay memory)
• Ý nghĩa: dùng để tổ chức hoạt động của
một hệ thống gồm nhiều segment ngang
hàng nhau.
• Định dạng:
– Bit
S[byte address].[bit address] S3.2
– Byte, word, double word
S[size] [starting byte address] SB4
4.1.8. Định địa chỉ các bit SM
(Special Memory Bits)
• Ý nghĩa: cung cấp một phương tiện truyền thông giữa
CPU và chương trình điều khiển. Hoặc dùng để lựa chọn
và điều khiển một số hàm đặc biệt của CPU S7-200.
• Ví dụ: một bit chỉ được bật trong vòng quét đầu tiên, bật
tắt bit ở tốc độ xác định trước, thể hiện trạng thái của các
hàm toán học….(Appendix D)
• Định dạng:
– Bit
SM[byte address].[bit address] SM0.2
– Byte, word, double word
SM[size] [starting byte address] SMB86
4.1.9. Định địa chỉ miền nhớ T
(Timer Memory)
• Ý nghĩa: lưu giữ các giá trị của bộ Timer
– Giá trị hiện thời (Current value): số nguyên16bit (chứa số lần đếm
bởi Timer).
– Giá trị đầu ra của Timer (Timer bit) : bit này được set bằng 1 khi
giá trị đếm hiện thời của timer lớn hơn hoặc bằng giá trị đặt trước.
• Truy nhập tới Timer bit hay Current value phụ thuộc vào
câu lệnh:
– Câu lệnh với toán tử bit truy nhập tới timer bit
– Câu lệnh với toán tử word thì truy nhập tới current value
• Format:
T[timer number] T24
4.1.10. Định địa chỉ miền nhớ C
( Counter Memory)
• Ý nghĩa: lưu giữ các biến của Counter
– Current value: số nguyên 16 bit (chứa tổng số
đếm tích lũy).
– Counter bit: bit này được set ở 1 khi giá trị đếm
hiện thời của counter lớn hơn hoặc bằng giá trị
đặt trước.
• Format:
C[counter number] C20
4.1.10. Định địa chỉ AI
(Analog Inputs)
• Truy nhập tới địa chỉ các byte chẵn: AIW0, AIW2, AIW4.
• Truy nhập các giá trị này bằng cách:
– Tên vùng (AI)
– Kích cỡ của dữ liệu (W)
– Địa chỉ byte bắt đầu
• Format:
AIW [starting byte address] AIW8
4.1.11. Định địa chỉ AQ
(Analog Output)
• Sử dụng địa chỉ byte chẵn: AQW0, AQW2, AQW4...
• Format:
AQW [starting byte address] AQW10
4.1.12. Định địa chỉ AC
(Accumulators)
• CPU S7-200 cung cấp 4 thanh ghi AC chứa 32-bit
• Ý nghĩa: là thiết bị đọc/ghi được dùng như miền nhớ. Có thể
đưa vào hoặc lấy ra tham số từ chương trình con, lưu các giá trị
tức thời sử dụng cho các phép tính.
• Truy nhập dữ liệu trong thanh ghi chứa này dưới dạng: B, W, D.
• Format:
AC [accumulator number] AC1
Địa chỉ của Accumulators
4.1.13. Định địa chỉ HC
(High-speed Counters)
• Ý nghĩa: để đếm các sự kiện có tốc độ nhanh hơn tốc độ
đọc của CPU.
– Current value (32 bit): số integer có dấu.
• Format: (Chỉ truy nhập dạng D (32bit))
HC [high-speed counter number] HC1
4.1.14. Sử dụng các giá trị hằng
• Format:
– Decimal [decimal value]
– Hexadecimal 16#[hexadecimal value]
– ASCII „[ASCII text]‟
• Ví dụ:
– Decimal constant: 20047
– Hexadecimal constant: 16 # 4E4F
4.2. Định địa chỉ gián tiếp của miền nhớ

• Định địa chỉ gián tiếp (Indirect addressing): sử


dụng con trỏ (pointer) để truy nhập dữ liệu trong
miền nhớ.
• Ý nghĩa: giúp tối ưu hóa chương trình (nhanh
hơn, đỡ tốn vùng nhớ và vòng quét ngắn).
• Đặc điểm:
– truy nhập gián tiếp tới các miền nhớ sau: I, Q, V, M, S,
riêng T và C chỉ truy nhập đối với giá trị hiện thời).
– Không cho phép truy nhập đến các giá trị bit đơn lẻ, giá
trị analog (AI,AQ).
• Con trỏ (Pointer):
– Ý nghĩa: dùng để lấy địa chỉ gián tiếp trong miền nhớ hoặc lấy
nội dung của miền nhớ mà con trỏ đang trỏ tới. ( biến con trỏ
không chứa dữ liệu mà chỉ chứa địa chỉ của dữ liệu hay địa chỉ
của ô nhớ chứa dữ liệu) .
– Miền chứa (kích thước): Mỗi con trỏ đều chiếm vị trí trong
miền nhớ là 4 byte (D)(kích thước của con trỏ không phụ thuộc
vào kiểu của dữ liệu). Con trỏ được định nghĩa trong miền V
hoặc các thanh ghi accumulator (AC1, AC2, AC3).
– Tạo ra con trỏ: sử dụng lệnh MOVD (Move Double Word).
Toán tử đầu vào của lệnh MOVD phải đặt trước bởi ký hiệu &.
• Ví dụ:
MOVD &VB100, VD204
MOVD &MB4 , AC2
Sử dụng con trỏ để truy nhập dữ liệu
• (*) con trỏ: là toán hạng lấy nội dung của byte, word
hoặc double word mà con trỏ đang chỉ vào.
Thay đổi con trỏ

– Khi truy nhập theo byte, tăng giá trị con trỏ lên
1
– Khi truy nhập theo Word, tăng giá trị con trỏ
lên 2
– Khi truy nhập theo Double Word, tăng giá trị
con trỏ lên 4
• Kết luận:
– Con trỏ không chứa dữ liệu mà chỉ chứa địa chỉ
của ô nhớ chứa dữ liệu.
– Kích thước không phụ thuộc vào kiểu dữ liệu mà
luôn có kích thước không đổi là Double Word
HẾT BÀI 4
Bài 5
Chương 5 – Giới thiệu tập lệnh cơ bản
trong S7 200

• 5.1. Các vùng dữ liệu hợp lệ trong CPU S7-


200
• 5.2. Các lệnh tiếp điểm thông thường
• 5.3. Các lệnh đầu ra
• 5.4. Các lệnh tiếp điểm so sánh
5.1. Các vùng hợp lệ trong S7-200
5.2. Các lệnh tiếp điểm
• Các tiếp điểm chuẩn (Standard Contact)
• Các tiếp điểm tức thời (Immediate Contact)
• Tiếp điểm đảo trạng thái (NOT)
• Tiếp điểm chuyển đổi âm/dương (Negative,
Positive Transition)
Các tiếp điểm chuẩn
(Standard Contact)

• Toán hạng cho phép


(Operands): I, Q, M,
SM, T, C, V, S.
• STL: Load not, And
Not, Or Not.
Các tiếp điểm tức thời
(Immediate Contact)
• Operands : I
Tiếp điểm đảo trạng thái (NOT)
• Operands : không có
Tiếp điểm chuyển đổi theo sườn âm/dương
(Negative, Positive Transition)

• Operands: không có
Ví dụ1:
Ví dụ 2:
5.3. Các lệnh đầu ra
• Output
• Output Immediate
• Set, Reset
• Set, Reset Immediate
• No Operation
Output
• Operands:
n : I, Q, M, SM, T,
C,V, S
Output Immediate
• Operands: n: Q
Set, Reset
• Operands:
S_bit: I,Q, M, SM, T,
C, V, S
N: IB, QB, MB, SMB,
VB, AC, Constant,
*VD, *AC, SB.
Set, Reset Immediate
• Operands:
S_bit: Q
N: IB, QB, MB, SMB,
VB, AC, Constant,
*VD, *AC, SB.
No Operation
• Operands:
N: 0 đến 255
Ví dụ 1:
Ví dụ 2: so sánh lệnh output & set
Nhóm lệnh về bit
Tiếp điểm thường mở

Tiếp điểm thường đóng

Coil, ngõ ra
Đảo trạng thái bit

Set bit

Reset bit

Tiếp điểm chuyển dương

Tiếp điểm chuyển âm


5.4. Các lệnh tiếp điểm so sánh

• So sánh byte
• So sánh Word và Double Word
• So sánh số thực (Real)
Compare
Instructions
So sánh byte

• Operands: n1, n2: VB,


IB, QB, MB,
SMB, AC, Constant,
*VD, *AC, SB
So sánh word
• Operands:
n1,n2: VW, T, C, IW,
QW, MW, SMW, AC,
AIW, CONSTANT,
*VD, *AC, SW.
So sánh Double Word
• Operands:
n1, n2:
VD, ID, QD, MD,
SMD, AC,HC,
Constant, *VD, *AC,
SD.
So sánh số thực
• Operands:
n1, n2:
VD, ID, QD, MD,
SMD, AC, Constant,
*VD, *AC, SD.
Ví dụ: tiếp điểm so sánh
Ví dụ 2:
Bài tập
1/ Söû duïng phöông phaùp maïch töï giöõ ñeå khôûi ñoäng ñoäng cô theo phöông phaùp sao /tam giaùc.

2/ Söû duïng caùc taäp leänh veà Bit ñeå thöïc hieän vieäc khôûi ñoäng tuaàn töï 4 ñoäng cô theo thöù töï sau: +
Nhaán Start1 : ñoäng cô 1 khôûi ñoäng. Nhấn Stop1: ñoäng cô 1 taét.
+ Khi ñoäng cô 1 khoâng ñuû taûi, nhaán Start2 ñoäng cô 2 seõ hoaït ñoäng, nhaán Stop2 ñoäng cô 2 seõ taét (
khi ñaõ dö taûi…)
+Töông töï cho ñoäng cô 3 vaø 4 ( seõ ñöôïc khôûi ñoäng khi taûi töông öùng khoâng ñuû)
Trong quaù trình hoaït ñoäng gaëp söï coá ta coù theå nhaán nuùt Emergency ñeå döøng toaøn boä heä thoáng.

3/ Phaùt hieän chieàu di chuyeån cuûa vaät: Ñeå phaùt hieän chieàu di chuyeån cuûa vaät, ta phaûi söû duïng 2
Sensor keá tieáp nhau: Sensor1 vaø Sensor2. Tröôøng hôïp vaät di chuyeån theo chieàu thuaän : Sensor1 taùc ñoäng
roài ñeán Sensor2. Chieàu ngöôïc thì Sensor taùc ñoäng theo thöù töï ngöôïc laïi .

Gôïi yù : Baøi taäp coù theå söû duïng leänh P,N,Set,Reset Bit
Bài 6
5.5. Các lệnh điều khiển Timer, Counter
• Timer: Bộ tạo thời gian trễ có nhớ và không có
nhớ (On-Delay Timer/ Retentive On-Delay
Timer), có ký hiệu TON và TONR.
• Counter: Bộ đếm tiến và bộ vừa đếm tiến vừa
đếm lùi (Count up counter, Count up/Down
Counter), Ký hiệu CTU, CTUD.
5.5.1.Timer: Chế độ hoạt động
On-Delay Timer/ Retentive On-
Delay Timer
• Operands:
-Txxx: TON, TONR (có 256 timer)
- PT: VW, T, C, IW,QW,
MW, SMW, AC, AIW,
Constant, *VD,
*AC, SW
Địa chỉ và độ phân giải
Địa chỉ và độ phân giải (CPU 22x)
5.5.2. Counter

• Operands:
- Cxxx: 0 đến 255
- PV: VW, T, C, IW,
QW, MW, SMW,
AC, AIW, Constant,
*VD, *AC, SW
Chế độ hoạt động của các Counter
Bài tập
1/ Ñieàu khieån Ñeøn xanh, ñoû taïi ngaõ tö:
Xanh A : Trong 15s
Vaøng A : Trong 3s
Xanh B : Trong 25s
Vaøng B : Trong 4s
Ta coù theå môû roäng baøi toaùn cho ñieàu khieån coù theâm ñöôøng daønh cho
ngöôøi ñi boä.
Hết bài 6
Bài 7

Chương 5 - Tập lệnh của S7-200 (tt)


Chữa bài tập phần timer.
5.6. Các lệnh số học
5.7. Các lệnh điều khiển chương trình
5.8. Các lệnh Move & Fill
5.9. Các lệnh làm việc với ngăn xếp
5.6. Các lệnh số học
• Cộng trừ:
– số nguyên (Add, Subtract Integer)
• Integer (16 bit)
• Double Integer (32 bit)
– Cộng trừ số thực (Add, Subtract Real)
• Nhân chia:
– số nguyên (16 bit và 32 bit)
– số thực
• Phép lấy căn
Cộng trừ số nguyên (16 bit)

• Operands:
– IN1, IN2:
VW, T, C, IW, QW, MW, SMW,
AC,AIW, Constant,*VD, *AC, SW
– OUT:
VW, T, C, IW, QW, MW, SMW, AC,
*VD, *AC, SW
• LAD:
IN1 + IN2 = OUT
IN1 - IN2 = OUT
• STL:
IN1 + OUT = OUT
OUT - IN1 = OUT
Cộng trừ số nguyên (32 bit)
• Operands:
– IN1, IN2:
VD, ID, QD, MD, SMD,
AC,HC, Constant,*VD,
*AC, SD
– OUT:
VD, ID, QD, MD, SMD,
AC,*VD, *AC, SD
• LAD:
IN1 + IN2 = OUT
IN1 - IN2 = OUT
• STL:
IN1 + OUT = OUT
OUT - IN1 = OUT
Cộng trừ số thực
• Operands:
– IN1, IN2:
VD, ID, QD, MD, SMD,
AC,Constant,*VD, *AC,
SD
– OUT:
VD, ID, QD, MD, SMD,
AC,*VD, *AC, SD
• LAD:
IN1 + IN2 = OUT
IN1 - IN2 = OUT
• STL:
IN1 + OUT = OUT
OUT - IN1 = OUT
Nhân chia số nguyên
• Operands:
– IN1, IN2:
VW, T, C, IW, QW, MW, SMW, AC,AIW,
Constant,*VD, *AC, SW
– OUT:
VD, ID, QD, MD, SMD, AC,*VD,
*AC, SD
• LAD:
IN1 * IN2 = OUT
IN1 / N2 = OUT
• STL:
IN1 * OUT = OUT
OUT / IN1 = OUT
Nhân chia số thực
• Operands:
– IN1, IN2:
VD, ID, QD, MD, SMD,
AC,Constant,*VD, *AC, SD
– OUT:
VD, ID, QD, MD, SMD, AC,*VD,
*AC, SD
• LAD:
IN1 * IN2 = OUT
IN1 / N2 = OUT
• STL:
IN1 * OUT = OUT
OUT / IN1 = OUT
Lấy căn
Operands:
IN: VD, ID, QD, MD, SMD,

AC,Constant,*VD, *AC, SD

OUT: VD, ID, QD, MD, SMD,


AC,*VD, *AC, SD
Ví dụ về các lệnh số học
5.7. Các lệnh điều khiển chương trình

+ JBM, LBL
+ For/Next
JBM, LBL
• Operands:
n: 0 tới 255
Ví dụ
For/Next
• Operands:
– INDEX (Lưu số lần thực hiện): VW, T,
C, IW, QW, MW, SMW, AC,*VD,
*AC, SW
– INITIAL (giá trị bắt đầu): VW, T, C,
IW, QW, MW, SMW, AC,AIW,
Constant, *VD, *AC, SW
– FINAL (giá trị kết thúc): VW, T, C,
IW, QW, MW, SMW, AC, AIW,
Constant, *VD, *AC, SW
Ví dụ
5.8. Các lệnh Move, Fill
• Các lệnh dịch chuyển nội dung ô nhớ:
– Move Byte
– Move Word
– Move Double Word
– Move Real
– Swap Byte
• Các lệnh làm việc với mảng
– Block Move Byte
– Block Move Word
– Memory Fill
Move Byte
• Operands:
– IN: VB, IB, QB, MB,
SMB, AC, Constant,
*VD, *AC, SB
– OUT: VB, IB, QB, MB,
SMB, AC, *VD, *AC,SB
Swap Byte
• Dùng để trao đổi nội
dung của byte thấp và
byte cao trong từ đơn
(byte)
• Operands:
– IN: VW, T, C, IW,
QW, MW, SMW,
AC,*VD, *AC, SW
Ví dụ: MOVE và SWAP
Block Move Byte
• Operands:
– IN, OUT: VB,
IB, QB, MB,
SMB, *VD,
*AC, SB
– N: VB, IB, QB,
MB, SMB, AC,
Constant,
*VD, *AC, SB
Ví dụ:
Memory Fill
• Operands:
– IN: VW, T, C, IW, QW, MW,
SMW, AIW,Constant, *VD,
*AC, SW
– OUT: VW, T, C, IW, QW, MW,
SMW, AQW,*VD, *AC, SW
– N: VB, IB, QB, MB, SMB, AC,
Constant,*VD, *AC, SB
Ví dụ
5.9. Các lệnh tác động tới ngăn xếp

• And Load (ALD)


• Or load (OLD)
• Logic Push (LPS)
• Logic Read (LRD)
• Logic Pop (LPP)
Toán hạng ngăn xếp logic
Ví dụ
Hết bài 7
Bài 8
Chương 5 - Tập lệnh của S7-200 (tt)
5.10. Các lệnh dịch bit
5.11. Các lệnh chuyển đổi
5.12. Lệnh đọc thời gian thực
5.10. Các lệnh về dịch bit
a. Lệnh thanh ghi dịch bit:
dùng để đưa một giá trị vào trong thanh
ghi dịch.
Data: giá trị được đưa vào thanh ghi dịch
S_bit: bit có trọng số nhỏ nhất của thanh
ghi
N: cho biết độ dài của thanh ghi & chiều
dịch chuyển của bit (N<0 shift minus &
N>0 shift plus)
b. Lệnh dịch trái dịch phải byte, Word, DWord
• Operans:
– DATA, S_BIT: I, Q, M, SM, T, C, V, S.
– N: VB, IB, QB, MB, SMB, AC,Constant, *VD, *AC,
SB.
• Ý nghĩa: sắp xếp một chuỗi các số hoặc các ký tự theo một
trật tự nhất định.
c. Lệnh xoay trái, xoay phải byte
5.11. Các lệnh chuyển đổi
• I_DI: ñoåi soá nguyeân 16 bit sang soá
nguyeân 32 bit
• DI_I: ñoåi soá nguyeân 32 bit sang soá
nguyeân 16 bit
• DI_R: ñoåi soá nguyeân 32 bit sang soá
thöïc
• BCD_I: ñoåi soá BCD 16 bit sang soá
nguyeân 16 bit
• I_BCD: ñoåi soá nguyeân 16 bit sang soá
BCD
5.12. Lệnh đọc thời gian thực
Bài tập
• Viết chương trình điều khiển đèn đường
giao thông sử dụng lệnh đọc thời gian thực.
Hết bài 8
Bài 9
Chương 6: Một số lệnh mở rộng và
những bài toán ứng dụng
Tóm tắt nội dung chính
• 6.1.Lệnh ngắt trong PLC
6.1.1.Bảng sự kiện ngắt và thứ tự ưu tiên ngắt
6.1.2. Khai báo và sử dụng các ngắt thời gian và
ngắt phần cứng
6.1.3. Các ví dụ về ngắt
Ý nghĩa và cách sử dụng các ngắt
• Giúp phản ứng nhanh với các sự kiện.
• Chương trình ngắt phải thực hiện ngắn gọn, thời
gian thực hiện không được quá lâu.
• Chương trình ngắt thực hiện xong phải trở về
chương trình chính.
• Không sử dụng một số câu lệnh sau trong chương
trình ngắt: DISI, ENI, CALL, HDEF, FOR/NEXT,
LSCR, SCRE, SCRT, và END
• Hệ thống hỗ trợ ngắt bằng cách tự động Save/Load các giá
trị quá trình vào/từ các thanh ghi AC, đỉnh ngăn xếp và
các bit nhớ SM.
• Giữa chương trình chính và ngắt có thể dùng chung dữ
liệu.
• Sử dụng tối đa 128 ngắt trong một chương trình.
• Các ngắt được thực hiện theo cơ chế first – come – first –
served.
• Tại một thời điểm chỉ có một chương trình ngắt được thực
hiện
6.1.1. Bảng sự kiện ngắt và thứ tự ưu tiên ngắt

Bảng sự kiện ngắt


Bảng sự kiện ngắt (tt)
Phân loại
• Communication Port Interrupts
• I/O Interrupts
• Time-Based Interrupts
Communication Port Interrupts
• Chế độ hoạt động cổng truyền thông này được gọi là chế
độ Freeport.
• Trong chế độ này: chương trình phải định ra tốc độ
truyền, số bit tối đa của một ký tự, bit kiểm tra chẵn lẻ
(parity), và giao thức truyền thông.
• Các ngắt truyền và ngắt nhận được thực hiện để điều
khiển chương trình truyền thông.
I/O Interrupts
• Ngắt sườn lên/xuống của đầu vào
• Các ngắt cho bộ đếm tốc độ cao
• Các ngắt đầu ra điều chế độ rộng xung
Time-Based Interrupts
• Có hai loại ngắt:
– Ngắt định thời gian (Timed interrupt)
– Các ngắt Timer T32/T96
• Sử dụng 2 byte điều khiển: SMB34 cho ngắt
timer 0 và SMB35 cho ngắt timer 1.
• Chu kỳ thời gian cho phép: từ 5ms đến 255ms.
Priority và Queue
• Priority:
– Ngắt truyền thông (ưu tiên cao nhất),
– Ngắt I/O
– Ngắt Time base (ưu tiên thấp nhất)
Bảng thứ tự ưu tiên đối với các sự kiện ngắt
Bảng thứ tự ưu tiên đối với các sự kiện ngắt (tt)
Bảng thứ tự ưu tiên đối với các sự kiện ngắt (tt)
Hàng đợi (Queue)
Số lượng ngắt lớn nhất trong một hàng đợi

Các bit nhớ SM dùng khi hàng đợi bị quá tải


6.2.2. Khai báo và sử dụng các ngắt
Lệnh ATCH (Attach Interrupt)

• Trước khi một chương trình ngắt được gọi: thì cần phải thiết lập mối quan hệ
giữa một đoạn chương trình (mà muốn thực hiện ngắt) với các sự kiện ngắt.
• Sử dụng câu lệnh (ATCH) để thực hiện liên kết sự kiện ngắt (được xác định
bởi số sự kiện ngắt)và các đoạn chương trình cần thực hiện ngắt (được xác
định bởi số chương trình ngắt.
• Có thể thiết lập liên kết cho nhiều sự kiện ngắt tới một chương trình ngắt
nhưng không thể thực hiện liên kết cho một sự kiện ngắt với nhiều chương
trình ngắt
• Lệnh DTCH (Detach Interrupt)

Detach Interrupt:
Dùng để làm mất tích cực của từng sự kiện ngắt r
biệt bằng cách phá bỏ mối liên kết giữa đoạn chươ
trình ngắt với sự kiện ngắt đó, sử dụng DTCH tro
chương trình ngắt.

Enable Interrupt & Disable Interrupt:


Nếu như sử dụng câu lệnh DISI để làm mất t
của tất cả các ngắt, thì việc thực hiện mỗi ng
xếp hàng thứ tự cho đến khi cho phép các ng
tích cực lại, sử dụng ENI
Ví dụ 1: Sử dụng ngắt timed để lấy mẫu đầu vào analog
Ví dụ 2: Sử dụng ngắt I/0 để thực hiện đếm tiến/lùi
MAIN
INTERRUPT 5

INTERRUPT 6
Sinh viên tự nghiên cứu phần HSC và
PTO/PMW
Bài 10
6.2. Bộ đếm tốc độ cao (HSC)
• 1 - Bộ đếm tốc độ cao là gì?
• 2 - Các đầu vào của HSC
• 3 - Các chế độ hoạt động của HSC
• 4 - Byte điều khiển
• 5 - Thiết lập CV và PV
• 6 - Byte trạng thái
• 7 - Các ngắt trong HSC
• 8-Thực hiện một số chế độ hoạt động của HSC
1- Bộ đếm tốc độ cao là gì?
• HSC là gì? Là bộ đếm tốc độ cao, được sử dụng để đếm các sự kiện
xảy ra với tần số cao (chu kỳ xuất hiện lớn hơn chu kỳ quét của
CPU) mà các bộ đếm thường trong CPU không thực hiện được.
• Tần số đếm của HSC phụ thuộc vào loại CPU.
Vùng nhớ đặc biệt để lập trình cho HSC
• Câu lệnh trong HSC:
– High-Speed Counter
Definition (HDEF)
– Câu lệnh High – Speed
Counter (HSC)
HSC: 0 to 5
MODE: 0 (HSC0)
0 tới 11 (HSC1 or 2)
N: 0 tới 2
Hoạt động của bộ đếm HSC
• Bộ giải mã cung cấp xung clock và reset cho bộ đếm HSC.
• Đầu ra của HSC tích cực trong khoảng thời gian mà giá trị CV nhỏ
hơn hoặc bằng với giá trị PV.
• Khi CV=PV thì HSC sẽ thực hiện một ngắt đồng thời lúc đó lệnh
reset counter cũng thực hiện và giá trị mới PV được cập nhật.
• Khi sự kiện ngắt bị reset thì giá trị PV và trạng thái đầu ra đầu tiên lại
được lặp lại.
• Vì các sự kiện ngắt xảy ra chậm hơn rất nhiều so với tốc độ đếm của
counter do đó mỗi một sự kiện ngắt nên được thực hiện trong một
chương trình ngắt riêng biệt.
Các bước khởi tạo bộ đếm HSC
– Nạp giá trị cho byte điều khiển
– Gán bộ đếm với Mode tương ứng (dùng lệnh HDEF)
– Khởi tạo giá trị hiện thời (CV)
– Nạp giá trị đặt trước (PV)
– Gán chương trình ngắt với các sự kiện ngắt (lệnh ATCH
– nếu sử dụng ngắt)
– Cho phép ngắt
– Chọn bộ đếm thực hiện (Lệnh HSC)

Chú ý:
- Toàn bộ các bước trên đều được thực hiện trong một chương trì
HSC.
- Việc khởi tạo này chỉ thực hiện một lần, khi nào cần thay đổi giá
2- Các đầu vào của HSC
3- Các chế độ hoạt động của HSC
• Mode 0, 1, 2: dùng đếm một pha với hướng đếm được xác định
bởi bit nội.
• Mode 3, 4, 5: dùng đếm một pha với hướng đếm được xác định
bởi bit ngoại, tức là có thể chọn từ đầu vào Input.
• Mode 6,7,8: dùng đếm 2 pha với 2 xung vào, một xung đếm tăng
một xung đếm giảm.
• Mode 9,10, 11: dùng để đếm 2 xung A/B của Encoder, có 2
dạng:
– Dạng 1: đếm tăng 1 khi có xung A/B quay theo chiều thuận, đếm giảm 1
khi có xung A/B quay theo chiều nghịch.
– Dạng 2: đếm tăng 4 khi có xung A/B quay theo chiều thuận, đếm giảm 4
khi có xung A/B quay theo chiều nghịch.
• Mode 12: chỉ áp dụng với HSC0 & HSC3. HSC0 dùng để đếm
xung phát ra từ Q0.0 & HSC3 đếm xung từ Q0.1 (phát ra ở chế
độ phát xung nhanh mà ko cần đấu nối phần cứng).
4 - Byte điều khiển (Control Byte)
Chọn kiểu reset, start và tần số đếm cho HSC
Hoạt động của đầu vào reset & start
Chế độ 1X
Chế độ 4X
Vai trò của Byte điều khiển

• Bộ đếm HSC có hoạt động hay không.


• Hướng đếm: đếm tiến hoặc đếm lùi
• Cho phép giá trị CV được cập nhật mới hay
không.
• Cho phép giá trị PV được cập nhật mới hay
không
5-Thiết lập CV và PV

Ghi các giá trị CV và PV mới cho HSC

Chú ý: Các giá trị mới của CV và PV chỉ thực sự được cập nhật ch
khi lệnh HSC được thực hiện
Đọc giá trị hiện thời (CV) của HSC
6 - Byte trạng thái (Status Byte)

Mô tả:
+ Hướng đếm
+ Khi giá trị hiện tại bằng giá trị đặt
7 – Các ngắt trong HSC
• HSC0: gọi ngắt khi CV=PV
• HSC1 và HSC2 gọi ngắt khi 1 trong 3 trường
hợp xảy ra:
– khi CV=PV
– khi đầu vào Reset tích cực
– khi chiều đếm của bộ đếm thay đổi
8 – Thực hiện một số chế độ hoạt động của
HSC
• 1- Khởi tạo hoạt động của HSC (ở các chế độ 0,
1 hoặc 2)
• 2- Thay đổi chiều đếm của HSC ở các chế độ
đó
• 3- Thay đổi giá trị CV mới
• 4- Thay đổi giá trị PV mới
• 5- Tắt hoạt động của HSC
8.1- Khởi tạo hoạt động của HSC1
(ở các chế độ 0, 1, 2)
• B1: Trong Main: sử dụng bit SM0.1 để gọi chương trình con.
• B2: Trong chương trình con
Thiết lập byte điều khiển (SMB47) để cho phép HSC hoạt
động (theo chế độ mong muốn)
• B3: Thực hiện câu lệnh HDEF (HSC=1, MODE=0)
• B4: Load giá trị CV vào SMD48 (Double Word)
• B5: Load giá trị PV vào SMD52 (Double Word)
• B6: Thực hiện ngắt khi CV=PV (Event 13)
• B7: Thực hiện ngắt khi Reset từ bên ngoài (Event 15)
• B8: Thực hiện lệnh ngắt toàn cục (ENI)
• B9: Thực hiện lệnh HSC
• B10: Thoát khỏi chương trình con
8.2- Thay đổi chiều đếm của HSC

+ Bước 1: Load giá trị mới vào byte điều khiển


SMB47
SMB47= 16#90 -> HSC được đếm và
đếm lùi
SMB47= 16#98 -> HSC được đếm &
đếm tiến
+ Bước 2: Thực hiện câu lệnh HSC
8.3- Thay đổi giá trị CV mới
• Bước 1: Load giá trị mới vào Byte điều khiển
SMB47
(VD: SMB47 = 16#C0: ghi giá trị CV mới)
• Bước 2: Load giá trị mới vào SMD48
(SMD48= 0 xoá về 0)
• Bước 3: Thực hiện HSC
8.4- Thay đổi giá trị PV mới
• Bước 1: Load giá trị mới vào SMB47
(VD: SMB47 = 16#A0: ghi giá trị PV mới)
• Bước 2: Load giá trị mới vào SMD52
• Bước 3: Thực hiện HSC

VD: vừa thay đổi PV lại vừa thay đổi hướng đếm thì
SM47 = 16#B0
8.5- Tắt hoạt động của HSC
• Bước 1: Load 16#00 vào SMB47
• Bước 2: Thực hiện HSC
Ví dụ: Khởi tạo HSC1 ở chế độ 1, khi CV = PV
thực hiện ngắt và reset bộ đếm
MAIN
SUBROUTINE
INTERRUPT
Bài tập ứng dụng
• Bài tập 1: Lập trình với HSC1.
- Viết chương trình khởi tạo bộ đếm HSC1 hoạt động ở
Mode 1, chế độ 1X, xuất kết quả đếm ra vùng nhớ QW2.
- Tạo xung có tần số 1hZ tại Q0.0 cấp vào ngõ vào xung
Clock, quan sát trạng thái ngõ ra tại QW2 khi HSC1
hoạt động ở Mode 1. Trong quá trình hoạt động, tác
động chân Reset để kiểm tra việc xóa bộ đếm.
Bài 11
6.3. Phát xung tốc độ cao
• 1- Đầu ra tốc độ cao (High – Speed Output)
• 2- Hoạt động của PTO (Pulse Train Output)
• 3- Hoạt động của PWM (Pulse Wide Modulation)
1- Đầu ra tốc độ cao
• CPU S7-200 có hai đầu ra xung tốc độ cao là: Q0.0
& Q0.1, dùng cho việc điều chế độ rộng xung tốc độ
cao nhằm đk các thiết bị khác.
• Phương pháp:
– Điều chế độ rộng xung 50% (PTO)
– Điều chế độ rộng xung theo tỉ lệ (PWM)
Byte điều khiển cho chế độ phát xung tốc độ cao PTO/PWM
2- Hoạt động của PTO
• PTO cung cấp đầu ra là dãy xung vuông (50% chu
kỳ) gồm số xung và chu kỳ mong muốn.
– Số xung: 0 tới 4,294,967,295
– Chu kỳ: 10 μs tới 65,535 μs hoặc 2 ms tới 65,535 ms.
• Các bước thực hiện:
– Reset đầu ra xung tốc độ cao ở chu kỳ đầu của chương trình.
– Chọn loại đầu ra xung là Q0.0 hay Q0.1
– Định dạng thời gian cơ sở (time base) theo bảng
– Các byte cho việc định dạng
• SMB67 (Q0.0)
• SMB77 (Q0.1)
– Ngoài ra:
Byte điều khiển ở chế độ PTO
Chế độ hoạt động PTO
• Khởi tạo chế độ hoạt động của PTO
• Thay đổi thời gian chu kỳ (Cycle Time)
• Thay đổi số xung (Pulse Count)
• Thay đổi đồng thời cả chu kỳ và số xung
Thay đổi số xung
(Pulse Count)
• Bước 1: Load 16#84 (16#8C) vào SMB67
• Bước 2: Load số xung vào SMW72
• Bước 3: Thực hiện câu lệnh PLS
• Bước 4: Thoát khỏi chương trình con
Ví dụ: thực hiện điều chế độ rộng xung kiểu
PTO theo giản đồ tại đầu ra Q0.0
Chương trình viết bằng LAD
MAIN
SUBROUTINE

19
SUBROUTINE
INTERRUPT (INT_0)
3. Hoạt động của PWM
• PWM cung cấp đầu ra có thời gian chu kỳ cố định (Cycle time) với độ rộng
xung (duty cycle) có thể thay đổi.
– Cycle time: 10 μs tới 65,535 μs hoặc
2 ms tới 65,535 ms
– Pulse width time: 0 μs tới 65,535 μs
0 ms tới 65,535 ms
• Các bước định dạng: (tương tự như PTO)
– Reset đầu ra xung tốc độ cao ở chu kỳ đầu của
chương trình.
– Chọn loại đầu ra xung là Q0.0 hay Q0.1
– Định dạng thời gian cơ sở (time base) theo bảng
– Các byte cho việc định dạng
• SMB67 (Q0.0)
• SMB77 (Q0.1)
– Ngoài ra:
Byte điều khiển ở chế độ PWM
Khởi tạo hoạt động của PWM
• Khởi tạo PWM cho đầu ra Q0.0
• Thay đổi độ rộng xung ở đầu ra
Khởi tạo PWM cho đầu ra Q0.0
• Bước 1: Sử dụng SM0.1:
– Set đầu ra Q0.0=0
– GọI chương trình con. (Subrountine)
• Bước 2: Thực hiện chương trình con
– Load giá trị 16#C3 (16#CB ) vào SM67
– Các giá trị này cho phép:
• Hàm PTO/PWM hoạt động
• Lựa chọn tăng theo ms /ms
• Đặt giá trị độ rộng xung và thờI gian chu kỳ
• Bước 3: Load Cycle Time vào SMW68
• Bước 4: Load Pulse Width vào SMW70
• Bước 5: Thực hiện câu lệnh PLS
• Bước 6: Load 16#D2 ( 16#DA) vào SMB67
• Bước 7: Thoát khỏI chương trình con
Thay đổi độ rộng xung ở đầu ra

• Bước 1: Load Pulse Width mới vào


SMW70
• Bước 2: Thực hiện lệnh PLS để tạo ra bộ
phát xung mới
• Bước 3: Thoát khỏi chương trình con
Ví dụ: Thực hiện việc điều chế độ rộng xung
kiểu PWM theo giản đồ, tại đầu ra Q0.1
MAIN
SUBROUNTINE_0
SUBROUNTINE_1
Bài tập ứng dụng

• Viết chương trình điều khiển Q0.0 và Q0.1


hoạt động như hình dưới . Biết rằng tần số
phát ra tai Q0.0 và Q0.1 là 2hZ.
Bài 12
6.4. Xử lý tín hiệu Analog
1. Đọc tín hiệu analog từ Module EM231
2. Xuất tín hiệu analog qua Module EM232

Chú ý: khi xử lí tín hiệu analog cần lưu ý 3 điểm sau:


- Tín hiệu đo
- Dải đo
- Độ phân giải
AIW0= 0111 1111 1111 1000 = 32767
AIW0= 0111 1101 0000 0000 = 32000
Siemen ghi 32000 tương ứng với 10V – do nhà sản xuất qui đị
1- Đọc tín hiệu từ modul EM231
Đặc tính chung của các module input
Lựa chọn dải điện áp đầu vào cho
module analog
Cách định dạng các bit dữ liệu
trong thanh ghi analog
Phương pháp đọc tín hiệu analog
• Xây dựng phương trình đường thẳng đi qua 2 điểm.
– Giả xử có 2 điểm: (x1, t1) & (x2, t2).
– Phương trình đi qua 2 điểm có dạng:
(x-x1)/(x2 – x1) = (y-y1)/(y2 – y1)
Rút y theo x => phương trình khối lượng theo AIW

Ví dụ: Giả sử đọc từ cảm biến nhiệt độ thu được 2 điểm


(0,0) & (32000, 1000)
Suy ra phương trình: y = x/32
Như vậy: nhiệt độ thực tế = AIW/32
Ví dụ 1
• Đọc tín hiệu đo mức nước có dải đo từ 0m-40m. Tín
hiệu truyền về là 4-20mA. Nhiệm vụ là phải hiển thị
được con số mực nước lên HMI.
Giả sử S7200 có module đọc analog có độ phân giải từ
4000 đến 32000, nghĩa là 4mA đọc vào thì trong PLC
hiểu là 4000 đơn vị và 20mA đọc về là 32000 đơn vị.

Nếu tín hiệu thực tế đo được là 8mA, hỏi mức nước cần
tính toán và hiển thị trên HMI là bao nhiêu?
Ví dụ 2
2- Xuất tín hiệu analog qua Module
EM232
• Các tín hiệu có thể xuất ra qua EM232
– Tín hiệu đơn cực (tín hiệu dòng điện): 0 – 20mA.
– Tín hiệu lưỡng cực (tín hiệu điện áp): -10 – 10 VDC
– Tín hiệu 0 – 20mA tương ứng với giá trị 0 – 32000
– Tín hiệu -10VDC – 10VDC tương ứng với -32000 –
32000.
• Vùng nhớ được đưa vào AQW
Ví dụ
• Module đầu ra analog có độ phân giải là 12bit.
Muốn xuất tín hiệu đầu ra là 8v thì phải đưa ra
giá trị thanh ghi đầu ra analog là bao nhiêu?

Giá trị số cần đưa ra

32000
?

8v 10v U
Bài 13

6.5. LẬP TRÌNH TRUYỀN THÔNG

323
Nội dung
• 6.5.1 - Truyền thông Freeport
• 6.5.2 - Truyền thông sử dụng giao thức Modbus

324
6.5.1– Truyền thông Freeport
• 1. Chế độ Freeport và hoạt động của nó
• 2. Ví dụ

325
Bar Code Reader

326
327
I- Freeport Communication
• 1. Chế độ Freeport cho phép chương trình kiểm soát được các cổng truyền
thông của CPU S7-200. Ở chế độ này có thể thực hiện các giao thức truyền
thông Use – Defined ( Freeport) để giao tiếp với các thiết bị thông minh mà có
hỗ trợ RS 232.
• Hoạt động ở chế độ Freeport:
– Được thực hiện thông qua các BYTE đặc biệt SMB30 (port 0) và SMB130
(port 1).
– Lệnh truyền (XMT) & ngắt truyền: lệnh truyền chó phép S7 200 truyền
tối đa lên tới 255 ký tự từ cổng COM. Ngắt truyền sẽ thông báo cho chương
trình trên S7 200 biết khi việc truyền đã kết thúc.
– Ngắt nhận ký tự: sẽ thông báo cho chương trình biết một ký tự đã được
truyền qua cổng COM.
– Lệnh nhận (RCV): sẽ thực hiện nhận toàn bộ bản tin từ cổng COM và sau
đó đưa ra một ngắt trong chương trình khi bản tin đó đã nhận xong. Trong
S7 200 cho phép sử dụng byte SM để cấu hình cho lệnh RCV nhận biết ký
tự bắt đầu và kết thúc một bản tin.

Chú ý: Chế độ FreePort chỉ hoạt động (Active) khi CPU ở chế độ RUN.
328
1.1. Sử dụng cáp RS232/PPI Multi – Master trong
chế độ Freeport

Hai trường hợp cần sử dụng


turnaround time là:

- CPU S7 – 200 trả lời thông tin


nhận được từ thiết bị RS232;

- Thiết bị RS232 trả lời thông tin


nhận được từ CPU S7 – 200.

Chú ý: Việc tạo thời gian trễ cho phép cáp PC/PPI đủ thời gian chu
Sang chế độ nhận, vì vậy dữ liệu có thể được truyền từ từ 329
cổng RS
1.2. Khởi tạo chế độ Freeport

Thiết lập Byte điều khiển SM cho chế độ Freeport (SMB30


330 h
1.3. Lệnh truyền/nhận ở chế độ Freeport

331
Truyền dữ liệu (XMT)
Lệnh truyền dữ liệu:
Gửi đi dữ liệu trong một bộ đệm (gồm một hay nhiều ký tự (t

Định dạng bộ đệm truyền

Chú ý: - Khi việc truyền một khung dữ liệu kết thúc (ký tự cuối
cùng trong bộ đệm được gửi đi) thì s7 200 đưa ra một ngắt.
Ngắt số 9 – Port 0
Ngắt số 26 – Port 1
- Có thể thực hiện truyền mà ko sử dụng ngắt mà sử dụng
bít SM 332
Nhận dữ liệu (RCV)
Lệnh nhận dữ liệu:
Nhận dữ liệu lưu vào bộ đệm (gồm một hay nhiều ký tự (tới 2

Định dạng bộ đệm nhận

Chú ý: - Khi việc nhận một khung dữ liệu kết thúc (ký tự cuối
cùng trong bộ đệm nhận được) thì s7 200 đưa ra một ngắt.
Ngắt số 23 – Port 0
Ngắt số 24 – Port 1
- Có thể thực hiện việc nhận dữ liệu ko sử dụng ngắt mà
sử dụng bít SM
SMB86 – Port 0 – Set lên 1 khi việc nhận kết
333thúc

SMB186 – Port 1
Các byte trong bộ đệm nhận
SMB86 đến SMB94 : Port 0
SMB186 đến SMB194: Port 1

Ví dụ: SMB86 = 2#0010 000 =16# 20 – khi nhận được ký tự cu


334
Ví dụ: SMB87 = 2#1110 0000
335
hoặc: SMB87 = 2#1011 0000
Điều kiện để bắt đầu và kết thúc lệnh nhận dữ liệu

Chú ý:
- Có thể sử dụng
+ SMW90 thay cho SMB88 - kiểm tra điều kiện bắt đầu m
+ SMW92 thay cho SMB89 – kiểm tra điều kiện kết thúc m
- SMB2 là byte nhớ đệm nhận ký tự trong suốt quá
trình truyền thông ở chế độ Freeport
- SM3.0: kiểm tra lỗi (Freeport parity error ) trong quá
trình truyền dữ liệu 336
SMW90 lưu giá trị Idle line time (khoảng thời gian tối thiểu giữa 2

Sử dụng Idle line time để bắt đầu thực hiện lệnh nhận dữ

SMW92 lưu giá trị Message timer (Inter-character)

Sử dụng Message timer để kết thúc lệnh nhận dữ337liệu


2. Ví dụ

338
Các bước thực hiện
• 1. Viết chương trình trên STEP7-Micro/Win
• 2. Thiết lập cổng truyền thông
• 3. Thiết lập cáp RS232/PPI Multi Master
• 4. Sử dụng chương trình truyền Com và hiển thị
kết quả.

339
1. Viết chương trình trên STEP7-Micro/Win

Freeport Control Register

340
341
342
343
Ngắt nhận (Recive Interrupt)
INT_0

344
Ngắt timer

345
Ngắt truyền
(Transmit Interrupt)

346
6.5.2 - Truyền thông sử dụng giao thức
Modbus
• 1. Giới thiệu chung
• 2. Một số yêu cầu khi sử dụng giao thức
Modbus
• 3. Địa chỉ Modbus
• 4. Sử dụng khối Modbus Slave
• 5. Sử dụng khối Modbus Master
• 6. Ví dụ

347
Modbus là gì?
• Modbus là một phương tiện (giao thức) truyền thông giữa nhiều thiết bị với nhau
thông qua cặp dây xoắn ( sợi quang, không dây, ethernet, điện thoại di động... )
• Theo mô hình ISO/OSI thì Modbus thực chất là một chuẩn giao thức dịch vụ thuộc
lớp ứng dụng.
• Cơ chế vận chuyển:
– Nối tiếp (RS232 hoặc RS485) – Modbus chuẩn
– Qua TCP/IP – Modbus qua Ethernet
• Hệ thống Modbus là một hệ thống “Chủ - tớ” (Master - Slave).
– Master: PC, PLC, DCS, RTU…
– Slave: thiết bị trường, PLC ….
• Có 3 chế độ truyền:
– Modbus ASCII
– Modbus RTU
– Modbus/TCP

348
1. Giới thiệu chung
• Thư viện hàm của Step 7 Micro/Win hỗ trợ truyền thông giữa
CPU S7 200 với các thiết bị Modbus Master/Slave một cách dễ
dàng.
• Các khối lệnh Modbus được cài đặt trong thư viện nó giúp cho
CPU S7 200 trở thành một thiết bị Modbus.
• Khối lệnh Modbus – Slave: cấu hình S7 200 thành thiết bị
Modbus RTU Slave
• Khối lệnh Modbus – Master: cấu hình S7 200 thành thiết bị
Modbus RTU Master

349
2. Một số yêu cầu khi sử dụng giao thức
Modbus
• Khối lệnh Modbus Master sử dụng các nguồn tài nguyên sau
của S7-200:

– Khởi tạo khối Modbus Master sẽ dành 1 cổng của CPU cho
truyền thông Modbus.
– Các lệnh trong khối Modbus Master tác động đến tất cả các
biến SM liên quan đến truyền thông Freeport trên cổng
truyền thông CPU tương ứng.
– Sử dụng 3 chương trình con và 1 ngắt.
– Sử dụng 1 khối 284 byte thuộc vùng nhớ V.
– CPU S7-200 cần có phiên bản 2.00 trở lên để hỗ trợ thư viện
giao thức Modbus Master.

350
2. Một số yêu cầu khi sử dụng giao thức
Modbus (tt)
• Khối lệnh Modbus Slave sử dụng các nguồn tài nguyên sau của
S7-200:
– Khởi giao thức Modbus Slave để chỉ định cổng 0 cho việc
truyền thông giao thức Modbus Slave. Lệnh MBUS_INIT sẽ
kiểm soát việc cổng 0 ở chế độ Modbus Slave hay PPI.
– Các lệnh Modbus Slave tác động đến tất cả các biến SM liên
quan đến truyền thông Freeport trên cổng 0.
– Sử dụng 3 chương trình con và 2 ngắt.
– Sử dụng 1 khối 779 byte thuộc vùng nhớ V.

351
3. Địa chỉ Modbus
• Địa chỉ Modbus được định dạng dưới kiểu giá trị gồm 5 ký tự
(ký tự đầu là kiểu dữ liệu, 4 ký tự còn lại là Offset)
• Modbus Master

• Modbus Slave

Chú ý: Tất cả các địa chỉ Modbus đều là địa chỉ cơ sở 1 352
( nghĩ
là tính địa
Tham chiếu địa chỉ Modbus tới CPU S7- 200

353
4. Sử dụng khối Modbus Slave
• Trong khối Modbus Slave hỗ trợ 2 lệnh:
– MBUS_INIT
– MBUS_SLAVE
• Các bước thực hiện:
– Thực hiện lệnh MBUS_INIT: để khởi tạo và thay đổi các tham số truyền
thông Modbus. Khi lệnh MBUS_INIT thực hiện, một số chương trình con và
ngắt ẩn sẽ tự động được thêm vào chương trình.
– Đặt địa chỉ khởi đầu cho 779 byte liên tiếp thuộc vùng nhớ V (yêu cầu bắt
buộc của các lệnh Modbus Slave).
– Thực hiện khối lệnh MBUS_SLAVE: được gọi ở tất cả các vòng quét.
– Kết nối cáp truyền thông với cổng 0 ở S7-200 với thiết bị Modbus Master.

Chú ý: phải đảm bảo địa chỉ đặt trong miền V ko bị trùng với miề
Master truy cập. 354
Lệnh khởi tạo Slave
+ Mode: lựa chọn giao thức truyền thông là
Modbus (=1)
hoặc PPI (=0)
+ Baud: tốc độ truyền
(1200,2400,4800,9600,19200, 38400,57600
và 115200)
+ Addr: định địa của thiết bị Slave từ 1 đến
247
+ Parity: kiểm tra chẵn lẻ 0 - Không có parity
1- Parity lẻ
Đầu vào/Đầu ra2- Parity chẵn
Kiểu

+ Delay: thời gian chuẩn kết thúc


Mode,Addr,Parity BYTEmột bản tin

(0 – 32767ms)Baud,HoldStart DWORD

+ MaxIQ: số lượng vào/ra


Delay,MaxIQ,
MaxAI,MaxHold
số (0-128)
WORD

+ MaxAI: số lượng
Done vào analog BOOL(0-32) 355
+ MaxHold: sốError
lượng thanh ghiBYTE lưu giữ V
Ví dụ

356
Lệnh Modbus Slave

Lệnh thực hiện để đáp ứng yêu cầu từ Master

Tham số Kiểu dữ liệu

Done BOOL

Error BYTE

357
Bảng mã lỗi
Mã lỗi Mô tả
0 Không có lỗi
1 Lỗi miền vùng nhớ
2 Tốc độ Baud hoặc parity sai
3 Địa chỉ Slave sai
4 Tham số Modbus sai
5 Vùng thanh ghi lưu trữ trùng với vùng biến Modbus Slave
6 Parity nhận được sai
7 Mã CRC nhận được sai
8 Hàm yêu cầu sai hoặc không được hỗ trợ
9 Địa chỉ vùng nhớ ở yêu cầu sai
10 Chức năng Slave không được bật

358
5. Sử dụng khối Modbus Master
- Khối Modbus Master hỗ trợ 2 lệnh sau:
+ MBUS_CTRL
+ MBUS_ MSG
- Các bước thực hiện:

+ Thực hiện lệnh MBUS_CTRL: để khởi tạo và thay đổi tham số truyền
thông Modbus (thực hiện trong tất cả các vòng quét). Khi lệnh này được
thực hiện thì tất cả các chương trình con và ngắt ẩn sẽ được tự động add
vào chương trình.
+ Sử dụng Library Memory để thực hiện cài đặt các vùng nhớ của 2 khối
lệnh.
+ Thực hiện lệnh MBUS_MSG
+ Kết nối cáp truyền thông giữa cổng 0 của S7 200 với thiết bị Modbus
Slave

359
Lệnh khởi tạo Master
• Mode: lựa chọn giao thức truyền thông
• Parity: phải đặt trùng với thiết bị Modbus Slave
• Timeout: thiết lập số ms phản ứng từ Slave

Đầu vào/Đầu ra Kiểu

Mode BOOL
Baud DWORD
Parity BYTE
Timeout INT
Done BOOL
Error BYTE

360
Ví dụ

Mã Lỗi Miêu tả
0 Không có lỗi
1 Chọn Parity không đúng
2 Chọn tốc độ Baud không đúng
3 Chọn Timeout không đúng
4 Chọn chế độ không đúng
361
Lệnh MBUS_MSG
• Khởi tạo một yêu cầu tới thiết bị Slave
và trả lời đáp ứng từ thiết bị Slave.
– First: chỉ được kích hoạt 1 lần trong một scan khi
có một yêu cầu mới gửi tới. Đầu vào thường là
tín hiệu bắt sườn lên.
– RW: xác định message là để đọc hay để nghi.
(Đầu ra số và thanh ghi giữ hỗ trợ cả yêu cầu
đọc và gửi dữ liệu). 0 – là đọc, 1 – là ghi.
– Addr: địa chỉ bắt đầu của Slave (Modbus slave
hỗ trợ)
– Count: là số bit (số word) dữ liệu được đọc và
ghi ( max là 120 word hoặc 1920 bit).
Đầu vào/Đầu ra Kiểu
– DataPtr: là con trỏ trỏ tới vùng V (Master) Mode BOOL
(giá trị truyền vào là con trỏ địa chỉ gián tiếp) Baud DWORD
Parity BYTE
Timeout INT
Done BOOL
Error BYTE

Chú ý: trước khi lệnh MBUS_MSG thực hiện thì lệnh MBUS_C
362
phải thực hiện không có lỗi
Ví dụ

363
Cách đóng gói dữ liệu theo Word/Bit
Chú ý

365
6. Ví dụ
Ví dụ 1:
Yêu cầu: Cấu hình S7-200 CPU 22x thành thiết bị Modbus Master.
Thực hiện ghi tới thiết bị Slave mỗi khi I0.0 được bật.
CPU 22x thực hiện ghi 8 bit kể từ địa chỉ VB0 tới thiết bị Slave. Dữ
liệu này sẽ dược ghi tới 8 bit đầu ra số của thiết bị Slave kể từ địa chỉ
00001.

CPU S7 200
VB0.0 00001 Modbus Slave
VB0.1 00002 Digital Ouputs
VB0.2 00003
VB0.3 00004
VB0.4 00005
VB0.5 00006
VB0.6 00007
366
VB0.7 00008
Code chương trình
Main
Khởi tạo CPU 22x làm Modbus Master

367
Mỗi lần I0.0 được bật thì thực hiện lệnh ghi tới thiết bị Modbus Slave

368
369
Bài 14 - 15
Bài tập
Bài tập Cho hệ thống như sơ đồ dưới đây:
1:
Start (I0.0)
Q0.0
Stop (I0.1)

B¨ng t¶i 1 Q0.3


Bảng điều khiển
§Ìn b¸o ®Çy
Q0.1

B¨ng t¶i 2

Q0.2

Bong chøa

Q0.4
§Ìn b¸o ®Çy E-7

Hãy viết chương trình để hệ thống hoạt động như sau:


• Ấn nút Start hệ thống bắt đầu hoạt động:
– Bước 1: Giả sử lúc đầu thùng rỗng đã ở vị trí lấy hàng.
Van(Q0.0) và băng tải 1(Q0.1) bắt đầu hoạt động để
đưa sản phẩm xuống thùng rỗng.
– Bước 2: Giả sử sau 5s thùng đầy, thì băng tải 2 (Q0.2)
cũng hoạt động (để đưa thùng đầy xuống boong chứa),
còn van và băng tải 1 dừng.
– Bước 3: Cứ sau 3s thì một thùng đầy được đưa xuống
boong, còn một thùng rỗng lại đến vị trí lấy hàng. Khi
đó quá trình lại lặp lại từ bước 1.
– Bước 4: Hệ thống cứ hoạt động liên tục theo chu trình
từ bước 1 đến bước 3 cho đến khi nào nhấn nút Stop.
Lưu đồ thuật toán Begin
Main program

Stop ? Yes
Biến lưu No
trạng thái
M0.0=1?No Q0.0=0; Q0.1=0;Q0.2=
của start
Yes T37(5s) inactive
Q0.0=1;Q0.1=1;Q0.2=0 T38(3s) inactive
T37 (5s) active;T38 inactive

T37=1? No End

Yes
Q0.0=0; Q0.1=0;Q0.2=1
T37(5s) inactive
T38(3s) active
Yes T38=1? No
Biểu đồ thời gian
I/O 1 scan
t(s)
I0.0
1 scan
t(s)
I0.1
5s 5s
t(s)
Q0.0
5s 5s
t(s)
Q0.1
3s 3s
t(s)
Q0.2
Bài tập 2: Hình vẽ như ví dụ 1

• Ấn nút Start hệ thống bắt đầu hoạt động:


– Bước 1: Giả sử lúc đầu thùng rỗng đã ở vị trí lấy hàng.
Van(Q0.0) và băng tải 1(Q0.1) bắt đầu hoạt động để đưa sản
phẩm xuống thùng rỗng.
– Bước 2: Giả sử sau 5s thùng đầy, thì băng tải 2 (Q0.2) cũng
hoạt động (để đưa thùng đầy xuống boong chứa), còn van và
băng tải 1 dừng.
– Bước 3: Cứ sau 3s thì một thùng đầy được đưa xuống boong,
còn một thùng rỗng lại đến vị trí lấy hàng. Khi đó quá trình lại
lặp lại từ bước 1.
– Bước 4: Mỗi khi có một thùng đầy đưa xuống boong thì ở đó
sử dụng một cảm biến đếm sản phẩm.
– Bước 5: Hệ thống cứ hoạt động liên tục theo chu trình từ
bước 1 đến bước 3 cho đến khi nào đủ 5 sản phẩm trong
boong hoặc khi nhấn nút Stop.
Begin
Lưu đồ thuật toán
Main program

Stop ? Yes
Biến lưu trạng thái của I0.0 No
M0.0=1? No Q0.0=0; Q0.1=0;Q0.2=
Yes T37(5s) inactive
Q0.0=1;Q0.1=1;Q0.2=0 T38(3s) inactive
T37 (5s) active;T38 inactive

T37=1? No
Q0.0=0;Yes
Q0.1=0;Q0.2=1 End
T37(5s) inactive
T38(3s) active
Yes T38=1? No Yes
Yes No C0=1?
Counter 0 (C0) active
(5)
Bài tập 3 Một hệ thống cảnh báo cho một ngôi nhà như sau:

Các tín hiệu đầu vào của PLC:


+ Nút khởi động On/Off: I0.0 Các tín hiệu đầu ra của PLC:
+ Cửa sổ thứ nhất: I0.1 + Đèn báo hệ thống hoạt động: Q0.0
+ Cửa sổ thứ hai : I0.2 + Đèn LED báo động : Q0.1
+ Cửa ra vào : I0.3 + Chuông báo động : Q0.2
+ Cảm biến hồng ngoại: I0.4

Khi nhấn I0.0 hệ thống cảnh báo bắt đầu hoạt động:
+ Nếu có người xâm nhập vào khu vực nhà thì cảm biến hồng ngoại tích cực. Khi đó
Đèn báo động sẽ sáng nhấp nháy với tần số là 1 Hz. Và chỉ bị tắt khi ấn nút off.
+ Nếu 1trong 3 cửa mở thì chuông báo động kêu. Nó chỉ kêu trong khoảng 60s rồi tự
động tắt. (Chú thích: nếu cửa đang mở mà bị đóng lại thì chuông vẫn tiếp tục kêu cho
đến khi hết khoảng thời gian là 60 s. Và nếu cửa lại bị mở trở lại thì chuông sẽ kêu với
chu kỳ 60s mới).

Chú ý: + Nút ấn I0.0 là dạng tiếp điếm duy trì( I0.0=0 khi Off, I0.0=1 khi On).
+ Các tiếp điểm I0.1, I0.2, I0.3: là các tiếp điểm thường mở duy trì (trạng thái
Logic=0 khi cửa mở và =1 khi cửa đóng).
+ Tiếp điểm đầu ra của hồng ngoại I0.4 là tiếp điểm thường mở không duy trì.
Bài tập 4 Cho hệ thống như sơ đồ dưới đây:
S0 Stop

H1 S1 Station 4
H2 S2 Station 3
H3 S3 Station 2
H4 S4 Station 1

S5 Go-Down

Bảng điều khiển


Bài tập 4
+ Chän Q0.0: ®éng c¬ cho gÇu chuyÓn ®éng ®i lªn.
+ Chän Q1.1: ®éng c¬ cho gÇu chuyÓn ®éng ®i xuèng.
Ho¹t ®éng:
+ Khi Ên nót chän tÇng hÖ thèng b¾t ®Çu ho¹t ®éng. BiÕt r»ng c¸c tÇng tõ 1 cho ®Õn 4
®îc chän th«ng qua c¸c nót Ên S1(I0.1) (tÇng 4), S2 (I0.2)(tÇng 3), S3(I0.3)(tÇng 2),
S4(I0.4)(tÇng 1). GÇu n©ng vËt liÖu ®i lªn ®Õn tÇng lùa chän th× dõng l¹i. C¸c tÇng
kh¸c chØ ®îc chän khi thang n©ng s¶n phÈm quay vÒ vÞ trÝ ban ®Çu (tøc sensor B10
(I1.0) kÝch ho¹t).z
+ Khi Ên S5 th× gÇu b¾t ®Çu ®i xuèng tíi khi cã tÝn hiÖu cña B10(I0.1) th× dõng l¹i.
+ BÊt cø khi nµo nhÊn S0(I0.0) th× hÖ thèng còng dõng ngay.
+ Sensor B11(I1.1) sö dông ®Ó b¶o vÖ trong nh÷ng trêng hîp hÖ thèng cã lçi. B11 ph¸t
hiÖn gÇu n©ng s¶n phÈm ®i sai th× toµn bé hÖ thèng còng dõng ngay lËp tøc gièng nh
trêng hîp nhÊn S0.
+ BiÕt r»ng c¸c ®Ìn t¬ng øng víi c¸c tr¹m 1, 2, 3, 4 lµ H4 (Q0.4), H3 (Q0.3),
H2(Q0.2), H1(Q0.1) sÏ s¸ng khi gÇu ®i qua hoÆc lªn ®Õn tr¹m t¬ng øng.
Chú ý: - Các sensor từ B6 đến B9 đều có tín hiệu đầu ra như một rơ le có duy trì
thường mở.
- Các nút ấn trên bảng điều khiển là loại tiếp điểm không duy trì thường mở.
Bài tập 5 Một hệ thống cảnh báo cho một ngôi nhà như sau:

Các tín hiệu đầu vào của PLC:


Các tín hiệu đầu ra của PLC:
+ Nút khởi động On/Off: I0.0
+ Đèn báo hệ thống hoạt động: Q0.0
+ Cửa sổ thứ nhất: I0.1
+ Đèn LED báo động : Q0.1
+ Cửa sổ thứ hai : I0.2
+ Chuông báo động : Q0.2
+ Cửa ra vào : I0.3
+ Cảm biến hồng ngoại: I0.4

Khi nhấn I0.0 hệ thống cảnh báo bắt đầu hoạt động:
+ Đèn báo động sẽ sáng nhấp nháy với tần số là 1hz khi có tín hiệu của cảm biến hồng
ngoại I0.4 và khi các cửa đều ở trạng thái đóng. Đèn chỉ bị tắt khi ấn nút Off.
+ Hệ thống chuông báo động sẽ kêu trong vòng 60 s rồi tự tắt khicó tín hiệu của cảm
biến hồng ngoại và 1 trong 3 cửa bị mở. (Các cửa đều có thể mở rồi được đóng
lại ngay)
+ Hệ thống dừng toàn bộ khi ấn nút Off.

Chú ý: + Nút ấn I0.0 là dạng tiếp điếm duy trì( I0.0=0 khi Off, I0.0=1 khi On).
+ Các tiếp điểm I0.1, I0.2, I0.3: là các tiếp điểm thường mở duy trì (trạng thái
Logic=0 khi cửa mở và =1 khi cửa đóng).
+ Tiếp điểm đầu ra của hồng ngoại I0.4 là tiếp điểm thường mở không duy trì.
Lưu đồ thuật toán Begin
Main program
I0.0: On/Off
No
I0.0=1 ?
Yes
Đèn báo ht hđ
Q0.0= 1
Yes Cảm biến
No
I0.4=1?
Yes Rơ le ở các cửa
I0.1 or I0.2 No
or I0.3 =0? LED
Yes
Q0.2=1;T37(60s) activeQ0.1=1(1Hz); T38 active

T37=1? No
Yes Chuông
I0.0=1->0 ?
Q0.2=0;T37 inactive
Q0.1=0;T38 inactive
Q0.0=0
End
Ôn tập
• Các nội dung chính
• Nội dung thi học kỳ

You might also like