• 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#

thực hiện được chuẩn và kết nối hệ thống history

Bởi Operator vào 12 thg 11, 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 đã tìm ra nguyên nhân, đang sửa History.cs, AlarmStore.cs và ScadaEngine.cs.

    Mình đã dừng lại, chưa có file nào bị ghi. Mình chưa chạy gì ở lượt này nên các file History.cs, AlarmStore.cs, ScadaEngine.cs vẫn như bản gốc của bạn.

    Đây là kết quả kiểm tra, đã đọc code nhưng chưa chạy thử:

    Nguyên nhân khả dĩ nhất: dữ liệu 07:00–15:00 chưa bao giờ nằm an toàn trên đĩa.

    • History.cs và AlarmStore.cs ghi SQLite ở chế độ WAL với PRAGMA synchronous=NORMAL. Ở chế độ này mỗi lần commit chỉ ghi vào file WAL, không ép xuống đĩa (fsync).
    • Dữ liệu chỉ được ép xuống đĩa khi SQLite checkpoint, và checkpoint tự động chỉ chạy khi WAL vượt khoảng 1000 trang (~4 MB). Dự án của bạn ghi mỗi tag 30 giây một điểm nên có thể 8 tiếng chưa đủ 4 MB.
    • Code cũng không tự checkpoint định kỳ. Chỉ có Shrink() làm việc đó, và hàm này chỉ chạy khi xoá dữ liệu cũ.
    • Máy reset đột ngột thì phần WAL chưa fsync (từ 06:30 đến lúc reset) mất hết. Điều này khớp với báo cáo: có dữ liệu đến 06:30, trống đến 15:00, rồi có lại từ 15:30 khi chương trình chạy lại.

    Cách sửa mình định làm (ở History.cs, AlarmStore.cs, ScadaEngine.cs):

    1. Đổi synchronous=NORMAL thành FULL, và đặt wal_autocheckpoint=200, để mỗi lô ghi (vài giây một lần) được fsync ngay.
    2. Thêm checkpoint nền định kỳ (khoảng 20 giây một lần) cho history và alarm.
    3. Khi chương trình dừng bình thường thì checkpoint ép xuống đĩa lần cuối.

    Mình chưa kiểm chứng được giả thuyết này trên máy của bạn. Bạn có muốn mình áp dụng 3 thay đổi trên không? Nếu bạn gửi thêm thư mục history của máy đó (file history.db, history.db-wal, history.db-shm), mình xem được dữ liệu 07:00–15:00 có thật sự mất khỏi DB hay chưa. Máy bạn reset do mất điện, treo hay tắt thường (không qua Shutdown) cũng giúp mình đoán chắc hơn.Mình đã dừng lại, chưa file nào bị ghi. Lệnh sửa bị từ chối lần thứ hai nên mình không thử lại.

    Mình hiểu “tiếp đi” là muốn sửa luôn, nhưng có thể bạn không muốn mình ghi file theo cách này, hoặc muốn xem trước thay đổi. Bạn chọn giúp mình một hướng:

    • Mình ghi thẳng vào project như các lần trước rồi gửi file zip. Bạn bấm cho phép lệnh ghi khi hiện ra.
    • Mình chỉ đưa đoạn code cần thêm vào đây để bạn tự dán vào History.cs, AlarmStore.cs, ScadaEngine.cs.
    • Bạn muốn dừng sửa, hoặc đổi cách tiếp cận (ví dụ gửi thư mục history để mình kiểm tra dữ liệu trước).

    Nếu bạn chọn tự dán, đây là nội dung ba thay đổi:

    1. History.cs và AlarmStore.cs, trong hàm Open(): đổi PRAGMA synchronous=NORMAL; thành PRAGMA synchronous=FULL; PRAGMA wal_autocheckpoint=200;.
    2. History.cs: thêm hàm Checkpoint(bool force) chạy PRAGMA wal_checkpoint(PASSIVE) tối đa 20 giây một lần (bản TRUNCATE khi force), và gọi nó ở cuối Flush(). Trong AlarmStore.Flush() thì thêm lệnh checkpoint PASSIVE tương tự ngay sau tx.Commit().
    3. ScadaEngine.cs, dòng try { History.Flush(); } catch { } lúc dừng chương trình: đổi thành try { History.Flush(); History.Checkpoint(true); } catch { }.
    Mình đã sửa xong và gửi history_fix.zip gồm 3 file: History.cs, AlarmStore.cs, ScadaEngine.cs. Chép đè vào project rồi build lại. Mình chưa biên dịch hay thử reset máy, nên cần bạn kiểm tra.

    Nguyên nhân mình đoán: history và alarm ghi SQLite kiểu WAL với synchronous=NORMAL, nên dữ liệu nằm trong file WAL mà chưa được ép xuống đĩa cho tới khi SQLite checkpoint. Checkpoint tự động chỉ chạy khi WAL đầy khoảng 4 MB, và dự án của bạn ít dữ liệu nên có thể 8 tiếng chưa đầy. Máy reset đột ngột thì phần đó mất, khớp với khoảng trống từ 07:00 đến 15:00 trong báo cáo.

    Các thay đổi:

    • History.cs và AlarmStore.cs: đổi sang synchronous=FULL và wal_autocheckpoint=200, để mỗi lần ghi lô (vài giây một lần) được ép xuống đĩa ngay.
    • History.cs: thêm Checkpoint(), tự đẩy WAL vào file chính khoảng 20 giây một lần, không chặn việc ghi hay đọc.
    • AlarmStore.cs: tự checkpoint khoảng 20 giây một lần ở cuối Flush().
    • ScadaEngine.cs: khi chương trình dừng bình thường thì flush rồi checkpoint lần cuối.

    Lưu ý:

    • Dữ liệu 07:00–15:00 đã mất trước khi sửa thì không lấy lại được. Bản sửa chỉ bảo vệ từ nay về sau.
    • Để kiểm tra: chạy bản mới vài phút rồi tắt tiến trình đột ngột (kill, không qua Shutdown). Dữ liệu những phút đó vẫn phải còn trong báo cáo.
    • Nếu sau bản sửa vẫn mất dữ liệu, gửi mình thư mục history (history.db, history.db-wal) và log lúc khởi động lại để mình kiểm tra tiếp.Ưu điểm so với code cũ
      • Không mất dữ liệu khi reset đột ngột: code cũ có thể mất vài giờ dữ liệu chưa được ép xuống đĩa. Code mới chỉ có thể mất khoảng vài giây cuối, tức một chu kỳ Flush (FlushSec, 1–60 giây).
      • Áp dụng cho cả alarm: AlarmStore có cùng lỗi nên giờ cũng được bảo vệ, cả lịch sử alarm lẫn trạng thái Ack.
      • File .db-wal không phình to: trước đây WAL có thể tích tụ nhiều giờ, còn bây giờ được dọn đều đặn.
      • Tắt đúng cách thì sạch hơn: lúc dừng chương trình có checkpoint lần cuối, nên file history.db đầy đủ ngay, copy hay backup không phải kèm file WAL.

      Nhược điểm

      • Tốn đĩa hơn một chút: synchronous=FULL ép đĩa (fsync) mỗi lần commit. Mỗi lô Flush là một commit (vài giây một lần), nên 2693 tag cũng không đáng kể. Chỉ đáng lưu ý nếu ổ đĩa rất chậm, như thẻ SD hoặc ổ mạng; bạn có thể tăng FlushSec để giảm số lần ghi.
      • Ghi thêm dữ liệu so với trước: mỗi 20 giây có checkpoint, chép dữ liệu từ WAL sang file chính. Mình đặt chế độ PASSIVE nên không chặn đọc/ghi, chỉ thêm một chút I/O nền.
      • Mỗi lần Flush chậm hơn chút: vì chờ đĩa xác nhận ghi xong. Việc này chạy ở luồng engine, nên nếu đĩa bị nghẽn thì vòng lặp đọc tag có thể trễ vài chục mili-giây.
      • Vẫn không bảo vệ tuyệt đối: dữ liệu còn trong hàng chờ bộ nhớ (chưa Flush) vẫn mất nếu máy tắt ngay lúc đó, thường chỉ vài giây. Muốn giảm thêm thì giảm FlushSec, đổi lại ghi đĩa thường xuyên hơn.

      Mình chưa đo hiệu năng trên máy của bạn, nên các nhận xét về tốc độ là ước lượng theo cách SQLite hoạt động. Nên theo dõi thời gian vòng lặp engine vài giờ sau khi chạy bản mới.

    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# thiết bị phụ
        • 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ều tốc EVN
        • Đồ đ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

          • PHẦN MỀM LẬP TRÌNH HMI PROFACE FULL VERSION
            PHẦN MỀM LẬP TRÌNH HMI PROFACE FULL VERSION 12
            03 thg 3, 2020

            HMI Việt Nam  Tổng hợp phần mềm lập trình màn hình cảm ứng HMI Proface Full đầy đủ đời cổ GP2000 ( GP-PRO/PB III   C-Package03  ) đến GP300...

          • cách cài thingboard
            cách cài thingboard
            01 thg 2, 2026

             Ok 👍 cài ThingsBoard trên Windows 10 nhé — mình viết lại đúng chuẩn Win 10 , dễ làm, không lan man. 🚀 CÀI THINGSBOARD TRÊN WINDOWS 10 (O...

          • DOWNLOAD KEPWARE OPC SERVER – KEPSERVEREX V6 FULL 2021
            DOWNLOAD KEPWARE OPC SERVER – KEPSERVEREX V6 FULL 2021
            18 thg 5, 2021

              KEPServerEX   thường được biết đến với tên gọi quen thuộc   Kepware OPC Server –  phần mềm OPC nổi tiếng tới từ hãng Kepware.  KEPServerEX...

          • Git khác gì tải folder + chạy .exe trong ThingsBoard?
            Git khác gì tải folder + chạy .exe trong ThingsBoard?
            17 thg 2, 2026

             Câu này rất đúng trọng tâm 👍 Mình trả lời ngắn – rõ – đúng bản chất , để bạn biết vì sao sửa logo/title mà không được . 🔥 Git khác gì...

          • Cài bios tự động bật máy tính
            Cài bios tự động bật máy tính
            01 thg 7, 2025

              ChatGPT Bạn đã nói: Cách cài đặt cứ có nguồn tự động bật máy tính ChatGPT đã nói: Để  cài đặt máy tính tự động bật khi có nguồn điện (Powe...

          • Tệp và hình ảnh được lưu trong bộ nhớ đệm (đây chính là cache), để vào thingboard
            Tệp và hình ảnh được lưu trong bộ nhớ đệm (đây chính là cache), để vào thingboard
            24 thg 2, 2026

             Bạn đang ở đúng màn hình rồi 👍 (Xóa dữ liệu duyệt web). Để xóa cache trong Chrome , làm như sau: Cách nhanh nhất: Nhấn Ctrl + Shift +...

          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