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

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ù)雜。我見過(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含義常見原因解決方案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
返回資訊列表
九草九九九| 久久受www免费人成| www99热| 亚洲深夜福利| 天天日美女的B| 老熟女91av| 国产网站在线播放| 美国黄片aaa| 九九九九97| 久久久精品国产亚洲伊人| 国产色综合亚洲色综合吹潮| 欧美性暴力猛交| 亚洲国产剧情少妇激情| 动漫片子网站3黄| 亚洲αv一区二区三区| 久久尹人大香焦视| 久久久久久久久久久久97| 一区久久久二区| 色色操| 精品一区二区成人动漫| 天天躁日日躁成人字幕aⅴ| 精品大全99999| 日韩一999精品| 久久一区无码| 天综合网| 亚洲91少妇| 无码在线亚洲| 国产浮力影院第1页| 亚洲图片激情综合另类| 国产精品美女久久久久久网站| 天天操熟妇| 99999精品成人| 国产13区| 中文字幕55555| 久久五月综合| 色99视频| 97久久精品亚洲中六字幕| 日韩中文字幕二区| 欧美在线播放aaaa| 国产无码一二三区| www.av在线观看| 亚洲蜜乳av| 99re公开精品免费视频| 极品美女福利在线观看| 国产高清精品福利| 亚洲一二三精品久久网 | 97热视频在线观看| 亚洲高清男人天堂| avav青青草久久夜| 久草新在线| 老司机香蕉| 天天射夜夜操| wwwxxx日本爽| ?亚洲伊人伊成久久人综合网| 久久成人午夜精品影院| 爱做久久久久久| 国产 无码 一区二区| 久久国产免费激情视频| 日韩午夜精品一区二区三区电影| 日韩少妇一区二区三区| 99精品在线播放| 欧美亚洲国内自拍| 亚州欧美总和| 午夜爽爽爽| 91在线欧美| 日语五十路和六十路亚洲国产精品 | 少妇激情一区二区三区视频| 夜夜爽夜夜| 八戒午夜福利理论片| 综合久久久久久久综合网| 性色av网站| 亚洲综合五月天婷婷丁香| 欧美性爱97超碰| www.91欧美| 亚洲久草AV色图| 91天天综合网| 国产精品熟女九色九色蜜臀| 亚洲精品成人激情在线| 嗯嗯嗯啊啊啊操的我好爽| 欧美激情色婷婷花野真衣一区二区| 情色五月天网| 中文字幕99999| 强奸乱伦AV网址| 操高情无码| 狠狠爱综合网| 综合九九| 蜜乳AV一区二区三区四| 嗯阿好爽好紧| 欧美色另类| 伊人丁香五月婷婷| 亚洲色吧网| 久久久婷| 高潮的A片激情扒开一区| 久久极品伊人| 欧美亚洲天天| 国产 无码 一区二区| 2020视频1区2区3区| 日本999精品| 91熟女网| 国产热RE99久久6国产精品首| 国产视频一区二区在线| 欧日韩一二三f区| av一区二区三区四区| 亚洲精品人妻吞精av| 日本丝袜美腿人妻九九| 日韩无码一区二区三区| 日韩有码一区三区| 91欧美网| 青青国产精品在线| 亚洲欧美天堂| 日本天堂网| 成人怡红院| 五月天综合网| 久热这里只有精品9| 1024人妻熟女一区二区三区| 97超碰色屌| 久久久久久十| 中文字幕一区二区三区高清| 熟女网站最新| 色99视频| 超碰色97| 熟妇熟女亚洲天堂网| 国产激情在线| 9久综合网| 国产精品伦理| 看日韩美女二区三区免费操逼视频 | 久久国99999| 国产一区二区三区高清视频| yazhousetuoumei| 91免费看一区二区三区| 绯色AV粉色AV蜜臀AV| 酒色综合网| 九九久久综合| 国产乱子伦一区二区三区在线观看| 99久久网站| 91久久久久| 精品久久人妻成人网| 中文字幕一品色图| www.色五月| 亚洲色图欧洲| 色综合潮| 国产不卡免费在线视频| 亚洲91射| 日韩久久三区| 国产午夜福利专区综合| 97视频www| 精品亚洲国产成人精品| 中国操逼无码| 美女毛片999| 日韩精品免费高清视频在线| 美女爽到高潮91| 九色 人妻 大香蕉| 国产精品美女久久久久AⅤ国产馆| 校园春色综合香蕉| 天天天天操| 97日韩欧美| 欧亚第一综合网| 韩国成人精品久久久免费看| 久久精品国产97欧美精品亚洲 | 亚洲色图欧美色图综合| 日韩ab网 | 日韩欧美麻豆| 偷拍欧美激情| 国产小黄片在线免费观看| 中文字幕福利视频一区二区三区在线观看| 亚洲三区视频| 熟妇色99| 亚洲资源网| 激情国产乱伦Av| 五月天日日操夜夜操| 一个人在线看的黄色电影网站| 十八禁av无码免费网站APP| 揉揉揉夜夜| 青青草日本中文字幕 | 亚洲精品97p| 精品人妻一区二区三区-国产| av在线播放国产一区| 色色97爱| 一区二区不卡免费| 欧美成人色| 中文字幕五区| 热久久国产| 中文一区在线日| 五月婷婷综合在线| 国产白嫩漂亮KTV在线| 97超碰9| 夜夜 中文视频rt| 精品久一区免费| 伊人五月天| 日韩一区二区精彩视频| 97精品久久| julia ann久久| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 一道本东京热加勒比一区二区三区| 岛国视频免费在线观看| 日韩免费福利在线观看| 91黑丝在线| 九九九九九九精品| 久久人妻一区二区三区高清| 裸体1区| 97久久精品亚洲中六字幕| 成人午夜视频免费播放| 亚欧无码在线| 3P乱轮视频| 一本精品日本在线视频精品| 国产狂喷潮在线精品| 亚洲丝袜综合| 久久大黄片| 清纯唯美亚洲综合| 91在线视频国产网站| 欧美日韩系列| 91n处女在线观看| 青青青草原| 亚洲人精品午夜不卡| 怡红院成人av| 青青草字幕AV| 亚洲日韩少妇一道本视频| 午夜性| 欧美最婬乱婬爆婬性视频 | 久久中文色图| 97操97干| 夜夜躁狠狠躁日日躁av| 人妻三级在线中文字幕| 一级性爱视频免费观看| 国产真乱mangent| 秋霞操逼片| 日韩色欲久久一二三四区| 欧美中文字幕日韩在线| 欧美天天干| 91成人久久 | 国桃视频产巨乳精品一区二区在线| 75大香蕉| 丝袜狂射91| 加勒比性爱成人在线| 久久精品99| 97在线视频免费看| 精品蜜乳AV免费观看| 亚洲色欧美| 青青操网| 国产精品久久成人免费| 亚洲天堂,男人| 久久精品人体| 日韩中文字幕宗合在线| 亚洲Av诱惑| 无码久久亚洲高清,| 一级片在线观看高清无码| 国产精品不卡av免费在线观看| 狠狠色伊人亚洲综合网站色| 八人操人人摸人人看| 色波多| 家庭乱伦性爱av| 日本亚洲熟女视频| 啊啊啊好湿久久| 国产免费一区| 国产精品久久天天干| 日操粉逼逼| 天天摸,夜夜摸| 中文字幕在线观看AV| 色欲色香天天天综合网www-亚洲综合国| 国产乱子伦一区二区三区免看| 啊啊啊啊无码| 太久视频| 夜夜高潮夜夜爽| 国产视频97| 精品国产三级av韩国在线| 中国乱伦一区二区| 三上制服丝AV| 亚洲色欧美| 91黑人无码激情在线| 精品久久久av| 97超碰超| 国产精品视频精品一二| 91网站18在线| 亚洲欧美色图小说| 日韩精品99999| 97一区二区三区视频| 男人的天堂va在线| 人人操人人大香蕉| 98精品国产乱码久久久久久| 亚洲人成在线放东京热| 一区二区三区精品视频| 操淫穴亚洲五月丁香| 日韩精品人妻| 91oumei| 啊啊啊啊,啊啊好多水| 欧洲亚洲国产综合在线| 920日本午夜免费| 亚洲干B| 天天天天天天天天天天干美女| 欧美美女在线高潮999| 国产精品伦理| 亚洲色啪| 91美女视频直播| 欧美劲爆视频一区二区| 97天天在线| 日韩Va亚洲va欧美Ⅴa久久| 亚洲国产综合久久天堂| 超碰2017| 天天亚洲综合| 国产操伦| 天天干1区2区在线| 麻豆国产免费影片| 日韩久射综合| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 日韩小电影| 91中文在线| av橘色网站| 凹凸视频特色日本特黄| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 东北女人无套内谢视频| 四虎影库国产精品免费| 国产亚洲色婷婷久久99精品91 - 百度| 操久久久久久| 欧美一级A一级a爱片久久| 欧美第一页性| 亚川综合视频| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 97在线视频网站| 九九色热| 日韩精品字幕| 亚洲偷拍欧美激情| 色婷婷99| 国产美女口爆吞精视频| 欧美日韩另类字幕中文| 激情专区综合| 偷拍精品一区二区三区| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV | 日婷婷| 午夜精品人妻二区三区| 2024人人操人人摸| 人妻一区二区三区四区视频| 9久精品视频在线观看| 国产精品成人无码av无码免费| 天干天干天干天天做| 志村玲子视频一区二区| 97人人操人人摸| 欧美激情 一区| 91大胆欧美| 国产精品久久久无码AV网站| 9丨久久九九九 | 国产99久久99热这里只有精品15| 97在线免费视频观看| 欧美嗯啊……在线观看视频免费| 飘花国产午夜精品不卡| 丰满人妻一区二区三区免费 | 老司机香蕉| 少妇诱惑视频| 东京日日夜夜| 艹少妇网站| 香蕉人欧美综合| 久久宗合亚洲| 超碰成人人人爽人人爽| 少妇内射视频| 60秒试看最爽10分钟网站| 国产99久久99热这里只有精品15 | 激情五月综合| 免费看国产曰批40分钟怎么下载| 97aiaiai| 久久久青青草| 人伦四五区| 久久中出在线| 人妻一区二区三区| 亚洲无码色| 欧美黑人精品一区二区| 午夜无遮挡男女啪啪视频| 欧美97色| 青草地一本线一区二区三区| 美女丝袜激情小说| 日本淫穴在线| 亚洲视频二区 | 亚州黄站| 就去色综合| 99在线啪| 情侣操 逼视频99| 亚洲日韩av一区二区三区百合| 欧美性爱精品一区二区| 强奸乱伦Av网| 五月天丁香婷婷综合网站| 91视频伊人| 亚洲有码视频二区| 伊人国产成人av网站| 天美传媒精品久久视频| 干妹子| 中出后入| 久久噜噜噜精品国产亚洲综合| 欧美大片一区二区三区| 色男人色天堂东京热| 乱老熟女一区二区三区| 91五月天| 9999久久久久| 欧美se综合| 综合网亚洲在线| 久久久久成人网| 欧美日韩制服| 欧美亚洲首页| 在线观看亚洲成人精品| A 在线网址| 欧美一级A片不卡视频。| 秋霞成人一级在线观看| 午夜偷拍久久熟女| 狠狠色综合网| 婷婷久草一区二区三区| 五月婷婷hd| 久久超碰98| 99最新日韩偷拍视频| 男女香蕉一区二区| 久 久无码人妻AV| 亚洲天堂精品日韩电影| 日韩操p| 久久美女国产| 久久曰曰| 啊啊啊啊二区好大| 亚洲骚男同com| 91精品人妻一品二品三品| 天天欲望网| 风月影院十八禁| 一级人妻性爱视频| 亚洲成人网站在线观看| 丝袜狠狠草尤物人妻av91| 99国产精品免费| 九九人妻| 亚洲精品一区二区精华| 国产极品99热在线播放69| 最新日韩黄片| 78久久| 丁香九月 婷婷| 日韩精品视频在线观看一卡二卡| 国产九月婷婷| 婷婷另类小说| 成人性生活高清视频在线播放| 91P0RNY大屁股人妻| 在线观看AV片| 97国产色综合| 九99久久| 国产精品久久久无码aV去| 欧美一级黄色18片免费看| 精品人人| 欧美色图另类图片| 青娱乐亚洲自拍| 欧美午夜精品久久久久久超碰| 日本欧美色| 中文字幕三四五区| 丰满人妻av一区二区三区| 哈哈操电影AV| 78精品| 免费啪啪一级视频| 人妻精品一区二区全免费| 青青草原av| 久久性爱精品一区| 亚洲 图片 欧美 色图| 欧美日韩小说| 最新中文字幕在线亚洲| 一区二区 电影 亚洲| 大奶的诱惑| 国产精品视频白浆免费| 亚洲综合九| 亚洲美女AV无码| 婷婷激情四射| 日本欧美不卡| www.99在线| 插B在线观看| 日韩精品黄片免费观看| 夜草欧美| 性在久久久久久| 10000部十八禁看电影| 亚洲色图一区二区三区| 99热超碰| 欧美激情内射| 99热这里只有精品8| 亚洲久久东京热一二三四五区视频| 亚洲高清无毛一区二区| 青青久操| 激情五月综合开心五月| 日韩懂色网| 国产男女边吃边摸视频网站| 天天天肏屄欧美| 久久只有精品| 欧美性,色九九| 亚洲日韩人妻中文字幕一区| 国产视频一区二区三区久久亚洲天堂| 亚洲无992tv| 偷窥自拍亚洲色图| 26uuu最新| 亚洲永久AV无码精品秋霞| 亚洲成aⅴ人片不卡无码| 日本精品国产视频| 久久青青草原免费视频| 亚洲综合 欧美| 美国日韩黄色片| KK色在线影院| 97超碰69| 久久精品国产亚洲AV无码做| 天天综合站| 欧美日综合| 色逼综合| 久久日本熟妇熟色高清| 国内毛片免费h片在线| 中文字幕AV中出| 嗯嗯啊啊啊好爽| 国产免费一区二区三区最新不卡| 综合久久久久久久久91| 国产视频第2页| 三级片网站在线播放| 一本久道久久综合狠狠爱一密臀精| 麻豆国产尤物AV| 欧美中文字幕日韩在线| www.人人摸在线视频| 欧美亚洲综合色| 午夜福利1区2区3区| 一区二区亚州激情久婷婷欧美| 丁香五月性| 国产午夜精品理论片一二三区区| 久久久网一区| 精品久久久无码| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 金典av| 成人情色一区二区| 多毛小伙内射老太婆 | 夜夜爽爽爽| 黄片免费看的| 国产精品扒开腿做爽爽爽视频| 日韩午夜国产| 密桃99999| 盗摄女人妻在线| 亚洲毛片基地专区| 亚洲男人天堂视频 | 俄罗斯一区二区视频在线观看| 国产精品久久久午夜夜伦鲁鲁| 精品人妻夜夜草| 国产超碰人人爽人人做| 成全动漫视频观看免费下载| 国产超碰欧美| 98超碰日本| 一个人在线看的黄色电影网站| www…国产操逼| 17c在线成人免费A片观看| 欧美宗合网| 任我爽在线视频免费观看| 熟妇熟女一区二三区| 桃花色涩综合影院| 综合免费无码中文| 八戒午夜福利理论片| 97九色| 日韩精品午夜操呦呦不卡影院| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 99精品网| 中文字幕成人理论在线| 精品人妻1区| 99久久精品国产系列| 超碰导航97| 嫩草 我啊~嗯~在线| 久久超碰98| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 中文字幕在线免费观看视频| 人人天天干干| 亚洲无码久久久久久久| 色在线亚洲视频www| 国产丝袜欧美在线视频| 人妻精品视频一区二区三区| 97超碰欧美| 欧美加勒比| 久草成人| 亚洲熟妇一,二,三期| 夜夜骑夜夜操| 先锋影音av先锋一区| 男女做爰猛烈动高潮A片免费应用| 五十路熟女人妻一区二区在线观看| 97国产精品一区二区传媒公司| 九t超碰| 天天操妹子| 九热中文字幕| 亚洲欧美日韩免费观看| 性爱视频啪啪啪啪| 1禁看欧美黄片免费看| 午夜理论片在线观看免费| 亚洲AV无码国产精品久久久久| 国产亚洲日本精品在线| 国产精品熟女丝袜一区二区| 最新国产精品久久精品| 懂色AV一区二区三区| 青青草在线视频人人想人人上| 蜜臀AV成人精品蜜臀AV久久| 9久精品视频在线观看| 97爱啪| 麻豆天美在线| 久久亚洲中文字幕视频| 成人八戒网站| 97操碰| 国产美女91视频| 天美传媒av在线| 精品人妻久久久久一区二区三区| 久久9久| 一级黄色视频网| 成人在线视频网| 亚洲人在线成线成人| 久久综合久色欧美综合狠狠| 日产精品久久久一区二区| 久久亚洲AV无码白度| 欧美人与性动交a美精品| 中文字幕在线高清男人的天堂| 水澄无码AV| 美女干逼2| 久久婷婷成人综合色怡春院| 一区操逼| 色五月婷婷麻豆在| 4虎在线视频| 一区二区乱码福利| 久久这里只精品99re66图| 四虎影视在线| 欧美热图99| 国产精品人人爽人人做可爱福利| 色五月亚洲| 人妻内射一区二区在线视频| 1240青青草一区二区三区视频天爱| 先锋色眉乱伦资源| 白丝1区2区3区| 深爱伊人影院| 亚洲无码免费看| 国产超碰国产97| 九九久久国产精品怡红院| 日韩精品在线放| www.色婷婷| 亚洲97网站| 99老司机精品视频在线观看| 97超碰69| 日韩少妇无码| 操碰97| 色婷婷六月丁香七月婷婷| 大香蕉五月天婷婷| 破处bbq| 东北丰满熟女国产一区 | 麻豆国产精品午夜视频| 很很干很很操| 夜夜高潮夜夜爽夜夜爱爱一区| 久草免费福利在线播放| 妇女视频网站| 国产精品第一区第一页| 亚洲天堂男人在线| 超碰在线免费一区二区三区| 亚洲欧美成人在线| 国产嫩草精品A88AV| 一区二区三区四区免费视频| 精品少妇人妻| 欧美丝袜制服久久| 久久影视二区三区行押| 欧美一区二区观看在线| …中文字幕亚洲乱,97人妻无码费视…| 涩涩这里只有精品视频| 中文幕97| 久久美女国产| 呻吟 欧美 日本 中出| 久干9操| 色香综合天天影视综合 | 333kkkk·亚洲com久久| 久久网亚洲| 丁香九月激情啪| 欧美综合综合| 色九九九九久| 极品销魂美女一区二区| 亚洲国成人情色好看电影| 婷婷在线视频在线观看| #NAME?| 精品国产一级久久| 国产成人五月天丁香花| 中文字暮97| 操逼无码操逼| 欧美 亚洲 另类 综合| 亚洲高清无码在线桃色| 色天天野狼综合社区| 五月丁香色综合| 亚洲一级黄色毛片| 青青国产在线拍揄自揄拍| 青娱乐亚洲自拍| 淫纸中9区| 青青草密桃在线播放| 亚洲国产一区二区日韩专区| 一二视频神马久久传媒| 丁香五月成人| 美女熟妇色| 97综合久第一页| 久久久久骚| 淫荡熟女乱伦网| 78精品在线| 91夜夜蜜桃臀1区2区3区| 中国大陆国产高清AⅤ毛片| 中文字幕免费在线观看| 高清不卡国产| 亚洲无码久久久久久久| 亚洲图片欧美| 日日碰视频网| 久久综合久久综合人久久夜精品| 2019天天干天天操| 大香蕉人妻| 亚洲黄片免费在线播放| 亚洲精品美女久久久久久久久| 六月婷婷五月丁香| 人乳av| 性开放中文AV高清无码免费看| 免费看污网站| 97在线看| 女色视频社区| 国产在线综合网| 毛片视频白嫩| 免费观看性欧美一级| 中文乱码99| 91P0RNY大屁股人妻| 九九九久千久久激情蜜桃在线看| 人人操人人肉久久精品| 久久啊哟| 7777奇米影视久久| 久久久九九| 天天插天天插| 丰满人妻一区二区三区性色| 青青草伊人久久| 女人喷水视频在线观看| 精品国产99999| 91亚州日韩高清| 性在久久久久久| 久夜操| 欧美色图下一页| 欧美十八禁在线看| 人人摸人人入| 日韩精彩视频| 99热精品国产| 亚洲激情久久| 亚洲国产一级精品毛一级精品看免费视频 | 97国产高清视频在线观看| 黄色成年| 色欧洲97| 日韩av熟女一区二区三区成人| 日韩精品中文字幕一| 超碰美国| 欧美 亚洲精品首页| av一区二区三区四区五区久草臀| 天天干,天天日| 熟女色综合久久| 欧美中文字幕日韩在线| 人妻天堂三区| 青草地一本线一区二区三区| 爱妻综合网| 99xav| 白 大 人妻 区 在线| 性高潮久久久| 狠色婷婷久久一区二区三区_| sss视频华人在线| 超碰欧美97| 伊人欧美大香蕉视频| 超碰97男人| 一区二区偷拍拍视频| 激情网色| 午夜激情成人在线观看| 啊啊啊啊啊啊好多水| 天天性射网| 青青草成人视频在线观看二区| 五月天激情婷婷| 久久婷婷综合国际产色怕| 免费啪啪av| 搡老熟女免费视频 | 51一区二区三区| 一个国产在线综合网站| 久久永久无码人妻视频| 99久久99久久免费精品蜜臀| 友优传媒精品在线一区二区| 久久尹人大香焦视| 亚洲精品97| 91天天综合网| 一级AV性爱| 国产强奸AV在线| 久久久久亚洲Av无码专区老牛影视| 999精品乱码| 国产高清自拍| 久操网无码在线| 性做久久久久久久| 丁香五月久久| 人人天天干干| 亚洲精品男人的天堂| 日韩草久视频| 啊啊啊快操我视频| 国产精品久久久久久久久久久久久久久久| 秋霞一区二区三区四区五区六区七区| 精品97久久综合| 人妻少妇久久| 亚州91| 国产51色综合久久免费| 亚洲综合色男人网| 欧美激情久久久久| 国产v亚洲v日韩v欧美v片另类| 亚洲欧洲无码bt精品合集| 日韩乱伦视频| 欧美熟妇乱码在线一区| 男人的天堂日韩| 粉嫩av在线| 曰韩无码777| 五月天伊人| 9 1果冻精品视频| 欧美亚洲色图另类国产| 长长久久88视频| 亚洲日韩久久精品一区| 激情小说在线视频| 色色色综合网| 欧美专区17页| 国产又操| 亚洲激情欧美色图 | 成人a大片在线观看| 99自拍B亚洲| 国产精品9999| 五月丁香综合激情| 精品美女人人干| 免费观看国产不卡av| 国产精品交换一区二区| 超碰97人人乐| 日本护士高潮| 国产精品丝袜在线| 一区二区激情国产熟女 | 欧美综合 站| 亚洲一区二区三区欧美日韩| 欧洲亚洲人人爽爽视频| 久久综合资源一区二区| 风月影院男女十八禁| 人妻 丝袜美腿 中文字幕| 日韩av色图综合| 亚洲无码精品AV久久久| 日本天堂网| 免费啪啪av| 骚日日av| 电影69乱码96| 草莓精品视频在线免费观看| 日日妻色网| 亚洲一本大道中文字幕无码在线| 国产尤物在线三区| 亚州伊人色综台| 国产午夜福利专区综合| 九九九九日本| 亚洲国产激情国产av| 视频国产欧美在线播放| 久久人妻少妇| 97欧美精品综合| 国产中文字幕曰本毛片| 韩国一级做a久久久久| 搡老女人老91妇女熟女| 操逼视频亚洲| 日本人妻伦在线中文字幕| 青青青草原| 欧亚第一综合网| 99免费在线视频| 国产女生在线| 尤物视频一区| 不卡av免费在线网址| 综合91网| 日韩钢筋无码高清啾啾啾| 色情婷婷| 亚洲成av人片色午夜乱码| 欧美v亚洲v综合v国产v妖精| 老鸭窝在线视频播放| 97久久精品国产| 女同亚洲欧美一二三区久久电影| AV无码久久久精品| 亚洲小电影免费涩涩成人在线高清| 美女高潮国产高清| 欧美色图校园春色| 亚洲无码一区成人免费午夜| 91欧美少妇| 九九热精品视频六| 色九久| 精品一区二区三区18| 亚洲丝袜二区在线| 国产精品97视频| 无码人妻一区二区三区四区老鸭窝| 人妻激情在线视频| 强奸熟女一区二区三区| 激情综合网一盗摄| 四虎免费视频| 久久久999国产精品| 亚州一区二区| 欧美伦乱| 精彩久久中文| 亚洲色图A| 人人看黄色视频| 国产丝袜欧美在线视频| 国产成人亚洲精品无码古代早漏男| 欧美成人四级在线播放| 成人国产精品三级A片| 欧美精品四区| 亚洲自拍一区夜夜操| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 久久久96| 中文人妻av高清一区| 国产精品无码论坛| 99热色这里只有精品| 国产精品久久久久久久久久久久久久久久 | 十八禁一区二区无码观看| 天综合网欧美| 日韩欧美久久婷婷网站| 噜噜噜噜天天狠狠| 日熟女| 欧美日韩免费专区在线| 九九九只有精品| 免费观看国产不卡av| 五月丁香色综合| 91黄射| 日韩AV无码中文一区二区| 久久婷婷在线观看视频| 日韩国产成人自拍视频| 99热在线播放| 91熟女.com| 欧亚性爱在线视频| 97激情97激情| 午夜啪| 女人天堂AV五区在线| 99夜夜操| 亚洲色色色| 91丝袜美女视频| 国产 日韩 欧美 人妻 熟女 中文| 小骚逼被操的爽不爽| 中文字幕日韩专区精品系列| 草b在线 | 国产在线视频二区| 天天弄欧美| 翔田千里AⅤHD无码| 精品人妻一区二区三区-国产精品| 亚洲欧美黄| 欧美综合97www| 边做饭边操逼逼| 男人的天堂VA在线| 无遮挡猛进视频免费无限观看| 色综合1991| 中文字暮97| 搡老女人911熟妇老熟女| 91欧美美女日韩国产婷婷| 国产探花精品在线| 超碰九九| 四虎永久在线精品免费网址 | 欧美日韩性感| 中文字幕一区二区免费在线| 成人久久精品| 婷婷丁香五月激情啪啪| 高潮精品| 日本国产二线女色| 久久超碰、| 操逼操逼逼操操逼91| 日日摸天天爽夜夜欢| 国产欧洲精品亚洲午夜拍精品| 欧美色五月| 欧美日韩免费性爱| 超碰九7| 搡老女人老91妇女熟女| 99自拍B亚洲 | 欧美夜色| 精品国产一区二区久久| 性爱视频啪啪啪啪| 日韩性爱小视频| 夫妻日逼| 97久久超碰国产精品| 亚洲资源网| 日韩精品99久久久久久中文字幕| 91N欧美| 狠狠五月天| 色哟哟511老熟女| 吖在线不卡一区二区国产剧情| 伊人热综合| 自拍啪啪视频| 99国产精品自在自在| 欧美少妇色综合| 欧美日本天堂| 激情视频一二三| 97资源站久久| 伊人久久亚洲色欲综合网站 | 一级日本牲交大片好爽在线看| 91一区二区三区蜜桃| 在线视频亚洲无码| 九月激情婷婷| 久草免费福利在线播放| 日韩av影片在线观看| 91一区二区| 久久黄色网址| 日日夜夜草草草| 小日子操bb在线看| 精品国产一区探花在线观看| 999久久久免费精品国产牛牛| 眼镜人妻101.com| 熟女被操视频网址| 日韩97超碰中文字幕| 久久免费看高潮毛片韩国| 97超碰久| 天天久久| 台湾成人无码AV| 9+1视频网址| 成人在线永久| 蜜臀99久| 亚洲精品人妻吞精av| 蜜臀亚洲中文| 激情四射婷婷六月天| 五月天婷婷在线看| 婷婷五月天在线观看| 神马久久久久久久久久久久| 久久久精精精| 看一级黄色视频| 人人妻人人色| 99热最新| 好爽要喷了| 欧亚性爱在线视频| 91丝袜在线观看视频在线观看| 大香交| 久久激情亚洲精品无码?V | 天天插夜夜爽| 亚洲欧美另类激情小说| 激情五月综合网| 91精品操美女| 久久久久成人亚洲国产| 美女91色黄18| 亚洲高清国产理伦片| 久久免费精品96| 国产精品美女视频诱惑| 果冻国产精品麻豆成人av| 天天看高清麻豆| 91社操逼| 死我十八禁| 高清无码 国产精品| 91 国产丝袜在线播放-百度| 久久毛卡| 蜜臀va69| 青青草亚洲一区 | 啊啊啊啊二区好大| 欧美色www亚洲国产阿娇要播| 日本午夜福利视频| 亚洲精品无码成人久久久99| 国产精品久久久久久久久久久久久久久久 | 国产精品网址| 一及黄久一点| 岛国黄| 久久久精品网站| 天美传媒精品一区二区三区| 欧美黄片视频在线观看免费 | 久久久久久久 九九九九九九九| 超碰午夜| 久久黄黄黄| 好屌色综合| 国产精品一二三免费网站| 日韩欧美成人性爱在线| 综合 亚洲 欧美| 人妻加勒比东京热| 日韩精品黄片免费观看| а√天堂资源官网在线资源| 精品视频久久区| 四虎884| 日韩丝袜高跟制服在线观看| h在线看免费版在线看| 亚洲天天做日日做天天谢日日| 啊啊啊啊无码| 色九九综合AV| 色噜噜人妻丝袜AV资源| 青青草亚洲一区| 六九九九| 久久XX| 天堂蜜桃无码视频一区二区| 婷婷视频在线免费观看| 国产日韩区| 久久伊人亚洲AV无码网站| 最新亚洲黄色免费电影| 97欧美精品| 日韩肏逼视频| 牛牛AV人人夜夜澡人人爽| www国产无码| 亚洲视频中文一区| 一区二区三区免费视频入口| 999久久久| 日本不卡在线二区三区| 色妺妺AⅤ| 极品欧美一区二区三区| 人妻9117c| 伊人久久综合影院| 亚洲色图欧美视频| 99操视频| 97综合在线观看| 鸥美极品| 久久精品区| 日韩熟女三十乱伦| αⅴ天堂| 五月婷婷五月天| 韩国女主播青草在线| 操淫穴亚洲五月丁香| 另类欧美色| 免费a级毛片av无码久久精品中文字幕| 久久精品黄色| 美女午夜福利免费视频| 97超碰jingpin| 色情亚洲日本成人| 亚洲区 欧美区| 四虎影视永久在线免费| 精品一区二区三区蜜桃臀赵总| 国产人伦精品一区二区三区| 超碰视97中文| 天天激情综合站| 五月丁香啪啪网| 欧亚日韩三区| 视频一区二区三区精品| av九九| 日夜久久久九九九久| 农村少妇久久久久久久| 操逼操逼逼操操逼91 | 久久国产99精品72福利 | 亚洲麻豆av一区二区| 日本午夜久久电影| 日本欧美色| 亚洲国产ⅴ高清在线观看| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 不卡中文字幕aⅴ在线| 日韩av情韩国爱禁区av一区二区| 精品蜜乳AV免费观看| 色色综合网站| 俺去俺来也在线www| 蜜臀AV午夜精品久| 亚洲av无线观看| 97一区二区三区视频| 欧美乱伦专区| 日韩欧美成人大香蕉| 91精品无码久久久久久久 | 欧美成人黄网色网站| 4tube欧美女厕所| 操婷婷逼| 欧美色网| 无码男人天堂| av九九| 91亚洲影视| 亚洲瓯美色图| 333kkkk·亚洲com久久| K8久久久久| 操人妻少妇中文 | 国产亚洲日本精品在线| 超碰天天去日穴| 欧美不卡在线美女| 精品人妻中文字幕4399| 少妇熟女一区二区三区| 亚洲三级网址久久最新| 岛国艾薇凹凸视频天堂| 国产精品福利视频| 99久久9| 丝袜六区| 懂色AV蜜臀无码精品APP| 日韩欧美性爱电影在线观看| 欧美综合 站| 丰满人妻一区二区三区在线| 男女性感激情网站| 日韩欧美日韩| 97在线免费看视频| 一二视频神马久久传媒| 九久久九精品视频| 激情五月天综合网| 日本护士高潮| 在线观看成人性爱免费小视频| 九久9精品| 久久久青青草| 99少妇| 91精品久久久久| 男女香蕉一区二区| 91久久久老司机| 北条麻妃性愛视频| 色九九九九| 蜜臀AV成人精品蜜臀AV久久| 色色色综合网|