You are on page 1of 17

Câu 1: Trình bày nguyên lý sơ đồ ni:

Nguyên lý sơ đồ:
OB có thể gọi ra nhiều FB( đã tích hợp sẵn DATA BLOCK) và FB có thể gọi nhiều FC
FB có thể gọi nhiều FB khác , và FB chỉ gọi được FC và phải tạo thêm data block cho FC vì FC
không tích hợp data block
OB là chương trình chính , và có thể gọi trực tiếp FC
CHỨC NĂNG CỦA CÁC KHỐI:

Loại khối Mô tả ngắn gọn


Khối tổ chức (OB) Khối tổ chức xác định cấu trúc của chương trình người dùng.
Hàm (FC) Hàm chứa các chu trình chương trình cho các nhiệm vụ lặp lại.
Chúng không có "bộ nhớ".
Khối chức năng (FB) Khối chức năng là các khối mã lưu trữ giá trị của chúng vĩnh viễn
trong các khối dữ liệu phiên bản, do đó chúng vẫn khả dụng ngay cả
sau khi khối đã được thực thi.
Khối dữ liệu phiên Khối dữ liệu phiên bản được gán cho một khối chức năng khi nó
bản (DB) được gọi cho mục đích lưu trữ dữ liệu chương trình.
Khối dữ liệu toàn Khối dữ liệu toàn cầu là các khu vực dữ liệu để lưu trữ dữ liệu có thể
cầu (DB) được sử dụng bởi bất kỳ khối nào.

Đặc điểm FC FB
Có thể sử dụng như một chương trình con Có Có
Có thể sử dụng tham số cho đầu vào, đầu ra và Inout Có Có
Có thể sử dụng biến tạm thời Có Có
Có thể sử dụng biến tĩnh (có remanence) Không Có
Cần một DB phụ (thể hiện) cho mỗi lần gọi Không Có
Tham số được truyền dưới dạng địa chỉ để sử dụng nội bộ Có Không
Tham số được sao chép đến/từ một DB (thể hiện) để sử dụng nội
bộ Không Có
Có thể gọi nội bộ một FB hoặc FC Có Có
Có thể được gọi cho một FB hoặc FC Có Có
Có thể gọi một FB như một thể hiện đa Không Có
Có thể được gọi mà không cần điền đầy đủ tham số Không Có
Dưới đây là một số điểm khác biệt chính giữa FC và FB:

• FC:
o Không có "bộ nhớ".
o Không thể lưu trữ giá trị biến vĩnh viễn.
o Thường được sử dụng cho các nhiệm vụ lặp lại đơn giản.
• FB:
o Có "bộ nhớ".
o Có thể lưu trữ giá trị biến vĩnh viễn.
o Thường được sử dụng cho các nhiệm vụ phức tạp hơn.

Ngoài ra, bạn cần lưu ý một số điểm sau:

• FC và FB có thể được gọi lẫn nhau.


• FB có thể được gọi như một thể hiện đa, nghĩa là bạn có thể tạo nhiều bản sao
của cùng một FB với các giá trị tham số khác nhau.
• FC và FB có thể sử dụng các khối dữ liệu phiên bản (DB) để lưu trữ dữ liệu.
• Khối dữ liệu toàn cầu (DB) có thể được sử dụng bởi bất kỳ khối nào.

• OB1: Khối tổ chức chính, là điểm bắt đầu của chương trình.
• FB22: Khối chức năng được gọi từ OB1.
• DB201, DB202, DB203: Khối dữ liệu phiên bản được sử dụng bởi FB22 để lưu
trữ dữ liệu chương trình.

Sơ đồ hoạt động như sau:

1. Chương trình bắt đầu trong OB1.


2. OB1 gọi FB22.
3. FB22 truy cập dữ liệu từ DB201, DB202 và DB203.
4. FB22 thực hiện các tính toán và xử lý dữ liệu.
5. FB22 trả về OB1.
6. OB1 tiếp tục thực thi chương trình.
Câu 2: Giải thích các thông số trong channel 0

• Input filters: Lọc các xung có độ dài lớn hơn 6.4 milisec, đối với dòng
encoder khi quay ở tốc độ cao thì đầu vào lọc xung có giá trị thời gian tồn tại
của xung rất nhỏ, để đọc được số xung của encoder đó thì phải giảm thời
gian lọc xung xuống
• (Event name)Tên sự kiện: Tên của sự kiện được tạo ra khi lệnh này được
kích hoạt. Trong trường hợp này, tên là "Rising edge0".
• (Enable rising edge detection )Lệnh: Lệnh này kích hoạt việc phát hiện cạnh
lên cho một tín hiệu đầu vào. Khi tín hiệu đầu vào chuyển từ mức thấp sang
mức cao, lệnh này sẽ tạo ra một sự kiện với tên đã định nghĩa.
• (Hardware interup)Phần cứng ngắt: Lệnh này có thể được cấu hình để sử
dụng ngắt phần cứng. Ngắt phần cứng cho phép CPU của PLC phản ứng
nhanh hơn với sự kiện so với việc sử dụng polling (kiểm tra liên tục).
• (Priority)Ưu tiên: Ưu tiên của ngắt được sử dụng khi có nhiều ngắt xảy ra
đồng thời. Lệnh này có ưu tiên 18, nghĩa là nó có ưu tiên cao hơn các lệnh
khác có ưu tiên thấp hơn.
• (Enable falling edge detection )Lệnh: Lệnh này kích hoạt việc phát hiện
cạnh lên cho một tín hiệu đầu vào. Khi tín hiệu đầu vào chuyển từ mức cao
sang mức thấp, lệnh này sẽ tạo ra một sự kiện với tên đã định nghĩa.
Ví dụ:
Lệnh này có thể được sử dụng để phát hiện khi một công tắc được bật hoặc khi một
cảm biến phát hiện ra một vật thể. Khi sự kiện được kích hoạt, PLC có thể thực
hiện các hành động như bật một động cơ, gửi một tín hiệu đến một thiết bị khác
hoặc ghi dữ liệu vào bộ nhớ.
Kết luận: Lệnh "Enable rising edge detection" (Kích hoạt phát hiện cạnh lên) được
sử dụng để phát hiện khi tín hiệu đầu vào chuyển từ mức thấp sang mức cao. Lệnh
này có thể được sử dụng để tạo ra các sự kiện và ngắt, giúp PLC phản ứng nhanh
hơn với các thay đổi trong môi trường.

Câu 3: Bộ PWM1

a. Điền vào cái IN (1), OUT1 (2), vì sao lại điền như thế
b. Địa chỉ 1 và 2 có thay đổi được không
c. Kiểu dữ liệu của 1 và 2

a.IN (1): MW20, kiểu dữ liệu tương ứng để khi thay đổi chân này ta sẽ thay đổi
được tín hiệu của QW1000, làm thay đổi tốc độ của động cơ. ( kiểu dữ liệu phải
phù hợp với OUT1, do OUT1 có kiểu dữ liệu word nên IN1 có thể là kiểu dữ liệu
word hoặc double word)
OUT1 (1): QW1000, tín hiệu này cho phép sử dụng bộ PWM1.
b) Địa chỉ chân 1 thay đổi được, thay đổi sao để không bị trùng dữ liệu ở hàm
khác. (Ví dụ: ta có thể thay đổi MW20 thành MW22, khoảng cách là 2 byte)
Địa chỉ chân 2 có thể thay đổi từ QW1000 bằng QW1001
C) Kiểu dữ liệu
Chân 1 (IN) là word
Chân 2 (IN) là word
4. HSC ( giải thích chức năng của các chân)
Enable: kích hoạt bộ đếm HSC
Name: tên bộ đếm, trong này bộ đếm mình đang sử dụng là HCS_1
Type of counting: loại đếm, có các loại đếm như count, Frequency
Operating phase: loại pha đếm. (single phase: đếm sườn lên của pha A, two phase:
đếm cả sườn lên và sườn xuống của pha A, A/B counter: đếm cả 2 pha A và B có
thể biết được chiều quay, A/B counter fourfold: đếm sườn lên và xuống của cả 2
pha A và B)
Initial counting direction: Hướng đếm.
Frequency measuring period: Khoảng thời gian đo của tần số. (nếu chọn 1s thì sau
1 giây bộ đếm sẽ tự reset và đếm lại từ đầu)
Clock generator A input: chọn nguồn tín hiệu đầu vào cho A
Start address: địa chỉ bắt đầu (ta có thể lấy tín hiệu số xung từ ID1000 đến ID1003)
End address: địa chỉ cuối

PTO1/PWM1
• Time base: đơn vị thời gian muốn dùng (thường là milisecond)
• Pulse duration: liên quan đến tính duty cycle (vd: chọn Hunderedth thì duty
cycle từ 0-100%)
• Cycle time: chu kỳ xung
• Initial pulse duration: thời gian xung ban đầu (khi bộ PWM được kích hoạt
thì sẽ có một tần số xung ban đầu được phát ra (như duty cycle), vd: nếu
Initial pulse duration = 0, khi bộ PWM được kích hoạt thì sẽ có một tần số
xung ban đầu được phát ra là 0 tương ứng với duty cycle là 0%, động cơ
không chạy)
• Start address: kiểu dữ liệu là work (QW), có thể thay đổi được miễn là kiểu
work, mặc định là 1000-1001, ta có thể thay đổi bằng con số khác, vd: Start
address = 10, thì địa chỉ sẽ thay đổi thành 10-11.(có thể bật phần mềm lên để
thử thay đổi ở ô Start address)
Ngắt chu kỳ-Cyclic time Interrupt:OB30

Trong chương trình của PLC Hàm main thực hiện chương trình lặp đi lặp lại liên
tục( khi nó thực hiện hết các dòng lệnh thì nó sẽ quay ngược trở lại và cứ nó lặp lại
liên tục), nếu như cấu hình cuả ngắt chu kỳ là một ngắt thời gian được quy định
trong cyclic time thì cứ đúng khoảng thời gian đó chu trình sẽ tự động phát sinh
một cái ngắt và chương trình main( OB1) sẽ tạm dừng lại và nhảy vào chương
trình ngắt chu kỳ và thực hiện các lệnh trong khối ngắt chu kỳ (OB30), sau khi
thực hiện xong các lệnh trong OB30 thì nó sẽ quay ngược trở lại thực hiện tiếp các
lệnh ở trong hàm main và cứ thế lặp đi lặp lại.
Cyclic time: là thời gian thực hiện ngắt một lần
Name: Tên của ngắt chu kỳ. Trong ví dụ này, tên là "Cyclic interrupt".
Constant name: Tên hằng được sử dụng để truy cập ngắt chu kỳ trong chương trình
PLC. Trong ví dụ này, tên hằng là "OB_Cyclic interrupt".
Type : Loại của ngắt chu kỳ. Trong ví dụ này, kiểu là "OB", nghĩa là ngắt chu kỳ
khối tổ chức (Organization Block).
Event class: Lớp sự kiện của ngắt chu kỳ. Trong ví dụ này, lớp sự kiện là "Cyclic
interrupt", nghĩa là ngắt chu kỳ xảy ra theo chu kỳ định kỳ.
language: Ngôn ngữ lập trình được sử dụng để viết chương trình cho ngắt chu kỳ.
Trong ví dụ này, ngôn ngữ là "LAD", nghĩa là Ladder Diagram (Sơ đồ bậc thang).
Number : Số của ngắt chu kỳ. Trong ví dụ này, số là 30.
Manual: Chọn hộp này nếu bạn muốn khởi tạo ngắt chu kỳ thủ công bằng lệnh
START.
Automatic : Chọn hộp này nếu bạn muốn ngắt chu kỳ tự động khởi động khi PLC
khởi động.
Priority : Số ưu tiên xác định thứ tự các sự kiện được xử lý. Các sự kiện có số ưu
tiên cao hơn sẽ được xử lý trước các sự kiện có số ưu tiên thấp hơn.

Cyclic time (ms): Nhập khoảng thời gian giữa các lần PLC xử lý ngắt chu kỳ.
Phase offset (ms): Nhập độ trễ giữa thời điểm bắt đầu của chu kỳ PLC và thời điểm
PLC xử lý ngắt chu kỳ.
1. Khái niệm:

• Hardware Interrupt (Ngắt phần cứng) là tính năng cho phép PLC xử lý tín hiệu từ
thiết bị ngoại vi một cách nhanh chóng và hiệu quả.
• Khi xảy ra ngắt phần cứng, chương trình chính sẽ bị tạm dừng để CPU có thể xử
lý ngắt.
• Sau khi xử lý ngắt, CPU sẽ tiếp tục thực thi chương trình chính.
1. System Memory Bits:

Enable the use of system memory


byte: Cho phép sử dụng bit bộ nhớ hệ thống.
Address of system memory byte: Địa chỉ
của byte bộ nhớ hệ thống.
First cycle: Chu kỳ đầu tiên.
Diagnostic status changed: Trạng thái chẩn
đoán thay đổi.
Always 1 (high): Luôn luôn là 1 (cao).
Always 0 (low): Luôn luôn là 0 (thấp).
2. Clock Memory Bits:

• Enable the use of clock memory


byte: Cho phép sử dụng bit bộ nhớ đồng hồ.
• Address of clock memory byte: Địa
chỉ của byte bộ nhớ đồng hồ.
• 10 Hz clock: Xung nhịp 10 Hz.
• 5 Hz clock: Xung nhịp 5 Hz.
• 2.5 Hz clock: Xung nhịp 2.5 Hz.
• 2 Hz clock: Xung nhịp 2 Hz.
• 1.25 Hz clock: Xung nhịp 1.25 Hz.
• 1 Hz clock: Xung nhịp 1 Hz.

Chức năng:

• System Memory Bits:


o Lưu trữ giá trị của các biến được sử dụng trong chương trình PLC.
o Dung lượng lớn hơn Clock Memory Bits.
o Tốc độ truy cập chậm hơn Clock Memory Bits.
• Clock Memory Bits:
o Tạo ra các xung nhịp với tần số xác định.
o Dung lượng nhỏ hơn System Memory Bits.
o Tốc độ truy cập nhanh hơn System Memory Bits.

Ứng dụng:

• System Memory Bits:


o Lưu trữ dữ liệu chung của chương trình.
o Lưu trữ giá trị của các biến được cập nhật thường xuyên.
• Clock Memory Bits:
o Điều khiển nháy đèn LED.
o Đếm xung chậm.
o Kích hoạt ngắt theo chu kỳ.
Phân biệt chương trình con và chương trình ngắt trong lập trình PLC
Chương trình con (Subroutine):
• Là một đoạn mã được định nghĩa riêng biệt và có thể được gọi từ nhiều nơi
trong chương trình chính.
• Giúp chia nhỏ chương trình thành các phần nhỏ hơn, dễ quản lý và sửa lỗi
hơn.
• Khi gọi chương trình con, PLC sẽ tạm dừng thực hiện chương trình chính và
chuyển sang thực hiện chương trình con. Sau khi kết thúc chương trình con,
PLC sẽ quay lại thực hiện chương trình chính tại vị trí đã gọi.
• Ví dụ: chương trình con để tính toán giá trị trung bình của một dãy số.
Chương trình ngắt (Interrupt):
• Là một chương trình đặc biệt được thực hiện khi xảy ra một sự kiện bất ngờ,
ví dụ như:
• Tín hiệu ngắt từ cảm biến
• Xảy ra lỗi trong quá trình vận hành
• Hết thời gian của bộ đếm thời gian
• Khi xảy ra ngắt, PLC sẽ tạm dừng thực hiện chương trình chính và chuyển
sang thực hiện chương trình ngắt. Sau khi kết thúc chương trình ngắt, PLC
sẽ quay lại thực hiện chương trình chính tại vị trí bị gián đoạn.
• Ưu điểm: Đảm bảo sự phản ứng nhanh chóng của hệ thống đối với các sự
kiện bất ngờ.
• Ví dụ: chương trình ngắt để xử lý sự cố khẩn cấp.
So sánh chương trình con và chương trình ngắt:
Khối Cyclic Interrupt và Hardware Interrupt
Khối Cyclic Interrupt:
• Là một khối chức năng đặc biệt trong PLC được sử dụng để thực hiện
chương trình ngắt theo chu kỳ định kỳ.
• Chu kỳ này được xác định bởi người lập trình.
• Ưu điểm: Đảm bảo chương trình ngắt được thực hiện đều đặn, không bị bỏ
sót.
• Ví dụ: sử dụng khối Cyclic Interrupt để cập nhật giá trị hiển thị trên màn
hình HMI.
Hardware Interrupt:
• Là một loại ngắt được kích hoạt bởi tín hiệu từ phần cứng bên ngoài PLC, ví
dụ như:
▪ Nút nhấn
▪ Cảm biến
▪ Bộ mã hóa
Ưu điểm: Phản ứng nhanh chóng với các sự kiện bên ngoài.
Ví dụ: sử dụng Hardware Interrupt để xử lý tín hiệu từ nút dừng khẩn cấp
So sánh Cyclic Interrupt và Hardware Interrupt:
Giải pháp cho các tác vụ tự động hóa nhỏ có thể được lập trình tuyến tính trong
một chu trình chương trình OB. Cách này chỉ được khuyến nghị cho các chương
trình đơn giản.
Các tác vụ tự động hóa phức tạp có thể được xử lý và quản lý dễ dàng hơn bằng
cách chia chúng thành các tác vụ phụ nhỏ hơn tương ứng với các chức năng công
nghệ của quy trình hoặc có thể được sử dụng lại. Các tác vụ phụ này được biểu
diễn trong chương trình người dùng bằng các khối. Mỗi khối sau đó là một phần
độc lập của chương trình người dùng.
HSC và PWM trong PLC dùng để làm gì

You might also like