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