Nội dung bài viết hướng dẫn tự động update dữ liệu vào excel trên tia portal professional, dữ liệu sẽ được cập nhật theo thời gian hoặc theo trigger. mỗi ngày sẽ tạo ra 1 file mới và dữ liệu trong ngày hôm đó sẽ được lưu vào file đó.
Trang 1XUẤT BÁO CÁO RA EXCEL TRONG TIA PORTAL PROFESSIONAL - SIEMENS
Tài liệu được thực hiện bởi: Ngọc Automation (youtube) Website: https://ngocautomation.com hoặc https://hoctudonghoa.com
Hotline zalo hỗ trợ: 0904 701 605
Phần 1
XUẤT BÁO CÁO RA EXCEL THEO MẺ (TRIGGER)
Trang 2STEP 1: Tạo một giao diện điều khiển cho một hệ thống nào đó như hình sau:
Nguyên lý làm việc của hệ thống: Nhấn nút auto, sau khi chọn đủ các điều kiện vận hành như: Bồn đang
cạn, đã đặt trọng lượng và thời gian thì tiến hành cân liệu vào bồn, sau đó đạt được trọng lượng thì bắt đầu trộn theo thời gian đặt, khi trộn xong thì xả liệu ra, sau khi cảm biến bồn cạn tác động thì xuất báo cáo, nhấn nút xác nhận vận hành thì hệ thống lại trộn lại
Trang 3STEP 2: Tạo 1 khối database bao gồm các thành phần tags sau
(*) Bảng thống kê tag
Trang 4TT Tên tag Định dạng Giải thích
STEP 3: Trong phần cứng PLC bật các chức năng hệ thống
Trang 5STEP 4: Lập trình chương trình cho PLC
Trang 11STEP 5: Tạo các tag nội và tag dữ liệu báo cáo cho Scada
STEP 6: Tạo VBScript cho Scada (Wincc Professional)
Trang 126.1 Script tạo file mới (Creat_File)
Dim HR,MNT,SCND
Dim i,j
Dim fso, msg,fldr,ReportFolderStatus
Dim fso1, f,fName
VBFLDREX = "D:\Report\" & YR & MNTH1 & DY1
VBDT= VBFLDREX & "\" & "Report_" & YR & "_" & MNTH1 & "_" & DY1 & "_" & HR1 & "_" & MNT1 & ".xls"
' SAVE THE TARGET FILE TAG
Trang 13objFSO.CopyFile RefFile, TarFile
'================ CREAT NEW FILE FOR EACH SEQUENCE ===============================
6.2 Script tạo thư mục mới mới (Creat_Folder)
Dim HR,MNT,SCND
Dim i,j
Dim fso, msg,fldr,ReportFolderStatus
Dim fso1, f,fName
Trang 146.3 Script lấy dữ liệu thời gian hiện tại (Current_Date_Time)
'++++++++++++++++LẤY THỜI GIAN THỰC TẾ++++++++++++++++++++++++++++
Dim DateValue1
Dim TimeValue1
' DOC NGAY THANG THUC TE
DateValue1 = CStr(Date) 'makes characters of date
Dim Date_Tag '(Text tag 8 bit character set)
Set Date_Tag = HMIRuntime.Tags("tag_Current_Date")
Date_Tag.Write (DateValue1) 'write the characters to Tag
' DOC THOI GIAN THUC
TimeValue1 = CStr(Time) 'makes characters of date
Dim Time_Tag '(Text tag 8 bit character set)
Set Time_Tag = HMIRuntime.Tags("tag_Current_Time")
Time_Tag.Write (TimeValue1) 'write the characters to Tag
Dim DateTime1
Dim DateAdnTime
DateTime1 = DateValue1 & " " & TimeValue1
Set DateAdnTime = HMIRuntime.Tags("tag_Current_Date_Time")
DateAdnTime.Write (DateTime1) 'write the characters to Tag
'++++++++++++++++LẤY THỜI GIAN THỰC TẾ++++++++++++++++++++++++++++
6.4 Script xuất báo cáo (Data_Export)
Dim wsh, XLSrunning, TargetBookrunning, objExcelApp, objWorkbook, TheTargetBook, TheTargetBookName
For Each XLSrunning In objExcelApp.Workbooks
If XLSrunning.name = TheTargetBookName Then
Set objExcelApp = CreateObject("Excel.Application")
Set objWorkbook = objExcelApp.Workbooks.Open(TheTargetBook)
Trang 15STEP 7: Tạo trigger xuất báo cáo cho Scada
Ở mục schedule tag tạo 4 trigger như sau:
7.1 Trigger tạo folder (Creat_Folder)
Lựa chọn Daily, và vào lúc 12:00:00 AM tức là 0H sáng
(*) Ở mục event chọn script có tên là Creat_Folder
Trang 167.2 Trigger Tạo file mới (Creat_File)
(*) Chọn tag trigger và tag là tag đã tạo bên PLC với tên tag là “report_Trigger_Creat_File”, lựa chọn thuộc tính là Uponchange
(*) Ở mục event chọn script có tên là Creat_File
Trang 187.3 Trigger xuất báo cáo (Data_Export)
(*) Chọn tag trigger và tag là tag đã tạo bên PLC với tên tag là “report_Trigger_Data_Export”, lựa chọn thuộc tính là Uponchange
(*) Ở mục event chọn script có tên là Data_Export
Trang 197.4 Trigger lấy dữ liệu thời gian thực tế (Current_Date_Time)
(*) Lựa chọn Trigger là 1 minute tức là 1 phút sẽ cập nhật giá trị 1 lần, các bạn cũng có thể chọn 1 second
để 1s trigger thay đổi giá trị 1 lần
(*) Ở mục event chọn script có tên là Current_Date_Time
Trang 20STEP 8: Tạo folder và file excel chuẩn
8.1 Tạo 1 folder có tên là Report ở ổ D của máy tính
8.2 Trong thư mục report tạo 1 folder có tên là Reference
8.3 Tạo 1 file excel chuẩn dạng Excel 2003 (đuôi xls) với tên “Report_Reference.xls” và coppy vào thư mục Reference
Trang 21(*) Nội dung file excel
STEP 9: Thực hiện chạy chương trình và ta có kết quả như sau
Trang 22Phần 2
CẬP NHẬT GHI CHÉP SỐ LIỆU THEO THỜI GIAN
Trang 23Nguyên lý: Có thể cập nhật theo thời gian Update là số giây(phút), ví dụ 10s cập nhật giá trị 1 lần, hoặc
có thể cập nhật số liệu theo trigger (khi trộn xong 1 mẻ thì cập nhật số liệu 1 hàng của mẻ đó)
Chú ý: Nội dung này phải kết hợp với nội dung của phần 1 để có thể tạo 1 project hoàn chỉnh
BƯỚC 1: Tại tag nội của Wincc pro thêm 1 tag với tên như sau:
BƯỚC 2: Thêm 1 VB scrip với tên (“Data_Record_Creat_File”) với nội dung như sau, nội dung của VB
script là mỗi ngày sẽ tạo ra 1 file mới
Dim fso, msg,fldr,ReportFolderStatus
Dim fso1, f,fName
Trang 24VBFLDREX = "D:\Report\" & YR & MNTH1 & DY1
VBDT= VBFLDREX & "\" & "Data_Record_" & YR & "_" & MNTH1 & "_" & DY1 & ".xls"
' SAVE THE TARGET FILE TAG
objFSO.CopyFile RefFile, TarFile
'================ CREAT NEW FILE FOR EACH SEQUENCE ===============================
BƯỚC 3: Thêm 1 VB scrip với tên (“Data_Record_Data_Update”) với nội dung như sau, nội dung của VB
script là theo trigger (có thể là theo thời gian hoặc theo trigger tag) tiến hành cập nhật dữ liệu vào file Excel theo chu kỳ
Trang 25Dim wsh, XLSrunning, TargetBookrunning, objExcelApp, objWorkbook, TheTargetBook, TheTargetBookName
Set objExcelApp = GetObject(,"Excel.Application")
' Using GetObject(,"Excel.Application") to point to the running Excel Application
TargetBookrunning = 0
For Each XLSrunning In objExcelApp.Workbooks
If XLSrunning.name = TheTargetBookName Then
Set objExcelApp = CreateObject("Excel.Application")
Set objWorkbook = objExcelApp.Workbooks.Open(TheTargetBook)
' LAY DOAN CODE NAY NEU MUON TU DONG XUONG DONG
TheTargetRow = Cells(65535, 8).End(-4162).Row ' 8 = cột cuối cùng có chữ
Trang 26BƯỚC 4: Tạo 2 Schedule task với tên như sau:
4.1 Schedule task với tên “Data_Record_Creat_File”
Trang 274.2 Schedule task với tên “Data_Record_Data_Update”, ở đây 10s sẽ update dữ liệu 1 lần
Trang 29(*) Kết quả ghi chép lưu trữ dữ liệu