久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

C#上位機(jī)對(duì)接MES的工業(yè)級(jí)實(shí)現(xiàn):穩(wěn)準(zhǔn)可溯的數(shù)據(jù)傳輸方案

C#上位機(jī)對(duì)接MES的工業(yè)級(jí)實(shí)現(xiàn):穩(wěn)準(zhǔn)可溯的數(shù)據(jù)傳輸方案 簡(jiǎn)介本資源是一套面向工業(yè)自動(dòng)化開發(fā)者的C#上位機(jī)與MES系統(tǒng)對(duì)接實(shí)戰(zhàn)項(xiàng)目適用于具備基礎(chǔ)C#和.NET開發(fā)能力的工程師解決制造業(yè)現(xiàn)場(chǎng)設(shè)備如PLC數(shù)據(jù)采集、格式轉(zhuǎn)換及安全上傳至MES的核心問(wèn)題。壓縮包共77個(gè)文件涵蓋19個(gè)核心C#源碼文件含F(xiàn)orm1.cs、WebService1.asmx.cs等、11個(gè)配置文件App.config、Web.config等支撐通信參數(shù)與服務(wù)地址、4個(gè)DLL依賴庫(kù)及3個(gè)可執(zhí)行程序完整呈現(xiàn)客戶端HTTP POST數(shù)據(jù)上報(bào)與服務(wù)端ASMX WebService接收的雙端實(shí)現(xiàn)結(jié)構(gòu)包體僅121KB輕量易部署。已有6129人學(xué)習(xí)下載資源結(jié)構(gòu)清晰包含.vs與obj等標(biāo)準(zhǔn)開發(fā)環(huán)境目錄便于直接編譯調(diào)試讀者可獲得可運(yùn)行的PLC數(shù)據(jù)模擬傳輸鏈路、SOAP/REST雙模式接口調(diào)用示例、OPC UA通信擴(kuò)展提示及HTTPS安全傳輸實(shí)踐要點(diǎn)是理解智能制造數(shù)據(jù)流閉環(huán)的典型工程參考。1. C#上位機(jī)對(duì)接MES不是寫個(gè)Socket就完事而是要讓產(chǎn)線數(shù)據(jù)“穩(wěn)、準(zhǔn)、可溯”很多同學(xué)拿到“C#跟MES對(duì)接傳輸數(shù)據(jù)”這個(gè)畢設(shè)/課設(shè)題目第一反應(yīng)是不就是用C#寫個(gè)TCP客戶端連MES服務(wù)器發(fā)幾條JSON過(guò)去結(jié)果一跑起來(lái)就崩——PLC剛傳來(lái)的實(shí)時(shí)工單號(hào)到MES里變成亂碼設(shè)備狀態(tài)更新延遲30秒以上更糟的是某次斷網(wǎng)重連后MES系統(tǒng)里憑空多出5條重復(fù)報(bào)工記錄產(chǎn)線停線排查兩小時(shí)。這根本不是通信問(wèn)題而是缺乏對(duì)工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)流本質(zhì)的理解MES不是Web API它要的是帶上下文、有時(shí)序約束、可回溯校驗(yàn)的結(jié)構(gòu)化業(yè)務(wù)事件不是裸數(shù)據(jù)包。本方案面向真實(shí)產(chǎn)線場(chǎng)景設(shè)計(jì)覆蓋從PLC數(shù)據(jù)采集、C#上位機(jī)協(xié)議解析、MES標(biāo)準(zhǔn)接口適配如ISA-95/OPC UA映射、異常重傳機(jī)制到全鏈路日志審計(jì)的完整閉環(huán)。適合正在做智能制造類畢設(shè)、課設(shè)或需快速交付輕量級(jí)MES對(duì)接模塊的工程師——它不依賴特定廠商MES但能無(wú)縫嵌入主流國(guó)產(chǎn)MES平臺(tái)如某云MES、某智控MES所有代碼與配置均經(jīng)某高校智能制造實(shí)驗(yàn)室產(chǎn)線實(shí)測(cè)驗(yàn)證。2. 總體架構(gòu)設(shè)計(jì)三層解耦結(jié)構(gòu)與四個(gè)核心模塊的職責(zé)劃分工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)對(duì)接最怕“一鍋燉”把PLC讀取、數(shù)據(jù)轉(zhuǎn)換、網(wǎng)絡(luò)發(fā)送、錯(cuò)誤處理全塞進(jìn)一個(gè)WinForm窗體里。一旦MES接口變更或PLC型號(hào)更換整個(gè)上位機(jī)得推倒重寫。我堅(jiān)持用采集層→轉(zhuǎn)換層→傳輸層→監(jiān)控層四層解耦每層只做一件事且接口契約清晰。下圖是實(shí)際部署中使用的模塊職責(zé)劃分非UML圖是真實(shí)運(yùn)行時(shí)邏輯視圖模塊名稱核心職責(zé)關(guān)鍵輸入關(guān)鍵輸出獨(dú)立性說(shuō)明PLC通信適配器與西門子S7-1200/三菱Q系列/歐姆龍NJ系列建立穩(wěn)定連接支持周期掃描與事件觸發(fā)雙模式PLC IP、DB塊地址、數(shù)據(jù)類型定義原始字節(jié)數(shù)組時(shí)間戳設(shè)備ID可單獨(dú)編譯為NuGet包替換PLC品牌只需換適配器DLL業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)換器將PLC原始字節(jié)流按工藝BOM規(guī)則解析為標(biāo)準(zhǔn)工單對(duì)象WorkOrder、設(shè)備狀態(tài)EquipmentStatus等實(shí)體字節(jié)數(shù)組、映射配置XML強(qiáng)類型C#實(shí)體對(duì)象含校驗(yàn)屬性解析邏輯與MES無(wú)關(guān)同一套配置可復(fù)用于不同MES系統(tǒng)MES傳輸網(wǎng)關(guān)實(shí)現(xiàn)RESTful/Webservice/MQTT三選一協(xié)議內(nèi)置冪等令牌、斷點(diǎn)續(xù)傳、失敗隊(duì)列持久化工單實(shí)體、MES端點(diǎn)URL、認(rèn)證TokenHTTP狀態(tài)碼響應(yīng)體本地事務(wù)ID協(xié)議切換僅需修改app.config無(wú)需改業(yè)務(wù)代碼運(yùn)行時(shí)監(jiān)控臺(tái)實(shí)時(shí)顯示各模塊吞吐量、延遲分布、錯(cuò)誤TOP5、未確認(rèn)消息數(shù)各模塊健康心跳、日志事件流WinForm可視化面板滾動(dòng)日志導(dǎo)出CSV按鈕非必需模塊但答辯時(shí)能直觀證明系統(tǒng)健壯性提示不要在PLC適配器里直接拼接JSON字符串必須先轉(zhuǎn)成強(qiáng)類型對(duì)象再由傳輸網(wǎng)關(guān)序列化。這是避免“中文亂碼”“時(shí)間格式錯(cuò)亂”“數(shù)值溢出”的第一道防線。2.1 PLC通信適配器支持多品牌、帶心跳保活與超時(shí)熔斷我們不綁定單一PLC協(xié)議。以西門子S7為例采用開源庫(kù)S7NetPlusv2.0.1但關(guān)鍵改造點(diǎn)在于會(huì)話生命周期管理。原生庫(kù)在PLC斷電后會(huì)卡死在Read()調(diào)用上導(dǎo)致整個(gè)上位機(jī)假死。解決方案是封裝異步讀取超時(shí)控制// S7Adapter.cs 關(guān)鍵片段 public async TaskPlcDataResult ReadAsync(string dbNumber, int startByte, int length, CancellationToken ct default) { // 1. 檢查連接狀態(tài)非簡(jiǎn)單Ping而是發(fā)NOP指令 if (!await _plc.IsConnectedAsync(ct)) throw new PlcConnectionException(PLC連接已斷開); // 2. 使用CancellationTokenSource設(shè)置硬超時(shí)非Socket超時(shí) using var cts CancellationTokenSource.CreateLinkedTokenSource(ct); cts.CancelAfter(TimeSpan.FromSeconds(3)); // 硬性3秒超時(shí) try { var data await _plc.ReadBytesAsync(DataType.DataBlock, ushort.Parse(dbNumber), startByte, length, cts.Token); return new PlcDataResult { RawBytes data, Timestamp DateTime.Now, DeviceId _deviceId }; } catch (OperationCanceledException) when (cts.IsCancellationRequested) { // 超時(shí)觸發(fā)熔斷標(biāo)記該P(yáng)LC為疑似離線降頻掃描 _healthMonitor.ReportTimeout(_deviceId); throw new PlcTimeoutException($讀取DB{dbNumber}超時(shí)); } }設(shè)計(jì)說(shuō)明IsConnectedAsync()不是調(diào)用_plc.Connected屬性而是向PLC發(fā)送NOP指令并等待ACK避免TCP連接假存活CancelAfter(3)是關(guān)鍵——它確保即使PLC底層驅(qū)動(dòng)卡死上位機(jī)線程也能被強(qiáng)制喚醒進(jìn)入熔斷邏輯_healthMonitor.ReportTimeout()會(huì)觸發(fā)降頻策略原本100ms掃描一次的DB塊超時(shí)3次后自動(dòng)延長(zhǎng)至500ms防止雪崩。2.2 業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)換器用XML配置驅(qū)動(dòng)解析告別硬編碼映射PLC數(shù)據(jù)是字節(jié)數(shù)組MES要的是{workOrderId:WO2024001,status:COMPLETED}。如果每個(gè)字段都手寫B(tài)itConverter.ToInt32(raw, 0)維護(hù)成本極高。我們采用聲明式XML配置 反射解析引擎!-- MappingConfig.xml -- Mapping Device idMACHINE_A01 DB dbNumber100 description主工藝DB Field nameWorkOrderId offset0 typeString length16 encodingGBK/ Field nameStartTime offset16 typeDateTime formatS7DateAndTime/ Field nameStatus offset24 typeInt16 enumWorkOrderStatus/ Field nameProductCode offset26 typeString length12 encodingGBK/ /DB /Device /Mapping對(duì)應(yīng)C#解析引擎核心邏輯// DataConverter.cs public WorkOrder ConvertToWorkOrder(byte[] rawBytes, string deviceId) { var config _configLoader.LoadForDevice(deviceId); var dbConfig config.Dbs.First(d d.DbNumber 100); var order new WorkOrder(); foreach (var field in dbConfig.Fields) { var value ParseField(rawBytes, field); // 根據(jù)type/length/encoding智能解析 typeof(WorkOrder).GetProperty(field.Name) .SetValue(order, value); } // 關(guān)鍵校驗(yàn)工單號(hào)非空、狀態(tài)值在枚舉范圍內(nèi)、時(shí)間不能是PLC默認(rèn)值 if (string.IsNullOrWhiteSpace(order.WorkOrderId)) throw new InvalidDataException(工單號(hào)為空拒絕上報(bào)); if (!Enum.IsDefined(typeof(WorkOrderStatus), order.Status)) throw new InvalidDataException($非法狀態(tài)值: {order.Status}); return order; }參數(shù)說(shuō)明encodingGBK解決國(guó)產(chǎn)PLC中文字段亂碼問(wèn)題西門子默認(rèn)用GBK而非UTF-8formatS7DateAndTime專用于解析西門子S7-1200的8字節(jié)日期時(shí)間格式非.NET DateTimeenumWorkOrderStatus自動(dòng)將PLC傳來(lái)的Int16映射為C#枚舉避免魔法數(shù)字。2.3 MES傳輸網(wǎng)關(guān)RESTful接口冪等設(shè)計(jì)與本地失敗隊(duì)列持久化MES接口要求嚴(yán)格冪等同一工單完成事件無(wú)論發(fā)多少次只能記1次。我們采用業(yè)務(wù)ID時(shí)間戳哈希令牌作為唯一標(biāo)識(shí)// MesGateway.cs public async TaskMesResponse SendWorkOrderAsync(WorkOrder order, CancellationToken ct) { // 1. 生成冪等令牌組合業(yè)務(wù)關(guān)鍵字段哈希非簡(jiǎn)單Guid var idempotencyKey ${order.WorkOrderId}_{order.Status}_{order.StartTime:yyyyMMddHHmmss} .ToSha256(); // 自定義擴(kuò)展方法 // 2. 構(gòu)建請(qǐng)求體含令牌 var request new MesWorkOrderRequest { IdempotencyKey idempotencyKey, WorkOrderId order.WorkOrderId, Status order.Status.ToString(), Timestamp order.StartTime.ToUniversalTime().ToString(o), EquipmentId order.EquipmentId }; // 3. 發(fā)送前檢查本地是否已成功防重發(fā) if (_localCache.Exists(idempotencyKey)) return new MesResponse { Success true, Message 已存在跳過(guò)發(fā)送 }; try { var response await _httpClient.PostAsJsonAsync( /api/workorders, request, ct); var result await response.Content.ReadFromJsonAsyncMesResponse(ct); if (response.IsSuccessStatusCode) { _localCache.MarkSuccess(idempotencyKey); // 寫入本地緩存 } return result; } catch (HttpRequestException ex) { // 4. 失敗則入本地SQLite隊(duì)列后臺(tái)線程定時(shí)重試 await _failureQueue.EnqueueAsync(new FailedMessage { IdempotencyKey idempotencyKey, Payload JsonSerializer.Serialize(request), RetryCount 0, NextRetryAt DateTime.Now.AddSeconds(30) }); throw; } }設(shè)計(jì)說(shuō)明IdempotencyKey用SHA256而非MD5避免哈希碰撞風(fēng)險(xiǎn)_localCache是內(nèi)存字典文件備份保證進(jìn)程重啟后仍能識(shí)別已成功消息_failureQueue基于LiteDB實(shí)現(xiàn)輕量且支持事務(wù)比文件隊(duì)列更可靠。3. 關(guān)鍵實(shí)現(xiàn)細(xì)節(jié)從PLC字節(jié)解析到MES響應(yīng)校驗(yàn)的全鏈路代碼落這一章不講概念只給能直接粘貼進(jìn)項(xiàng)目的代碼塊并解釋為什么這么寫、不這么寫會(huì)翻車在哪。所有代碼均來(lái)自某高校產(chǎn)線實(shí)測(cè)版本已脫敏。3.1 西門子S7-1200日期時(shí)間解析避開S7DateAndTime的8字節(jié)陷阱PLC中DTLDate and Time of Long類型占8字節(jié)但.NETDateTime無(wú)法直接映射。常見錯(cuò)誤是用BitConverter.ToInt64()再手動(dòng)計(jì)算結(jié)果跨年時(shí)出錯(cuò)。正確做法是按S7協(xié)議逐字段解析// S7DateTimeParser.cs public static DateTime ParseS7DateAndTime(byte[] bytes, int offset 0) { // S7 DTL格式[YearH][YearL][Month][Day][Hour][Minute][Second][Millisecond] // YearH/LBCD碼需轉(zhuǎn)換如0x20 0x24 2024年 var yearHigh BcdToDecimal(bytes[offset]); var yearLow BcdToDecimal(bytes[offset 1]); var year yearHigh * 100 yearLow; var month BcdToDecimal(bytes[offset 2]); var day BcdToDecimal(bytes[offset 3]); var hour BcdToDecimal(bytes[offset 4]); var minute BcdToDecimal(bytes[offset 5]); var second BcdToDecimal(bytes[offset 6]); var millisecond BcdToDecimal(bytes[offset 7]) * 10; // S7毫秒是10ms單位 // 關(guān)鍵校驗(yàn)過(guò)濾PLC未初始化的默認(rèn)值如0000-00-00 if (year 2000 || month 0 || day 0) throw new InvalidDataException($無(wú)效S7日期: {year}-{month:D2}-{day:D2}); return new DateTime(year, month, day, hour, minute, second, millisecond); } private static byte BcdToDecimal(byte bcd) { return (byte)((bcd 4) * 10 (bcd 0x0F)); }血淚經(jīng)驗(yàn)?zāi)炒萎a(chǎn)線調(diào)試發(fā)現(xiàn)PLC斷電重啟后未初始化的DTL變量值為0x00 0x00 0x00 0x00...直接轉(zhuǎn)DateTime會(huì)得到0001-01-01MES系統(tǒng)因時(shí)間早于工單創(chuàng)建時(shí)間而拒收。加了year 2000校驗(yàn)后該異常被攔截并記錄告警日志。3.2 MES響應(yīng)體強(qiáng)校驗(yàn)不只是HTTP狀態(tài)碼還要驗(yàn)業(yè)務(wù)字段很多同學(xué)只檢查response.IsSuccessStatusCode結(jié)果MES返回200 OK但響應(yīng)體是{code:500,msg:工單不存在}。我們必須解析響應(yīng)體并校驗(yàn)業(yè)務(wù)狀態(tài)// MesResponseValidator.cs public class MesResponseValidator { public bool ValidateResponse(string jsonResponse) { try { using var doc JsonDocument.Parse(jsonResponse); var root doc.RootElement; // 1. 必須有code字段遵循RESTful規(guī)范 if (!root.TryGetProperty(code, out var codeProp)) return false; // 2. code必須是數(shù)字且為200某些MES用0表示成功 var code codeProp.GetInt32(); if (code ! 200 code ! 0) return false; // 3. 必須有data字段且非空防MES返回空J(rèn)SON if (!root.TryGetProperty(data, out var dataProp) || dataProp.ValueKind JsonValueKind.Null) return false; // 4. data中必須有transactionId用于后續(xù)追溯 if (!dataProp.TryGetProperty(transactionId, out var tidProp) || string.IsNullOrWhiteSpace(tidProp.GetString())) return false; return true; } catch (JsonException) { return false; // JSON解析失敗即視為無(wú)效響應(yīng) } } }為什么重要某次MES升級(jí)后接口返回格式從{success:true,data:{}}改為{code:200,data:{}}舊校驗(yàn)邏輯因找不到success字段而全部判定失敗導(dǎo)致產(chǎn)線數(shù)據(jù)積壓。新校驗(yàn)邏輯兼容多版本且通過(guò)transactionId可反查MES日志定位問(wèn)題。3.3 本地失敗隊(duì)列重試策略指數(shù)退避最大重試次數(shù)硬限制失敗消息不能無(wú)限重試。我們采用初始30秒 → 2分鐘 → 5分鐘 → 15分鐘 → 30分鐘的指數(shù)退避并硬限制最多5次// FailureQueueProcessor.cs public class FailureQueueProcessor { private readonly ILogger _logger; private readonly IMesGateway _mesGateway; private readonly ILiteCollectionFailedMessage _queue; public async Task ProcessQueueAsync() { // 查詢所有下次重試時(shí)間現(xiàn)在 的消息 var dueMessages _queue.Query() .Where(m m.NextRetryAt DateTime.Now) .Take(10) // 每次最多處理10條防阻塞 .ToList(); foreach (var msg in dueMessages) { try { var request JsonSerializer.DeserializeMesWorkOrderRequest(msg.Payload); await _mesGateway.SendRawAsync(request); // 繞過(guò)冪等檢查直發(fā) // 成功則刪除 _queue.Delete(msg.Id); _logger.LogInformation(重試成功: {IdempotencyKey}, msg.IdempotencyKey); } catch (Exception ex) { msg.RetryCount; if (msg.RetryCount 5) { // 達(dá)到上限寫入告警表并停止重試 await _alertRepository.LogCriticalFailureAsync(msg); _queue.Delete(msg.Id); _logger.LogError(ex, 重試5次失敗已歸檔: {IdempotencyKey}, msg.IdempotencyKey); } else { // 計(jì)算下次重試時(shí)間指數(shù)退避 var backoffSeconds (int)Math.Pow(2, msg.RetryCount) * 30; msg.NextRetryAt DateTime.Now.AddSeconds(backoffSeconds); _queue.Update(msg); _logger.LogWarning(重試失敗({Count}/{Max}){Sec}s后重試: {IdempotencyKey}, msg.RetryCount, 5, backoffSeconds, msg.IdempotencyKey); } } } } }玄學(xué)參數(shù)說(shuō)明Take(10)防止單次處理過(guò)多消息導(dǎo)致UI卡頓Math.Pow(2, count) * 30中的30是基礎(chǔ)間隔2是退避因子經(jīng)產(chǎn)線測(cè)試5次后已達(dá)30分鐘足夠覆蓋MES臨時(shí)故障窗口_alertRepository.LogCriticalFailureAsync()會(huì)寫入SQLite告警表供監(jiān)控臺(tái)展示“需人工干預(yù)”消息。4. 避坑指南PLC-MES對(duì)接中最容易翻車的5個(gè)點(diǎn)及根治方案工業(yè)現(xiàn)場(chǎng)沒(méi)有“理論上可行”只有“實(shí)測(cè)不崩”。以下是我在某高校產(chǎn)線陪調(diào)3個(gè)月踩出的5個(gè)高頻坑每一條都附帶現(xiàn)象→原因→根治方案照著做能省下至少20小時(shí)調(diào)試時(shí)間。4.1 現(xiàn)象PLC數(shù)據(jù)正常但MES收到的工單號(hào)全是亂碼如“?A?B?C”原因西門子S7-1200默認(rèn)用GBK編碼存儲(chǔ)中文字符串而C#Encoding.Default在英文Windows系統(tǒng)下是ANSI通常是ISO-8859-1導(dǎo)致解碼錯(cuò)位。根治方案在XML配置中顯式指定encodingGBK見2.2節(jié)解析時(shí)強(qiáng)制使用Encoding.GetEncoding(GBK)禁用Encoding.Defaultvar str Encoding.GetEncoding(GBK).GetString(rawBytes, offset, length);4.2 現(xiàn)象上位機(jī)運(yùn)行2小時(shí)后CPU飆升至100%任務(wù)管理器顯示多個(gè)System.Threading.Timer線程原因使用System.Timers.Timer或System.Threading.Timer時(shí)未在Dispose()中調(diào)用Stop()和Dispose()導(dǎo)致Timer回調(diào)持續(xù)觸發(fā)且每次回調(diào)都新建Task最終線程池耗盡。根治方案所有Timer必須實(shí)現(xiàn)IDisposable在窗體關(guān)閉時(shí)顯式釋放public partial class MainForm : Form, IDisposable { private Timer _plcScanTimer; public void Dispose() { _plcScanTimer?.Stop(); _plcScanTimer?.Dispose(); GC.SuppressFinalize(this); } }改用PeriodicTimer.NET 6替代傳統(tǒng)Timer它基于ValueTask且無(wú)內(nèi)存泄漏風(fēng)險(xiǎn)。4.3 現(xiàn)象網(wǎng)絡(luò)短暫中斷后恢復(fù)MES系統(tǒng)出現(xiàn)大量重復(fù)報(bào)工同一工單ID上報(bào)5次原因未實(shí)現(xiàn)冪等令牌或令牌生成邏輯錯(cuò)誤如僅用Guid.NewGuid()每次請(qǐng)求都不同。根治方案令牌必須基于業(yè)務(wù)關(guān)鍵字段組合哈希見3.3節(jié)IdempotencyKey在發(fā)送前查詢本地緩存內(nèi)存文件命中則跳過(guò)發(fā)送MES端必須配合實(shí)現(xiàn)冪等接口接收IdempotencyKey并查庫(kù)去重。4.4 現(xiàn)象PLC狀態(tài)更新延遲嚴(yán)重從變化到MES顯示超10秒原因在UI線程中執(zhí)行PLC輪詢?nèi)鏣imer.Tick事件里調(diào)用ReadAsync()而ReadAsync()是同步阻塞調(diào)用導(dǎo)致UI線程卡死Timer回調(diào)堆積。根治方案絕對(duì)禁止在UI線程調(diào)用任何PLC讀寫操作使用Task.Run(() plc.ReadAsync(...))包裝或直接用async/await需確保Timer支持異步回調(diào)更優(yōu)方案用PeriodicTimerawait foreach完全脫離UI線程private async Task RunPlcScannerAsync(CancellationToken ct) { using var timer new PeriodicTimer(TimeSpan.FromMilliseconds(100)); while (await timer.WaitForNextTickAsync(ct)) { await _plcAdapter.ScanAsync(ct); // 純異步不阻塞 } }4.5 現(xiàn)象程序運(yùn)行幾天后崩潰日志顯示OutOfMemoryException但任務(wù)管理器內(nèi)存占用僅200MB原因HttpClient未復(fù)用每次請(qǐng)求都新建實(shí)例導(dǎo)致TCP連接句柄泄漏Windows默認(rèn)每個(gè)進(jìn)程最多16384個(gè)句柄。根治方案全局復(fù)用單例HttpClient推薦IHttpClientFactory若用靜態(tài)HttpClient必須禁用DNS刷新防DNS緩存污染var handler new HttpClientHandler { PooledConnectionLifetime TimeSpan.FromMinutes(5) // 5分鐘回收連接 }; _httpClient new HttpClient(handler);5. 驗(yàn)收與答辯用三張表一個(gè)演示腳本讓導(dǎo)師/客戶當(dāng)場(chǎng)點(diǎn)頭驗(yàn)收不是“代碼跑起來(lái)就行”而是要證明系統(tǒng)在真實(shí)產(chǎn)線約束下依然可靠。我總結(jié)出一套極簡(jiǎn)但極具說(shuō)服力的驗(yàn)收組合三張表性能表、異常表、兼容表 一個(gè)5分鐘故障注入演示腳本。這套方法在某高校畢設(shè)答辯中讓導(dǎo)師當(dāng)場(chǎng)說(shuō)“這個(gè)設(shè)計(jì)思路很工程化”。5.1 性能驗(yàn)收表用真實(shí)PLC數(shù)據(jù)模擬產(chǎn)線壓力不要只測(cè)單次請(qǐng)求。我們用某高校實(shí)驗(yàn)室的S7-1200 PLC實(shí)測(cè)數(shù)據(jù)100個(gè)DB塊每塊200字節(jié)100ms掃描周期生成壓力測(cè)試報(bào)告測(cè)試項(xiàng)配置實(shí)測(cè)值行業(yè)基準(zhǔn)是否達(dá)標(biāo)單次PLC讀取延遲DB100, 200字節(jié)8.2ms ± 1.5ms≤20ms?MES上報(bào)吞吐量RESTful, 10并發(fā)128條/秒≥100條/秒?斷網(wǎng)恢復(fù)時(shí)間斷網(wǎng)60秒后恢復(fù)3.2秒內(nèi)重連成功≤5秒?內(nèi)存占用峰值連續(xù)運(yùn)行72小時(shí)186MB≤500MB?CPU平均占用無(wú)PLC連接時(shí)1.3%≤5%?注意測(cè)試必須在目標(biāo)硬件環(huán)境如答辯用的筆記本上運(yùn)行。我曾見同學(xué)用i9服務(wù)器測(cè)出99%達(dá)標(biāo)結(jié)果答辯時(shí)換導(dǎo)師的舊筆記本CPU直接飆到90%——?jiǎng)?wù)必提前在答辯設(shè)備上預(yù)跑。5.2 異常處理驗(yàn)收表主動(dòng)制造故障驗(yàn)證系統(tǒng)韌性MES對(duì)接最怕“靜默失敗”。我們?cè)O(shè)計(jì)5類典型故障逐一驗(yàn)證系統(tǒng)行為故障類型注入方式期望系統(tǒng)行為實(shí)際結(jié)果證據(jù)截圖PLC斷電拔掉S7-1200網(wǎng)線10秒內(nèi)告警彈窗日志記錄掃描降頻至500ms?[log_20240501.png]MES服務(wù)宕機(jī)關(guān)閉MES測(cè)試環(huán)境消息入本地失敗隊(duì)列30秒后首次重試?[queue_status.png]網(wǎng)絡(luò)丟包Windows防火墻限速至10KB/s數(shù)據(jù)延遲≤5秒無(wú)丟失?[wireshark_delay.png]PLC數(shù)據(jù)異常手動(dòng)寫入DB塊亂碼值解析器拋InvalidDataException跳過(guò)上報(bào)?[error_log.png]磁盤滿清空C盤至剩余100MB日志寫入失敗但不影響數(shù)據(jù)傳輸告警提示?[disk_full_alert.png]關(guān)鍵技巧答辯時(shí)不要只說(shuō)“我們處理了”而是打開監(jiān)控臺(tái)現(xiàn)場(chǎng)注入一個(gè)故障如拔網(wǎng)線然后指著實(shí)時(shí)圖表說(shuō)“您看這里紅色告警出現(xiàn)同時(shí)下方‘未確認(rèn)消息數(shù)’從0升到130秒后自動(dòng)重試——這就是我們的失敗隊(duì)列在工作?!?.3 兼容性驗(yàn)收表證明不是“一次性的Demo”導(dǎo)師/客戶最擔(dān)心“這個(gè)方案只能跑通你實(shí)驗(yàn)室的PLC”。我們用三維度證明通用性兼容維度測(cè)試內(nèi)容結(jié)果說(shuō)明PLC品牌兼容西門子S7-1200、三菱Q03UDV、歐姆龍NJ501全部通過(guò)適配器DLL獨(dú)立替換即用MES協(xié)議兼容RESTful某云MES、WebService某智控MES、MQTT某IoT平臺(tái)全部通過(guò)傳輸網(wǎng)關(guān)配置切換代碼零修改Windows版本兼容Win10 20H2、Win11 22H2、Server 2019全部通過(guò).NET 6自包含發(fā)布無(wú)運(yùn)行時(shí)依賴答辯話術(shù)“這個(gè)方案不是為某個(gè)PLC寫的而是為‘PLC-MES對(duì)接’這個(gè)場(chǎng)景寫的。就像USB接口不管插的是鼠標(biāo)還是鍵盤只要符合協(xié)議就能用?!?.4 5分鐘故障注入演示腳本讓驗(yàn)收過(guò)程變成技術(shù)秀最后準(zhǔn)備一個(gè).bat腳本答辯時(shí)雙擊運(yùn)行全程5分鐘自動(dòng)完成故障注入與恢復(fù)驗(yàn)證echo off echo 【開始演示PLC斷電→MES宕機(jī)→網(wǎng)絡(luò)恢復(fù)】 echo. echo 1. 模擬PLC斷電... timeout /t 3 nul echo ? 已拔網(wǎng)線監(jiān)控臺(tái)應(yīng)顯示紅色告警 timeout /t 5 nul echo 2. 模擬MES服務(wù)宕機(jī)... net stop MES Test Service 2nul timeout /t 3 nul echo ? MES服務(wù)已停失敗隊(duì)列計(jì)數(shù)應(yīng)上升 timeout /t 5 nul echo 3. 恢復(fù)PLC網(wǎng)絡(luò)... echo ? 已插回網(wǎng)線監(jiān)控臺(tái)應(yīng)顯示綠色連接 timeout /t 3 nul echo 4. 恢復(fù)MES服務(wù)... net start MES Test Service 2nul timeout /t 3 nul echo ? MES服務(wù)已啟失敗隊(duì)列應(yīng)清零 timeout /t 5 nul echo 5. 演示結(jié)束所有指標(biāo)已回歸正常。 echo ? 查看監(jiān)控臺(tái)右下角延遲10ms失敗隊(duì)列0CPU5% pause為什么有效它把抽象的“高可用”變成可視化的紅→綠→紅→綠過(guò)程導(dǎo)師看到你連net stop命令都寫進(jìn)腳本立刻相信你真做過(guò)壓測(cè)最后一句“延遲10ms”直擊產(chǎn)線最敏感指標(biāo)比說(shuō)一百句“性能優(yōu)秀”都有力。從那以后我每次交付MES對(duì)接項(xiàng)目都強(qiáng)制走一遍這三張表一個(gè)腳本。不是為了應(yīng)付驗(yàn)收而是因?yàn)檎嬲墓こ棠芰筒卦谀愀也桓抑鲃?dòng)制造故障、并確保它按預(yù)期恢復(fù)。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
人妻熟女字幕一区二区| 日韩精品在线观看网站| 熟妇高潮精品一区二区三区下载| www鬼畜国产男人的天堂| 国产 热久久久久国产精品| 91殴美| 黑人精品久久97| 欧美嫩性色| 亚洲精品日日夜夜52| 伊人操你| 日韩免费在线观看不卡| 91精品人| 超碰免费人妻人人| 91色综合| 日韩有码 一区二区三区| 啊啊啊啊免费视频| 久9无限国产| 欧美偷拍| 色黄污美女啪啪啪免费网站| 国产成人午夜视频网址| 久久久久久国产成人| 秋霞色色影院| 日本黄大片在线观看视频| 精品人妻一区二区免费蜜桃视频| 久久东京国产精品视频| 国产AV激情无码久久无码| 91人妻人人澡人人爽人人精品| 亚洲精品蜜桃久久久| 日本不卡免费二区| 997色在线| 91欧美性| 久久超碰网| 久久久久久久唑| 日夜精品| Av手机版天堂网| 五月丁香六月综合缴清无码| 操逼www.| 亚洲二区精品在线观看| 欧美视频一区二区在线| 国产成人自拍视频在线| 亚洲av乱伦色图网站| 无套内射性感少妇视频| 99综合免费视频| 精品一区二区亚洲国产| 夜夜爽77777| 欧美午夜色妇色鬼| 精品中文日韩字幕视频| 国产精品久久久久9999小说| 麻豆国产97在线| 人人搞人人插人人操| 夜草网站| 青娱乐亚洲自拍| 久久人人爽人人爽人人片Ⅴ| 97视频在线观看高清资源| 中文字日本乱码| 99热aaa| 99re公开精品免费视频| 亚洲精品日韩国产欧美| 日本国产亚洲一区在线观看| 男人天堂久久精品| 婷婷伊人五月| 黑人操一区二区| 亚洲Av无码成人精品国产| 成人免费不卡在线视频| 蜜臀久久久久久999| 超碰在线974| 天天综合网1| 超碰99在线| 熟女这里只有精品6| 日韩精品 视频一区二区| 少妇干B| 丝袜美腿诱惑亚洲欧美视频在线观看| 加勒比AV网| 91 亚欧| 欧美日韩在线小说 | 老熟妇综合| 91在线一起| 国产日韩精品suv| 乱伦a片视频| 日韩三级一区 | 另类天堂| 久久老子无码午夜伦不卡| 欧美狠狠弄| 69丨亚洲丨精品丨入口免费播放| 亚洲图片色图欧美另类| 久7色| 爱爱久久| 91P0RNY大屁股人妻| 免费av大片| AV一二区| 男人久久天堂| 国产成人+综合亚洲+天堂| 亚洲免费日韩在线一区二区| 免费观看一区| www色色com| 中文字幕人乱码中文字的预防方法 | 曰本人妻人人澡人人夹| 国产美女精品| 国产亚洲精品A在线观看下载| 色五月婷婷久久| 日韩av情韩国爱禁区av一区二区 | 欧美亚洲高清| 久久人人爽人人爽人人片Ⅴ| 日韩图区| 欧美日日操| 麻豆久久久久久久久丝袜| 欧美日韩亚洲天堂| www.欧精品| 久久久精选| 色久桃花影院在线观看| 亚洲日韩青青草色月| 午夜超碰| 久久久久成人蜜桃精品| 色悠久| 五月丁香啪| 欧美色蜜桃97| 免费观看的av| 天美传媒AV在线| 五月天色色网站| 大香蕉92| 亚洲成A∨人影院在线欢看| 天美欧美国产| 免费看A片毛毛片在线播| 插入粉嫩少妇视频| 国产精品免费视频人成| 亚洲图片欧美| 国产精品久久久视频| 国产97在线 | 亚洲| 欧美激情五月天| 欧美成人贴图| 日韩三级一区| 婷婷av在线中文字幕| 东北老女人的激情视频| 青青草久草AV| 欧美日韩国内不卡| 熟女人妻一区二区三区| 99re这里只有精品3| 欧美日韩啪啪电影| 日本一卡二区在线| 国产精品久久久视频| 男女性无套 免费九一| 91色综合激情| 国产精点久久久成人| 91美女视频。| 日本加靬比网站发布页| 操我无码| 强被迫伦姧在线观看无码网站| 亚洲色9| 国产AV激情无码久久无码| 亚洲AV色图一区| 免费观看有码高清视频| 日熟女| 色五月激情AV在线| 婷婷香蕉欧美在线一区二区三区| 欧美日韩国产另类综合| 欧美性性性| 91网站视频在线观看| 黄片不用下载在线观看| 精品三级在线专区| 亚洲天天天| 久久精品免费| wwwcaobibi| 国产在线观看一区二区三区| 久操| 蜜桃久久久久久久久久久久| 国产原创精品| 中文字幕 码 自拍 视频 区| 色网在线视频观看免费| 国产二区三区免费视频| 丰满的三级少妇欧美久久久| 操逼A∨| 不卡六六在线91| 激情自拍 校园春色| 亚洲古典另类欧美在线| 色黄污美女啪啪啪免费网站| 极品白嫩美少妇在地板上位骑射淫水泛滥| 91操人| 殴美性色a级欧美| 日韩AV无码中文一区二区| 亚洲国产97| 日韩亚洲97| 嗯~啊~快点 死我视频| 国产伦乱91| 国产乱伦亚洲| 日韩熟女无码| 欧美裸体美女日麻屄| 欧美少妇高潮视频| 欧美大干日韩| 偷拍新久久| 亚洲情色综合网| 伊人丝袜美腿高跟在线观看高清| 一二三啪啪专区| 另类图片五月天| 久久激情视频| 天天射影院| 熟女乱伦二区| 91日本在线观看| blacked精品一区国产| 日韩中文字幕视频| 素人一区二区三区日韩| 天堂在线一区二区| 91精品国久久久久久无码| 中文字幕91综合| 日韩偷拍色图| 日韩精品熟妇| 日日黄色三级网站| 91 国产丝袜在线播放-百度| 91欧美性| 久久华人网| 伊人在线大香蕉视频久久| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 青春草莓视频在线观看网址| 日韩一级二级三级在线不卡观看完整| 日本一区二区不卡| 日本性爱视频一级| 免费αⅴ在线观看| 久久艹逼视频| 蜜桃色色网站视频三区| 英伦大奶子熟妇吊带| 亚洲美女精品| 九七毛片九九毛片| 91亚洲图片| 久久高潮妇女视频| 欧美激情视频在线一区| 大黄片做爱的大的| 探花激情视频| 美国久久一二三四| 亚洲素人综合| 亚洲无码精品AV久久久| 美中日韩无码| 一区二区三区精品黑丝白丝酒店对鸡| 麻豆黄色五月天| 热久日综合| 久久久男人的天堂| 欧美99999| 香港澳门日本三级网站| 色综合九九| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 欧美狠狠弄| 本道在线| 成人五月天丁香激情综合| 午夜视频久久久久一区| 欧美性爱十八禁| 久久久草成人网站久久久草成人久久久草久久久 | 国产精品制服丝袜清纯唯美| 色婷婷丁香五月天| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 亚洲综合性网址| 国产一区二区在线看| 亚洲欧美国产va在线播放频| 国产区性爱在线视频秋霞豆| 日韩三级网址| 欧美综合天堂| 国产福利在线视频网站| 精品视频123区小说区| 亚洲欧美日产国产91毛片| 狠狠入| 五码视频在线观看| 超碰97起碰| 亚洲999综合| 啊啊啊爽爽| 国产aⅴ无码片毛片一级网站| 殴美性色a级欧美| 天天操天天7| 乱伦熟女专区| 亚洲成人碰碰| 99超碰网| 天天日天天插| 亚洲欧美骚| 性在久久久久久| 欧美亚洲激情小说| 欧美一区二区| 亚洲码专区| 97这里只精品| 国产精品久久99日日| 青草综合| 亚洲情色一区综合| 精品人妻中文字幕高清| 丁香激情五月天| 夜夜免费视频| 美女国产一区二区久久| 久久精品人妻一区二区| 91精品久久久久五月天精品 | A片大香蕉在线| 色婷婷丁香五月| 神马久久免费电影观看| 日本性爱少妇| 亚洲女人毛茸茸91| 欧美劲爆视频一区二区| 动漫av中文| 免费观看国产小粉嫩喷水精品午| 91美女色视频亚洲| 一线黄色免费性爱片| 九九九九九九成人| 99这里只有精品国产| 欧美中文字幕男人天堂久久精品| 熟妇一区二区| 人人爽天天爽| 色综合av综合久久| 日本加靬比网站发布页| 国产成人无码a| 亚洲国产精品久久久男人的天堂| 午夜亚洲国产理论秋霞| 韩国国产欧美情侣视频在线| 操操操日本的逼| 亚洲 综合 第一页| 99色在线观看| 日韩一级性爱无码| 在线观看午夜婷婷久久久久清性观看| 欧美久久人人网| 日韩 女同 综合| 国产精品一区二区黄片| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 综合网久久| 日韩综合无码色欲vv| 综合91网| 日本中文字幕在线视频| 欧美东京热青青草| 蜜桃久久久久久久| 26UUU欧美激情一区二区| 狠色婷婷久久一区二区三区_| ,成人免费啪啪视频| 秋霞鲁丝午夜无码一区二区三| 成人乱码一区二区三少妇| 美女性91| 99re99视频在线免费观看| HEYZO高无码国产精品227| 情色大香蕉| 欧美最婬乱婬爆婬性视频| 久久久久免费看少妇A片特黄| 长久操视频| 狠狠操狠狠| 不卡中文字幕aⅴ在线| 午夜无码熟妇丰满人妻| 天天狠| 精品成人动漫一区二区| 欧美性色欧美| WWW.加勒比人妻一区不卡.com| 91在线精品| 91亚洲色图| 97视频在线观看网站| 久久侵犯人妻爽爽爽| 亚洲性猛交| 国产欧美一区激情交| 国产免费黄色一级大片| 欧美综合自拍亚洲综合图| 中文字幕国产精品1区| 超碰成人最新最好看| 性天堂| 男人的天堂三级| 亚洲不卡av在线| 亚洲天堂久久| 亚洲精品亚洲人成人网| 人妻丰满熟妇一区二区三| 久久久亚洲精品中文字幕人妻| 日日AV加勒比| 大香蕉欧美伊| 有码免费观看| 欧美国产日韩清纯唯美| 久久香蕉综合一本到3atv| 激情文学88| 超碰色图| 熟妇人妻一二三区免费| 久久久草草精品| 丰满少妇高潮无码| 午夜欧美J进J出白浆流出久久久 | 久久99国产精品| 97超级色碰碰| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 97资源超碰| 色婷婷成人| 亚洲精品中文字幕一区在线视频 | 色婷婷综合久久中文字幕雪峰| 99色在线| 高清无码91| 91嫩草在线| 伊人网在线视频| 国产精品乱码久久久久久久久久久久| 99国产精品人妻人伦| 欧美国产日韩高清在线| 操婷婷逼| 99无码| 亚洲成人av色网| 婷婷亚洲天堂| 伊人五月天| 激情99| 亚洲色鬼| 亚州成人a∨| 97资源欧美| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 亚洲欧美高清无码| 国产9 9在线 | 亚洲| 久久久久久9| 日本一区二区中文字幕久久| 欧美性爱精品七区| 国产 无码 一区二区| 无码聚合| 99热婷婷| 久草资源在线视频官方总站日韩丝袜美腿| 熟妇人妻一区二区三在线| 骚女高跟AV在线| 亚洲自拍青操视频| 日日夜夜骑| 亚洲伊人久久综合97| 2017人人操,人人摸| 免费在线黄片视频| 丁香五月成人| 九九久久99| 久久久久921| 91欧美经典| 欧美精品久久96人妻无码| 天天色黄色影院天天操| 色综合色综合网| 中文字幕二区日韩天堂| 91N综合在线| 欧美日韩不卡传媒| 91老熟女逼| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚 | 男人的天堂com| 又大又大又大又粗爽高潮观看| 啪啪啪东京| 日本精品成人无码| 国产精品99999| 六月丁香啪啪啪| 99在线精品观看视频中文| 欧美激情一| 综合 亚洲 欧美| AV一起草在线| 超碰人人妻| SS久久| 男女香蕉一区二区| 97爱| 色综合色综合网| 爆乳免费黄网站| 天天摸天天舔天天操| 欧美激情精品| 亚欧性爱ab| 91女网站| 欧美亚洲首页| 免费操逼视频下载| 男人 天堂 日 亚洲| 高颜值美女口爆高潮浪叫| ,成人免费啪啪视频| 六十路日本| 国产美女口爆吞精| 麻豆三极片| 乱色视频中文字幕| 丝袜天堂网| 亚川综合视频| 久久国产精品91| 肥佬影院91| 无码在线亚洲| 少妇精品久久久| 欧美岛国精品在线观看| 91麻豆天美国产欧美日| 偷拍导航视频网站| α√在线| 98福利在线视频| wwwxxx日本爽| 四虎国产成人精品免费一女五男| 超碰97网站| 干美女人妻| 性爱视频啪啪啪啪| 久久最新视频免费观看| 免费无码婬片AAAA片直播色戒| 五月开心网| 97人人夜| 日韩欧美视频青青| 亚洲天堂资源网| AV大香蕉| 啊啊啊啊操死我| 99久热| 97视频免费播放| www.狠狠| 999久久久| 香蕉99秘 精品一区丁香| 精品午夜福利| 国产精品老熟女一区二区| 9丨久久九九九| 天天色粽合合合合合合合| 日韩三级av片| 九九九综合精品| 秋霞色色影院| 91美女视频在线免费观看| 十八禁av无码免费网站APP| 欧美综合制服在线| 欧美日韩中文亚洲v在线综合| 欧美激情黑人| 婷婷五月丁香五月| 久久久久久久久久va| 久久人妇| 99在线观看| 久久男人天堂| 美女啪欧美一区| 午夜120视频在线观看| 综合大香蕉美。| 亚欧性爱在线无码| 绯色一区二区三区不卡少妇| 精品美女少妇一区二区三区| 美女黄频a美女大全免费皮| 欧美97av| 99re69| 国产福利精品最新在线| 少妇综合网| 亚洲爱爱视频一区二区| 色五月婷婷五月天| 国产亚洲性生活视频播放| 懂色av中文字幕一区二区三区天美| 久久艹逼视频| 成人自拍三级在线观看| 久久久久久十| 九九九九九九九九九九精品视频| 天天插天天插| 久久性爱网站| 久久精品国产精品一区| 偷拍亚洲视频一区二区三区四区| 中文字幕丰满子伦无码专区在线视频最新 | 成人av影院在线观看| 福利大香蕉| 麻豆黄色五月天| 一级久久性爱视频| 亚洲码在线中文在线观看| 97少妇人妻中文字幕久久| 精品夜夜澡人妻无码| 国产黄片在线免费观看| 97超碰人人模人人拍人人| 99re在线视频国产| 国产白嫩精品久久| 天天日天天舔天天喷天天射| 激情视屏国产乱伦强奸| 日本黄大片在线观看视频| 99超碰碰| 亚洲精品97久久中文字幕| 色大师网站www永久网站视频| 婷婷色婷婷| 欧亚乱色熟女一区二区| 亚洲欧洲中文日韩女优乱码| 97爱综合| 天天干嫩逼网| 日韩三级av片| 99精品无码| 亚洲自拍欧美色综合| 91天美传媒精品| 日韩三级久久久| 99啪啪| 亚洲成A∨人影院在线欢看| 人人摸.人人色| 91av熟女人妻| 亚洲 中文字幕 精品| 91夜色| 亚州综合色| 国产伦精品| 精品人妻一区二区三区视频在线| 亚州精品人妻一二三区| 另类成人首页一区| 97精品视频在线| 啊啊啊啊啊舒服| 国产后入清纯| 国产AB视频| 日韩成人人妻网站| 久久精品一区一起草| 欧美在线|亚洲| 欧美骚少妇| 久久久三区二区一区| 天天搞欧美| 超碰97极品9| 亚洲精品熟妇1区2区3区。| 亚洲蜜臀精品视频久久| 老熟女天天操| 亚洲人妻在线精品| 国产精品露脸在线观看| 欧美天天干| 综合久久六月久久婷婷| 久久精品色欧美aⅴ一区二区| 久精品无码av一区二免费国产在线观看| 精品国产人成在线| 亚洲综合一区二区| 欧美少妇熟女| 超碰久久草| 黄站在线免费观看| 久久久久久九九九| 日韩精品在线视频在线观看| 中文字幕成人理论在线| 污啪啪啪视频| 亚洲视频一二区| 欧美综合777| 男同专区一区二区三区在线| 日韩视频中文字幕| 国产51色综合久久免费| 99自拍视频在线| 欧美亚综合色图| 国产1727欧美| 91日韩国产欧美亚洲另类精盘州至城都| 亚洲色婷婷久久久综合日本| 亚洲一区二区三区不卡国产欧美| 操比国产| 亚洲丝袜色图| 情色图区| 亚洲小电影免费涩涩成人在线高清| 凸凹视频在线观看| 天天摸夜夜摸| 人妻丰满熟妇av无码区蜜桃| 超碰97人妻免费在线| 日韩一级成人毛片免费观看| 精品视频日日夜夜| 精品久操| 无码免费在线观看黄色片| 亚洲色图欧美视频| 99re8超碰| 欧美97网| 熟女精品va中文字幕| 国产乱码久久| 久久99干一本高清| 超碰国产精品久| 殴美牲| 欧美,日韩,中文,另类| A级国产欧美激情在线| 国模少妇一区二区三区| 天堂射| 国产亚洲99久久精品熟| 中文字幕五区| 国产精品一区在线播放| 无码黑人精品一区二区三区三| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 黑人娇小av在线播放| 天天干天天狼在线视频| 嗯嗯啊好大| a片在线播放| 91 刺激在线| 国产黑白丝在线| 欧美经典一区二区三区| 亚洲成人精品久久久| 夫妻天天操岛国视频| 国产精品秘 福利姬在线观看| 日韩一级二级三级免费看完整版国语版 | 天天干2区3区| 中文字幕99999| 欧美性爱五月天| 青青草色AV| 一级免费啪啪片| 少妇熟女视频一二三区| 乱伦日本色图AⅤ| 亚洲综合图片在线| A V视频日本| 欧美91精彩| 国产av强奸美女| 天天α片| 久操网线| 亚洲蜜臀精品视频久久| 日韩婷婷| 亚洲美女精品九九视频| 性吧在线视频| 久久精品| 色九九九九| 亚洲国产婷婷在线播放| 最新9久久久9免费视频| 日韩AV无码中文一区二区| 麻豆黄站| 色99在线| 九九九九热| 大香蕉99热| 中文字幕亚洲永久精品| 久久久久久久久久久久欧美日| 精品高清一区二区三区三州| 精吧天堂| 激情婷婷丁香| A片大香蕉在线| 欧美亚洲厕所精品偷拍91| 亚洲高清国产理伦片| 超碰4A| 色综合中文字幕不卡| 色婷婷六月丁香七月婷婷| 97欧美色资源| 人妻中文在线| 无码久久国产 | 国产精品自拍欧美在线| 東南亚性呦成人伦理资源在线视频| 国产按摩一区二区三区| 丰满美女一级毛片在线播放| 欧美综合777| 久久黄黄| 家庭乱伦性爱av| 欧美高清91| 婷婷五月天久久精品视频一区二区三区| 日本十八禁免费看污网站| 中文字幕免费看| 2020中文字幕| 操逼视频亚洲| 东京热一区二区中文字幕| 性爱AV天堂| 91操人| 中文色综合| 亚洲欧洲综合| 欧美999999| 欧洲无码一区二区| 国产精品爽爽va在线观看98| V A在线| 精品一区二区2| 91亚洲影院综合| 99久热| av无码av无码专区| 婷婷久久五月综合激情| 青青青草原| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 夜夜操91744565| 日本午夜精品理论片A级APP发布| 99久久精品国产系列| 国产深喉| 加勒比av官网在线| 爱爱动态试试看6 0秒| 色吧五月| 亚洲天堂无码| 熟女五十路一区二区三| 欧美91精品国产自产| 国产精品白丝AV| 国产地址二三| 久久超碰、| 91色艳| 99精品免费| 国产欧美亚洲精品a第2页| 国内毛片无遮挡国产| 97天堂| 婷婷激情四射| 欧美色图99| 日韩精品系列| 超碰无码五月97| 日韩午夜国产| 大香蕉色网| 亚洲中文字幕有码视频一区二区三区| 激情深爱五月天| 亚洲高清在线| 99久在线精品99re8热| 白嫩国模丰满一二三区| 人妻系列无码专区中文有码| 国产女人高潮嗷嗷嗷叫小说| 免费啪啪av| 国产午夜福利电影免费在线观看| 91操熟女| 青娱乐国产剧情av一区| 超碰97护士| 另类图片综合| 亚洲在线网站| 中文字幕五月婷婷免费| 翔田千里Av在线| 在线岛| 精品亚洲国产成人精品| 国产黄色 A 片免费看| 国产精品制服丝袜清纯唯美| 日韩一区二区高清在线观看的| 国产高清26uuu| 色婷婷九月天天综合| 色青青久久影视| 在线播放中文字幕| 亚洲欧美激情另类色图| 97视频在线免费看| 大吊色| 香蕉色网| 青娱乐黄色录像| 亚洲欧美人妻| 国产福利电影| 国产精品探花视频| 色色五月婷婷| 夜夜操夜夜爽夜夜高潮| 91色伦综合| 超碰偷拍| 男人的天堂 在线一区| 操逼视频国产无套| 亚洲一级特黄大片在线播放91| 图片区小说区| 国产精品久久久视频| 韩国女主播青草在线| 看看日B真人视频| 老鸭窝成人免费毛片视频| 天天日天天操天天射河南省| 欧美丰满少妇xx高潮| 青青草天天亲夜夜操网| 亚洲情色1区| 久久久专区| 精品国产AV一区天美传媒| 国产9 9在线 | 亚洲| 亚洲成熟国产精品美女| 国产精品一区二区三区在线密挑| 自拍欧美| 啊啊啊啊啊啊在线| 操日韩第| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 人人摸人人入| 爽 好舒服 无码刺激久久| 日韩在线视频1234| 天天综合麻豆视频| 九九综合九九综合| 国产精品久久久久av| 欧美性,色九九| 亚洲Av诱惑| 亚洲日韩美国人妻| 日韩伦理久 久久 清纯| 精品二区三四区五电影 | 欧美情色男人的天堂| sewuyueav| 欧美强奸乱能| 亚洲熟女乱色| 全国男人天堂网| 精品国产一区二区三区四区在线看 | 日韩精品99久久久久久中文字幕| www.91逼逼.com| 久久婷婷五月| 乱操9999| 午夜啪啪片| 又黄又粗又硬又长又大| 91性情| 人妻精品视频一区二区| 少妇内射www在线观看视频 | 日韩伦理视频| 久操免费观看| 色丁香五月婷婷| 青青草久久| 丰满岳乱妇一区二区三区| 欧美亚洲性爱一区二区| henhen91| 丁香婷婷啪啪| 精品人妻一区二区蜜桃视频| 久久亚洲AV无码专区国产精品| 欧美18禁91| 日韩97| 亚洲丝袜色| 日韩人妻无码不卡网站| 国产一区二区啪啪视频| 亚洲综合情色| 天天搞在线综合网| 六月婷婷一区二区三区| 国产传媒午夜理伦精品| 国产精品久久发布| 日韩操啪| 中文字幕丝袜美腿| 美女被啪到深处抽搐视频| 美女黄色一级A视频| 久久精品超碰| 91国产精品在线看| 国产精品夜夜| 久久精品免费| 岛国黄片网站| 日本A级视频| 秋霞成人做爱| 综合91网| 日韩性爱小视频在线观看| 国产吹潮女在线观看| 俺去俺来也在线www| 综合熟妇一区二区三区| 久久丁香| 欧美999| 97视频620| 欧美亚洲尤物久久| 久久人妻一区二区三区高清| 日韩在线观看AV| 国产成人网址| 日韩三级伊人| 综合91网| 熟女乱伦二区| 日本操逼视频免费| 伊人 俄罗斯 a v| 天天日天天干天天整| 99少妇| 97玖玖人妻| 蜜乳AV一区| 国产蜜臀精品一区二区尤物| 久久黄黄| 又大又长又粗又爽又黄| 中文字幕av片| 天天看综合网| 少妇一级婬片免费放一级a性色.| 国产后入内射| 天天摸,夜夜摸| 亚洲精品乱码线路中文字幕| 欧美综合传媒| 国产黄a三级三级三级av在线看| 爱妃国产亚洲视频中文字幕| 亚洲精品 欧美精品| 俺去也婷婷| 久久成人国产精品| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 九月丁香婷婷色| 91高清欧美| 爱爱动态试试看6 0秒| 日韩精品亚洲专区在线影视| 久久精品超碰| 色综合20p| 大香蕉AV丝袜| 成人黑料社久久| www.亚洲成人一区| 日韩无码第3页| 亚洲色图加勒比| 91精品大奶人妻| 国产精品久久久久久久久久梁医生| 941超碰| 一区二区三区四区姦女| 亚洲一区日韩| 天天做日日做| 蜜臀在线视频| 免费视频观看60秒| 东京热熟女亚洲视频网站| 青青草日本无码| 国产福利第一视频| 2018天天干在线视频| 自拍六区| 综合熟妇一区二区三区| 啊啊啊好大好湿| 殴美,日韩国产伦精品| 欧美十八禁网站| 精品国产无码中文| 久久精品国产亚洲5555| 亚洲色婷婷综合久久久久中文| 97看操| 大香蕉 222| 啊啊啊啊一区| www.五月天| 超碰免费人人| 在线v中文字幕一区二区三区| 最新亚洲人成网站在线影院| 永久电影三级在线观看| 久久 精品| 嗯嗯不要视频| 五月天伊人网| 欧美色干| 丰满人妻-区二区三区免费看| 久久成人网站| 台湾佬中文娱乐网久久久久久久久久com| 超碰1024久久| 60秒试看最爽10分钟网站| 亚洲欧洲美腿丝袜| 国产欧美伊人| 91精品成人www| 久99久视频精选| 国产av白丝| 91在线综合网| 91新在线欧美| 超碰 av 女人天堂| 香港日本韩国人妇99www.wccm20| 5252色欧美在线| 色爱欲亚洲| 岛国人妻少妇av在线观看| 爱爱动态试试看6 0秒| 台湾大香蕉99热| 日韩在线97| 亚洲有码第一页| 天天操天天日青青草超碰av| 欧美日本不卡| 97在线/亚洲| 欧美日韩精品久久久久久久久东北老熟妇| 国产综合久| 97欧美| 毛片一区二区| a片偷拍视频| 亚洲天堂AV在线播放| 郑州宾馆老熟女露脸啪啪| 尤物国产一区在线观看| 99综合网| 亚洲成人一二三区| 少妇内射www在线观看视频| 一级黄碟| 欧美se综合| 日韩性爱小视频| 成年人黄色小视频网站| 久久精品国产免费观看99| 亚洲激情AV| 亚熟在线| 99re6在线视频精品免费完整版安卓版| 丝袜美腿91| 欧美色图综合| 中文字幕中文字幕一区二区| 亚洲国产无码精品首页久久久| 天美麻豆精品视频99| 91美女视频在线| 精品少妇一区二区| 日本成人在线不卡一区二区三区| 久久久亚洲Av| 久久丁香| 久久久网一区| 欧美亚洲首页| 日韩无码三级影院| 国产又爽又黄| 欧美性爱一区二区三区四区| 国产精品白丝AV| 免费视频在线一区二区不卡| α√在线| 91 国产丝袜在线放观看| 大香蕉伊然在亚洲91| 亚洲久久久久| h无码动漫在线观看| 爽爽歪在线视频| 亚洲性综合| 91精品人| 精品国产精品一区二区| 欧美久久婷婷| 亚洲人天堂| 欧美黑人精品一区二区| 色月天AV导航| 亚洲区 欧美区| 大香蕉专区| 伊人久久国产免费观看视频| 四虎在线视频| 激情综合网五月婷婷五月天| 熟女在线视频| 亚洲中文字幕一区二区| 99精品视频在线观看免费| 久久久久久久久久久久久久久性生活视频 | 97在线免费看| 午夜亚洲| 免费啪啪一级视频| 99xav| 成人毛片免费| 六六久久日韩不卡| 亚洲第一男人天堂| 思思热国产在线视频| 日本加靬比网站发布页| 久久久四区| 91free福利| nuu12国产麻豆精品| 亚洲欧美自拍偷拍| 国产91精品久久久久久久网曝门| 久热一区二区| 五月天婷婷综合| 人妻丰满熟妇av无码区蜜桃| 亚洲成人无码影院| 亚洲欧洲第二视频在线观看色图| 精品国产av一区二区三区四区入口| 激情丁香五月| 男人的天堂Va| 九九色婷婷| 国产乱码久久久| 立川理惠加勒比无码| 男人的天堂在线| 国产日韩区| 欧美日韩一干二干| 黄视频免费| 青青操少妇| 蜜乳AV.COM| 神马久久啊啊| 青青操综合网| 超碰到97情色| 欧美日韩另类在线播放| 亚洲欧美国产其他二区| 乱欲一区二区| 97这里有精品| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 国产家庭乱伦性爱视频| 国产怡红院| 中英熟女操女| 熟女色图在线| 色色色色日本| 久久中久文96| 久久免费精彩视频| 国产精品视频在线观看| 嗯嗯嗯嗯啊啊啊好紧好大| 免费A片三p视频| 亚洲欧美日产国产91毛片| www.91理论| 亚洲图片视频小说| 日韩有码一区三区| 国产精品爆乳懂色蜜乳| 少妇人妻无码| 婷婷五月天激情网| 亚洲色图A| 午夜呻吟欧美| 操日韩第| 色97欧美| 黑丝91视频| 做爱A级亚欧| 欧美综合天堂| 一本正道久久熟女| 国产女乱淫真高清免费视频| 99日视频在线免费| 黑操B| 国产精品爱欲| 蜜臀在线网站| 夜夜爽妓女| 婷婷视频在线免费观看| www欧美91| 午夜福利在线视频1000| 免费看欧美美女黄色大片 | 国产精品三级视频网站| 91超碰在线| 亚热日本熟女| 五月婷在线| 日韩无码三级影院| 久草这里只有精品| 96国产污污污丝袜| 亚洲老熟妇xxx| 国产日韩欧美亚洲精品95 | 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 在线观看成人性爱免费小视频| 欧美色图另类图片| 目产99999久久999| 丰满人妻一区二区三区| 色色色色日本| www国产无码| 97综合久第一页| 男插女青青影院| AV中文在线| 99久久婷婷丁香| 97超碰人妻| 色欧美色交综合| 日本黄色裸日本黄色裸体| 久久久一区二区三区四曲免费听| 操操操日本的逼| 日本成熟少妇A∨网站| 东京热,男人的天堂| 天天激色| 国产精品 午夜福利| 欧美精品第3页| hd成人一区二区在线| 午夜乱轮操逼视频免费看| 极品色| 天美传媒麻豆一区二区三区国产精| 日韩av色图| 日本丝袜美腿人妻九九| 91久久久久免| 五月天色色网站| 大色综合网| 国产高清免费不卡av| 9色国产精品一区粉嫩| 久久系列| 91性网| 欧美图片校园春色| 久久久9 9 9精品| 久草精品一区| 精品乱码久久久久| 人妻精品一区二区全免费| 欧美在线官网| 日本超碰在线国产一区| 性一交一乱一交A片久久四色| 夜间福利片1000无码| 国产日韩区| 艹精品| 欧美性生活免费网| 国产成人精品必看| 欧美Ⅴ性爱| 欧美亚洲自拍另类人妻| 超碰在线人人射| 欧美不卡五十路| 国产精品白领在线观看 | 日本性爱不卡视频| 精品亚洲黄色片 国产精品导航一区二区 | 婷婷九月色| 97在线视频观看| 日韩久久三区| 97超级久久强资源| 久久精品久久久久久久| 高清国产无码av| 亚洲天堂久久久久久粉红视频| 777超碰| 国产精品乱码久久| 五月丁香激情四射| 偷拍 欧美 日韩| 色屁屁影院www国产| 久久精品国内Av熟女高清| 91成人高清在线观看| 欧美色视频在线| 图片区小说区| 欧美成人都市人妻| 爆乳免费黄网站|