SlideShare a Scribd company logo
1 of 29
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
________________________
PHẠM NGỌC CƯỜNG
XÂY DỰNG MẠNG TRUYỀN THÔNG CÔNG NGHIỆP
MODBUS RTU BẰNG NGÔN NGỮ PYTHON
TRÊN MÁY TÍNH NHÚNG LINUX
Chuyên ngành: Kỹ thuật điều khiển và tự động hóa
Mã số: 60520216
TÓM TẮT LUẬN VĂN THẠC SĨ
KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA
Đà Nẵng – Năm 2017
Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Người hướng dẫn khoa học: TS. TRẦN ĐÌNH KHÔI QUỐC
Phản biện 1: TS. Nguyễn Lê Hòa
Phản biện 2: TS. Giáp Quang Huy
Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp
thạc sĩ Kỹ thuật Điều khiển và Tự động hóa, họp tại Trường Đại học
Bách khoa – Đại học Đà Nẵng vào ngày 25 tháng 03 năm 2017.
Có thể tìm hiểu luận văn tại:
 Trung tâm Học liệu, Đại học Đà Nẵng tại trường Đại học
Bách khoa.
 Thư viện Khoa Điện, Trường Đại học Bách khoa – Đại học
Đà Nẵng.
MỤC LỤC
MỤC LỤC..........................................................................................3
MỞ ĐẦU............................................................................................1
1. Tính cấp thiết của đề tài........................................................1
2. Mục tiêu nghiên cứu.............................................................2
3. Đối tượng và Phạm vi nghiên cứu........................................3
4. Phương pháp nghiên cứu ......................................................3
5. Ý nghĩa khoa học và thực tiễn ..............................................4
6. Cấu trúc luận văn..................................................................4
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ GIAO THỨC MẠNG
MODBUS RTU.............................................................................6
1.1 GIỚI THIỆU MẠNG MODBUS.......................................6
1.2 CẤU TRÚC ĐOẠN TIN GIAO THỨC MODBUS..........7
CHƯƠNG 2: GIỚI THIỆU TỔNG QUAN VỀ PYTHON VÀ MÁY
TÍNH NHÚNG LINUX.................................................................8
2.1 NGÔN NGỮ PYTHON ...................................................8
2.2 MÁY TÍNH NHÚNG CÔNG NGHIỆP...........................8
CHƯƠNG 3: XÂY DỰNG CÁC LỚP DỮ LIỆU VÀ THUẬT
TOÁN............................................................................................9
3.1 SƠ ĐỒ CHUNG...............................................................9
3.1.1. Lớp dữ liệu của Slaver......................................... 9
3.1.2. Lớp dữ liệu của Master........................................ 9
3.2 XÂY DỰNG THUẬT TOÁN..........................................9
3.2.1. Lớp Utilities....................................................... 10
3.2.2. Lớp physical....................................................... 16
3.2.3. Lớp transaction .................................................. 16
3.2.4. Lớp Factory........................................................ 17
3.2.5. Lớp bit_read_message.py &
bit_write_message.py &
register_read_message.py &
register_write_message.py................................ 18
3.2.6. Lớp dành riêng cho kho dữ liệu (server
mode)................................................................ 18
CHƯƠNG 4: KẾT QUẢ MÔ PHỎNG ............................................21
4.1 KHỞI TẠO HỆ THỐNG ẢO...........................................21
4.2 KẾT QUẢ MÔ PHỎNG...................................................21
4.2.1. Kết quả kiểm tra mã chức năng Write Coil
(FC=05). ........................................................... 21
4.2.2. Kết quả kiểm tra mã chức năng Write Coils
(FC=15). ........................................................... 21
4.2.3. Kết quả kiểm tra mã chức năng Read Coils
Status (FC=01).................................................. 21
4.2.4. Kết quả kiểm tra mã chức năng Read Coils
Status (FC=01).................................................. 21
4.2.5. Kết quả kiểm tra mã chức năng Write
Holding Registers (FC=16)............................... 21
4.2.6. Kết quả kiểm tra mã chức năng Read
Holding Registers (FC=3)................................. 22
4.2.7. Kết quả kiểm tra mã chức năng Write
Holding Registers (FC=16)(kiểm tra lần thứ
2 cho 1 thanh ghi duy nhất). ............................. 22
4.2.8. Kết quả kiểm tra mã chức năng Read
Holding Registers (FC=3) (kiểm tra lần thứ
2 cho 1 thanh ghi duy nhất). ............................. 22
4.2.9. Kết quả kiểm tra mã chức năng Read
Discrete Inputs (FC=02). 4.2.10. Kết quả
kiểm tra mã chức năng Read Inputs Register
(FC=04). ........................................................... 22
4.2.11. Kết quả kiểm tra Mã Ngoại lệ nếu có vấn đề
trên khung truyền hoặc kho dữ liệu. ................. 22
4.3. KẾT QUẢ MÔ PHỎNG KHI KẾT NỐI MÁY
TÍNH NHÚNG VÀ MÁY TÍNH NGOÀI .............................22
4.3.1. Phương pháp thực hiện. ..................................... 22
4.3.2. Mô phỏng quá trình ghi cuộn dây (FC=5 và
FC=15).............................................................. 22
4.3.3. Mô phỏng quá trình ghi thanh ghi (FC=16)....... 22
4.3.4. Mô phỏng quá trình đọc thanh ghi (FC=3)........ 22
4.3.5. Mô phỏng quá trình đọc đầu vào số (FC=2)...... 22
4.3.6. Mô phỏng quá trình đọc thanh ghi analog
(FC=4). ............................................................. 22
KẾT LUẬN ......................................................................................23
Các điểm đã làm được ............................................................23
Các điểm hạn chế....................................................................23
Hướng phát triển đề tài...........................................................23
1
MỞ ĐẦU
1. Tính cấp thiết của đề tài
Hiện nay, PLC và máy tính nhúng công nghiệp đang được dùng để
làm các thiết bị đầu cuối trong các mạng cục bộ công nghiệp. Cả hai
loại PLC và máy tính nhúng công nghiệp đều có ưu điểm và nhược
điểm riêng. Xét riêng về máy tính nhúng công nghiệp, khả năng mở
rộng ngoại vi, lưu trữ dữ liệu là cực kì rộng lớn. Máy tính nhúng có
các khả năng chịu va đập, nhiệt độ môi trường, tốc độ xử lý cao.
Tuy nhiên khi sử dụng máy tính trong mạng THCN cần có một trong
những yếu tố sau:
Phần cứng ngoài: các module/card xử lý dữ liệu ngoài như Modbus,
Profibus…Các module/card có giá thành từ 200-1000$ tùy theo chức
năng và số cổng.
Phần mềm từ đối tác thứ 3: nếu không dùng phần cứng ngoài có thể
dùng ngoại vi trực tiếp của máy tính nhúng nhưng cần driver để điều
khiển và các phần mềm, mã nguồn để thực hiện các giao thức. Cần
phải mua bản quyền để sử dụng. Có những phần mềm không hỗ trợ
nguồn mở để phát triển các ứng dụng riêng.
Thông qua đề tài "Xây dựng mạng truyền thông công nghiệp
Modbus RTU bằng ngôn ngữ Python trên máy tính nhúng Linux",
mạng Modbus RTU và các ngăn xếp của nó được tìm hiểu và xây
dựng bằng ngôn ngữ Python trên nền tảng máy tính Banana Pro
nhúng hệ điều hành Linux. Dựa theo cách thức hoạt động tiêu chuẩn
của mạng công nghiệp Modbus RTU, đề tài này nghiên cứu thuật
2
toán để xây dựng các lớp hướng đối tượng nhằm truyền nhận dữ liệu
và xử lý dữ liệu truyền thông nối tiếp. Theo đó, các thuật toán giúp
tạo khung truyền, nhận khung truyền, sinh ra giá trị kiểm thử, các mã
ngoại lệ,... sẽ được xây dựng chính xác và viết bằng ngôn ngữ
Python.
Thông qua máy tính nhúng Linux, người lập trình ngoài việc sử dụng
mã nguồn Modbus được xây dựng để truyền nhận dữ liệu còn lập
nhiều chức năng điều khiển mới cho module này như đóng cắt thiết
bị, đọc giá trị cảm biến, giao tiếp người – máy (HMI),... mà các
module Modbus thông thường không làm được. Đề tài này hướng tới
mục tiêu chính là tạo ra mã nguồn mở chỉ có chức năng truyền thông
tin giữa các nút mạng theo chuẩn modbus. Ngoài ra không có chức
năng xử lý khác như PID, mạng neuron…
2. Mục tiêu nghiên cứu
Tìm hiểu cấu tạo các lớp ngăn xếp của mạng Modbus RTU. Sau đó
tìm hiểu các hình thức trao đổi dữ liệu và xử lý dữ liệu giữa các lớp
ngăn xếp.
Tìm hiểu ngôn ngữ Python hướng đối tượng và cách thức xử lý dữ
liệu lớp vật lý của giao thức truyền thông nối tiếp.
Tìm hiểu các cổng ngoại vi của máy tính nhúng Banana Pro được sử
dụng cho mạng Modbus.
Xây dựng các lớp ngăn xếp dùng ngôn ngữ Python hướng đối tượng
sau khi đã tìm hiểu về cách thức hoạt động của các lớp ngăn xếp này.
3
Mô phỏng đánh giá hoạt động trên các chương trình Server/Client
thông qua cổng truyền thông ảo.
3. Đối tượng và Phạm vi nghiên cứu
Mạng Modbus có 3 phương thức giao tiếp là RTU, ASCII và
TCP/IP, trong đề tài này đối tượng nghiên cứu là mạng Modbus
RTU.
Phạm vi nghiên cứu là tích hợp mạng Modbus bằng ngôn ngữ Python
trên máy tính Banana Pro nhúng hệ điều hành Linux. Như vậy đề tài
giới hạn phạm vi ở việc lập trình dùng ngôn ngữ Python, máy tính
Banana Pro và hệ điều hành Linux.
4. Phương pháp nghiên cứu
Tìm hiểu các tài liệu sách vở có liên quan đến mạng Modbus, cấu
tạo, chức năng và cách thức hoạt động của chúng. Từ đó kết hợp với
ngôn ngữ Python hướng đối tượng để xây dựng phần mềm.
Tìm hiểu cấu trúc phần cứng của máy tính Banana Pro, các thông số
kĩ thuật và cách sử dụng nó thông qua sổ tay từ nhà sản xuất
LeMaker.
Từ các kiến thức trên, đưa ra các lưu đồ thuật toán để xử lý dữ liệu
nhằm truyền và nhận khung truyền dữ liệu theo tiêu chuẩn của
Modbus RTU.
Mô phỏng phương thức truyền đạt dữ liệu thông qua các cổng truyền
thông nối tiếp ảo có sẵn trên hệ điều hành Linux. Xây dựng hai
chương trình có cơ chế Server/Client để thực hiện mô phỏng này.
4
Chạy mạng Modbus thực tế bằng cách gán cổng truyền thông thực,
thông qua module PL2303 trao đổi dữ liệu với một thiết bị Modbus
khác, đó là một máy tính hệ điều hành Windows có cài sẵn phần
mềm mô phỏng Modbus.
5. Ý nghĩa khoa học và thực tiễn
Tích hợp được mạng Modbus RTU trên máy tính nhúng đem lại cho
lập trình hệ thống mở rộng tính năng hơn so với các module Modbus
thông thường vì máy tính nhúng hiện nay có hỗ trợ nhiều ngoại vi
giúp giao tiếp với cảm biến (nhiệt, quang, gia tốc,...), các thiết bị
đóng cắt, các thiết bị truyền thông mạng công nghiệp, thậm chí là
giao tiếp với các màn hình HMI (Human Machine Interface: Giao
tiếp người-máy) cũng như bản thân có thể làm thành thiết bị HMI.
Máy tính nhúng có giá thành rẻ hơn nhiều so với các module mạng
công nghiệp đang sử dụng, có khả năng làm trong môi trường công
nghiệp, không cần thiết bị làm mát, dễ dàng lắp đặt vì có kích thước
nhỏ, không cồng kềnh.
6. Cấu trúc luận văn
Chương 1: Giới thiệu tổng quan về giao thức mạng Modbus RTU.
Chương này giới thiệu khái niệm mạng Modbus và cấu trúc đoạn tin
mạng Mod bus RTU.
Chương 2: Giới thiệu tổng quan về python và máy tính nhúng Linux.
Chương này so sánh ngôn ngữ Python với các ngôn ngữ lập trình
nhúng hiện có, đồng thời so sánh máy tính nhúng và các vi điều
5
khiển thông thường.
Chương 3: Xây dựng các lớp dữ liệu và thuật toán.
Chương này mô tả cấu tạo của các lớp, thuật toán để xử lý khung
truyền/nhận dữ liệu.
Chương 4: Kết quả mô phỏng.
Chương này đưa ra kết quả mô phỏng bằng hai phương pháp, đó là
kết nối 2 máy ảo với nhau và kết nối máy tính nhúng và một máy
tính khác có cài phần mềm mô phỏng Modbus.
6
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ GIAO THỨC
MẠNG MODBUS RTU
1.1 GIỚI THIỆU MẠNG MODBUS
Modbus là một giao thức mạng truyền dữ liệu theo kiểu nối tiếp. Nó
hỗ trợ cả 2 chuẩn truyền RS232 và RS485. Việc truyền dữ liệu được
thực hiện theo cơ chế 1 Master/ nhiều Slave.
Sơ đồ bên dưới trình bày sự tham chiếu giao thức modbus lên mô
hình chuẩn OSI. Theo đó thì giao thức modbus nằm ở lớp thứ 7, thứ
2, và thứ 1 của mô hình OSI. Lớp thứ 7 này (lớp ứng dụng) giúp hỗ
trợ phương thức truyền thông server/client giữa các thiết bị kết nối
trên bus hoặc trên mạng không dây. Lớp thứ 2 và lớp thứ 1 quy định
hình thức truyền dữ liệu theo kiểu nối tiếp và chuẩn truyền vật lý là
EIA/TIA – 485 (hoặc EIA/TIA – 232).
Hình 1.1: Giao thức modbus và mô hình OSI
Căn cứ vào cách thức truyền dữ liệu trong mạng, thì mạng Modbus
được chia làm 3 loại: Modbus RTU, Modbus ASCII và Modbus
TCP/IP.
7
1.2 CẤU TRÚC ĐOẠN TIN GIAO THỨC MODBUS
Hình dưới đây trình bày cấu trúc của một đoạn tin truyền trong giao
thức mạng modbus .
Hình 1.2: Cấu trúc đoạn tin mạng Modbus
8
CHƯƠNG 2: GIỚI THIỆU TỔNG QUAN VỀ PYTHON VÀ
MÁY TÍNH NHÚNG LINUX
2.1 NGÔN NGỮ PYTHON
Python được giới thiệu vào năm 1991, là một loại ngôn ngữ bậc cao.
Ngôn ngữ Python đưa ra cú pháp dễ đọc và tái sử dụng cú pháp của
các ngôn ngữ khác đến 10%
Phần này so sánh ngôn ngữ Python và các ngôn ngữ khác là C và
java
2.2 MÁY TÍNH NHÚNG CÔNG NGHIỆP
Phần này so sánh giữa máy tính nhúng Raspberry Pi và các vi điều
khiển
Trong các ứng dụng nhỏ và cực nhỏ, không trong môi trường công
nghiệp thì có thể dùng vi điều khiển. Tuy nhiên trong môi trường
công nghiệp, việc sử dụng máy tính nhúng thể hiện các ưu điểm vượt
trội hơn, đảm bảo một hệ thống nhanh, an toàn và có thể mở rộng.
9
CHƯƠNG 3: XÂY DỰNG CÁC LỚP DỮ LIỆU VÀ THUẬT
TOÁN
3.1 SƠ ĐỒ CHUNG
Phần sơ đồ chung đưa ra các lớp, sự sắp xếp và cách phân tích cũng
như đóng gói dữ liệu
3.1.1. Lớp dữ liệu của Slaver
3.1.2. Lớp dữ liệu của Master
3.2 XÂY DỰNG THUẬT TOÁN
Dựa theo nguyên lý hoạt động của chuẩn truyền thông công nghiệp
Modbus, em xin đưa ra các lớp (class) viết theo ngôn ngữ python cho
Slave (server) và Master (client).
Nhìn chung, luận văn sẽ đưa ra các lớp giúp máy tính nhúng có thể
xử lý dữ liệu một cách hiệu quả và các lớp này sử dụng được cho cả
2 mode là server và client. Các lớp đó bao gồm:
- Lớp Utilities
- Lớp Transaction
- Lớp Factory
- Lớp Bit_read_messabe.py ; bit_write_message.py
register_read_message.py register_write_message.py
- Lớp Physical
- Lớp Context
- Lớp Store
10
3.2.1. Lớp Utilities
Lớp Utitlities đóng vai trò quan trọng trong việc xử lý dữ liệu và
được tái sử dụng ở các lớp khác như sync và transaction. Nhờ lớp
utilites mà việc đóng gói dữ liệu trở nên dễ dàng và chính xác hơn.
Vì thế lớp utilities được Modbus lớp cơ bản nhất trong xử lý dữ liệu.
Do đặc trưng về khung truyền của chuẩn Modbus, cần phải xử lý dữ
liệu dạng bit, byte cũng như mã crc nên em đưa ra các phép toán ở
lớp này như sau:
- pack_bitstring
- unpack_bitstring
- generate_crc_table
- computeCRC
- checkCRC
Việc xử lý và tách byte sẽ được sử dụng nhờ vào module struct của
python.
a. Hàm pack_bitstring
pack_bitstring giúp tạo 1 chuỗi từ các bit. Pack_bitstring được sử
dụng ở lớp Bit_read_messabe.py ; bit_write_message.py
register_read_message.py.
11
Vì ở các lớp này dữ liệu của các cuộn dây ở dạng bit là True hoặc
False.
Hình 3.3: Thuật toán cho hàm pack_bitstring
12
b. Hàm unpack_bitstring
Hàm unpack_bitstring có chức năng chuyển chuỗi thành các bit. Khi
giải mã khung truyền có chức năng tác động lên cuộn dây, cần phải
tách chuỗi từ khung truyền thành các bit tương ứng với vị trí của
từng cuộn dây.
Hình 3.4: Thuật toán cho hàm unpack_bitstring
13
c. Hàm generate_CRC_table
Để tạo mã CRC cho khung truyền modbus, cần có 2 bước là
1- tạo bảng CRC.
2- dùng bảng CRC này và dữ liệu của khung truyền để tạo mã CRC
sau đó thêm vào cuối khung truyền.
Các bước chính tạo mã CRC như sau:
Bước 1. Đặt thanh ghi CRC 16 bit giá trị 0xFFFF.
Bước 2. XOR 8 bit đầu tiên của khung truyền với 8 bit thấp của
thanh ghi CRC sau đó đưa lại vào thanh ghi CRC.
Bước 3. Dịch thanh ghi CRC sang phải 1 bit (về phía bit thấp), điền 0
vào bít cao. Trích bit thấp LSB đó ra.
Bước 4. Nếu bit thấp LSB là 0 : lặp lại bước 3 (dịch mới)Nếu bit
thấp LSB là 1: XOR thanh ghi CRC với giá trị 0xA001.
Bước 5. Lặp lại bước 3 và 4 cho đến khi đã dịch được 8 bước. Khi
kết thúc, ta có được 8 bit đầu tiên.
Bước 6. Lặp lại bước từ 2 đến 5 cho 8 bit dữ liệu tiếp theo. Tiếp tục
làm cho đến khi hết khung truyền.
Bước 7. Kết quả cuối cùng là giá trị CRC cần tìm Khi đặt khung
truyền vào chuỗi cần đảo bit cao với bit thấp .
Hoặc chúng ta có thể tạo bảng mã trước, sau đó đưa dữ liệu vào bảng
để chọn mã CRC. Trong phần thực nghiệm, em dùng cách thứ 2. Sơ
đồ thuật toán tạo bảng mã như sau:
14
Hình 3.5: Thuật toán tạo bảng mã CRC.
15
d. Hàm computeCRC(data)
Hàm computeCRC sử dụng bảng CRC đã sinh ra trong phần 3.2.1c
và dữ liệu (data). Sơ đồ thuật toán như sau:
Hình 3.6: Thuật toán tạo mã CRC từ dữ liệu.
16
3.2.2. Lớp physical
Bằng mã nguồn mở Pyserial, chúng ta có thể đóng gói cũng như bóc
tách khung truyền theo dạng byte, word một cách dễ dàng, 2 hàm sử
dụng thông dụng nhất đó là pack và unpack.
Ngoài ra việc khai báo rất quan trọng đó chính là các thông số của
cổng truyền thông nối tiếp. Đề tài sử dụng cổng truyền thông nối tiếp
đồng bộ nên cần phải có nhưng quy ước chung trong việc thiết lập
các thông số này.
Trong lớp physical, ngoài việc sử dụng hàm read (receive) và write
(send) của pyserial, chúng ta còn sử dụng hàm pack và unpack của
struct.
Module struct bao gồm các chức năng chuyển đổi giữa chuổi các
byte và các kiểu dữ liệu của python như chuỗi hoặc số.
3.2.3. Lớp transaction
Lớp transaction có 2 chức năng, đó là
- chức năng xử lý khung truyền (dành cho cả 2 chế độ server
và client) được đặt trên là ModbusRTUFramer.
- chức năng truyền dữ liệu dành cho chế độ client (sử dụng lớp
vật lý Physical để truyền nhận dữ liệu). Chức năng này thực
hiện bởi hàm execute.
a. Lớp ModbusRTUFramer
Lớp ModbusRTUFramer dung để tách khung truyền ra các giá trị
như mã chức năng, mã CRC, phần dữ liệu (bao gồm mã chức năng,
khối dữ liệu). Khối dữ liệu lúc này chưa tách thành địa chỉ và giá trị.
Để tách được các thông số đã nêu cần thành lập các hàm trong lớp
như sau:
17
- hàm init
- hàm checkframe
- hàm advanceframe
- hàm isframeready
- hàm addtoframe
- hàm getframe
- hàm populateresults
- hàm processingIncomingpacket
- hàm buildpacket
3.2.4. Lớp Factory
Lớp Factory được dùng để giải mã chuỗi dữ liệu chỉ dựa theo mã
chức năng.
Lớp Factory đưa ra thuật toán để nhận diện các mã này đồng thời tạo
lớp cho phù hợp trong quá trình xử lý tiếp theo ở lớp
bit_read_message.py & bit_write_message.py &
register_read_message.py & register_write_message.py
Thuật toán nhận dạng như sau:
- Khởi tạo bằng cách thêm các hàm của các lớp Lớp
bit_read_message.py & bit_write_message.py &
register_read_message.py & register_write_message.py.
(Xem thêm 3.2.5) Lý do thêm vì các lớp này chứa các lớp
con giúp ta nhận ra các mã chức năng. Các lớp con này chứa
các chức năng được viết dựa theo tiêu chuẩn của modbus
- Gán tên chức năng bằng mã chức năng theo thứ tự.
- Đọc mã chức năng (sau khi đã bóc tách khung truyền). Sau
đó dò trong bảng.
18
- Nếu đúng thì thực hiện giải mã. Quá trình giải mã là hàm
decode (mục 3.2.5). Nếu sai thì khai báo mã chức năng
không hợp lệ (đối với client) hoặc cộng thêm 0x80 (đối với
server). Lý do cộng thêm 0x80 là vì khi server nhận thấy
không có mã chức năng nào đúng thì sẽ gởi về client mã
chức năng đó cộng thệm 0x80. Đây là quy ước của Modbus.
3.2.5. Lớp bit_read_message.py & bit_write_message.py &
register_read_message.py & register_write_message.py
Các lớp này là lớp được dùng sau khi đã mã hóa chức năng giúp bóc
tách hoặc đóng gói dữ liệu (decode và encode) ở mức địa chỉ và giá
trị
Do các chức năng có cấu trúc khung truyền riêng nên cần phải chia
ra 4 lớp này.
Mỗi lớp chứa 3 chức năng sau:
- encode: Giúp đóng gói khung truyền ở mức độ địa chỉ và giá
trị.
- decode: Giúp giải mã khung truyển, mức độ địa chỉ, giá trị,
ngoài ra còn có bit và thanh ghi.
- execute: Chỉ dùng khi đang làm server. Hàm này dùng để gọi
response khi muốn đáp trả request nhưng phải trải qua quá
trình kiểm tra. Hàm execute phải kiểm tra giá trị địa chỉ và
dữ liệu tại kho. Xem thêm hình sơ đồ chung và phần 3.2.6.
3.2.6. Lớp dành riêng cho kho dữ liệu (server mode)
Kho dữ liệu được dùng để lưu trữ dữ liệu. Đối với chuẩn truyền
thông modbus có 4 kho dữ liệu cần chú ý. Hình thức tạo kho dữ liệu
19
được như sau:
Lớp để lưu trữ dữ liệu là stores. Lớp này có các thuốc tính là
setvalues, getvalues, init, để lấy giá trị hoặc gán giá trị vào kho.
Lớp context là lớp ngữ cảnh chung, lớp này sẽ bao gồm tất cả các
kho. Giống như kho dữ liệu lớn. Muốn qua đến lớp store phải thông
qua lớp context. Mục đích của lớp context còn là con trỏ phân loại vị
trí. Tự động phân loại dữ liệu sẽ phù hợp với kho nào thông qua mã
chức năng.
Hình 3.12: Bố cục kho dữ liệu (1/2)[2]
a. Lớp store
Lớp store chứa 3 chức năng là:
- kiểm tra giá trị giữa địa chỉ (address) , giá trị (value) và
count.
- Thêm giá trị vào kho theo địa chỉ.
- Lấy giá trị từ kho theo địa chỉ.
-
20
b. Lớp context
Lớp context là lớp ngữ cảnh, chứa các kho. Cần khởi tạo các kho
trước khi cho server hoạt động. Quá trình khởi tạo các kho như hàm
__init__. Ngoài ra context còn chứa 3 hàm validate, getvalues,
setvalues như store.
Để phân biệt kho từ mã chức năng, lớp context sử dụng hàm decode
của chính nó như sau:
__fx_mapper = {2: 'd',4: 'i'}
__fx_mapper.update([(i, 'h') for i in [3, 6, 16, 22, 23]])
__fx_mapper.update([(i, 'c') for i in [1, 5, 15]])
21
CHƯƠNG 4: KẾT QUẢ MÔ PHỎNG
4.1 KHỞI TẠO HỆ THỐNG ẢO
Để mô phỏng, trước tiên tạo 2 máy ảo. Một máy ảo có chức năng
Master (client) . Một máy ảo khác có địa chỉ ID =0x07 có chức năng
làm Slave(server). Với mạng Modbus, kho dữ liệu được chia làm 4
kho chứa các giá trị: cuộc dây ra (Discrete coils), giá trị đầu vào
(Discrete inputs), giá trị thanh ghi (Holding Registers), Giá trị
Analog (input Registers). Trong đó giá trị đầu vào (Discrete Inputs)
và Giá trị Analog (Input Registers) cần phải tương tác với cảm biến.
Vì thế khi khởi tạo máy ảo Slave(Server), ta gán sẵn các giá trị này
để dễ kiểm chứng.
Kết quả tạo máy ảo Slave:
Tạo các giá trị đầu vào là ON-OFF-ON-OFF-ON-OFF-ON-OFF.
Tạo các giá trị thanh ghi Analog: 100-200-300-400-500-600-700-
800.
ID riêng của máy ảo 0x07. Mỗi thiết bị Slave trong mạng Modbus có
1 ID riêng.
4.2 KẾT QUẢ MÔ PHỎNG
4.2.1. Kết quả kiểm tra mã chức năng Write Coil (FC=05).
4.2.2. Kết quả kiểm tra mã chức năng Write Coils (FC=15).
4.2.3. Kết quả kiểm tra mã chức năng Read Coils Status
(FC=01).
4.2.4. Kết quả kiểm tra mã chức năng Read Coils Status
(FC=01).
4.2.5. Kết quả kiểm tra mã chức năng Write Holding Registers
(FC=16).
22
4.2.6. Kết quả kiểm tra mã chức năng Read Holding Registers
(FC=3).
4.2.7. Kết quả kiểm tra mã chức năng Write Holding Registers
(FC=16)(kiểm tra lần thứ 2 cho 1 thanh ghi duy nhất).
4.2.8. Kết quả kiểm tra mã chức năng Read Holding Registers
(FC=3) (kiểm tra lần thứ 2 cho 1 thanh ghi duy nhất).
4.2.9. Kết quả kiểm tra mã chức năng Read Discrete Inputs
(FC=02). 4.2.10. Kết quả kiểm tra mã chức năng Read Inputs
Register (FC=04).
4.2.11. Kết quả kiểm tra Mã Ngoại lệ nếu có vấn đề trên khung
truyền hoặc kho dữ liệu.
a. Ghi địa chỉ quá giới hạn vùng nhớ trong kho : địa chỉ
1000.
b. Thực hiện đọc quá vùng nhớ (8000 thanh ghi analog).
c. Master gởi nhầm địa chỉ ID.
4.3. KẾT QUẢ MÔ PHỎNG KHI KẾT NỐI MÁY TÍNH
NHÚNG VÀ MÁY TÍNH NGOÀI
4.3.1. Phương pháp thực hiện.
4.3.2. Mô phỏng quá trình ghi cuộn dây (FC=5 và FC=15).
4.3.3. Mô phỏng quá trình ghi thanh ghi (FC=16).
4.3.4. Mô phỏng quá trình đọc thanh ghi (FC=3).
4.3.5. Mô phỏng quá trình đọc đầu vào số (FC=2).
4.3.6. Mô phỏng quá trình đọc thanh ghi analog (FC=4).
23
KẾT LUẬN
Các điểm đã làm được
Luận văn đã đưa ra được thuật toán đúng giúp máy tính nhúng Linux
có thể truyền nhận khung truyền Modbus, xử lý khung truyền đúng.
Bên cạnh đó còn có thể nhận biết các lỗi. Luận văn đưa ra được cách
xây dựng các lớp và thuật toán bằng ngôn ngữ python để thực hiện
mô phỏng mạng TTCN Modbus RTU.
Xây dựng khung truyền gởi đi và xử lý khung truyền một cách hiệu
quả. Các mã chức năng được xác định đúng. Cách xếp dữ liệu vào
kho được đưa ra giúp slave có thể kiểm soát dữ liệu vào ra một cách
chính xác. Bằng các lớp và thuật toán đã nêu, người lập trình đã có
thể thực hiện để viết ứng dụng riêng.
Các điểm hạn chế
Do hoàn thành trong thời gian ngắn nên luận văn vẫn chưa bao quát
hết tất cả các mặt của Modbus RTU như chưa đưa ra được chẩn đoán
lỗi khung truyền một cách đầy đủ. Bên cạnh đó, mã nguồn chưa tính
đến các vấn đề tối ưu thời gian. Mã nguồn chỉ có chức năng truyền
thông tin giữa các nút mạng theo chuẩn modbus. Ngoài ra không có
chức năng xử lý khác như PID, mạng neuron… Việc thêm các chức
năng khác sẽ được người phát triển trên các lớp Modbus này.
Hướng phát triển đề tài
Thêm vấn đề về tối ưu thời gian cho các ứng dụng thời gian thực.
Bên cạnh đó cần kiếm chứng với các thiết bị sử dụng mạng TTCN
trong thực tế để đảm bảo tính đúng đắn của thuật toán và ngôn ngữ
24
lập trình.
Ngoài ra luận văn còn có thể sử dụng các lớp đã nêu để phát triển
thành Modbus Ascii hoặc thêm các lớp khác để thành Modbus
TCPIP. Máy tính nhúng có cổng Ethernet có thể phục vụ cho
Modbus TCPIP nhưng cần phải thay đổi hình thức truyền dữ liệu vì
nền tảng truyền dữ liệu ở lớp vật lý được thực hiện nhờ
RS232/RS485 chứ không dùng cổng Ethernet RJ45.

More Related Content

What's hot

Vườn-Lan-Thông-Minh-IOT.docx
Vườn-Lan-Thông-Minh-IOT.docxVườn-Lan-Thông-Minh-IOT.docx
Vườn-Lan-Thông-Minh-IOT.docxLTinTun
 
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdfĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdfMan_Ebook
 
Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...
Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...
Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...Viết thuê trọn gói ZALO 0934573149
 
mạng truyền thông công nghiệp
mạng truyền thông công nghiệpmạng truyền thông công nghiệp
mạng truyền thông công nghiệpvanquanglong
 
Giáo trình Lập trình PLC theo ngôn ngữ bậc thang.pdf
Giáo trình Lập trình PLC theo ngôn ngữ bậc thang.pdfGiáo trình Lập trình PLC theo ngôn ngữ bậc thang.pdf
Giáo trình Lập trình PLC theo ngôn ngữ bậc thang.pdfMan_Ebook
 
Ứng dụng công nghệ IoT để thiết kế hệ thống giám sát và điều khiển thiết bị ...
 Ứng dụng công nghệ IoT để thiết kế hệ thống giám sát và điều khiển thiết bị ... Ứng dụng công nghệ IoT để thiết kế hệ thống giám sát và điều khiển thiết bị ...
Ứng dụng công nghệ IoT để thiết kế hệ thống giám sát và điều khiển thiết bị ...hieu anh
 
Các loại mã đường truyền và ứng dụng neptune
Các loại mã đường truyền và ứng dụng neptuneCác loại mã đường truyền và ứng dụng neptune
Các loại mã đường truyền và ứng dụng neptune給与 クレジット
 
Đồ Án Tốt Nghiệp KCD2 MOBILE ROBOT_10215412052019
Đồ Án Tốt Nghiệp KCD2 MOBILE ROBOT_10215412052019Đồ Án Tốt Nghiệp KCD2 MOBILE ROBOT_10215412052019
Đồ Án Tốt Nghiệp KCD2 MOBILE ROBOT_10215412052019PinkHandmade
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 8 các công cụ trực tuyến và chuẩn đoán
Lập trình PLC S7 1200 tiếng Việt-Chuong 8 các công cụ trực tuyến và chuẩn đoánLập trình PLC S7 1200 tiếng Việt-Chuong 8 các công cụ trực tuyến và chuẩn đoán
Lập trình PLC S7 1200 tiếng Việt-Chuong 8 các công cụ trực tuyến và chuẩn đoánXuân Thủy Nguyễn
 

What's hot (20)

Luận văn: Bài toán nhận dạng biển số xe, HAY
Luận văn: Bài toán nhận dạng biển số xe, HAYLuận văn: Bài toán nhận dạng biển số xe, HAY
Luận văn: Bài toán nhận dạng biển số xe, HAY
 
Vườn-Lan-Thông-Minh-IOT.docx
Vườn-Lan-Thông-Minh-IOT.docxVườn-Lan-Thông-Minh-IOT.docx
Vườn-Lan-Thông-Minh-IOT.docx
 
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdfĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
 
Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...
Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...
Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...
 
Điều khiển thiết bị điện tử bằng Android thông qua Bluetooth, 9đ
Điều khiển thiết bị điện tử bằng Android thông qua Bluetooth, 9đĐiều khiển thiết bị điện tử bằng Android thông qua Bluetooth, 9đ
Điều khiển thiết bị điện tử bằng Android thông qua Bluetooth, 9đ
 
mạng truyền thông công nghiệp
mạng truyền thông công nghiệpmạng truyền thông công nghiệp
mạng truyền thông công nghiệp
 
Đề tài: Thiết kế hệ thống điều khiển giám sát trạm trộn bê tông, HAY
Đề tài: Thiết kế hệ thống điều khiển giám sát trạm trộn bê tông, HAYĐề tài: Thiết kế hệ thống điều khiển giám sát trạm trộn bê tông, HAY
Đề tài: Thiết kế hệ thống điều khiển giám sát trạm trộn bê tông, HAY
 
Đề tài: Giám sát nhiệt độ, độ ẩm qua SMS dùng nguồn pin, HAY
Đề tài: Giám sát nhiệt độ, độ ẩm qua SMS dùng nguồn pin, HAYĐề tài: Giám sát nhiệt độ, độ ẩm qua SMS dùng nguồn pin, HAY
Đề tài: Giám sát nhiệt độ, độ ẩm qua SMS dùng nguồn pin, HAY
 
Giáo trình Lập trình PLC theo ngôn ngữ bậc thang.pdf
Giáo trình Lập trình PLC theo ngôn ngữ bậc thang.pdfGiáo trình Lập trình PLC theo ngôn ngữ bậc thang.pdf
Giáo trình Lập trình PLC theo ngôn ngữ bậc thang.pdf
 
Ứng dụng công nghệ IoT để thiết kế hệ thống giám sát và điều khiển thiết bị ...
 Ứng dụng công nghệ IoT để thiết kế hệ thống giám sát và điều khiển thiết bị ... Ứng dụng công nghệ IoT để thiết kế hệ thống giám sát và điều khiển thiết bị ...
Ứng dụng công nghệ IoT để thiết kế hệ thống giám sát và điều khiển thiết bị ...
 
Các loại mã đường truyền và ứng dụng neptune
Các loại mã đường truyền và ứng dụng neptuneCác loại mã đường truyền và ứng dụng neptune
Các loại mã đường truyền và ứng dụng neptune
 
Đề tài: Hệ thống giao thông thông minh và ứng dụng của nó, HOT
Đề tài: Hệ thống giao thông thông minh và ứng dụng của nó, HOTĐề tài: Hệ thống giao thông thông minh và ứng dụng của nó, HOT
Đề tài: Hệ thống giao thông thông minh và ứng dụng của nó, HOT
 
Đề tài: Thiết kế hệ thống giám sát nhiệt độ - độ ẩm phòng trồng nấm bào ngư
Đề tài: Thiết kế hệ thống giám sát nhiệt độ - độ ẩm phòng trồng nấm bào ngưĐề tài: Thiết kế hệ thống giám sát nhiệt độ - độ ẩm phòng trồng nấm bào ngư
Đề tài: Thiết kế hệ thống giám sát nhiệt độ - độ ẩm phòng trồng nấm bào ngư
 
Đồ Án Tốt Nghiệp KCD2 MOBILE ROBOT_10215412052019
Đồ Án Tốt Nghiệp KCD2 MOBILE ROBOT_10215412052019Đồ Án Tốt Nghiệp KCD2 MOBILE ROBOT_10215412052019
Đồ Án Tốt Nghiệp KCD2 MOBILE ROBOT_10215412052019
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 8 các công cụ trực tuyến và chuẩn đoán
Lập trình PLC S7 1200 tiếng Việt-Chuong 8 các công cụ trực tuyến và chuẩn đoánLập trình PLC S7 1200 tiếng Việt-Chuong 8 các công cụ trực tuyến và chuẩn đoán
Lập trình PLC S7 1200 tiếng Việt-Chuong 8 các công cụ trực tuyến và chuẩn đoán
 
200 đề tài khóa luận tốt nghiệp ngành viễn thông
200 đề tài khóa luận tốt nghiệp ngành viễn thông200 đề tài khóa luận tốt nghiệp ngành viễn thông
200 đề tài khóa luận tốt nghiệp ngành viễn thông
 
Đề tài: Điều khiển thiết bị bằng giọng nói qua Google Asstiant, 9đ
Đề tài: Điều khiển thiết bị bằng giọng nói qua Google Asstiant, 9đĐề tài: Điều khiển thiết bị bằng giọng nói qua Google Asstiant, 9đ
Đề tài: Điều khiển thiết bị bằng giọng nói qua Google Asstiant, 9đ
 
Đề tài: Thiết kế hệ thống điều khiển các thiết bị trong phòng học
Đề tài: Thiết kế hệ thống điều khiển các thiết bị trong phòng họcĐề tài: Thiết kế hệ thống điều khiển các thiết bị trong phòng học
Đề tài: Thiết kế hệ thống điều khiển các thiết bị trong phòng học
 
Đề tài: Thiết kế mạng truy nhập GPON dựa trên phần mềm mô phỏng
Đề tài: Thiết kế mạng  truy nhập GPON dựa trên phần mềm mô phỏngĐề tài: Thiết kế mạng  truy nhập GPON dựa trên phần mềm mô phỏng
Đề tài: Thiết kế mạng truy nhập GPON dựa trên phần mềm mô phỏng
 
Kho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểm
Kho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểmKho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểm
Kho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểm
 

Similar to Luận văn: Xây dựng mạng truyền thông công nghiệp Modbus Rtu

Thinghiemxlths 121102232414-phpapp02
Thinghiemxlths 121102232414-phpapp02Thinghiemxlths 121102232414-phpapp02
Thinghiemxlths 121102232414-phpapp02KUTY UIT - VNU HCM
 
Nghiên cứu phương pháp giám sát nhiệt độ, độ ẩm của kho lạnh qua mạng internet
Nghiên cứu phương pháp giám sát nhiệt độ, độ ẩm của kho lạnh qua mạng internetNghiên cứu phương pháp giám sát nhiệt độ, độ ẩm của kho lạnh qua mạng internet
Nghiên cứu phương pháp giám sát nhiệt độ, độ ẩm của kho lạnh qua mạng internetMan_Ebook
 
mang-may-tinh-cuc-bo-lan770.pdf
mang-may-tinh-cuc-bo-lan770.pdfmang-may-tinh-cuc-bo-lan770.pdf
mang-may-tinh-cuc-bo-lan770.pdfssuserf723e0
 
Nghiên cứu thiết kế hệ thống scada cho hệ thống cung cấp nước sạch tại xí ngh...
Nghiên cứu thiết kế hệ thống scada cho hệ thống cung cấp nước sạch tại xí ngh...Nghiên cứu thiết kế hệ thống scada cho hệ thống cung cấp nước sạch tại xí ngh...
Nghiên cứu thiết kế hệ thống scada cho hệ thống cung cấp nước sạch tại xí ngh...Man_Ebook
 
Đề Tài Thực Hành CCNA Lab - CSMars.pdf
Đề Tài Thực Hành CCNA Lab - CSMars.pdfĐề Tài Thực Hành CCNA Lab - CSMars.pdf
Đề Tài Thực Hành CCNA Lab - CSMars.pdfNuioKila
 
Lab tran ngoc thi
Lab tran ngoc thiLab tran ngoc thi
Lab tran ngoc thiThi Trần
 
Tieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracerTieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracerDuc Nguyen
 
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...Freelancer
 

Similar to Luận văn: Xây dựng mạng truyền thông công nghiệp Modbus Rtu (20)

Thi nghiem xlths
Thi nghiem xlthsThi nghiem xlths
Thi nghiem xlths
 
Thinghiemxlths 121102232414-phpapp02
Thinghiemxlths 121102232414-phpapp02Thinghiemxlths 121102232414-phpapp02
Thinghiemxlths 121102232414-phpapp02
 
Đề tài: Triển khai DHCP Server trên mô hình mạng ba lớp, HOT
Đề tài: Triển khai DHCP Server trên mô hình mạng ba lớp, HOTĐề tài: Triển khai DHCP Server trên mô hình mạng ba lớp, HOT
Đề tài: Triển khai DHCP Server trên mô hình mạng ba lớp, HOT
 
Nghiên cứu phương pháp giám sát nhiệt độ, độ ẩm của kho lạnh qua mạng internet
Nghiên cứu phương pháp giám sát nhiệt độ, độ ẩm của kho lạnh qua mạng internetNghiên cứu phương pháp giám sát nhiệt độ, độ ẩm của kho lạnh qua mạng internet
Nghiên cứu phương pháp giám sát nhiệt độ, độ ẩm của kho lạnh qua mạng internet
 
mang-may-tinh-cuc-bo-lan770.pdf
mang-may-tinh-cuc-bo-lan770.pdfmang-may-tinh-cuc-bo-lan770.pdf
mang-may-tinh-cuc-bo-lan770.pdf
 
Nghiên cứu thiết kế hệ thống scada cho hệ thống cung cấp nước sạch tại xí ngh...
Nghiên cứu thiết kế hệ thống scada cho hệ thống cung cấp nước sạch tại xí ngh...Nghiên cứu thiết kế hệ thống scada cho hệ thống cung cấp nước sạch tại xí ngh...
Nghiên cứu thiết kế hệ thống scada cho hệ thống cung cấp nước sạch tại xí ngh...
 
Đề tài: Cài đặt một web server đơn giản trên một board vi xử lý
Đề tài: Cài đặt một web server đơn giản trên một board vi xử lýĐề tài: Cài đặt một web server đơn giản trên một board vi xử lý
Đề tài: Cài đặt một web server đơn giản trên một board vi xử lý
 
Giải pháp tự động thu thập và khai thác số liệu công tơ đo đếm.doc
Giải pháp tự động thu thập và khai thác số liệu công tơ đo đếm.docGiải pháp tự động thu thập và khai thác số liệu công tơ đo đếm.doc
Giải pháp tự động thu thập và khai thác số liệu công tơ đo đếm.doc
 
Luận văn: Chống lại mất mát gói tin của thuật toán mã hóa ILBC
Luận văn: Chống lại mất mát gói tin của thuật toán mã hóa ILBCLuận văn: Chống lại mất mát gói tin của thuật toán mã hóa ILBC
Luận văn: Chống lại mất mát gói tin của thuật toán mã hóa ILBC
 
Đề tài: Tính toán phân tán và ứng dụng, HAY
Đề tài: Tính toán phân tán và ứng dụng, HAYĐề tài: Tính toán phân tán và ứng dụng, HAY
Đề tài: Tính toán phân tán và ứng dụng, HAY
 
Lap trinhmangvoic sharp
Lap trinhmangvoic sharpLap trinhmangvoic sharp
Lap trinhmangvoic sharp
 
Đề Tài Thực Hành CCNA Lab - CSMars.pdf
Đề Tài Thực Hành CCNA Lab - CSMars.pdfĐề Tài Thực Hành CCNA Lab - CSMars.pdf
Đề Tài Thực Hành CCNA Lab - CSMars.pdf
 
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOTĐề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
 
Đề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đ
Đề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đĐề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đ
Đề tài: Xây dựng website giới thiệu cho sản phẩm phần mềm, 9đ
 
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HAY
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HAYĐề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HAY
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HAY
 
Lab tran ngoc thi
Lab tran ngoc thiLab tran ngoc thi
Lab tran ngoc thi
 
Tieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracerTieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracer
 
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...
 
17406 bai giang csdl nang cao
17406   bai giang csdl nang cao17406   bai giang csdl nang cao
17406 bai giang csdl nang cao
 
Mang lan
Mang lanMang lan
Mang lan
 

More from Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864

Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...
Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...
Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.doc
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.docTạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.doc
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.docDịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 

More from Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864 (20)

Yếu Tố Tự Truyện Trong Truyện Ngắn Thạch Lam Và Thanh Tịnh.doc
Yếu Tố Tự Truyện Trong Truyện Ngắn Thạch Lam Và Thanh Tịnh.docYếu Tố Tự Truyện Trong Truyện Ngắn Thạch Lam Và Thanh Tịnh.doc
Yếu Tố Tự Truyện Trong Truyện Ngắn Thạch Lam Và Thanh Tịnh.doc
 
Từ Ngữ Biểu Thị Tâm Lí – Tình Cảm Trong Ca Dao Người Việt.doc
Từ Ngữ Biểu Thị Tâm Lí – Tình Cảm Trong Ca Dao Người Việt.docTừ Ngữ Biểu Thị Tâm Lí – Tình Cảm Trong Ca Dao Người Việt.doc
Từ Ngữ Biểu Thị Tâm Lí – Tình Cảm Trong Ca Dao Người Việt.doc
 
Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...
Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...
Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...
 
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...
 
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...
 
Vaporisation Of Single And Binary Component Droplets In Heated Flowing Gas St...
Vaporisation Of Single And Binary Component Droplets In Heated Flowing Gas St...Vaporisation Of Single And Binary Component Droplets In Heated Flowing Gas St...
Vaporisation Of Single And Binary Component Droplets In Heated Flowing Gas St...
 
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...
 
Tác Giả Hàm Ẩn Trong Tiểu Thuyết Nguyễn Việt Hà.doc
Tác Giả Hàm Ẩn Trong Tiểu Thuyết Nguyễn Việt Hà.docTác Giả Hàm Ẩn Trong Tiểu Thuyết Nguyễn Việt Hà.doc
Tác Giả Hàm Ẩn Trong Tiểu Thuyết Nguyễn Việt Hà.doc
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...
 
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...
 
Song Song Hóa Các Thuật Toán Trên Mạng Đồ Thị.doc
Song Song Hóa Các Thuật Toán Trên Mạng Đồ Thị.docSong Song Hóa Các Thuật Toán Trên Mạng Đồ Thị.doc
Song Song Hóa Các Thuật Toán Trên Mạng Đồ Thị.doc
 
Ứng Dụng Số Phức Trong Các Bài Toán Sơ Cấp.doc
Ứng Dụng Số Phức Trong Các Bài Toán Sơ Cấp.docỨng Dụng Số Phức Trong Các Bài Toán Sơ Cấp.doc
Ứng Dụng Số Phức Trong Các Bài Toán Sơ Cấp.doc
 
Vai Trò Của Cái Bi Trong Giáo Dục Thẩm Mỹ.doc
Vai Trò Của Cái Bi Trong Giáo Dục Thẩm Mỹ.docVai Trò Của Cái Bi Trong Giáo Dục Thẩm Mỹ.doc
Vai Trò Của Cái Bi Trong Giáo Dục Thẩm Mỹ.doc
 
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...
 
Thu Hút Vốn Đầu Tư Vào Lĩnh Vực Nông Nghiệp Trên Địa Bàn Tỉnh Gia Lai.doc
Thu Hút Vốn Đầu Tư Vào Lĩnh Vực Nông Nghiệp Trên Địa Bàn Tỉnh Gia Lai.docThu Hút Vốn Đầu Tư Vào Lĩnh Vực Nông Nghiệp Trên Địa Bàn Tỉnh Gia Lai.doc
Thu Hút Vốn Đầu Tư Vào Lĩnh Vực Nông Nghiệp Trên Địa Bàn Tỉnh Gia Lai.doc
 
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...
 
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.doc
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.docTạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.doc
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.doc
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...
 

Recently uploaded

bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
cuộc cải cách của Lê Thánh Tông - Sử 11
cuộc cải cách của Lê Thánh Tông -  Sử 11cuộc cải cách của Lê Thánh Tông -  Sử 11
cuộc cải cách của Lê Thánh Tông - Sử 11zedgaming208
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx22146042
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào môBryan Williams
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếngTonH1
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...ThunTrn734461
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếngTonH1
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocVnPhan58
 

Recently uploaded (20)

bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
cuộc cải cách của Lê Thánh Tông - Sử 11
cuộc cải cách của Lê Thánh Tông -  Sử 11cuộc cải cách của Lê Thánh Tông -  Sử 11
cuộc cải cách của Lê Thánh Tông - Sử 11
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tế
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
 

Luận văn: Xây dựng mạng truyền thông công nghiệp Modbus Rtu

  • 1. ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ________________________ PHẠM NGỌC CƯỜNG XÂY DỰNG MẠNG TRUYỀN THÔNG CÔNG NGHIỆP MODBUS RTU BẰNG NGÔN NGỮ PYTHON TRÊN MÁY TÍNH NHÚNG LINUX Chuyên ngành: Kỹ thuật điều khiển và tự động hóa Mã số: 60520216 TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA Đà Nẵng – Năm 2017
  • 2. Công trình được hoàn thành tại TRƯỜNG ĐẠI HỌC BÁCH KHOA Người hướng dẫn khoa học: TS. TRẦN ĐÌNH KHÔI QUỐC Phản biện 1: TS. Nguyễn Lê Hòa Phản biện 2: TS. Giáp Quang Huy Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ Kỹ thuật Điều khiển và Tự động hóa, họp tại Trường Đại học Bách khoa – Đại học Đà Nẵng vào ngày 25 tháng 03 năm 2017. Có thể tìm hiểu luận văn tại:  Trung tâm Học liệu, Đại học Đà Nẵng tại trường Đại học Bách khoa.  Thư viện Khoa Điện, Trường Đại học Bách khoa – Đại học Đà Nẵng.
  • 3. MỤC LỤC MỤC LỤC..........................................................................................3 MỞ ĐẦU............................................................................................1 1. Tính cấp thiết của đề tài........................................................1 2. Mục tiêu nghiên cứu.............................................................2 3. Đối tượng và Phạm vi nghiên cứu........................................3 4. Phương pháp nghiên cứu ......................................................3 5. Ý nghĩa khoa học và thực tiễn ..............................................4 6. Cấu trúc luận văn..................................................................4 CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ GIAO THỨC MẠNG MODBUS RTU.............................................................................6 1.1 GIỚI THIỆU MẠNG MODBUS.......................................6 1.2 CẤU TRÚC ĐOẠN TIN GIAO THỨC MODBUS..........7 CHƯƠNG 2: GIỚI THIỆU TỔNG QUAN VỀ PYTHON VÀ MÁY TÍNH NHÚNG LINUX.................................................................8 2.1 NGÔN NGỮ PYTHON ...................................................8 2.2 MÁY TÍNH NHÚNG CÔNG NGHIỆP...........................8 CHƯƠNG 3: XÂY DỰNG CÁC LỚP DỮ LIỆU VÀ THUẬT TOÁN............................................................................................9 3.1 SƠ ĐỒ CHUNG...............................................................9 3.1.1. Lớp dữ liệu của Slaver......................................... 9 3.1.2. Lớp dữ liệu của Master........................................ 9 3.2 XÂY DỰNG THUẬT TOÁN..........................................9 3.2.1. Lớp Utilities....................................................... 10 3.2.2. Lớp physical....................................................... 16 3.2.3. Lớp transaction .................................................. 16 3.2.4. Lớp Factory........................................................ 17
  • 4. 3.2.5. Lớp bit_read_message.py & bit_write_message.py & register_read_message.py & register_write_message.py................................ 18 3.2.6. Lớp dành riêng cho kho dữ liệu (server mode)................................................................ 18 CHƯƠNG 4: KẾT QUẢ MÔ PHỎNG ............................................21 4.1 KHỞI TẠO HỆ THỐNG ẢO...........................................21 4.2 KẾT QUẢ MÔ PHỎNG...................................................21 4.2.1. Kết quả kiểm tra mã chức năng Write Coil (FC=05). ........................................................... 21 4.2.2. Kết quả kiểm tra mã chức năng Write Coils (FC=15). ........................................................... 21 4.2.3. Kết quả kiểm tra mã chức năng Read Coils Status (FC=01).................................................. 21 4.2.4. Kết quả kiểm tra mã chức năng Read Coils Status (FC=01).................................................. 21 4.2.5. Kết quả kiểm tra mã chức năng Write Holding Registers (FC=16)............................... 21 4.2.6. Kết quả kiểm tra mã chức năng Read Holding Registers (FC=3)................................. 22 4.2.7. Kết quả kiểm tra mã chức năng Write Holding Registers (FC=16)(kiểm tra lần thứ 2 cho 1 thanh ghi duy nhất). ............................. 22 4.2.8. Kết quả kiểm tra mã chức năng Read Holding Registers (FC=3) (kiểm tra lần thứ 2 cho 1 thanh ghi duy nhất). ............................. 22
  • 5. 4.2.9. Kết quả kiểm tra mã chức năng Read Discrete Inputs (FC=02). 4.2.10. Kết quả kiểm tra mã chức năng Read Inputs Register (FC=04). ........................................................... 22 4.2.11. Kết quả kiểm tra Mã Ngoại lệ nếu có vấn đề trên khung truyền hoặc kho dữ liệu. ................. 22 4.3. KẾT QUẢ MÔ PHỎNG KHI KẾT NỐI MÁY TÍNH NHÚNG VÀ MÁY TÍNH NGOÀI .............................22 4.3.1. Phương pháp thực hiện. ..................................... 22 4.3.2. Mô phỏng quá trình ghi cuộn dây (FC=5 và FC=15).............................................................. 22 4.3.3. Mô phỏng quá trình ghi thanh ghi (FC=16)....... 22 4.3.4. Mô phỏng quá trình đọc thanh ghi (FC=3)........ 22 4.3.5. Mô phỏng quá trình đọc đầu vào số (FC=2)...... 22 4.3.6. Mô phỏng quá trình đọc thanh ghi analog (FC=4). ............................................................. 22 KẾT LUẬN ......................................................................................23 Các điểm đã làm được ............................................................23 Các điểm hạn chế....................................................................23 Hướng phát triển đề tài...........................................................23
  • 6. 1 MỞ ĐẦU 1. Tính cấp thiết của đề tài Hiện nay, PLC và máy tính nhúng công nghiệp đang được dùng để làm các thiết bị đầu cuối trong các mạng cục bộ công nghiệp. Cả hai loại PLC và máy tính nhúng công nghiệp đều có ưu điểm và nhược điểm riêng. Xét riêng về máy tính nhúng công nghiệp, khả năng mở rộng ngoại vi, lưu trữ dữ liệu là cực kì rộng lớn. Máy tính nhúng có các khả năng chịu va đập, nhiệt độ môi trường, tốc độ xử lý cao. Tuy nhiên khi sử dụng máy tính trong mạng THCN cần có một trong những yếu tố sau: Phần cứng ngoài: các module/card xử lý dữ liệu ngoài như Modbus, Profibus…Các module/card có giá thành từ 200-1000$ tùy theo chức năng và số cổng. Phần mềm từ đối tác thứ 3: nếu không dùng phần cứng ngoài có thể dùng ngoại vi trực tiếp của máy tính nhúng nhưng cần driver để điều khiển và các phần mềm, mã nguồn để thực hiện các giao thức. Cần phải mua bản quyền để sử dụng. Có những phần mềm không hỗ trợ nguồn mở để phát triển các ứng dụng riêng. Thông qua đề tài "Xây dựng mạng truyền thông công nghiệp Modbus RTU bằng ngôn ngữ Python trên máy tính nhúng Linux", mạng Modbus RTU và các ngăn xếp của nó được tìm hiểu và xây dựng bằng ngôn ngữ Python trên nền tảng máy tính Banana Pro nhúng hệ điều hành Linux. Dựa theo cách thức hoạt động tiêu chuẩn của mạng công nghiệp Modbus RTU, đề tài này nghiên cứu thuật
  • 7. 2 toán để xây dựng các lớp hướng đối tượng nhằm truyền nhận dữ liệu và xử lý dữ liệu truyền thông nối tiếp. Theo đó, các thuật toán giúp tạo khung truyền, nhận khung truyền, sinh ra giá trị kiểm thử, các mã ngoại lệ,... sẽ được xây dựng chính xác và viết bằng ngôn ngữ Python. Thông qua máy tính nhúng Linux, người lập trình ngoài việc sử dụng mã nguồn Modbus được xây dựng để truyền nhận dữ liệu còn lập nhiều chức năng điều khiển mới cho module này như đóng cắt thiết bị, đọc giá trị cảm biến, giao tiếp người – máy (HMI),... mà các module Modbus thông thường không làm được. Đề tài này hướng tới mục tiêu chính là tạo ra mã nguồn mở chỉ có chức năng truyền thông tin giữa các nút mạng theo chuẩn modbus. Ngoài ra không có chức năng xử lý khác như PID, mạng neuron… 2. Mục tiêu nghiên cứu Tìm hiểu cấu tạo các lớp ngăn xếp của mạng Modbus RTU. Sau đó tìm hiểu các hình thức trao đổi dữ liệu và xử lý dữ liệu giữa các lớp ngăn xếp. Tìm hiểu ngôn ngữ Python hướng đối tượng và cách thức xử lý dữ liệu lớp vật lý của giao thức truyền thông nối tiếp. Tìm hiểu các cổng ngoại vi của máy tính nhúng Banana Pro được sử dụng cho mạng Modbus. Xây dựng các lớp ngăn xếp dùng ngôn ngữ Python hướng đối tượng sau khi đã tìm hiểu về cách thức hoạt động của các lớp ngăn xếp này.
  • 8. 3 Mô phỏng đánh giá hoạt động trên các chương trình Server/Client thông qua cổng truyền thông ảo. 3. Đối tượng và Phạm vi nghiên cứu Mạng Modbus có 3 phương thức giao tiếp là RTU, ASCII và TCP/IP, trong đề tài này đối tượng nghiên cứu là mạng Modbus RTU. Phạm vi nghiên cứu là tích hợp mạng Modbus bằng ngôn ngữ Python trên máy tính Banana Pro nhúng hệ điều hành Linux. Như vậy đề tài giới hạn phạm vi ở việc lập trình dùng ngôn ngữ Python, máy tính Banana Pro và hệ điều hành Linux. 4. Phương pháp nghiên cứu Tìm hiểu các tài liệu sách vở có liên quan đến mạng Modbus, cấu tạo, chức năng và cách thức hoạt động của chúng. Từ đó kết hợp với ngôn ngữ Python hướng đối tượng để xây dựng phần mềm. Tìm hiểu cấu trúc phần cứng của máy tính Banana Pro, các thông số kĩ thuật và cách sử dụng nó thông qua sổ tay từ nhà sản xuất LeMaker. Từ các kiến thức trên, đưa ra các lưu đồ thuật toán để xử lý dữ liệu nhằm truyền và nhận khung truyền dữ liệu theo tiêu chuẩn của Modbus RTU. Mô phỏng phương thức truyền đạt dữ liệu thông qua các cổng truyền thông nối tiếp ảo có sẵn trên hệ điều hành Linux. Xây dựng hai chương trình có cơ chế Server/Client để thực hiện mô phỏng này.
  • 9. 4 Chạy mạng Modbus thực tế bằng cách gán cổng truyền thông thực, thông qua module PL2303 trao đổi dữ liệu với một thiết bị Modbus khác, đó là một máy tính hệ điều hành Windows có cài sẵn phần mềm mô phỏng Modbus. 5. Ý nghĩa khoa học và thực tiễn Tích hợp được mạng Modbus RTU trên máy tính nhúng đem lại cho lập trình hệ thống mở rộng tính năng hơn so với các module Modbus thông thường vì máy tính nhúng hiện nay có hỗ trợ nhiều ngoại vi giúp giao tiếp với cảm biến (nhiệt, quang, gia tốc,...), các thiết bị đóng cắt, các thiết bị truyền thông mạng công nghiệp, thậm chí là giao tiếp với các màn hình HMI (Human Machine Interface: Giao tiếp người-máy) cũng như bản thân có thể làm thành thiết bị HMI. Máy tính nhúng có giá thành rẻ hơn nhiều so với các module mạng công nghiệp đang sử dụng, có khả năng làm trong môi trường công nghiệp, không cần thiết bị làm mát, dễ dàng lắp đặt vì có kích thước nhỏ, không cồng kềnh. 6. Cấu trúc luận văn Chương 1: Giới thiệu tổng quan về giao thức mạng Modbus RTU. Chương này giới thiệu khái niệm mạng Modbus và cấu trúc đoạn tin mạng Mod bus RTU. Chương 2: Giới thiệu tổng quan về python và máy tính nhúng Linux. Chương này so sánh ngôn ngữ Python với các ngôn ngữ lập trình nhúng hiện có, đồng thời so sánh máy tính nhúng và các vi điều
  • 10. 5 khiển thông thường. Chương 3: Xây dựng các lớp dữ liệu và thuật toán. Chương này mô tả cấu tạo của các lớp, thuật toán để xử lý khung truyền/nhận dữ liệu. Chương 4: Kết quả mô phỏng. Chương này đưa ra kết quả mô phỏng bằng hai phương pháp, đó là kết nối 2 máy ảo với nhau và kết nối máy tính nhúng và một máy tính khác có cài phần mềm mô phỏng Modbus.
  • 11. 6 CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ GIAO THỨC MẠNG MODBUS RTU 1.1 GIỚI THIỆU MẠNG MODBUS Modbus là một giao thức mạng truyền dữ liệu theo kiểu nối tiếp. Nó hỗ trợ cả 2 chuẩn truyền RS232 và RS485. Việc truyền dữ liệu được thực hiện theo cơ chế 1 Master/ nhiều Slave. Sơ đồ bên dưới trình bày sự tham chiếu giao thức modbus lên mô hình chuẩn OSI. Theo đó thì giao thức modbus nằm ở lớp thứ 7, thứ 2, và thứ 1 của mô hình OSI. Lớp thứ 7 này (lớp ứng dụng) giúp hỗ trợ phương thức truyền thông server/client giữa các thiết bị kết nối trên bus hoặc trên mạng không dây. Lớp thứ 2 và lớp thứ 1 quy định hình thức truyền dữ liệu theo kiểu nối tiếp và chuẩn truyền vật lý là EIA/TIA – 485 (hoặc EIA/TIA – 232). Hình 1.1: Giao thức modbus và mô hình OSI Căn cứ vào cách thức truyền dữ liệu trong mạng, thì mạng Modbus được chia làm 3 loại: Modbus RTU, Modbus ASCII và Modbus TCP/IP.
  • 12. 7 1.2 CẤU TRÚC ĐOẠN TIN GIAO THỨC MODBUS Hình dưới đây trình bày cấu trúc của một đoạn tin truyền trong giao thức mạng modbus . Hình 1.2: Cấu trúc đoạn tin mạng Modbus
  • 13. 8 CHƯƠNG 2: GIỚI THIỆU TỔNG QUAN VỀ PYTHON VÀ MÁY TÍNH NHÚNG LINUX 2.1 NGÔN NGỮ PYTHON Python được giới thiệu vào năm 1991, là một loại ngôn ngữ bậc cao. Ngôn ngữ Python đưa ra cú pháp dễ đọc và tái sử dụng cú pháp của các ngôn ngữ khác đến 10% Phần này so sánh ngôn ngữ Python và các ngôn ngữ khác là C và java 2.2 MÁY TÍNH NHÚNG CÔNG NGHIỆP Phần này so sánh giữa máy tính nhúng Raspberry Pi và các vi điều khiển Trong các ứng dụng nhỏ và cực nhỏ, không trong môi trường công nghiệp thì có thể dùng vi điều khiển. Tuy nhiên trong môi trường công nghiệp, việc sử dụng máy tính nhúng thể hiện các ưu điểm vượt trội hơn, đảm bảo một hệ thống nhanh, an toàn và có thể mở rộng.
  • 14. 9 CHƯƠNG 3: XÂY DỰNG CÁC LỚP DỮ LIỆU VÀ THUẬT TOÁN 3.1 SƠ ĐỒ CHUNG Phần sơ đồ chung đưa ra các lớp, sự sắp xếp và cách phân tích cũng như đóng gói dữ liệu 3.1.1. Lớp dữ liệu của Slaver 3.1.2. Lớp dữ liệu của Master 3.2 XÂY DỰNG THUẬT TOÁN Dựa theo nguyên lý hoạt động của chuẩn truyền thông công nghiệp Modbus, em xin đưa ra các lớp (class) viết theo ngôn ngữ python cho Slave (server) và Master (client). Nhìn chung, luận văn sẽ đưa ra các lớp giúp máy tính nhúng có thể xử lý dữ liệu một cách hiệu quả và các lớp này sử dụng được cho cả 2 mode là server và client. Các lớp đó bao gồm: - Lớp Utilities - Lớp Transaction - Lớp Factory - Lớp Bit_read_messabe.py ; bit_write_message.py register_read_message.py register_write_message.py - Lớp Physical - Lớp Context - Lớp Store
  • 15. 10 3.2.1. Lớp Utilities Lớp Utitlities đóng vai trò quan trọng trong việc xử lý dữ liệu và được tái sử dụng ở các lớp khác như sync và transaction. Nhờ lớp utilites mà việc đóng gói dữ liệu trở nên dễ dàng và chính xác hơn. Vì thế lớp utilities được Modbus lớp cơ bản nhất trong xử lý dữ liệu. Do đặc trưng về khung truyền của chuẩn Modbus, cần phải xử lý dữ liệu dạng bit, byte cũng như mã crc nên em đưa ra các phép toán ở lớp này như sau: - pack_bitstring - unpack_bitstring - generate_crc_table - computeCRC - checkCRC Việc xử lý và tách byte sẽ được sử dụng nhờ vào module struct của python. a. Hàm pack_bitstring pack_bitstring giúp tạo 1 chuỗi từ các bit. Pack_bitstring được sử dụng ở lớp Bit_read_messabe.py ; bit_write_message.py register_read_message.py.
  • 16. 11 Vì ở các lớp này dữ liệu của các cuộn dây ở dạng bit là True hoặc False. Hình 3.3: Thuật toán cho hàm pack_bitstring
  • 17. 12 b. Hàm unpack_bitstring Hàm unpack_bitstring có chức năng chuyển chuỗi thành các bit. Khi giải mã khung truyền có chức năng tác động lên cuộn dây, cần phải tách chuỗi từ khung truyền thành các bit tương ứng với vị trí của từng cuộn dây. Hình 3.4: Thuật toán cho hàm unpack_bitstring
  • 18. 13 c. Hàm generate_CRC_table Để tạo mã CRC cho khung truyền modbus, cần có 2 bước là 1- tạo bảng CRC. 2- dùng bảng CRC này và dữ liệu của khung truyền để tạo mã CRC sau đó thêm vào cuối khung truyền. Các bước chính tạo mã CRC như sau: Bước 1. Đặt thanh ghi CRC 16 bit giá trị 0xFFFF. Bước 2. XOR 8 bit đầu tiên của khung truyền với 8 bit thấp của thanh ghi CRC sau đó đưa lại vào thanh ghi CRC. Bước 3. Dịch thanh ghi CRC sang phải 1 bit (về phía bit thấp), điền 0 vào bít cao. Trích bit thấp LSB đó ra. Bước 4. Nếu bit thấp LSB là 0 : lặp lại bước 3 (dịch mới)Nếu bit thấp LSB là 1: XOR thanh ghi CRC với giá trị 0xA001. Bước 5. Lặp lại bước 3 và 4 cho đến khi đã dịch được 8 bước. Khi kết thúc, ta có được 8 bit đầu tiên. Bước 6. Lặp lại bước từ 2 đến 5 cho 8 bit dữ liệu tiếp theo. Tiếp tục làm cho đến khi hết khung truyền. Bước 7. Kết quả cuối cùng là giá trị CRC cần tìm Khi đặt khung truyền vào chuỗi cần đảo bit cao với bit thấp . Hoặc chúng ta có thể tạo bảng mã trước, sau đó đưa dữ liệu vào bảng để chọn mã CRC. Trong phần thực nghiệm, em dùng cách thứ 2. Sơ đồ thuật toán tạo bảng mã như sau:
  • 19. 14 Hình 3.5: Thuật toán tạo bảng mã CRC.
  • 20. 15 d. Hàm computeCRC(data) Hàm computeCRC sử dụng bảng CRC đã sinh ra trong phần 3.2.1c và dữ liệu (data). Sơ đồ thuật toán như sau: Hình 3.6: Thuật toán tạo mã CRC từ dữ liệu.
  • 21. 16 3.2.2. Lớp physical Bằng mã nguồn mở Pyserial, chúng ta có thể đóng gói cũng như bóc tách khung truyền theo dạng byte, word một cách dễ dàng, 2 hàm sử dụng thông dụng nhất đó là pack và unpack. Ngoài ra việc khai báo rất quan trọng đó chính là các thông số của cổng truyền thông nối tiếp. Đề tài sử dụng cổng truyền thông nối tiếp đồng bộ nên cần phải có nhưng quy ước chung trong việc thiết lập các thông số này. Trong lớp physical, ngoài việc sử dụng hàm read (receive) và write (send) của pyserial, chúng ta còn sử dụng hàm pack và unpack của struct. Module struct bao gồm các chức năng chuyển đổi giữa chuổi các byte và các kiểu dữ liệu của python như chuỗi hoặc số. 3.2.3. Lớp transaction Lớp transaction có 2 chức năng, đó là - chức năng xử lý khung truyền (dành cho cả 2 chế độ server và client) được đặt trên là ModbusRTUFramer. - chức năng truyền dữ liệu dành cho chế độ client (sử dụng lớp vật lý Physical để truyền nhận dữ liệu). Chức năng này thực hiện bởi hàm execute. a. Lớp ModbusRTUFramer Lớp ModbusRTUFramer dung để tách khung truyền ra các giá trị như mã chức năng, mã CRC, phần dữ liệu (bao gồm mã chức năng, khối dữ liệu). Khối dữ liệu lúc này chưa tách thành địa chỉ và giá trị. Để tách được các thông số đã nêu cần thành lập các hàm trong lớp như sau:
  • 22. 17 - hàm init - hàm checkframe - hàm advanceframe - hàm isframeready - hàm addtoframe - hàm getframe - hàm populateresults - hàm processingIncomingpacket - hàm buildpacket 3.2.4. Lớp Factory Lớp Factory được dùng để giải mã chuỗi dữ liệu chỉ dựa theo mã chức năng. Lớp Factory đưa ra thuật toán để nhận diện các mã này đồng thời tạo lớp cho phù hợp trong quá trình xử lý tiếp theo ở lớp bit_read_message.py & bit_write_message.py & register_read_message.py & register_write_message.py Thuật toán nhận dạng như sau: - Khởi tạo bằng cách thêm các hàm của các lớp Lớp bit_read_message.py & bit_write_message.py & register_read_message.py & register_write_message.py. (Xem thêm 3.2.5) Lý do thêm vì các lớp này chứa các lớp con giúp ta nhận ra các mã chức năng. Các lớp con này chứa các chức năng được viết dựa theo tiêu chuẩn của modbus - Gán tên chức năng bằng mã chức năng theo thứ tự. - Đọc mã chức năng (sau khi đã bóc tách khung truyền). Sau đó dò trong bảng.
  • 23. 18 - Nếu đúng thì thực hiện giải mã. Quá trình giải mã là hàm decode (mục 3.2.5). Nếu sai thì khai báo mã chức năng không hợp lệ (đối với client) hoặc cộng thêm 0x80 (đối với server). Lý do cộng thêm 0x80 là vì khi server nhận thấy không có mã chức năng nào đúng thì sẽ gởi về client mã chức năng đó cộng thệm 0x80. Đây là quy ước của Modbus. 3.2.5. Lớp bit_read_message.py & bit_write_message.py & register_read_message.py & register_write_message.py Các lớp này là lớp được dùng sau khi đã mã hóa chức năng giúp bóc tách hoặc đóng gói dữ liệu (decode và encode) ở mức địa chỉ và giá trị Do các chức năng có cấu trúc khung truyền riêng nên cần phải chia ra 4 lớp này. Mỗi lớp chứa 3 chức năng sau: - encode: Giúp đóng gói khung truyền ở mức độ địa chỉ và giá trị. - decode: Giúp giải mã khung truyển, mức độ địa chỉ, giá trị, ngoài ra còn có bit và thanh ghi. - execute: Chỉ dùng khi đang làm server. Hàm này dùng để gọi response khi muốn đáp trả request nhưng phải trải qua quá trình kiểm tra. Hàm execute phải kiểm tra giá trị địa chỉ và dữ liệu tại kho. Xem thêm hình sơ đồ chung và phần 3.2.6. 3.2.6. Lớp dành riêng cho kho dữ liệu (server mode) Kho dữ liệu được dùng để lưu trữ dữ liệu. Đối với chuẩn truyền thông modbus có 4 kho dữ liệu cần chú ý. Hình thức tạo kho dữ liệu
  • 24. 19 được như sau: Lớp để lưu trữ dữ liệu là stores. Lớp này có các thuốc tính là setvalues, getvalues, init, để lấy giá trị hoặc gán giá trị vào kho. Lớp context là lớp ngữ cảnh chung, lớp này sẽ bao gồm tất cả các kho. Giống như kho dữ liệu lớn. Muốn qua đến lớp store phải thông qua lớp context. Mục đích của lớp context còn là con trỏ phân loại vị trí. Tự động phân loại dữ liệu sẽ phù hợp với kho nào thông qua mã chức năng. Hình 3.12: Bố cục kho dữ liệu (1/2)[2] a. Lớp store Lớp store chứa 3 chức năng là: - kiểm tra giá trị giữa địa chỉ (address) , giá trị (value) và count. - Thêm giá trị vào kho theo địa chỉ. - Lấy giá trị từ kho theo địa chỉ. -
  • 25. 20 b. Lớp context Lớp context là lớp ngữ cảnh, chứa các kho. Cần khởi tạo các kho trước khi cho server hoạt động. Quá trình khởi tạo các kho như hàm __init__. Ngoài ra context còn chứa 3 hàm validate, getvalues, setvalues như store. Để phân biệt kho từ mã chức năng, lớp context sử dụng hàm decode của chính nó như sau: __fx_mapper = {2: 'd',4: 'i'} __fx_mapper.update([(i, 'h') for i in [3, 6, 16, 22, 23]]) __fx_mapper.update([(i, 'c') for i in [1, 5, 15]])
  • 26. 21 CHƯƠNG 4: KẾT QUẢ MÔ PHỎNG 4.1 KHỞI TẠO HỆ THỐNG ẢO Để mô phỏng, trước tiên tạo 2 máy ảo. Một máy ảo có chức năng Master (client) . Một máy ảo khác có địa chỉ ID =0x07 có chức năng làm Slave(server). Với mạng Modbus, kho dữ liệu được chia làm 4 kho chứa các giá trị: cuộc dây ra (Discrete coils), giá trị đầu vào (Discrete inputs), giá trị thanh ghi (Holding Registers), Giá trị Analog (input Registers). Trong đó giá trị đầu vào (Discrete Inputs) và Giá trị Analog (Input Registers) cần phải tương tác với cảm biến. Vì thế khi khởi tạo máy ảo Slave(Server), ta gán sẵn các giá trị này để dễ kiểm chứng. Kết quả tạo máy ảo Slave: Tạo các giá trị đầu vào là ON-OFF-ON-OFF-ON-OFF-ON-OFF. Tạo các giá trị thanh ghi Analog: 100-200-300-400-500-600-700- 800. ID riêng của máy ảo 0x07. Mỗi thiết bị Slave trong mạng Modbus có 1 ID riêng. 4.2 KẾT QUẢ MÔ PHỎNG 4.2.1. Kết quả kiểm tra mã chức năng Write Coil (FC=05). 4.2.2. Kết quả kiểm tra mã chức năng Write Coils (FC=15). 4.2.3. Kết quả kiểm tra mã chức năng Read Coils Status (FC=01). 4.2.4. Kết quả kiểm tra mã chức năng Read Coils Status (FC=01). 4.2.5. Kết quả kiểm tra mã chức năng Write Holding Registers (FC=16).
  • 27. 22 4.2.6. Kết quả kiểm tra mã chức năng Read Holding Registers (FC=3). 4.2.7. Kết quả kiểm tra mã chức năng Write Holding Registers (FC=16)(kiểm tra lần thứ 2 cho 1 thanh ghi duy nhất). 4.2.8. Kết quả kiểm tra mã chức năng Read Holding Registers (FC=3) (kiểm tra lần thứ 2 cho 1 thanh ghi duy nhất). 4.2.9. Kết quả kiểm tra mã chức năng Read Discrete Inputs (FC=02). 4.2.10. Kết quả kiểm tra mã chức năng Read Inputs Register (FC=04). 4.2.11. Kết quả kiểm tra Mã Ngoại lệ nếu có vấn đề trên khung truyền hoặc kho dữ liệu. a. Ghi địa chỉ quá giới hạn vùng nhớ trong kho : địa chỉ 1000. b. Thực hiện đọc quá vùng nhớ (8000 thanh ghi analog). c. Master gởi nhầm địa chỉ ID. 4.3. KẾT QUẢ MÔ PHỎNG KHI KẾT NỐI MÁY TÍNH NHÚNG VÀ MÁY TÍNH NGOÀI 4.3.1. Phương pháp thực hiện. 4.3.2. Mô phỏng quá trình ghi cuộn dây (FC=5 và FC=15). 4.3.3. Mô phỏng quá trình ghi thanh ghi (FC=16). 4.3.4. Mô phỏng quá trình đọc thanh ghi (FC=3). 4.3.5. Mô phỏng quá trình đọc đầu vào số (FC=2). 4.3.6. Mô phỏng quá trình đọc thanh ghi analog (FC=4).
  • 28. 23 KẾT LUẬN Các điểm đã làm được Luận văn đã đưa ra được thuật toán đúng giúp máy tính nhúng Linux có thể truyền nhận khung truyền Modbus, xử lý khung truyền đúng. Bên cạnh đó còn có thể nhận biết các lỗi. Luận văn đưa ra được cách xây dựng các lớp và thuật toán bằng ngôn ngữ python để thực hiện mô phỏng mạng TTCN Modbus RTU. Xây dựng khung truyền gởi đi và xử lý khung truyền một cách hiệu quả. Các mã chức năng được xác định đúng. Cách xếp dữ liệu vào kho được đưa ra giúp slave có thể kiểm soát dữ liệu vào ra một cách chính xác. Bằng các lớp và thuật toán đã nêu, người lập trình đã có thể thực hiện để viết ứng dụng riêng. Các điểm hạn chế Do hoàn thành trong thời gian ngắn nên luận văn vẫn chưa bao quát hết tất cả các mặt của Modbus RTU như chưa đưa ra được chẩn đoán lỗi khung truyền một cách đầy đủ. Bên cạnh đó, mã nguồn chưa tính đến các vấn đề tối ưu thời gian. Mã nguồn chỉ có chức năng truyền thông tin giữa các nút mạng theo chuẩn modbus. Ngoài ra không có chức năng xử lý khác như PID, mạng neuron… Việc thêm các chức năng khác sẽ được người phát triển trên các lớp Modbus này. Hướng phát triển đề tài Thêm vấn đề về tối ưu thời gian cho các ứng dụng thời gian thực. Bên cạnh đó cần kiếm chứng với các thiết bị sử dụng mạng TTCN trong thực tế để đảm bảo tính đúng đắn của thuật toán và ngôn ngữ
  • 29. 24 lập trình. Ngoài ra luận văn còn có thể sử dụng các lớp đã nêu để phát triển thành Modbus Ascii hoặc thêm các lớp khác để thành Modbus TCPIP. Máy tính nhúng có cổng Ethernet có thể phục vụ cho Modbus TCPIP nhưng cần phải thay đổi hình thức truyền dữ liệu vì nền tảng truyền dữ liệu ở lớp vật lý được thực hiện nhờ RS232/RS485 chứ không dùng cổng Ethernet RJ45.