CHƢƠNG 3 NGÔN NGỮ LẬP TRÌNH CHO PLC
5 7
I. Các bƣớc lập trình cho PLC
1.Tìm hiểu rõ các yêu cầu công nghệ
4. Dựng lƣu đồ chƣơng trình
2.Liệt kê cổng vào ra, lựa chọn PLC
5. Dịch lƣu đồ ra giản đồ thang
3.Phân cổng vào ra
6.Lập trình giản đồ thang vào PLC
5 8
8.Nối PLC với thiết bị thực
7.Mô phỏng chƣơng trình, kiểm tra phần mềm
9.Kiểm tra kết nối
Sai
10. Chạy hệ thống
Chƣơng trình đúng ?
Đúng
Sửa chƣơng trình
Chƣơng trình đúng ?
Sai
Đúng
5 9
11.Lƣu cất chƣơng trình, bàn giao
Kết thúc
6 0
Lƣu ý trong một số bƣớc lập trình:
Bƣớc 3 : Phân cổng vào ra cho PLC về nguyên tắc nên tuân thủ các nguyên tắc để thuận tiện cho việc lập trình, theo dõi kiểm tra phát hiện lỗi như sau :
Phân cổng vào ra theo chức năng yêu cầu: ví dụ đầu vào đếm tốc độ cao, đầu vào Analog, đầu vào logic, phải đúng với các đầu vào chức năng của PLC Phân cổng vào ra có dụng ý: theo tên gọi, hoặc theo trình tự tác động để tận dụng được các khả năng tín hiệu hoá của PLC. dễ theo dõi phát hiện lỗi và dễ lập trình.
6 1
Bƣớc 2: Liệt kê đầy đủ các cổng vào ra, các cổng dự trữ, cần thiết khi phát triển hệ thống.v.v và chọn PLC có số đầu vào ra lớn hơn hoặc bằng theo yêu cầu.
II. Cấu trúc bộ nhớ cho PLC
Chức năng: - Lưu trữ tạm thời các bảng trạng thái I/O. - Lưu trữ chương trình, dữ liệu, … - Làm bộ đệm trạng thái các chức năng PLC.
6 2
Phân loại: - RAM - EEPROM - Bộ nhớ ngoài
II. Cấu trúc bộ nhớ cho PLC
PHÂN CHIA BỘ NHỚ Gồm 4 vùng: Vùng chƣơng trình: lƣu trữ lệnh chƣơng trình
Vùng tham số: lƣu trữ các tham số nhƣ từ khóa, địa
chỉ, …
Vùng dữ liệu: lƣu trữ dữ liệu của chƣơng trình nhƣ kết
quả tính, bộ đệm truyền thông, …
6 3
Vùng đối tƣợng: lƣu dữ liệu cho các đối tƣợng lập trình nhƣ counter, timer, thanh ghi, bộ đệm ngõ vào/ra tƣơng tự.
II. Cấu trúc bộ nhớ cho PLC
VÙNG NHỚ DỮ LIỆU PLC S7-200 Là miền nhớ động, cóthểtruy cập theo bit, byte, word,
Dword.
6 4
Chia làm 5 miền nhỏ: - Miền I (Input image register) - Miền Q (Output image register) - Miền V (Variable Memory) - Miền M (internal Memory bits) - Miền SM (Special memory bits)
II. Cấu trúc bộ nhớ cho PLC
VÙNG NHỚ DỮ LIỆU PLC S7-200 Miền I: là thanh ghi đệm, lƣu các giá trị ngõ vào khi PLC hoạt động. Miền Q: thanh ghi đệm, chứa các kết quả chƣơng trình để điều khiển ngõ ra. Miền V: lƣu các kết quả trung gian khi thực hiện chƣơng trình.
6 5
II. Cấu trúc bộ nhớ cho PLC
VÙNG NHỚ DỮ LIỆU PLC S7-200 Miền M: đƣợc sử dụng nhƣ các relay điều khiển để lƣu trạng thái trung gian của 1 hoạt động hoặc các thông tin điều khiển khác. Miền SM: chứa các bit đểlựa chọn và điều khiển các chức năng đặc biệt của CPU.
6 6
6 7
II. Cấu trúc bộ nhớ cho PLC
II. Cấu trúc bộ nhớ cho PLC
PHƢƠNG THỨC TRUY CÂP BỘ NHỚ Theo Bit: tên miền + địa chỉbyte + ‘.’+ chỉsốbit M0.0, I2.5, Q1.0, … Theo Byte: tên miền + B + địa chỉbyte VB5, IB2, QB0, …(VB5=V5.0 V5.1 …V5.7) Theo Word: tên miền + W + địa chỉbyte cao của word VW0, QW1, IW2, …(VW0=VB0 VB1) Theo Double word: tên miền + D + địa chỉ word cao của
double word VD0, QD2, ID1, …
6 8
(VD0 = VW0 VW2 = VB0 VB1 VB2 VB3)
III. Các lệnh cơ bản cho PLC
PLC có 3 ngôn ngữ lập trình Ngôn ngữ liệt kê dòng lệnh (STL)
Ngôn ngữ giản đồ thang (LAD)
6 9
Ngôn ngữ khối chức năng ( FBD)
III. Các lệnh cơ bản cho PLC
7 0
Ngôn ngữ liệt kê dòng lệnh (STL) Sử dụng các lệnh gợi nhớ. Phù hợp cho ngƣời có kinh nghiệm lập trình. Điều khiển nhiều chức năng hơn LAD và FBD. Có thể từ STL chuyển sang LAD và FBD.
III. Các lệnh cơ bản cho PLC
Ngôn ngữ giản đồ thang (LAD) Chƣơng trình tƣơng tự nhƣ sơ đồ nối dây mạch điện. Mô phỏng chuyển động của dòng điện từ nguồn qua các
điều kiện ngõ vào tác động đến ngõ ra.
7 1
Phù hợp với ngƣời mới bắt đầu.
III. Các lệnh cơ bản cho PLC
Ngôn ngữ giản đồ thang (LAD) Sử dụng các lệnh nhƣ các khối logic.
7 2
Chƣơng trình là sự kết nối các hộp.
III. Các lệnh cơ bản cho PLC
1. Lệnh LD (LoaD) :
Lệnh LD dùng để đặt một công tắc logic thường mở vào chương trình.
Chƣơng trình STL: lênh LD luôn xuất hiện ở vị trí đầu tiên của một nhánh chương trình hoặc mở đầu một khối logic. Cú pháp: LD bit
Toán hạng
Địa chỉ
Loại dữ liệu
Vùng biến nhớ
bit
bool
I,Q,V,M
Ví dụ: LD I0.1
7 3
III. Các lệnh cơ bản cho PLC
7 4
Chƣơng trình dạng LAD: lệnh LD thể hiện công tắc logic thường mở đầu tiên nối trực tiếp với bus bên trái của một nhánh chương trình hay công tắc thường mở đầu tiên của logic.
III. Các lệnh cơ bản cho PLC
2. Lệnh LDN (LoadD Not) :
Lệnh LDN dùng để đặt một công tắc logic thường đóng vào chương trình.
Cú pháp: Siemens: LDN bit Omron: LD NOT bit
Toán hạng
Địa chỉ
Loại dữ liệu
Vùng biến nhớ
bit
bool
I,Q,V,M
Ví dụ: LDN I0.1
7 5
III. Các lệnh cơ bản cho PLC
7 6
Chƣơng trình dạng LAD:
III. Các lệnh cơ bản cho PLC
3. Lệnh gán ’ = ‘ (OUTPUT) :
Cú pháp: = bit
Toán hạng
Địa chỉ
Loại dữ liệu
Vùng biến nhớ
bit
bool
I,Q,V,M…
Ví dụ: = Q0.0
77
78
III. Các lệnh cơ bản cho PLC
III. Các lệnh cơ bản cho PLC
R R_bit n : Ghi giá trị logic 0 vào n bít
4. Lệnh SET / RESET : -Lệnh SET dùng để đặt trạng thái của bit về mức logic 1 vĩnh viễn. - Lệnh RESET dùng để đặt trạng thái của bit về mức logic 0 vĩnh viễn. Cú pháp: S S_bit n : Ghi giá trị logic 1 vào n bít kể từ bít S_bit kể từ bít R_bit
Toán hạng
Địa chỉ
Loại dữ liệu
Vùng biến nhớ
bit
bool
I,Q,V,M…
79
III. Các lệnh cơ bản cho PLC
STL
LAD
80
IV. Các lệnh logic cho PLC
1. Lệnh AND
Cú pháp: A bit
Toán hạng
Địa chỉ
Loại dữ liệu
Vùng biến nhớ
bit
bool
I,Q,V,M,T,C…
STL
LAD
81
IV. Các lệnh logic cho PLC
2. Lệnh AND NOT
Cú pháp: AN bit
Toán hạng
Địa chỉ
Loại dữ liệu
Vùng biến nhớ
bit
bool
I,Q,V,M,T,C…
STL
LAD
82
IV. Các lệnh logic cho PLC
3. Lệnh OR
Cú pháp: O bit
Toán hạng
Địa chỉ
Loại dữ liệu
Vùng biến nhớ
bit
bool
I,Q,V,M,T,C…
STL
LAD
83
IV. Các lệnh logic cho PLC
4. Lệnh OR NOT
Cú pháp: ON bit
Toán hạng
Địa chỉ
Loại dữ liệu
Vùng biến nhớ
bit
bool
I,Q,V,M,T,C…
STL
LAD
84
IV. Các lệnh logic cho PLC
STL
85
5. Lệnh NOT Lệnh đảo giá trị logic Cú pháp: NOT LAD
III. Các lệnh logic cho PLC
STL
6. Lệnh OLD ( OR LOAD) Nối song song 2 tổ hợp khối
LAD
86
III. Các lệnh logic cho PLC
STL
7. Lệnh ALD ( AND LOAD) Nối nối tiếp 2 tổ hợp khối
LAD
87
III. Các lệnh logic cho PLC
Ví dụ 1: chuyển chƣơng trình dạng Ladder sang STL
1.
88
2.
III. Các lệnh logic cho PLC
89
Ví dụ 2: chuyển chƣơng trình dạng STL sang Ladder
III. Các lệnh logic cho PLC
90
8. Lệnh khai báo điểm rẽ nhánh và gọi lại điểm rẽ nhánh ( LPS , LPP)
III. Các lệnh logic cho PLC
91
Ví dụ 1: chuyển chƣơng trình dạng Ladder sang STL
III. Các lệnh logic cho PLC
92
Ví dụ 2: Ban đầu xilanh ở vị trí KH1. Bấm nút Start, xilanh chuyển động tịnh tiến ra đẩy chi tiết và quay trở lại khi gặp KH 2. Xilanh chuyển động lùi về và dừng lại khi gặp KH1
III. Các lệnh logic cho PLC
93
Ví dụ 3: Ban đầu xilanh ở vị trí KH1. Bấm nút Start, xilanh chuyển động tịnh tiến ra đẩy chi tiết và quay trở lại khi gặp KH 2. Xilanh chuyển động lùi về và dừng lại khi gặp KH1
94
III. Các lệnh logic cho PLC
III. Các lệnh logic cho PLC
95
Ví dụ 4:
III. Các lệnh logic cho PLC
KH2.1
KH2.2
Start
Stop KH1.1 KH1.2
M I0.0 I0.1 I0.2 I0.3 I0.4 I0.5
PLC
Q0.1 Q.02 Q0.3 Q0.4
+24 0
+24V
RL4
RL3
RL1
RL2
0V
96
III. Các lệnh logic cho PLC
97
Ví dụ 5: Máy cắt phôi tự động
III. Các lệnh logic cho PLC
98
Ví dụ 6: Bơm nƣớc thải
III. Các lệnh logic cho PLC
99
Ví dụ 7: Bơm cấp nƣớc
III. Các lệnh logic cho PLC
10 0
Ví dụ 8: Hệ thống vận chuyển sản phẩm
III. Các lệnh logic cho PLC
9. Lệnh phát hiện sƣờn lên EU ( Edge Up)/ Sƣờn xuống ED ( Edge Down) EU: Lệnh này phát hiện sự chuyển trạng thái của tín hiệu từ mức 0 lên mức 1. ED: Lệnh này phát hiện sự chuyển trạng thái của tín hiệu từ mức
10 1
1 xuống mức 0
10 2
III. Các lệnh logic cho PLC
IV. Các bit đặc biệt hay dùng
SM0.0 : SM0.1: SM0.2: SM0.3: SM0.4: SM0.5: SM0.6: SM0.7:
10 3
- - - - - - - -
V. Bộ định thì- Timer
Thời gian trễ = n x độ phân giải
độ phân giải: 1ms, 10ms, 100ms 1. Định nghĩa: Là bộ đếm xung có chu kỳ xác định và khi được kích hoạt nó sẽ thực hiện đủ số xung tương ứng với thời gian cần đã đặt. n: số xung PLC S7-200
CPU 214
CPU 224
CPU 222
Timer
256 ( T0-T255)
256 ( T0-T255)
256 ( T0-T255)
ON/OFF delay 1ms T32,T96
T32,T96
T32,T96
10ms T33-T36
T97-T100
T33-T36 T97-T100
T33-T36 T97-T100
100ms T37-T63 T101-255
T37-T63 T101-255
T37-T63 T101-255
10 4
V. Bộ định thì- Timer
10 5
2. Lệnh TON ( On Delay):
V. Bộ định thì- Timer
10 6
2. Lệnh TOF ( Off Delay):
V. Bộ định thì- Timer
10 7
Ví dụ 1:
V. Bộ định thì- Timer
10 8
Ví dụ 2:
V. Bộ định thì- Timer
10 9
Cảm biến vùng:
V. Bộ định thì- Timer
11 0
Ví dụ 2:
V. Bộ định thì- Timer
KH1
KH1
KH2
KH2
Ví dụ 2:
XL1
1
XL 2
KH3
KH4
KH3
KH1
KH2
KH1
T=2.5s
KH2
XL1
2
XL 2
KH3
KH4
KH3
11 1
V. Bộ định thì- Timer
KH1
KH1
KH2
KH2
Ví dụ 2:
XL1
1
XL 2
KH3
KH4
KH3
KH1
KH2
KH1
T=2.5s
KH2
XL1
2
XL 2
KH3
KH4
KH3
11 2
V. Bộ định thì- Timer
KH1
KH1
KH2
KH2
Ví dụ 2:
XL1
1
XL 2
KH3
KH4
KH3
M0.0
11 3
V. Bộ định thì- Timer
KH1
KH2
KH1
T=2.5s
KH2
Ví dụ 2:
XL1
XL 2
KH3
KH4
KH3
M0.1
M0.2
11 4
V. Bộ định thì- Timer
11 5
VD2.1
11 6
V. Bộ định thì- Timer
11 7
V. Bộ định thì- Timer
V. Bộ định thì- Timer
VD3
15s
60s
KH3
KH2
KH1
11 8
V. Bộ định thì- Timer
VD4
KH4
XL2
KH3
KH2
XL1
KH1
11 9
V. Bộ định thì- Timer
VD5
5s
KH2
KH1
12 0
V. Bộ định thì- Timer
VD6
5s
KH2
KH1
12 1
V. Bộ định thì- Timer
12 2
Ví dụ 3: Đèn giao thông Điều khiển tín hiệu đèn giao thông ở các ngã tư với các thông số về thời gian như sau: Đèn xanh sáng 25s, đèn Vàng sáng 5s, đèn Đỏ sáng 30s, . Khởi động hệ thống bằng nhấn nút PB_Start, dừng bằng cách nhấn PB_Stop.
V. Bộ định thì- Timer
Ví dụ 3: Băng tải Bấm nút khởi động: BT3 chạy, sau đó 5s BT2 chạy, sau 5s BT1 chạy Bấm nút dừng: BT1 dừng, sau 5s BT2 dừng, sau 5s BT3 dừng
BT1
BT2
BT3
12 3
12 4
V. Bộ định thì- Timer
12 5
V. Bộ định thì- Timer
12 6
V. Bộ định thì- Timer
V. Bộ định thì- Timer
12 7
Ví dụ 3: Máy ép
V. Bộ đếm - Counter
+ Đếm giảm ( Counter-Down) + Đếm thuận nghịch
12 8
Bộ đếm dùng để đếm sự kiện xảy ra. Có 2 loại bộ đếm: + Đếm tăng ( Counter-Up)
V. Bộ đếm - Counter
12 9
1. Bộ đếm tăng – CTU Đếm số sườn lên của tín hiệu đầu vào, kết quả đếm này được so sánh với giá trị đặt. Khi giá trị tức thời này lớn hơn hoặc bằng giá trị đặt thì bit Cxx có giá trị logic 1
Cú pháp: CTU Cxx PV CU: đầu vào xung đếm R : đầu vào Reset PV :giá trị đặt Cxx: C0-C255
V. Bộ đếm - Counter
1. Bộ đếm tăng – CTU Đếm số sườn lên của tín hiệu đầu vào, kết quả đếm này được so sánh với giá trị đặt. Khi giá trị tức thời này lớn hơn hoặc bằng giá trị đặt thì bit Cxx có giá trị logic 1
AC; AIW; Constant
13 0
Cú pháp: CTU Cxx PV CU: đầu vào xung đếm R : đầu vào Reset PV :giá trị đặt VW; T; C; IW; QW; MW; SMW;
Cxx: C0-C255
V. Bộ đếm - Counter
2. Bộ đếm lùi – CTD Đếm số sườn lên của tín hiệu đầu vào. Bộ counter sẽ đếm lùi bắt đầu từ giá trị đặt. Khi giá trị tức thời này bằng 0 bit Cxx có giá trị logic 1
AC; AIW; Constant
13 1
Cú pháp: CTD Cxx PV CD: đầu vào xung đếm LD : đầu vào đặt giá trị ban đầu PV :giá trị đặt VW; T; C; IW; QW; MW; SMW;
Cxx: C0-C255
13 2
V. Bộ đếm - Counter
V. Bộ đếm - Counter
3. Bộ đếm tiến/ lùi – CTUD
Cú pháp: CTUD Cxxx PV CU: đầu vào đếm tiến CD: đầu vào đếm lùi R : đầu vào Reset PV :giá trị đặt VW; T; C; IW; QW; MW; SMW;
AC; AIW; Constant
13 3
Cxx: C0-C255
13 4
V. Bộ đếm - Counter
V. Bộ đếm - Counter
Cảm biến táo
B¨ Băng tải táo
Dây chuyền đếm sản phẩm Moi hop 40 qua tao
Stop
Start
Cảm biến hộp
Băng tải hộp
13 5
13 6
V. Bộ đếm - Counter
VI. Các lỗi hay gặp trong lập trình
1. Không được lập trình Hai hoặc nhiều " Thang " khác
13 7
nhau hay " nhánh hoàn thiện" trong cùng một Network
VI. Các lỗi hay gặp trong lập trình
2. Nếu một lệnh OUT, hoặc một lệnh FUN luôn cần điều
13 8
kiện thực hiện là ON, thì lệnh này không được nối trực tiếp với đường trục nguồn Power bus bên trái mà Thay vào đó phải nối qua một tiếp điểm cờ thường ON - ( ALWAYS ON SM0.0)...
VI. Các lỗi hay gặp trong lập trình
3. Một nhánh không được xuất phát từ một nhánh song
13 9
song khác.
VI. Các lỗi hay gặp trong lập trình
14 0
4. Nếu một địa chỉ bít dùng lặp lại trên hai lệnh OUT PUT khác nhau thì lệnh OUT PUT đi trước sẽ không có tác dụng