You are on page 1of 48

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH


KHOA KỸ THUẬT ĐIỆN TỬ II

BÁO CÁO MÔN HỌC


HỆ THỐNG NHÚNG
NIÊN KHÓA: 2018 – 2023

ĐỀ TÀI: GIỚI THIỆU TỔNG QUAN VỀ PLC VÀ LẬP TRÌNH


WINDOWNS FORMS BẰNG C#

Sinh viên thực hiện: Quách Văn Hùng N18DCDT022


Võ Quốc Tế N18DCDT048
Lớp : D18CQKD01-N
Giáo viên hướng dẫn : ThS. Chung Tấn Lâm

TP.HCM – Tháng 11 năm 2021


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH
KHOA KỸ THUẬT ĐIỆN TỬ II

BÁO CÁO MÔN HỌC


HỆ THỐNG NHÚNG
NIÊN KHÓA: 2018 – 2023

ĐỀ TÀI: GIỚI THIỆU TỔNG QUAN VỀ PLC VÀ LẬP TRÌNH


WINDOWNS FORMS BẰNG C#

Sinh viên thực hiện: Quách Văn Hùng N18DCDT022


Võ Quốc Tế N18DCDT048
Lớp : D18CQKD01-N
Giáo viên hướng dẫn : ThS. Chung Tấn Lâm

TP.HCM – Tháng 11 năm 2021


LỜI CẢM ƠN

Để hoàn thành được đề tài này, nhóm em xin gửi đến thầy Chung Tấn Lâm lời cảm ơn
chân thành nhất. Vì đã hướng dẫn tận tình và giúp đỡ nhóm em hoàn thành đề tài này.

Qua bài báo cáo này, đã tạo cho nhóm em có nhiều cơ hội được tiếp xúc với nhiều kiến
thức mới, cũng như nhiều điều ở bên ngoài cuộc sống.

Vì kiến thức bản thân còn hạn chế, trong quá trình làm, hoàn thiện báo cáo này nhóm em
không tránh khỏi những sai sót, kính mong nhận được những ý kiến đóng góp từ thầy để
hoàn thiện hơn trong lần làm bài báo cáo tiếp theo.

Cuối cùng, một lần nữa xin chân thành cảm ơn thầy!

TP.HCM, ngày 15 tháng 11 năm 2021


NHẬN XÉT CỦA GIẢNG VIÊN

……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
Mục lục
Phần I: TỔNG QUAN PLC...............................................................................................1

Chương 1: Giới thiệu về PLC.........................................................................................1

1.1 Giới thiệu...............................................................................................................1

1.2 Một số dòng PLC của họ Mitsubishi.....................................................................1

2.2 Phân loại................................................................................................................ 2

2.3 Sơ đồ nguồn...........................................................................................................3

2.4 Sơ đồ input, output................................................................................................3

Chương 3: Giới Thiệu Phần Mềm , Cách Khai Báo 1 Broject........................................4

3.1 Phần Mềm Lập Trình PLC GX Works 2...............................................................4

3.2 Sử dụng phần mềm cách tạo một project...............................................................4

Chương 4: Các Vùng Nhớ Và Các Tập Lệnh Cơ Bản....................................................7

4.1 Các vùng nhớ của PLC Mitsubishi........................................................................7

4.2 Các tập lệnh cơ bản...............................................................................................7

4.3 Lệnh toán học......................................................................................................12

4.4 Lệnh di chuyển....................................................................................................14

4.5 Lệnh so sánh........................................................................................................15

Chương 5: Các Vùng Nhớ Và Các Tập Lệnh Cơ Bản..................................................17

5.1 Lệnh Time...........................................................................................................17

5.2 Lệnh COUNTER.................................................................................................18

5.3 Lệnh thời gian thực trong PLC............................................................................19

Chương 6: Bài Tập Về PLC..........................................................................................21

6.1 Hệ thống đóng gói sản phẩm (Táo).....................................................................21

6.2 Hệ thống tín hiệu Đèn Giao thông.......................................................................22

6.3 Hệ thống điều khiển cấp và xả nước với bình chứa.............................................25

Phần II: TỔNG QUAN VỀ LẬP TRÌNH WINDOWNS FORMS BẰNG Csharp (C#). .27
Chương 1: Giới Thiệu về lập trình Windowns Forms bằng C#....................................27

1.1 Windowns Forms............................................................................................27

1.2 Cách tạo một Windows Forms Application trên MicroSoft Visual Studio......27

1.3 Các thuộc tính cơ bản trên Windows Forms Application................................29

Chương 2: Bài tập làm quen với lập trình Windowns Forms bằng C#..........................32

2.1 Video1: Chia cửa sổ............................................................................................32

2.2 Video2: Truyền thông UART có đồ thị...............................................................33

2.3 Video3: Đọc ghi file CSV các tham số robot.......................................................35

2.4 Video4: TreeView và PropertyGrid dùng mô tả tham số robot...........................37


Phần I: TỔNG QUAN PLC

Chương 1: Giới thiệu về PLC


1.1 Giới thiệu
Theo định nghĩa PLC của bách khoa toàn thư Wiki, PLC là viết tắt của Programmable Logic
Controller, là thiết bị điều khiển lập trình được (khả trình) cho phép thực hiện linh hoạt các giải
pháp điều khiển logic thông qua một ngôn ngữ lập trình. Người sử dụng có thể lập trình để thực
hiện một loạt trình tự các sự kiện. Các sự kiện này được kích hoạt bởi tác nhân kích thích (ngõ
vào) tác động vào PLC hoặc qua các hoạt động có trễ như thời gian định thì hay các sự kiện được
đếm.

Một khi sự kiện được kích hoạt thật sự, nó bật ON hay OFF thiết bị điều khiển bên ngoài được
gọi là thiết bị vật lý. Một bộ điều khiển lập trình sẽ liên tục “lặp” trong chương trình do “người
sử dụng lập ra” chờ tín hiệu ở ngõ vào và xuất tín hiệu ở ngõ ra tại các thời điểm đã lập trình.

Để khắc phục những nhược điểm của bộ điều khiển dùng dây nối ( bộ điều khiển bằng rờ-le,
relay) người ta đã chế tạo ra bộ PLC nhằm thỏa mãn các yêu cầu sau :

 Lập trình PLC đơn giản, ngôn ngữ lập trình dễ học
 Gọn nhẹ, dể dàng bảo quản, sửa chữa
 Dung lượng bộ nhớ lớn để có thể chứa được những chương trình phức tạp
 Hoàn toàn tin cậy trong môi trường công nghiệp
 Giao tiếp được với các thiết bị thông minh khác như : máy tính , nối mạng , các môi
Module mở rộng
 Giá cả có thể cạnh tranh được
1.2 Một số dòng PLC của họ Mitsubishi
Phân loại theo Model:

 FX1S, FX1N, FX2N, FX2NC


 FX3U, FX3UC, FX3S, FX3G

1
Dòng sản phẩm mới PLC FX3U là thế hệ thứ ba trong gia đình họ FX-PLC, là một PLC dạng
nhỏ gọn và thành công của hãng Mitsubishi Electric.

Sản phẩm được thiết kế đáp ứng cho thị trường quốc tế, tính năng đặc biệt mới là hệ thống
“adapter bus” được bổ xung cho hệ thống bus hữu ích cho việc mở rộng thêm những tính năng
đặc biệt và khối truyền thông mạng. Khả năng tối đa có thể mở rộng lên đến 10 khối trên bus
mới này.

Với tốc độ xử lý cực mạnh mẽ, thời gian chỉ 0.065µs trên một lệnh đơn logic, cùng với 209 tập
lệnh được tích hợp sẵn và cải tiến liên tục đặc biệt cho nghiệp vụ điều khiển vị trí. Dòng PLC
mới này còn cho phép mở rộng truyền thông qua cổng USB, hỗ trợ cổng Ethernet và Cổng lập
trình RS-422 mini DIN. Với tính năng mạng mở rộng làm cho PLC này nâng cao được khả năng
kết nối tối đa về I/O lên đến 384 I/O, bao gồm cả các khối I/O qua mạng.

2.2 Phân loại


Dựa vào các kí hiệu theo tên thì ta có nhiều loại PLC khác nhau

Ví dụ: FX-3U-64MT/ES-A

FX: Loại PLC

3U: Tên Model

64: Tổng số ngõ vào và ngõ ra

MT: Loại ngõ ra (MT là transitor, MR là Rơle)

ES-A: Nguồn cấp vào ({ES, ESS, UA – dùng 220 VAC}; {DS, DSS, DC – DÙNG 24 VDC};
{ES, DS- Sink};{ESS, DSS - Source})

2
2.3 Sơ đồ nguồn

2.4 Sơ đồ input, output

3
Chương 3: Giới Thiệu Phần Mềm , Cách Khai Báo 1 Broject
3.1 Phần Mềm Lập Trình PLC GX Works 2
GX Works2 là phần mềm cấu hình và lập trình thế hệ kế tiếp cho điều khiển FX và Q Series. GX
Works2 cho phép nhà phát triển có thể “trộn” và kết hợp từ năm ngôn ngữ lập trình khác nhau,
phù hợp với các phong cách lập trình khác nhau. Nhà phát triển thoải mái thoải mái lựa chọn
ngôn ngữ để phát triển cho phù hợp với công việc. Môi trường này tuân theo tiêu chuẩn
IEC1131-3, cũng cho phép các bộ phận của dự án được lưu trong thư viện để sử dụng trong các
ứng dụng trong tương lai. Điều đó có nghĩa mỗi một chức năng, chức năng chặn các chương
trình, hoặc cấu trúc được viết, được thử nghiệm, và chứng minh, có thể được tích hợp vào các hệ
thống mới trong vòng vài phút. Hoàn toàn tùy biến các cài đặt, có nghĩa là lựa chọn công cụ và
các phím tắt để tối ưu hóa khả năng trực giác của riêng người dùng. Tích hợp mạng và các
module chức năng đặc biệt giữ cho các tập tin dự án tổ chức và dễ dàng truy cập. Được xây dựng
với PLC ảo trên máy tính mô phỏng cho phép hệ thống hoàn chỉnh trước khi đến phần cứng. Sau
khi dự án được tải về hệ thống thực tế, GX Works2 bao gồm nhiều chế độ theo dõi , theo dõi
chức năng, và khả năng gỡ lỗi trực tuyến cho phép kiểm soát được tình trạng của ứng dụng.

3.2 Sử dụng phần mềm cách tạo một project


3.2.1 Sử dụng phần mềm
Để sử dụng mần mềm trước tiên ta click chuột vào biểu tượng GX Works2 trên màn hình
desktop

4
Sau khi khởi động phần mềm màn hình máy tính của bạn sẽ xuất hiện một giao diện làm việc của
phần mềm như hình vẽ

Đây chính là giao diện làm việc của phần mềm GX Works2

3.2.2 Cách tạo một project mới


Bước 1 : sau khi đã khởi động phần mềm ta click chuột vào Project sau đó chọn New hoặc click
vào biểu tượng new để tạo một Project mới

5
Bước 2 : sau khi tạo xong một project mới trên màn hình sẽ xuất hiện một cửa sổ ở đây là mục
người dùng chọn đúng tên đúng dòng PLC đang lập trình, nếu trường hợp chọn sai với PLC thực
tế bên ngoài thì lúc Download chương trình PLC sẽ báo lỗi. Ví dụ : ở đây ta chọn dòng CPU là
FX và tên CPU là FX3U/FX3UC như hình ảnh ở trường hợp này chương trình của bạn đều có
thể Download xuống được cho FX3U và FX3UC

Bước 3 : Sau khi đã chọn đúng tên và dòng CPU cần lập trình ta nhấn OK để hoàn tất quá trình
tạo project mới. Lúc này trên màn hình sẽ xuất hiện một giao diện đây chính là giao diện viết
chương trình cho PLC

6
Chương 4: Các Vùng Nhớ Và Các Tập Lệnh Cơ Bản
4.1 Các vùng nhớ của PLC Mitsubishi
PLC Mitsubishi có 3 loại vùng nhớ chính: vùng nhớ chương trình EEPROM, vùng nhớ Bit và
vùng nhớ dữ liệu.

Vùng nhớ chương trình (EEPROM): Vùng nhớ chứa chương trình chính của PLC,
tham số thiết lập, các chú thích và thanh ghi File
Vùng nhớ bit: Bao gồm vùng nhớ đầu vào số (X), Vùng nhớ đầu ra số Y, Vùng nhớ
trung gian(M), Vùng nhớ trạng thái (S), Vùng nhớ tiếp điểm Timer (T), Vùng nhớ tiếp
điểm Counter (C). Cụ thể:
 Vùng nhớ đầu vào (ký hiệu là X) chứa các ô nhớ lưu dữ liệu mức logic ở đầu vào vật
lý của PLC và có kiểu dữ liệu là kiểu Bit (0 hoặc 1)
 Vùng nhớ đầu ra (ký hiệu là Y) chứa các ô nhớ lưu dữ liệu mức logic mà PLC đưa ra
ở đầu ra vật lý và có kiểu dữ liệu là kiểu Bit (0 hoặc 1)
 Vùng nhớ trung gian (ký hiệu là M) chứa các ô nhớ trung gian, các ô nhớ này có thể
sử dụng ở các vị trí mà người lập trình cần sử dụng biến nhớ/biến trung gian trong
chương trình, tuy nhiên các ô nhớ này không thể bị tác động trực tiếp từ đầu vào PLC
và không thể tác động trực tiếp đến đầu ra của PLC.
 Vùng nhớ trạng thái (ký hiệu là S) chứa các ô nhớ trạng thái, thường được sử dụng
trong chương trình sử dụng ngôn ngữ instruction list hoặc SFC, nhằm thể hiện trạng
thái chương trình
 Timer (T) có tác dụng định thời (đếm xung đồng hồ có chu kỳ 1ms, 10ms, 100ms,…).
Các tín hiệu ở dạng tiếp điểm của Timer (Bit cờ báo Timer đã đếm đủ, Bit reset timer,
…) sẽ được lưu trong vùng nhớ Timer, còn giá trị hiện thời của Timer sẽ được lưu
trong vùng nhớ dữ liệu.
 Counter (C) có tác dụng làm bộ đếm (đếm các sự kiện). Các tín hiệu ở dạng tiếp điểm
của Counter (Bit cờ báo Counter đã đếm đủ, Bit reset counter,…) sẽ được lưu trong
vùng nhớ Counter, còn giá trị hiện thời của Counter sẽ được lưu trong vùng nhớ dữ
liệu.
Vùng nhớ dữ liệu: Chứa các thanh ghi dữ liệu (D), giá trị tức thời của Timer (T), giá trị
tức thời của Counter (C) và các thanh ghi chỉ số (V, Z)
 Thanh ghi được ký hiệu D và đánh số thập phân. Ví dụ: D0, D9, D128. Thanh ghi rất
quan trọng khi xử lý dữ liệu số được thập phân bên ngoài. Ví dụ: dữ liệu từ các công
tắc chọn nhấn bộ chuyển đổi A/D……có thể được đọc vào thanh ghi, xử lý và sau đó
đưa lại cho các ngõ ra điều khiển, màn hình hiện chuyển đổi D/A…….. ví dụ minh
họa việc sử dụng thanh ghi được trình bày trong “sổ tay lập trình cho các bộ điều
khiển họ FX”.
4.2 Các tập lệnh cơ bản
4.2.1 Lệnh LD (load)
Tập Lệnh Chức Năng Dạng Mẫu Thiết Bị
Có nhiệm vụ khởi tạo loại
LD (load) công tắc NO, nối trực tiếp X,Y,M,S,T,C
đầu bên trái của mạch

7
VD:

Ngõ ra Y000 có điện khi ngõ vào X000 đóng hay ngõ vào X000=1

4.2.2 Lệnh LDI (load Inverse)


Tập Lệnh Chức Năng Dạng Mẫu Thiết Bị
Có nhiệm vụ khởi tạo loại
LDI (load Inverse) công tắc NC, nối trực tiếp X, Y, M, S, T, C
đầu bên trái của mạch
VD:

Ngõ ra Y000 luôn có điện và sẽ mất điện khi ngõ vào X000 được tác động hay ngõ vào X000=1

4.2.3 Lệnh OUT


Tập Lệnh Chức Năng Dạng Mẫu Thiết Bị
- Điều khiển cuộn
dây
- Nhiều lệnh OUT có
thể được nối song X, Y, M, S, T, C
song
OUT
- Không thể điều
khiển được thiết bị
ngõ vào ( X )
VD:

Ngõ ra Y000 = ON khi công tắc logic thường đóng X000 đóng (X000 =0 ); Ngõ ra Y000 = OFF
khi công tắc logic thường đóng X000 hở (X000 = ON )

4.2.4 Lệnh AND

8
Tập Lệnh Chức Năng Dạng Mẫu Thiết Bị
- Nối song song các
công tắc NO
AND X, Y, M, S, T, C
- Tối đa là 10 nhánh
nối song song cho
một cuộn dây
VD:

Khi ngõ vào X000 = ON thì ngõ ra Y000 sẽ ON và đồng thời tiếp đểm thường hở Y000 = 1 và sẽ
lưu giá trị ON cho ngõ ra kể ca khi ngõ vào X000 = OFF

4.2.5 Lệnh PLS ( sườn lên )


Tập Lệnh Chức Năng Dạng Mẫu Thiết Bị
Tiếp điểm phát hiện sườn
lên. Khi đầu vào IN chuyển
PLS trạng thái từ 0 lên 1 thì bít X, Y, M, S, T, C
trạng thái được set lên 1
VD:

9
Khi X000 = 1 rồi X000 =0 thì Lệnh sườn xuống sẽ bắt cạnh xung sườn xuống và đưa ra ngõ ra 1
xung duy nhất khi ngõ ra Y000 =1 tiếp điểm thường hở Y000 sẽ =1 và ngõ ra được duy trì

4.2.6 Lệnh PLF ( sườn xuống )


Tập Lệnh Chức Năng Dạng Mẫu Thiết Bị
Tiếp điểm phát hiện sườn
PLF ( sườn xuống ) lên. Khi đầu vào IN chuyển X, Y, M, S, T, C
trạng thái từ 0 lên 1 thì bít
trạng thái được set lên 1
VD:

Khi X000 = 1 rồi X000 =0 thì Lệnh sườn xuống sẽ bắt cạnh xung sườn xuống và đưa ra ngõ ra 1
xung duy nhất khi ngõ ra Y000 =1 tiếp điểm thường hở Y000 sẽ =1 và ngõ ra được duy trì

4.2.7 Lệnh SET


Tập Lệnh Chức Năng Dạng Mẫu Thiết Bị
Ghi giá trị địa chỉ đầu ra
SET bằng 1 Y, M, S, T, C

VD:

Khi ngõ vào X0 = 1 thì ngõ ra Y000 sẽ luôn luôn =1, cho dù ngõ vào X0 = 0 trở lại thì Y00 vẫn
luôn là 1

10
4.2.8 Lệnh RESET
Tập Lệnh Chức Năng Dạng Mẫu Thiết Bị
Ghi giá trị địa chỉ đầu ra
RESET bằng 0 Y, M, S, T, C

VD:

Khi ngõ vào X000=1 thì ngay lập tức ngõ ra Y000 sẽ luôn sét ON khi ngõ vào X001=1 thì Ngõ
ra Y000 sẽ bị reset OFF

4.2.9 Lệnh ZRST


Tập Lệnh Chức Năng Dạng Mẫu Thiết Bị
Xóa nhiều giá trị địa chỉ
ZRST đầu ra bằng 0 cùng một Y, M, S, T, C, D
lúc.
VD:

11
Khi ngõ vào xóa bằng 1 thì tất cả các thiết bị trong phạm vi trên bị xóa về 0

4.3 Lệnh toán học


4.3.1 Phép cộng (ADD)
Lệnh ADD là lệnh thực hiện phép cộng với 2 giá trị cho trước và tổng sẽ được ghi vào một vùng
nhớ, ở đây cấu trúc lệnh như sau :

- ADD là phép cộng


- K100 là hằng số đặt trước dạng hằng số
- D0 là hằng số cho trước trong vùng nhớ
- D2 vùng nhớ để lưu giá trị tổng của phép cộng

4.3.2 Phép trừ (SUB)


Lệnh SUB là lệnh thực hiện phép trừ với 2 giá trị cho trước và hiệu sẽ được ghi vào một vùng
nhớ của người dùng đặt trước. Ở đây cấu trúc lệnh như sau :

- SUB là phép trừ


- K100 là hằng số đặt trước dạng hằng số
- D0 là hằng số cho trước trong vùng nhớ
12
- D2 vùng nhớ để lưu giá trị hiệu của phép trừ

4.3.3 Phép nhân


Lệnh MUL là lệnh thực hiện phép Nhân với 2 giá trị cho trước và hiệu sẽ được ghi vào một vùng
nhớ của người dùng đặt trước. ở đây cấu trúc lệnh như sau :

- MUL là phép Nhân


- K100 là hằng số thứ nhất đặt trước dạng hằng số
- K2 là hằng số thứ 2 đặt trước
- D2 vùng nhớ để lưu giá trị của phép nhân

4.3.4 Phép chia


Lệnh DIV là lệnh thực hiện phép Chia với 2 giá trị cho trước và kết quả sẽ được ghi vào một
vùng nhớ của người dùng đặt trước. ở đây cấu trúc lệnh như sau :

- MUL là phép Chia


- K100 là hằng số thứ nhất đặt trước dạng hằng số
- K2 là hằng số thứ 2 đặt trước
- D2 vùng nhớ để lưu giá trị của phép chia

4.3.5 Lệnh INC, INCP


Lệnh này làm tăng dữ liệu của thanh ghi D0 lên 1 mỗi khi X00 được tác động. Nghĩa là mỗi lần
X00 được tác động thì thanh ghi D0 được cộng lên 1 và lưu vào D0.

13
4.4 Lệnh di chuyển
4.4.1 Lệnh MOV
Lệnh MOV là lệnh di chuyển giá trị của 1 thanh ghi hay di chuyển 1 giá trị hằng số vào một
vùng nhớ thanh ghi khác với cấu trúc lệnh như sau

Trong đó MOV là lệnh di chuyển

K100, D0 là giá trị đặt trước cần di chuyển D1, D10 là thanh ghi lưu giữ giá trị di chuyển

4.4.2 Lệnh BMOV/di chuyển khối

Trong đó: D0 là nguồn chuyển hay là nguồn chứa dữ liệu được chuyển. D10 số thiết bị đích
chuyển đến K3 số điểm được chuyển.

VD:

Khi ngõ vào X000 bằng 1 thì lệnh BMOV được thực thi và dữ liệu các thanh ghi từ D0 đến D2
được di chuyển đến các thanh ghi theo thứ tự từ D10 đến D12

14
Khi ngõ vào X001 bằng 1 thì lệnh BMOV được thực thi và dữ liệu các thanh ghi từ D100 đến
D103 được di chuyển đến các thanh ghi theo thứ tự từ D200 đến D203

4.4.3 Lệnh FMOV/di chuyển lấp đầy


Lệnh này có chức năng là chuyển cùng một dữ liệu tới nhiều đích khác nhau.

VD:

Khi ngõ vào X000 bằng 1 thì lệnh FMOV được thực thi và dữ liệu K0 sẽ được di chuyển vào các
thanh ghi từ D10 đến D12

4.5 Lệnh so sánh


4.5.1 Lệnh CMP/so sánh
Lệnh này so sánh hai giá trị và xuất ra kết quả ( nhỏ hơn, bằng hoặc lớn hơn) đến các thiết bị bit
(3 điểm).

VD:

15
Trong ví dụ trên:

- M0 ON lên khi “K100 > C0” ( giá trị hiện hành ).


- M1 ON lên khi “K100 = C0” ( giá trị hiện hành ).
- M2 ON lên khi “K100 < C0” ( giá trị hiện hành ).
4.5.2 Lệnh ZCP/so sánh vùng
Lệnh này so sánh hai giá trị (vùng) với nguồn so sánh và xuất kết quả (nhỏ hơn, bằng hoặc lớn
hơn) đến thiết bị bit (3 điểm).

VD:

Trong ví dụ trên:

D0 Là dữ liệu hoặc số thiết bị được xem như là giá trị so sánh thấp.
D1 Là dữ liệu hoặc số thiết bị được xem như là giá trị so sánh cao.
D2 Là dữ liệu hoặc số thiết bị được xem như là nguồn so sánh.
M0 Là số thiết bị đầu mà kết quả so sánh được xuất ra.
Khi X000 được ON lên lệnh ZCP được thực thi và kết quả sẽ như sau:
 M0 sẽ ON lên khi “D0 > D2”
 M1 sẽ ON lên khi “D0 <= D2 <= D1”
 M2 sẽ ON lên khi “D2 > D1”

16
Chương 5: Các Vùng Nhớ Và Các Tập Lệnh Cơ Bản
5.1 Lệnh Time
Các timer cộng và đếm các các xung clock 1ms, 10ms, 100ms,… trong PLC. Khi giá trị đếm
được đạt được giá trị cài đặt, tiếp điểm ngõ ra của timer bật ON.

Giá trị cài đặt có thể được xác định trực tiếp bằng hằng số (K) trong bộ nhớ chương trình hoặc
gián tiếp bởi nội dung của thanh ghi dữ liệu (D)

cho các xung Cho các xung 10 Loại khả nhớ Loại khả nhớ Cho các xung
100ms 0.1s to ms 0.01s to cho các xung cho các xung 1ms
3276,7s 327.67s 1ms*1 0.001s to 100ms*1 0.1s to 0.001 to 32.767s
32.767s 3276.7s
T0 đến T199 T200 đến T245 T246 đến T249 T250 đến T249 T256 đến T511
(200 điểm) (46 điểm) (4 điểm) Loại (6 điểm) loại (256 điểm)
được chốt được chốt

Các số của timer không được sử dụng cho các các bộ định thì có thể được sử dụng như các thanh
ghi dữ liệu cho việc lưu trữ giá trị số. VD : Loại time chung

Khi ngõ vào điều khiển X000 của cuộn dây timer T0 bật ON, bộ đếm giá trị hiện hành của T0
cộng và đếm các xung clock 100ms. Khi giá trị đếm được bằng với giá trị cài đặt là K30, tiếp
điểm ngõ ra của timer bật ON. Nói một cách khác, tiếp điểm ngõra bật ON sau 3s khi cuộn dây

17
được điều khiển. Khi ngõ vào điều khiển X000 bật OFF hoặc khi nguồn điện bật OFF, timer
được reset và các tiếp điểm ngõ ra trở về trạng thái đầu.

VD : Loại time có chốt

Khi ngõ vào điều khiển X000 của cuộn dây timer T246 bật ON, bộ đếm giá trị hiện hành của
T246 cộng và đếm các xung clock 1ms. Khi giá trị đếm được bằng với giá trị cài đặt là K3000,
tiếp điểm ngõ ra của timer bật ON. Nói một cách khác, tiếp điểm ngõ ra bật ON sau 3s khi cuộn
dây được điều khiển. Khi ngõ vào điều khiển X000 bật OFF hoặc khi nguồn điện bật OFF, timer
vẫn luôn được set ON khi ngõ vào X001 ON thì lập tứ lệnh Reset (RST) sẽ reset T246 về =0 lúc
này Time sẽ về trạng thái ban đầu và ngõ ra Y000 OFF.

5.2 Lệnh COUNTER


Counter là bộ đếm thực hiện chức năng đếm sườn (cạnh) xung của tín hiệu đầu vào

Bộ đếm 16 bit Tầm đếm từ 0 đến 32767 Bộ đếm hai chiều 32 bit Tầm đếm từ -
2,147,483,648 to +2,147,483,647
Kiểu chốt (nguồn dự Kiểu chốt (nguồn
PLC phòng),(được bảo vệ dự phòng),(được
FX3G/FX3GC, Kiểu chung bởi nguồn pin chống Kiểu chung bảo vệ bởi nguồn
FX3U/FX3UC lại sự cố mất nguồn) pin chống lại sự cố
mất nguồn)
C0 to C99 C100toC199 100 C200 to C219 20 C220 to C234 15
điểm*2 điểm*1 điểm*2
18
100 điểm*1

5.3 Lệnh thời gian thực trong PLC


5.3.1 Lệnh TRD/đọc dữ liệu RTC

Lệnh đọc dữ liệu đồng hồ từ thời gian thực trong PLC và chuyển ra 7 thanh dữ liệu.

Dữ liệu đồng hồ lưu trong D8013 và D8019 của đồng hồ thời gian thực trong PLC được đọc và
lưu ở thanh ghi D0 đến D6.

19
5.3.2 Lệnh TWR/lệnh cài đặt dữ liệu RTC

Dữ liệu đồng hồ lưu ở thanh ghi D10 đến D16 được viết đến D8013 đến D8019 cho đồng hồ thời
gian thực trong PLC.

20
- Khi X000 ON lên lệnh TWR thi hành, lập tức dữ liệu đồng hồ thời gian thực thay đổi.
- Khi dùng lệnh này cài đặt dữ liệu đồng hồ (thời gian), không cần dùng đến relay phụ trợ
M8015 (thời gian dừng và thời gian cài đặt).
- Nếu cài giá trị ngày/giờ không đúng, dữ liệu đồng hồ không thay đổi.
- Chú ý: Số thanh ghi chiếm chỗ Bảy thanh ghi chiếm chỗ từ D10 đến D16. Chắc chắn
rằng các thanh ghi này không được sử dụng cho bất kỳ mục đích khác.

21
Chương 6: Bài Tập Về PLC
6.1 Hệ thống đóng gói sản phẩm (Táo)
Quy trình thực hiện
 Ấn ON  DC1 chạy để bang tải thùng chạy đưa vỏ thùng đóng táo vào. Khi vỏ
thùng vào đến vị trí S2 thì DC1 dừng.
 Ngay khi DC1 dừng thì DC2 chạy để kéo băng tải táo hoạt động đưa táo rơi vào
thùng. Táo được đếm bởi một cảm biến hồng ngoại S1.
 Khi số táo đưa vào thùng đủ 10 quả (mỗi thùng 10 quả) thì DC2 dừng. Tiếp tục
DC1 chạy lại để đưa thùng táo thành phẩm ra ngoài và đóng thùng táo mới.
Thực hiện Code

22
6.2 Hệ thống tín hiệu Đèn Giao thông
Quy trình thực hiện
 Chế độ 1: Đèn xanh 1 sáng, ở hướng hai đèn đỏ 2 sáng. Sau thời gian T0 = 250
(25s) thì đèn xanh 1 tắt, ở hướng hai đèn đỏ 2 vẫn sáng. Tiếp theo là đèn vàng 1
sáng. Sau T1 = 50 (5s) đèn vàng tắt,
 Chế độ 2: Đèn xanh, đỏ ở hướng 1, 2 đều tắt. Đèn vàng hướng 1, 2 nháy chu kì 1s
(sáng 5s, tắt 0.5s)
 Chế độ 3: Chạy với thời gian thực. Nghĩa là từ 4h sáng và đến 23h đêm thì chay
chế độ 1. Và sau 23h đêm và trc 4h sáng thì đèn xanh, đỏ hướng 1, 2 tắt. Đèn
vàng hướng 1, 2 nháy chu kì 1s (sáng 5s, tắt 0.5s)
Thực hiện code
 Các chế độ:

 Chế độ 1: Điều khiển các đèn xanh, đỏ, vàng ở hướng 1 và 2

23
 Chế độ 2: Điều khiển đèn vàng hướng 1 và 2 nhấp nháy theo chu kì

24
 Chế độ 3: Điều khiển tín hiệu đèn theo thời gian thực

25
6.3 Hệ thống điều khiển cấp và xả nước với bình chứa.
Quy trình thực hiện
- Chế độ Cấp nước: Khi xung điều khiển PLC M8000 tác động thì M0 chạy  van cấp
nước được bật (Y000), đèn (Y001) được bật sáng. Sau 20s thì M0 sẽ dừng và có D0
là đồng hồ hiển thị
- Chế độ xả nước: Khi xung điều khiển PLC M8000 tác động thì M1 chạy  van cấp
nước được bật (Y002), đèn (Y003) được bật sáng. Sau 15s thì M1 sẽ dừng và có D1
là đồng hồ hiển thị
Thực hiện Code

26
27
Phần II: TỔNG QUAN VỀ LẬP TRÌNH WINDOWNS FORMS BẰNG
Csharp (C#)

Chương 1: Giới Thiệu về lập trình Windowns Forms bằng C#


1.1 Windowns Forms
Windowns Forms là thuật ngữ mô tả một ứng dụng được viết dùng .NET FrameWorrk và có
giao diện người dùng Windows Forms (màn hình windows).
Mỗi màn hình windows cung cấp một giao diện giúp người dùng giao tiếp với ứng dụng. Giao
diện này được gọi là giao diện đồ họa (GUI) của ứng dụng.
Là các ứng dụng windows chạy trên máy tính - mã lệnh thực thi ngay trên máy tính: Microsoft
Word, Excel, Access, Calculator, Yahoo, Mail,... là các ứng dụng Windows Forms.

1.2 Cách tạo một Windows Forms Application trên MicroSoft Visual Studio
Việc đầu tiên chúng ta cần cài đặt Microsoft Visual Studio trên máy tính, các bạn có thể
download Microsoft Visual Studio 2019 , đây là phiên bản mới nhất cho đến hiện tại.
Tiếp theo, thực hiện các bước sau để tạo một Windowns Form
Khởi động Visual Studio 2019 -> chọn vào mục Create a new project để tạo một project
mới.

Sau khi chọn mục Create a new project thì một cửa sổ khác mở ra, trong đó có các
platforms mà các bạn đã cài. Vì chúng ta sẽ lập trình winforms với c# nên sẽ chọn
platforms Windows Forms App (.NET FrameWork) -> Next.

28
Sau khi chọn platforms một cửa sổ mới hiện ra, yêu cầu các bạn nhập thông tin cho
project. Các bạn sẽ nhập các thông tin được yêu cầu rồi chọn create để tạo.

Đặt tên cho project

Chọn đường dẫn cho

Đặt tên cho Solution

Chọn Framework sử dụng

chờ một lúc cho hệ thống tạo project, quá trình tạo nhanh hay chậm tùy thuộc vào cấu
hình máy của các bạn. Sau khi tạo xong thì màn hình ứng dụng sẽ như sau:

29
1.3 Các thuộc tính cơ bản trên Windows Forms Application

1.3.1 ToolBox
ToolBox là nơi chứa các điều khiển để thiết kế giao diện, để mở cửa sổ ToolBox các bạn vào
View | ToolBox (Ctrl + Alt + X).

C# cung cấp danh sách các Component/Control được liệt kê theo nhóm. Cho phép các bạn sử
dụng thao tác kéo thả vào form để thiết kế giao diện cho chương trình.
Trong ToolBox có các nhóm điều khiển để thiết kế giao diện như sau:

30
- Common Controls: Chứa các điều khiển thông dụng như: TextBox, Label…..
- Containers: Chứa các điều khiển giúp trình bày các điều khiển khác trên form.
- Menus & Toolbsrs: Chứa các điều khiển giúp tạo thanh thực đơn và thanh trạng thái:
MenuStrip, StatusStrip.
- Components: Chứa các điều khiển giúp kiểm tra dữ liệu nhập như: Errorprovider,
Helpproder.
- Printing: Chứa các điều khiển giúp làm việc với in ấn: PrintDialog, PrintReviewDialog
- Dialogs: Chứa các điều khiển làm việc với tập tin.
- WPF interoperability: Chứa điều khiển cho phép Đặt điều khiển của WPF trong cửa sổ
Windows Form: ElemenHost.
- Data: Chứa các điều khiển giúp làm việc với cơ sở dữ liệu’

1.3.2 Form
Form là vùng để thiết kế giao diện, ta chọn nhấn dữ chuột trái kéo điều khiển vào form hoặc
double click vào điều khiển mà bạn muốn thiết kế. Các điều khiển còn được gọi là control hay
component

Form được gọi là control "chứa" (vì nó có thể được chứa trong các control khác)

31
1.3.3 Properties
Properties là nơi thiết lập thuộc tính của các điều khiển, với mỗi điều khiển/ Control đều được
cung cấp sẵn một danh sách các thuộc tính để các bạn có thể thiết lập.
Hầu hết giữa các điều khiển đều có những thuộc tính chung (giống nhau) và những thuộc tính
riêng đặc trưng cho điều khiển đó.

Với mỗi điều khiển, để xuất hiện cửa sổ thiết lập thuộc tính các bạn chỉ cần nhấp chuộc phải lên
điều khiển đó và chọn properties trong menu hiện ra.

1.3.4 Code window (cửa sổ viết code)


Cửa sổ viết code là nơi để chúng ta lập trình theo sự kiện của các điều kiển/Controls. Để bật cửa
sổ này các bạn chỉ cần double click vào form, khi đó tự động nó sẽ được tạo.

32
Lập trình ứng dụng winforms là lập trình theo hướng sự kiện. Mỗi control có danh sách các sự
kiện đi kèm, ta cần lập trình tương tác ở sự kiện nào thig phát sinh và code ở sự kiện đó.
Sự kiện sau khi phát sinh có tên dạng: [Tên control] _ [Tên sự kiện].

Chương 2: Bài tập làm quen với lập trình Windowns Forms bằng C#
2.1 Video1: Chia cửa sổ
Form1.cs

Form1.cs[Design]

33
2.2 Video2: Truyền thông UART có đồ thị
Form1.cs

34
35
Form1.cs[Design]

36
File protues

2.3 Video3: Đọc ghi file CSV các tham số robot


Form1.cs

37
38
Form1.cs[Design]

39
2.4 Video4: TreeView và PropertyGrid dùng mô tả tham số robot
Form1.cs

40
41
Form1.cs[Design]

42

You might also like