Chương 5 Kết Luận 5.1 Ưu điểm.
5.3. Hướng phát triển
Cần phải tiếp tục phát triển hệ thống phân loại sản phẩm trên thành mô hình thực.
Thay thế việc phân loại chiều cao của sản phẩm từ cảm biến hồng ngoại sang camera để nâng cao tính chính xác và đa dụng cho hệ thống.
Áp dụng các tính năng giám sát online, mạng truyền thông công nghiệp cho hệ thống.
Tài liệu tham khảo Phục lục 1
Chương trình trên PLC
1. Main
Các Tag trong PLC
1. INPUT Tag
3. Tag giá trị số nguyên
Chương trình code thiết lập chức năng xuất báo cáo tự động ra Excel
1. Tạo 2 file VBCripts : CREAT_FILE và DATA_EXPORT để truy xuất dữ liệu trên TIA Portal đến nơi lưu trữ mẫu báo cáo (Excel) trên PC.
3. Chương trình code cho VBCripts :
CREAT_FILE :
Sub CREAT_FILE() 'Tip:
' 1. Use the <CTRL+SPACE> or <CTRL+I> shortcut to open a list of all objects and functions
' 2. Write the code using the HMI Runtime object. ' Example: HmiRuntime.Screens("Screen_1").
' 3. Use the <CTRL+J> shortcut to create an object reference. 'Write the code as of this position:
'================ CURRENT DATE AND TIME IN INTEGER ===============================
'---
Dim dtmDate, objExcel, objWorkbook, path Dim a
Dim DT,CDT,VBDT,CWT,VBWT,CpHORP,VBpHORP,CQT,VBQT,CFLDREX, VBFLDREX,CFLDRPDF,VBFLDRPDF,CWeb,VBWeb Dim DY,MNTH,YR,MNTHNM Dim HR,MNT,SCND Dim i,j
Dim fso, msg,fldr,ReportFolderStatus Dim fso1, f,fName
DY=Day(Date()) MNTH=Month(Date()) YR=Year(Date()) HR=Hour(Time()) MNT=Minute(Time()) SCND=Second(Time()) MNTHNM=Month(Now) MNTHNM=MonthName (MNTHNM,True) ' DEFINE MONTH TYPE
Dim MNTH1, DY1 If MNTH < 10 Then MNTH1 = "0" & MNTH Else MNTH1 = MNTH End If
' DEFINE DATE TYPE If DY < 10 Then
DY1 = "0" & DY Else
DY1 = DY End If
' DEFINE HOUR & MINUTE Dim HR1, MNT1 'HOUR If HR < 10 Then HR1 = "0" & HR Else HR1 = HR End If 'MINUTE If MNT < 10 Then MNT1 = "0" & MNT
Else
MNT1 = MNT End If
'Save link
VBFLDREX = "D:\Report\" & YR & MNTH1 & DY1
VBDT= VBFLDREX & "\" & "Report_" & YR & "_" & MNTH1 & "_" & DY1 & ".xls"
'================ CREAT FOLDER
=================================================== Set fso1 = CreateObject("Scripting.FileSystemObject")
fso1.CreateFolder(VBFLDREX)
'================ CREAT NEW FILE FOR EACH SEQUENCE ===============================
Dim objFSO Dim RefFile Dim TarFile
Set objFSO = CreateObject("Scripting.FileSystemObject") '
RefFile = "D:\Report\Reference\Report_Reference.xls" 'Reference file TarFile = VBDT '"D:\scripts\temp\Testghdf.xls"
' First parameter: original location\file objFSO.CopyFile RefFile, TarFile
'================ CREAT NEW FILE FOR EACH SEQUENCE ===============================
End Sub
DATA_EXPORT :
'=================================SAVE
LINK================================================== ============
Dim dtmDate, path Dim a Dim objExcelApp2 Dim DT,CDT,VBDT,CWT,VBWT,CpHORP,VBpHORP,CQT,VBQT,CFLDREX, VBFLDREX,CFLDRPDF,VBFLDRPDF,CWeb,VBWeb Dim DY,MNTH,YR,MNTHNM Dim HR,MNT,SCND Dim i,j
Dim fso, msg,fldr,ReportFolderStatus Dim fso1, f,fName
DY=Day(Date()) MNTH=Month(Date()) YR=Year(Date()) HR=Hour(Time()) MNT=Minute(Time()) SCND=Second(Time()) MNTHNM=Month(Now) MNTHNM=MonthName (MNTHNM,True) ' DEFINE MONTH TYPE
Dim MNTH1, DY1 If MNTH < 10 Then MNTH1 = "0" & MNTH Else MNTH1 = MNTH End If
' DEFINE DATE TYPE If DY < 10 Then
DY1 = "0" & DY Else
DY1 = DY End If
' DEFINE HOUR & MINUTE Dim HR1, MNT1
'HOUR
If HR < 10 Then
Else HR1 = HR End If 'MINUTE If MNT < 10 Then MNT1 = "0" & MNT Else MNT1 = MNT End If 'Save link
VBFLDREX = "D:\Report\" & YR & MNTH1 & DY1
VBDT= VBFLDREX & "\" & "Report_" & YR & "_" & MNTH1 & "_" & DY1 & ".xls"
'=================================SAVE
LINK================================================== ============
Dim wsh, XLSrunning, TargetBookrunning, objExcelApp, objWorkbook, TheTargetBook, TheTargetBookName
Dim TheCount, TheTargetRow Dim objFSO
Const OverwriteExisting = 1
Set wsh = CreateObject("WScript.Shell")
TheTargetBookName = VBDT ' DUONG DAN LUU FILE TheTargetBook = TheTargetBookName
'---[Bat dau xuat Excel]--- TheCount = GetObject("winmgmts:root\CIMV2").ExecQuery("SELECT * FROM Win32_Process WHERE Name='EXCEL.EXE'").Count
'While TheCount is bigger than 0, it means the Excel Application is running..., but doesn't mean the workbook is open for sure!
If TheCount > 0 Then
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
End If Next
If TargetBookrunning = 1 Then
Set objWorkbook = GetObject(TheTargetBook) Else
Set objWorkbook = objExcelApp.Workbooks.Open(TheTargetBook) End If
Else
Set objExcelApp = CreateObject("Excel.Application")
Set objWorkbook = objExcelApp.Workbooks.Open(TheTargetBook) End If objExcelApp.Visible = False objExcelApp.ScreenUpdating = True objExcelApp.DisplayAlerts = True Dim P100ATheTargetRow,P100BTheTargetRow ' <--- [Modification#2]--- With objWorkbook.ActiveSheet 'EXPORT START================================================= ==============================================
TheTargetRow = .Cells(65535, 6).End(-4162).Row ' Chu y con so 6 tuc la COT ma muon xuong hang, COT do phai co du lieu va la COT cuoi cung. 'date and time
.cells(TheTargetRow + 1, 2) = Date() & " " & Time()
.cells(TheTargetRow + 1, 3) = Smarttags("Act_Count_Cao") .cells(TheTargetRow + 1, 4) = Smarttags("Act_Count_TB") .cells(TheTargetRow + 1, 5) = Smarttags("Act_Count_Thap") .cells(TheTargetRow + 1, 6) = Smarttags("Act_Count_Tong") 'EXPORT END================================================== ============================================= End With objWorkbook.Save objWorkbook.Close
objExcelApp.Quit
Set objExcelApp = Nothing 'msgbox "Done"
Set wsh = Nothing
End Sub
Các bước thiết lập phần cứng trong TIA Portal để giám sát trên Webserver:
1. Các bước cài đặt phần cứng trên TIA Portal : - Tạo địa chỉ IP cho PLC
- Stick vào “Enable Web server using this interface”
- Tại phần User-defined pages ta làm các bước như hình để link tới thư mục chứa file code HTML thiết kế giao diện giám sát Webserver và tiến hành tại khối giao thức Webserver.
- Stick vào “Active Web server on all modules of this device”
- Tại phần “Entry page”, ta vào phần “Select entry page” và chọn “UP1” để khi ta chạy giám sát webserver thì sẽ tự động đưa ta đến trang giao diện đã thiết kế thay
- Cuối cùng, tại block Main, ta kéo vào khối lệnh WWW và tiến hành thiết lập như hình.
- Sau khi hoàn tất các bước, ta tiến hành Combile và Download chương trình vào PLC.
- Để giám sát được trên Webserver, ta cần mở trình duyệt và nhập vào thanh địa chỉ là IP của PLC mà ta đã tạo trước đó. Lúc này trình duyệt sẽ đưa ta đến giao diện giám sát Webserver mà ta đã lập trình bằng code HTML bằng phần mềm Visual Studio Code.