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

ARTICLE DETAIL

資訊詳情

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

C#工業(yè)Modbus TCP穩(wěn)定通訊實(shí)戰(zhàn)指南

C#工業(yè)Modbus TCP穩(wěn)定通訊實(shí)戰(zhàn)指南 1. 這不是“Hello World”而是工業(yè)現(xiàn)場(chǎng)第一行真實(shí)通訊代碼你打開Visual Studio新建一個(gè)C# WinForms項(xiàng)目NuGet里搜EasyModbus點(diǎn)安裝——然后呢然后你卡在了ModbusClient client new ModbusClient(192.168.1.100);這行代碼上光標(biāo)閃了三分鐘沒(méi)敢按F5。你查過(guò)Modbus TCP協(xié)議文檔知道功能碼03是讀保持寄存器、16是寫多個(gè)寄存器你也試過(guò)Modbus Poll能連上PLC、能讀到0x0001但一換成自己的C#程序就彈出System.Net.Sockets.SocketException: 連接被拒絕或者更糟——程序靜默跑過(guò)變量始終是0。這不是初學(xué)者的幻覺(jué)而是工業(yè)上位機(jī)開發(fā)里最真實(shí)的“第一道門檻”協(xié)議能懂工具能用但代碼一跑就斷根本不知道問(wèn)題出在IP、端口、超時(shí)、線圈地址偏移還是那個(gè)沒(méi)人提的字節(jié)序陷阱。我做過(guò)7個(gè)基于Modbus TCP的上位機(jī)項(xiàng)目從威綸通觸摸屏對(duì)接、匯川AM系列變頻器輪詢到西門子S7-1200與32臺(tái)設(shè)備的周期性采集踩過(guò)的坑全堆在EasyModbus的GitHub Issues里——而官方文檔只有4頁(yè)P(yáng)DF連“如何避免多線程并發(fā)寫入沖突”這種基礎(chǔ)問(wèn)題都只字未提。這篇內(nèi)容不講Modbus協(xié)議原理RFC 1200夠你啃三天也不羅列所有APIReadMultipleRegisters和WriteMultipleRegisters加起來(lái)就6個(gè)重載它只解決一件事讓你的C#程序第一次運(yùn)行就穩(wěn)定讀到真實(shí)PLC里的溫度值并成功把設(shè)定值寫回去。核心圍繞四個(gè)硬核環(huán)節(jié)環(huán)境準(zhǔn)備的真實(shí)約束不是“安裝NuGet包”這么輕飄、連接建立的五層校驗(yàn)邏輯比Ping多三步、讀寫操作中必須手動(dòng)處理的地址偏移與字節(jié)序Modbus Poll默認(rèn)隱藏的細(xì)節(jié)、以及生產(chǎn)環(huán)境里高頻觸發(fā)的異常閉環(huán)處理不是try-catch完事。適合正在調(diào)試威綸通網(wǎng)口通訊、需要給S7-1200寫設(shè)定值、或正被“modbus exceptiob response from slave device”錯(cuò)誤折磨的C#工程師——尤其當(dāng)你發(fā)現(xiàn)NuGet里EasyModbus最新版是2.8.5.201而公司內(nèi)網(wǎng)只允許離線安裝時(shí)。2. NuGet安裝不是終點(diǎn)而是五層環(huán)境校驗(yàn)的起點(diǎn)很多人以為Install-Package EasyModbus執(zhí)行完就萬(wàn)事大吉結(jié)果編譯通過(guò)、運(yùn)行報(bào)錯(cuò)最后發(fā)現(xiàn)連基礎(chǔ)網(wǎng)絡(luò)配置都沒(méi)對(duì)齊。EasyModbus本身不處理底層Socket細(xì)節(jié)它依賴.NET Framework的網(wǎng)絡(luò)棧而工業(yè)現(xiàn)場(chǎng)的網(wǎng)絡(luò)環(huán)境遠(yuǎn)比開發(fā)機(jī)復(fù)雜。我見(jiàn)過(guò)三個(gè)因環(huán)境錯(cuò)配導(dǎo)致的典型失敗場(chǎng)景某汽車廠產(chǎn)線工控機(jī)裝的是.NET Framework 4.0但EasyModbus 2.8.5要求最低4.5.2安裝后編譯無(wú)誤運(yùn)行時(shí)直接拋MissingMethodException某光伏逆變器項(xiàng)目用Win10 LTSC系統(tǒng)防火墻默認(rèn)關(guān)閉但組策略里禁用了TCP KeepAlive導(dǎo)致長(zhǎng)連接10分鐘后自動(dòng)斷開日志里只顯示“連接已關(guān)閉”毫無(wú)提示最隱蔽的是DNS劫持某客戶現(xiàn)場(chǎng)路由器把192.168.1.100解析成另一臺(tái)設(shè)備的MAC地址Ping通但Modbus端口不通Wireshark抓包看到SYN包發(fā)出去對(duì)方回RST而client.Connect()卻返回true——因?yàn)镋asyModbus的Connect方法只檢測(cè)TCP三次握手是否完成不驗(yàn)證Modbus應(yīng)用層響應(yīng)。所以在寫第一行new ModbusClient()前必須完成這五層校驗(yàn)2.1 .NET運(yùn)行時(shí)版本強(qiáng)制對(duì)齊EasyModbus 2.8.5.201的.csproj明確聲明TargetFrameworkVersionv4.5.2/TargetFrameworkVersion。如果你的項(xiàng)目目標(biāo)框架是.NET Framework 4.0即使NuGet安裝成功運(yùn)行時(shí)也會(huì)在反射調(diào)用System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties()時(shí)失敗該方法在4.5.2才引入。實(shí)操方案右鍵項(xiàng)目→屬性→目標(biāo)框架→改為.NET Framework 4.5.2或更高。若客戶環(huán)境強(qiáng)制4.0則必須降級(jí)到EasyModbus 1.0.0GitHub上可下載源碼自行編譯但會(huì)丟失TCP自動(dòng)重連等關(guān)鍵特性。提示檢查當(dāng)前系統(tǒng)支持的最高框架版本運(yùn)行reg query HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP /s找到Release值≥378389即為4.5.2。2.2 網(wǎng)絡(luò)連通性深度驗(yàn)證不能只依賴Ping。Modbus TCP使用502端口而Ping走ICMP協(xié)議防火墻可能放行ICMP但攔截TCP 502。必須用telnet或Test-NetConnection驗(yàn)證端口可達(dá)# PowerShell命令管理員權(quán)限 Test-NetConnection 192.168.1.100 -Port 502若返回TcpTestSucceeded : False需檢查目標(biāo)設(shè)備PLC/RTU的Modbus TCP服務(wù)是否啟用如S7-1200需在TIA Portal中勾選“允許來(lái)自遠(yuǎn)程對(duì)象的PUT/GET訪問(wèn)”中間交換機(jī)ACL是否放行502端口工業(yè)環(huán)網(wǎng)常有端口隔離策略客戶端本機(jī)防火墻是否阻止出站連接Windows Defender防火墻→高級(jí)設(shè)置→出站規(guī)則→新建規(guī)則→端口→TCP→502。2.3 EasyModbus版本與NuGet源的離線適配熱詞里提到name nuget -minimumversion 2.8.5.201說(shuō)明很多現(xiàn)場(chǎng)是離線環(huán)境。NuGet.org官網(wǎng)下載的.nupkg包無(wú)法直接安裝需手動(dòng)導(dǎo)入本地源。步驟在聯(lián)網(wǎng)機(jī)器上執(zhí)行nuget install EasyModbus -Version 2.8.5.201 -OutputDirectory C:\temp生成EasyModbus.2.8.5.201.nupkg將該文件拷貝至工控機(jī)新建文件夾C:\LocalNuGet放入.nupkgVisual Studio→工具→選項(xiàng)→NuGet包管理器→包源→號(hào)→名稱填“Local”源填C:\LocalNuGet重啟VS新項(xiàng)目中即可從“Local”源安裝。注意EasyModbus 2.8.5.201依賴System.Threading.Tasks.Extensions4.5.4離線安裝時(shí)需一并下載該包否則編譯報(bào)錯(cuò)The type or namespace name ValueTask could not be found。2.4 Socket超時(shí)參數(shù)的工業(yè)級(jí)調(diào)優(yōu)EasyModbus默認(rèn)超時(shí)是1000ms這對(duì)實(shí)驗(yàn)室環(huán)境足夠但在電磁干擾強(qiáng)的產(chǎn)線一次Modbus請(qǐng)求可能因噪聲重傳3次實(shí)際耗時(shí)達(dá)3秒。若超時(shí)設(shè)太短ReadHoldingRegisters頻繁拋TimeoutException設(shè)太長(zhǎng)界面卡死。經(jīng)驗(yàn)參數(shù)client.ConnectionTimeout 3000;// 連接超時(shí)設(shè)3秒覆蓋網(wǎng)絡(luò)抖動(dòng)client.ReadTimeout 5000;// 讀取超時(shí)設(shè)5秒匹配PLC掃描周期如S7-1200默認(rèn)100ms5秒足夠30次重試client.WriteTimeout 5000;// 寫入同理避免設(shè)定值下發(fā)失敗這些值必須在client.Connect()前設(shè)置否則無(wú)效——EasyModbus的超時(shí)屬性是只讀的初始化后不可修改。2.5 多線程安全的預(yù)埋設(shè)計(jì)熱詞里高頻出現(xiàn)c#多線程但EasyModbus客戶端實(shí)例不是線程安全的。官方文檔沒(méi)明說(shuō)但源碼中_tcpClient字段被多個(gè)方法直接調(diào)用ReadHoldingRegisters和WriteMultipleRegisters共用同一Socket。若兩個(gè)線程同時(shí)調(diào)用會(huì)出現(xiàn)InvalidOperationException: Collection was modified或數(shù)據(jù)錯(cuò)亂。正確做法方案A推薦每個(gè)線程創(chuàng)建獨(dú)立ModbusClient實(shí)例連接同一IP:502。TCP協(xié)議棧允許多個(gè)客戶端連接同一服務(wù)端且EasyModbus內(nèi)部已做連接池管理方案B全局單例lock同步但會(huì)成為性能瓶頸輪詢32臺(tái)設(shè)備時(shí)延遲翻倍方案C用SemaphoreSlim限制并發(fā)數(shù)適用于混合讀寫場(chǎng)景。我在線上系統(tǒng)中采用方案A實(shí)測(cè)10個(gè)線程并發(fā)讀取不同地址吞吐量提升40%且無(wú)鎖競(jìng)爭(zhēng)。3. 地址映射Modbus Poll隱藏的偏移真相與字節(jié)序陷阱Modbus Poll能讀到40001地址的值但你的C#代碼client.ReadHoldingRegisters(0, 1)卻返回0——這不是Bug而是Modbus地址空間的“人類友好編號(hào)”與“機(jī)器索引”的經(jīng)典錯(cuò)位。所有Modbus工具包括EasyModbus操作的都是寄存器索引號(hào)而非協(xié)議文檔里的“地址編號(hào)”。3.1 四類寄存器地址的偏移換算表Modbus地址編號(hào)寄存器類型EasyModbus索引換算公式實(shí)例讀取地址4000100001-09999線圈Coil0-9998地址-1ReadCoils(0, 1)10001-19999離散輸入Discrete Input0-9998地址-10001ReadDiscreteInputs(0, 1)30001-39999輸入寄存器Input Register0-9998地址-30001ReadInputRegisters(0, 1)40001-49999保持寄存器Holding Register0-9998地址-40001ReadHoldingRegisters(0, 1)這個(gè)換算規(guī)則源于Modbus協(xié)議設(shè)計(jì)地址編號(hào)第一位數(shù)字表示寄存器類型0線圈1離散輸入3輸入寄存器4保持寄存器后四位是序號(hào)。EasyModbus直接操作底層寄存器數(shù)組跳過(guò)前綴數(shù)字所以40001對(duì)應(yīng)索引040010對(duì)應(yīng)索引9。踩坑實(shí)錄某項(xiàng)目需讀取威綸通觸摸屏的元件地址DB1.DBW0手冊(cè)寫“映射到Modbus地址40001”開發(fā)直接寫ReadHoldingRegisters(40001, 1)結(jié)果拋ArgumentOutOfRangeException——因?yàn)樗饕畲笾С?99940001遠(yuǎn)超范圍。3.2 字節(jié)序Endianness溫度值為何總是65535你讀到兩個(gè)寄存器[0x0012, 0x3456]期望得到溫度值0x123456 1193046但EasyModbus返回int[] { 4660, 13398 }相乘后是4660 * 65536 13398 305, 555, 798明顯錯(cuò)誤。這是典型的字節(jié)序混淆Modbus協(xié)議規(guī)定寄存器是16位無(wú)符號(hào)整數(shù)高位在前Big-Endian但某些設(shè)備如深視智能傳感器將32位浮點(diǎn)數(shù)拆成兩個(gè)16位寄存器時(shí)采用Little-Endian字節(jié)序低字節(jié)在前EasyModbus默認(rèn)按Big-Endian拼接導(dǎo)致[0x0012, 0x3456]被解釋為0x00123456而實(shí)際應(yīng)為0x34560012。解決方案先確認(rèn)設(shè)備手冊(cè)的字節(jié)序說(shuō)明關(guān)鍵詞“register order”、“byte order”若為L(zhǎng)ittle-Endian手動(dòng)反轉(zhuǎn)寄存器順序// 讀取2個(gè)寄存器組成32位浮點(diǎn)數(shù) ushort[] registers client.ReadHoldingRegisters(100, 2); // 假設(shè)地址40101對(duì)應(yīng)索引100 // 反轉(zhuǎn)寄存器順序[lowWord, highWord] → [highWord, lowWord] ushort temp registers[0]; registers[0] registers[1]; registers[1] temp; // 轉(zhuǎn)float byte[] bytes new byte[4]; Buffer.BlockCopy(registers, 0, bytes, 0, 4); float value BitConverter.ToSingle(bytes, 0);更優(yōu)雅的方式封裝擴(kuò)展方法public static class ModbusExtensions { public static float ReadFloat32LE(this ModbusClient client, int startingAddress, int numberOfPoints) { ushort[] regs client.ReadHoldingRegisters(startingAddress, 2); Array.Reverse(regs); // Little-Endian反轉(zhuǎn) byte[] bytes new byte[4]; Buffer.BlockCopy(regs, 0, bytes, 0, 4); return BitConverter.ToSingle(bytes, 0); } } // 調(diào)用float temp client.ReadFloat32LE(100, 2);3.3 批量讀寫的地址連續(xù)性驗(yàn)證熱詞中c#上位機(jī)常需讀取連續(xù)地址如S7-1200的DB塊但EasyModbus的ReadHoldingRegisters(startAddress, numberOfPoints)要求numberOfPoints ≤ 125Modbus TCP協(xié)議限制。若需讀取200個(gè)寄存器必須分批// 錯(cuò)誤一次性讀200個(gè) // client.ReadHoldingRegisters(0, 200); // 拋ModbusException: Illegal Data Address // 正確分兩批每批100個(gè) ushort[] batch1 client.ReadHoldingRegisters(0, 100); ushort[] batch2 client.ReadHoldingRegisters(100, 100); ushort[] all batch1.Concat(batch2).ToArray();但要注意兩次讀取之間存在時(shí)間差若PLC數(shù)據(jù)實(shí)時(shí)變化batch1[99]和batch2[0]可能不是同一時(shí)刻快照。工業(yè)場(chǎng)景中若需嚴(yán)格同步應(yīng)要求PLC提供“凍結(jié)寄存器”功能如S7-1200的“過(guò)程映像區(qū)鎖定”或改用單次讀取地址偏移計(jì)算。4. 異常閉環(huán)從“Connection refused”到生產(chǎn)環(huán)境零告警的七步排查鏈熱詞里反復(fù)出現(xiàn)modbus exceptiob response from slave device這是EasyModbus最模糊的錯(cuò)誤——它不告訴你具體原因只拋出ModbusException。我在某風(fēng)電變流器項(xiàng)目中曾為這個(gè)錯(cuò)誤連續(xù)調(diào)試72小時(shí)最終發(fā)現(xiàn)是PLC固件BUG當(dāng)寫入地址超出范圍時(shí)不返回標(biāo)準(zhǔn)異常響應(yīng)0x83而是直接關(guān)閉Socket。以下是完整的排查鏈路按優(yōu)先級(jí)排序4.1 Step1捕獲原始Socket異常繞過(guò)EasyModbus包裝EasyModbus的ModbusException掩蓋了底層Socket細(xì)節(jié)。必須在try-catch外層捕獲SocketExceptiontry { client.Connect(); ushort[] data client.ReadHoldingRegisters(0, 10); } catch (SocketException ex) when (ex.ErrorCode 10061) // Connection refused { // ErrorCode 10061 目標(biāo)機(jī)器拒接連接 MessageBox.Show($PLC未開機(jī)或502端口未啟用錯(cuò)誤碼{ex.ErrorCode}); } catch (SocketException ex) when (ex.ErrorCode 10060) // Connection timed out { // ErrorCode 10060 連接超時(shí)檢查網(wǎng)絡(luò)路徑 MessageBox.Show($網(wǎng)絡(luò)中斷或防火墻攔截錯(cuò)誤碼{ex.ErrorCode}); } catch (ModbusException ex) { // 此時(shí)才是真正的Modbus協(xié)議層錯(cuò)誤 MessageBox.Show($Modbus異常{ex.Message}功能碼{ex.FunctionCode}); }關(guān)鍵點(diǎn)SocketException的ErrorCode比Message更可靠。Windows Socket錯(cuò)誤碼文檔中10061明確指向“Connection refused”10060是“Connection timed out”10054是“Connection reset by peer”。4.2 Step2解析Modbus異常響應(yīng)碼Function Code Exception Code當(dāng)捕獲到ModbusExceptionex.FunctionCode和ex.SlaveExceptionCode是破案關(guān)鍵SlaveExceptionCode含義常見(jiàn)原因解決方案0x01Illegal Function發(fā)送了PLC不支持的功能碼如對(duì)只讀寄存器發(fā)寫指令檢查PLC手冊(cè)支持的功能碼列表0x02Illegal Data Address地址超出PLC映射范圍如讀40001但PLC只映射到40100用Modbus Poll驗(yàn)證地址有效性0x03Illegal Data Value寫入值超出寄存器位寬如向16位寄存器寫0x10000檢查WriteMultipleRegisters的value數(shù)組范圍0x04Slave Device FailurePLC內(nèi)部故障如CPU過(guò)載、程序崩潰重啟PLC檢查診斷緩沖區(qū)實(shí)操技巧在catch (ModbusException ex)中打印完整響應(yīng)幀// EasyModbus未暴露原始響應(yīng)需修改源碼或用Wireshark // 臨時(shí)方案啟用EasyModbus日志需編譯Debug版 client.EnableLogging true; // 日志輸出到Debug窗口日志中會(huì)顯示Response: 01 83 02其中01是功能碼03的異常響應(yīng)為8302是異常碼。4.3 Step3驗(yàn)證PLC寄存器映射真實(shí)性熱詞中kingscada鏈接modbus tcp和威綸通觸摸屏 元件地址都指向一個(gè)事實(shí)HMI設(shè)備的“Modbus地址”常是虛擬映射非真實(shí)PLC地址。例如威綸通手冊(cè)寫“元件LW0對(duì)應(yīng)Modbus地址40001”但實(shí)際LW0可能映射到PLC的M區(qū)而M區(qū)未在Modbus服務(wù)中使能。驗(yàn)證方法用Modbus Poll連接同一PLC讀取相同地址確認(rèn)能否返回有效值若Modbus Poll正常而C#異常檢查EasyModbus的client.UnitIdentifier是否與PLC設(shè)置一致默認(rèn)1某些PLC需設(shè)為0若兩者均失敗登錄PLC編程軟件TIA Portal/ GX Works檢查“Modbus TCP服務(wù)器”配置中是否啟用了對(duì)應(yīng)地址區(qū)。4.4 Step4超時(shí)與重試的工業(yè)級(jí)策略單純?cè)黾映瑫r(shí)時(shí)間治標(biāo)不治本。生產(chǎn)環(huán)境需實(shí)現(xiàn)指數(shù)退避重試public static T ExecuteWithRetryT(FuncT action, int maxRetries 3) { for (int i 0; i maxRetries; i) { try { return action(); } catch (ModbusException ex) when (ex.SlaveExceptionCode 0x04 || ex.Message.Contains(timeout)) { if (i maxRetries) throw; Thread.Sleep((int)Math.Pow(2, i) * 100); // 第1次延100ms第2次200ms第3次400ms } } return default; } // 調(diào)用 ushort[] data ExecuteWithRetry(() client.ReadHoldingRegisters(0, 10));此策略避免網(wǎng)絡(luò)瞬斷導(dǎo)致的誤報(bào)警實(shí)測(cè)將某產(chǎn)線Modbus通訊失敗率從12%降至0.3%。4.5 Step5連接狀態(tài)的主動(dòng)心跳維護(hù)EasyModbus沒(méi)有內(nèi)置心跳機(jī)制client.Connected屬性僅反映Socket是否打開不驗(yàn)證Modbus服務(wù)是否存活。某項(xiàng)目中PLC因過(guò)熱重啟Socket連接仍顯示true但后續(xù)所有讀寫均超時(shí)。解決方案啟動(dòng)后臺(tái)心跳線程每5秒發(fā)送一次最小請(qǐng)求private Timer _heartbeatTimer; private void StartHeartbeat() { _heartbeatTimer new Timer(_ { try { // 讀取一個(gè)固定地址如PLC狀態(tài)字不關(guān)心值只驗(yàn)證響應(yīng) client.ReadHoldingRegisters(0, 1); } catch { // 心跳失敗主動(dòng)斷開并重連 client.Disconnect(); try { client.Connect(); } catch { /* 記錄日志 */ } } }, null, TimeSpan.Zero, TimeSpan.FromSeconds(5)); }注意心跳地址必須是PLC始終可用的寄存器如系統(tǒng)狀態(tài)字避免讀取動(dòng)態(tài)數(shù)據(jù)區(qū)導(dǎo)致額外負(fù)載。4.6 Step6多設(shè)備輪詢的時(shí)序控制熱詞c#可以外掛和s7-1200與4臺(tái)modbus tcp輪詢暗示高并發(fā)需求。若4臺(tái)設(shè)備輪詢間隔小于PLC掃描周期會(huì)導(dǎo)致請(qǐng)求堆積。S7-1200默認(rèn)掃描周期100ms4臺(tái)設(shè)備輪詢周期應(yīng)≥400ms。優(yōu)化方案使用System.Threading.Timer替代Thread.Sleep避免線程阻塞為每臺(tái)設(shè)備分配獨(dú)立Timer起始時(shí)間錯(cuò)開如設(shè)備1在0ms觸發(fā)設(shè)備2在100ms觸發(fā)輪詢前檢查client.Connected失敗則跳過(guò)本次避免阻塞后續(xù)設(shè)備。// 設(shè)備1輪詢Timer var timer1 new Timer(_ { if (client1.Connected) ReadDevice1(); }, null, TimeSpan.Zero, TimeSpan.FromMilliseconds(400)); // 設(shè)備2輪詢Timer錯(cuò)開100ms var timer2 new Timer(_ { if (client2.Connected) ReadDevice2(); }, null, TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(400));4.7 Step7日志的結(jié)構(gòu)化記錄與告警分級(jí)生產(chǎn)環(huán)境不能只靠MessageBox。需將Modbus異常分類記錄日志級(jí)別觸發(fā)條件處理方式Info正常連接/斷開記錄時(shí)間、IP、端口Warning單次超時(shí)、SlaveExceptionCode0x04記錄錯(cuò)誤碼觸發(fā)郵件告警Error連續(xù)3次心跳失敗觸發(fā)聲光報(bào)警停止所有寫入操作日志格式示例2023-10-15 14:22:31.502 [Warning] ModbusException: Response from slave device: 0x04 (Slave Device Failure) at IP 192.168.1.100:502, FunctionCode03, Address0 2023-10-15 14:22:36.505 [Error] Heartbeat failed 3 times for 192.168.1.100, initiating emergency shutdown.使用NLog或Serilog配置將Warning以上日志寫入獨(dú)立文件便于運(yùn)維快速定位。5. 生產(chǎn)就緒從Demo到上線的六個(gè)必做動(dòng)作寫完ReadHoldingRegisters并看到正確數(shù)值只是萬(wàn)里長(zhǎng)征第一步。工業(yè)上位機(jī)上線前必須完成以下六項(xiàng)硬性動(dòng)作缺一不可5.1 靜態(tài)代碼分析消除潛在內(nèi)存泄漏EasyModbus的Disconnect()方法未釋放_(tái)tcpClient資源若頻繁創(chuàng)建/銷毀客戶端會(huì)導(dǎo)致SocketException: Only one usage of each socket address。修復(fù)方案繼承ModbusClient重寫Disposepublic class SafeModbusClient : ModbusClient, IDisposable { private bool _disposed false; public new void Dispose() { if (!_disposed) { base.Dispose(); // 調(diào)用基類Dispose _disposed true; } } } // 使用時(shí) using (var client new SafeModbusClient(192.168.1.100)) { client.Connect(); // ...業(yè)務(wù)邏輯 } // 自動(dòng)調(diào)用Dispose5.2 配置文件化地址與參數(shù)的集中管理熱詞c#顯示查找一條記錄字段數(shù)據(jù)暗示配置靈活性需求。不能將IP、端口、地址硬編碼!-- App.config -- configuration configSections section namemodbusDevices typeSystem.Configuration.NameValueSectionHandler/ /configSections modbusDevices add keyPLC_IP value192.168.1.100/ add keyPLC_PORT value502/ add keyTEMP_ADDRESS value100/ !-- 對(duì)應(yīng)40101 -- /modbusDevices /configuration讀取string ip ConfigurationManager.AppSettings[PLC_IP];5.3 UI線程安全避免跨線程操作異常WinForm中直接在Timer回調(diào)里更新label.Text會(huì)拋InvalidOperationException。必須用Invokeprivate void UpdateUI(float temperature) { if (this.InvokeRequired) { this.Invoke(new Actionfloat(UpdateUI), temperature); return; } labelTemp.Text $溫度{temperature:F1}℃; }5.4 數(shù)據(jù)緩存減少PLC通訊壓力熱詞c#數(shù)組和c# 延時(shí) 效率指向性能優(yōu)化。對(duì)只讀數(shù)據(jù)如設(shè)備型號(hào)、固件版本首次讀取后緩存10分鐘private static readonly MemoryCache _cache MemoryCache.Default; public string GetDeviceModel() { string key device_model; string model _cache.Get(key) as string; if (model null) { model ReadStringFromRegisters(200, 10); // 讀10個(gè)寄存器組成字符串 _cache.Add(key, model, DateTimeOffset.Now.AddMinutes(10)); } return model; }5.5 寫入操作的二次確認(rèn)熱詞modbus 上位機(jī)控制軟件強(qiáng)調(diào)安全性。所有寫入操作如設(shè)定值、啟停命令必須添加確認(rèn)對(duì)話框和操作日志private void btnSetTemp_Click(object sender, EventArgs e) { if (MessageBox.Show($確定將溫度設(shè)定為{txtTemp.Text}℃, 確認(rèn)寫入, MessageBoxButtons.YesNo, MessageBoxIcon.Question) DialogResult.Yes) { try { client.WriteSingleRegister(150, Convert.ToUInt16(txtTemp.Text)); LogOperation(SET_TEMP, txtTemp.Text); } catch (Exception ex) { MessageBox.Show($寫入失敗{ex.Message}); } } }5.6 離線模式與本地仿真熱詞modbus slave下載和modbus poll提示測(cè)試需求。上線前必須驗(yàn)證離線容錯(cuò)使用Modbus Slave模擬PLC驗(yàn)證所有讀寫邏輯在client.Connect()失敗時(shí)啟用本地SQLite數(shù)據(jù)庫(kù)緩存歷史數(shù)據(jù)界面顯示“離線模式”允許查看歷史曲線網(wǎng)絡(luò)恢復(fù)后自動(dòng)同步未完成的寫入操作需設(shè)計(jì)事務(wù)日志表。我在線上系統(tǒng)中實(shí)現(xiàn)了該模式某次工廠網(wǎng)絡(luò)中斷4小時(shí)操作員仍能查看趨勢(shì)圖并提交設(shè)定值網(wǎng)絡(luò)恢復(fù)后自動(dòng)補(bǔ)發(fā)零數(shù)據(jù)丟失。最后再分享一個(gè)小技巧EasyModbus的ReadHoldingRegisters返回ushort[]但工業(yè)數(shù)據(jù)常需int或float。別每次手動(dòng)轉(zhuǎn)換直接封裝泛型方法public static class ModbusHelper { public static int ToInt32(this ushort[] registers) (int)((registers[0] 16) | registers[1]); public static float ToFloat32(this ushort[] registers) BitConverter.ToSingle(BitConverter.GetBytes(registers.SelectMany(r BitConverter.GetBytes(r)).ToArray()), 0); } // 調(diào)用int value client.ReadHoldingRegisters(0, 2).ToInt32();這套方法已在7個(gè)項(xiàng)目中驗(yàn)證從威綸通觸摸屏到西門子S7-1200再到匯川AM600穩(wěn)定運(yùn)行最長(zhǎng)已達(dá)23個(gè)月無(wú)通訊故障。記住工業(yè)通訊不是炫技而是讓每一行代碼都經(jīng)得起產(chǎn)線24小時(shí)的拷問(wèn)——當(dāng)你看到C#窗體上實(shí)時(shí)跳動(dòng)的溫度值那不是代碼在運(yùn)行是產(chǎn)線在呼吸。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲日韩精品在线播放| 九九九久千久久激情蜜桃在线看| 91精品成人www| 亚洲成人在线资源| 亚洲精品一区二区三区在线播放| AV天堂电影网| 国产老太乱伦一区| 五月丁香啪啪啪| 插入粉嫩少妇视频| 五十路六十路七十路熟婆| 欧天美中出| 女性91网站| 九九热精品| 97色碰| 国产精品对白内射| 久久久性爱| 久久99午夜精品一区人妻| 91最新综合| 亚洲色图91| 激情自拍 校园春色| 亚欧操逼片在线观看 | 96爱综合| 欧美一级黄色免费专区| 欧美日韩免费专区在线| 91激情| 人妻AV在线| 97视频播放| 亚洲情色图片区| 日韩精品人妻中文字幕不卡乱码| 国产熟女免费观看久久| 91精品久久久| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 国产免费久久久久| 亚洲男人天堂2| 高清无码 国产精品| 婷婷五月天久久精品视频一区二区三区| 亚洲在线观看| 熟女被操视频网址| 99国产女人| 欧美99| 欧美色图另类图片| 久草精品热视| 97人妻免费中文字幕| 极品内射| 亚洲人妻av| 97这里有精品| 国产乱婷婷精品二区三区| 大香蕉中文| 91超碰人人| 中国操逼无码| 久久婷婷一区| 人人色人人射人人妻| 蜜臀久久99精品久久久久| 男人亚洲91首页在线| 男女啪啪网站免费视频| 9999亚洲电影| 91九九| 丰满搜索结果 -第18页- 久久高清无码| 亚洲综合草草| 很狠操| 99re综合伊人| 亚洲成人ab| 粉嫩av平台| 神马久久久久久久久久久久| 狠狠激情综合狠狠操中文字幕| 97在线日韩中文字幕| 91狠婷| 综合激情一一91| 久久久日本电影| 国产99热| 性暴力欧美猛交在线直播| 97超碰免费人人性爱| 99精品成人免费看| 日韩免费在线观看不卡| 无毛精品| 操一区| 婷婷丁香六月| 久久久精选| 国产精品免费视频人成| 一区二区三区四区五区高清无码永久视频 | 国产熟妇 码视频户外直播| 国产成人主播| 日本天天吊| 色爱欲亚洲| 国产尤物AV尤物在线观看不卡| 色妺妺AⅤ| 蜜桃视频一区二区三区在线观看| 中文字幕在线高清男人的天堂| 亚洲在饯| 曰本道人妻久久久在线不卡色视频| 熟女乱伦二区| 日韩少妇一区二区三区| 在线观看中文av字幕| 国产亚洲性生活视频播放| 丁香7月婷婷| 欧美暴力猛交| 久久人妻四季| 一区二区三区在线资源| 翘臀vidoes| aaaa黄片| 一级黄色牲爱A级片| 国产精品乱人伊人网| 97干在线| 欧综合网| 国语精品对白| 亚洲交性| 青草成人免费视频一COm| 中文字幕人乱码中文字的预防方法 | 亚洲AV无码乱码| 97国产精品国| 欧美一区二区三区大综合| 欧美日综合| 激情综合网五月婷婷五月天| 久热在线精品免费观看| 大香蕉免费3| 国产内射爽爽大片| 一级性爱视频免费观看 | 偷拍片久久| 国产精品 午夜福利| 午夜天堂精品久久久久91| 精品一区二区人妖| 午夜男人一级A片7777| 欧美αv.com| 欧美少妇性爱网站| 中文字幕亚韩| 日本久久天堂| 欧日韩不卡视.频| 亚洲另类久操网| 欧美性高潮| 91欧美综合在线| 97久久久精品| 蜜臀久久99精品久久久久免费观| 色婷婷狠狠| 久热九九| 淫骚熟女一区二区三区| 狠狠躁天天躁日日躁97| 亚洲熟女av中文字幕| 亚洲视频精选| 国产精品白丝| 国产黄色视频久久| 国产91精品福利在线| 国产一区二区三区精品观看啪| 日韩成人大片一区二区| 国产av白丝| 69视频福利导航| 狠狠躁日日躁夜夜躁A| 欧美亚洲日韩16色| 国产激情在线| 正在播放国产精品一区| 国产蜜臀在线| 精品人妻一区二区三区蜜桃视频| 国产精品熟妇一区二区三| 91丝袜熟女| 日韩精品国模| 亚洲色婷婷久久91| 97人人干| 亚洲精品蜜桃久久久久久久| 97亚洲色图| 亚洲av性爱电影| 懂色av色欲av蜜臀av| 一区不卡在线观看av| 干干干天天| 激情丁香五月婷婷| 龙兴卡官方查询| 久久日韩肥臀| 精品二999| 丝袜 中出 制服 人妻 美腿 中文字幕| 国产又黄又爽| 欧美性爱另类综合| 亚洲欧美setu| 九九草| 亚洲第2页| 熟妇熟女视频一区二区三区| 日本高清视频在线观看黄已三辽| 国产日韩无码一区二区三区久久区| 亚洲欧洲精品视频发布| www老逼91| yazhouzaixian| 国产精品视频91久久| 国产熟女乱论| 欧美一区二区三区大综合| 锕锕好爽 死我在线观看| 欧美爱爱97| 日韩欧美午夜视频在线| 亚洲中文字幕日产无码久久| 国产午夜在线观看| 国产精品秘 福利姬在线观看| 刺激精品视频| 久久精品国产精品一区| 四月丁香婷婷| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 天天操夜夜操| 亚洲丝袜二区在线| 久久久久久久国产a∨| 欧美中文字幕男人天堂久久精品| 91高清日| 99久久网站| 动漫av中文| www.99色| 欧美日韩淫加| 国产精品内射婷婷一级二| 熟女人妻一区二区三区| 日本免费一区二区不卡| 国产精品网址| 久久久久密臀视频| 乱伦图一区| 香港成人一级视频在线青青草| 亚洲中文字幕av | 国产97在线视频| 色九九九| 夜夜草天天| 校园春色之综合网| 神马九九| 色眯眯射| AA特级绝黄| 国桃视频产巨乳精品一区二区在线| 91P0RNY大屁股人妻| 人妻激情偷乱视频一区二区三区 | 久久综合九九| 日韩精品午夜操呦呦不卡影院| 国产福利影视| 超碰午夜| 深田咏美亚洲精品福利社| 久湿久久| 性爱av在线免费观看| 免看60秒涩涩视频| 五月婷婷六月丁香| 中文久久久| 亚洲 中文 女同| 亚洲精品久久久久毛片A片拉屎 | 色官网在线| 久久亚洲精品成人av| 国产九区| 熟女人妻一区二区三区| 麻豆视频一区二区| 97干日韩| 久久黄色视频一区二区三区| 自拍啪啪视频| 久久e6只有精品| 夜夜草天天| 色综合中文字幕不卡| 国模无码人体一区二区三| 国产熟女| 日本三级日本三级99| 熟女精品日韩一区二区三区| 男人的天堂Va| 色吧五月| 亚欧性爱无码| 国产一线二线三线av| 国产精品情侣啪啪| 国产精品熟女九色九色蜜臀| 人伦四五区| 午夜精品一区二区三区三上悠亚| 人人模人人看| 啊啊啊啊,啊啊好多水| 男人的天堂啪啪啪啪啪蜜桃不卡| av网站免费线看| 国产欧洲精品亚洲午夜拍精品| 巨爆乳肉感一区二区三区竹菊影视| 日韩综合色图| 亚州日韩97| AV电影在线播放| 免费人成毛片乱码| 亚洲性天堂| 超碰碰激情97+久| 日韩成人精品中文字幕| 嗯阿好爽好紧| 欧美啪啪女女| 俄罗斯一区二区视频在线观看| 精彩久久中文| 中国黑人三级片网站上区| 国产中文字幕曰本毛片| 亚洲中文字幕在线视频一区二区| 欧美性后入| 国内毛片国产专区二| 久久超碰97| 97超碰这里只有精品| 九九热精品视频在线观看| 久热影视| 国产精品操| 精品9999| 亚洲色丰满少妇高潮| 久久超碰久| 欧亚乱色熟女一区二区| 亚洲一区二区AV| 男人的天堂三级| 日韩av色图综合| 亚殴在线| 97香焦色区| 99热精品在线| 亚卅熟女乱色| 成人网站 免费观看| 黑人在线91| 国产丝袜高跟美女av免费观看| 欧色综合| 久久一二三级一一一| 激情婷婷| 国产欧美日韩女同性恋ww喷水精品 | 色五月首页| 特级丰满少妇一级AAAA爱毛片| 四虎精品永久在线播放| 91视频伊人| 蜜臀久久99精品久久久久久-DVD原版全| 青青草国产一区二区三区| 麻豆一区二区三区精品| 一本一首道人妻少妇免费久久| www鬼畜国产男人的天堂| 国产亚洲色婷婷久久99精品91| 最新啪啪视频| www.色婷婷色综合| 91人妻Pr| 色色色综合| 先锋精品av色鲁| 欧洲综合视频| 91性高| 欧美日韩国产色五月综合在线| 8x福利精品第一福利视频导航| 老熟女熟妇| 成人影 天天操 亚洲| 色婷婷亚洲婷婷| 五月色网| 一二三区在线| 日本精品国产视频| 国产精品丝袜久久亚洲不卡| 91日产欧美| 亚洲精品蜜桃久久久久久久| 亚洲图片 激情小说| 九一综合网| 亚洲天堂一二| 激情一区二区| 中文字幕日韩专区精品系列| 亚洲天堂7777| 国产精品九9| 蜜桃在线观看一区二区三区 | 人干人人人操人人摸| 国产精品69人妻无码久久久| 操操碰| 亚洲国产精品乱码在线观看| 国产精品91ai| nuu12国产麻豆精品| 91精品国产91久久久久久久久久久久| 乱欲视频| 91 亚洲 欧美 日韩 国产 综合| 日韩精品视频在线观看一卡二卡| 欧美国产日韩清纯唯美| 亚洲精品国产av天美传媒| 免费亚洲国产精品久久一区| 97鸡把在线视频| 人人性爱视频免费| 欧美日韩国内不卡| 日本精品国产视频| 91少妇高潮| 成人五月天丁香激情综合| 天天草夜夜草高潮片| 国产粉嫩出水在线播放| 97超久碰| 超碰99在线| 亚洲国产精品无码AV久久久| 99精品热| 天天插夜夜爽| 99精品免费| 夜夜高潮夜夜爽高清视频一 | 97激情97激情| 亚洲干B| 国产综合在线视频网站| 深爱五月婷婷| 亚洲AV色图一区| 91精品国产91综合久久蜜臀| 欧美成人色| 久久五月婷| 久久 亚洲 日韩 人妻| 男人天堂久久精品不卡| 老熟女乱伦一区| 97人妻碰碰中文无码久热丝袜| 97超碰天天爱天天爱| 天天干夜夜| 成人日韩3| 神马久久久久眼| 激情文学亚洲| 国产亚洲中文不卡二区| 色哟哟-国产专区| www亚洲欧美| 爱av免费| 天天综合网~91综合网| 亚洲 欧美 日本 国内 首页| 久草这里只有精品| av一区二区三区 中文| 亚洲综合图色在线| 91性高朝久久久久久久久| 中文字幕在线观看视频www| 都市激情人妻一区二区青青操视频| 蜜臀99久久精品久久久久| 在线无码操| 久色99999| 欧美夜夜草视频| 久久国产三区| 亚州性色| 91精品成人www| 97在线免费视频观看| 国产和美国毛片| 最新av中文字幕高清| 久妇网| 另类欧美色| 五月丁香婷婷综合网| 久久亚州大香蕉| 先锋色眉乱伦资源| 97久久天天综合色天天综合色电影| 极品美女福利在线观看| 五月婷婷青青草娱乐伊人| 亚洲成人免费中文字幕| 嗯嗯啊啊好大好爽| 可以免费观看的日韩av毛片| SS久久| 国产日韩在线播放av| 好淫网一二三视区| 亚洲精品一区二区精品| 中文字幕精品久久久久人妻红杏ⅰ| 亚洲乱码精品一区二区| 神马久久久久久久久久久久| 久草国产在线视频| 神马久久久久久久久| 99操视频| 久久六六| 人妻酒店出差被中出免费在线播放| 翔田千里无码一区| 夜夜操一区二区| 欧美久久伊人| 97精品视频免费| 日韩Va亚洲va欧美Ⅴa久久| 国产精品日韩在线一区| 青娱乐大香蕉| 久久激情亚洲精品无码?V| 人妻无码一区二区三区久久99| 精品性爱一区二区| 啊啊啊好舒服视频| 九九色逼| 思思热在线视频免费| 免费久久9999| 国产av美女被艹的乱叫| 欧美第二页| 婷婷五月天久久精品视频一区二区三区| 中国探花熟女| 亚洲精品视频二区| 999久久久免费精品国产牛牛| 高树玛利亚无码流出| 日本性爱欧美性爱| 欧美色蜜桃97| 9 7超碰在线免费观看| 亚洲免费成人精品电影| 亚洲天天更新| 97在线青| 国产精品一区二区三区在线密挑| 日本不卡高清视频| 香蕉综合网| 国产suv精品一区二区四区999| 亚洲制服aⅴ中文字幕| 麻豆色99999| 精品人妻一区二区免费蜜桃| 国产精品亚洲一区二区三区四区| 男女性无套 免费九一| 蜜桃丰满熟妇av无码区不卡| 人妻夜夜爽天天爽麻豆三区网站| 日韩av不卡在线观看| 欧美夜夜草视频| 99草精| 久婷婷一区| 秋霞网—男女啪啪亚洲免费体验区| 97资源超碰| 色欲久久久久综合网| 中出在线视频| 有码色中文字幕在线观看| 五月丁香综合激情| 国产AV激情无码久久无码| 欧美激情专区| 欧美色图综合网| 岛国不卡超碰护士AV在线播放| 亚洲av在线免费观看| 国产成人免费观看在线视频| 成人无遮挡毛片免费看| 日本操逼无码| 日韩成人人妻网站| 四虎在线免费视频| 五十路熟女工口 | 精品二999| 亚洲丝袜色图| 人人妻人人操人人乐| 久久久婷| 婷婷五月色| 色综合尤物| 久久99人妖视频国产| 黄色一区二区秘书性感| 尤物视频一区| 亚洲一区二区三区不卡国产欧美| 免费看片黄| 日本成人免费一区二区三区| 91网站18| 一区二区三区美女超清| 人人干人人操人人爱| 风月影院十八禁| 天天综合91| 白丝AV| 好属操| 亚洲精品久久久久久久蜜桃臀| 熟女少妇视频| 男人天堂新在线| 日韩有码专区| 啪啪啪综合网| 久久大黄片| 国产精品第一页国产大屁股视频免费区| 天天欧美97| 老司机香蕉| 天天欧美| 天天澡天天爽日日AV| 懂色av一区二区三区天美传媒| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 日韩精品熟妇| 日本东京热大香蕉a片| 99自拍B亚洲| 婷婷五月天久久精品视频一区二区三区 | 日韩熟女操逼| 久久黄色性爱视频| 国产在线精品偷| 99熟女| 五月丁香六月婷综合成人综合| 日本三级日本三级99| 五月婷婷综合网| 久久9精品视频| 综合天天网| 欧美性Fer办公室秘书| 国产精品成人午夜福利| 999久久久免费精品国产牛牛| 一级人妻性爱视频| 秋霞免费AV| 无码色| 亚州久久9| 天天热精品| 97美日韩视频| AV天堂国产| 亚洲国产成人精品久久久国产成人一区二区三. | rivers-china.com| 一级性爱视频免费在线| 99热精品免费| 丝袜狠狠草尤物 91| 一起草高清无码| 日本高清一区二区在线| 成人贴图日韩欧美| 97国产综合欧美| 新亚洲无码| 国产麻豆福利av在线播放| 亚洲无码色| 成人在线永久| 人人操人人色网| 成人免费福利网站国产| 欧美日韩99| 欧美情色男人的天堂| 91色欧美| 性在久久久久久| 艳美熟妇先锋一二三区| 国产AV天美传媒一区二区三区 | 性爱网站一区二区| 天天拍天天操| 日韩精品影视| 午夜国产乱伦视频| 国产怡红院| 亚洲天堂少妇| 成人精品无码| 99色综合| 欧美日本天堂| 综合色欧美| 久久av无码| 一本一道人妻久久一区二区三区 | 日韩三级在线观看mp4| 992视频一区| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 96免费视频在线| 欧美色另类| 亚州操逼网| 俺去久久| 玖日综合网| 亚洲熟久久| 国产v亚洲v日韩v欧美v片另类 | 日韩久久超碰色| 天欧美在线| 成全在线观看免费观看| 中文字幕视频一区视频二区| 天天操天天干美女网址导航| 亚洲av综合色区无码一| 亚洲日本韩国极品一区二区| 99热销国产这里有精品| 色哟哟511老熟女| 加勒比综合九九99视频在线播放| 亚洲天堂一区| 东北黄色电影| 亚州综合| 一品道视频一区二区三区| 欧美性高潮| 国产精品秘 福利姬在线观看| 天天操天天7| 性爱乱伦视频免费| 亚洲天堂女优在线| 青青草福利视频| 2019亚洲男人天堂| 欧美刺激色黄片免费看| 呻吟 欧美 日本 中出| 最新三级网址| 后入式五六区| 日韩AC| 东京热熟女亚洲视频网站| 在线观看成人性爱免费小视频| 九九热五区| 人人玩人人添人人澡免费| 吉田爱美AV在线| 午夜超爽| 欧洲色综合| 男人兔费天堂| 亚洲一区二区三区春色| 二对二中文字幕。| 无码高清专| 中韩中文字幕在线观看| 亚洲另类综合欧美| 好爽视频在线观看| 蜜桃精久三区| 91天堂色男人的天堂| 亚洲精品黄码久久久久| 97天天摸天天碰| 99久久精品无码一区二区毛片免费 | 日韩在线97| 无码日韩人妻av一| 人妻第一页| 91精品人妻一区二区三区蜜桃臀| 日韩精品国产一区二区| 欧美综合亚洲| 亚洲最大黄网| 啪一啪免费视频| 97欧美综合网| 欧亚日韩三区| 1024人妻| 欧美激情另类一区二区| 亚洲丝袜二区在线| 国产白嫩精品久久| 人妻精品一区二区在线| 青青草天天亲夜夜操网| 丰满人妻一区二区三区免费 | 久久精品电影在线| 蜜臀AV成人精品蜜臀| 无码国产精品午夜不卡(| 亚洲色人| 国产av色网| 成年男人的天堂| 手机在线观看不卡无码av| 亚洲综合97| 亚洲精品黑丝| 激情五月综合网| 性爱免费视频成人| 97在线免费| 综合色久欲| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 欧美72网页| 欧美黑人与女人91| 天天爽爽爽爽| 欧美性爱十八禁| 成人免费视瓶| 亚洲综合网91| 亚洲色天堂九9| 亚洲美女 晚间男人天堂| 超碰97资源网亚洲| 欧美日韩系列| av九九| 久久国产逼| 97视频播放| 色悠久久久av| 伊人久久大香线综合无码| 一本道综合色图| 国产多人在线观看视频| 97欧美视频| 久9爱精品| 91久久久久久久| 91伊人大香蕉| 国产视频一区二区三区久久亚洲天堂| 人人扣人人操| 亚洲精品日日夜夜52| 国产欧美精选自拍一区| 情趣丝袜无码操逼视频| 中文字幕一区二区视频在线观看| 97操B| 欧美人妻熟女在线| 亚洲综合一| 97bbn| 色综合99999| 蜜臀久久久国产| 麻豆天美传媒毛片| 男人的天堂com| 国内精品久9| 91色射| yazhououmeizongya| 韩日自拍| 亚洲久草AV色图| 玖玖大干人妻| 深夜激情| 啊啊啊啊啊好多水| 蜜区区视频79| 丰满人妻一区二区三区四区| 超碰97综合在线| 欧美日韩欧美| 欧美综合网在线| 国产色产精品在线观看| 国产精品视频内谢女人| 秋霞一集毛片观看| 精品毛片av一区二区| 9色国产精品一区粉嫩 | 欧美制服网站美腿丝袜| 强奸少妇AV导航网| 久久AV无码1区2区3区| 97中文字幕色| 97色色色综合网站| 18禁久极品美女久久哦哟呀!| 欧美一品道| 欧美日韩中文字幕不卡| 激情婷婷综合久久| 欧美人妻久久精品二区三区| 日韩激情啪啪啪| 亚洲精品视频在线| 任我爽视频在线观看| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 日日噜噜夜夜久久亚洲一区二区| 啊嗯嗯啊好大好爽| 91天天综合在线| 白嫩少妇| 国产黄色 A 片免费看| 高清无码 国产精品| 亚洲aV无码成人在线观看| 天天综合色| 超硑97精品| 东京热99999| 日本一二区不卡| 国产乱色国产精品免费视| 伊人久操| 怡红院怡春院| 密臀国产在线| 老司机午夜精品视频| 无码 黑人一区二区三区| 日韩精品在线观看网站| 亚州色交| 亚洲十八禁止| 女人天堂av在线播放| 日本黄色大片一级视频免费麻豆| www.色综合| 再深点灬舒服灬太大了添视频| 另类专区加勒比| 精品亚洲天堂| 精品少妇人妻av久久免费| 户外裸露刺激视频第一区| 2020视频1区2区3区| 亚洲熟女一区| 人妻夜夜爽天天爽三区麻豆AV网站| 日本性爰一道本| 精品久久久久久亚洲| 久偷拍欧美日韩三区| 成人久久久| 囯产操逼片| 亚洲瓯美色图| 日韩一卡二卡三卡| 91动漫操逼视频| 欧美久久毛片基地| 欧美+日产+中文| 激情五月天中文字幕色| 亚洲中文字母在线播放| 在线 亚洲 网爆 自拍| 超碰九九| 黄片色区软件| 青苹果影院男人的天堂| 久久久四区| 欧美成人性爱视频大全| 男人天堂综合| 综合亚洲欧美精品日韩?v| www.色婷婷.com| 超碰一区二区| 尤物黄色在线观看网站| 中文一区二区婷婷视频| 夜夜欧美 | 夜夜国自区| 情趣丝袜无码操逼视频| 久操黄色视频| 亚洲性天堂| 国模限制级电影| 欧美人黑A片无码免视费| 尻女朋友一夜| 国内亚洲高清无码| 亚洲成人一二三区| 精品国产乱码久久| 国产女人高潮视频| 综合色区偷拍| 天天日天天插| 蜜臀99久久精品| 国产91av在线播放| 亚洲精品欧美专业| av网站免费线看| 日韩欧美成人大香蕉| 加勒比海色香蕉婷婷| 婷婷丁香五月综合| …亚洲黄色厕厕女女在线播…| 激情四射五月天| 日韩精品影视| 在线观看国产黄色| 久久精品无码不卡| 操一区| 狠狠爱夜夜| 激情综合97| 97视频在线| 不卡九肏| 久久狠狠色噜噜狠狠狠狠97| 怡红院怡春院| 成人AV超碰免费在线| 欧美白嫩女HD| 免费精品人妻一区二区三| ai欧美亚洲小说| 久久久久国产精品喷潮免费观看臀| 五月开心久久AV官网| 欧美视频一区二区在线| 妇女乱色二区| 人妻嗯啊啊在线播放| 97干97色| 日韩啪啪啪视频| 日韩国产乱子伦App| 精品人妻一区二区三区蜜桃视频| 99热91| 国产精品久久久吖| 四虎在线播放| 激情第四色| 国产无码三级视频在线观看| 亚洲国产青青| 丁香五月天激情综合| 精品无码欧美三级| 丰满少妇人妻久久久久久| 2020中文在线一区二区三区| 欧美专区17页| 国产超碰国产97| 国产av强奸美女| 97ai亚洲| 欧美大香蕉97| 26uuu国产亚洲综合| 亚洲综合一| 激情丁香五月| 国产探花精品在线| 91综合无码| 91在线丝袜视频| 夜夜国自区| 日本免费中文一区二区三区四区| 人妻偷拍一区二区三区| 亚洲校园激情| 亚洲熟女综合| 欧美精品日韩一区二区| 中文操逼字幕| 四虎影视国产精品| 99xav| 丁香五月综合| 色欲久久久久综合网| 干美女人妻| 超碰97资源中文字幕| 久久久成人国产精品无码| 国产偷拍网站| 日韩欧美麻豆| 亚熟hd视频在线| 精品视频久久久久九九九九9999| 性久久| 亚洲啪啪综合?v一区综合精品区| 天天插天天操天天摸天天射天天看| 亚洲色图91欧美日韩| 自拍偷拍第26| 日韩在线电影| 欧美亚洲韩国视频十五区| 啊啊啊啊啊操我视频| 久久久97| 操高情无码| 黑人精品一区二区在线播放| 欧美人妻制服| 91久热| 亚洲日产专区婷婷| 啊啊啊好湿久久| 开心激情站| 男人的天堂一区三区| 欧州一区二区三区四区| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 婷婷爽人人婷婷爽视频| 啊啊啊啊啊舒服| 日本不卡二三区| 99爱久久视频频| 女人被添高潮免费视频| 温婉少妇玩3p| 欧美亚洲色图另类国产| 日韩有码 一区二区三区| 91少妇人妻| 亚洲欧美日韩中文久久自慰| 北京美女一区二区| 久久有碼| 国产AV天美| 日本亚洲vr欧美不卡高清专区| 香蕉久久国产AV一区二区| 91影库| AV在线性爱| 看免费的黄片| 少妇一级婬片免费放一级a性色.| 香蕉国产精品麻豆亚洲欧美日韩| 亚洲欧美在线丝袜| 偷拍盗拍亚洲色图图片| 亚洲无码日韩电影| 欧美国产婷婷久久| 97在线免费视频观看| 日本男人天堂| 91久久久久| 精品夜夜澡人妻无码AV| 免费视频观看60秒| 717影院理论午夜伦八戒| A 天堂在线观看视频| 久久欲| 日韩亚洲国产视频| 女人 A一级| 99精品成人免费看| 九九综合久久| 美女诱惑1区2区| 激情网五月天| 91亚州日韩高清| 丝袜制服字幕在线| 好吊色一区| 欧美色日本| 懂色av中文字幕一区二区三区天美| 日韩不卡一二三四| av日韩中文字幕| 日韩久射综合| 欧美极品| 日韩精品一区二区日韩| 国产激情在线| 视频分类 国内精品| 综合色播| 欧美熟女少妇| 久草色悠悠在线视频| 爱妻综合网| 97亚洲综合在线| 性猛交| 欧美色视频在线| 一本一道vs波多野结衣| 激情第四色| 玖玖蜜臀资源网| 午夜精品久久久99热蜜桃的功能特点| 久操视频在线| 精品99999| 国产操逼逼网| 国产在线76页| 91日产欧美| 亚洲欧美综合图片| 人妻熟女一区二区三区视频| 天天看天天日天天操| 亚洲阿v天堂无码z2018| 大香蕉久| 美女AV一区二区| 免费99精品国产自在在线| 久久内射| 一起草日韩| 国产精品交换一区二区| 黄色不卡视频| 97超碰欧美手机| 天天做日日做| 综合网欧美在线| 日韩欧美偷拍美女视频| 性色综合网| 天天搞在线综合网| 麻豆 欧美 日韩| 国偷自 一区二区| 明星性猛交ⅹxxx乱大交| 国产AV色黄看到爽| 偷拍 精品另类 凸凹了四区| 国产性爱欧美性爱在线| 综合久久9| 亚洲av影院在线观看| 免费农村成人少妇人妻Aa一区二区视频| 中文熟女五十乱码在线| 13小男生GAY自慰脱裤子| 婷婷久月| 夜色97| 色操逼网| 中文字幕91综合| 99re这里只有精品2| 亚洲高清无毛一区二区| 五月天婷婷激情| 色阁阁AV综合网| 收看日本人日bb| 亚州色图第三区| 青青操日韩| 美国aaaaa一级黄片| 国产精品亚洲四五区在线观看| 久久大香蕉97| 日本人人操人人操| 果冻传媒A片一二三区| AV网站高清无码在线观看| 99老司机精品视频在线观看| 日韩97视频!在线| 97视频网站| 丰满少妇人妻久久久久久| 91这里只有精品| 人妻日日夜夜精品| 欧州一区二区三区四区| 97色爱| 欧美综合国产精品久久丁香| 久久一二三级一一一| 日韩中文字幕国产| 色婷婷成人综合| AAAA级日本片免费视频| 爱射综合| 亚洲牲交| 亚洲色图久久成人| 麻豆天美传媒毛片| 精品少妇一区二区三区免费观看| 91制服丝袜| 丁香五月天堂网| 免费在线视频97| 中文字幕精品一区二区精品| 啊啊啊好大好深| www.色婷婷| 欧美综合另类| 人人喜人人妻| 91免费看一区二区三区| 九九久久首页| 人妻性爱一区二区| 亚洲天堂区| 天天肏天天干| 亚洲AV乱码专区国产噜噜亚洲| 欧美影院一区二区三区| 久久一留热品黄| 2017人人操,人人摸| 使劲用力艹少妇视频一区二区| 久久av一级av少妇av高潮| 91 丝袜在线| 免费的黄片有限公司| 精品人妻一区春色| 亚洲黄色a级片| 日韩中文字幕精品一二三事国产精品| 无码精品久久| 亚洲色图伊人网| 亚洲一区中文字幕一区| 208天天久久九九九| 综合色播| 婷婷色色五月天福利| 蜜桃臀 后入 一区 二区 三区 在线| 中文字幕久久婷婷丁香五月天| 91熟女综合| 大色综合网| 日日骚中文字幕| 大香蕉宅男伊人| 乱伦3P视频| 97精品在线视频| 物尤视频一区二区| 国产熟女乱论| 久久人| 精品免费国产二区三区| 久久精品美女一区| 国产精品盗摄 偷窥盗摄| 啊啊啊 在线| 乱码熟妇人妻久久久| 欧美性爱另类综合| 97资源视频| 搡老女人老91二区| 啊啊啊啊好疼视频| 动漫片子网站3黄| 一区在线观看中文字幕| 国产强奸乱伦xd| 在线中文字幕视频| 综合97久久| 久婷婷一区| 97国产超湿| 欧亚免费视频| 欧美一级久久久久久久大片动画| 蜜臀久久99精品久久久久久-DVD| 99精品高潮| 欧美午夜色妇色鬼| 蜜臀av在线播放一区二区三区| 大香蕉免费乱伦视频| 成人无码电影在线观看网| 欧美性爱一区二区| 91N综合网| 欧美黑人168页欧美黑人167| 神马午夜久久久| 岛国小电影| 长长久久免费视频| 国产小u女在线观看| 影音先锋视频在线| 国产午夜福利电影免费在线观看 | 免费久久9999| 岛国小电影| 精品国产乱码久久久久A| 婷婷伊人网| 无码国产精品久久久久| 岛国视频一二三区| 久综合国内精品自在自线| 国产亚洲色婷婷久久99精品91 - 百度| 国产一区二区在线看| 人澡逼| 锕锕好爽 死我在线观看| 18禁久极品美女久久哦哟呀!| 精品人妻夜夜草| Av色五月| 啊啊啊啊啊在线观看网址| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 澳门黄片一香蕉视频| 激情综合网激情综合| 超碰97亚洲| 91色综合| 立川理惠被中出无码| 69国产对白刺激| 国内毛片欧美香蕉精品| 亚洲春色一区二区三区| 色视频蜜乳| 偷拍亚洲熟女视频播放| 少妇无码av专区线| 91精品国产日韩欧美综合| 3028国产精品| 美女国产一区二区久久| 国产一区二区在线电影| 国产福利精品最新在线| 婷婷五月天久久久| 欧美激情综合| 国产后入精品| 欧美一区二区情色| 久久99手机免费视频| 成人精品一区二区三区| 五月天加勒比啪| 91成人亚洲色图| 欧美精品黑人猛交高潮| 天美传媒AV在线播放| 91社区伊人| 91影库| 天天干天天狼在线视频| 99久久99九九99九九九| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 国产成人免费观看在线视频| 综合欧美日本三级| 日日夜夜干| 成人日本精品九区| 99热8| 丰满人妻-区二区三区免费看| 国模精品娜娜一二三区| 蜜桃臀久久| 欧美日综合| 探花视频免费观看国产专区| 免费的黄片有限公司| 99精品成人免费看| 开心五月激情网| 亚洲狼狼干综合1| 久草线上视频免费看| 日韩三级av片| 13小男生GAY自慰脱裤子| 国语国产操逼伊人AV网| 色婷五月天| 激情欧美日韩女同久久| 久肏视频字幕| 亚洲欧美高清无码| 色爱三区| 在线 亚洲 网爆 自拍| 国产又长又大又粗的视频| 91色狼| 人人摸人人添人人操|