TÓM TẮT LUẬN VĂN Trong quá trình triển khai một dự án tự động hóa, các kỹ sư phải đối mặt với các vấn đề: giảm thiểu thời gian phát triển, tối ưu hóa nhân sự thực hiện, tăng tính linh ho
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM
Cán bộ hướng dẫn khoa học : TS Trương Đình Châu
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Nguyễn Trọng Nhân MSHV:1670788
Ngày, tháng, năm sinh: 22/09/1992 Nơi sinh: Bình Thuận Chuyên ngành: Kỹ thuật điều khiển va tự động hóa Mã số : 60520216
I TÊN ĐỀ TÀI: Phát triển công cụ tích hợp BKSI dựa trên nền tảng C# và Automation ML
II NHIỆM VỤ VÀ NỘI DUNG: Chuyển các đối tượng trong PLC thành chuẩn xml dựa trên Automation ML Tạo công cụ tích hợp có thể tương tác với phần mềm lập trình PLC vừa rút ngắn thời gian thực hiện dự án, vừa để áp dụng việc chuẩn hóa Automation ML
III NGÀY GIAO NHIỆM VỤ : 26/02/2018
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 02/12/2018
V CÁN BỘ HƯỚNG DẪN: TS Trương Đình Châu
Tp HCM, ngày tháng năm 20
CÁN BỘ HƯỚNG DẪN (Họ tên và chữ ký) CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (Họ tên và chữ ký) TRƯỞNG KHOA….………
(Họ tên và chữ ký)
Trang 4TÓM TẮT LUẬN VĂN
Trong quá trình triển khai một dự án tự động hóa, các kỹ sư phải đối mặt với các vấn đề: giảm thiểu thời gian phát triển, tối ưu hóa nhân sự thực hiện, tăng tính linh hoạt nhưng vẫn đảm bảo chất lượng của hệ thống Khi những phương pháp
cũ đã lạc hậu và bộc lộ nhiều hạn chế thì việc phát triển ứng dụng phương pháp mới là cần thiết Đặc biệt là trong thời đại công nghiệp hóa, hiện đại hóa, sức mạnh của công nghệ thông tin cần phải được tận dụng tối đa
Một vấn đề mấu chốt để giảm thiểu thời gian phát triển chương trình và nhân lực đó là phải tái sử dụng các tài nguyên Tuy nhiên, các hệ thống PLC hiện nay
do nhiều hãng cung cấp khác nhau và chưa có một chuẩn thống nhất cho các đối tượng trong chương trình Chính vì vậy việc quản lý và sử dụng tài nguyên của
hệ thống này áp dụng vào hệ thống khác là điều không dễ dàng Vào năm 2009, hiệp hội PLCOpen đã chuyển nội dung các đối tượng trong PLC thành cấu trúc xml Sau đó, tổ chức Automation ML đã chuẩn hóa định dạng này để thống nhất giữa các nền tảng PLC khác nhau
Hiểu được những vấn đề đó nên tôi đã định hướng đề tài hướng đến việc nghiên cứu rút ngắn quá trình triển khai dự án Đưa các đối tượng về một chuẩn duy nhất để quản lý và tái sử dụng dễ dàng
Trang 5LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu khoa học độc lập của riêng tôi Các thông tin trích dẫn trong luận văn đều đã được chỉ rõ nguồn gốc Các kiến thức sử dụng, kết quả nghiên cứu nêu trong luận văn do tôi tự tìm hiểu, phân tích và phát triển một cách trung thực, khách quan, phù hợp với mục tiêu của đề tài nghiên cứu và chưa từng được ai công bố trong bất kỳ công trình nào khác
Học viên
Nguyễn Trọng Nhân
Trang 6MỤC LỤC
GIỚI THIỆU ĐỀ TÀI 1
1.1 Vấn đề đặt ra 1
1.2 Giới thiệu đề tài 2
1.3 Mục tiêu và nhiệm vụ 5
CƠ SỞ LÝ THUYẾT 6
2.1 Tổng quan hệ thống 6
2.1.1 Bộ điều khiển - PLC 6
2.1.2 Thiết bị và tín hiệu điều khiển 8
2.1.3 Hồ sơ thiết kế hệ thống 10
2.1.4 AutomationML, nền tảng của công nghiệp 4.0 11
2.1.5 Totally Integrate Application (TIA) Portal 16
2.1.6 TIA Openness 17
PHÁT TRIỂN PHẦN MỀM TÍCH HỢP BKSI 19
3.1 Yêu cầu của chương trình: 19
3.2 Xây dựng cấu trúc dữ liệu 20
3.3 Xây dựng giao diện 23
3.4 Xây dựng tính năng tạo và quản lý thiết bị 24
3.5 Xây dựng tính năng xuất file hồ sơ hệ thống 30
3.6 Kết nối với chương trình TIA Portal 35
3.6.1 Cài đặt TIA Openness 35
3.6.2 Kết nối với chương trình TIA Portal 37
3.6.3 Đọc thông tin trong TIA Portal 40
Trang 73.7 Xây dựng tính năng xuất Tag List để import vào TIA Portal 43
3.7.1 Xuất TagList định dạng XLSX 43
3.7.2 Xuất TagList theo cấu trúc AutomationML 45
3.8 Xây dựng tính năng xuất file dữ liệu xml dựa trên Automation ML 46
3.8.1 Cấu trúc một file XML chuẩn: 46
3.8.2 Mô tả ngôn ngữ LAD/FBD dưới dạng XML 49
3.8.3 Mô tả ngôn ngữ SCL dưới dạng XML: 51
3.8.4 Mô tả khối DataBlock dưới dạng XML: 56
3.9 Xây dựng tính năng Import file xml 57
3.9.1 Import Tag vào chương trình TIA Portal 59
3.9.2 Import khối Block vào chương trình TIA Portal 59
ỨNG DỤNG VÀO TRIỂN KHAI DỰ ÁN THỰC TẾ 61
4.1 Yêu cầu đặt ra trong việc xây dựng và mô phỏng quy trình 61
4.2 Tạo thiết bị 63
4.2.1 Tạo khu vực 63
4.2.2 Tạo thiết bị 65
4.2.3 Sắp xếp địa chỉ IO 67
4.2.4 Trích xuất file báo cáo 67
4.2.5 Trích xuất IO List 68
4.2.6 Export file XML chứa nội dung thiết bị 70
4.2.7 Chuyển dữ liệu xml vào TIA để tạo thiết bị tự động 71
KẾT LUẬN ĐỀ TÀI 73
5.1 Đánh giá kết quả luận văn 73
5.2 Hướng nghiên cứu phát triển tiếp theo 73
Trang 8TÀI LIỆU THAM KHẢO 75
PHỤ LỤC 76
7.1 Code tạo và chỉnh sửa Area 76
7.2 Code tạo thiết bị mới 76
7.3 Code tạo địa chỉ IO 77
7.4 Code tạo Report 78
7.4.1 Code tạo IO List Report 78
7.4.2 Code tạo Device List Report 79
7.5 Code tạo dữ liệu Import vào TIA Portal 80
7.5.1 Code tạo file Tag List theo định dạng Xlsx 80
7.5.2 Code tạo file Tag List dạng XML 81
Trang 9DANH MỤC HÌNH VẼ
Hình 1.1: Quy trình thực hiện dự án 1
Hình 1.2: Quy trình thực hiện dự án rút gọn 1
Hình 1.3: Vai trò của BKSI và cấu trúc hệ thống 3
Hình 1.4: Sơ đồ tính năng của phần mềm BKSI 5
Hình 2.1: Thiết bị PLC S7-1200 6
Hình 2.2: Thiết bị PLC S7-1500 7
Hình 2.3: Khối thiết bị valve bướm 8
Hình 2 4: Khối thiết bị Analog Input 9
Hình 2 5: Khối thiết bị động cơ 9
Hình 2.6: Mẫu tài liệu IO List 11
Hình 2.7: Các khả năng mô tả của Automation ML 13
Hình 2.8: Trao đổi thông tin giữa EPLAN và TIA Portal 14
Hình 2.9: Sự kết hợp giữa OPC UA và Automation ML 15
Hình 2.10: Sơ đồ một đối tượng Automation ML mẫu 15
Hình 2.11: Kiến trúc phần mềm TIA Portal 16
Hình 2.12: Các thành phần cơ bản trong TIA Portal 17
Hình 2.13: Vai trò của TIA Openness 17
Hình 2.14 Đầu vào của TIA Openness 18
Hình 3.1: Giai đoạn phát triển 1 19
Hình 3.2: Giai đoạn phát triển 2 20
Hình 3.3: Database SQLite 20
Hình 3.4: Cấu trúc bảng tbl_DeviceList 21
Hình 3.5: Cấu trúc bảng tbl_IOList 22
Hình 3.6: Giao diện chính của chương trình 23
Hình 3.7: Thanh menu Dashboard 23
Hình 3.8: Biểu tượng chức năng quản lý thiết bị 24
Hình 3.9: Các phần chính của cửa sổ quản lý thiết bị 25
Trang 10Hình 3 10: Cửa sổ khai báo khu vực 25
Hình 3.11: Cửa sổ khai báo thiết bị mới 26
Hình 3.12: Tempalte các thiết bị 26
Hình 3.13: Chọn khu vực chứa thiết bị 27
Hình 3.14: Lựa chọn kiểu khai báo 27
Hình 3.15: Khai báo số lượng IO của thiết bị 27
Hình 3.16: Cửa sổ chỉnh sửa Tag 28
Hình 3.17: Nút nhấn tạo địa chỉ IO 29
Hình 3.18: Cấu hình địa chỉ trong PLC 29
Hình 3.19: Quy trình tạo địa chỉ cho Tag IO 30
Hình 3.20: Header của mẫu báo cáo 31
Hình 3.21: Mục chọn logo cho báo cáo 31
Hình 3.22: Lựa chọn loại báo cáo 32
Hình 3.23: Chỉnh sửa tiêu đề báo cáo 32
Hình 3 24: Nút nhấn tạo báo cáo 32
Hình 3.25: Thiết kế nội dung file báo cáo 33
Hình 3.26: Nội dung báo cáo sau khi xuất 34
Hình 3.27: Mẫu báo cáo tổng số lượng IO đã dùng 34
Hình 3.28: mẫu báo cáo danh sách thiết bị 35
Hình 3.29: Thanh công cụ xem file báo cáo 35
Hình 3.30: Cài đặt TIA Openness 36
Hình 3.31: Thư viện của TIA Openness 36
Hình 3.32: Add file thư viện vào C# 37
Hình 3.33: User Group của TIA Openness 37
Hình 3.34: Sơ đồ kết nối thông qua thư viện TIA Openness 38
Hình 3.35: Quy trình truy cập vào TIA Portal 38
Hình 3.36: Cửa sổ cho phép truy cập vào TIA Portal 39
Hình 3.37: Quy trình đọc các đối tượng trong TIA Portal 41
Hình 3.38: Kết quả hiển thị sau khi đọc project 42
Trang 11Hình 3.39: Nút nhấn xuất tag dạng file xlsx 43
Hình 3.40: Nội dung file xlsx sau khi xuất 44
Hình 3.41: Nút nhấn Import tag trong TIA Portal 44
Hình 3.42: Cửa sổ chọn file tag xlsx 44
Hình 3.43: Kết quả sau khi nhập tag từ file xlsx 45
Hình 3.44: Cấu trúc file xml chứa danh sách tag 45
Hình 3.45: Đoạn lệnh LAD 47
Hình 3.46: Cấu trúc một khối dưới dạng xml 48
Hình 3.47: Cấu trúc khối xml mô tả ngôn ngữ LAD/FBD 49
Hình 3.48: Ví dụ đoạn lệnh LAD 50
Hình 3.49: Đoạn lệnh LAD sau khi được định danh 50
Hình 3.50: Đoạn lệnh XML 51
Hình 3.51: Đoạnh lệnh LAD tương ứng 51
Hình 3.52 Cấu trúc file xml mô tả ngôn ngữ SCL 52
Hình 3.53: Cấu trúc file xml của khối DB 57
Hình 3.54: Phương thức Import trong thư viện TIA Openness 58
Hình 3.55: Lựa chọn khi Import 58
Hình 3.56: Hiển thị nội dung khối block 60
Hình 4.1: P&ID của hệ thống áp dụng 61
Hình 4.2: Sơ đồ nối dây thiết bị hiện hữu 62
Hình 4.3: Nút nhấn của cửa sổ tạo thiết bị 63
Hình 4.4: P&ID của hệ thống sau khi chia khu vực 63
Hình 4.5: Nút nhấn tạo khu vực mới 64
Hình 4.6: Cửa sổ tạo khu vực mới 64
Hình 4.7: Kết quả sau khi tạo khu vực 65
Hình 4.8: Nút nhấn tạo thiết bị mới 65
Hình 4.9: Cửa sổ khai báo thiết bị mới 65
Hình 4.10: Kết quả sau khi tạo valve 66
Hình 4.11: Kết quả sau khi hoàn tất tạo thiết bị 66
Trang 12Hình 4.12: Khai báo địa chỉ cho thiết bị hiện hữu 67
Hình 4.13: Kết quả sau khi tạo địa chỉ cho IO 67
Hình 4.14: Nút nhấn vào cửa sổ xuất file báo cáo 68
Hình 4.15: Chỉnh sửa logo của chủ đầu tư 68
Hình 4.16: Kết quả sau khi tạo báo cáo 68
Hình 4.17: Nút nhấn kết nối chương trình TIA Portal 69
Hình 4.18: Các đối tượng của dự án trong TIA Portal 69
Hình 4.19: Nút chọn tính năng xuất danh sách tag 69
Hình 4.20: Cửa sổ cảnh báo file đã tồn tại 69
Hình 4.21: Kết quả sau khi xuất danh sách tag 70
Hình 4.22: Kết quả các file xml xuất ra 71
Hình 4.23: Chọn thư mục Program blocks 71
Hình 4.24: Chọn các file XML muốn Import 72
Hình 4.25: Các đối tượng sau khi tạo trong TIA Portal 72
Hình 5.1: Hướng phát triển tích hợp điều khiển thông minh 74
Hình 5.2: Hướng phát triển hoạt động từ xa qua đám mây 74
Trang 13sử dụng lại của chương trình lập trình nhằm tối ưu hóa nhân lực và chi phí
Nhận thấy rằng, các giai đoạn 2, 3 và 4 gây mất nhiều thời gian và đòi hỏi sự chính xác cao Chính vì vậy, việc phát triển một phần mềm để thực hiện các bước này là cần thiết
Hình 1.2: Quy trình thực hiện dự án rút gọn
Trang 14GVHD: TS TRƯƠNG ĐÌNH CHÂU 2
Với ưu thế này, sau khi nhận thông tin về hệ thống, kỹ sư có thể bắt tay vào lập trình cho hệ thống mà vẫn đảm bảo các thiết bị được khai báo đầy đủ và chính xác Điều này giúp tiết kiệm thời gian và chi phí
Bên cạnh đó, việc lập trình một thiết bị phụ thuộc nhiều vào bộ điều khiển mà hệ thống đang sử dụng Ứng với mỗi bộ điều khiển PLC của các hãng khác nhau sẽ
có một phần mềm phát triển khác nhau
Siemens: TIA Portal, Step 7, WinCC
Rockwell: RSLogix 5000
Schneider: Unity Pro 5.0
Mitsubishi: GX Works 2, GX Developer
Các phần mềm này được phát triển bởi những hãng khác nhau nhưng ngôn ngữ lập trình trong các khối block đều dựa trên tiêu chuẩn IEC61131-3: LAD, FBD, STL… Một vấn đề gặp phải với IEC61131-3 là chưa có định dạng chuẩn cho các đối tượng trong công cụ lập trình PLC Điều này dẫn đến các phần mềm này chưa tương thích được với nhau, đòi hỏi phải có thư viện riêng tương ứng
Chính vì lý do đó, gần đây, tổ chức PLCOpen đã nghiên cứu và định nghĩa một định dạng mới dựa trên XML cho các đối tượng PLC theo tiêu chuẩn IEC61131-
3 Định dạng mới này cho phép các đối tượng thuộc các chương trình khác nhau quy về một định dạng duy nhất Từ đó có thể chỉ cần 1 thư viện duy nhất và các đối tượng có thể chuyển đổi qua lại giữa các phần mềm dễ dàng
1.2 Giới thiệu đề tài
Chính vì các vấn đề đặt ra, tôi đã lựa chọn đề tài “Phát triển công cụ tích hợp BKSI (Bach Khoa’s Smart Integration) trên nền tảng C# và AutomationML” để chuẩn hóa các quy trình và tái sử dụng ở các dự án khác nhau Đồng thời giảm thiểu tối
đa công sức và thời gian khi thực hiện một dự án tự động hóa
Bên cạnh đó, như đã đề cập phần đầu, mỗi hệ thống điều khiển sẽ do nhà sản xuất quy định phương thức lập trình và chương trình lập trình khác nhau Chính
Trang 15GVHD: TS TRƯƠNG ĐÌNH CHÂU 3
vì vậy, để tăng khả năng linh hoạt có thể áp dụng toàn bộ hệ thống khác nhau, tôi
đã quy về chuẩn ngôn ngữ lập trình chung hiện đang được các nhà sản xuất hàng đầu ủng hộ và sẽ là xu hướng trong thời đại công nghiệp 4.0 đó là chuẩn XML
Tăng lợi ích kinh tế do giảm thiểu chi phí và thời gian
Các tính năng chính của phần mềm BKSI
Thành lập danh sách IO list các thiết bị dùng cho hệ thống
Từ danh sách thiết bị, tạo ra file Tags list import vào chương trình lập trình
Tạo tự động các block trong chương trình lập trình để điều khiển các thiết bị tương ứng theo cấu trúc XML của AutomationML và PLCOpen
Trang 16GVHD: TS TRƯƠNG ĐÌNH CHÂU 4
IO List trình phê duyệt
Tags List khai báo thiết bị
.XML điều khiển thiết bị
Trang 17Mục tiêu chính của đề tài bao gồm 2 phần chính:
Định dạng các đối tượng trong PLC thành một chuẩn xml duy nhất
Tạo công cụ tích hợp có thể tương tác với phần mềm lập trình PLC vừa rút ngắn thời gian thực hiện dự án, vừa để áp dụng việc chuẩn hóa này
Để đạt được các mục tiêu này cần thực hiện các công việc sau:
Sử dụng kiến thức từ môn học tự động hóa công nghiệp, mạng công nghiệp, Scada, PLC Để hiểu được cấu trúc, quy trình của một dự án PLC
Nghiên cứu và tìm hiểu thư viện TIA Openness để vận dụng các tính năng mà thư viện này hỗ trợ
Nghiên cứu và tìm hiểu cách chuyển đổi một đối tượng PLC thành định dạng xml theo cấu trúc quy định của AutomationML và PLCOpen
Tìm hiểu cách tạo ra các đối tượng trong chương trình lập trình PLC theo một file xml sẵn có
Phát triển phần mềm dựa trên nền tảng C# để tạo thành một công cụ duy nhất
Sau khi hoàn thành đề tài, rút ra một số kết luận về những thuận lợi và bất lợi của đề tài, những phần cần được nâng cấp hoặc sửa đổi để tối ưu hóa
Trang 18GVHD: TS TRƯƠNG ĐÌNH CHÂU 6
CƠ SỞ LÝ THUYẾT
2.1 Tổng quan hệ thống
2.1.1 Bộ điều khiển - PLC
PLC (programable logic controler) là thiết bị điều khiển logic lập trình được,
hay thiết bị logic khả trình cho phép thưc hiện linh hoạt các thuật toán điều
khiển logic thông qua một ngôn ngữ lập trình
Hiện tại trên thị trường có nhiều dòng PLC như: Siemens, Mitsubishi,
Schneider, Omron Trong đó dòng PLC Siemens hiện nay đang được sử dụng
rộng rãi do dễ sử dụng, giá thành cạnh tranh nhưng vẫn đầy đủ các tính năng
Hiện tại Siemens gồm các dòng PLC cơ bản sau: 200, 300, 400,
S7-1200, S7-1500 Trong đó có hai dòng mới nhất đó là S7-1200 và S7-1500
PLC S7-1200
PLC S7 1200 có thể sử dụng một cách độc lập hoặc trong cấu trúc được phân
phối Thiết kế nhỏ gọn, thuận tiện cho việc lắp đặt, lập trình và vận hành Tích
hợp sẵn I/O đầu vào và đầu ra dưới dạng tín hiệu digital và analog, có khả năng
mở rộng số lượng I/O Công suất lớn, được tích hợp các công nghệ như đếm, đo lường, điều khiển vòng kín, điều khiển chuyển động Tích hợp sẫn Web Sever
với tiêu chuẩn và đặc thù người dùng web…
Hình 2.1: Thiết bị PLC S7-1200
Trang 19GVHD: TS TRƯƠNG ĐÌNH CHÂU 7
PLC S7 1200 gồm các dòng cơ bản sau: CPU 1211C, CPU 1212C, CPU 1214C,
CPU 1215C, CPU 1217C
Truyền thông:
- Truyền thông qua PtP (Point to Point): với chuẩn vật lý của RS-232 và RS-485
- Truyền thông qua mạng ProfileBus
- Truyền thông qua mạng Ethernet
- Ngoài ra có thể kết hợp với các module truyền thông qua mạng GSM/ GPRS
trong mạng điện thoại di động
PLC S7-1500
PLC S7 1500 là dòng PLC được phát triển để có thể thay thế cho PLC S7 400
Kích thước nhỏ gọn, CPU có tốc độ tính toán xử lý cao Đặc biệt có tích hợp tính
năng motion control để điều khiển tốc độ, vị trí hỗ trọ cho encoder, tích hợp
web sever với các tùy chọn để tạo ra các trang web do người dùng định nghĩa
Hình 2.2: Thiết bị PLC S7-1500 Một số dòng PLC S7 1500: CPU 1511-1PN, CPU 1513-1PN, CPU 1515-2PN, CPU
1516-3PN/DP, CPU 1517-3PN/DP, CPU 1518-4PN/DP
Truyền thông
Trang 20GVHD: TS TRƯƠNG ĐÌNH CHÂU 8
- Truyền thông qua PtP (Point to Point): với chuẩn vật lý của RS-232 và RS-485
- Truyền thông qua mạng ProfileBus
- Truyền thông qua mạng Ethernet
- Ngoài ra có thể kết hợp với các module truyền thông qua mạng GSM/ GPRS
trong mạng điện thoại di động
2.1.2 Thiết bị và tín hiệu điều khiển
Các thiết bị trường có mục đích thực hiện các lệnh cũng như trả tín hiệu hồi
tiếp về bộ điều khiển trung tâm (PLC) Mục đích các thiết bị này là có thể điều
khiển chuyển động, đo lưu lượng, nhận biết sự kiện (nút nhấn),…
Bộ điều khiển truyền lệnh hoặc nhận thông tin từ các thiết bị này thông qua các ngõ vào/ra (I/O) được tích hợp Vì vậy, ứng với mỗi thiết bị sẽ có số lượng và
các kiểu vào/ra khác nhau
Thiết bị valve bướm:
On/Off Command Feedback Open
Feedback Close Feedback Error
Butterfly Valve
Local Mode
Hình 2.3: Khối thiết bị valve bướm
On/Off command: tín hiệu cho phép đóng, mở valve
Local Mode: Chế độ mở bằng nút nhấn tại local
Feedback Open/Close: tín hiệu trả về bộ điều khiển cho biết trạng thái của valve
Feedback Error: Tín hiệu trả về khi valve bị lỗi
Trang 21GVHD: TS TRƯƠNG ĐÌNH CHÂU 9
Thiết bị đo mức:
Level Feedback
Level Transmiter
Alarm
Set point
LT
Hình 2 4: Khối thiết bị Analog Input
Set point: tín hiệu cài đặt ngưỡng cho phép
Level Feedback: tín hiệu trả về bộ điều khiển cho biết mức đo được
Alarm: Tín hiệu trả về khi mức vượt ngưỡng cho phép
Thiết bị Động cơ:
Run/Stop command Feedback RUN
Feedback Stop TRIP
Motor
Speed Local Mode
Hình 2 5: Khối thiết bị động cơ
Run/Stop command: tín hiệu cho phép bật, tắt động cơ
Local Mode: chế độ chạy Local của động cơ
Speed: Tín hiệu cài đặt tốc độ của động cơ
Feedback RUN/STOP: tín hiệu trả về bộ điều khiển cho biết trạng thái của động cơ
TRIP: Tín hiệu trả về khi động cơ bị lỗi
Trang 22GVHD: TS TRƯƠNG ĐÌNH CHÂU 10
2.1.3 Hồ sơ thiết kế hệ thống
Một hệ thống điều khiển luôn có một tài liệu thiết kế chứa thông tin về hệ thống được gọi là tài liệu IO List IO list chứa danh sách các thiết bị điều khiển, cung
cấp đầy đủ ngõ vào (Input) và ngõ ra (Output) của hệ thống Do đó, chỉ những
Tag nào có kết nối vật lý đến hệ thống điều khiển mới xuất hiện trên danh sách
IO List
Khi có nhiều hơn một hệ thống điều khiển trong một nhà máy (hệ PCS và SIS),
danh sách I / O phải chỉ rõ những hệ thống điều khiển nào mà thiết bị được kết
nối
Một tài liệu I/O list có thể được trình bày theo nhiều kiểu khác nhau Tuy nhiên một bản hoàn chỉnh đều phải chứa những thông tin cơ bản sau:
Tag number: Tên nhãn gắn trên đường dây kết nối
Type of Instrument: mô tả loại thiết bị là valve, motor, sensor…
Description: mô tả chi tiết thiết bị
I/O Type: Loại ngõ vào/ra: digital, analog…
I/O address: Địa chỉ của I/O trên thiết bị điều khiển
Range of setpoint: giới hạn đối với tín hiệu analog
Khi triển khai một dự án, IO List là tài liệu rất quan trọng, giúp cho các nhà tích
hợp hình dung được kích thước của hệ thống, từ đó lựa chọn bộ điều khiển cho
phù hợp Ngoài ra, sau khi hệ thống đã được xây dựng nên, tài liệu IO List lúc
này như là một cơ sở để chủ đầu tư và nhà tích hợp kiểm tra số lượng cũng như
sự hoạt động của các thiết bị phần cứng có chính xác hay không
Có 2 loại tài liệu IO List:
IO List document: dùng để phê duyệt, comissionning
TagList: dùng để Import vào chương trình lập trình hệ thống
Hai tài liệu này cần phải chính xác và thống nhất với nhau Nếu hệ thống thiếu
hoặc sai một tín hiệu thì sẽ dẫn đến không hoạt động được Vì vậy khi thực hiện
Trang 23GVHD: TS TRƯƠNG ĐÌNH CHÂU 11
trong thực tế, các kỹ sư phải tốn thời gian khá lớn và phải check cẩn thận khi
thực hiện 2 tài liệu này
Hình 2.6: Mẫu tài liệu IO List
2.1.4 AutomationML, nền tảng của công nghiệp 4.0
AutomationML là một hiệp hội công nghiệp được thành lập vào 2006 và được
đăng ký vào năm 2009 Xuất phát từ ý tưởng của công ty lắp ráp ô tô Daimler,
Automation ML được phát triển và giới thiệu lần đầu tiên vào tháng 10 năm
2006 với sự có mặt của các công ty ABB, KUKA, Rockwell Automation, Siemens, NetAllied và các trường đại học Lúc này, Automation ML được xem như là một
định dạng trung gian của “nhà máy kỹ thuật số” (Digital Factory)
Ngay từ những lúc đầu thành lập, Automation ML xác định mục tiêu không phải phát minh ra một định dạng dữ liệu mới Thay vào đó, các kiểu dữ liệu sẵn có
nên kết hợp lại với nhau, thúc đẩy sự phát triển
Trang 24GVHD: TS TRƯƠNG ĐÌNH CHÂU 12
Chính vì lý do đó, mục tiêu của hiệp hội Automation ML là xúc tiến và phát triển Automation ML để chuẩn hóa việc trao đổi dữ liệu trong quy trình kỹ thuật của
các hệ thống sản xuất
Khái niệm Automation ML (Automation Markup Language) được phát triển
dựa trên tiêu chí mở (open) và trung lập (neutral), dựa trên nền tảng xml và
được chuẩn hóa theo tiêu chuẩn quốc tế Chính vì vậy, dữ liệu được trích xuất
và truyền dữ liệu một cách hiệu quả và không mất mát nào, đây chính là chìa
khóa cho sự thành công của Automation ML
AutomaitonML có khả năng mô tả các thuộc tính khác nhau của đối tượng,
thông qua kết hợp các tiêu chuẩn khác nhau:
Cấu trúc liên kết: dựa trên CAEX (IEC 62424) Bao gồm thuộc tính và mối quan hệ các thành phần trong cấu trúc phân cấp
Hình học: dựa trên COLLADA của tập đoàn Khronos Mô tả thuộc tính đồ họa và thông tin 3D
Truyền động: dựa trên COLLADA Mô tả sự kết nối và phụ thuộc của các đối tượng trong quá trình chuyển động
Ngôn ngữ lập trình: dựa trên PLCOpen XML Mô tả chuỗi các bước và kết nối của I/O
Trang 25thuật được thực hiện bởi nhà cung cấp chéo và giúp triển khai hiệu quả hơn.”
Để minh chứng cho tầm nhìn cũng như lợi ích của AutomationML, tạp chí
PackageEurope đã bắt đầu bài viết của mình như sau: ”AutomationML cho thấy được một bước tiến cực kỳ quan trọng trong cách phối hợp các thiết bị trong
việc thiết kế, cài đặt và bảo trì Các công ty thiết kế, nhà tích hợp và người dùng
cuối sẽ được hưởng lợi thông qua việc thực hiện dự án một cách xuyên suốt khi triển khai hệ thống nhằm giảm chi phí và rút ngắn thời gian đưa sản phẩm vào
hoạt động Khả năng đảm bảo luồng thông tin liền mạch giữa các hệ thống khác
Trang 26GVHD: TS TRƯƠNG ĐÌNH CHÂU 14
nhau cũng là một yếu tố quan trọng trong việc chuyển đổi trên hành trình công
nghiệp 4.0 ”1
Hiện tại, Mitsubishi Electric là nhà cung cấp giải pháp tự động hóa đầu tiên đã
triển khai giao diện AutomationML với các công cụ ECAD trong sản phẩm
thương mại
Bên cạnh đó, để nắm bắt kịp xu thế, EPLAN cũng đã kết hợp với Siemens cho ra mắt công cụ chuyển đổi thông tin giữa 2 phần mềm EPLAN E8 và TIA Portal
dựa trên nền tảng ngôn ngữ AutomationML
Hình 2.8: Trao đổi thông tin giữa EPLAN và TIA Portal Hiện nay, nếu OPC UA được xem như là phương thức truyền thông nền tảng
cho công nghiệp 4.0 thì AutomationML sẽ thực hiện việc chuyển hóa cấu trúc
đối tượng thành định dạng chuẩn cho ngành công nghiệp này Hai chuẩn này
kết hợp lại sẽ mô tả đối tượng một cách toàn diện nhất
Trang 27
GVHD: TS TRƯƠNG ĐÌNH CHÂU 15
Hình 2.9: Sự kết hợp giữa OPC UA và Automation ML
OPC UA: Cho biết trạng thái đối tượng đang hoạt động như thế nào
AutomationML: Cho biết nội dung tạo thành đối tượng
Trong đề tài này, phần mềm BKSI sẽ vận dụng khả năng mô tả ngôn ngữ lập
trình Logic của AutomationML để tích hợp vào, giúp tạo ra các đối tượng lập
trình một cách tự động và chuẩn xác
Hình 2.10: Sơ đồ một đối tượng Automation ML mẫu
Trang 28GVHD: TS TRƯƠNG ĐÌNH CHÂU 16
2.1.5 Totally Integrate Application (TIA) Portal
TIA portal là ứng dụng tích hợp hệ thống trong tự động hóa được Siemens phát triển từ năm 1996 Sự khác biệt mang tính đột phá của TIA Portal chính là : Tất
cả trong một (All in one) Một hệ thống tự động bao gồm các bộ phận khác nhau cấu thành nên Từ bộ điều khiển PLC, biến tần cho tới HMI Thay vì phải lập trình từng thành phần riêng lẽ thì TIA Portal cho phép kỹ sư có thể phát triển hệ thống thông qua một nền tảng lập trình duy nhất Vì chính ưu thế này nên nếu một thành phần thay đổi thì các thành phần khác có liên quan cũng sẽ được cập nhật theo tức thời
Hình 2.11: Kiến trúc phần mềm TIA Portal Với những ưu điểm đó, trong đề tài này tôi sẽ dùng TIA Portal để làm phần mềm quản lý tổng thể các đối tượng sau khi khai báo và khởi tạo Tuy nhiên, TIA Portal
là một phần mềm đóng, chưa cho phép các nhà phát triển phần mềm độc lập khác can thiệp vào các đối tượng bên trong TIA
Trang 29 SIMATIC WinCC Professional: Lập trình giao diện HMI, SCADA và IPC
SIMATIC Start Driver: Cấu hình biến tần Siemens
2.1.6 TIA Openness
Siemens lần đầu tiên giới thiệu và áp dụng phần mở rộng TIA Openness trong
phiên bản TIA Portal V12 Thư viện này giúp các kỹ sư có thể phát triển phần
mềm riêng truy cập và trích xuất dữ liệu từ TIA Portal một cách dễ dàng
TIA Portal
Dữ liệu
đầu vào
Import/
Export XML
Thông tin thiết bị/IO
Hình 2.13: Vai trò của TIA Openness
Trang 30GVHD: TS TRƯƠNG ĐÌNH CHÂU 18
TIA Openness được phát triển dựa trên cấu trúc AutomationML Chính vì vậy,
dữ liệu đầu vào và đầu ra được định dạng kiểu text và có cấu trúc của một file
.xml
Hình 2.14 Đầu vào của TIA Openness TIA Portal Openness sẽ đóng vai trò cung cấp các thư viện chuẩn (DLL) Người
sử dụng có thể tạo các phần mềm dựa trên các nền tảng C#, VB.Net vv… để sử
dụng các chức năng truy cập vào TIA Portal
Những chức năng mà TIA Openness hỗ trợ:
Tạo Project mới
Chỉnh sửa project sẵn có
Xóa đối tượng trong Project
Đọc dữ liệu trong Project
Nhập/ trích xuất đối tượng từ các chương trình bên ngoài
Cứ sau mỗi phiên bản được phát hành thì Siemens lại nâng cấp cho Openness
một tính năng mới Đến phiên bản TIA Portal V14, TIA Openness đã được tích
hợp sẵn trong bộ DVD cài đặt của Siemens Điều đó cho thấy mức độ cần thiết
và hữu ích của TIA Openness
Trang 31GVHD: TS TRƯƠNG ĐÌNH CHÂU 19
PHÁT TRIỂN PHẦN MỀM TÍCH HỢP BKSI
3.1 Yêu cầu của chương trình:
Trong đề tài này tôi xây dựng giao diện người dùng trên nền phần mềm Visual
Studio 2015, lập trình dùng ngôn ngữ lập trình C# Đây là ngôn ngữ lập trình
mạnh, hỗ trợ đầy đủ thư việc và chạy được trên đa số hệ điều hành
Ở chương trình phát triển hệ thống, tôi chọn hệ sinh thái TIA Portal của Siemens
để ứng dụng vì các yếu tố sau:
Sự thông dụng PLC Siemens trong những ngành công nghiệp hiện nay (như thực phẩm đồ uống, dầu khí, nước cấp nước thải, hóa chất…)
Kiến thức của bản thân về tự động hóa của Siemens khá chuyên sâu
Siemens đã xây dựng thư viện cho phép phần mềm tích hợp bên ngoài có thể giao tiếp với hệ thống của họ
Khi thực hiện dự án với phần mềm BKSI sẽ gồm 2 giai đoạn chính:
Giai đoạn 1: Tạo hồ sơ thiết kế hệ thống:
- Khai báo Area
- Tạo thiết bị
- Tạo I/O
- Tạo địa chỉ cho I/O
Hình 3.1: Giai đoạn phát triển 1
Giai đoạn 2: Xuất file báo cáo và dữ liệu cho phần mềm lập trình
Trang 32GVHD: TS TRƯƠNG ĐÌNH CHÂU 20
- Lấy thông tin thiết
bị trong hệ thống
REPORT
Hình 3.2: Giai đoạn phát triển 2
- Bước 1: chương trình sẽ đọc thông tin các thiết bị trong Data SQL
- Bước 2: Chương trình xuất ra file báo cáo với định dạng theo tiêu chuẩn IO Report
- Bước 3: Chương trình xuất ra file xml theo cấu trúc AutomationML để chuyển
dữ liệu vào TIA portal và kèm theo danh sách IO List của hệ thống
3.2 Xây dựng cấu trúc dữ liệu
SQLite là hệ thống cơ sở dữ liệu quan hệ nhỏ gọn, hoàn chỉnh, có thể cài đặt bên trong các trình ứng dụng khác SQLite được Richard Hipp phát triển dưới dạng
thư viện bằng ngôn ngữ lập trình C
Hình 3.3: Database SQLite SQLite có các ưu điểm sau:
Tin cậy: các hoạt động transaction (chuyển giao) nội trong cơ sở dữ liệu được thực hiện trọn vẹn, không gây lỗi khi xảy ra sự cố phần cứng
Tuân theo chuẩn SQL92 (chỉ có một vài đặc điểm không hỗ trợ)
Trang 33GVHD: TS TRƯƠNG ĐÌNH CHÂU 21
Không cần cài đặt cấu hình
Kích thước chương trình gọn nhẹ, với cấu hình đầy đủ chỉ không đầy 300 kB
Thực hiện các thao tác đơn giản nhanh hơn các hệ thống cơ sở dữ liệu khách/chủ khác
Không cần phần mềm phụ trợ
Phần mềm tự do với mã nguồn mở, được chú thích rõ ràng
Về mặt tính năng, SQLite hoàn toàn tương tự Microsoft SQL Server nhưng gọn
nhẹ và đơn giản hơn SQLite không yêu cầu người dùng phải cài đặt trước Tất
cả dữ liệu sẽ được gói gọn thành một file hoàn chỉnh Chính vì vậy, đề tài này sẽ
sử dụng SQLite làm cơ sở dữ liệu chính
Trong cơ sở dữ liệu, chúng ta sẽ tạo ra 3 bảng chính như sau:
Tbl_DeviceList: chứa thông tin thiết bị
Tbl_IOList: chứa thông tin IO
TBL_StaticList: chứa thông tin các tag static
Cấu trúc bảng tbl_DeviceList như sau:
tbl_DeviceList
ID PK
ParrentID Name Type
Hình 3.4: Cấu trúc bảng tbl_DeviceList Parrent ID dùng để quản lý và phân cấp các thiết bị
Nếu đối tượng là Area thì ParrentID = 0 Nếu đối tượng là thiết bị thì ParrentID
sẽ là ID của Area tương ứng
Trang 34GVHD: TS TRƯƠNG ĐÌNH CHÂU 22
Cấu trúc của tbl_IOList:
tbl_IOList
ID PK
IOName IOType
Comment
Address Device Area
Hình 3.5: Cấu trúc bảng tbl_IOList Trong đó Device và Area của IO sẽ lấy từ bảng tbl_DeviceList
Bảng tbl_StaticList có cấu trúc tương tự như bảng tbl_IOList
Trong C#, dùng đoạn code sau để tạo Database:
string sql = "CREATE TABLE IF NOT EXISTS tbl_DeviceList ([id] INTEGER NOT NULL
PRIMARY KEY AUTOINCREMENT, [ParentID] INTEGER, Name nvarchar(50), Type nvarchar(10), Qtt INTEGER, SuffiX varchar(30))";
Trang 35GVHD: TS TRƯƠNG ĐÌNH CHÂU 23
3.3 Xây dựng giao diện
Để tạo tính chuyên nghiệp, giao diện phần mềm được chia thành 2 phần chính:
Thanh menu ribbon
Cửa sổ nội dung
Hình 3.6: Giao diện chính của chương trình
Tại thanh menu Dashboard trên trang chủ, sẽ có 4 nút nhấn tương ứng 4 trang
màn hình chức năng Riêng nút nhấn số 5 là nút nhấn phụ dùng cho màn hình
Dashboard
Hình 3.7: Thanh menu Dashboard
Trang 36 Nút nhấn số 3: Màn hình xuất file báo cáo theo form chuẩn
Nút nhấn số 4: Màn hình xuất file dữ liệu xml
Nút nhấn số 5: Refresh dữ liệu cho Dashboard
Trong từng màn hình sẽ có thanh menu Ribbon riêng phục vụ cho thao tác với
màn hình đó Khi gọi màn hình, thanh menu này sẽ được tích hợp vào thanh
menu chính thành một tab riêng
Đoạn code tích hợp menu ribbon:
parentForm.Ribbon.MergeRibbon( this ribbonControl1);
parentForm.Ribbon.ColorScheme = XtraBars.Ribbon RibbonControlColorScheme DarkBlue ;
3.4 Xây dựng tính năng tạo và quản lý thiết bị
Trong chương trình, cửa sổ quản lý thiết bị được kích hoạt thông qua nút nhấn
trên thanh ribbon:
Hình 3.8: Biểu tượng chức năng quản lý thiết bị Xây dựng giao diện gồm các phần sau:
Trang 37GVHD: TS TRƯƠNG ĐÌNH CHÂU 25
Hình 3.9: Các phần chính của cửa sổ quản lý thiết bị
1 Công cụ tạo và modify thiết bị
2 Danh sách các thiết bị có trong dự án
3 Thông tin Tag đang chọn
4 Thông tin static tag của thiết bị
5 Hiển thị chi tiết thiết bị
Tạo cửa sổ khai báo Area
Hình 3 10: Cửa sổ khai báo khu vực Khi nhấn OK, đoạn lệnh sau sẽ được thực hiện và tạo ra 1 Area mới:
Trang 38GVHD: TS TRƯƠNG ĐÌNH CHÂU 26
strInsert = string Format("INSERT INTO tbl_DeviceList(ParentID, Name, Type, Qtt,
Suffix) VALUES('{0}','{1}','{2}','{3}','{4}')", 0, tb_AreaName.Text, "", 1, "");
TreeNode node = treeView1.Nodes[0].Nodes.Add(tb_AreaName.Text);
treeView1.SelectedNode = node;
sqlite.SendCommand(strInsert);
Tạo cửa sổ New Device dùng để khai báo thiết bị
Hình 3.11: Cửa sổ khai báo thiết bị mới Trong đó Device Type sẽ hiển thị các template thiết bị:
Hình 3.12: Tempalte các thiết bị Mục Area sẽ cho biết thiết bị được chọn ở khu vực nào:
Trang 39GVHD: TS TRƯƠNG ĐÌNH CHÂU 27
Hình 3.13: Chọn khu vực chứa thiết bị
Ở mục tiếp theo, có 2 lựa chọn khi khai báo thiết bị:
Single Define: khai báo 1 thiết bị
Multi Define: khai báo nhiều thiết bị cùng lúc
Hình 3.14: Lựa chọn kiểu khai báo Nếu hệ thống có nhiều thiết bị giống nhau, thay vì tạo từng thiết bị thì người
dùng sẽ chọn Multi define để chương trình tự nhân bản các thiết bị, giúp việc
khai báo được nhanh chóng
Trong chế độ Multi Define, hệ thống sẽ tự động điền thứ tự “_1, _2…” vào phía
sau tên thiết bị nhưng vẫn đảm bảo không có tên thiết bị nào bị trùng
Người dùng có thể tùy ý tăng hoặc giảm số lượng IO trong thiết bị Tuy nhiên,
các thiết bị được tạo dựa vào template chuẩn, vì vậy phải đảm bảo có tối thiểu
số lượng IO yêu cầu:
Hình 3.15: Khai báo số lượng IO của thiết bị Phụ lục: Code tạo thiết bị mới
Trang 40GVHD: TS TRƯƠNG ĐÌNH CHÂU 28
Sau khi tạo ra thiết bị, các tag trong thiết bị có thể được chỉnh sửa thông qua
cửa sổ khi nhấn đúp vào tag:
Hình 3.16: Cửa sổ chỉnh sửa Tag Trong đó mục Address có 2 lựa chọn:
Assign Auto
Assigned
Ở chế độ Assign auto, chương trình sẽ tự động tạo địa chỉ cho Tag theo thứ tự
tăng dần Trong trường hợp tín hiệu đã được đấu nối từ trước (hệ thống hiện
hữu) và người dùng không muốn địa chỉ của tag này bị thay đổi thì sẽ chọn
Assigned và điền địa chỉ hiện hữu của tag vào ô kế bên
Dựa trên từng thiết bị khác nhau, chúng ta thấy rằng mỗi thiết bị sẽ có lượng I/O khác nhau Tuy nhiên, các IO này đều chung quy về các dạng chính:
Digital Input: Tín hiệu sử dụng 1 bit ngõ vào Giá trị đọc về mức 0 hoặc 1 tương ứng 0 hoặc 24VDC
Digital Output: Tín hiệu sử dụng 1 bit ngõ ra Khi xuất tín hiệu sẽ có mức
0 hoặc 1 tương ứng 0 hoặc 24VDC
Analog Input: Tín hiệu ngõ vào tương tự, sử dụng 1 word ngõ vào Khi đọc giá trị trả về, sẽ có 2 dạng tín hiệu là 0-10V hoặc 4-20mA