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

ARTICLE DETAIL

資訊詳情

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

基于.NET8的物聯(lián)網(wǎng)網(wǎng)關(guān):可視化配置、平臺(tái)對(duì)接與避坑指南

基于.NET8的物聯(lián)網(wǎng)網(wǎng)關(guān):可視化配置、平臺(tái)對(duì)接與避坑指南 簡(jiǎn)介基于.NET8的跨平臺(tái)物聯(lián)網(wǎng)網(wǎng)關(guān)源碼包面向工業(yè)物聯(lián)網(wǎng)平臺(tái)開(kāi)發(fā)、邊緣計(jì)算及數(shù)據(jù)采集場(chǎng)景解決PLC、CNC、掃碼槍、OPC UA/Server、MQTT等多種設(shè)備與Thingsboard、IoTSharp或私有MES/SCADA之間的雙向數(shù)據(jù)互通問(wèn)題。資源以可視化配置為主同時(shí)提供驅(qū)動(dòng)開(kāi)發(fā)接口便于快速接入異種協(xié)議包含1233個(gè)文件、約30MB以C#源碼cs為核心輔以cshtml/js/css界面文件、gif演示動(dòng)畫(huà)及png圖片并涵蓋OPC UA客戶(hù)端幫助類(lèi)、WTM框架封裝、通用CRUD模板等實(shí)用代碼可直接開(kāi)啟項(xiàng)目開(kāi)發(fā)或作為技術(shù)選型參考。已有46人瀏覽學(xué)習(xí)適合需要搭建跨平臺(tái)網(wǎng)關(guān)模塊、梳理邊緣計(jì)算處理流程或評(píng)估.NET物聯(lián)網(wǎng)中間件的開(kāi)發(fā)者。1. 基于.NET8的物聯(lián)網(wǎng)網(wǎng)關(guān)為什么值得再花一次精力選型做工廠數(shù)據(jù)采集和SCADA對(duì)接的老手大多有這種體會(huì)設(shè)備的通訊協(xié)議五花八門(mén)Modbus、OPC UA、S7、DL/T645各說(shuō)各話上層的IoT平臺(tái)也在換前幾年忙著接Thingsboard這陣子又有人把Thingsboard老用戶(hù)往JetLinks上遷還有用IoTSharp做私有化交付的。每一次平臺(tái)調(diào)整最大的工作量往往不在平臺(tái)本身而是在網(wǎng)關(guān)——現(xiàn)場(chǎng)那些既要下沉到設(shè)備層采集數(shù)據(jù)、又要上行到平臺(tái)做雙向控制的邊緣盒子。選錯(cuò)一次網(wǎng)關(guān)后面每換一個(gè)平臺(tái)就要重新寫(xiě)一遍設(shè)備接入邏輯非常傷。.NET8物聯(lián)網(wǎng)網(wǎng)關(guān)這類(lèi)項(xiàng)目解決的就是這個(gè)環(huán)節(jié)的痛點(diǎn)把設(shè)備接入、協(xié)議解析、平臺(tái)轉(zhuǎn)發(fā)、下行控制這些通用能力做成一款可視化配置的跨平臺(tái)網(wǎng)關(guān)部署后靠配置不靠改代碼設(shè)備接入和平臺(tái)對(duì)接都能在頁(yè)面上完成。它的適用人群很明確——正在做MES、SCADA數(shù)據(jù)采集的集成商接了多個(gè)Thingsboard/IoTSharp項(xiàng)目、想減少重復(fù)開(kāi)發(fā)的團(tuán)隊(duì)以及用.NET技術(shù)棧做工業(yè)互聯(lián)網(wǎng)、設(shè)備智能運(yùn)維的研發(fā)人員。對(duì)這些人來(lái)說(shuō)值得把時(shí)間花在“網(wǎng)關(guān)怎么選、配置怎么設(shè)計(jì)、坑在哪里”上。下文按落地路徑展開(kāi)。先從技術(shù)選型說(shuō)起看 .NET8 為什么適合做網(wǎng)關(guān)的底座再講可視化配置怎么設(shè)計(jì)才不會(huì)變成黑匣子然后把 Thingsboard、IoTSharp、自研平臺(tái)的對(duì)接方式拆開(kāi)最后專(zhuān)門(mén)列一個(gè)避坑清單把做網(wǎng)關(guān)容易翻車(chē)的幾個(gè)地方一次說(shuō)透。2. 技術(shù)底座選型為什么是.NET8跨平臺(tái)發(fā)布帶來(lái)的變化2.1 .NET8在工業(yè)網(wǎng)關(guān)上的三個(gè)關(guān)鍵優(yōu)勢(shì)做工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)以前的主流路線是C跑在Linux工控板上或者Java跑在軟網(wǎng)關(guān)容器里。.NET 框架在過(guò)去很長(zhǎng)一段時(shí)間里給工業(yè)用戶(hù)留下的印象是“Windows專(zhuān)用、內(nèi)存占用大、部署麻煩”直到 .NET Core 之后才慢慢改觀。.NET8 把跨平臺(tái)能力、內(nèi)存占用和發(fā)布方式都推向了一個(gè)新的成熟度選它做網(wǎng)關(guān)的底座有三個(gè)點(diǎn)值得展開(kāi)說(shuō)。第一個(gè)是內(nèi)存占用。用 .NET 8 做邊緣程序配合 GC 配置和 Native AOT 發(fā)布空閑內(nèi)存可以壓到幾十MB量級(jí)。相比傳統(tǒng) .NET Framework 動(dòng)輒幾百M(fèi)B起步這個(gè)量級(jí)放在工業(yè)網(wǎng)關(guān)的嵌入式環(huán)境里就有了可行性。第二個(gè)是跨平臺(tái)發(fā)布。一套代碼可以同時(shí)發(fā)布出Linux ARM64跑在RK3568、樹(shù)莓派這類(lèi)邊緣盒子上、Linux x64跑在軟網(wǎng)關(guān)或工控機(jī)上和Windows x64跑在SCADA服務(wù)器上這在工廠現(xiàn)場(chǎng)很有用——有些車(chē)間是Windows工控機(jī)有些又是ARM盒子同一個(gè)網(wǎng)關(guān)程序要能同時(shí)覆蓋兩種環(huán)境。第三個(gè)是庫(kù)生態(tài)。.NET 生態(tài)里有成熟的 MQTT 客戶(hù)端庫(kù)MQTTnet、OPC UA 客戶(hù)端庫(kù)OPCFoundation 官方庫(kù)、Modbus 庫(kù)NModbus 等、數(shù)據(jù)庫(kù)驅(qū)動(dòng)和 Web 框架網(wǎng)關(guān)需要的通信、存儲(chǔ)、配置界面這些基礎(chǔ)設(shè)施不用全部自己寫(xiě)。2.2 跨平臺(tái)發(fā)布與AOT裁剪邊界.NET8 發(fā)布跨平臺(tái)程序常見(jiàn)做法是用dotnet publish自帶 runtime并通過(guò).csproj里的RuntimeIdentifiers指定目標(biāo)平臺(tái)。這樣發(fā)布出來(lái)的是自包含程序目標(biāo)機(jī)器上不需要安裝 .NET 運(yùn)行時(shí)對(duì)工業(yè)現(xiàn)場(chǎng)很友好——很多工控機(jī)不讓裝額外運(yùn)行時(shí)。PropertyGroup OutputTypeExe/OutputType TargetFrameworknet8.0/TargetFramework RuntimeIdentifierslinux-arm64;linux-x64;win-x64/RuntimeIdentifiers SelfContainedtrue/SelfContained PublishSingleFiletrue/PublishSingleFile PublishTrimmedtrue/PublishTrimmed InvariantGlobalizationtrue/InvariantGlobalization /PropertyGroup這段配置里主要看三處。RuntimeIdentifiers決定了可以發(fā)布的目標(biāo)平臺(tái)列表發(fā)布命令里用-r linux-arm64指定具體平臺(tái)。PublishSingleFile把程序打成單文件部署時(shí)只拷貝一個(gè)文件加配置文件。PublishTrimmed開(kāi)啟裁剪以減小體積但這個(gè)選項(xiàng)要謹(jǐn)慎——網(wǎng)關(guān)程序通常大量使用反射來(lái)做協(xié)議插件加載和配置反序列化裁剪會(huì)把反射需要的元數(shù)據(jù)剪掉導(dǎo)致運(yùn)行時(shí)“找不到類(lèi)型”。如果確實(shí)需要裁剪做法是給有反射調(diào)用的程序集加上DynamicDependency特性或者直接在 csproj 里設(shè)置TrimmerRootAssembly把相關(guān)程序集排除在裁剪之外。實(shí)際項(xiàng)目里我一般不會(huì)對(duì)所有平臺(tái)開(kāi)啟裁剪而是把 ARM64 單文件作為首選部署形態(tài)。裁剪后的 ARM64 網(wǎng)關(guān)程序連帶運(yùn)行時(shí)體積在 30-50MB 量級(jí)對(duì)于存儲(chǔ)不大的盒子來(lái)說(shuō)很舒服。Win-x64 部署在服務(wù)器上空間不緊張裁剪帶來(lái)的收益不大風(fēng)險(xiǎn)卻不少不裁剪反而省心。2.3 網(wǎng)關(guān)程序的最小骨架配置加載、設(shè)備接入、數(shù)據(jù)上行三件事網(wǎng)關(guān)程序本質(zhì)上是個(gè)常駐服務(wù)喚醒后啟動(dòng)三部分邏輯讀配置、啟設(shè)備的接入通道、建上行的平臺(tái)通道。配置放JSON文件比放數(shù)據(jù)庫(kù)更直觀格式大致是這樣{ gatewayId: GW-0001, deviceChannels: [ { name: modbus-rtu-1, type: modbus-rtu, portName: /dev/ttyS4, baudRate: 9600, dataBits: 8, parity: None, stopBits: 1, pollIntervalMs: 1000, devices: [...] }, { name: opcua-channel-1, type: opcua-client, endpoint: opc.tcp://192.168.1.10:4840, security: None, pollIntervalMs: 500, devices: [...] } ], upstream: { type: mqtt, brokerHost: 192.168.1.100, brokerPort: 1883, topicPrefix: gw/GW-0001 } }加載配置的代碼非常簡(jiǎn)單用System.Text.Json反序列化成強(qiáng)類(lèi)型配置類(lèi)即可。但有幾個(gè)參數(shù)要在代碼里處理成約定而不是留給用戶(hù)隨意配。比如pollIntervalMs最低限到200毫秒——低于這個(gè)值會(huì)對(duì)設(shè)備和網(wǎng)關(guān)CPU造成無(wú)意義的壓力噴在文檔里不如直接寫(xiě)在代碼里。upstream.type當(dāng)前支持 mqtt、thingsboard、iotsharp 三種每種對(duì)應(yīng)不同的上行協(xié)議封裝。這樣的配置結(jié)構(gòu)把設(shè)備接入與平臺(tái)上行解耦了換平臺(tái)時(shí)只改 upstream 塊不動(dòng)設(shè)備通道配。3. 可視化配置從設(shè)備模型到規(guī)則鏈的落地設(shè)計(jì)3.1 可視化配置的兩個(gè)層次和生產(chǎn)者的選擇可視化配置有兩種做法。第一種是淺層的把設(shè)備接入?yún)?shù)做成界面表單比如選串口、填波特率、加寄存器表。第二種是深層的還要把數(shù)據(jù)處理和轉(zhuǎn)發(fā)規(guī)則做成圖形化編排比如“溫度超過(guò)閾值就報(bào)警并寫(xiě)入另一個(gè)Topic”。網(wǎng)關(guān)要能服務(wù)MES和SCADA的復(fù)雜場(chǎng)景只做到第一種不夠——SCADA場(chǎng)景通常需要對(duì)原始報(bào)文做規(guī)約解析、點(diǎn)位映射甚至要做簡(jiǎn)單的計(jì)算累計(jì)流量、溫差、效率這些靠死板的表單配置表達(dá)不了所以可視化配置的含義應(yīng)該包含規(guī)則鏈編排。在實(shí)現(xiàn)方案上開(kāi)源社區(qū)有Node-RED這種成熟的可視化編程工具可以直接嵌很多網(wǎng)關(guān)項(xiàng)目用Node-RED做規(guī)則流開(kāi)發(fā)者從零開(kāi)發(fā)一套拖拽配置的成本太高。但網(wǎng)關(guān)交付時(shí)要考慮現(xiàn)場(chǎng)實(shí)施人員的使用水平Node-RED的節(jié)點(diǎn)類(lèi)型對(duì)非IT背景的調(diào)試人員來(lái)說(shuō)上手門(mén)檻不低。如果目標(biāo)用戶(hù)是系統(tǒng)集成商工程師我一般建議自己做一個(gè)輕量級(jí)的“設(shè)備-點(diǎn)位-轉(zhuǎn)發(fā)”三層配置界面把配置項(xiàng)控制在二三十個(gè)左右再輔以簡(jiǎn)單的Web API做批量導(dǎo)入導(dǎo)出實(shí)用程度比上全套Node-RED高得多。3.2 用Web API方式做點(diǎn)位映射配置數(shù)據(jù)結(jié)構(gòu)的核心點(diǎn)位映射是整個(gè)可視化配置最核心的部分它解決“設(shè)備寄存器/節(jié)點(diǎn)的哪個(gè)值對(duì)應(yīng)平臺(tái)的哪個(gè)遙測(cè)字段”的問(wèn)題。配置界面本質(zhì)上是操作一套點(diǎn)位映射數(shù)據(jù)。舉個(gè)例子一個(gè)Modbus設(shè)備讀到的保持寄存器地址40001對(duì)應(yīng)平臺(tái)上的temperature字段地址40002對(duì)應(yīng)humidity。這個(gè)對(duì)應(yīng)關(guān)系如果只存在現(xiàn)場(chǎng)工程師的腦子里后面交接一定出問(wèn)題。{ deviceName: plc-1, points: [ { name: temperature, address: 40001, dataType: float, byteOrder: ABCD, multiplier: 0.1, storeRule: always, reportToUpstream: true, upstreamKey: temp }, { name: runningState, address: 40009, dataType: bool, bitIndex: 2, storeRule: onChange, reportToUpstream: true } ] }這樣一個(gè)點(diǎn)位配置要解決三個(gè)問(wèn)題。address和dataType解決“從設(shè)備哪里讀、讀出來(lái)是什么類(lèi)型”的問(wèn)題。byteOrder解決浮點(diǎn)數(shù)字節(jié)序的問(wèn)題——這是Modbus采集里最容易出錯(cuò)的點(diǎn)很多設(shè)備用“CDAB”而不是“ABCD”配置項(xiàng)里必須暴露出來(lái)而且建議做成下拉選擇而不是自由填。multiplier是系數(shù)有的設(shè)備原始值是0-1000實(shí)際工程量是0-100.0乘0.1就是顯示值。storeRule是存儲(chǔ)與上報(bào)策略——always表示每個(gè)采集周期都上報(bào)適合需要密集采樣的模擬量onChange表示只在值變化時(shí)上報(bào)適合開(kāi)關(guān)量和狀態(tài)量能大幅減少上行流量。4. 對(duì)接Thingsboard、IoTSharp和自研平臺(tái)三個(gè)平臺(tái)三種接法4.1 Thingsboard接入MQTT協(xié)議與雙向RPCThingsboard對(duì)網(wǎng)關(guān)的支持在物聯(lián)網(wǎng)平臺(tái)里算做得規(guī)范的。它提供了 Gateway MQTT API專(zhuān)門(mén)的網(wǎng)關(guān)Topic用于上報(bào)設(shè)備列表、遙測(cè)數(shù)據(jù)和設(shè)備屬性。網(wǎng)關(guān)接入Thingsboard大致分兩步先以網(wǎng)關(guān)身份連接MQTT然后通過(guò)v1/gateway/telemetry上報(bào)設(shè)備數(shù)據(jù)通過(guò)v1/gateway/rpc接收下行命令。訂閱RPC后Thingsboard 服務(wù)端發(fā)來(lái)的設(shè)備控制指令會(huì)到達(dá)網(wǎng)關(guān)網(wǎng)關(guān)再把指令解析成實(shí)際的設(shè)備寫(xiě)操作。// 使用 MQTTnet 作為客戶(hù)端庫(kù) var factory new MqttFactory(); var mqttClient factory.CreateMqttClient(); var options new MqttClientOptionsBuilder() .WithTcpServer(brokerHost, brokerPort) .WithCredentials(GW-0001, access-token) .WithClientId($gw-{Guid.NewGuid():N}) .Build(); await mqttClient.ConnectAsync(options, CancellationToken.None); // 上報(bào)遙測(cè) var telemetry new { ts DateTime.UtcNow.Ticks, values new Dictionarystring, object { { temp, 25.3 }, { humidity, 60 } } }; var payload JsonSerializer.Serialize(new { // Thingsboard 網(wǎng)關(guān)遙測(cè)上報(bào)格式{ 設(shè)備名: [ { ts:..., values: {...} } ] } devices new Dictionarystring, object { { plc-1, new[] { telemetry } } } }); await mqttClient.PublishAsync(new MqttApplicationMessageBuilder() .WithTopic(v1/gateway/telemetry) .WithPayload(payload) .Build());把這段代碼放在定時(shí)器里每秒鐘觸發(fā)一次網(wǎng)關(guān)就以設(shè)備名義持續(xù)向Thingsboard上報(bào)這條遙測(cè)鏈路的數(shù)據(jù)。注意一個(gè)細(xì)節(jié)上報(bào)周期要設(shè)置成略大于設(shè)備采集周期否則同一批數(shù)據(jù)會(huì)被重復(fù)上報(bào)兩次。Thingsboard的遙測(cè)存儲(chǔ)對(duì)同一時(shí)間戳的數(shù)據(jù)做了去重但重復(fù)上報(bào)還是會(huì)造成不必要的帶寬浪費(fèi)。如果設(shè)備上報(bào)頻率不高推薦storeRule為 onChange 的點(diǎn)位用事件驅(qū)動(dòng)上報(bào)而 always 點(diǎn)位才用定時(shí)上報(bào)。4.2 IoTSharp和自研平臺(tái)的接法先看API再談配置IoTSharp 的設(shè)備和遙測(cè)模型與Thingsboard相似都用“設(shè)備-遙測(cè)-屬性-命令”這套結(jié)構(gòu)所以接入邏輯大體可以復(fù)用。區(qū)別在于API路徑和認(rèn)證方式以及命令下行的Topic格式不一樣。接入這類(lèi)平臺(tái)最可靠的方式是去翻它的HTTP API文檔或者用Swagger頁(yè)面實(shí)測(cè)接口不要照抄Thingsboard的做法。常見(jiàn)做法是網(wǎng)關(guān)的 upstream 模塊支持一種“generic-http”類(lèi)型每秒或按點(diǎn)位變化批量POST JSON到平臺(tái)的/api/telemetry端點(diǎn)下行控制則通過(guò)輪詢(xún)平臺(tái)的命令接口實(shí)現(xiàn)。所謂輪詢(xún)而不是長(zhǎng)連接是因?yàn)镠TTP輪詢(xún)的兼容性最好幾乎任何自研平臺(tái)都有HTTP接口改造成本最低。遇到對(duì)標(biāo)MQTT的自研平臺(tái)時(shí)我一般會(huì)先問(wèn)三個(gè)問(wèn)題。平臺(tái)對(duì)設(shè)備接入有沒(méi)有官方SDK走M(jìn)QTT的話Topic命名規(guī)范是什么下行命令是同步請(qǐng)求還是發(fā)消息讓客戶(hù)端自己拉這三個(gè)問(wèn)題的答案直接決定了接入方案的選型。只要平臺(tái)支持MQTT就優(yōu)先讓自研平臺(tái)復(fù)用Thingsboard的Topic風(fēng)格——網(wǎng)關(guān)代碼里可以抽象一個(gè)IPlatformAdapter接口每個(gè)平臺(tái)一個(gè)實(shí)現(xiàn)類(lèi)配置文件里指定upstream.type即可。這樣后期接入新平臺(tái)時(shí)不需要改設(shè)備采集部分的代碼只增加新的Adapter類(lèi)設(shè)備側(cè)配置和點(diǎn)位映射表保持原樣。4.3 雙向數(shù)據(jù)通訊的方向定義上行遙測(cè)、下行控制、雙向心跳雙向數(shù)據(jù)通訊在SCADA和MES場(chǎng)景里不是一句空話要明確分成三個(gè)方向來(lái)實(shí)現(xiàn)。上行遙測(cè)采集周期內(nèi)的傳感器值、設(shè)備狀態(tài)、報(bào)警事件從設(shè)備經(jīng)網(wǎng)關(guān)到平臺(tái)。這個(gè)方向占據(jù)絕大多數(shù)流量由網(wǎng)關(guān)主動(dòng)推送。下行控制平臺(tái)的遠(yuǎn)程操作從平臺(tái)到網(wǎng)關(guān)再到設(shè)備寄存器或OPC UA節(jié)點(diǎn)。這要求網(wǎng)關(guān)具備“寫(xiě)”操作的能力。Modbus場(chǎng)景下寫(xiě)保持寄存器、寫(xiě)線圈是常見(jiàn)操作OPC UA場(chǎng)景下寫(xiě)Node的Value屬性。關(guān)鍵點(diǎn)在于權(quán)限和審計(jì)——網(wǎng)關(guān)應(yīng)該記錄每次下行控制的操作來(lái)源和結(jié)果否則現(xiàn)場(chǎng)“誰(shuí)改的參數(shù)”根本說(shuō)不清。雙向心跳網(wǎng)關(guān)和平臺(tái)之間的連接檢測(cè)。用MQTT的KeepAlive機(jī)制而非應(yīng)用層自定義心跳這樣省流量且標(biāo)準(zhǔn)。但要注意一件事MQTT斷開(kāi)重連后需要重新上報(bào)所有設(shè)備的狀態(tài)屬性表示網(wǎng)關(guān)重啟過(guò)否則平臺(tái)側(cè)看到的是舊狀態(tài)會(huì)誤判設(shè)備長(zhǎng)時(shí)間未上報(bào)。網(wǎng)關(guān)設(shè)備列表異常。每臺(tái)設(shè)備的設(shè)備狀態(tài)屬性通常包含lastSeen時(shí)間戳。在網(wǎng)關(guān)重連成功后發(fā)一次“設(shè)備在上線”屬性更新這個(gè)細(xì)節(jié)在可靠通訊評(píng)估里很重要。5. 常見(jiàn)問(wèn)題與避坑清單網(wǎng)關(guān)落地最容易翻車(chē)的5個(gè)地方5.1 串口被多個(gè)通道搶占導(dǎo)致采集線程崩潰現(xiàn)象現(xiàn)場(chǎng)一臺(tái)網(wǎng)關(guān)盒子里配置了兩個(gè)Modbus RTU通道物理上共用同一個(gè)串口。調(diào)試時(shí)發(fā)現(xiàn)一會(huì)兒這個(gè)通道正常一會(huì)兒那個(gè)通道超時(shí)采集數(shù)據(jù)亂跳。原因Modbus RTU是半雙工總線同一時(shí)刻只能由一個(gè)主站發(fā)起請(qǐng)求。多個(gè)通道同時(shí)輪詢(xún)同一個(gè)串口報(bào)文在物理層就沖突了設(shè)備端根本沒(méi)辦法正確應(yīng)答。解決要么用不同串口承載不同總線要么在網(wǎng)關(guān)內(nèi)部給每個(gè)串口加一把全局鎖同一串口上的所有通道串行輪詢(xún)。后者是更常見(jiàn)的處理注意輪詢(xún)的總周期會(huì)變長(zhǎng)比如兩個(gè)通道各50個(gè)點(diǎn)位每個(gè)點(diǎn)位20毫秒超時(shí)總周期可能超過(guò)2秒SCADA實(shí)時(shí)性要求高時(shí)要合理設(shè)計(jì)輪詢(xún)分組。5.2 OPC UA連接被“假在線”迷惑現(xiàn)象OPC UA客戶(hù)端連接成功后訂閱的數(shù)據(jù)項(xiàng)長(zhǎng)時(shí)間不更新但網(wǎng)關(guān)日志顯示連接正常平臺(tái)界面上數(shù)據(jù)卻是舊值。原因這是OPC UA訂閱的采集中斷導(dǎo)致的“假在線”。OPC UA服務(wù)端的訂閱publishing interval較長(zhǎng)或者服務(wù)端連接數(shù)達(dá)到上限后不再推送數(shù)據(jù)但TCP連接仍維持客戶(hù)端誤以為一切正常。解決在網(wǎng)關(guān)側(cè)增加應(yīng)用層數(shù)據(jù)新鮮度檢查——如果某個(gè)訂閱的數(shù)據(jù)項(xiàng)超過(guò)N個(gè)周期未更新N通常取5-10個(gè)publishing interval判定為數(shù)據(jù)陳舊主動(dòng)重建訂閱。這個(gè)邏輯不能省因?yàn)橹苯訑嚅_(kāi)TCP會(huì)讓服務(wù)端產(chǎn)生很多日志重建訂閱才是優(yōu)雅的做法。5.3 Thingsboard遙測(cè)字段類(lèi)型不匹配導(dǎo)致數(shù)據(jù)寫(xiě)不進(jìn)現(xiàn)象網(wǎng)關(guān)上報(bào)溫度數(shù)據(jù)正常但平臺(tái)側(cè)遙測(cè)列表里始終查不到temp字段另一些字段又正常。原因Thingsboard對(duì)遙測(cè)字段做了類(lèi)型推斷如果設(shè)備歷史最早上報(bào)的temp是字符串比如網(wǎng)關(guān)側(cè)做成了25.3后面再上報(bào)數(shù)值型double平臺(tái)的Cassandra時(shí)序存儲(chǔ)會(huì)拒絕類(lèi)型不一致的寫(xiě)入。解決點(diǎn)位配置里的dataType要和上游原始數(shù)據(jù)結(jié)構(gòu)保持嚴(yán)格一致這個(gè)類(lèi)型不能被“可視化配置”自動(dòng)轉(zhuǎn)換。網(wǎng)關(guān)里做類(lèi)型轉(zhuǎn)換時(shí)也要小心寧可統(tǒng)一用浮點(diǎn)數(shù)不要一會(huì)兒字符串一會(huì)兒數(shù)值。已經(jīng)壞掉的歷史數(shù)據(jù)類(lèi)型在Thingsboard里很難改最徹底的辦法是把遙測(cè)字段名換掉讓平臺(tái)重新推斷。5.4 網(wǎng)關(guān)重啟后設(shè)備狀態(tài)“假離線”現(xiàn)象網(wǎng)關(guān)斷電重啟平臺(tái)側(cè)所有通過(guò)該網(wǎng)關(guān)接入的設(shè)備全部顯示離線即使網(wǎng)關(guān)本身顯示在線遙測(cè)數(shù)據(jù)也仍在上報(bào)。原因設(shè)備在線狀態(tài)不是平臺(tái)實(shí)時(shí)探測(cè)的而是依賴(lài)設(shè)備上報(bào)的“在線心跳”或“離線消息”。網(wǎng)關(guān)重啟后它和設(shè)備間的TCP/串口鏈路消失但平臺(tái)側(cè)的連接狀態(tài)還是舊的。解決網(wǎng)關(guān)啟動(dòng)流程里加一步“初始狀態(tài)上報(bào)”連接上行通訊成功后立即上報(bào)所有子設(shè)備的在線狀態(tài)和基礎(chǔ)屬性。這個(gè)動(dòng)作放在程序入口的IHostedService.StartAsync()中不要放在后臺(tái)定時(shí)任務(wù)里——定時(shí)任務(wù)依賴(lài)的通道可能在StartAsync時(shí)還沒(méi)就緒順序要保證。5.5 高并發(fā)下點(diǎn)位上報(bào)表導(dǎo)致內(nèi)存暴漲現(xiàn)象一個(gè)網(wǎng)關(guān)上接了500個(gè)點(diǎn)位每個(gè)點(diǎn)位都設(shè)成 always 上報(bào)運(yùn)行一小時(shí)后網(wǎng)關(guān)內(nèi)存漲到幾百M(fèi)B最后被系統(tǒng)殺掉。原因點(diǎn)位上報(bào)產(chǎn)生大量小對(duì)象放入內(nèi)存隊(duì)列后消費(fèi)速度跟不上生產(chǎn)速度。尤其當(dāng)上游平臺(tái)暫時(shí)不可用、MQTT重連失敗時(shí)內(nèi)存隊(duì)列會(huì)無(wú)限膨脹內(nèi)存爆炸是遲早的問(wèn)題。解決內(nèi)存隊(duì)列要有界設(shè)置最大積壓條數(shù)常見(jiàn)做法是10萬(wàn)條超過(guò)后丟棄最老的遙測(cè)數(shù)據(jù)并記錄一條告警。代碼上用ChannelT做生產(chǎn)者消費(fèi)者模型更穩(wěn)消費(fèi)端批量打包發(fā)送減少M(fèi)QTT發(fā)布次數(shù)。如果現(xiàn)場(chǎng)對(duì)數(shù)據(jù)完整性要求極高那就把遙測(cè)寫(xiě)入本地SQLite做持久化緩沖等平臺(tái)上連后按序補(bǔ)發(fā)代價(jià)是網(wǎng)關(guān)代碼復(fù)雜度上升一個(gè)等級(jí)。6. 進(jìn)階數(shù)據(jù)新鮮度自診斷和看門(mén)狗自恢復(fù)網(wǎng)關(guān)部署到現(xiàn)場(chǎng)后遠(yuǎn)程維護(hù)的痛點(diǎn)不是功能不夠而是不知道它什么時(shí)候“卡住”了。設(shè)備采集死鎖、上行斷連后重連不成功、磁盤(pán)寫(xiě)滿(mǎn)這些問(wèn)題在無(wú)人值守的盒子上潛伏很久直到業(yè)務(wù)方發(fā)現(xiàn)數(shù)據(jù)異常才被暴露。所以在網(wǎng)關(guān)里加兩個(gè)機(jī)制都屬于投入小收益大的事。數(shù)據(jù)新鮮度自診斷在網(wǎng)關(guān)注冊(cè)一個(gè)“診斷設(shè)備”每5秒一次自檢檢查每個(gè)通道最近一次成功采集的時(shí)間。如果某個(gè)通道超過(guò)10個(gè)采集周期沒(méi)有成功采集就把診斷設(shè)備的遙測(cè)數(shù)據(jù)中增加一個(gè)channel_healthyfalse的字段上報(bào)給平臺(tái)。這樣不用登錄網(wǎng)關(guān)在Thingsboard或自研平臺(tái)的大屏上就能看到網(wǎng)關(guān)健康狀況。public class HealthChecker : BackgroundService { private readonly IChannelHealthRegistry _registry; private readonly IUpstream _upstream; private static readonly TimeSpan CheckInterval TimeSpan.FromSeconds(5); protected override async Task ExecuteAsync(CancellationToken ct) { while (!ct.IsCancellationRequested) { var unhealthyChannels _registry.GetUnhealthyChannels(TimeSpan.FromSeconds(10)); if (unhealthyChannels.Any()) { await _upstream.ReportTelemetry(diagnostic, new { unhealthyChannels string.Join(,, unhealthyChannels) }, ct); } await Task.Delay(CheckInterval, ct); } } }這段代碼把每個(gè)通道的“最近成功時(shí)間”集中在注冊(cè)表里維護(hù)。設(shè)備采集線程每次成功讀取一幀數(shù)據(jù)后調(diào)用_registry.MarkHealthy(channelName)HealthChecker獨(dú)立巡檢這些時(shí)間戳。這個(gè)模式的好處是診斷邏輯與采集邏輯完全解耦采集代碼不關(guān)心有沒(méi)有人看它診斷代碼不關(guān)心具體協(xié)議??撮T(mén)狗則是另一個(gè)層面的保障。最簡(jiǎn)單的做法是在部署配置里放一個(gè)守護(hù)腳本每30秒檢查主進(jìn)程是否還在不在就拉起。用systemd部署時(shí)直接配置Restartalways加RestartSec10s比自己寫(xiě)守護(hù)腳本可靠得多。[Unit] DescriptionIoT Gateway Service Afternetwork.target [Service] WorkingDirectory/opt/iot-gateway ExecStart/opt/iot-gateway/gateway Restartalways RestartSec10s EnvironmentASPNETCORE_ENVIRONMENTProduction [Install] WantedBymulti-user.target加上WatchdogSec也是可選的它能利用systemd的軟看門(mén)狗機(jī)制程序內(nèi)每N秒調(diào)用一次sd_notify(WATCHDOG1)超時(shí)后systemd強(qiáng)殺主進(jìn)程并重啟。這種方式比外部進(jìn)程輪詢(xún)更準(zhǔn)確適合對(duì)通訊可靠性要求高的SCADA場(chǎng)景。我自己做網(wǎng)關(guān)的經(jīng)驗(yàn)里被反復(fù)驗(yàn)證的規(guī)律是可視化配置解決“接入慢”的問(wèn)題而健康檢查解決“壞了不知道”的問(wèn)題這兩個(gè)能力比某個(gè)具體協(xié)議實(shí)現(xiàn)得多么完美更重要。網(wǎng)關(guān)類(lèi)項(xiàng)目真正的成本不在開(kāi)發(fā)而在現(xiàn)場(chǎng)維護(hù)和診斷——把這些工具做進(jìn)產(chǎn)品里后面的日子會(huì)好過(guò)得多。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
91三级理论片播放器| 蜜臀亚洲中文| 1769国内精品视频| 久久人| 91超碰碰在线| 亚洲av热热色| 亚洲成人一二三区| 人妻天天爽夜夜爽精品2| 极品美女福利在线观看| 很黄很色的视频在线观看| 搡老女人老91二区| 日韩情色一区二区| 欧美翘臀视频网站一区二区三区| 不卡六六在线91| 97国产色图 | 欧美色偷拍| h无码动漫在线观看| 超碰91在线| 精品人妻一区二区三区蜜桃视频| 精品少妇人妻一区二区三区| 欧美九一精品久久久熟妇| 丁香五月激情网| 啊啊啊啊啊啊在线| 激情综合五月婷婷| 天天做日日做天天欢。| 一级黄色性爱裸体视频| 国产精品白丝AV| 91美女視頻| 亚洲日韩青青草色月| 婷婷香蕉欧美在线一区二区三区| 97久久视频| 欧美日韩国内不卡| 99∨VTV| 91精品久久久久久77777| 蜜桃视频成a人v在线| 久久透逼视频| 裸体美女免费看网站青草| 狠狠色综合网| 后入人妻一区| 噜噜噜久久亚洲精品色情| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 美國A片| 精品中文字幕一区二区| 久久久久九九九| 欧美强奸乱能| 超碰久热| 牛黄色久午久| a网站免费观看| 超碰日本97美女人妻人人玩人人爱| 午夜福利视频在线一区| 亚洲精品天天影视综合网| 人妻在线臀日韩| 日欧美色| 另类专区加勒比| 天天做日日爱夜夜爽| 岛国视频一二三区| 玖玖婷婷五月天| 欧美夜夜狠| 97精品第3页| 四虎影视国产精品| 日产欧美电影一区二区三区| 国产精品无码在线| 91成人在线| 韩日巨乳美女免费视频在线观看| 天天影视91看看| 国产精品不卡高清在线观看| 亚洲精品人妻在线| 日本丝袜美腿人妻九九| 综合五月天| 成人午夜高潮av猛片| 欧美一级久久久久久久大片动画| 亚洲一区中文字幕一区| 欧美色天堂网在线视频| 欧美另类丝袜熟女| 白天啪啪晚上啪啪视频| 亚洲s在线观看| 亚洲性少妇| 欧美96精品在线| 手机在线A片| 97色在线| 91亚洲狠狠色| 日本黄色大片一级视频免费麻豆| 少妇国产不卡| 人妻久久一区二区三区| 久久鲁干| 超碰伊人在线| 九月丁香综合网| 久久久人体| 狼狼色丁香久久婷婷综合五月| 伊人网综合在线视频| 香蕉一区二区三区在线视频| 欧美色图20P| 乱伦3P视频| AV一二区| 日韩人妻 中文字幕| 97资源欧美| 天天干嫩逼网| 天美av在线观看| 久久精品日韩专区免费观看| 视频黄色国产一级| 91欧美性| 国语av最新自产拍在线观看| 蜜臀久久99精品| 日本性感人妻91| 熟女精品一区二区三区| 亚洲情色 自拍| 人、人、摸,人、人、草| 狠狠干精品一二三四五六2022| 青草伊人网| 亚洲精品a人片在线观看视| 91麻豆天美国产| 最新国产精品| 在线五区| 黄色大片一区二区密桃丝袜| 日韩Va亚洲va欧美Ⅴa久久| 欧美亚洲影视| 大香蕉一区二区在线观看.| 丰满少妇人妻久久久久久| 九九九久久久| 欧美色图天堂网m| 国产精品一区二区手机看片| 综合久久9| 这里只有精品视频在线| 丰满人妻一区二区三区免费| 超碰79人人乐| 亚洲小电影免费涩涩成人在线高清 | AV九九| 日日躁天天躁狠狠躁| 亚洲av淫乱| 67914在线兔费成人视频| 欧美日韩操逼嗦吊| 亚洲伊人成综合成人网| 91美女视频在线| 国产精品视频麻豆入口| www.人人摸在线视频| 91狠狠色丁香婷婷综合久久| 亚洲天堂男人的天堂| 亚洲熟妇图片| 高清国产性猛交xxxx乱大交| 欧美日韩不卡传媒| 亚洲永久AV无码精品秋霞| 五月天久久综合网| 久操影视| 国产天天骚| 伊人操你| 97国产中文| www.91色综合| 强奸乱伦亚洲第一页| 亚洲 欧美 日本 国内 首页| 曰韩欧美国产传媒麻豆第一区| 国产精品久久| 国产情色在线| 亚洲 欧美都市激情| 亚洲春色一区二区三区| 激情小说激情视频| 免费人人搞97| 伊人成人中文字幕久久网| 伊人网免费视频| 色香综合天天影视综合| 国产人伦精品一区二区三区| 国产动漫操逼视频| 岛国色情视频在线观看| 欧美综合亚洲综合| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 蜜汁欧美| 日日骚精品视频| 亚州成人a∨| 亚洲精品aa久久伊人| 97超碰碰| 成人一二三区| 国产精品3| 久久成年精品| 大香蕉宗合网在线| 日本护士高潮| 看日韩操逼| 伦激情人妻另类人妻| 少妇淫妇久久久久久久| 人妻色情天天操| 日本黄色裸日本黄色裸体 | 久草男人天堂| 91伊人久久在线| 欧美另类自拍 | 亚洲免费97免费| 夜夜中出国产| 久九干| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 青青草在线视频人人想人人上| 无码聚合| 国内毛片婷婷六月色| 97无码视频在线播放| 丰满欧美放荡少妇在线| 99精品久久久久久| 色超碰综合| 少妇国产不卡| 久久久一热在线播放| 午夜男人一级A片7777| 秋霞无码av鲁丝片一区| 综合免费无码中文| 操操操日本的逼| 日韩免费高清大片在线| 欧美性爱精品七区| 少妇厨房愉情理伦片bd在线观看| 9色国产精品一区粉嫩| 91天天综合日韩欧美| 久久一区二区蜜桃| 麻豆精品.欧美精品.日韩精品.| 91国产丝袜美女| 粉嫩小泬久久久一区二区| 日韩激情视频| 欧美第一页| 骚逼自拍99| 国偷自 一区| 亚洲中文字幕一区| 人妻欧美| 国产精品久久久久无码Av网曝门| 豆花视频操逼网址| 欧美人与性动交a美精品| 在线岛| 日韩色欲久久一二三四区| 黄片免费看的| 国产成人自拍视频在线| 婷婷丁香久久| 伊人网在线观看| 99久在线精品99re8a| 欧美综合 站| 夜夜嗨老熟女AV一区二区三区| 国产精品97超碰| 欧美综色欧| 女生91网站| 日本一道在线播放高清| 欧美探花网| 精品久久久亚洲AV成人网站| 超碰地址97| 亚洲精品97久久中文字幕| 精品人妻一区二区三区不卡断| 91亚洲影视| 亚洲码在线中文在线观看| 八戒无码国产午夜福利| 桃色五月天| 大香蕉色网| 高清肉丝中文无码| 欧美综合色图网| A级国产欧美激情在线| 黄骗免费| 刺激性视频黄页| 嗯,啊。舔我逼| 九热中文字幕| 五月天激情综合网| 校园春色中文字幕AV| av橘色网站| 午夜乱轮操逼视频免费看| 欧美精品自慰系列寂寞少妇| 很很很很操| 欧美AB在线| 国产熟女乱论| 粉嫩少妇自慰在线| 亚洲影视综合| 手机看片1024你懂的国产| 韩国久久97| 天天超级碰碰碰| 亚洲天堂精品日韩电影| 91超碰人人操| 999熟女精品| 欧美日产国产在线成人第一区| 综合网色| 97超碰9| 国产又色又爽又舒服的三级视频| 嗯嗯啊啊视频一区二区三区| 国产日本一区二区三区蜜臀在线观看| 久久久免费的精品| 国产97在线播放| 国产女人操逼视频| 欧美 日韩 另类 亚洲| 亚洲开心网| 亚洲熟女av日韩熟女| 四虎国产成人精品免费一女五男| 91老熟女视频| 怡红院视频在线| 日韩久射综合| 五月婷久久| 熟女91网| 曰韩成人免费视频| 国产丸一视频| 黄色免费网页无码| 天堂综合| 91成人在线免费视频| 二三四区精品| 免费在线观看国内色片网站网址| 亚洲AV在线资源| 日韩欧美国产一区二区三区四区| 99蜜桃臀久久久欧美精品网站| 亚洲日韩人妻中文字幕一区| 亚洲黄日韩无码专区| 国产精品人妻无码久久久老鸭窝| 情色AV电影| 夜夜躁狠狠躁日日躁av| 另类图片五月| 黄片www视频免费| 夜夜夜久久| 麻豆精品一区二区三区四区免费观看| 嗯嗯嗯嗯啊啊啊好紧好大| 五十路熟女人妻一区二区在线观看 | 欧美黑人猛交春色影视大全| 亚洲国产精品成人久久蜜臀| 中文字幕在在线观看网站| 四虎精品永久在线播放| 操死我了嗯嗯嗯| 亚洲精品国产熟女久久久久久| 91色堂| 亚洲高清无码免费观看视频| 欧美 亚洲| 久久久久久亚洲精品中文字幕人妻| 亚洲高清视频在线免费观看| 午夜毛片高清免费不卡| 婷婷五月天激情网| 蜜桃av色偷偷av老熟女| 自拍亚洲综合| 欧美综合站| 亚洲av综合伊人久久| 青女在线| 色色婷| 日韩免费福利在线观看| 日日妻色网| 99色婷婷| 久久久精品中文字幕爱豆| 97一本大道亚洲一区| 亚洲人妻av| 中国熟女老妇仑乱一区二区三区| 中文字幕女同在线| 丁香五月AV| 香蕉热人人精品| 青青草一区二区高清无码视频 | 国产在线播放成人免费| 超碰在线第一页| 天天插天天射| 亚洲日韩美国人妻| 精品九九| 亚洲综合在线91| 欧美亚洲影视| 五月丁香久久| 国产69精品久久久久99尤物| 久久精品国产精品一区| 尤物AV免费网站| 怡红院怡春院| 麻豆国产尤物AV| 亚洲97久久精品亚洲| 久操精品| 日本在线999| 噜噜噜久久亚洲精品色情| 男人的天堂2019AV| www网站黄| 人人干黄色| 欧美日韩资源| 国产精品久久久久婷婷二区次| 一本大道综合伊人精品热热| JULIA人妻风俗店中出电影| 精品少妇一区二区三区在线视频| 尤物网址| 久久精品久久久久久久久| 欧美性高潮| 97超碰中文| 日韩一999精品| 丁香五月激情啪啪| 日本久久网| 激情久久久| 夜嗨影院| 国产区性爱在线视频秋霞豆| 国产高清26uuu| 日本在线观看网址| 日韩性爱小视频| 熟女人妻一区二区三区免费看| 国产超碰97| 中文字幕伊人| 亚洲图片 激情小说| 欧美亚洲影视| 91丨精品丨国产丨丝袜| 国产乱码精品久久久久久| 在线天堂999| av大香蕉网站| 欧美在线色| 精品一区二区三区四区外站| 蘋果手機免費看成人Av| 精品无码人妻一区二区免费蜜桃| 九九热在线精品视频| 91天射| 后入式在线免费观看60秒| 大香蕉在线免| 成人八戒网站| 日本精品加勒比海一区| 91在线免费精品视频| 99久热| 白嫩国模丰满一二三区| 正宗无毛一线天嫩逼| 超碰吊日色| 噜噜噜噜久久久精品免费| 韩国一区二区精品亚洲| 综合网欧| 日日夜夜青青草母狗| 91网亚洲| 青青草五月天| 一区二区三区欧美激情| 日本2020一区二区| 国产精品剧情| 国内毛片欧美香蕉精品| 人人操人人插人人摸人人干| 国产 热久久久久国产精品| 久久人人舔人人爽舔人人av片| 鸡巴插逼视频| 加勒比大香蕉视频在线| 亚洲 图片 欧美 色图| 欧美日韩国产传媒在线精品| 96爱综合| 老鸭窝日丰县女人| 亚洲熟妇综合久久久久久| 黄日韩| 精品人妻一区二区三区蜜桃视频| 精品视频在线观看| 久久性爱精品一区| 中字乱伦AV| 欧美中文字幕一区 | 超碰在线99| 97天天做| 男人天堂导航| 亚洲三区视频| 国产欧美美女免费观看视频| 97少妇人妻中文字幕久久 | 嗯~啊~快点 死我视频| 欧美日韩美女精品久草一区二区三区| 日本色日夜干| 在线v中文字幕一区二区三区| 天天色悠悠激情| 97网址97| 日本三级A片网站com| 久久女婷| 激情婷婷丁香| 久久草草亚洲蜜桃臀| 久久亚洲精品成人av| 久久久久国产亚洲一区欧美色图日韩| 五月天亚洲网| 色哟哟511老熟女| 欧美专利1区2区3区4区5区免费| 久草线上视频免费看| 91国模| 久久毛卡| 东京成人一区| 色欲av国内精品久久久久久| 欧美黑人精品一区二区| 一牛一区二区三区久久| 操东北女人| www.99在线| 都市激情人妻一区二区青青操视频| 国产一线二线三线av| 久久riav中文精品| 欧美精品91| 91精品国产综合久久久蜜臀酒店| 综合欧美日本三级| 天天躁狠狠躁av| 操逼无码操逼| 很黄很污的免费网站| 国产精品久久泡妞网站| 色色色色网站| 国产成人 综合亚洲 天堂| 午夜一区| 欧美日韩一二三| 日操粉逼逼| 色综合久久夜色精品国产天堂| 欧美日韩国产一区二区小黄片大全| 婷婷五月成人| 男人的天堂1024| 日本欧美国内在线| 精品人妻15区| www.99热| 不卡日本一区二区| 亚洲综合色男人网| 亚洲一区二区在线观看91| 99欧美| 91 偷| 久久色情| 香蕉视频欧美一卡二卡| 精品久久青青草| 免费岛国一级片| 亚洲大色堂| 日韩中文字幕精品一区在线| 久久中文字幕女同性恋一区| 丁香五月久久| 乱伦日本中文自拍| 亚洲色图国产另类| 婷婷AV一区二区三区| 加勒比色99999| 成人欧美一区二区三区黑人一| 超碰97网站| 天天干天天日天天射黄色片| 久久美女国产| 欧美日韩狠狠爱| 麻豆蜜桃视频在线观看| 日本免费一级AAA大片器 | 东亚亚洲无码高清| 欧美的精品的视频| www.高清无码诱惑一区.com | www.夜夜| 一类无码操逼视频| 日本精品一区二区不卡| 97综合国产精品高潮久久| 人人操人人搞人人草| 国产区在线| 久久超碰免费的| 伊人久操| 欧美成熟性爱精品| 正宗无毛一线天嫩逼| 殴美,日韩国产伦精品| 婷婷丁香九月| 97超碰超碰| 欧美黑人91| 天天摸天天插天天日| 午夜福利免费福利视频| 一二三区操逼国产91| 久久一区二区加油站| 久久久555| 偷拍在线观看视频| 亚洲18禁| 99色色网| 在线观看黄色电话| 欧美性爱免费短视频| 91亚洲人| 免费视频观看60秒| 色综合99999| 99热免费| 亚洲 日本 一 二 三| 岛国视频免费在线观看| 国产精品4p在线观看| 91N综合网| 欧美激色| 欧美中字不卡| 欧美暴力猛交| 91骚妇| 精品妇女一区二区三区| 大香蕉乱伦视频网| 抽插无码高清一区| 成人5码视频| 精品国产一区二区三区四区在线看| 97天天| 33044男人的天堂深夜备| 欧美亚洲日韩16色| 国产一级久久久| 日本曲间由美性生活片| 亚洲丝袜色| www.99色| 久操九九九九| 看看小穴| av操操不卡| 麻豆国产原创AV色哟哟 | 国产深夜福利| 搡老女人老熟女91| 亚洲成a人v欧美综合天堂下载| 天天操妹子| 欧美 亚洲| 成人性交免费视频| 欧美一级A一级a爱片久久| 日本天天干天天操一区| 视频不卡中文字幕| 国产v片在线免费观看| 天天影视色香欲综合网小说| 囯产精品久久久久久久久久梁医生| 日韩性爱网址| 2018色综合天天操| 麻豆国产尤物AV| 91九久| 精品国产一区二区三区久久久蜜臀 | 久久久工口| 亚洲国产精品久久久久婷婷青年| 免费农村成人少妇人妻Aa一区二区视频| 91亚洲人电影| 大香蕉99热| 亚洲天堂资源| 少妇天堂| 亚洲A曰本VA欧美VA视频| 激情 欧美 亚洲 小说| 性爱免费视频成人| 九九黄色网| 欧美亚洲性爱一区二区| 国产青视频| 99热大香蕉伊在线| 国产日韩久久| 亚洲好看强奸乱伦| 五月丁香大香蕉| 精品久久在线区一区| 97超碰免费人人性爱| 国产精品97超碰| 亚洲男人天堂AV| A 在线网址| 在线播放中文字幕| 操逼内射干逼白丝91| 九色 蝌蚪 熟女自 | www.丁香五月| 九九九久久久久| 深夜激情 | 丁香五月婷婷色| 中文字幕一区 二 区 三 四 五 区日 日 骚| 日本97久久久精品| 亚洲资源吧| 老外又粗又长一晚做五次| 人妻熟女av国产网站| 搡老女人老妇女老妇老熟女怎么读| 校园春色中文字幕AV| 91人妻熟女| 亚洲AV噜噜狠狠网址蜜桃动漫| 丁香五月天啪啪| av线电影| 高清国产无码av| 色噜噜狠狠色综无码久久| 九九热九九| 欧美自拍偷拍免费观看| 久草资源在线视频官方总站日韩丝袜美腿 | 欧美狠狠狠| 色综合天天| 91 国产丝袜在线放观看| 少妇精品久久久八区九区| 国产精品又黄又猛又粗| 久久人妻视频| 少妇高潮九九九九九九九| 岛国激情视频在线观看| 北京专精特新企业招聘信息| 无码人妻一区二区三区四区老鸭窝| 在线播放免费av福利片| 色女综合| 日本操逼无码| 日韩天美| 午夜爽爽爽| 中文字幕成人| 蜜臀Av一区二区三区| 成人 日本A片无码8888| 日日夜夜青青草母狗| 97久久网| 精品人妻1237| 日本在线观看网址| 国产suv精品一区二区四| 人人操人人摸超碰| 婷婷五月综合激情| 肥佬影院91| 久久久久9999| 少妇熟女一区二区三区| 欧美色婷婷| juliaann欧美丝袜办公室| 亚洲av无码成人精品国产| 青青草中日韩在线| 国产亚州精品美女久久久免费| 中文字幕第23区| 亚洲欧综合另类无码一区| 九九九精品一区二区无码| 国产网红精品| 久久久久婷婷精品av电影| A 天堂在线观看视频| 亚州精品人妻一二三区| 99热伊人| 亚洲牲交| 欧美亚洲AN| 视频国产精品未满十八禁止在线观看| 亚洲宗合网| 六十路日本| 精品传媒在线一区| 免费看污网站| 18啪啪手机免费性爱| 午夜啊啊啊| 久久av一级av少妇av高潮| 伦在线97| 天天肏夜夜肏| 97天天综合| 久久久久ab| 国产懂色精品国产av| 高潮9999外国| 伊人影院在线理论播放 | 欧美日韩人人精品| 三级特黄60分钟播放| 伊人久久亚洲色欲综合网站 | 日韩国语字幕| 国产精品永久免费10000| 欧美在线干| 亚洲麻豆精品二区三区| 超碰免费人妻人人| 人澡逼| 日韩pv中文| 丰满岳乱妇一区二区三区| 五月天日日操夜夜操| 九九精品美女高溯喷水| 日韩国产乱子伦App| 久久岛国| 亭亭在线资源| 欧美熟妇视频| 国产 无码 一区二区| 啊啊啊啊啊啊在线观看| 日韩天天本| 欧美色图天堂在线| 中国大陆国产高清AⅤ毛片| 小电影欧美91| 欧美 亚洲 大香| 黑人精品成人一区二区三区| 中文字幕99999| 国产精品视频在线播放 | 亚洲欧美另类小说| 久久久久久久久久精| 九九色热| 中日亚韩免费视频| 精品一区二区三区麻豆| h色99999| 日韩情色视频| 成年女人18级毛片毛片免费观看| 精品久久久久久中文字幕视频免费| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 大香蕉久| 国产精品干干干| 欧美牲| 精品人妻一区二区蜜桃视频| 亚洲色图加勒比| 大香蕉人妻| 你想操日本小逼吗| 无码直播久久久| 久久国内| 思思热在线视频免费| 中文字幕黄色一起草| 蜜臀久久99精品| 在线观看十八禁| 久热伊人| 九九无码视频| 黄色一区二区秘书性感| 在线αⅴ| 啊啊啊啊啊啊啊啊视频| 天天躁夜夜躁狠狠躁AV| 人妻少妇精品久久久| 综精品久久久aaaa| 骚逼高潮久久精品| 99自拍视频在线观看| 亚洲天堂人妻熟妇视频| 天天干天天燥| 999精品国产高清一区二区| 亚洲欧美首页| 一本久道久久综合狠狠爱一密臀精| 天天综合站| 色香综合天天影视综合 | 97天天在线| 亚洲图片在线| 国产91丝袜在线播放蜜月| 欧美亚州色的图| 男人成人黄色视频在线观看免费下载| 欧美一级专区免费大片| 国产欧美后入| 性欧美第一页| 97亚洲中文| 天天操夜夜操| 成人自拍三级在线观看| 日韩精品碰碰| 亚洲精品乱码久久久久久蜜桃麻豆| 久久久久国产精品喷潮免费观看臀 | 精品成人无码| 成人三一级一片aaa| 日美免费黄片| 丁香五月色情| 亚洲色图久久成人| 91麻豆天美国产| 二三四区精品| 欧美色老汉| 校园春色五月天| 思思热在线视频免费| 97在线观看播放视频| 草莓精品视频| 欧美色棕合| 久久久久七视频| 亚洲AV色图一区| 欧美国产婷婷久久| 乱伦一二三区| 中文字幕日本久久| 啪啪视频mP4| 欧美91丝袜| 国产成人五月天丁香花| 国产精品白丝在线播放| 在线观看亚洲专区| 艳美熟妇先锋一二三区| 樱花蜜乳av| 亚洲第一在线视频| 少妇一区二区三区在线观看| 乱色老一区二区三区的观看方式| 天天综合网~91| 三级色综合| 久久乐| 九区国产| 3PAV乱伦视频| 国产精品岛国片在线观看| 麻豆视频test| 妇女乱色二区| 在线岛国新天堂8| 97色碰| 青青草日韩免费观看高清在线| 亚洲性天堂| 少妇干B| 国产成人AV麻豆| 精品日日人妻| 国产区性爱在线视频秋霞豆| 厕所偷拍在线| 国产黑白丝在线| 一级性爱啪啪视频| 九九玖玖精品| 99999久久精| 伊人五月天激情| 97大色网| 国产成人在线观看网址| 国产又色又爽又舒服的三级视频 | 芊芊操逼视频无码| 热天堂一区二区| 日韩精品-原创伙伴| 成人福利视频网| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 国产色图乱伦| 尹人大香蕉视频在线| 啊啊啊在线看| 综合久久六月久久婷婷| 91高跟美女在线播放| 亚洲av性爱电影| 亚洲日产专区| 东京太热男人的天堂久久久| 亚洲欧美日韩精品久| 久草男人天堂| 日本一级婬片试看三分钟| 久久超碰、| a片偷拍视频| 少妇被玩视频二三区| 综合欧美亚洲| 男人天堂婷婷五月天校园春色| 久久久久久久久9| 丰满的三级少妇欧美久久久| 99这里都是精品| 乱伦3P视频| 熟女久久久| 操逼逼无码| 激情四射婷婷六月天| 强奸乱伦中文字幕AV| 久久久精品中文字幕麻豆| 无码WWW免费视频网站| 9长久久精品| 国产AV激情无码久久无码| 免费超碰97久久| 久久激情亚洲精品无码?V | 五月综合视频| 另类图片天天影视| 综精品久久久aaaa| 欧美传媒| 91强在线播放| 亚洲Av无码成人精品国产| 久久精品女同亚洲女同13| 一级免费啪啪片| 亚洲色电影在线| 中文字幕一区二区三区人妻少妇在线| 人人么人人操| 亚洲男人的天堂在线看| 国产三区免费在线观看| 后入合集| 黑丝少妇麻豆| 青青操综合网| 97欧美日韩综合| 黄页18禁| 18禁的网站在线| 亚洲欧美综合图片| 精品久久久九九九孕妇| 成人无遮挡毛片免费看| 蜜桃狠狠色伊人亚洲综合 | 91爽啪| 自拍偷拍国产欧美日韩韩| 欧美 亚洲 另类 综合| 久久无码电影| 亚洲全色网| 青女在线| 人人操av| 26uuu欧美日韩| 国产一区二区在线看| 青青草在线成人视频| www.99中文字幕| 麻豆 美女 丝袜 人妻 中文| 国产夜夜操| 国产一区二区在线电影| 狠狠操狠狠操操| 精品妇操一区二区三区| 午夜免费视频1000| 亚洲国产一区二区入口| 性色综合网| 少妇内射www在线观看视频| 天天干天天插| 免费一级a毛片久久久久久鸭绿欲| 插插综合网天天影视网| 日本一二三高清| 色婷婷基地| 91精品国产日韩欧美综合| 亚洲欧洲自拍| 久久精品99久久久久久| 九九精品美女高溯喷水| JULIA一区二区三区在线播放| 亚洲成人激情小说视频| 在线色资源| 久久97资源 网| 激情文学网伊人| 粉嫩在线一区二区懂色| 欧美不卡在线一区二区| 亚洲无码日韩电影| 99re综合伊人| 亚洲激情色片| 日韩美女久久一区二区三区| 色官网在线| 精品偷拍13p欧美dodk视频| 东北女人无套内谢视频| 亚洲综合色图欧美| 加勒比五月天| 九草在线大香蕉| 97玖玖人妻| 920日本午夜免费| 自拍偷拍2025在线观看| 人妻中文字幕精品无码| 天天看夜夜看日日干| 亚洲一区二区AV| av2014 日韩在线中文字幕| 亚洲欲| 东京热精品97综合网| 打av高清| 九月AV| a男人的天堂| www鬼畜国产男人的天堂| 欧美综合91| 欧洲色| 亚州再线| 激情一区二区三区在线观看| 嫩草在线视频| 熟妇女伦乱视频| 欧美 综合 亚洲| 无码欧美有限公司| 国产农村妇女一区二区| 亚洲日韩一区电影| 五月婷婷综合网| 婷婷五月天丁香| 五月丁香激情综合网| 91久久久久久| 天天色播| 国产丝袜视频| 色性荡荡荡荡视频| 嗯嗯嗯不要不要免费视频| 国产精品女同| 五月天色图| 久久成年精品| 97 九色| 九九九精品色乱九九九| 超碰综合97在线| 国产熟码AV| 亚洲图片91| 麻豆久久一区二区三区| 国产精品久久久久久亚洲色欲| 国产偷拍网站| 黄色av网站在线播放| 亚洲精品官网在线观看| 一级久久久久久久久久久| 国产成人在线观看综合| 五月天伊人| 91网站18在线观看| 另类av天堂| 无码人妻系列少妇| 亚洲综合伊人无码久久| 97视频在线免费观看| 成人自拍三级在线观看| 日韩乱伦影音先锋| 337p大胆噜噜噜噜噜91Av| 久久日韩毛| 青青草视频导航官网| 久久偷偷色综合蜜桃| 99rre在线精品99re8| 91精品国产91久久青草| 国产日产精品久久快鸭的功能介绍| 日韩国产成人自拍视频| 精品色色| 欧美香蕉视xxx| 大香蕉92| 毛片一区二区| 国产精品无码在线| 翘臀vidoes| av天天在线| 粉嫩AV一区二区夜夜| 乱操乱伦AV| 欧美做爰无码A片视频| 精彩视频日韩| 2003天天干夜夜操| 国产操逼网站亚洲一级黄色| 亚洲AV无码黄色强奸| 95精品在线| 日韩 女同 综合| 久久狠狠色噜噜狠狠狠狠97| 久久久久成人亚洲国产| 欧美九九爱| 国产精品午夜精品| 18禁在线视频| 久久久五月天| 精品无码久久久久| 七月丁香婷婷| 久操不卡视频| 97精品久久久久久久| 国产激情在线| 亚洲无吗在线视频| 美女露胸露屁股| 亚洲素人综合| 成人av影院在线观看| 亚洲AV无码天美传媒一区| 在线小说视频一区| 影音先锋每日最新资源在线观看 | 97国伦国色| 99re这里只有| 亚洲色图欧美视频| 久久爽爽精品| 亚洲麻豆av一区二区| 婷婷91| 91操人| 人妻丰满熟妇一区二区三| 日韩精品国产精品五码一区二区| 欧美亚洲宗合色性图| 久久亚洲中文字幕视频| 天天日夜夜| 色原狠狠天天天| 亚洲中文日韩精品| 日韩精品三级片长长久久| 秋霞色色影院| 欧美激情总合网| 78操B| 亚洲色婷婷| 国产丁香精品露脸视频| aaaa少妇高潮大片| 少妇精品久久久| 在线看的av| 99操| 日韩综合成人免费视频| 操我啊啊啊啊啊| 亚洲无 码A片在线观看麻豆| 亚洲高潮少妇| 久久久一区二区三区四区五区| 久久婷综合| 一卡二卡三卡| 婷婷色导航| 久久婷婷成人综合色怡春院| 91丨九色丨大屁股| 精品人妻少妇| 在线 制服丝袜中出 人妻| 大鸡巴久久| 色欧美天天| 综合97| 淫色网综合| 日韩强奸av| 欧美日韩亚洲高清不卡一区二区三区| 极品销魂美女一区二区| 国产女同性恋视频| 中文字幕国产| 久久久久久少妇| 国模少妇一区二区三区| 四虎精品永久在线观看| 狠狠干,狠狠操| 啊啊啊啊啊在线| 高清不卡一二三区视频......| 国产精品人妻免费精品| 久久超碰亚洲人| 国产一级137片内射麻豆| 亚洲综合贴图91| 欧美一级黄片免费播放| 五月天婷婷社区| 美腿色图| 午夜一区二区三区国产| 日本亚欧爱爱| 国产精品一二三免费网站| 国产成人在线观看网址| 欧美日韩一干二干| 欧美日韩岛国大片在线观看| 中文字幕视频在线观看| 大香蕉伊人网WWWn0n| 可能人人看人人摸| 夜夜嗨一区二区三区三州加勒比| 激情五月婷婷| 日欧操屄| 人人九九精| 色妹子A V| 国产不卡免费在线视频| 国产欧美另类久久久精品课程| 色呦呦、国产精品| 亚洲高清无码在线桃色| 成人性交免费视屏| 夜夜嗷嗷一区二区| 亚洲欧美激情在线视频| 亚洲无992tv| 玖玖爱伊人玖玖爱| 成人AV素股で擦久久| 极品尤物女神在线观看| 一级二级在线观看| 久草久日| 色婷婷综合久久久久中文一区二区| 免费伦费视频在线观看| 亚洲欧美天堂| 超碰久草| 亚洲中文字幕日产无码久久| 国产欧美日韩在线不卡第一页 | 色情亚洲日本成人| www.激情| 26uuu性| 国产一级舔足在线观看| 色哟哟av| 久久久久久久久久久999| 天天操综合网| 免费啪啪一级视频| 国产91亚洲精品一区二区三区| 99在线精品观看视频中文| yiren97| 淮穴色AV| www.av在线观看| 中国一级操逼视频| 思思热国产高清| 加勒比99999| 少好三P| 农村妇女精品一区二区| 国产视频三区四区| 色五月av| 久精品无码av一区二免费国产在线观看 | 艹精品| 岛国黄片网站| 先锋女优在线观看视频| 老司机福利社视频在线观看| 欧美aⅴ99久久黑人专区| 日韩美女久久一区二区三区| 婷婷伊人綜合中文字幕小说| 18禁网站在线播放| 成人一级性爱| 亚欧毛片基地国产毛片基地| 神马久久午夜| 久久精品28| 天天躁日日躁狠狠狠躁| 夜夜爽夜夜摸夜夜操免费视频| 人人澡人人弄| 九九九久久久久| 懂色AV中文| 成人综合网 欧美| 欧美亚洲影视| 99re在线观看| 丰满搜索结果 -第18页- 久久高清无码 | 99久久九九| 色综合久久888| 日本色色色| 任你草| 99爱视频| 婷婷亚洲中文字幕在线| 91亚洲人电影| 91啪9色| 狠插 制服 自拍| 操逼精品视频| 加勒比海成人视频网| 涩涩久久精品| 亚洲AV色图一区| 中文字幕一二三av| AA丁香综合激情| 亚洲色图欧美色图制服诱惑| 在线视频五十市| 欧美日韩婷婷中文| 亚洲男人的天堂网| 国产精品第一页国产大屁股视频免费区i| 日日嗨AV一区二区夜夜| 91精品少妇搡搡搡|