Đọc và ghi dữ liệu giữa WinCC và Microsoft Excel: Hướng dẫn VBScript, OPC và COM (Phần 1)
WinCC14 tháng 7, 2026· 8 phút đọc · 3 lượt xem

Đọc và ghi dữ liệu giữa WinCC và Microsoft Excel: Hướng dẫn VBScript, OPC và COM (Phần 1)

Tổng quan các phương pháp kết nối WinCC với Excel và hướng dẫn Phương pháp 1: dùng VBScript, Excel COM để đọc, ghi dữ liệu trong TIA Portal.

1. Tổng quan

Việc kết nối Microsoft Excel với Siemens WinCC Runtime là một nhu cầu rất phổ biến trong các hệ thống SCADA.

Thông qua Excel, người vận hành có thể:

  • Nhập Recipe sản xuất

  • Xuất báo cáo sản lượng

  • Lưu dữ liệu lịch sử

  • Chỉnh sửa thông số máy

  • Phân tích dữ liệu vận hành

Trong khi đó WinCC đóng vai trò là hệ thống HMI/SCADA giao tiếp với PLC.

Nếu hai nền tảng này có thể trao đổi dữ liệu trực tiếp, quá trình vận hành sẽ trở nên linh hoạt hơn rất nhiều.

Ví dụ:

  • Nhân viên công nghệ nhập công thức sản xuất trong Excel → WinCC tự động đọc và ghi xuống PLC.

  • WinCC ghi nhiệt độ, áp suất, sản lượng vào Excel để tạo báo cáo cuối ca.

  • Người quản lý mở Excel để phân tích dữ liệu mà không cần truy cập trực tiếp vào WinCC.

Bài viết này sẽ trình bày toàn bộ các phương pháp chính thức để trao đổi dữ liệu giữa WinCC và Excel.

2. Các phương pháp tích hợp WinCC với Excel

Hiện nay có nhiều cách để kết nối WinCC với Microsoft Excel.

Phương pháp

WinCC TIA Portal

WinCC Flexible

Đọc/Ghi hai chiều

Cần License bổ sung

VBScript + Excel COM

Không

OPC DA

Excel OPC Server

Có (phần mềm bên thứ ba)

CSV

Không

WinCC OLE DB

✔ (Professional)

Chỉ đọc

WebNavigator / REST API

✔ (Professional)

Nếu bạn đang sử dụng WinCC TIA Portal Runtime Advanced hoặc Runtime Professional, giải pháp được Siemens khuyến nghị là VBScript kết hợp COM (Excel.Application).

Ưu điểm:

  • Không cần OPC.

  • Không cần Add-in.

  • Không cần mua thêm License.

  • Có thể đọc và ghi trực tiếp giữa Excel và WinCC.


WinCC TIA Portal và WinCC Flexible khác nhau như thế nào?

Hai nền tảng này có khả năng tích hợp Excel rất khác nhau.

WinCC TIA Portal

WinCC Runtime Advanced/Professional tích hợp sẵn:

  • VBScript

  • HMIRuntime Object

VBScript có thể tạo đối tượng:

CreateObject("Excel.Application")

sau đó mở Workbook, đọc Cell và ghi trực tiếp vào Tag của WinCC.

Đây là phương pháp hiện đại và được Siemens hỗ trợ.


WinCC Flexible 2008

WinCC Flexible có môi trường Script đơn giản hơn.

Runtime không hỗ trợ tạo đối tượng Excel COM.

Do đó muốn kết nối Excel phải sử dụng:

  • OPC DA

  • File CSV

  • Script Windows bên ngoài


Khuyến nghị: Trước khi lựa chọn phương pháp tích hợp, hãy xác định rõ phiên bản WinCC, loại Runtime (Advanced hoặc Professional), loại HMI (Comfort Panel hay PC Runtime) và phiên bản TIA Portal đang sử dụng.


3. Phương pháp 1 – Đọc dữ liệu từ Excel bằng VBScript trong WinCC TIA Portal

Trong TIA Portal, WinCC cung cấp đối tượng:

HMIRuntime

để truy cập toàn bộ Tag Runtime.

Trong khi đó Microsoft Excel cung cấp đối tượng:

Excel.Application

thông qua COM của Windows.

VBScript có thể điều khiển đồng thời cả hai đối tượng này, từ đó tạo cầu nối trực tiếp giữa Excel và WinCC mà không cần bất kỳ phần mềm trung gian nào.

Luồng hoạt động như sau:

Excel Workbook
        │
        ▼
 Excel.Application (COM)
        │
        ▼
      VBScript
        │
        ▼
 HMIRuntime.Tags(...)
        │
        ▼
      WinCC Runtime
        │
        ▼
         PLC

3.1. Điều kiện cần

Để sử dụng phương pháp này, hệ thống cần đáp ứng các điều kiện sau.

Phiên bản WinCC

Khuyến nghị:

  • TIA Portal V16 trở lên.

Có thể sử dụng từ:

  • V15.1

  • V14 SP1


Runtime

Yêu cầu:

  • WinCC Runtime Advanced

  • hoặc WinCC Runtime Professional


Microsoft Excel

Máy tính chạy Runtime phải cài đặt:

  • Microsoft Excel 2010 trở lên.

Không cần Office là bộ mặc định của Windows.

Chỉ cần COM của Excel đã được đăng ký (thường tự động khi cài Office).


Tag trong WinCC

Các Tag cần ghi dữ liệu phải được tạo sẵn trong:

HMI Tags

và đã Download xuống Runtime.


Cho phép chạy Script

Trong Project:

Runtime Settings
→ Services
→ Enable Scripts

phải được bật.


Đối với Comfort Panel

Nếu chạy Runtime trên Comfort Panel:

cần kiểm tra Firmware có hỗ trợ VBScript.

Các Comfort Panel từ 7 inch trở lên đều hỗ trợ.

Một số Basic Panel như KTP400 Basic thì không.


3.2. Quy trình đọc dữ liệu từ Excel vào WinCC

Ví dụ cần đọc:

C:\Data\Recipe.xlsx

Lấy dữ liệu tại:

Sheet1
A1

và ghi vào Tag:

ExcelImport_Value

Quy trình thực hiện gồm các bước sau.

Bước 1

Trong TIA Portal tạo Tag:

ExcelImport_Value

Kiểu:

Int

Bước 2

Tạo một VBScript mới.

Ví dụ:

ReadFromExcel

Bước 3

Thiết lập Trigger.

Có thể chạy:

  • Khi một Bit đổi trạng thái.

  • Theo chu kỳ 60 giây.

  • Khi nhấn Button trên HMI.


Bước 4

Trong Script tạo đối tượng Excel:

Set objExcel = CreateObject("Excel.Application")

Ẩn cửa sổ Excel:

objExcel.Visible = False
objExcel.DisplayAlerts = False

Điều này giúp Runtime không hiển thị cửa sổ Excel trong quá trình vận hành.


Bước 5

Mở Workbook:

Set objWorkbook = objExcel.Workbooks.Open(...)

Bước 6

Lấy Worksheet:

Set objSheet = objWorkbook.Worksheets(1)

Bước 7

Đọc Cell:

cellValue = objSheet.Range("A1").Value

Bước 8

Chuyển kiểu dữ liệu.

Ví dụ:

CLng()

cho Tag kiểu Int.

Hoặc:

CDbl()

đối với kiểu Real.


Bước 9

Ghi xuống WinCC:

HMIRuntime.Tags("ExcelImport_Value").Write hmiValue

Sau đó:

WriteFlush

để đảm bảo dữ liệu được cập nhật ngay.


Bước 10

Đóng Workbook:

objWorkbook.Close

Đóng Excel:

objExcel.Quit

Giải phóng toàn bộ Object:

Set objExcel = Nothing

Lưu ý rất quan trọng

Đây là lỗi phổ biến nhất khi tích hợp WinCC với Excel.

Nếu không gọi:

objExcel.Quit

thì tiến trình:

EXCEL.EXE

sẽ tiếp tục chạy ngầm sau mỗi lần thực thi Script.

Sau vài giờ hoặc vài ngày, Runtime sẽ xuất hiện hàng chục tiến trình Excel chạy nền, gây:

  • Tăng sử dụng RAM.

  • Chiếm CPU.

  • Làm chậm Runtime.

  • Thậm chí khiến WinCC bị treo.

Vì vậy, luôn đóng Workbook, gọi Quit và giải phóng toàn bộ Object COM sau khi hoàn thành công việc.

3.3 Ghi dữ liệu từ WinCC sang Excel

Chiều ngược lại cũng được thực hiện bằng Excel COM.

Lúc này WinCC sẽ:

  1. Đọc giá trị Tag Runtime.

  2. Mở Workbook.

  3. Ghi dữ liệu vào Cell tương ứng.

  4. Lưu Workbook.

  5. Đóng Excel.

Ví dụ:

Tag:

Machine_State

được ghi xuống Workbook:

C:\Logs\StateLog.xlsx

Quy trình hoạt động

HMIRuntime Tag
       │
       ▼
   VBScript
       │
       ▼
 Excel.Application
       │
       ▼
 Workbook
       │
       ▼
    Excel File

Mở Workbook

Trước tiên tạo đối tượng Excel.

Set objExcel = CreateObject("Excel.Application")

Ẩn giao diện:

objExcel.Visible = False
objExcel.DisplayAlerts = False

Sau đó mở Workbook:

Set objWorkbook = objExcel.Workbooks.Open(...)

Xác định dòng trống tiếp theo

Thông thường file Excel được dùng để lưu lịch sử.

Do đó mỗi lần ghi sẽ cần tìm dòng cuối cùng.

Ví dụ:

nextRow = ...

sẽ xác định dòng đầu tiên còn trống trong cột A.


Ghi dữ liệu

Ví dụ:

Cột A:

Ngày giờ

Now

Cột B:

Giá trị Tag

HMIRuntime.Tags("Machine_State").Read

Kết quả:

Time

Machine State

08:00

Running

08:01

Running

08:02

Alarm

08:03

Stopped


Lưu Workbook

Sau khi ghi xong:

objWorkbook.Save

Đóng Workbook:

objWorkbook.Close

Đóng Excel:

objExcel.Quit

Giải phóng Object:

Set objExcel = Nothing

Nếu thiếu bước này sẽ sinh ra tiến trình EXCEL.EXE chạy nền.

Chưa biết chọn UPS công suất bao nhiêu?
Nhập danh sách thiết bị, công cụ sẽ tính tự động và gợi ý model phù hợp.
Tính công suất miễn phí

Cần tư vấn giải pháp UPS?

UPSsmart hỗ trợ tư vấn miễn phí, không ràng buộc.