亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

工控報表系統(tǒng)自研實(shí)踐:突破組態(tài)軟件限制的架構(gòu)設(shè)計與實(shí)現(xiàn)

工控報表系統(tǒng)自研實(shí)踐:突破組態(tài)軟件限制的架構(gòu)設(shè)計與實(shí)現(xiàn) 1. 這套報表系統(tǒng)到底解決什么問題1.1 組態(tài)軟件自帶的報表為什么越用越難受在工控這個圈子里待久了我相信不少同行都有過類似的體驗(yàn)項(xiàng)目要上線了甲方提了一堆報表需求——周期報表、趨勢報表、能耗報表、交接班報表每一樣都不一樣。組態(tài)軟件自帶的報表功能呢也能做但總感覺是在將就著用。單元格合并、跨表聯(lián)查、按工單維度匯總這些稍微復(fù)雜一點(diǎn)的需求在組態(tài)軟件里做起來特別費(fèi)勁改一次要重新編譯下載一次版本管理也是一團(tuán)亂麻。我做了幾年上位機(jī)項(xiàng)目最初也老老實(shí)實(shí)依托組態(tài)軟件做報表后來發(fā)現(xiàn)這條路越走越窄。歸納了一下組態(tài)軟件自帶報表的限制主要卡在四個地方。第一模板和工程深度耦合。報表模板是嵌在組態(tài)工程里的意味著你要加一個字段、改一個表頭、調(diào)整一次統(tǒng)計口徑就得進(jìn)組態(tài)開發(fā)環(huán)境改工程文件然后再編譯、下載、運(yùn)行。在項(xiàng)目調(diào)試期這種改動幾乎天天都有每次都走這套流程非常消耗精力而且容易把人搞崩潰。第二數(shù)據(jù)源非常封閉。組態(tài)軟件自帶的報表一般只能引用自己內(nèi)部定義的變量點(diǎn)比如壓力、溫度、流量這些實(shí)時值。可實(shí)際的報表需求往往會涉及外部數(shù)據(jù)比如MES下發(fā)過來的工單號、ERP里的物料編碼、人工錄入的質(zhì)檢結(jié)果這些數(shù)據(jù)組態(tài)軟件根本拿不到。數(shù)據(jù)源不打通報表就只能局限在設(shè)備實(shí)時數(shù)據(jù)這個圈子里做一個孤島。第三打印和導(dǎo)出能力弱。組態(tài)軟件的報表模塊普遍重顯示、輕排版做一張符合甲方格式規(guī)范的驗(yàn)收單需要花費(fèi)大量時間調(diào)格式。很多組態(tài)自帶的表格控件連精確控制行高、合并單元格、分頁打印都做不到更不用說批量導(dǎo)出成Excel、PDF交給第三方系統(tǒng)歸檔了。第四升級與維護(hù)坑多。工程一旦換了版本或者換了電腦報表要跟著重新配一遍。項(xiàng)目多了以后各個工程里的報表邏輯互相沒有復(fù)用性同樣的改動要在不同項(xiàng)目里重復(fù)操作維護(hù)成本極高。坦白講這些痛點(diǎn)單拎出來哪一條都不致命但疊加在一起就讓人非常難受了。所以我后來做了一個決定干脆自己寫一套獨(dú)立的PC端報表系統(tǒng)把數(shù)據(jù)呈現(xiàn)徹底從組態(tài)軟件里解放出來。1.2 項(xiàng)目啟動從三條現(xiàn)場需求說起這個自研項(xiàng)目不是憑空拍腦袋的起因是某條產(chǎn)線項(xiàng)目提出了三個比較典型的需求讓我意識到繼續(xù)依賴組態(tài)報表不是長久之計。第一個需求是跨系統(tǒng)聯(lián)查??蛻粝M請蟊砝锊粌H顯示每臺設(shè)備的運(yùn)行時長、報警條數(shù)還要把當(dāng)天對應(yīng)工單的批次號、良品率、操作班組一起列出來。這些數(shù)據(jù)一部分來自PLC采集一部分來自MES數(shù)據(jù)庫還有一部分是人工錄入的Excel臺賬。組態(tài)軟件要做這種跨系統(tǒng)關(guān)聯(lián)基本只能靠腳本硬湊而且維護(hù)邏輯非常脆弱。第二個需求是按班組維度的能耗統(tǒng)計??蛻粢竺總€班次單獨(dú)統(tǒng)計水、電、氣的累計用量需要按照早班、中班、夜班的班次時間切分而不是簡單的按自然天切分。組態(tài)軟件的報表只能按固定時間窗口出數(shù)不支持自定義班次時間表做出來的報表口徑對不上現(xiàn)場就會扯皮。第三個需求是歷史審計追溯。客戶要求任意時間點(diǎn)、任意設(shè)備的歷史數(shù)據(jù)快照必須能精確回溯并且導(dǎo)出的報表要帶查詢條件、生成時間、操作人等信息。這已經(jīng)超出了組態(tài)軟件報表模塊的能力范圍更像是一個獨(dú)立的數(shù)據(jù)服務(wù)系統(tǒng)。接到這三個需求之后我把方案擺到桌面上評估繼續(xù)在組態(tài)軟件里做報表開發(fā)周期長、維護(hù)成本高而且大概率不能滿足甲方格式上的要求買一套現(xiàn)成的商業(yè)化報表工具又面臨授權(quán)費(fèi)高、二次開發(fā)和組態(tài)數(shù)據(jù)對接的復(fù)雜問題。反復(fù)比較之后我決定走自研這條路基于現(xiàn)有數(shù)據(jù)采集架構(gòu)開發(fā)一套以PC客戶端為主、服務(wù)端為輔的獨(dú)立通用報表系統(tǒng)。1.3 方案選型為什么不用花架子只選能落地的技術(shù)組合自研報表系統(tǒng)第一件事不是寫代碼而是把技術(shù)棧和部署形態(tài)定下來。我當(dāng)時的選型原則很樸素不追求新潮只求穩(wěn)定、可控、現(xiàn)場好維護(hù)。開發(fā)框架選了C# WinForms。雖然業(yè)界有更時髦的WPF、Electron但WinForms開發(fā)效率高部署簡單在工控機(jī)的低配置環(huán)境下表現(xiàn)也穩(wěn)定而且做表格類界面沒有太多復(fù)雜渲染需求。我們團(tuán)隊(duì)對C#最熟后期維護(hù)不會有上手成本。數(shù)據(jù)存儲分兩層。實(shí)時數(shù)據(jù)入歷史庫我先用SQLite做本地歸檔同時保留一個MySQL實(shí)例用于跨系統(tǒng)的業(yè)務(wù)數(shù)據(jù)關(guān)聯(lián)。SQLite適合單機(jī)部署、免安裝、性能足夠MySQL用于項(xiàng)目里已經(jīng)存在的業(yè)務(wù)系統(tǒng)對接。后面如果遇到海量時序數(shù)據(jù)場景可以再引入專門的時序數(shù)據(jù)庫但核心的報表查詢邏輯要封裝在獨(dú)立的數(shù)據(jù)訪問層里避免和具體的存儲引擎綁定死。報表引擎沒有用商用的報表組件也刻意避開了復(fù)雜的報表設(shè)計器而是自己封裝了一套基于DataGridView二次開發(fā)的網(wǎng)格渲染控件同時結(jié)合輕量級的模板定義文件來描述報表布局。這樣做的原因很簡單工控報表的結(jié)構(gòu)相對規(guī)整行數(shù)、列數(shù)、合并需求遠(yuǎn)遠(yuǎn)沒有財務(wù)系統(tǒng)的復(fù)雜報表那么夸張自研控件的靈活性反而更高想怎么改都是自己說了算。導(dǎo)出方案用了開源庫NPOI專門處理Excel文件讀寫。選擇NPOI而不是讓客戶端依賴Office COM組件是為了避免現(xiàn)場機(jī)器沒裝Office時程序直接崩掉。NPOI純托管代碼不依賴Office環(huán)境導(dǎo)出大文件也夠穩(wěn)定。這套組合看起來不fancy但它有一個很關(guān)鍵的優(yōu)勢——每一層我都能控制出了問題能自己動手解決。設(shè)備和組態(tài)、組態(tài)和報表數(shù)據(jù)庫之間的數(shù)據(jù)鏈路全部掌握在手里甲方提需求的時候我們改的是自己的代碼而不是想方設(shè)法去遷就組態(tài)軟件的限制。2. 系統(tǒng)架構(gòu)四層數(shù)據(jù)鏈路與核心抽象2.1 數(shù)據(jù)采集層先把數(shù)據(jù)從組態(tài)軟件手里拿回來傳統(tǒng)思路是讓組態(tài)軟件既做采集又做存儲又做展示什么都干。自研報表系統(tǒng)要做的第一件事就是打破這種大一統(tǒng)架構(gòu)把數(shù)據(jù)從組態(tài)軟件手里解放出來。我在項(xiàng)目里的做法是在采集層面增加一個獨(dú)立的采集網(wǎng)關(guān)通過OPC UA或者M(jìn)odbus TCP協(xié)議直接讀設(shè)備點(diǎn)位設(shè)備點(diǎn)位、采集周期、報警規(guī)則都配置在網(wǎng)關(guān)側(cè)。數(shù)據(jù)采集到之后網(wǎng)關(guān)同時做兩件事一份實(shí)時推送給組態(tài)軟件做畫面監(jiān)控一份寫入歷史數(shù)據(jù)庫供報表系統(tǒng)使用。這樣做的好處非常明顯組態(tài)軟件哪怕崩潰了、重啟了報表系統(tǒng)照樣能從歷史庫里取數(shù)互不牽連。關(guān)于采集網(wǎng)關(guān)和歷史庫的數(shù)據(jù)交互我踩過一個坑一開始直接用組態(tài)軟件的ODBC接口往數(shù)據(jù)庫寫歷史數(shù)據(jù)導(dǎo)致組態(tài)和報表強(qiáng)綁定組態(tài)有故障數(shù)據(jù)就不完整了。后來改成獨(dú)立網(wǎng)關(guān)直接采集、獨(dú)立鏈路寫庫報表數(shù)據(jù)才真正做到獨(dú)立可靠?,F(xiàn)場遇到通信斷線的情況網(wǎng)關(guān)側(cè)還做了本地緩存和斷點(diǎn)續(xù)傳歷史數(shù)據(jù)一條都不會缺。2.2 存儲層歷史歸檔與統(tǒng)計查詢的分工協(xié)作存儲層的核心準(zhǔn)則是不要把實(shí)時明細(xì)數(shù)據(jù)和統(tǒng)計報表數(shù)據(jù)混在一個表里硬扛。實(shí)時歷史數(shù)據(jù)的特點(diǎn)是寫入頻繁、單條數(shù)據(jù)量小、量大查詢時往往需要做時間范圍的聚合而報表數(shù)據(jù)的特點(diǎn)是查詢頻率高、要求響應(yīng)快、格式相對固定。我采用的方案是雙區(qū)存儲明細(xì)區(qū)放原始采樣數(shù)據(jù)表結(jié)構(gòu)非常精簡一般只有時間戳、點(diǎn)位ID、數(shù)值、質(zhì)量戳幾個字段統(tǒng)計區(qū)放定時任務(wù)預(yù)計算出來的日/周/月匯總數(shù)據(jù)比如設(shè)備日運(yùn)行時長、日均溫度、累計流量等。報表查詢時優(yōu)先走統(tǒng)計區(qū)只有做明細(xì)穿透時才會去查原始數(shù)據(jù)區(qū)。對于存儲引擎的選擇我整理了一個對比思路單機(jī)小項(xiàng)目用SQLite起步零配置、復(fù)制即用有并發(fā)寫入需求、又希望和現(xiàn)有業(yè)務(wù)系統(tǒng)共享數(shù)據(jù)時切到MySQL如果單日采集點(diǎn)位數(shù)超過幾百萬條而且需要長時間保留就要考慮時序數(shù)據(jù)庫。下面這個表是我在不同項(xiàng)目里總結(jié)出來的選型參考場景推薦存儲原因單機(jī)部署、點(diǎn)數(shù)少于500、保留時間短SQLite免安裝、備份簡單、性能足夠多客戶端并發(fā)訪問、需要對接業(yè)務(wù)系統(tǒng)MySQL并發(fā)好、生態(tài)成熟、權(quán)限方便海量采樣點(diǎn)、秒級采集、長期歸檔時序數(shù)據(jù)庫壓縮率高、聚合查詢快不過無論選哪種報表系統(tǒng)的查詢邏輯都要封裝在數(shù)據(jù)訪問層里不要直接散落SQL。這樣才能做到存儲層隨時可替換不影響上層的報表模板。2.3 報表服務(wù)層時間軸是核心抽象報表系統(tǒng)的服務(wù)層說白了就是一件核心的事把業(yè)務(wù)人員想要的指標(biāo)以正確的時間維度算出來。工控報表跟普通管理報表最大的差異在于所有數(shù)據(jù)都是依附時間軸存在的。沒有時間概念的報表是沒有意義的。所以我做了一件事把時間軸抽象成了一個獨(dú)立的維度對象它不只是一個開始時間和結(jié)束時間而是一套可以按規(guī)則拆分的區(qū)間集合。比如按自然日拆分按小時拆分按班次拆分按周拆分甚至按自定義日期范圍拆分。每個時間區(qū)間配合聚合函數(shù)平均值、累計值、最大值、最小值、首末值、計數(shù)等就可以生成一組行列數(shù)據(jù)。這塊抽象是自研報表系統(tǒng)超越組態(tài)軟件的關(guān)鍵。組態(tài)軟件做報表的時候時間窗口是死的要么只能選某個固定時間段要么只能按固定的日歷周期出數(shù)。而自研系統(tǒng)把時間區(qū)間拆成了可配置的模板參數(shù)你可以在報表模板里定義行表頭是設(shè)備列表頭是班次單元格數(shù)據(jù)是班次內(nèi)的累計流量這樣一張班組能耗表就出來了。再換一個模板行表頭是日期列表頭是設(shè)備單元格是日均溫度一張溫度趨勢表又出來了。配置化設(shè)計靈活性完全掌握在自己手里。2.4 客戶端展示層自研網(wǎng)格控件和圖表聯(lián)動展示層需要在用戶界面上同時呈現(xiàn)表格數(shù)據(jù)和圖表趨勢。表格部分我沒有直接拿原生的DataGridView裸用而是做了一層封裝實(shí)現(xiàn)了幾個關(guān)鍵能力按行按列合并單元格、自定義表頭多層結(jié)構(gòu)、單元格背景色按數(shù)值范圍自動著色、行列凍結(jié)。圖表部分選擇了輕量級的開源圖表庫按時間序列顯示趨勢曲線。更重要的是圖表的查詢參數(shù)和表格共用同一個查詢上下文。用戶在界面上選定時間段、勾選設(shè)備后表格和曲線同時刷新。點(diǎn)擊表格的某一行曲線圖上自動高亮對應(yīng)時段洞察異常點(diǎn)的效率明顯提升。這些交互體驗(yàn)組態(tài)軟件自帶的報表模塊基本做不出來恰恰也是甲方看到實(shí)物后最認(rèn)可的部分。3. 報表生成核心機(jī)制模板化與動態(tài)查詢3.1 模板-區(qū)塊-字段三層模型自研通用報表系統(tǒng)的一個核心設(shè)計思路就是讓報表的定義和代碼完全分離。我把一張報表拆分成了三個層次模板、區(qū)塊、字段。模板是報表的頂層容器定義了報表的名稱、紙張大小、頁邊距、數(shù)據(jù)源連接信息、關(guān)聯(lián)的時間軸規(guī)則。一個模板對應(yīng)一個表格式的XML或JSON配置文件新增一張報表本質(zhì)上就是新增一個配置文件而不需要改代碼。區(qū)塊是模板內(nèi)部的組成單元。一張報表可以包含多個區(qū)塊常見的有表格區(qū)塊、圖表區(qū)塊、文本區(qū)塊和簽名區(qū)塊。比如一張日常生產(chǎn)報表最上方是文本區(qū)塊顯示報表名稱、生成日期、制表人中間是表格區(qū)塊列出各設(shè)備的運(yùn)行參數(shù)下方可以是圖表區(qū)塊展示趨勢曲線最后是簽名區(qū)塊給現(xiàn)場人員簽字用。區(qū)塊之間可以縱向排列也可以左右排列。字段是最細(xì)粒度的綁定單元。表格區(qū)塊的每一行、每一列、每個單元格都綁定到具體的查詢結(jié)果字段或者聚合函數(shù)。例如“設(shè)備名稱”綁定點(diǎn)位名稱字段“班次累計流量”綁定流量點(diǎn)位的SUM聚合結(jié)果“運(yùn)行時長”綁定設(shè)備運(yùn)行狀態(tài)的計時字段。這里的字段綁定完全通過配置完成業(yè)務(wù)人員經(jīng)過簡單培訓(xùn)后也能自己拖一個字段出來看數(shù)據(jù)。3.2 動態(tài)查詢參數(shù)化拼接別讓SQL裸奔報表系統(tǒng)的核心能力在于查詢不是固定的同一個模板換了參數(shù)就能出完全不同的報表。為了實(shí)現(xiàn)這一點(diǎn)我把查詢語句做了參數(shù)化處理。模板里定義的不是寫死的SQL而是一組查詢片段每個片段對應(yīng)一個查詢語義系統(tǒng)在運(yùn)行時根據(jù)報表參數(shù)將片段拼接成完整的查詢命令。比如能耗報表的模板里定義了一個查詢片段“{時間區(qū)間} 內(nèi)設(shè)備 {設(shè)備列表} 的 {點(diǎn)位列表} 按 {聚合粒度} 計算 {聚合函數(shù)}”。點(diǎn)擊查詢按鈕之后系統(tǒng)把時間段、設(shè)備清單、點(diǎn)位清單、聚合粒度、聚合函數(shù)這些參數(shù)替換進(jìn)去生成一條帶參數(shù)化占位符的SQL再交給數(shù)據(jù)庫執(zhí)行。這里有個很重要的經(jīng)驗(yàn)動態(tài)拼接SQL時無論模板怎么動態(tài)用戶輸入條件必須用參數(shù)化方式傳值絕不能把界面輸入的文本直接拼接進(jìn)SQL字符串。有一次我為了省事直接把前端傳入的日期范圍格式化后拼進(jìn)SQL結(jié)果有人故意傳了一段特殊字符直接把整張報表的表結(jié)構(gòu)暴露出來了。從那以后所有前端傳參一律走參數(shù)化寧可多寫幾行代碼也不能留這種安全漏洞。支持的聚合函數(shù)也要封裝成一個白名單比如AVG、SUM、MIN、MAX、COUNT、FIRST、LAST和RATE。RATE這個函數(shù)是自定義的用來計算變化率比如溫度從T1時刻到T2時刻的升溫速率這在工藝分析報表里非常常用。這樣就算現(xiàn)場提出一些特殊統(tǒng)計口徑也不需要改代碼只要在函數(shù)庫新增一個函數(shù)即可。3.3 數(shù)據(jù)對齊與插值解決采樣周期不一致的難題做過工控項(xiàng)目的人都知道設(shè)備采樣周期往往五花八門。有些溫度點(diǎn)1秒采一次有些壓力點(diǎn)2秒采一次有些能耗表可能是5分鐘跳一次字。要做多點(diǎn)的聯(lián)合報表第一個難題就是數(shù)據(jù)對齊。如果不做任何處理直接按原始時間戳拼接出來的報表就是一堆稀疏數(shù)據(jù)根本無法分析。我在系統(tǒng)里內(nèi)置了三種對齊策略根據(jù)場景自動選擇。精確對齊策略適用于所有點(diǎn)位采樣周期一致的情況直接按時間戳取同一時刻的記錄。這種最簡單但現(xiàn)場很少見。前值填充策略適用于慢變點(diǎn)位比如液位、溫度。如果某個時刻點(diǎn)沒有采樣記錄就沿用最近一條數(shù)據(jù)直到出現(xiàn)新數(shù)據(jù)。用生活類比這就像等公交車你看了一眼站牌車還沒來等了兩分鐘車還是沒來這段時間的站牌信息就等同于剛才那一眼看到的信息。線性插值策略適用于快速變化的物理量比如流量、壓力波動。如果某個點(diǎn)位缺少中間采樣點(diǎn)就按照前后兩點(diǎn)做線性插值補(bǔ)齊。這種策略在繪制趨勢曲線時最常用曲線更平滑也更能反映真實(shí)過程。比如說一個流量點(diǎn)在10:00:00記錄為10立方米/小時在10:00:06記錄為16立方米/小時系統(tǒng)要把10:00:03的數(shù)值補(bǔ)出來就按線性關(guān)系算出來約13立方米/小時。三種策略的選擇不是靠感覺而是可以在點(diǎn)位配置里單獨(dú)指定。報表引擎會先檢查點(diǎn)位配置的對齊策略再決定對缺失數(shù)據(jù)采取哪種方式處理。3.4 快照、累計量與越限時長的計算細(xì)節(jié)工控報表和一般業(yè)務(wù)報表還有一個重要的不同很多數(shù)據(jù)不是普通的數(shù)值而是有特殊語義的量。比如液位計當(dāng)前值這是一個快照量報表里展示的應(yīng)該是某個時刻點(diǎn)的瞬時值電表讀數(shù)、流量計累計值這是累計量報表里需要展示的是兩個時刻之間的差值還有設(shè)備運(yùn)行狀態(tài)這是一個布爾量報表里往往需要統(tǒng)計的是異常持續(xù)時間。快照量的處理比較簡單就是取時間區(qū)間內(nèi)的最后一個有效值。但要特別注意質(zhì)量戳如果最后一條數(shù)據(jù)質(zhì)量標(biāo)志為壞值系統(tǒng)要自動追溯往前找最近的有效值否則報表會莫名其妙出現(xiàn)一個巨大的異常值。累計量的處理要復(fù)雜得多。累計量讀數(shù)一般是單調(diào)遞增的但現(xiàn)場經(jīng)常會發(fā)生換表、清零、撥碼溢位的情況。處理邏輯是先把原始讀數(shù)轉(zhuǎn)成差分序列同時檢測序列中的非正常回退如果讀數(shù)相比上一條變小了說明可能換表或者溢出了此時不是把差值算成負(fù)數(shù)而是根據(jù)量程范圍做正向補(bǔ)償。舉個例子一塊電表量程0到10000度本次讀數(shù)800上次讀數(shù)9800正確的消耗值應(yīng)該是(10000 - 9800) 800 1000度而不是等于負(fù)的9000度。類似的邊界處理如果不提前做報表出來的累計量會完全沒法看。越限時長的統(tǒng)計也比較巧妙。比如要統(tǒng)計一個溫度點(diǎn)在一天內(nèi)超過80℃的累計時長系統(tǒng)會把溫度采樣序列按照時間區(qū)間切片然后數(shù)一下哪些區(qū)間段的數(shù)值超過了閾值把這些區(qū)間的時長加總。這里要區(qū)分瞬時越限和持續(xù)越限持續(xù)越限一般要求連續(xù)超過某個時間后才開始計時比如持續(xù)超過5分鐘才算報警。這個規(guī)則也可以在模板里配置非常靈活。4. 跨系統(tǒng)接口與部署形態(tài)4.1 三種對接方式讓報表系統(tǒng)融入既有的系統(tǒng)環(huán)境自研報表系統(tǒng)最大的好處之一就是沒有歷史包袱對外接口可以按需設(shè)計。我在實(shí)際項(xiàng)目里總結(jié)了三種常見的對接方式。數(shù)據(jù)庫直連是最直接的方式也是最常用的方式。報表系統(tǒng)直接訪問業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫表比如MES的工單表、ERP的物料表、質(zhì)檢系統(tǒng)的檢驗(yàn)記錄表。這種方式實(shí)現(xiàn)簡單查詢性能也好適合系統(tǒng)之間網(wǎng)絡(luò)互通、數(shù)據(jù)庫權(quán)限可控的場景。我通常會單獨(dú)建立一個只讀賬號給報表系統(tǒng)使用從權(quán)限上約束住避免誤操作影響業(yè)務(wù)庫。OPC UA Server方式適用于需要從設(shè)備層實(shí)時取數(shù)的場景。我們的報表系統(tǒng)內(nèi)置了一個輕量級的OPC UA客戶端可以直接訂閱現(xiàn)場設(shè)備的實(shí)時點(diǎn)位用于生成實(shí)時快照報表或者觸發(fā)采集。這種方式不依賴組態(tài)軟件即使組態(tài)軟件停機(jī)維護(hù)報表系統(tǒng)仍然能從設(shè)備端獨(dú)立取得數(shù)據(jù)。REST API方式適用于跨部門、跨網(wǎng)絡(luò)的集成。我會把報表系統(tǒng)的一些核心查詢能力封裝成HTTP接口比如“按時間范圍查詢某設(shè)備的匯總數(shù)據(jù)”、“按工單號查詢生產(chǎn)記錄”。這樣其他系統(tǒng)通過簡單的HTTP請求就能拿到結(jié)構(gòu)化的JSON數(shù)據(jù)而不需要直接訪問數(shù)據(jù)庫。第三種方式在公司內(nèi)部的綜合看板項(xiàng)目里非常好用大屏展示系統(tǒng)只需要定時調(diào)用接口刷新數(shù)據(jù)完全不關(guān)心底層數(shù)據(jù)存哪里。4.2 部署形態(tài)免安裝綠色版和三級權(quán)限工控現(xiàn)場最怕的是什么是需要裝一堆運(yùn)行庫、框架還得配環(huán)境變量。為了最大限度減少現(xiàn)場部署的阻力我采用了綠色免安裝的部署方案編譯好的程序、配置文件、數(shù)據(jù)庫文件放在同一個目錄下拷貝到任意一臺工控機(jī)上修改一下數(shù)據(jù)庫連接串雙擊exe就能運(yùn)行。升級的時候直接替換exe和依賴文件數(shù)據(jù)庫結(jié)構(gòu)不變十幾秒搞定完全不影響正在運(yùn)行的生產(chǎn)。系統(tǒng)內(nèi)置了三類角色權(quán)限。查看角色只能瀏覽報表數(shù)據(jù)不能導(dǎo)出、不能修改模板操作角色可以導(dǎo)出報表、調(diào)整查詢參數(shù)但不能修改模板結(jié)構(gòu)管理員角色擁有全部權(quán)限包括模板維護(hù)、點(diǎn)位配置、用戶管理。權(quán)限體系直接保存在數(shù)據(jù)庫里登錄時校驗(yàn)越權(quán)操作會被拒絕。這里有一個小細(xì)節(jié)值得分享權(quán)限控制不只在前端隱藏按鈕更要在后端服務(wù)層做二次校驗(yàn)。前端界面可以騙人但每個報表查詢、導(dǎo)出請求到了服務(wù)端都會再次校驗(yàn)當(dāng)前用戶的角色這樣就算有人繞過了界面直接發(fā)請求也拿不到他沒權(quán)限的數(shù)據(jù)。4.3 定時任務(wù)讓報表自己跑起來如果把報表系統(tǒng)做成一個純工具軟件那些每天都要生成的日報、周報、月報就會變成人工負(fù)擔(dān)。所以我把定時任務(wù)功能也內(nèi)置到了系統(tǒng)里。定時任務(wù)模塊的核心是一個調(diào)度器支持每天、每小時、每周固定時間觸發(fā)報表生成。觸發(fā)之后系統(tǒng)讀取模板配置、執(zhí)行查詢、渲染報表、導(dǎo)出文件最后按設(shè)定的分發(fā)方式處理結(jié)果。分發(fā)方式有三種保存到本地目錄、發(fā)送郵件給指定列表、通過FTP上傳到服務(wù)器。實(shí)際應(yīng)用中很多項(xiàng)目都要求報表在每天早上7點(diǎn)前自動生成并推送給管理層。有了定時任務(wù)系統(tǒng)在前一天夜里自動執(zhí)行查詢和導(dǎo)出早上6點(diǎn)55分生成文件7點(diǎn)整郵件推送全程不需要人工介入。配置界面上可以快速看到所有定時任務(wù)的最近執(zhí)行狀態(tài)、失敗原因便于排查。如果定時任務(wù)執(zhí)行失敗系統(tǒng)會自動重試兩次仍然失敗就發(fā)告警通知。這塊要特別強(qiáng)調(diào)告警通知必須獨(dú)立于報表系統(tǒng)本身郵件接口掛了不會導(dǎo)致告警發(fā)不出去我一般直接把告警也接入到現(xiàn)場的聲光報警系統(tǒng)里故障出現(xiàn)了能第一時間被值班人員發(fā)現(xiàn)。5. 實(shí)施中的踩坑記錄與排查速查5.1 半小時聚合數(shù)值對不上的謎案項(xiàng)目上線不久甲方反映一個很奇怪的問題某設(shè)備的半小時電耗報表上午的數(shù)據(jù)是對的下午的偶爾對不上同一時間段的匯總有時多有時少完全沒有規(guī)律。我排查了很久才定位到問題根子出在時間戳的邊界處理上。采集網(wǎng)關(guān)在跨整點(diǎn)的時候會出現(xiàn)時間戳不穩(wěn)定的情況比如本應(yīng)在14:00:00整點(diǎn)寫入的記錄實(shí)際時間戳變成了前一天23:59:59或者是14:00:00.000但用了本地時區(qū)偏移計算后被劃分到了上一個半小時區(qū)間里。修復(fù)方式并不復(fù)雜但必須做兩件事一是聚合查詢時所有時間邊界的比較統(tǒng)一使用數(shù)據(jù)時間戳的整點(diǎn)對齊邏輯不允許依賴數(shù)據(jù)庫的時區(qū)隱式轉(zhuǎn)換二是對邊緣時間戳做哨兵處理比如統(tǒng)計14:00到14:30這個區(qū)間查詢條件寫成時間戳大于等于14:00:00且小于14:30:00而不是簡單截斷字符串。這個坑給了我一個深刻教訓(xùn)在做組態(tài)監(jiān)控時時間偏差一秒可能無所謂但在報表統(tǒng)計里邊界錯一條記錄整段數(shù)據(jù)的匯總就失真了。時間處理必須處處小心。5.2 導(dǎo)出大報表把界面卡死的尷尬時刻有一回甲方導(dǎo)一張全月所有設(shè)備的分鐘級數(shù)據(jù)匯總表表里有幾萬行數(shù)據(jù)客戶端界面直接卡死。原因很簡單我在UI線程里同步執(zhí)行了查詢和Excel生成的邏輯數(shù)據(jù)一多界面就不響應(yīng)了。后來我把整個報表生成流程改成了異步模式用戶點(diǎn)擊導(dǎo)出后界面立即切換到進(jìn)度條頁面后臺線程負(fù)責(zé)查詢、聚合、渲染、導(dǎo)出完成后彈窗提示文件保存路徑。同時數(shù)據(jù)查詢也做了分批處理不再一次性把幾萬行全部load進(jìn)內(nèi)存而是每次查詢5000行邊查邊處理邊處理邊釋放內(nèi)存占用大大降低。如果是導(dǎo)出ExcelNPOI在生成大數(shù)據(jù)量文件時也要注意按Sheet分批寫入不能一次性構(gòu)造完所有單元格再保存。我寫了一個通用的分批寫入方法實(shí)測下來20萬行數(shù)據(jù)的導(dǎo)出可以穩(wěn)定跑完內(nèi)存占用控制在500MB以內(nèi)。5.3 流量計累計量回退是怎么被搞定的某次做水流量統(tǒng)計報表甲方說周六的用水量數(shù)據(jù)明顯異常算出來是負(fù)數(shù)。我查了原始數(shù)據(jù)發(fā)現(xiàn)現(xiàn)場那塊流量計在周六早上由于通信故障被運(yùn)維人員更換了新表累計值從0開始累計舊表累計值停在了原來的數(shù)字上。數(shù)據(jù)本身沒有錯但差分算法把它當(dāng)成了一次負(fù)值。這個case促使我在累計量處理模塊里加了異?;赝藱z測當(dāng)差分序列出現(xiàn)負(fù)值時自動啟動換表監(jiān)測邏輯如果負(fù)值的絕對值接近上一時刻的讀數(shù)基本判定是發(fā)生了換表清零此時把這一段數(shù)據(jù)的差值按新的累計起點(diǎn)計算而不是按負(fù)值處理。后來這塊邏輯還擴(kuò)展成了可以配置的換表事件表運(yùn)維人員在界面上登記一次換表事件報表系統(tǒng)自動把換表前后的數(shù)據(jù)銜接正確財務(wù)報表再沒出現(xiàn)過這種問題。5.4 班次報表和交接班時間對不上怎么辦甲方要求按早班、中班、夜班出報表早班是08:00到16:00中班是16:00到00:00夜班是00:00到08:00這個需求在組態(tài)軟件里非常難做因?yàn)榻M態(tài)的時間軸只認(rèn)自然日。自研系統(tǒng)有了自定義時間軸支持實(shí)現(xiàn)起來一陣操作就搞定。我先在系統(tǒng)里建了一張班次定義表字段包括班次編號、開始時間、結(jié)束時間、班次名稱。查詢時報模板指定按班次時間軸切分系統(tǒng)先根據(jù)起始日期生成該日期的三個班次區(qū)間再對每個區(qū)間執(zhí)行聚合查詢最后把三個班次的數(shù)據(jù)分行展示。真正崩潰的是遇到跨月班次。比如6月30日的夜班是00:00到08:00但這個夜班其實(shí)屬于6月29日的晚班。如果不注意月底報表會把6月30日凌晨的數(shù)據(jù)算到6月30日的夜班里而按考勤口徑它應(yīng)該歸屬6月29日的夜班。處理方案是班次區(qū)間查詢時統(tǒng)一按照班次開始時刻所在日期來歸屬統(tǒng)計。有了這個規(guī)則月底數(shù)據(jù)才對得上。這個問題排查起來特別隱蔽不仔細(xì)看只會覺得數(shù)據(jù)差一點(diǎn)點(diǎn)但對不上就是口徑問題現(xiàn)場扯皮很頭疼。建議每個自研報表系統(tǒng)都提前把班次歸屬規(guī)則定義清楚別等到月底對賬了再抓瞎。5.5 實(shí)用問題排查速查表現(xiàn)象可能原因處理方案報表數(shù)據(jù)比儀表實(shí)際值偏大時間戳跨整點(diǎn)重復(fù)計數(shù)檢查時間邊界比較邏輯是否統(tǒng)一為左閉右開累計量出現(xiàn)負(fù)數(shù)換表、清零、溢位啟用累計量差分異常檢測和換表補(bǔ)償多設(shè)備報表同一時刻點(diǎn)數(shù)不一致采樣周期不同配置點(diǎn)位對齊策略前值填充或線性插值導(dǎo)出大文件時內(nèi)存暴漲一次加載全量數(shù)據(jù)分批查詢、分批寫Excel、后臺異步執(zhí)行報表偶爾出現(xiàn)巨大瞬時值質(zhì)量戳為壞值快照查詢增加質(zhì)量戳過濾和回退查找班次報表月底對上不賬跨月班次歸屬錯誤按班次開始時刻歸屬統(tǒng)計日期一個報表模板改完其他報表也被影響模板間共用了一個配置對象配置保存為值拷貝每次點(diǎn)擊生成獨(dú)立實(shí)例上面這些坑大部分是我在不同項(xiàng)目現(xiàn)場踩完之后才總結(jié)出來的。實(shí)際上報表系統(tǒng)做到后面最大的收獲不是那幾個功能而是掌握了一套面對各種數(shù)據(jù)場景都能兜底的思路。每次現(xiàn)場人員提需求我的第一反應(yīng)不再是“組態(tài)里能不能做”而是“這個數(shù)據(jù)從哪來、怎么對齊、怎么聚合成一張表”。如果你也在做類似的系統(tǒng)建議你也把這些問題沉淀成基礎(chǔ)工具和檢查清單日后再接手新項(xiàng)目會發(fā)現(xiàn)這套獨(dú)立報表系統(tǒng)真正能幫你省下大量重復(fù)勞動。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
蜜桃精品一区二区三区久在线| 亚洲成aⅴ人片不卡无码| 97人妻色| 久久 国产精品 一区| 亚州性9| 99在线啪| 97天天综合网| 天天综合~91入口| 欧美成人AⅤ大片在线观看| 国产999精品久久久| 鸥美精品一区二区久久婷婷| 日本大片日本一区二区免费高清| 天天摸夜夜添无码小视频| 女人18精品一区二区三区| 亚洲一二三精品久久网| 日本片日本片祼观看网站在线看中文版网页在线看 | 99色综合| 亚洲色综合| 国模不卡| 婷婷中文网| 日韩图区 偷拍| 国产精品嫩草久久久久| 久草精品国产99| 国产精品一区在线播放| 蜜臀无码一区二区| 国产精品久久久久久久久久久久久久久久 | 无码少妇精品一区二区60岁老人| 中日亚韩免费视频| 370p日韩欧美亚洲精品| 秋霞成人做爱| 无码国产Av| 色欲Av人妻精品一区二| 日韩三级天堂在线观看| 大香网站| 日韩黄色一区二区三区| 久草免费在线一区二区| 无套内射性感少妇视频| 最新欧洲欧美日本激情网站| 天天射影院| 99热最新网址| 97精品一二区| 亚洲城人男人的天堂| 东京太热久久久| 超AV色女| 亚洲日韩久久精品一区| 天天爱综合网| 超碰成人人人爽人人爽| 国产精品亚洲一级av第二区| 欧美一级黄片免费播放| 国产污视频麻豆传媒一区二区| 蜜臀在线免费观看在线免费观看| 国产日韩精品一区二区三区| 热久久国产精品视频大陆精品| 伊人久久久日韩一区| 欧美综合在线91| 无码男人天堂| 夜夜久久久| 天天网综合| 国产真实子伦对白| 天美麻花大全视频| 亚洲狼狼干综合1| 欧美日韩亚洲五月天婷婷| 欧美日韩人妻少妇 一区二区三区| 国产一区二区久久| 成人性生活高清视频在线播放| 欧美97| 26uuu偷拍亚洲欧洲综合| 精品中文字幕一区二区| 狠狠干狠狠色| 大香蕉宅男伊人| 国产精品不卡一区二区三区| 男人久久天堂| av无码av无码专区| 国产性刺激| 97久久天天综合色天天综合色电影| 国产女人9999| 中国AV美女| 一级性爱aaaa| 麻豆性爱视频在线播放| 色九九久九九| 波多野42部无码喷潮在线观看 | 日韩ab网| 亚洲国产精品成人久久蜜臀| 亚洲各类熟们中文字幕| 欧美一二在线| 酒色综合网| 国产黄片在线免费观看| 久久精品一区| 欧美色图亚洲色| 国产51色综合久久免费| 色女99一级片在线观看| 97亚洲中文| 奇米狠999| 亚洲熟女乱熟乱熟妇综合网二区| 国产精品福利视频| 亚洲国产精品久久久久婷婷青年| 男人天堂网站| 欧美 传媒 麻豆 日韩 偷拍| 亚洲综合欧美| 婷婷五月天基地| 91精品国久久久久久无码| 久久狠狠色噜噜狠狠狠狠97| 丁香五月久久| 久久精品一区二区一8| 最新日韩黄片| 色亚州人久干视频在线观看免费版| 久久久久国色αv免费观看| 日韩欧美成人综合在线| 天天综合影院91| 七月婷婷综合| 亚洲天堂另类美腿| 国产农村妇女精品| 日产狠狠干| 欧洲站一级二级三级h| 国产精品露脸在线观看| 婷婷久草| 91国产精品在线看| 葡萄牙性视频一二区| 一区二区三区激情在线观看| 韩国毛片一区二区三区| 99色在线视频| 探花视频免费观看国产专区| 亚洲天堂另类小说男人| 国产精品精品系列在线观看| 67194无码不卡| 淫荡网址| 操人妻逼91| 丰满人妻一区二区三区蜜桃视频| 91黑丝在线播放| 嗯嗯不要视频| 国产五码丝袜屁眼| 97综合在线| 亚洲色天堂九9| 91超碰人人操| 国产久久久久久| 特污免视频| 在线人成亚洲视频免费观看| 夜草欧美| 日韩性爱播放| 国产精品96久久久久久| 亚洲情色1区| 中文字幕AV乱伦| 国产肏屁眼视频| wwwxxx日本爽| 97亚洲在线| 91 丝袜在线| 超碰人人超在线观看| 大色网久久| 麻豆天美国美国产| 屌色在线97视频| 亚洲无码成人精品| 国产女大学生AV| 久久超碰av在线| 自拍偷拍2025在线观看 | 亚洲欧美激情另类色图| www.久久制服糖| AV色五月| 黄色二级片网站| 日韩 欧美 另类 人妻| 怡春院久久| 成人日韩中文字幕| 色五月婷婷五月天| 99在线无码精品秘 入口黑人| 国产精品伦理| 嗯嗯啊啊的视频| 激情开心五月天| 欧美人人曰人人操人人射射| 蜜臀久久99精品久久久久久酒店| 精品无码一二三四区| 乱老女人一区二区视频| 久久精品国产AV一区二区三区| 97超碰欧美手机在线| 欧美日韩性感| 久久五月视频| 中日亚韩免费视频| 香蕉欧美| 青娱乐91| 91麻豆天美| 热G综合热G中文| 欧美色图成人网一区二区| 国内三级自拍小视频在线观看 | 欧美日韩青操| 级品肉射| 亚洲男人的天堂网| 亚洲码和欧洲精品激情系列| www.色婷婷.com| 国产成人无码高清| 伊人网综合在线视频| 亚洲中文字幕在线视频一区二区| av激情亚洲五月天| 日夜伊人网| 国产高清在线自在拍69| 夫妻AV网站| 亚洲色图国产另类| 亚洲综合射| 亚洲高清视频在线观看| 欧美熟妇乱码在线一区| 欧美综合骚| 激情四射五月天| 九色婷婷| 性爱久久| 日本人体九九九九九九| 99丝袜福利在线播放| 97干在线视频| 啊啊啊啊嗯嗯嗯用力好爽 | 精品亚洲国产成人精品| 亚洲第一精品在线视频| 国产一级特黄大片处女| 日本成人A片免费看| 一级AV性爱| 性爱视频免费网址| 三级特黄60分钟播放| 中国一级操逼视频| 亚洲欧综合另类无码一区| 久久久久久亚洲Av无码| 一级久久性爱视频| 激情丁香五月| 久久只有精品一区二区三区| 精品美女少妇一区二区三区| 国产后入清纯| 一本久道久久综合狠狠爱一密臀精 | 91亚洲色图| 国产熟妇 码视频户外直播| 看日韩黄片| 综合亚洲欧美精品日韩?v| 12一15性XXXX粉嫩国产| 在线国产一区二区av| 久久精品国产免费观看99| 婷婷久月| 亚洲欧美setu| 欧美亚洲韩国视频十五区| 免费男人的天堂| 久久午夜色播影院免费高清| 91精品久久久久五月天精品| 欧美黄色片AAAAA| 五月天婷婷成人网| 国产精品欧美激在线| 中文字幕第23区| 日韩欧美麻豆 | 黄视频免费| 亚洲国产尤物yw在线观看| 日本色色色色色视频| 色婷婷电影网| 亚洲熟女乱色一区二区三区久久久 | 伊人宅男大香蕉| 亚洲国产精品无码AV久久| 8x福利精品第一福利视频导航| 3P乱轮视频| 久久综合99| 91熟女综合| 大香蕉中文201| 亚洲乱码精品一区二区| 激情五月天丁香| 黄呦呦在线| 欧美 日韩第一性色| 在线观看不卡一区二区三区| 色妺妺在线视频| 国产精品一级二级在线| 国产美女高潮| 成视频在线观看免费看| 午夜毛片高清免费不卡| 日韩欧无码一区二区三区免费不卡 | 亚洲福利中文字幕在线| 日韩在线97| 97网色| 一本一道vs波多野结衣| 欧美精品丝袜久久久中文字幕| 免费男人的天堂| 大黄片做爱的大的| 九九亚洲精品| 最新日本中文字幕| 久久日韩毛| 日韩干B| gogogo免费高清看中国国语| 亚洲AO在线| 天堂性色| 9久久9综合| 熟妇女伦乱视频| 中国东北熟女老太婆内谢| 7月婷婷综合| 性色综合网| 91精品丝袜在线观看| 久久国产精品熟女人妻| 国产精品一区二区久久精品| 蜜桃臀 后入 一区 二区 三区 在线| 99这里都是精品| 人妻一区视频| 青青草玖玖爱| 一区二区三区欧美激情| 久久精品国产97欧美精品亚洲| 中文字幕一区二区免费在线| 日本顶级天天操狠狠操夜夜操中文字幕| 人人爱人人乐人人操| 亚洲色图久久成人| 一起草三级AV电影在线观看| 中文字幕久久精视频久久大全| 新亚洲无码| 超碰97爽| 精品毛片av一区二区| 亚洲综合性感在线| 日本性爱少妇| 97伊人| 人妻久热在线| 天天做天天爱天天爽AV| 色天堂在线观看| 欧美十八禁视频| 久久9精品视频| 中日韩免费看男女操逼大全| 哈哈操电影AV| 久久精品国产亚洲AV无码做| 精品无码一区二区人妻久久蜜桃| 大香蕉久| 大茄子熟女AV导航| 五月丁香在线| 麻豆视频国产一区二区| 中文字幕一区二区三四五区日日骚| 91丨豆花丨熟女| 色踪合AV| 激情婷婷五月天| 国产精品美女久久久久久网站| 久草资源在线视频官方总站日韩丝袜美腿 | 蜜乳av首页| 加勒比海色香蕉婷婷| 啊啊啊好湿久久| 久草视频观看视频在线| 亚洲色欧| 亚洲一本色码中文字幕| www.色操逼| 加勒比综合| 国产精品国产| 欧洲综合视频| 亚洲图片偷拍视频区| 精品少妇999| 久操影视| 久热久一区二区三区| 热99这里只有精品| 中文字幕在线免费观看2| 老司机久久| 大香交伊人网| 波多野结衣先锋影音| 91狠狠综合网| 亚洲欧美国产精品久久久久久久| 一区| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 国产精品久久久啊| 综合欧美色图| 97资源站久久| 天天操天天7| 99精品丰满人妻无| www.色五月| 欧美综合娱乐久久| 欧美十八禁视频| 91亚洲色图| 久热精品在线| 风骚少妇视频中文字幕| 亚州春色| 欧美日韩国产男人| av麻豆啪啪| 操我啊啊啊啊啊| 热久久这里只有精品| 人妻81p| 国产精品国产亚洲区艳妇糸列| 色九色久| 蜜臀中文无码午夜| 欧美日韩国产精品久久色婷婷| 91中文精品日韩欧美在线| 天天爱天天韩国日本牛牛牛牛| 成人三一级一片aaa| J?P?NESEHD熟女熟妇伦| 五月丁香激情四射| 蜜乳AV免费观看| 青草成人免费视频一COm| 亚洲男人天堂2| 久久久久久裸体| 青青欧美| 国产精品一区在线播放| 97精品视频在线| 2003天天干夜夜操| 无码人妻毛片丰满熟妇精品区| 久草精品视频| 久久成人午夜狠狠| 大但人体久久久久| 久草电影网| 色偷偷综合91久久噜噜| 天操天操夜操夜月月年年操操| 青青青艹在线视频| 91精品少妇搡搡搡| 久草这里只有精品| 日韩一级欧美一级国产一级台湾| 东北女人无套内谢视频| 国产无马在线| 久久久久久日韩| 亚洲无码一二三区| 国产精品久久久久久久久AV大片 | 最新精品久久蜜桃| 91在线/欧洲| 搡老女人老91妇女熟女| 99久久免费看精品国产一区| 九久精品| 久久久国产av美女私房| 无码乱人伦中文视频| 911粉嫩人妻| 婷婷伊人綜合中文字幕| 最新一二三区视频| 国产精品久久久久久夜夜夜夜| 91劲爆| 色香av| 51国产午夜精品视频| 天天弄天天操| 久久XX| 日日夜夜骚| 免费超碰97久久| 国产精品伦理| 欧美十八禁视频| 午夜福利视频在线一区| 夜夜狼人妻| 青青草玖玖爱| 国产精品com| 亚洲欧洲精品视频发布| 口爆综合网| 欧美A√综合网 | 大香蕉99re| 凹凸视频在线一区二区| 亚欧性爱ab| 久久综合18p| 色色青青久久| 国产无码精品成人| www.久久爱| 国产精品。| 久久久久久加勒比| 日韩人妻播放| 一区,二区,三区网站| 91精品在线播放| 日韩有码 一区二区三区| 91精品国产麻豆国产自产在| 无码男人天堂| 黑人免费福利视频| 四虎永久在线精品免费网址 | 超碰人妻天天干| 亚洲免费精品一区| 亚州欧美在线| 日本亚洲熟女视频| 97一区二区三区视频| 亚洲一二三四区| 国产一区二区三区导航| 91美女视频在线| 日躁天天爽爽| 性爱视频久久| 夜夜黄| 日韩欧美国产高清视频| 欧美午夜视频| 中文人妻av高清一区| 欧美大码在线视频| 啊啊啊操死我| 特污免视频| 久久国产精品m码| 一区二区三区欧美激情| 欧美在线中M| 免费一级黄色录像影片| 超碰碰激情97+久| 伊人五月天婷婷| 九月AV| 91福利网在线观看| 久久久不能久久久久| 久 久无码人妻AV| 激情五月天色播| 欧美色91| 午夜精品一区二区三区三上悠亚| 成人三级片一区二区三区视频| 国产精品亚洲一区二区三区四区| 国产丝袜一区二区三区| 日本福利二区视频| 一区二区影视| 欧美久久草熟女| 永久电影三级在线观看| 久久嫩草国产成人一区| 日韩无码精品综合久久| 丝袜av一区二区三区| 九月丁香婷婷色| 噜噜噜亚洲精品| 逼逼逼逼操操操操操操操操操午夜剧场| 日韩国产十八禁| 亚洲天堂AV在线播放| 曰韩香蕉97| www久| 青草综合| 欧美在线l亚洲| 精品亚洲国产成人精品| 快播久久人人aV| 亚洲性爱高潮影院| 久久久久久久久久va| 国产一区二区久久| 五月天色五月| 亚洲性爱电影| 欧美综合天堂| 丝袜视频一区二区在线播放国产中文 | 五月丁香婷婷色| 免费精品无码一级毛片牛牛影视 | 欧美综合色综合| 韩国一区二区精品亚洲| 国产精品人妻熟女aⅴ| 俺也射| 夜夜一区二区| 特级毛片特黄久久免费看 | 999狠狠综合| 自拍偷拍亚洲熟女妇人精品| 国产2.3.4区| 一区二区三区网站日日骚| 涩涩这里只有精品视频| 夜夜躁狠狠躁日日躁av| 日韩中文字幕宗合在线| 亚洲 欧美 中文 日韩超碰| 国产精品点击进入在线影院| 肥佬影院91| 91天美传媒在线观看| 久久伊人大香蕉| 亚洲色图尤物视频| 国产精品视屏| 天天搞欧美| 大香蕉中文aV在线| 六月婷婷五月丁香| 在免费jIzzjIzz在线视频| 97色97干| 91日韩网站| 老鸭窝黄色视频网站| 2010男人的天堂| 欧美,日韩,亚洲视频| 天堂v无码免费视频| 96超碰网| 人妻激情视频| 色69大色97香蕉| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 99九九久久| 亚洲 日韩 丝袜 熟女 变态| 偷拍 欧美 日韩| 国产嫩草精品A88AV| 久草精品一区| 亚洲美女 晚间男人天堂| 欧美色棕合| 九色PORNY9l原创自拍| 国产尤物AV尤物在线观看不卡| 精品人妻一区二区三区四区石在线| 久久久天堂| 中出人妻中文字幕91在线| 日日夜夜青青草母狗| 亚洲男人的天堂一区二区| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 亚洲欧美天堂在线| 青青草视频爽一爽| 欧美综合97www| 亚洲情色电影网| 国模一区二区三区| 色香阁在线| 蜜臀久久99精品久久综合| 人人人人人人少妇| 东京太热久久久| 国模限制级电影| 暖暖精品二区三区观看| 麻豆久久久久久久久丝袜 | 天天综合网一91网| 欧美欲色| 中文字幕女同在线| 蜜桃午夜视频一区二区| 久久久久久人| 日本女人久久久| 操东北女人| 久久久久久久强迫| 天天激情干| 日本操逼视频导航| 婷色五月| 蜜臀AV一区二区三区激情综合| 麻豆AV一区二区| 老熟女熟妇| 91爱看| 五月天精品| 俞拍久久国应视频| 亚洲 小说 欧美 激情 另类| 亚洲国产欧美一区二区潘金莲| 日韩免费在线视频观看| 日本精品高清一二区一本到| 99色视频| 亚州久久9| 伊人久大| 国产成人超碰在线| 91精品无码人妻系列| 婷婷九月色| 国产日韩精品一区二区三区| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 成人精品视频| 日韩十八禁| 成人免费毛片| 久久色情| 欧美72网页| 婷婷人妻激情| 国产一区自拍欧美日韩| 五月天丁香网| 精品999日本| 中国91AV| 免费公开人人操| 丁香五月AV| 日本九九久久99| 69天堂| 播播亚洲小说亚洲| 国产人伦精品一区二区三区| 香蕉国产97| 国产精品久久天天干| 五月丁香婷婷啪啪| 天天色踪合| 亚洲国产美女久久久久 | 超碰97综合在线| 国产亚洲美日韩Aⅴ中文字幕无码成人| 久久xxxx| 狠狠爱夜夜干| AA级电影三区| 亚州宗合另类| 中文字幕青青草| 欧美日本国产日韩激情视频| 久久精品一区| 97亚洲精品| 日本福利社| 青青草原成人| 肉嘟嘟www视频在线观看高清| 亚洲色欲一区二区三区| 国产精品网址| 操操碰| 久久宗合97| 操逼啊啊啊91| 使劲用力艹少妇视频一区二区 | 爱啪精品一区| 情趣丝袜无码操逼视频| 色妹子A V| 男人天堂东京热| 欧美色色色| 人妻另类| 丁香五月天激情综合| 天天日骚逼熟女| 人妻在线视频| 国产日韩中文字幕欧美| 亚洲二区精品在线观看| 97精品97久久| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 国产精品欧美激在线| 亚洲伊人久久综合97| 激情文学网伊人| 伊人91| 奸色色 男人天堂 天天射| 四虎精品一区二区| 超碰亚洲97| 欧美亚洲自拍另类人妻| 中文乱码99| 无码精品久久久天天影视| 一区二区视频你懂的| 在线免费观看日韩一区| 亚洲天天影视色综合| 久久九九国产精品| 久久天堂网| 日本色婷婷| 中文字幕一区二区视频在线观看| 99热色这里只有精品| AVE乱伦| 中文幕97| 精品久久久亚洲AV成人网站| 天天干嫩逼网| 亚洲淫乱骚妇AV| 亚洲一卡2卡3卡4卡乱码网站| 欧美性Fer办公室秘书| 精品国产精品一区二区| 好吊色综合| 国产60区。| 强奸乱伦麻豆| 色综91| 九九九久久久久| 尤物一级在线免费观看| 九九热av| 91久久18禁| 日本午夜精品理论片A级APP发布| 精品久久久久久久| 久久精品夜色国产亚洲AV| 一区二区三区视频在线观看免费| 午夜精品久久久久久久久久久久久| 久久色激情一区二区三区| 亚洲国产欧美一区二区潘金莲 | 91丨九色丨国产打屁股| 国内毛片欧美香蕉精品| 欧美极品色| 久久熟女人| 人妻中文字幕日韩电影| 精品人妻一二三| 日日碰视频网| 超碰国产情侣自拍网| 亚洲强奸乱伦影视网| 超碰午夜| 99在线观看视频在线高清| 德国一二三不卡| 久久亚洲av成人无码国产| 在线播放成人高清免费视频| 色九色久| 国产精品在线网站| 1024久久高清视频| 国产做?爰片久久毛片?片美国| yiqicaoav| 黄页网站成人免费| 欧美 综合 亚洲| 啪啪91| 激情五月综合| 全免费a敌肛交毛片免费| 国产亚洲色停停久久99精品91| 国产三级中文字幕粉嫩| baiduhicn.com。| 欧美天天插| 色色色色网站| 亚洲午夜福利在线影院| 视频一区二区三区精品| 婷婷爽人人婷婷爽视频| 久久久久久久久9| 97久久国产亚洲精品超碰热| 色眯眯射| 熟妇女人妻呻吟久久AV| 五月婷婷综合激情| 精品国产久热在线观看| 人妻系列无码专区中文有码| 欧洲黄色网| 久久久新亚洲AV| 手机在线大香蕉| 婷婷精品久久av影视| 日日干夜夜骑| 成人在线午夜视频一区| baiduhicn.com。| 9超碰免费| yazhousetuoumei| 啊啊啊好湿久久| 蜜臀在线免费观看在线免费观看| 日韩草久视频| 91麻豆天美国产欧美日| 日日干日日| 午夜精品久久久久久久男人的天堂 | 日本精品加勒比海一区| 国产熟码AV| 久久久一二三四区| 校园春色美腿丝袜 | 啊啊啊啊啊操我视频| 热天堂一区二区| 精品人妻1237| 97人人中文网| 四虎视频在线观看| 噜噜噜久久亚洲精品色情| 免费网色网站| 国产精品久久久久久夜夜夜夜| 在线情色电影 91大| 大香蕉青青9| 亚洲极品| 91欧美色| 麻豆国产97在线| 热无码中文亚洲H一道本一区二区| 牛牛操视频逼| 欧美视频一区二区在线| 精品国产肉丝袜在线拍国语| 亚洲中文字幕网| 日本熟妇一区二区三区| 嗯嗯啊啊啊好舒服| 嗯嗯啊好大| 久久精品一区一起草| 三四中文字幕| 亚洲人成网站7777| 一级黄色性爱A级片| 黄片在线免费在线观看| 日本超碰在线国产一区| 夜夜嗷嗷一区二区| 很狠操| 中文字幕在线免费观看 | 91亚洲电影| 国产精品成人久久一区二区三区| 国产精品女久久久久av爽| 五月丁香婷婷色| 97天天操| 日本人妻中文字幕精品| 91被操| 少妇无码av专区线| 丁香成人五月天| 大香蕉综合| 久男人久久| 久久精品国产亚洲AV先锋| 涩涩这里只有精品视频| 久久亚洲婷婷| 久久日本熟妇熟色高清| 欧美日韩一二三| 影音先锋每日最新资源在线观看 | 国产精品一区二区手机看片| 国模少妇一区二区三区| 亚洲精品一区二区三区新线路| 国产妇女精品视频青青草| 鸥美中出| 国产美女mm131爽爽爽爽| 91精品电影18| 日韩欧美久久婷婷网站| 亚洲国产精品成人综合| 天天做天天爱| 国产免费一区| 国内精品久久人妻性色av| 俺去也婷婷| 九七人妻在线| 日本人妻中文字幕| 91 亚洲 欧洲| 偷窥自拍亚洲| AV污污污污| 91色图片| 久久专区| AA丁香综合激情| 91少妇通奸网站| 日婷婷| 青青爽| 97视频播放| 欧美v亚洲v日韩v最新在线二区 | 免费AV中文网在线观看| 大香蕉伊人久久| 99精品丰满人妻无码| 国产欧美精选自拍一区| 国产美脚女优尤物在线观看| 屁股久久久久久| 九九成人| 男人的天堂com| av资源在线播放天堂| 日本黄页视频在线观看| 大香蕉黄色一级片免费看| 婷婷伊人一区| 懂色aV一区二区天美传媒| 五月婷婷六月激情| 亚洲人综合19| 三级三级三级日本99| 揉揉揉夜夜| 91狠狠综合久久久| 加勒比aⅴ| 99热这里只有精| 亚洲国产日韩精品久久久| 日本黄 R色 成 人网站| 白嫩91在线亚洲| 亚洲日韩精品在线播放| 2017天天操天天日| 9+1视频网址| 色欲久久99国产精品久久久久久| 色播五月婷婷| …亚洲黄色厕厕女女在线播…| 中文字幕 人妻不满 在线视频| 97在线观| 北条麻妃99精品青青久久| av三级电影在线播放| 97色爱| 欧美亚洲一级在线观看| 欧美在线视频观看一二三四区高清 | 国产天天骚| 亚洲黄片免费在线播放| 人人澡人人弄| 大香蕉一线视频| 啊啊啊水好多| 久久本道| 不卡av在线中文字幕| 精国久久一区二区三区98| 强奸乱伦av电影| 漂亮人妻被强中文字幕hd| 懂色AV一区二区三区| 明星性猛交ⅹxxx乱大交| 一区二区不卡| 欧美成人一区二区三区在线播放| 狠狠色五月亚洲91| 天天摸天天插天天日| 岛国片在线视频网站| 超碰久在线天天做| 九月婷婷| 92性色国产午夜福利在线661| 东京热精品97综合网| 立川理惠无码一区二区| 中文字幕乱亚洲美女精品一区| 日本丝袜美腿人妻九九| 黑人无码一区二区| 丁香九月婷婷| 日本久久999| 日韩AV电影网站| 五月婷婷六月丁香网址| 九久久精| 国产熟妇一区二区| 狠狠操狠狠插| 天天干干天天干干| 精精品人妻一区二区三区| 东北女人| 91色情黑丝搞鸡在线观看一区二区三区三州| 久久久性| 天天久久久久久| 精品国产72| 欧美综合站| 无码人妻丰满热妇又大又粗| 中文字幕欧美丝袜07资源| 啊啊啊啊啊舒服| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 中文字幕日韩综合| 国产一级作爱毛片| 香蕉国产精品麻豆亚洲欧美日韩| 精品夜夜澡人妻无码AV| 亚洲天堂日本| 曰本精品久久久| 少妇一线天久久久久久| 欧美成人黄网色网站| 中文字幕精品一区二| 97爱亚洲| 日韩欧美麻豆| 蜜臀th| 亚州久久9| 91在线免费观看处女| 丁香五月久久| 亚洲第一在线视频| 福利伊人玖玖国产| 蜜臀AV秘一区翔田千里| 97综合久久| 男人的天堂VA| 欧美淫乱视频| 99热99re6国产在线播放| 欧美色图成人网一区二区| 天天影视网综合少妇| 亚洲成人网站在线观看| JIZZJIZZ国产精品喷水| 天天做日日做| 午夜亚洲国产理论秋霞| 在线观看亚洲成人精品| 精品视频在线观看精品| 91天天综合日韩欧美| 欧美综合综合| 超碰精品97| 久久精品操| 中文字幕免费在线观看| 自拍第一页| 亚洲91射| 亚洲色婷婷综合久久一区二区三区| 综合色久欲| 激情内射| 国产白丝网站| 日韩欧美女求操每天更新| av天堂加勒比| 午夜一区| 加勒比综合网| JIZZJIZZ亚洲女人被躁| 成人午夜高潮av猛片| 无码久久国产 | 国产传媒一区日韩| 台湾大香蕉99热| 91久久堂| 欧美色图在线视频少妇| 51一区二区三区| 怡红院成人视频| 久久色精品视频在线| 91视频综合| 人人做天天爱| 艹少妇网站| 色狠狠综合| 色色色色色色色色色色色色色色综合| 夜夜一区二区| 抽查国产福利主播| 9999九九九久久久| 久久久久久99999国产精品| 美女t无毒不卡不卡| 91亚洲高清| 亚洲天堂五月天国产| 精品视频免费在线一区| 去干网最新版| 天天干天天操天天拍| 东北老女人的激情视频| 四虎免费视频| 亚洲天堂男人网| 欧美一区二区三区四区综合| 全免费a敌肛交毛片免费| 依人大香蕉| 欧美婷婷久久| 97射欧美| 亚洲伊人成综合成人网| 国产成年免费大片黄在线观看| 久久精品三级影视| 麻豆区99999| 国产精品国产| 亚洲男人电影天堂| 日本操大逼| 日韩精品区二区三区不卡| 欧美白嫩女HD| 国产精品久久久亚洲第一牛牛_在线观看 | 日韩一区二区精彩视频| 成人免费在线网站| 91 国产丝袜在线放观看| 亚洲的天堂网| 97超碰久久| 九月丁香综合网| 99999精品视频| 九久久精品| 无遮挡男女激烈动态图| 日本午夜精品理论片A级APP发布| 91丝袜美腿网站| 97欧美资源| 99国产在线 精品 视频| 又黄又爽在线观看视频| 操少妞在线视频| 天天看夜夜看日日干| 国产精品青草综合久久| 亚洲综合图色在线| 999久久久九九九九| 91足交| 国产嫩草精品A88AV在线| 深夜国产福利| 影音先锋乱| 日本一天色道久久久精品视频| 猛猛干| 中日高清无码操逼视频| 中文字幕女同在线| 亚洲欧洲日本精品中文a∨| 人妻熟女午夜精品在线| 久操av在线| 国产av强奸美女| 天天日日日射| 麻豆久久一区二区三区| 色婷视频| 亚洲骚男同com| 欧美亚洲另类在线蜜桃| 久久久久亚洲精品| 26uuu最新| 97人肏| 夜夜精品视频| 久青草影院| 97K超碰在线| 91精品黄在线观看| 99热这里只有精品1| 18禁的网站在线| 久久99草| 日本狂喷奶水在线播放212| 久草视频制服诱惑| 色波多| 嗯嗯啊啊啊好舒服| AAAA级日本片免费视频| 日韩99神马视频播放片在线播放| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| www网站黄| 中日韩久久久免费看| 国产女人成人精品视频| 久久宗合97| 欧美色五月| 国产精品播放| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 91足交| 色哟哟精品1精品2| 日本女人操逼| 欧美色乱| 欧美老熟另类| 中字幕人妻一区二区三区| 国产夫妻一区二区| 思思视频免费看网站| 10000部十八禁看电影| 一级性爱啪啪视频| 啊嗯嗯啊好大好爽| 亚洲色综合| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 九月丁香| 男女无套 免费网站| 亚洲色图加勒比| 欧美精品成人在线播放| 97国产综合欧美| 涩涩五月天| 四虎午夜影院| 久久成人午夜狠狠| 99操逼| J?P?NESEHD熟女熟妇伦| 天天天天天天天天综合| 一级久久性爱视频| 天天cao在线| 少妇69中文| 日韩黄色一区二区三区| 91综合网站| 麻豆一区在线| 四色永久成人网站| 97精品一区二区视频| 国产精品不卡一区二区三区| 人人操人人狠狠操| 天天干人人看综合| 日韩中文字幕宗合在线| 99性爱| 日日噜噜夜夜狠狠视频无| 日本久久久久久久久久| 中文字幕在在线观看网站| japan日本高清乱xxxx| 人爽不卡视频| 在线一区| 91婷婷伊人狠人| 国产精品自拍xxxx| 啊啊啊啊啊啊好多水| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 亚一综合久久久久久久久久| 3P丝袜熟女 色综合| 97视频在| 青青草操逼逼视频| 欧美日本中字另类在线| 精…码一二三区| 色九九综合AV| 超碰97资源中文字幕| 中文字幕性感少妇av| 手机午夜电影神马久久| 97中文字幕一区| 91美女在线视频| 日韩有码一区三区| 国产1769在线| 无码人妻精品一区二区三区99不卡| 操香逼| 一区二区三区在线日韩影院观看| 6080yy午夜理论三级一区二区三区无码| 1级黄色夫妻对换性交免费看| 夜夜高潮夜夜爽夜夜爱爱一区| 狠狠躁天天躁日日躁| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 韩日精品福利视频一区不卡在线免| 蜜桃臀av在线观看| 国产一区二区在线电影| 国产传媒午夜理伦精品| 91视频综合| 久久老熟女| 日本道日本道中文字幕日本道最新日本道在线观看 | 丁香五月天啪啪| 成人性爱美曰韩| 成人无码电影在线观看网| 亚洲福利影院一区久久| 日本三级精品| 亚洲AV色图一区| 99精品人人爽| 人人超碰在线观看黄| 久九干| 殴美性色a级欧美| 97色色网| 欧美婷婷| 99热精品免费| 婷婷综合在线| 人妻中文在线| 人妻22p| 久久精品性| 国产精品久久久久av| 日本一级性爱| wwwcaobibi| 欧亚在线视频| www.色婷婷色综合| 亚洲第一在线视频| 国产精品老师| 婷婷丁香久久| 婷婷五月天成人| 99亚洲精品| 色精品极品| 人妻出轨一区二区三区| 国产夫妻一区二区| 亚洲高清内射| 欧美国产一区二区三区麻豆传媒 | 视频不卡中文字幕| 日韩肏逼视频| 超碰日韩人妻| 人人操肉肉| a级成人毛片免费视频高清| 人妻中文字幕日韩电影| 亚卅熟女乱色| 亚洲男人天堂2019| 久久精彩视频9| 亚洲视频,小说| Aa东京男人的天堂|