You are on page 1of 19

Modbus RTU / S7 Gateway

1
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

Mục lục

1. Tại sao Modbus RTU / S7 Gateway? 3

2. Cấu trúc của hệ thống 4

3. Cấu trúc hệ thống sử dụng để kiểm chứng giải pháp 5

4. Lập trình PLC 7

5. Kiểm chứng 14

6. Kết luận 17

7. Thông tin liên hệ 18

2
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

1. Tại sao Modbus RTU / S7 Gateway?


Lập trình thu thập dữ liệu từ các thiết bị Modbus RTU sử dụng PLC S7-1200 và module RS-485
CM241 là một bài toán không có gì mới mẻ. Tuy nhiên trong suốt nhiều năm qua có không ít kỹ sư
tích hợp hệ thống gặp vấn đề liên quan đến mạng Modbus RTU sử dụng PLC S7-1200. Các vấn đề
như: chương trình bị treo, khởi động lại PLC (tắt nguồn/ bật nguồn) thì trao đổi dữ liệu với các thiết
bị Modbus RTU (sau đây gọi là slave) mới thực hiện được; chương trình chạy được một thời gian
thì số liệu không cập nhật dữ liệu nữa; khi tăng số lượng slave lên thì chương trình hoàn toàn không
cập nhật dữ liệu.

Ngoài ra, trong thiết kế, các kỹ sư thiết kế còn ngần ngại không biết là lựa chọn số lượng thiết bị
slave sao cho thích hợp. Đa số trường hợp là lựa chọn 5-6 slave cho một master (một module
CM241) để chắc chắn. Các vấn đề nêu trên trên ít người nghĩ rằng “Hệ thống hoạt động có tin cậy
và bền vững hay không là do cách lập trình chứ không phải là do yếu tố vật lý hoàn toàn”.

Tài liệu này đưa ra kỹ thuật lập trình PLC S7-1200 để thu thập dữ liệu từ mạng các thiết bị sử dụng
giao thức Modbus RTU và ánh xạ (mapping) dữ liệu vào các datablock để từ đó các PLC cấp cao
hoặc SCADA có thể trao đổi dữ liệu với PLC S7-1200 thông qua giao thức S7. Như vậy giải pháp
này có thể gọi ngắn gọn là Modbus RTU / S7 Gateway, có thể ứng dụng trong nhiều hệ thống để
tích hợp mạng Modbus RTU với mạng Ethernet để cho hệ thống được linh hoạt và hiệu quả hơn.

Giải pháp cũng đưa ra cách bố trí thí nghiệm kiểm chứng mà trong điều kiện hạn chế, kỹ sư có thể
tổ chức được mạng Modbus RTU đến 16 slave. Đi kèm với tài liệu là mã nguồn dự án Step 7 viết
trên TIA Portal V16. Kỹ sư lập trình có thể sử dụng nội dung của project mẫu này, có thể thay đổi
để thích ứng với dự án thực tế mà mình đang thực hiện. Đồng thời trong dự án cũng có cung cấp
chương trình SCADA xây dựng trên WinCC Professional với phương pháp lập trình hướng đối
tượng, dùng để kiểm tra kết quả giải pháp.

Tải về tài liệu giải pháp tại đường dẫn sau:


https://drive.google.com/drive/folders/18NOTXpjsUONErPb3cCD2pbkpKDzAz4zM?usp=sharing
User / Password mở dự án TIA Portal là: admin / abcdefgh

3
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

2. Cấu trúc của hệ thống


Gateway trong trường hợp này bao gồm một PLC S7-1200 và module RS-485 CM241. Phía module
CM241 được nối với mạng các slave sử dụng cab tín hiệu 2 sợi RS-485. Phía kia của Gateway là
cổng Ethernet của PLC S7-1200 mà các PLC cấp cao hay SCADA có thể thông qua đó trao đổi dữ
liệu sử dụng các giao thức như: S7, Modbus TCP/IP hoặc OPC UA (hình 1).

CM241 S7-1200

S7 / Modbus TCP / OPC UA

Modbu s RTU

Device Device Device Device Device Device Device Device


2 3 4 5 6 7 8

Device Device Device Device Device Device Device Device


16 5 4 3 2 1 0 9

Hình 1. S7-1200 với module CM241 đóng vài trò là Modbus RTU / S7 Gateway

Bảng 1 ghi rõ các thiết bị cần thiết để tạo nên Gateway. PLC S7-1200 trong trường hợp này không
ghi rõ loại nào bởi vì người sử dụng có thể sử dụng bất kỳ dòng nào từ 1211 cho đến 1215.

Bảng 1. Các thành phần trong hệ thống Gateway

Thành phần Tên thiết bị Số lượng


Gateway PLC S7-1200 1
Module CM241 1
Các thiết bị hỗ trợ
Các thiết bị Modbus RTU Modbus RTU slave như: NA
biến tần, điện kế, v.v

4
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

3. Cấu trúc hệ thống sử dụng để


kiểm chứng giải pháp
Bởi vì số slave trong giải pháp là 16, vậy trong điều kiện giới hạn không đầy đủ các thiết bị Modbus
RTU, kỹ sư lập trình có thể bố trí hệ thống thiết bị và phần mềm và có cấu trúc như hình 2 để kiểm
chứng chương trình hoạt động của Gateway.

1. TIA Portal Step 7 V16


2. WinCC Professional

CM241 S7-1200

S7

3. Modbus
simulation software

USB/RS-485
Converter
Modbu s RTU -
+

Hình 2. Cấu trúc hệ thống dùng để kiểm chứng giải pháp

Bảng 2 ghi rõ các thiết bị và phần mềm cần thiết để tổ chức kiểm chứng giải pháp. Bộ chuyển đổi
USB / RS-485 có thể dễ dàng mua được trên thị trường. Về phần mềm mô phỏng các thiết bị Modbus
RTU thì có thể dùng ModSim32 của Win-Tech hoặc Modbus Slave của Witte Software. Trong tài
liệu chúng tôi có cung cấp cho người dùng 16 files cấu hình sẵn cho 16 slave có địa chỉ từ 1 đến
16. Mỗi slave có 32 thanh ghi holding register có địa chỉ từ 100 đến 131. Người dùng chỉ cần có
phần mềm ModSim32 thì chỉ cần mở 16 files này và kết nối phần mềm với cổng COM (cổng do bộ
biến đổi USB/RS-485 tạo ra).

5
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

Bảng 2. Các thành phần cần thiết sử dụng trong hệ thống kiểm chứng giải pháp

Thành phần Mô tả Số lượng Mã hàng


Gateway PLC S7-1200 1 6ES7 215-1AG40-0XB0
Module CM241 1 6ES7 241-1CH32-0XB0
Các thiết bị Bộ chuyển đổi USB/RS-485 1
Modbus RTU
Phần mềm mô phỏng modbus
1
RTU
Phần mềm TIA Step 7 V16, dùng để lập trình PLC
1
Portal S7-1200
WinCC Professional dùng để chạy
giao diện SCADA kiểm chứng kết 1
quả

6
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

4. Lập trình PLC


1. Tạo một dự án với PLC S7-1200 (chọn loại PLC mà người sử dụng đang có) và cài đặt địa
chỉ IP cho PLC (trong project mẫu là 192.168.1.37). Sau đó thêm vào cấu hình module RS-
485 CM241 như trong hình 3.

Hình 3. Module CM241 là module RS-485

7
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

2. Tạo một PLC Data Type là 1 mãng có kích thước 32 INT

Hình 4. Tạo PLC Data type

3. Sau đó nhân ra 16 datablock dùng để chứa dữ liệu của 16 slave tương ứng. Lưu ý là bỏ
check “Optimized block access” ở mỗi datablock (hình 5).

8
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

Hình 5. 16 datablock của 16 thiết bị modbus slave

4. Tạo một khối Master có kiểu MB_MASTER (hình 6). Khối này là khối duy nhất dùng dùng
để đọc dữ liệu từ 16 slave.

Hình 6. Tạo khối Modbus Master

9
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

5. Tạo một khối thực thi nhiệm vụ (OB) có tên Modbus Scanning (hình 7). Bắt đầu chương
trình là cấu hình cổng COM của module CM241 bằng MB_COMM_LOAD có tên là
Port_Config.

Hình 7. Tạo khối Modbus Master

6. Cấu hình cổng COM của module CM241 (hình 8):


a. Giá trị mặc định ban đầu của chân REQ là true. Giá trị này đặt ở Start value của
datablock Port_Config;
b. Sau thời gian 1s, chân REQ phải trở thành false;
c. Chân PORT của block được gán với hardware ID của module CM241;
d. Baud Rate là 19200, Parity là 0. Các thông số truyền thông này cần phải giống với
cấu hình cổng COM ở các slave;
e. Cấu hình cổng COM này được dùng cho Master – đối tượng duy nhất dùng để
đọc/ghi dữ liệu với tất cả các slave trong mạng RS-485;
f. Sau khi cấu hình xong cổng COM, cần phải trì hoãn 1 thời gian (khoảng 1s) rồi mới
đến việc đọc dữ liệu từ các slave theo chu kỳ.

10
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

Hình 8. Thuật toán cấu hình cổng COM của module CM241

7. Tiếp theo là tạo 16 timer chạy nối tiếp nhau. Kết thúc của timer trước sẽ kích hoạt timer tiếp
theo. Thuật toán làm việc của chuỗi timer này được thể hiện qua hình 9. Điều đặc biệt của
timer này là có ngõ ra là cạnh lên của thời điểm timer bắt đầu đếm. FB của timer này cũng
được cung cấp trong dự án TIA Portal đính kèm với giải pháp (xem MYTIMER, FB1).
Cấu hình
cổng COM
xong Cạnh
lên
Cạnh
lên
Cạnh
& lên
TIMER_1

TIMER_2
Cạnh
TIMER_3 lên

...
TIMER_16

Hình 9. Thuật toán chia slot thời gian để kích hoạt đọc dữ liệu từ 16 slave

11
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

Thuật toán này được thể hiện bằng ngôn ngữ SCL như trong hình 10. Mỗi timer được kích
hoạt cách nhau 100ms.

Hình 10. Thuật toán chia slot thời gian để kích hoạt đọc dữ liệu từ 16 slave được thể hiện bằng ngôn ngữ SCL

12
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

8. Đầu ra TT của 16 timer này dùng để kích hoạt đối tượng Master (chân REQ) để đọc dữ liệu
từ 16 slave. Nguyên lý hoạt động này được thể hiện qua hình 11.

Cấu hình cổng


COM xong Cạnh lên

Cạnh lên

&
Cạnh lên Đọc
TIMER_1 & Master
TIMER_2
Cạnh lên
TIMER_3 Đang
bận
...
TIMER_16

Hình 11. Nguyên lý đọc dữ liệu từ 16 slave bằng một đối tượng Master

Sơ đồ nguyên lý trên được thể hiện bằng ngôn ngữ SCL như trong hình 12. Sau mỗi lần đọc,
dữ liệu sẽ được chuyển ngay vào khối dữ liệu Device_1, Device_2, ... Device_16 tương ứng
của 16 slave.

Hình 12. Đọc dữ liệu từ 16 slave bằng một đối tượng Master bằng ngôn ngữ SCL

13
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

5. Kiểm chứng
1. Bố trí thiết bị và phần mềm theo như hình 2.
2. Khởi động chương trình ModSim32 và mở 16 files cấu hình cho 16 thiết bị slave với địa chỉ
từ 1 đến 16 (hình 13). Lúc này trên mỗi trang của Device có dòng chữ **NOT
CONNECTED!**. 16 files này có thể được tìm thấy trong thư mục tải về trong đường dẫn tài
liệu của giải pháp.

Hình 13. Dùng ModSim32 và mở 16 file cấu hình của 16 slave

3. Vào menu Connection và chọn cổng COM. Cổng này là cổng COM số bao nhiêu thì người
dùng có thể xem ở mục Device Manager trong hệ điều hành Windows. Sau khi chọn cổng
COM thì xuất hiện cửa số như hình 14. Chọn Baud Rate (19200), Data Bits (8), Stop Bits
(1), Parity (NONE), giống như các thông số trong hình 8. Nhấn OK.

Hình 14. Cấu hình cổng COM cho 16 slave

14
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

4. Download chương trình “Modbus RTU - S7 Gateway” từ Step 7 xuống PLC. Sử dụng User:
admin, Password: abcdefgh để mở chương trình.
5. Mở các Datablock Device_1, Device_2, … Device_16 để theo dõi sự thay đổi các thanh ghi
(hình 15).

Hình 15. Theo dõi các giá trị thanh ghi của các slave từ TIA Portal

6. Thực thi dự án WinCC Professional (tên ”Gateway Monitor”) đã xây dựng sẵn và nằm trong
dự án “Modbus RTU - S7 Gateway”. Giao thức kết nối giữa SCADA với PLC S7-1200 là S7.
Trang chính của SCADA được thể hiện như hình 16.

15
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

Hình 16. Trang chính của Gateway Monitor

7. Khi nhấp chuột vào một Device trên trang chính thì xuất hiện cửa sổ với dữ liệu thay đổi theo
thời gian thực của 32 thanh ghi của slave cần xem (hình 17).

Hình 17. Dữ liệu thời gian thực của các slave

16
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

6. Kết luận

Cấu hình kiểm chứng ở trên với 16 thiết bị slave, trong đó mỗi slave có 32 thanh ghi. Chu kỳ hoạt
động của mỗi timer là 100ms. Như vậy chu kỳ quét 32 thanh ghi của các thiết bị trong hệ thống sẽ
là 1600 ms. Con số này cũng tương đối thỏa mãn trong các ứng dụng thu thập năng lượng hay điều
khiển quá trình. Trong trường hợp số slave nhiều hơn thì chúng ta có thể gắn thêm một module
CM241 nữa và như vậy số đối tượng Master trong phần mềm sẽ là 2 và hoạt động độc lập.

Tải về tài liệu giải pháp tại đường dẫn sau:


https://drive.google.com/drive/folders/18NOTXpjsUONErPb3cCD2pbkpKDzAz4zM?usp=sharing
User / Password mở dự án TIA Portal là: admin / abcdefgh

17
Dr. Trương Đình Châu | Ban Công Nghiệp Số Siemens Việt Nam | 2022-04

7. Thông tin liên hệ

Nếu bạn cần thêm thông tin, hỗ trợ về sản phẩm và giải pháp, vui lòng liên hệ với chúng tôi theo
thông tin bên dưới:

Dr. Trương Đình Châu | (+84) 91-543-7440

Email : mailto:truong-dinh.chau@siemens.com

Bộ Phận Hỗ Trợ Kỹ Thuật Ban Công Nghiệp Số Siemens Việt Nam

www.siemens.com

http://www.facebook.com/Siemens.Vietnam

18
Thông tin pháp lý

Sử dụng các ứng dụng mẫu

Các ứng dụng mẫu minh họa giải pháp của các tác vụ tự động hóa thông qua sự tương tác của một số thành phần dưới dạng
văn bản, đồ họa và / hoặc mô-đun phần mềm. Các ứng dụng mẫu là một dịch vụ miễn phí của Siemens AG và / hoặc một công
ty con của Siemens AG ("Siemens"). Siemens không bị ràng buộc và không đưa ra tuyên bố về tính hoàn chỉnh hoặc chức năng
liên quan đến cấu hình và thiết bị cho ứng dụng mẫu. Các ứng dụng mẫu chỉ nhằm trợ giúp các tác vụ điển hình; chúng không
tạo thành các giải pháp dành riêng cho khách hàng. Người sử dụng tự chịu trách nhiệm vận hành sản phẩm đúng cách và an
toàn theo các quy định hiện hành đồng thời phải kiểm tra chức năng của ứng dụng mẫu tương ứng và tùy chỉnh nó cho hệ thống
của mình.
Siemens cấp cho người sử dụng, thông qua nhân viên được đào tạo kỹ thuật của mình, quyền sử dụng không độc quyền, không
được cấp phép lại và không thể chuyển giao các ứng dụng mẫu. Người sử dụng chịu trách nhiệm với mọi thay đổi đối với các
ứng dụng mẫu. Người sử dụng chỉ được phép chia sẻ các ứng dụng mẫu với các bên thứ ba hoặc sao chép các ứng dụng mẫu
hoặc đoạn trích của chúng khi được kết hợp với các sản phẩm của riêng người sử dụng. Các ứng dụng mẫu không bắt buộc
phải trải qua các thử nghiệm thông thường và kiểm tra chất lượng như một sản phẩm thương mại thông thường; chúng có thể
có các khiếm khuyết về chức năng và hiệu suất cũng như các lỗi. Người sử dụng có trách nhiệm sử dụng ứng dụng mẫu nhằm
đảm bảo bất kỳ trục trặc nào có thể xảy ra sẽ không gây thiệt hại về tài sản hoặc thương tích cho con người.

Miễn trừ trách nhiệm

Siemens sẽ không chịu bất kỳ trách nhiệm, vì bất kỳ lý do pháp lý nào, bao gồm, nhưng không giới hạn, trách nhiệm đối với khả
năng sử dụng, tính khả dụng, tính toàn vẹn và không bị lỗi của các ứng dụng mẫu cũng như đối với thông tin liên quan, dữ liệu
cấu hình và hiệu suất và bất kỳ thiệt hại nào phát sinh từ đó. Điều này sẽ không áp dụng trong các trường hợp trách nhiệm pháp
lý bắt buộc, ví dụ như theo Đạo Luật Trách Nhiệm Sản Phẩm của CHLB Đức hoặc theo pháp luật của nước sở tại, hoặc trong
các trường hợp cố ý, sơ suất nghiêm trọng hoặc thiệt hại nghiêm trọng về tính mạng, thương tật hoặc tổn hại sức khỏe, không
tuân thủ bảo đảm, gian lận hoặc không tiết lộ về khiếm khuyết hoặc vi phạm nghiêm trọng các nghĩa vụ cơ bản của h ợp đồng.
Tuy nhiên, trách nhiệm của Siemens khi vi phạm cơ bản nghĩa vụ hợp đồng sẽ được giới hạn ở các thiệt hại có thể ước tính
trước và điển hình của loại thỏa thuận liên quan, trừ khi thiệt hại phát sinh do cố ý hoặc sơ suất nghiêm trọng hoặc thiệt hạ i về
tính mạng, thương tật hoặc tổn hại sức khỏe. Người sử dụng có trách nhiệm chứng minh các thiệt hại của mình. Người sử dụng
sẽ đảm bảo Siemens không bị liên đới với các khiếu nại hiện có hoặc trong tương lai từ các bên thứ ba liên quan, ngoại trừ
trường hợp Siemens phải chịu trách nhiệm bắt buộc.
Bằng cách sử dụng các ứng dụng mẫu, người sử dụng đồng ý rằng quy định nêu trên sẽ điều chỉnh toàn bộ trách nhiệm pháp lý
của Siemens đối với các thiệt hại.

Thông tin khác

Siemens có quyền thực hiện các thay đổi đối với các ứng dụng mẫu bất kỳ lúc nào mà không cần thông báo. Trong trường hợp
có sự khác biệt giữa các gợi ý trong ứng dụng mẫu và các ấn phẩm khác của Siemens như danh mục sản phẩm, nội dung của
tài liệu khác sẽ được ưu tiên.
Các điều khoản sử dụng của Siemens (https://support.industry.siemens.com) cũng sẽ được áp dụng.

Thông tin an ninh

Siemens cung cấp các sản phẩm và giải pháp có chức năng An Ninh Công nghiệp hỗ trợ hoạt động an toàn của các nhà máy,
hệ thống, máy móc và mạng.
Để bảo vệ các nhà máy, hệ thống, máy móc và mạng khỏi các nguy cơ an ninh mạng, khách hàng cần thực hiện - và liên tục duy
trì một mô hình an ninh công nghiệp toàn diện, tiên tiến. Các sản phẩm và giải pháp của Siemens là một nhân tố của mô hình
này.
Khách hàng có trách nhiệm ngăn chặn việc truy cập trái phép vào nhà máy, hệ thống, máy móc và mạng của mình. Các hệ thống,
máy móc và thành phần liên quan chỉ nên được kết nối với mạng doanh nghiệp hoặc Internet nếu và trong phạm vi cần thiết và
chỉ khi các biện pháp bảo mật thích hợp (ví dụ: tường lửa và/hoặc phân đoạn mạng) được áp dụng.
Để biết thêm thông tin về các biện pháp an ninh công nghiệp có thể được thực hiện, vui lòng truy cập
https://www.siemens.com/industrialsecurity.
Các sản phẩm và giải pháp của Siemens trải qua quá trình phát triển liên tục để đảm bảo an toàn hơn. Siemens đặc biệt khuyến
nghị khách hàng cập nhật sản phẩm ngay khi các bản cập nhật được phát hành và sử dụng các phiên bản sản phẩm mới nhất.
Việc sử dụng các phiên bản sản phẩm không còn được hỗ trợ và việc không áp dụng các bản cập nhật mới nhất có thể làm tăng
khả năng khách hàng gặp phải các nguy cơ an ninh mạng.
Để được cập nhật thông tin về các bản cập nhật sản phẩm, hãy đăng ký Nguồn Dữ Liệu An Ninh Công Nghiệp Của Siemens
(Siemens Industrial Security RSS Feed) tại: https://www.siemens.com/industrialsecurity.

You might also like