• Hotline: 0989.000.420
  • Giới thiệu
  • Vai trò pn
  • Facbook hội pn
  • Sitemap
SỬA CHỮA ĐỘNG CƠ ĐIỆN YÊN BÁI

Vĩnh Kiên- Yên Bình- Yên Bái 0989 000 420- 038 540 7810

  • Trang chủ
  • Giới thiệu
    • Giới thiệu chung
    • Chức năng nhiệm vụ
    • Cơ cấu tổ chức
    • Các phòng chức năng nghiệp vụ
      • Văn phòng Ban QLDA Đầu tư xây dựng
      • Phòng Tài chính - Kế toán
      • Phòng Kế hoạch tổng hợp
      • Phòng Kỹ thuật - Thẩm định
      • Phòng Điều hành - Dự án
  • Thiết bị điện
  • Hệ thống DCS
    • Thiết kế tủ điện
    • Lập trình PLC
    • Giao diện DCS
    • Chuyển đối số
    • Modbus
    • Hệ thống rơ le bảo vệ
    • Lưới điện
  • Truyền thông công nghiệp
  • Config IEC104 , 61850
    • RS485
    • IEC104
    • IEC61850
    • Vòng quay may mắn
  • Máy điện
  • Góp ý
  • Liên hệ
Học Học Nữa - Học Mãi
Liên hệ quảng cáo
  • Trang chủ
  • C#

tối ưu lưu trend cho tag

Bởi Operator vào 19 thg 10, 2026
Chia sẻ
  • Sao chép liên kết
  • Chia sẻ với Facebook
  • Chia sẻ với X
  • Chia sẻ với Pinterest
  • Chia sẻ với Linkedin
  • Gửi bài qua Email

gửi email cho tác giả




    Mình giải nén bản mới và so với bản trước để đánh giá.

    Chưa tối ưu xong. Bản z235 chỉ sửa được phần giao diện bảng tag. Phần engine và driver, vốn là nguyên nhân chính khiến tag nạp chậm và giá trị không realtime, hầu như chưa được nối vào. Mình đọc code chứ chưa chạy được (máy mình không có .NET SDK), nên các kết luận dưới đây dựa trên việc so với bản z227 và tìm chỗ gọi hàm.

    Đã làm được

    • Bảng “Thiết bị & Tag” chỉ vẽ 100–500 dòng mỗi trang, có ô tìm kiếm. Phần này giảm treo trình duyệt rõ rệt, vì trước đây Blazor phải vẽ và gửi diff của 100k dòng mỗi 0,5 giây.
    • AddTags dùng HashSet nên hết O(n²).
    • Socket.IO có đường đọc TryRead không ném exception, và History.Add không còn đọc SQLite theo từng tag.
    • Save được gom lại (debounce).
    • File ScadaEnginePerf.cs có sẵn chỉ mục tag và cơ chế ghi lịch sử có chọn lọc.

    Chưa làm hoặc chưa nối

    • OpcUaDriver.cs không đổi. Mỗi tag mới gặp lần đầu vẫn buộc đọc lại toàn bộ tag đã đăng ký (dòng if (isNew || ...) Refresh(ses)). 100k tag nghĩa là khoảng 5 tỷ lần đọc node trong vòng đầu. Đây chính là lý do “phải add đủ tag mới thấy realtime” trong ảnh bạn gửi. Với driver OPC UA, vấn đề này vẫn còn nguyên.
    • IBatchReader được khai báo nhưng không driver nào dùng, và engine cũng không gọi.
    • Hầu hết hook mới không có chỗ gọi. ShouldRecord, RefreshTrendPens, GetTag, TagMap, HasAddress, ValueRev đều không được dùng, và TagsChanged() không được gọi ở đâu cả. Hậu quả là engine vẫn ghi trend 1 điểm/giây × 8 giờ cho mọi tag. Với 100k tag đó là khoảng 2,9 tỷ điểm trong RAM, nên sẽ cạn bộ nhớ hoặc GC treo sau vài chục phút.
    • PollDevice vẫn lọc P.Tags.Where(...) 100k phần tử mỗi chu kỳ. Nó còn giữ lock(sync) suốt cả vòng 100k tag, nên mọi thao tác UI cần lock này (ghi tag, tra tag, alarm) có thể bị đứng vài trăm ms mỗi chu kỳ.
    • Các widget (TagList, TagTable, TagMap, PluginBox, Popup, TrendChart) và Write vẫn gọi P.Tags.ToArray() hoặc FirstOrDefault trên 100k phần tử mỗi 0,5 giây.
    • Cache bảng trong Home.razor chỉ kiểm tra theo số lượng tag, nên đổi tên tag mà số lượng không đổi thì danh sách có thể cũ.
    • README nhắc 100k_patch.diff nhưng file này không có trong zip.
    • Bản vá chưa từng được biên dịch.

    UI có lag hoặc treo không?

    • Trang tag: chuyển tab và lướt trang sẽ mượt hơn nhiều so với trước.
    • Chạy lâu hoặc khi nạp tag: vẫn lag và có nguy cơ treo vì các vấn đề engine ở trên. Ở thời điểm thêm 100k tag từ OPC UA, nạp vẫn rất chậm.
    • Màn hình có widget dạng bảng tag: các widget này vẫn dựng từ điển 100k phần tử mỗi lần vẽ nên sẽ nặng.

    Mình đang sửa dở trên bản gốc z227 và đã xong các phần sau: đọc OPC UA theo lô song song, chỉ mục tag, AddTags và import CSV không còn O(n²), Save gom lại, và ghi trend có chọn lọc. Mình chưa xong phần UI/widget/Home và chưa biên dịch được. Bạn muốn mình hoàn thiện trên bản z235 (giữ phần phân trang của nó) hay trên bản gốc? Mình khuyên dùng z235 làm nền, vì phần UI đã có sẵn, rồi bổ sung phần engine và OPC UA vào đó.

    Mình đang nối nốt phần widget, Home và TagPicker vào bản z235 (đã xong engine và OPC UA).

    Mình đã hoàn thiện trên bản z235, nhưng chưa biên dịch được vì máy mình không có .NET SDK. Mình chỉ kiểm tra bằng cách đọc code và đếm ngoặc (các file sửa có cùng số ngoặc với bản gốc). Bạn build trước, nếu có lỗi gửi lại thông báo, mình sửa tiếp.

    Bản này giữ phần phân trang và tìm kiếm của z235, và bổ sung những chỗ nó còn thiếu:

    • OPC UA (nguyên nhân chính khiến phải nạp đủ tag mới thấy realtime):
      • Driver giờ đọc theo lô: dựng danh sách node một lần, chia lô 5000 node mỗi lệnh Read, đọc song song 4 lô. Lô nào về trước gán giá trị trước, nên giá trị hiện ngay từ lô đầu thay vì chờ đủ tag.
      • Nếu server báo BadTooManyOperations, driver tự giảm cỡ lô.
      • Hai tham số mới BatchSize và Parallel hiện ở phần Edit thiết bị OPC UA.
      • Tag mới không còn buộc đọc lại cả lô như trước.
      • Hộp thoại “Dò tag” khi bấm “Thêm tag đã chọn” cũng đọc kiểu dữ liệu theo lô, và chỉ hiện 300 dòng kết quả cho đỡ nặng.
    • Engine:
      • Vòng đọc gọi driver đọc theo lô và dùng danh sách tag đã nhóm sẵn theo thiết bị.
      • Trend và lịch sử chỉ ghi cho tag bật Trend hoặc đang được widget Trend dùng khi dự án lớn hơn 3000 tag, nên RAM không còn phình theo 100k tag.
      • lock(sync) không còn giữ suốt vòng 100k tag.
      • Write và FindTag tra O(1).
      • Khi tắt chương trình hoặc xuất project, thay đổi đang chờ lưu được ghi nốt.
    • Import CSV: 100k dòng không còn quét danh sách từng dòng.
    • Widget và giao diện: TagList, TagTable, TagMap, Plugin, Popup, Trend và các chỗ tra tag trong Home dùng chỉ mục chung thay vì sao chép 100k tag mỗi lần vẽ. Ô chọn tag (TagPicker) cũng không dựng danh sách 100k tên mỗi lần gõ. Tab Trend cũ chỉ liệt kê 200 tag đầu.
    • Chưa đổi: ô chọn tag dạng <select> trong widget plugin (PlugField) vẫn liệt kê đủ tên. Nó chỉ nặng khi bạn mở thuộc tính của widget plugin.
    • Chưa kiểm chứng: mình chưa đo được thời gian chạy thực tế.

    Sau khi build, bạn thử thêm 100k tag từ OPC UA và xem giá trị có hiện dần ngay không. Nếu server của bạn giới hạn số node mỗi lệnh Read, chỉnh BatchSize cho phù hợp.

    Files are in /mnt/user-data/outputs:

    • z236_ScadaWeb_100ktag.zip

     Mình đã thêm chế độ lưu Trend để người dùng tự chọn, gói trong z237_ScadaWeb_100ktag_trend.zip (đây là bản đầy đủ). Mình chưa biên dịch được vì máy mình không có .NET SDK, nên bạn build rồi gửi lại lỗi nếu có.

    Ở tab “Thiết bị & Tag”, phía trên bảng có dòng Lưu Trend với ba chế độ:

    • Tự động: dự án từ 3000 tag trở xuống thì lưu hết, nhiều hơn thì chỉ lưu tag đã tick.
    • Lưu TẤT CẢ tag: cột Trend hiện tick cho mọi tag và bị khoá.
    • Chỉ lưu tag đã tick: bạn tick từng tag, hoặc dùng hai nút “Tick tất cả” và “Bỏ tick” theo bộ lọc tìm kiếm (ví dụ tìm theo thiết bị rồi tick cả nhóm).

    Kế bên có ô Chỉ lưu khi giá trị thay đổi, mặc định bật. Cách hoạt động:

    • Giá trị đổi thì ghi điểm mới. Giá trị đứng yên thì chỉ ghi một điểm mỗi 60 giây để đồ thị không bị đứt.
    • Khi giá trị đổi sau một thời gian đứng yên, mình chèn thêm một điểm giữ giá trị cũ ngay trước đó, để đồ thị ra bậc thang thay vì đường chéo.
    • Với database lâu dài, mình so với giá trị đã ghi lần gần nhất. Vì vậy một thay đổi xảy ra trong khoảng 10 giây sau lần ghi trước không bị mất, mà được ghi ở lần đọc kế tiếp.

    Cả hai lựa chọn được lưu trong project.json, nên mở lại chương trình vẫn giữ nguyên.

    Hai điểm bạn cần biết:

    • Thời gian giữ trong RAM: chế độ “Lưu TẤT CẢ” với 100k tag sẽ tự rút ngắn thời gian giữ dữ liệu chi tiết trong RAM xuống còn 10 phút (dưới 300 tag thì giữ 8 giờ). Phần xa hơn đọc từ database, độ phân giải 10 giây.
    • Tắt “chỉ lưu khi đổi”: nếu bạn tắt ô này khi lưu 100k tag, database sẽ phình rất nhanh. Giao diện có cảnh báo, và database tự xoá phần cũ nhất khi đạt 1 GB.

    Mình cũng sửa một lỗi trong bản z235: xem đồ thị dài hơn thời gian giữ trong RAM thì chỉ ra phần ngắn. Giờ phần xa hơn được đọc từ database.


    Nội dung chính
      0 Nhận xét
      Tags: C#

      Cùng chuyên mục

      Liên hệ quảng cáo

      Tin mới

        Liên hệ (Contact)

        Tên

        Email *

        Thông báo *

        Tìm kiếm (SEARCH)

        Main Tags

        • ADROID
        • Affiliate + Dropshipping
        • AGC
        • AI
        • analog
        • Apk adroid
        • ASP.NET
        • âm nhạc
        • Âm thanh
        • Âm Thanh Xe Hơi
        • bản đồ địa chính
        • Bản tin xã Vĩnh Kiên
        • Bảo dưỡng xe MG
        • bảo hiểm
        • Bảo vệ môi Trường
        • beckhoff
        • bể phốt
        • Bệnh
        • biến áp xung
        • Biến áp xuyến
        • Biến tần
        • Biến tần KDE300A
        • biến tần Schneider
        • Biến tần Simens
        • biến tần yaskawa
        • blogspot
        • bộ hòa
        • bồn cầu
        • C#
        • C# web
        • C53 realme
        • các nhà phân phối
        • cad electrical 2019
        • cải tạo
        • cài win
        • camera
        • Chào mừng 8/3
        • Chat gpt
        • Chăm sóc sắc đẹp
        • chế tạo biến tần
        • Chi Bộ
        • Chi Đoàn
        • chỉ huy trưởng
        • chìa
        • Chìa khóa thành công
        • chung tay
        • chuyển đổi số
        • chuyên gia
        • CODE WIN CC
        • CODESYS
        • com ảo
        • Công Đoàn
        • công tác hội
        • Cơ điện tử
        • cp1243-7
        • Crack tia
        • dao diện tia
        • Dạy con ngoan giỏi
        • Dạy con thông minh
        • Dây điện từ
        • DCS
        • Dịch vụ
        • driver
        • Dso138
        • Dự án
        • Đảng - Đoàn thể
        • Đánh bóng ô tô
        • Đào tạo nghề
        • Đào tạo vận hành
        • đẩu tư Bất động sản
        • đầu tư tài chính
        • Điện
        • Điện trở
        • Điện tử công suất
        • điện tường
        • điều khiển nhiệt độ
        • điều tốc
        • Đồ điện sửa chữa
        • Động cơ điện 1 pha
        • Động cơ điện 3 pha
        • Động cơ mua bán
        • động cơ vạn năng
        • đục tường
        • encoder
        • encore
        • Enigma Protector
        • Excel
        • Facebook
        • factory io
        • fasstAPI
        • faststone capture
        • fuxa
        • game đế chế
        • Gia Đình
        • Góc học tập và làm theo lời Bác
        • GOV
        • grafana
        • graphana
        • hàn nhiệt
        • hàn ống
        • Hantek 2c42
        • HIK
        • HMI
        • hmi delta
        • hmi simnes
        • HMI Wedcon
        • Học chức danh
        • học tiếng anh
        • Hội thi
        • IEC
        • IEC 104
        • iec61850
        • IGBT
        • INVT
        • karaoke
        • Kaspersky Internet Security
        • KEP OPC
        • kepopc
        • key win cc oa
        • Khí cụ điện
        • khởi động mềm
        • khởi nghiệp
        • Kích
        • Kích cá
        • km
        • làm đẹp
        • Làm kinh tế giỏi
        • Lập công ty
        • lập trình zen
        • Lịch làm việc
        • Lịch sự
        • liệt não
        • Link kiện điện tử
        • logo simens
        • Lỗi phạt ô tô
        • mạch âm thanh
        • Mạch băm xung
        • Mạch nguồn xung
        • mạch nồi cơm
        • mạng
        • Máy biến áp
        • máy cắt
        • máy giặt
        • máy hàn
        • máy hàn chip
        • máy hàn tig wp 300
        • Máy lọc dầu
        • Máy phát điện
        • Máy phát điện xăng
        • máy tính
        • MG zs
        • Microstation SE
        • mobus
        • MODBUS
        • Module phát âm thanh MP3 DY-SV5W
        • mqtt
        • mua ô tô
        • mường hum
        • My Music
        • nart port
        • nậm ban2
        • next.js
        • nhẫn nhịn
        • node js
        • Note js
        • Nông thôn mới
        • odoo
        • OPC
        • OPC DA
        • opc. matrikon
        • OpenVPN
        • ổn áp
        • pdf
        • phân loại rác
        • Phật dạy
        • phong trào
        • Pid
        • PLC
        • plc abb
        • plc delta
        • Plc emerson
        • plc GE
        • plc LS
        • Plc Mitsubishi
        • PLC Mitsubishi FX1N
        • plc s7 200
        • plc s71200
        • PLC Schneider
        • plc sim avanced
        • plc simens
        • python
        • quản trị tài chính
        • Rapid SCADA
        • Raspberry Pi
        • remote destrop
        • Rơ le bảo vệ
        • Rơ le CMC và studio PSL
        • S7 1200
        • S7 200
        • S7300
        • Sách
        • sách tổ tự động
        • sát hạch lái xe
        • SCR
        • secvo
        • SERVO
        • Sheet nhạc
        • Sim mới
        • sơ đồ bếp từ
        • sơn ô tô
        • SQL server
        • SSR
        • Step ĐC
        • Sửa chữa dc
        • sức khỏe
        • Sưu tầm
        • Tai biến
        • tài khoản Simens
        • Tài liệu kỹ thuật
        • Tailscale
        • Tâm lý
        • Teamviewer
        • tenten
        • thái độ
        • thay bo mạch
        • thay đổi góc nhìn
        • Thể thao
        • thi an toàn
        • Thi đua - Khen thưởng
        • thị trường điện
        • thingboard
        • thingsboard
        • Thông tin đấu thầu
        • Thông tin xử phạt
        • Thời sự
        • thời tiết
        • Thủ thuật máy tính
        • thủy điện
        • thyristor
        • TIA V13 SP2 pro
        • TIA V14
        • tia v15
        • Tia v16
        • Tia V17
        • tia V21
        • Tin tức - Sự kiện
        • tivi
        • touchpad-blocker
        • trạm phát thanh
        • TRIANGLE IEC
        • Trồng cây mừng Đảng mừng xuân 2024
        • tủ điện
        • Tủ lạnh
        • uctra_iso
        • Văn bản - Tài liệu
        • VBS
        • Video
        • Video động. Cơ điện
        • Video quấn động cơ điện
        • vmware
        • Vòng bi
        • vpn
        • Web
        • websever S7 1200
        • wifi
        • wincc
        • WinCC Unified
        • Wondershare Filmora
        • woodwoard
        • word
        • WPF
        • wwin cc
        • xây dựng
        • xây nhà tầng 2
        • xe 2025
        • xe ô tô
        • xem tuổi xây nhà
        • Xiaozhi
        • youtube
        • zenon
        • zoho mail

        Thời tiết hiện tại

        Chat hỗ trợ
        Chat ngay

        Lịch làm việc

          Thông báo

          • Nông thôn mới
          • Phong trào
          • Công tác hội
          • Chăm sóc sắc đẹp
          • Chuyển đổi số

          Đọc nhiều

          • Bán fe từ E I
            Bán fe từ E I 9
            17 thg 9, 2017

            Bán lõi thép silic chất lượng cao được nhập khẩu từ nhật. Ngoài ra chúng tôi cung cấp đủ gông từ, cốt nhựa đủ cho quý khách quấn máy biến áp...

          • Ebook Kỹ thuật quấn dây máy biến áp, động cơ vạn năng, động cơ điện 1 pha, 3 pha
            Ebook Kỹ thuật quấn dây máy biến áp, động cơ vạn năng, động cơ điện 1 pha, 3 pha 2
            13 thg 9, 2018

            Ebook Kỹ thuật quấn dây máy biến áp, động cơ vạn năng, động cơ điện 1 pha, 3 pha có cấu trúc gồm 8 chương trình bày những nội dung ...

          • Hướng dẫn reset factory HMI basic của siemens [Guide Recovery HMI 2nd Genneration of Siemens]
            Hướng dẫn reset factory HMI basic của siemens [Guide Recovery HMI 2nd Genneration of Siemens] 2
            22 thg 2, 2019

          • Sửa chữa điện dân dụng
            Sửa chữa điện dân dụng 1
            16 thg 9, 2017

              CƠ ĐIỆN HUẾ HƯƠNG                        Không lo chặt chém Thợ sửa chữa cơ điện với mức giá tốt nhất trên thị trường. Nói Khô...

          • Giáo trình hướng dẫn đồ án cung cấp điện
            Giáo trình hướng dẫn đồ án cung cấp điện 1
            03 thg 9, 2018

            Tài liệu “Giáo trình hướng dẫn đồ án cung cấp điện” này là tài liệu giảng dạy và học tập trong các trường THCN ở Hà Nội, đồng th...

          • các mạch kích cá D718
            các mạch kích cá D718 1
            13 thg 9, 2018

          Có thể bạn quan tâm

            Ban biên tập

            Thế Hương

            ........

            ...........

            Thống kê

            Số người truy cập: Tổng lượt truy cập:
            Liên hệ quảng cáo
            Trang chủ
            Hotline: 0989.000.420
            Liên hệ
            RSS
            Lên đầu trang

            Cơ điện Huế Hương - Yên Bình -Yên Bái

            Địa chỉ: Xã Vĩnh Kiên - Yên Bình - Yên Bái
            Email: vuhuong.tbc@gmail.com
            Liên hệ: 0989000420

            Template blogspot bán hàng và bất động sản