Kiểu dữ liệu Boolean chỉ có hai trạng thái True 1 hoặc False 0 Điều khiển tín hiệu nhị phân, trạng thái relay, tín hiệu logicByte 8 bit 1 byte Kiểu Byte dùng để lưu trữ các giá trị số
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM
KHOA ĐIỆN – ĐIỆN TỬ NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN - ĐIỆN TỬ
BÁO CÁO THỰC TẬP ĐIỀU KHIỂN HỆ THỐNG ĐIỆN CÔNG NGHIỆP
BÀI TUẦN 8: TÌM HIỂU PLC
GVHD: PGS.TS TRƯƠNG VIỆT ANH
Lớp: NHÓM LỚP 19CLC NHÓM 4 : VŨ ĐĂNG DUY – 21142505
LÊ CHÍ DANH – 21142503
NGUYỄN VIẾT THUẬN – 21142188
Tp Hồ Chí Minh, tháng 9 năm 2024
Trang 2MỤC LỤC
1 Cấu tạo PLC 1
2 Nguyên lý hoạt động PLC 2
3 Chức năng các chân PLC 2
4 Cách kết nối 3
5 Kiểu dữ liệu 6
6 Cách lập trình 7
Trang 3NỘI DUNG
1 Cấu tạo PLC
PLC (viết tắt của Programmable Logic Controller) là thiết bị cho phép lập trình thực hiện các thuật toán điều khiển logic
Cấu tạo của PLC gồm có các bộ phận chính sau:
- Bộ nhớ chương trình: RAM, ROM, ngoài ra có thể sử dụng vùng nhớ ngoài là
EPROM
- Bộ xử lý trung tâm CPU
- Module input/output Thông thường module I/O được tích hợp sẵn trên PLC, khi có nhu cầu mở rộng thêm I/O có thể lắp thêm module I/O mua từ bên ngoài
Ngoài ra, PLC còn có các bộ phận khác như:
- Cổng kết nối giữa PLC và máy tính: Bao gồm các cổng RS232, RS422, RS485 được
sử dụng me tải chương trình và giám sát chương trình
- Cổng truyền thông: PLC thường tích hợp cổng truyền thông Modbus RTU Tùy thuộcvào hãng và dòng sản phẩm, PLC có thể hỗ trợ thêm các loại thông tin khác như
Profibus, Profinet, CANopen, EtherCAT,…
Trang 42 Nguyên lý hoạt động của PLC
Đầu tiên, các tín hiệu từ thiết bị ngoại vi (cảm biến, công tắc, vv) được đưa vào đầu vào mô-đun thông qua CPU Sau khi nhận tín hiệu, xử lý CPU và gửi đầu mô-đun điều khiển tín hiệu đến các thiết bị ngoại vi, chương trình đã được cài đặt sẵn
Quá trình này bao gồm các bước: đọc đầu vào tín hiệu, thực hiện chương trình, truyền thông tin nội bộ, tự kiểm tra lỗi và gửi ra ngoài điều khiển tín hiệu Mỗi chu kỳ như vậy được gọi là một "chu kỳ quét" hoặc "vòng quét" (Chu kỳ quét)
Thông thường, một vòng quét diễn ra rất nhanh, trong khoảng từ 1ms đến 100ms Thờigian này phụ thuộc vào tốc độ xử lý của PLC, chương trình dài và tốc độ giao tiếp tiếp theo giữa PLC và các thiết bị ngoại vi
Trang 5- DI.0, DI.1, DI.2,… mỗi chân nhận tín hiệu 24 VDC từ thiết bị đầu vào.
- 1M là chân nối đất chung cho các tín hiệu digital input
* Ngõ vào tín hiệu tương tự ( Analog Inputs ): nhận tín hiệu từ các cảm biến tương tự nhưnhiệt độ, áp suất,…
- AI.0, AI.1,… Các chân này nhận tín hiệu dạng 0 – 10V hoặc 4 – 20mA
- 2M là chân nối đất chung cho các tín hiệu analog inputs
* Ngõ ra tín hiệu số: Các chân này dùng để điều khiển các thiết bị đầu ra như đèn, relay, vanđiện từ,…
- DQ.0, DQ.1,…
4 Cách kết nối PLC
* Cách đấu nối đầu vào input PLC
Khi kết nối kiểu Source đầu vào (input) với PLC, nguồn cấp dương (+) được đưa đến các chân tín hiệu đầu vào của PLC, còn cực âm (GND) được kết nối với các chân M (mass) của PLC Đây là kiểu kết nối
mà thiết bị đầu vào sẽ cung cấp dòng dương (24V DC) đến chân đầu vào số (DI) của PLC.
Trang 6Trong kết nối kiểu Source, chân tín hiệu đầu vào của PLC nhận điện áp dương (+24V DC) từ thiết bị đầu vào (ví dụ như nút nhấn, công tắc, cảm biến, ) Chủ yếu là các cảm biến PNP.
Kiểu sink ( âm chung ) chân mass sẽ được nối chung với các tín hiệu đầu vào, nguồn dươngcủa PLC sẽ được kết nối với trực tiếp với 1M, các tín hiệu từ thiết bị đầu vào sẽ đóng vai tròcung cấp cực âm về DI của PLC
Là kiểu ngược lại với kiểu Source, các cảm biến dùng là NPN
* Kết nối ngõ vào cảm biến với PLC
Trang 7* Kết nối đầu ra output của PLC
Trang 8Ngõ ra transistor có chức năng đóng ngắt dòng điện để điều khiển thiết bị Transistor sẽ hoạtđộng như một công tắc điện tử, mở khi tín hiệu đầu ra kích hoạt và đóng khi tín hiệu không hoạtđộng.
Ngõ ra DC/DC/DC nghĩa là nguồn cấp cho ngõ ra và tải được sử dụng là nguồn điện mộtchiều (DC)
5 Kiểu dữ liệu
Boolean chỉ có hai trạng thái True (1) hoặc False (0)
Điều khiển tín hiệu nhị phân, trạng thái relay, tín hiệu logicByte 8 bit ( 1 byte ) Kiểu Byte dùng để
lưu trữ các giá trị số nguyên không dấu trong phạm vi từ 0 đến 255
Thường được sử dụng cho các cụm dữ liệu nhỏ như địa chỉ,
mã trạng thái.
Word 16 bit ( 2 byte ) là một chuỗi 16 bit,
dùng để lưu trữ các giá trị số nguyên không dấu từ 0 đến 65,535.
Lưu trữ các mã trạng thái, dữ liệu điều khiển.
Double Word 32 bit (4 byte) là một chuỗi 32 bit,
dùng để lưu trữ các số nguyên không dấu từ 0 đến 4,294,967,295.
Dữ liệu điều khiển phức tạp hoặc địa chỉ lớn.
Integer 16 bit (2 byte) là số nguyên có dấu,
giá trị nằm trong khoảng từ -32,768 đến 32,767.
Thường được sử dụng trong các phép tính số học đơn giản, đếm số lượng.
Real ( Float ) 32 bit (4 byte) là số thực (dạng dấu Các phép tính yêu
Trang 9chấm động) có dấu, với
độ chính xác 7 chữ số thập phân Giá trị của
nó nằm trong khoảng từ
±1.18 × 10 ³⁸ ⁻ đến ±3.4
× 10³⁸.
cầu độ chính xác cao, điều khiển các giá trị tương tự (analog), như nhiệt độ, áp suất, dòng điện.
* Các loại miền nhớ chính:
- I : input lấy tín hiệu đầu vào của PLC, nút nhấn, công tắc hành trình,…
- Q: Output Xuất tín hiệu đầu ra cho PLC như động cơ, van,…
- M: Miền memory miền nhớ trung gian, sử dụng nhiều khi lập trình PLC
- L : Miền nhớ nội, miền nhớ tạm : Dùng cho các Block cho PLC
- DB: Khối cơ sở dữ liệu: Dùng để lưu cơ sở dữ liệu với nhiều định dạng khác nhau DB như
1 file excel trong PLC
- T ( Timer ) : Miền nhớ phục vụ bộ thời gian
- C ( Counter ) : Miền nhớ phục vụ bộ đếm
6 Cách lập trình
Ngôn ngữ lập trình Ladder (Ladder Logic) là một loại ngôn ngữ lập trình phổ biến trong lĩnhvực tự động hóa, đặc biệt là trong việc lập trình các bộ điều khiển logic khả trình (PLC -Programmable Logic Controllers) Ngôn ngữ này được thiết kế để mô phỏng sơ đồ điện điềukhiển trong các hệ thống công nghiệp, vì vậy nó có hình thức rất giống với sơ đồ mạch điện.Đặc điểm của Ladder Logic:
- Cấu trúc giống sơ đồ mạch điện: Ngôn ngữ Ladder Logic được mô phỏng dưới dạng các
"bậc thang" (ladder), với các dòng ngang là các "điều kiện" (contacts), và các dòng dọc là các
"hành động" (coils hoặc outputs) Nó dễ dàng cho người kỹ thuật cơ điện, những người quen với
sơ đồ mạch điện, hiểu và sử dụng
- Mỗi bậc thang (Ladder rung): Là một đoạn mã mô tả một chu trình điều khiển Mỗi bậcthang có thể bao gồm các điều kiện (input) và hành động (output) Khi điều kiện là đúng (mạchđược đóng), thì hành động tương ứng sẽ được thực hiện
Các tiếp điểm cơ bản
Tiếp điểm thường hở NO ( Normally Open): Tiếp điểm NO là tiếp điểm mà khi không có tínhiệu (hoặc khi nút nhấn chưa được ấn), nó sẽ ở trạng thái mở Khi có tín hiệu đầu vào ví dụ, nútnhấn được ấn, cảm biến hoạt động, tiếp điểm này sẽ đóng và cho phép dòng điện đi qua, kíchhoạt một hành động nào đó Hoặc khi bit chứa tiếp điểm được set = 1
Trang 10Tiếp điểm thường đóng NC: là tiếp điểm mà khi không có tín hiệu (hoặc khi nút nhấn chưađược ấn), nó sẽ ở trạng thái đóng Khi có tín hiệu đầu vào (ví dụ, nút nhấn được ấn, cảm biếnhoạt động), tiếp điểm này sẽ mở và ngừng cho phép dòng điện đi qua, ngưng hoạt động củahành động liên quan.
Cuộn dây ngõ ra: Đây là tiếp điểm trung gian cho ngõ ra Khi có tín hiệu cấp cho ngõ ra thì bítngõ ra được set = 0 Khi mất tín hiệu thì trở về = 0
Còn ngõ ra đảo thì khi có tín hiệu vào ngõ vào thì bit ngõ ra set = 0 Và ngược lại khi không
có tín hiệu ở ngõ ra thì bit được set = 1
Các phép toán dung trong bit logic
Phép toán AND: khi tất cả các điều kiện có trạng thái bit = 1 thì toán tử AND sẽ xuất ra 1 vàngược lại
Trang 11Phép toán OR: khi có 1 trong tất cả các điều kiện lên 1 thì set ngõ ra OR = 1 Khi không cóđiều kiện nào bằng có bit = 1 thì OR = 0.
Toán tử NOT
Bạn sử dụng lệnh "Đảo ngược RLO" để đảo ngược trạng thái tín hiệu của kết quả hoạt độnglogic (RLO) Nếu trạng thái tín hiệu là "1" ở đầu vào của lệnh thì đầu ra của lệnh có trạng thái tínhiệu là "0" Nếu trạng thái tín hiệu là "0" ở đầu vào của lệnh thì đầu ra có trạng thái tín hiệu "1"
Lệnh set và reset
Trang 12Bạn có thể sử dụng lệnh đặt đầu ra để đặt trạng thái tín hiệu của toán hạng đã chỉ định thành
"1"
Lệnh chỉ được thực thi nếu kết quả của phép toán logic ở đầu vào của cuộn dây là "1" Nếudòng điện chạy vào cuộn dây (RLO = "1"), toán hạng đã chỉ định được đặt thành "1" Khi ngõvào quay lại về 0 thì ngõ ra vẫn không thay đổi
Bạn có thể sử dụng lệnh đặt lại đầu ra để đặt lại trạng thái tín hiệu của toán hạng đã chỉ định
về "0"
Lệnh chỉ được thực thi nếu kết quả của phép toán logic ở đầu vào của cuộn dây là "1" Nếudòng điện chạy vào cuộn dây (RLO = "1"), toán hạng đã chỉ định sẽ được đặt lại về "0" Khi ngõvào quay lại về 0 thì ngõ ra vẫn không thay đổi
Các bộ dò quá độ dương và âm
Trang 13Tiếp điểm P: Có thể sử dụng lệnh để xác định xem có thay đổi "0" thành "1" trong trạng tháitín hiệu của toán hạng được chỉ định hay không Lệnh so sánh trạng thái tín hiệu hiện tại của vớitrạng thái tín hiệu của lần quét trước đó, được lưu trong bit bộ nhớ cạnh Nếu lệnh phát hiện sựthay đổi trong kết quả của hoạt động logic từ "0" thành "1", thì có một cạnh tăng lên.
Tiếp điểm N: Có thể sử dụng lệnh để xác định xem có thay đổi "1" thành "0" trong trạng tháitín hiệu của toán hạng được chỉ định hay không Lệnh so sánh trạng thái tín hiệu hiện tại của vớitrạng thái tín hiệu của lần quét trước đó, được lưu trong bit bộ nhớ cạnh Nếu lệnh phát hiện sựthay đổi trong kết quả của hoạt động logic từ "1" thành "0", thì có một cạnh giảm xuống
Trang 14Cuộn dây P: Có thể sử dụng lệnh để đặt toán hạng được chỉ định khi có thay đổi từ "0" đến
"1" trong kết quả của hoạt động logic Lệnh so sánh hiện tại với từ truy vấn trước đó, được lưutrong bit bộ nhớ cạnh Nếu lệnh phát hiện sự thay đổi trong RLO từ "0" thành "1", thì đó là cạnhtín hiệu dương
Cạnh tín hiệu dương được truy vấn mỗi khi lệnh thực thi Khi phát hiện thấy cạnh tín hiệudương, được đặt ở trạng thái tín hiệu "1" trong một chu kỳ chương trình Trong tất cả các trườnghợp khác, toán hạng có trạng thái tín hiệu "0"
Cuộn dây N: Có thể sử dụng lệnh để đặt toán hạng được chỉ định khi có thay đổi "1" thành
"0" trong kết quả của hoạt động logic Lệnh so sánh hiện tại với từ truy vấn trước đó, được lưu
Trang 15trong bit bộ nhớ cạnh Nếu lệnh phát hiện sự thay đổi trong từ "1" thành "0", thì có cạnh tín hiệuâm.
Cạnh tín hiệu âm được truy vấn mỗi khi lệnh thực thi Khi phát hiện cạnh tín hiệu âm, đượcđặt ở trạng thái tín hiệu "1" trong một chu kỳ chương trình Trong tất cả các trường hợp khác,toán hạng có trạng thái tín hiệu "0"
Lệnh P_trig: Bạn có thể sử dụng lệnh để đặt toán hạng được chỉ định khi có thay đổi "1"thành "0" trong kết quả của hoạt động logic Lệnh so sánh hiện tại với từ truy vấn trước đó, đượclưu trong bit bộ nhớ cạnh Nếu lệnh phát hiện sự thay đổi trong từ "1" thành "0", thì có cạnh tínhiệu âm
Sử dụng lệnh "Quét để tìm cạnh tín hiệu dương" để truy vấn sự thay đổi "0" thành "1" trongtrạng thái tín hiệu của kết quả hoạt động logic Lệnh so sánh trạng thái tín hiệu hiện tại của vớitrạng thái tín hiệu của truy vấn trước đó, được lưu trong bit bộ nhớ cạnh Nếu lệnh phát hiện sựthay đổi trong hoạt động logic từ "0" thành "1", thì đó là cạnh tín hiệu dương
Cạnh tín hiệu dương được truy vấn mỗi khi lệnh thực thi Ngay khi phát hiện thấy một cạnhdương, đầu ra Q của lệnh sẽ trả về trạng thái tín hiệu "1" trong suốt chu kỳ chương trình Trongtất cả các trường hợp khác, đầu ra trả về trạng thái tín hiệu "0"
Lệnh N_trig: Sử dụng lệnh "Quét hoạt động logic để tìm cạnh tín hiệu âm" để truy vấn sự thayđổi "1" thành "0" trong trạng thái tín hiệu của kết quả hoạt động logic Lệnh so sánh trạng thái tínhiệu hiện tại của RLO với trạng thái tín hiệu của truy vấn trước đó, được lưu trong bit bộ nhớcạnh Nếu lệnh phát hiện sự thay đổi trong từ "1" thành "0", thì có cạnh tín hiệu âm
Cạnh tín hiệu âm được truy vấn mỗi khi lệnh thực thi Ngay khi phát hiện thấy một cạnh âm,đầu ra Q của lệnh sẽ trả về trạng thái tín hiệu "1" trong suốt chu kỳ chương trình Trong tất cảcác trường hợp khác, trạng thái tín hiệu ở đầu ra của lệnh là "0"
Trang 16Các khối Timer:
Giải thích các khối cơ bản:
- TP: Tạo 1 xung On ở đầu ra Q trong thời gian PT set khi đầu vào IN kích on Khi đầu vàomất tín hiệu thì vẫn hoạt động
Trang 17- TON: Timer delay, On ở đầu ra Q sau một thời gian đặt PT khi đầu vào In lên 1 Khi IN = 0trong lúc đếm thì đâu ra Q về 0 và PT về 0.
- TOF: Timer of delay, Timer đếm khi đầu vào In chuyển từ 1 về 0 dừng đếm khi lên 1 Đầu ra
Q lên 1 từ thời điểm đầu vào IN ở trạng thái 1 đến khi timer đếm xong
Trang 18TONR: timer đếm khi đầu vào In lên 1, khi chưa đếm xong mà đầu vào về 0 thì giữ thời gian
đã đếm sau khi đầu vào lên 1 lại thì tiếp tục đếm Đầu ra Q lên 1 khi timer đếm xong Timer sẽreset khi đầu vào R lên 1
Trang 19Các khối Couter
- CTU-Couter up: Giá trị của bộ đếm CV sẽ tang lên 1 khi tín hiệu ngõ vào CU chuyển từ 0lên 1 Ngõ ra Q sẽ lên 1 khi giá trị đếm thực thế lớn hơn hoặc bằng giá trị đếm cài đặt( CV>=PV) Bộ đếm sẽ bị reset về 0 khi chân R của bộ đếm ở giá trị 1
CTD: (đếm xuống) Giá trị của bộ đếm CV sẽ giảm xuống 1 đơn vị khi tín hiệu ngõ vào CDchuyển từ 0 lên 1 Ngõ ra Q sẽ lên 1 khi giá trị đếm thực tế nhỏ hơn hoặc bằng 0 (CV<= 0 ) Khitag LD lên 1 thì bộ đếm đưa giá trị tư PV vào CV
CTUD ( đếm lên xuống): Đây là bộ đếm kết hợp của 2 bộ đếm lên và bộ đếm xuống
- Giá trị bộ đếm Cv sẽ tang lên 1 khi tín hiệu ngõ vào CU chuyển từ 0 lên 1
- Giá trị bộ đếm CV giảm xuống 1 đơn vị khi tín hiệu ngõ vào CD chuyển từ 0 lên 1
- Giá trị bộ đếm CV về 0 nếu chân R có giá trị 1
- Ngõ ra QU sẽ lên 1 khi giá trị đếm thực tế ( CV) lớn hơn hoặc bằng giá trị cài đặt PV
- Ngõ ra QD sẽ lên 1 khi giá trị đếm thực tế lớn nhỏ hơn hoặc bằng 0 ( CV <=0)
- Khi tag LD lên 1 thì giá trị thực tế CV sẽ bằng PV ( đưa giá trị cài PV vào CV)
Trang 20Các lệnh so sánh
1 CMP == so sánh 2 giá trị bằng nhau hay không
2 CMP<> so sánh 2 giá trị khác nhau hay không
3 CMP >= so sánh giá trị 1 >= giá trị 2 hay không
4 CMP<= so sánh giá trị 1 <= giá trị 2 hay không
5 CMP > so sánh giá trị 1 > giá trị 2 hay không
6 CMP < so sánh giá trị 1 < giá trị 2 hay không
7 In_Range so sánh giá trị VAL có nằm trong khoảng từ giá trị Min tới MAXhay không
8 OUT_Range so sánh giá trị VAL có nằm ngoài khoảng từ giá trị MIN tớiMAX hay không
Trang 219 OK Kiểm tra giá trị có phải là số thực floating-point
10 NOT_OK kiểm tra giá trị không phải là số thực floating-point
6 MOD: phép chia lấy dư
7 NEG: đảo giá trị vào IN âm thành dương và dương thành âm ở đầu ra
Trang 228 INC: tăng giá trị IN/OUT lên 1 đơn vị khi EN kích on 1 xung cạnh lên
9 DEC: Giảm giá trị IN/OUT xuống 1 đơn vị khi EN kích on 1 xung cạnh lên
10 ABS: trả về giá trị out luôn dương
11 MIN: trả về giá trị IN nhỏ nhất ở đầu ra OUT trong một số các IN đầu vào
12 MAX: trả về giá trị IN lớn nhất ở đầu ra OUT trong một số các IN đầu vào
13 LIMIT: trả về giá trị IN ở đầu ra OUT nếu IN nằm trong giới hạn ở giá trị
MN (min) và MX(max)
14 SQR: bình phương bậc 2
15 SQRT: căn bậc 2
16 LN: logarithm cơ số e = 2.718282
17 EXP: trả về giá trị OUT
Ở dưới là các hàm lượng giác, sin, cos, tan, asin, acos, atan…
Cấu trúc chương trình trong Tia portal
Trong TIA Portal, cấu trúc chương trình PLC thường được tổ chức theo các phần chính sau:
- OBs (Organization Blocks):
+ Đây là các khối tổ chức, chứa các chương trình chính của PLC OB1 là khối chương trìnhchính, nơi hệ thống bắt đầu thực thi chương trình
+ Ngoài ra còn có các OB khác như OB35 (gọi theo chu kỳ), OB100 (chạy khi PLC khởiđộng), OB82 (ngắt ngoại lệ), v.v
- FBs (Function Blocks): Đây là các khối chức năng, được dùng để chứa các logic điều khiển
cụ thể FB có thể sử dụng cùng với các khối dữ liệu DB để lưu trữ trạng thái
- FCs (Functions): Đây là các khối hàm, chứa các đoạn mã thực thi logic nhưng không lưu trữtrạng thái FCs thường dùng cho các tính toán hay xử lý không cần lưu dữ liệu
- DBs (Data Blocks): Các khối dữ liệu được sử dụng để lưu trữ thông tin và trạng thái của các
FB DB có thể là toàn cục (global) hoặc cục bộ (local) tùy thuộc vào phạm vi sử dụng
- Global Variables (Biến toàn cục): Các biến này có thể được sử dụng và truy cập từ nhiềuphần khác nhau trong chương trình Chúng thường được định nghĩa trong các DB toàn cục
- PLC Tags: Các thẻ PLC là các biến được liên kết với đầu vào/đầu ra vật lý hoặc dùng trongcác khối logic
- Libraries (Thư viện): Trong TIA Portal, bạn có thể tạo và sử dụng các thư viện để tái sửdụng các khối chương trình, thẻ và cấu trúc dữ liệu