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

ARTICLE DETAIL

資訊詳情

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

Qt/C++ VS2019 三菱PLC通訊源碼:FX編程口與MC 3E幀實(shí)戰(zhàn)

Qt/C++ VS2019 三菱PLC通訊源碼:FX編程口與MC 3E幀實(shí)戰(zhàn) 簡介工業(yè)上位機(jī)開發(fā)中三菱PLC是最常見的控制設(shè)備之一。理解其通訊協(xié)議是打通上層應(yīng)用與現(xiàn)場設(shè)備的關(guān)鍵。三菱PLC根據(jù)系列不同分別支持FX編程口與MC 3E/4E等協(xié)議物理鏈路則分為串口和以太網(wǎng)。通信幀的本質(zhì)是地址編碼、長度與校驗(yàn)三者的正確組合任何一項(xiàng)偏差都會(huì)導(dǎo)致NAK或無響應(yīng)。掌握這些基礎(chǔ)后開發(fā)者可以在Visual Studio 2019中用C與Qt快速封裝通訊類實(shí)現(xiàn)D/M/X/Y寄存器的可靠讀寫。這類能力適用于產(chǎn)線數(shù)據(jù)采集、設(shè)備監(jiān)控等典型工控場景配合源碼的輪詢調(diào)度與異常重試機(jī)制能有效縮短上位機(jī)調(diào)試周期避免在現(xiàn)場反復(fù)踩坑。1. 用 C 在 VS2019 里寫 QT 上位機(jī)調(diào)三菱 PLC這套通訊源碼就是干這個(gè)的手里同時(shí)壓著 QT 界面、C 業(yè)務(wù)邏輯和一臺(tái)三菱 PLCVisual Studio 2019 里來回切窗口通訊卻一封幀都發(fā)不出去——這種狀態(tài)我太熟悉了。這套源碼解決的正是“ QT VS2019 C 與三菱 PLC 通訊”這個(gè)組合里的最后一公里不糾結(jié)界面先把 FX 編程口和 MC 3E 幀兩種協(xié)議封裝成能直接調(diào)用的類串口、以太網(wǎng)兩條鏈路都給你鋪好。適合剛接手工控上位機(jī)的新手也適合不想再翻三菱協(xié)議文檔、只想快速驗(yàn)證讀寫功能的熟手。拿到手先跑通 Demo再替換成自己的業(yè)務(wù)邏輯比從空工程一點(diǎn)點(diǎn)焊要省太多事。2. 協(xié)議選型和通訊鏈路FX 編程口、MC 3E 幀串口還是以太網(wǎng)2.1 三菱 PLC 常見通訊方式FX 編程口、MC 3E/4E、A-1E 怎么選三菱 PLC 不是一個(gè)協(xié)議打天下。FX 系列走自家編程口協(xié)議Q/L/iQ-R 系列走 MC 協(xié)議MC 協(xié)議本身又分以太網(wǎng) 3E 幀、4E 幀和串口 A-1E 幀。選錯(cuò)協(xié)議后面的幀構(gòu)造全是白費(fèi)。先看這張對(duì)照表基本能定方向通訊方式物理層典型命令適用系列特點(diǎn)FX 編程口RS-422/48530H 讀、31H 寫FX3U / FX3G接線簡單默認(rèn) 9600 8 Even 1單幀點(diǎn)數(shù)受限MC 3E 幀TCP / UDP0401 批量讀、1401 批量寫Q / L / iQ-R二進(jìn)制幀緊湊以太網(wǎng)速率高Qna-3E 最經(jīng)典MC 4E 幀TCP / UDP在 3E 基礎(chǔ)上帶 CPU 編號(hào)FX5U / iQ-R多 CPU 尋址FX5U 默認(rèn)走這個(gè)變體MC A-1E 幀串口 RS-232/422ASCII 幀Q 系列串口模塊報(bào)文可讀性好但效率低老設(shè)備還在用我的選擇標(biāo)準(zhǔn)很樸素FX3U 這種小 PLC項(xiàng)目里只要讀寫 D 寄存器、M 位、X/Y 狀態(tài)直接上 FX 編程口一條 USB-RS422 線就夠Q 系列或 iQ-R 這種走以太網(wǎng)的用 MC 3E 幀F(xiàn)X5U 則要留意 4E 幀——很多人在 FX5U 上套 3E 幀死活連不上其實(shí)就是少了兩字節(jié) CPU 編號(hào)。A-1E 幀現(xiàn)在只在改造老產(chǎn)線時(shí)遇到新項(xiàng)目基本不碰。2.2 這套源碼為什么要做串口 以太網(wǎng)雙通道仔細(xì)看這份源碼的類結(jié)構(gòu)你會(huì)發(fā)現(xiàn)它沒有把寶押在一條鏈路上。抽象基類只管收發(fā)字節(jié)流底下掛了兩個(gè)實(shí)現(xiàn)一個(gè)用 QSerialPort 走 FX 編程口一個(gè)用 QTcpSocket 走 MC 3E 幀。界面層通過同一個(gè)接口調(diào)讀寫底層切協(xié)議上層一行不用改。這樣設(shè)計(jì)不是拍腦袋。實(shí)際產(chǎn)線里以太網(wǎng)口經(jīng)常被交換機(jī)、防火墻、IP 沖突卡住現(xiàn)場工程師最后掏出老式 USB-RS422 線救急是常事。雙通道意味著你在辦公室用網(wǎng)口調(diào)試到了現(xiàn)場發(fā)現(xiàn)網(wǎng)線沒布切換串口只是改一行配置的事。邊界條件也說清楚串口是一主一從的令牌式通訊別想在一條 RS-485 總線上同時(shí)輪詢好幾臺(tái) FX 系列還能保證實(shí)時(shí)性重載嚴(yán)重時(shí)會(huì)偶發(fā)超時(shí)TCP 鏈路倒是可以按站號(hào)區(qū)分多臺(tái) PLC每臺(tái)連接獨(dú)立端口輪詢各自維護(hù)。源碼里默認(rèn)網(wǎng)口端口是 6001三菱 PLC 以太網(wǎng)模塊常見端口可改。2.3 幀格式的本質(zhì)地址編碼、長度、校驗(yàn)三件事決定能不能通為什么三菱協(xié)議比 Modbus 難上手Modbus 的寄存器地址就是一個(gè) 16 位編號(hào)三菱偏要搞“軟元件代碼 軟元件編號(hào)”的組合編址。比如 D100 在 MC 協(xié)議里是軟元件代碼 0x00A8、偏移地址 0x0064到了 FX 編程口D0 的通訊地址又變成 0x1000。同一個(gè) D 寄存器兩種協(xié)議地址起點(diǎn)完全不同新手常在這里翻車。所以別把協(xié)議當(dāng)黑匣子背。通訊成功的本質(zhì)就三件事地址編碼對(duì)得上、幀長度字段對(duì)得上、校驗(yàn)和對(duì)得上。地址錯(cuò)了PLC 回結(jié)束碼錯(cuò)誤長度錯(cuò)了整個(gè)幀解析錯(cuò)位校驗(yàn)錯(cuò)了直接 NAK。這套源碼把三件事都封裝在幀構(gòu)造函數(shù)里你要做的只是傳入軟元件號(hào)和數(shù)量它幫你算地址、算長度、算校驗(yàn)。3. VS2019 QT 集成裝插件、跑通第一個(gè)串口 Demo、把 DLL 送到真機(jī)3.1 工具鏈三件套Qt 5.15.2、VS2019 v142、Qt VS Tools先把環(huán)境固定下來。我一般固定用 Qt 5.15.2 MSVC2019 64 位、Visual Studio 2019 的 v142 工具集、Qt VS Tools 擴(kuò)展。這套組合對(duì)應(yīng)關(guān)系最穩(wěn)網(wǎng)上報(bào)錯(cuò)也最少。安裝順序先裝 VS2019確認(rèn)“使用 C 的桌面開發(fā)”工作負(fù)載勾上再裝 Qt 5.15.2裝的時(shí)候勾上 MSVC 2019 64-bit最后在 VS 里打開“擴(kuò)展 → 管理擴(kuò)展”搜索 Qt Visual Studio Tools 安裝。裝完在“擴(kuò)展 → Qt VS Tools → Qt Versions”里把 msvc2019_64 的路徑指進(jìn)去。新建工程不要選錯(cuò)模板。源碼里是 Qt Console 起手把 widget 界面后加或者直接選 Qt Widgets Application。工程文件里要顯式聲明串口和網(wǎng)絡(luò)模塊QT core gui serialport network greaterThan(QT_MAJOR_VERSION, 4): QT widgets CONFIG c17 DEFINES QT_DEPRECATED_WARNINGSserialport對(duì)應(yīng) QSerialPortnetwork對(duì)應(yīng) QTcpSocket 和 QUdpSocket。漏掉其中一個(gè)模塊編譯直接報(bào)“未定義引用”或頭文件找不到。CONFIG c17是讓源碼里的結(jié)構(gòu)化綁定、lambda 捕獲這些語法能過 v142 編譯器。3.2 無插件備選CMake 打開文件夾適合不想被 IDE 綁死的團(tuán)隊(duì)如果你的團(tuán)隊(duì)不用 Qt VS Tools或者 VS 版本和 Qt 庫工具集對(duì)不上可以走 CMake 路線。VS2019 原生支持“打開文件夾”模式CMakeLists 寫對(duì)就能跑cmake_minimum_required(VERSION 3.16) project(plc_demo) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Qt5 5.15 REQUIRED COMPONENTS Widgets SerialPort Network) add_executable(plc_demo main.cpp PlcClient.cpp PlcClient.h ) target_link_libraries(plc_demo Qt5::Widgets Qt5::SerialPort Qt5::Network )關(guān)鍵在find_package能不能找到 Qt。如果 Qt 裝在 D 盤要在 CMakeSettings.json 或環(huán)境變量里加CMAKE_PREFIX_PATHD:/Qt/5.15.2/msvc2019_64否則會(huì)報(bào)“找不到 Qt5Config.cmake”。這條路徑是 Qt 庫的根目錄不是 src 目錄很多新手在這寫錯(cuò)。CMake 路線的優(yōu)點(diǎn)是工程文件可提交到 Git同事拉下來不用配插件路徑缺點(diǎn)是首次配置慢且 Qt 版本切換需要手動(dòng)改路徑。二選一即可源碼兩者都支持。3.3 最小串口驗(yàn)證程序和部署時(shí)缺 DLL 的坑環(huán)境通了先別急著跑完整界面寫個(gè)最小程序驗(yàn)證串口物理鏈路。FX 編程口默認(rèn)參數(shù)是 9600、8 數(shù)據(jù)位、偶校驗(yàn)、1 停止位注意是 Even不是 NoParityQSerialPort ser; ser.setPortName(COM3); ser.setBaudRate(QSerialPort::BaudRate9600); ser.setDataBits(QSerialPort::Data8); ser.setParity(QSerialPort::EvenParity); // FX編程口默認(rèn)偶校驗(yàn) ser.setStopBits(QSerialPort::OneStop); ser.setFlowControl(QSerialPort::NoFlowControl); if (!ser.open(QIODevice::ReadWrite)) { qWarning() ser.errorString(); return false; } QObject::connect(ser, QSerialPort::readyRead, []() { qDebug() ser.readAll().toHex(); }); ser.write(frame); ser.waitForBytesWritten(500);waitForBytesWritten只保證數(shù)據(jù)進(jìn)了驅(qū)動(dòng)緩沖區(qū)不代表 PLC 已經(jīng)收到。真正判斷成功要看readyRead回調(diào)里有沒有回幀。掉進(jìn) NoParity 的坑現(xiàn)象是寫入后 PLC 完全無視因?yàn)樾r?yàn)位對(duì)不上串口驅(qū)動(dòng)層面就已經(jīng)把幀丟了。把程序拷到工控機(jī)之前一定要在開發(fā)機(jī) Release 目錄跑一遍windeployqtwindeployqt --release --no-translations .\plc_demo.exe它會(huì)自動(dòng)拷入 Qt 的 platforms 插件、串口插件和依賴 DLL。最典型的部署事故是exe 拷過去了雙擊閃退事件查看器里報(bào)“無法加載平臺(tái)插件”其實(shí)就是platforms/qwindows.dll沒帶。還有 MSVC 運(yùn)行庫目標(biāo)機(jī)器沒裝 vc_redist 也會(huì)靜默失敗。4. 核心實(shí)現(xiàn)拆解幀結(jié)構(gòu)、軟元件地址映射、校驗(yàn)和與輪詢線程4.1 通訊類架構(gòu)一個(gè)接口、兩個(gè)協(xié)議實(shí)現(xiàn)源碼里最值得抄的不是某一段幀代碼而是這套分層IPlcClient (抽象接口) ├── FxSerialClient // FX編程口QSerialPort ├── Mc3eTcpClient // MC 3E幀QTcpSocket └── Mc4eTcpClient // MC 4E幀F(xiàn)X5U變體接口只暴露readD(addr, count)、writeD(addr, values)、readM(addr, count)之類的業(yè)務(wù)方法。界面層不關(guān)心底層是串口還是網(wǎng)口切換協(xié)議就是換一個(gè)對(duì)象實(shí)例。這也是我自己做上位機(jī)時(shí)的固定習(xí)慣先把協(xié)議封裝從界面里剝出去后面加功能才不用動(dòng) UI 代碼。4.2 FX 編程口讀寫命令碼 30H/31HSTX/ETX 與兩位校驗(yàn)和FX 編程口幀結(jié)構(gòu)不長但非??简?yàn)細(xì)節(jié)點(diǎn)。讀命令幀格式是STX(0x02) 命令碼0(0x30) 首位地址(4位ASCII) 讀取點(diǎn)數(shù)(2位ASCII) ETX(0x03) 校驗(yàn)和(2位ASCII)注意地址和數(shù)量都是 ASCII 十六進(jìn)制字符不是二進(jìn)制數(shù)。D0 的協(xié)議地址是 0x1000則地址字段是1000。點(diǎn)數(shù) 2 寫成02。讀 8 個(gè) D 寄存器代碼如下QByteArray buildFxReadFrame(quint16 addr, quint16 count) { QByteArray body; body.append(char(0x30)); // 讀命令 0 body.append(QString::number(addr, 16) .rightJustified(4, 0) .toLatin1().toUpper()); // 地址4位ASCII body.append(QString::number(count, 16) .rightJustified(2, 0) .toLatin1().toUpper()); // 點(diǎn)數(shù)2位ASCII body.append(char(0x03)); // ETX quint8 sum 0; for (int i 0; i body.size(); i) { sum static_castquint8(body.at(i)); // 校驗(yàn)CMD到ETX累加 } QByteArray frame; frame.append(char(0x02)); // STX frame.append(body); frame.append(QString::number(sum, 16) .rightJustified(2, 0) .toLatin1().toUpper()); return frame; }邏輯說明校驗(yàn)和是所有有效字節(jié) ASCII 碼累加的低 8 位轉(zhuǎn)成兩位大寫十六進(jìn)制。最容易錯(cuò)的點(diǎn)是校驗(yàn)范圍和是否轉(zhuǎn)大寫沒有轉(zhuǎn)大寫PLC 回 NAK把 STX 也算進(jìn)去同樣 NAK。所以我把 STX 放在 body 外面累加從源頭避免這個(gè)坑。地址參數(shù)addr是協(xié)議地址不是 D 寄存器號(hào)。D0 對(duì)應(yīng) 0x1000D100 對(duì)應(yīng) 0x1064。單幀讀取點(diǎn)數(shù)受協(xié)議限制FX3U 建議單次不超過 64 點(diǎn)超過就拆幀。響應(yīng)數(shù)據(jù)是每個(gè) D 值返回 4 個(gè) ASCII 字符低字節(jié)在前解析時(shí)按 4 字符一組還原 16 位值。寫命令和讀命令結(jié)構(gòu)幾乎一樣只是命令碼變10x31在 ETX 前把數(shù)據(jù)按“先低字節(jié)后高字節(jié)、每個(gè)字節(jié)拆兩個(gè) ASCII 字符”塞進(jìn)去。注意寫 D 值是 16 位32 位數(shù)據(jù)要連續(xù)寫兩個(gè) D低 D 在前。4.3 MC 3E 幀構(gòu)造Little Endian 字節(jié)序與軟元件代碼MC 3E 幀比 FX 編程口復(fù)雜在頭部長且全部走二進(jìn)制小端序。以 Q 系列批量讀 D 區(qū)為例最少字節(jié)的請(qǐng)求幀長這樣副頭 0x5000 網(wǎng)絡(luò)號(hào) 00 PC號(hào) FF IO編號(hào) 03FF 站號(hào) 00 請(qǐng)求數(shù)據(jù)長度 監(jiān)視定時(shí)器 指令 0401 子指令 0000 軟元件代碼 00A8 軟元件地址(3字節(jié)) 點(diǎn)數(shù)代碼實(shí)現(xiàn)如下QByteArray buildMc3eRead(quint16 deviceCode, quint32 offset, quint16 points) { QByteArray req; req.append(char(0x50)); req.append(char(0x00)); // 副頭 0x5000 req.append(char(0x00)); // 網(wǎng)絡(luò)號(hào) req.append(char(0xFF)); // PC號(hào) req.append(char(0xFF)); req.append(char(0x03)); // IO編號(hào) 03FF, 小端 req.append(char(0x00)); // 站號(hào) req.append(char(0x00)); req.append(char(0x00)); // 請(qǐng)求長度, 稍后回填 req.append(char(0x10)); req.append(char(0x00)); // 監(jiān)視定時(shí)器 req.append(char(0x01)); req.append(char(0x04)); // 批量讀 0401, 小端 req.append(char(0x00)); req.append(char(0x00)); // 子指令, 字訪問 req.append(char(deviceCode 0xFF)); // 軟元件代碼低字節(jié) req.append(char((deviceCode 8) 0xFF)); // 軟元件代碼高字節(jié) req.append(char(offset 0xFF)); // 地址第1字節(jié) req.append(char((offset 8) 0xFF)); // 地址第2字節(jié) req.append(char((offset 16) 0xFF)); // 地址第3字節(jié) req.append(char(points 0xFF)); // 點(diǎn)數(shù)低字節(jié) req.append(char((points 8) 0xFF)); // 點(diǎn)數(shù)高字節(jié) quint16 len req.size() - 9; // 長度從監(jiān)視定時(shí)器開始算 req[7] static_castchar(len 0xFF); req[8] static_castchar((len 8) 0xFF); return req; }邏輯說明deviceCode是軟元件代碼D 區(qū)是 0x00A8M 區(qū)是 0x0090X 區(qū)是 0x009CY 區(qū)是 0x009D。offset是軟元件地址D0 就是 0D100 就是 0x64。整個(gè)幀從頭到尾都是小端一眼就能看到大量“先低后高”的字節(jié)排布。長度字段的回填是我踩過最多次的地方。不同版本的協(xié)議文檔對(duì)“請(qǐng)求數(shù)據(jù)長度”的定義有差異有的從監(jiān)視定時(shí)器開始算有的從指令開始算。源碼統(tǒng)一采用“從監(jiān)視定時(shí)器到幀尾的字節(jié)數(shù)”實(shí)測能通過 Q 系列通訊測試。如果你拿到的協(xié)議文檔算出的長度和這里不一致不要糾結(jié)以實(shí)際回顯的結(jié)束代碼為準(zhǔn)調(diào)。響應(yīng)幀的結(jié)構(gòu)是副頭、網(wǎng)絡(luò)號(hào)、PC 號(hào)、IO、站號(hào)、長度、結(jié)束代碼再跟數(shù)據(jù)。結(jié)束代碼 0x0000 代表正常0xC051 是范圍外地址0xC052 是指定點(diǎn)數(shù)超限。解析響應(yīng)時(shí)先檢查結(jié)束代碼再按點(diǎn)數(shù)解析數(shù)據(jù)別一上來就拿數(shù)據(jù)算。MC 4E 幀和 3E 幀的區(qū)別是在請(qǐng)求里多了一個(gè) 2 字節(jié)的 CPU 編號(hào)放在監(jiān)視定時(shí)器之后、指令之前。FX5U 和 iQ-R 多 CPU 環(huán)境下必須帶單 CPU 時(shí)填 0x0000 也能通。4.4 軟元件地址映射表D/M/X/Y 在兩種協(xié)議里的不同起點(diǎn)兩種協(xié)議最大的混淆點(diǎn)就是地址起點(diǎn)。我整理了一張常用映射表源碼的 SoftElementTable 里也是同一份軟元件類型MC 3E 代碼FX 編程口協(xié)議地址說明D字0x00A80x1000 D號(hào)16位數(shù)據(jù)寄存器32位用連續(xù)兩個(gè)DM位0x00900x0100 M號(hào)M8000特殊繼電器同樣按此編址X位0x009C0x03E0 八進(jìn)制地址輸入注意八進(jìn)制編號(hào)Y位0x009D0x0400 八進(jìn)制地址輸出注意八進(jìn)制編號(hào)X 和 Y 的編號(hào)是八進(jìn)制的X0 到 X7 是 0x03E0 到 0x03E7X10 是 0x03E8中間跳過 8 和 9。很多新手用十進(jìn)制遞增算地址結(jié)果讀寫的是別的點(diǎn)排查半天才發(fā)現(xiàn)是進(jìn)制問題。D 區(qū)相對(duì)規(guī)矩D0 0x1000 這個(gè)錨點(diǎn)要死記MC 協(xié)議里 D0 卻是 0x000000不要混。4.5 輪詢調(diào)度QTimer 異步隊(duì)列、超時(shí)重試和斷線判定上位機(jī)讀 PLC 最常見的設(shè)計(jì)錯(cuò)誤是發(fā)完請(qǐng)求后用while死等響應(yīng)把 UI 線程堵死。正確做法是異步隊(duì)列QTimer 定時(shí)發(fā)請(qǐng)求等響應(yīng)的窗口期用單次定時(shí)器做超時(shí)判斷超時(shí)丟幀但不阻塞界面。class PlcPoller : public QObject { Q_OBJECT public: explicit PlcPoller(IPlcClient *client, QObject *parent nullptr) : QObject(parent), io(client) { timer.setInterval(100); connect(timer, QTimer::timeout, this, PlcPoller::tick); connect(io, IPlcClient::responseReady, this, PlcPoller::onResponse); } private slots: void tick() { if (busy) return; if (retry 3) { emit linkLost(); // 連續(xù)超時(shí), 判定斷線 return; } busy true; io-send(buildMc3eRead(0x00A8, 0x0000, 8)); QTimer::singleShot(500, this, [this]() { if (busy) { retry; busy false; } // 500ms無響應(yīng), 丟幀重試 }); } void onResponse(const QByteArray resp) { if (!busy) return; retry 0; busy false; emit dataReady(parseDWords(resp)); } private: IPlcClient *io; QTimer timer; bool busy false; int retry 0; };邏輯說明這個(gè)狀態(tài)機(jī)只有兩個(gè)狀態(tài)空閑和等待響應(yīng)。busy防止上一次還沒回應(yīng)就發(fā)下一次retry超過 3 次就通知界面層顯示斷線同時(shí)停止發(fā)請(qǐng)求等 PLC 側(cè)鏈路恢復(fù)后再自動(dòng)重連。這種設(shè)計(jì)下線纜松了、PLC 停電界面不會(huì)卡死只會(huì)彈狀態(tài)。參數(shù)調(diào)優(yōu)100ms 輪詢適合人機(jī)界面顯示、數(shù)據(jù)采集這類場景運(yùn)動(dòng)控制或高速配方切換建議把間隔壓到 20ms并且把 poller 放到獨(dú)立線程。注意 QTimer 的最小有效間隔是系統(tǒng)定時(shí)器分辨率Windows 下大約是 15.6ms所以別寫 1ms 這種虛參數(shù)。5. 避坑與排查串口沒反應(yīng)、NAK、數(shù)據(jù)錯(cuò)位5 個(gè)高頻坑5.1 串口能打開但 PLC 無響應(yīng)多半是偶校驗(yàn)或 RS-485 方向控制現(xiàn)象COM 口能打開TX 燈在閃但 PLC 端毫無動(dòng)作readyRead一直不觸發(fā)。原因兩種情況最常見。一是 FX 編程口默認(rèn)是偶校驗(yàn)代碼里卻配了 NoParity這一項(xiàng)不對(duì)底層串口就把幀過濾了二是用的 RS-485 轉(zhuǎn)接器沒有自動(dòng)方向控制數(shù)據(jù)發(fā)出去后發(fā)送使能沒拉回接收狀態(tài)PLC 的回應(yīng)發(fā)不出來。解決先把串口參數(shù)改成 9600、8、Even、1寫死在初始化代碼里并標(biāo)注注釋方向控制問題買帶“自動(dòng)收發(fā)切換”的 USB-RS422 轉(zhuǎn)換器或者軟件層面在write之后QThread::msleep(2)讓發(fā)送使能穩(wěn)定切回接收再開始讀。5.2 返回 NAK 15H校驗(yàn)和算錯(cuò)而且錯(cuò)得很隱蔽現(xiàn)象串口收發(fā)都正常發(fā)送讀命令后立刻收到 0x15NAK或者收到幀頭但數(shù)據(jù)全是亂碼。原因FX 編程口的校驗(yàn)和是從命令碼到 ETX 結(jié)束符之間所有字節(jié) ASCII 碼的累加和低 8 位轉(zhuǎn)成兩個(gè)大寫十六進(jìn)制字符。有人把 STX 納入了校驗(yàn)范圍有人忘了轉(zhuǎn)大寫有人用 Unicode 字符串求和導(dǎo)致每個(gè)字符多算一個(gè) 0x00。解決嚴(yán)格按代碼里的sum static_castquint8(body.at(i))方式累加。調(diào)試時(shí)把這個(gè)校驗(yàn)和打印出來和 PLC 調(diào)試軟件的監(jiān)視窗對(duì)比一眼就能看出差異。5.3 數(shù)據(jù)高低字節(jié)錯(cuò)位D 值讀回來變成 0x4321現(xiàn)象寫入 D0 0x1234讀回來顯示 0x3412或者數(shù)值對(duì)但翻倍、變小。原因三菱協(xié)議全部是小端傳輸數(shù)據(jù)區(qū)先到的是低字節(jié)。界面層用qFromBigEndian解析或者從 QByteArray 取數(shù)時(shí)直接按大端索引就會(huì)錯(cuò)位。解決統(tǒng)一用qFromLittleEndianquint16解析每個(gè) D 值不要手動(dòng)(buf[0] 8) | buf[1]。如果你做的是跨平臺(tái)代碼還要注意不同編譯器對(duì)char符號(hào)性的處理取字節(jié)前一律static_castquint8。5.4 輪詢 10ms CPU 吃滿、UI 卡死現(xiàn)象程序一啟動(dòng)就有一個(gè)核跑滿界面拖拽明顯掉幀最小化再恢復(fù)要等好幾秒。原因輪詢間隔設(shè)成 10ms且讀寫邏輯放在主線程里同步執(zhí)行。Windows 下 QTimer 實(shí)際觸發(fā)頻率受系統(tǒng)計(jì)時(shí)器限制密集的短周期同步 I/O 會(huì)把 UI 事件循環(huán)餓死。解決把輪詢類移到 QThread 子線程界面只通過信號(hào)槽接收最終數(shù)據(jù)輪詢間隔按場景設(shè)置界面顯示類 100ms 足夠高速采集最低也建議 20ms。不要為了“實(shí)時(shí)性”盲調(diào) 1ms三菱 PLC 的響應(yīng)周期本身就在 10ms 量級(jí)發(fā)太快只會(huì)把總線打滿。5.5 VS2019 報(bào) MSB8020 / 找不到 Qt 頭文件現(xiàn)象解決方案資源管理器里工程有黃色嘆號(hào)編譯報(bào)“MSB8020 找不到 v142 生成工具”或者#include QSerialPort直接提示找不到。原因MSB8020 是 Qt 庫用 v141 編譯而你工程用 v142或反之找不到頭文件是 Qt VS Tools 的 Qt Version 路徑配錯(cuò)常見是把路徑指到了 Qt 的安裝目錄而不是 msvc2019_64 庫目錄。解決在“項(xiàng)目屬性 → 常規(guī) → 平臺(tái)工具集”里明確選 Visual Studio 2019 (v142)和 Qt 庫一致再到 Qt VS Tools → Qt Versions 里檢查路徑必須是D:\Qt\5.15.2\msvc2019_64而不是D:\Qt。改完清一遍解決方案再重新生成不要只按增量編譯。6. 不連 PLC 先驗(yàn)證幀Python 回環(huán)腳本和三件套檢查法6.1 回環(huán)腳本先驗(yàn)證幀PLC 不在手邊或者現(xiàn)場設(shè)備在別人產(chǎn)線里跑著沒法反復(fù)試。這種時(shí)候我用一個(gè) Python 回環(huán)腳本在本地模擬 PLC 的 TCP 響應(yīng)先用它驗(yàn)證客戶端發(fā)幀和解析邏輯是不是自洽import socket, binascii srv socket.socket(socket.AF_INET, socket.SOCK_STREAM) srv.bind((0.0.0.0, 6000)) # 與上位機(jī) PLC 端口保持一致 srv.listen(1) conn, _ srv.accept() while True: data conn.recv(256) if not data: break print(recv:, binascii.hexlify(data, )) # 偽造一個(gè)結(jié)束碼0000、帶8個(gè)D值的響應(yīng) body bytes.fromhex( 500000ff0300000c000000010 0000000010203040506070809 ) conn.send(body)邏輯說明腳本不做協(xié)議解析只把收到的幀按十六進(jìn)制打印出來再返回一個(gè)結(jié)構(gòu)合法的 3E 響應(yīng)。這個(gè)過程用來驗(yàn)證三件事客戶端有沒有發(fā)出完整幀、長度字段是否穩(wěn)定、響應(yīng)解析會(huì)不會(huì)崩。如果客戶端本身幀構(gòu)造錯(cuò)了回環(huán)腳本打印出來的十六進(jìn)制一眼就能看出頭部偏位。6.2 真機(jī)三件套檢查回環(huán)腳本通過后再上真機(jī)。我每次連真機(jī)固定走三件套檢查第一確認(rèn) PLC 的 IP 和端口能 ping 通telnet 端口能建立連接第二確認(rèn) PLC 側(cè)通訊參數(shù)里的幀類型是 3E 幀還是 4E 幀Q 系列選 Qna-3EFX5U 選 4E選錯(cuò)連握手都過不去第三確認(rèn)軟元件地址沒超范圍D 區(qū)范圍外的地址會(huì)回 C051 結(jié)束碼?;丨h(huán)腳本還有個(gè)額外好處可以拿來做回歸測試。改了解析代碼先跑一遍回環(huán)再連真機(jī)能把“協(xié)議問題”和“現(xiàn)場問題”隔離開。從那以后我每次接到新 PLC 型號(hào)都強(qiáng)制先做一遍幀回環(huán)驗(yàn)證再上真機(jī)調(diào)參數(shù)這套流程幫我省掉過太多現(xiàn)場翻車的狼狽。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
一级黄色影片| 国产人妻一区二区三区欧美毛片| 性性久久| 免费看美国人人爽,人人操| 性久久| 久热精品在线| 蜜臀aV午夜一区二区三区| 综合激情婷婷| 中文字幕免费看大片| 又粗又长又大国产不卡| 嗯嗯啊啊的视频| 97硬碰| 久久九九综合| 伊人五月天| 二男一女成人A片| 日日操免费视频| 国产路线专区| 亚洲欧洲日韩中文字幕一区| 五月天亚洲网| 亚洲人成网站7777| 91肉丝| 干b网| 亚洲熟女乱色一区二区三区久久久| 精品国产网站| 青青操97| 黑人精品久久97| 青青草国产盗摄一二三区| 爽爽歪在线视频| 一区二区三区精品黑丝白丝酒店对鸡 | 五十路熟女人妻一区二区在线观看| 亚洲 另类 丝袜 自拍 动漫| 久草资源在线视频官方总站日韩丝袜美腿 | 九月婷婷久久| 99日韩| 少妇干B| 日本成人电影资源网| 香蕉欧美| 无码WWW免费视频网站| 99re公开精品免费视频| 亚洲图片日本AⅤ欧美在线| 欧美日韩国产成人高清| 亚洲97成人在线观看| 日韩成人性日韩成人性爱视频在线免费观看| 97资源久久| 999热日韩精品| 精品夜夜澡人妻无码AV| 91青青草| 日本熟女不卡视频| 久久国内| 小草三级久久观看| 超碰538| 蜜桃色院一区久久 | 亚欧无码线免费观看视频| 东北少妇高潮zzzz| 色婷婷六月丁香七月婷婷| 91一区二区三区蜜桃| 久综合国内精品自在自线| 中国少妇XXXX做受| 中文字幕一区日韩精| 丁香六月婷婷| 美女91在线观看| 蜜臀一二三| 久久精品一区一起草| 久久精品国产亚洲av水密被窝| 97视频播放| 亚洲小电影免费涩涩成人在线高清 | 国产亚洲精品无码三区| 欧美性爱视频免费一区一A| 最新日韩黄片| 91 丝袜在线| 日韩强奸av| 熟女色综合久久| 亚洲成人免费电影| 久久中日麻豆| 激情欧美97| 妇女性内射冈站HDWWWCOM| 亚州一区二区成人片免费| 国产欧美日韩精品中文| 人妻一区久久二区三区色播| 熟女高潮精品一区二区| 先锋激情∨在线视频播放| a在线视频免费观看| 精品国产嫩穴视频| 成年人黄色视频免费| 国产精品一区二区校花| 99综合视频一体| 欧美中字二区| 亚洲中文字幕在现观看| 欧美日韩岛国大片在线观看| 欧美综合制服在线| 日韩色香| 91婷婷| av72网| 懂色av一区二区三区天美传媒| 少妇干B| 久久久久ab| 97爱综合| 男人的天堂2018东京热啪啪啪| 啊啊啊啊啊啊啊在线| 韩国三级一线观看久| 最新日韩黄片| 噜噜瑟| 午夜福利av电影在线| 91 亚洲 欧洲| 亚洲天堂男人的天堂| 日亚韩精品视频二区三| 久久婷婷亚洲欧| AAAA级日本片免费视频| 91老司机在线视频免费观看 | 欧美人妻精品一区二区| 97色涩| 在线日韩精品一区二区三区| 久久久无码国精品无码三区三区| 亚洲天堂少妇| 曰韩成人免费视频| 青青操在线视频| 欧美黄片欧美黄片xxx| 97干色天堂| 丝袜亚洲综合| 牛牛久久国产精品视频一二三 | 天操老女人| 翔田千里爆乳巨臀无码| 久久久99999久网站| 欧美成人一级麻豆| www.AV有限公司一区| 999久久久免费精品国产牛牛| 狠狠干综合| 欧美色老汉| 成人片在线播放| 大干人妻| 成人 日韩欧美一区| 91久久久久| 强奸乱伦αv片| 国产精品动态一区二区三区四四| 国产精点久久久成人| 美国三级日本三级久久99| 91人妻中文| 国产欧美日产一区二区三区 - 国产欧美日| 色欲无码人妻日韩欧美精品| 粉嫩久久久极品| 日人妻视频91| 91丝袜视频在线观看| 91久久久久免| 欧美亚洲一级在线观看| 欧美日韩精品久久久久东北老熟妇| 亚洲精品人妻吞精av| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 激情五月激情综合网| 伊人九九九| 久热色情精品| 人人插人人搞人人操| 天天欧美| 妇女视频网站| 日本99久久| 亚洲男人天堂网| 色五月第四色| 日韩二级| 99久久婷婷国产综合精品草原| 操熟女91| 精品一区99999| 国产原创精品| 久久精品国产72国产精品福利 | 日本天天操| 亚洲精品自拍| 欧美人妻制服| 久偷拍欧美日韩三区| 欧美一级做a爰片免费视频| 亚洲国产综合图区中文字幕| 伊人少妇久久久| 欧美 亚洲 综合 制服| 乱伦一区二区三区‘| 国产美女高潮视频| 欧美亚洲成人在线一区二区三区| 黑丝少妇在线观看| 亚洲国产麻豆一区二区三区| 国内毛片婷婷六月色| 超碰吊日色| 日韩午夜国产| 亚洲。日韩。欧美| A久久| 久久精品国产亚洲AV片多多| ji熟女.com| 国产精品一区二区三区免费视频| 亚洲欧美天| 人人噜夜夜操| 久偷拍| 精品夜夜澡人妻无码| 精品一啪| 久久精品色欧美aⅴ一区二区| 精品久久无码午夜福利| 亚洲成a人v欧美综合天堂下载| 另类专区加勒比| 动漫片子网站3黄| 啊嗯好大视频在线观看| 91夜色chaopeng| 人妻天堂综合网| 国产激情综合五月久久| 国产又操| 国产精品无码AV网站| 久久国产免费激情视频| 欧美激情中文字幕另类小说| 精品人妻一区二区视频| 新久久AV| 黄色AAAAAAAAAAA大片| 国产极品粉嫩馒头一线天av| 激情五月综合开心五月| 人人搞人人插人人操| 欧美劲爆第一页| 国产三级片在线观看| 久久老熟女| 久久精品一区一起草| 亚洲性少妇| ...日韩成人一区二区三区字幕| 伊人伊人LD| 白丝少妇一区二区| 蘋果手機免費看成人Av| 操淫穴亚洲五月丁香 | 超碰日韩人妻| 成人性爱AV在线免费观看| 综合亚洲欧美精品日韩?v| 九九综合九九综合| AV天堂国产| 中文字幕一区电影在线观看| 国产精品无码论坛| 激情综合久久| 97资源超碰| 99国产精品免费| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 久久精品一区二区三区四区五区| 欧美一区二区一级岛国大片| 爱av免费| 少妇高潮99p| 操美女人妻| 欧美一区二区三区成人性生活| 97热视频在线观看| 欧美性爱一区二区三区| 最新日本中文字幕| 免费看日本操逼视频| 五月婷婷六月激情| 久久九七| 老鸭窝在线视频播放| 91丝袜美女视频| 国产Av超碰| 色综合久久88色综合久久天天| 国产农村一一级特黄毛片| 性爱动态120秒| 在线一区| 免费观看网黄| 九九九九九九九精品视频| 一区二区三区男女操逼黄色小电影| 久久久婷婷| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 精品视频一二三中文| 黄色人人| 久久久久久久久久久97| 加勒比少妇AV婷婷六月天超碰超碰| 国产日本顶级一区二区三区| 最新av网站在线观看| 久久综合激情| 动漫区日韩区欧美区| 久久久啊啊啊| 久久无码电影| 亚洲在高跟鞋自慰久久在色线| 熟女熟妇伦久久影院毛片一区二区 | 九t超碰| 黄色片大香蕉| 久久久久密臀视频| 夜夜草我| 欧美日韩淫加| 国产路线专区| 久久性爱城| 青青欧美| 吖在线不卡一区二区国产剧情| 九九这里只有精品| 中文字幕一区二区三区蜜桃视频| 日本精品一级二级三级| 人妻少妇久久久| 97超碰欧美手机在线| 国产人妖的免费的视频| 磁力99AV| 91精品久久久| 日日夜夜草草草| 国产精品九九九| 丁香五月综合| 亚91网| 国产一区二区欧美日本| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 日本αv| 亚洲国产精品久久久久久久久久| 免费视频观看60秒| 日韩婷婷| 欧美性夜| 综合色图,成人综合网| 日本道人妻久久久在线不卡色视频| 亚洲最新中文字幕免费| 亚洲男人天堂视频| 综合欧美日韩在线观看| 人妻天天爽夜夜爽2| 欧美另类精品xxxx| 青青草久久在线| 久久久久久精品免费看A级| 久色99999| 手机看片1024你懂的国产| 欧美日韩亚洲电影| 温婉少妇玩3p| 久九九九九九九九热| 日韩午夜啪啪视频| 久久‘黄片视频| h无码动漫在线观看| 大香蕉啪啪啪| 青青青国产| 大香蕉伊人久久| 性爱久久| 成人网欧美风情| 人妻熟女一区二区| 熟妇人妻一二三区免费| 久操免费观看| 成人熟女区| 中文字幕诱惑制服人妻丝袜美丝袜美| 亚洲国产精品无石码久久| 久久亚洲色图中文字幕| 国产精品不卡少妇白| 羞涩视频| 日韩精品9区| 午夜丁香| 国产精品区在线12p| 制服丝袜第二页| 人、人、摸,人、人、草| 深喉吞精| 亚洲视频二区| 婷婷成人久久久精品| 中文字幕,人妻,日韩| 土豪酒店各种姿势玩弄极品幼稚| 在线观看一卡二卡| 999国产精品999| 亚洲色天| 美女上床网站| 国产一区麻豆免费观看| 人妻熟女av国产网站| 国产精品懂色tv影视免费观看 | 99婷婷一区二区| 国产地址二三| 在线女人91| 免费看黄视频亚洲网站| 人人妻人人澡人人爽久久av| 中文字幕无码不卡啪啪| 日本九九久久99播| 久久九九99| 日本性爱欧美性爱| 麻豆国产精品午夜视频| 青草地一本线一区二区三区| 久久久久元码视频| 欧美天天综| 欧美黄片视频在线观看免费| 中国一级特黄大片护士| 黄片视频观看| 91处女在线观看| 97久久久久久久久久| 天天摸夜夜摸| 亚洲天堂区| 日韩免费性爱视频在线观看| 性爱乱伦网址| 中文字幕在线观看永久| 乱伦熟女论坛| 曰韩人妻中文字幕在线 | 三级网色| 日韩av电影成人在线| 9Ⅰ老熟女| 日韩BBN| 婷婷五月天无码 | 美女让帅哥通她小鸡鸡| 一区二区国产视频在线观看| 大香蕉在线免| 欧美色日本| 有码免费观看| 久久久9品一区二区三区| 天天日天天爽| 国产在线76页| 欧美人妻二区三区| 大香蕉色网| 青青草在线视频人人想人人上| av大香蕉| 精品一区二区啪啪啪| 91精品综合久久久久久五月丁香| 久久激情网| 三级三久久线久久99久目本WW| www.av在线观看| 国产 丝袜 欧美中文 另类| 在线综合色| 精品国产久热在线观看| 五月婷婷六月色| caorenqi shipin| www.夜夜操| 狠狠 91| 嗯嗯嗯啊啊啊操的我好爽| 狠插 制服 自拍| 精品无码一二三四区| 使劲用力艹少妇视频一区二区| 亚洲少妇在线影音| 亚洲91射| 午夜美女福利视频| 国产精品ⅴ无码大片在线看.| 日本人妻中文字幕精品| 天天操天天舔| 翘臀vidoes| 偷拍亚洲高清图片| 日韩大香蕉精品在线视频| 哑洲在线| 97aiaiai| 国产自产一区视频在线| 五月婷婷综合网| 中文一区二区婷婷视频| 裸体美女久久久| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 午夜福利在线视频1000| 9久9久9久9久视频网站| 夜夜躁狠狠躁日日躁av| 伊人丁香五月婷婷| 大香蕉综合| 天操天操夜操夜月操月年年操| 久9久9精品| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 台湾一区国产高清在线| 老司机射| 国产视频一区二区三区久久亚洲天堂| 欧美性天天影院| 五月情色天| 成在线人在线观看视频| 97色碰| AV在线资源| 加勒比99999| 女同女同恋久久级三级| 三级三级三级日本99| 农村妇女精品一区二区| 欧美极品美女aaaaaa级黄片| 免费黄色A片| 97在线欧洲| 国产精品在线免费| 丝袜美腿制服人妻二区中文字幕 | 欧美亚洲清纯| 777琪琪午夜免费A片| 99色在线观看| 亚洲交换| 欧美视频一区二区在线| 久久久不卡区一区二区三区久久久| 青青草综合在线| 最新中文字幕精品在线| 亚洲限制级| 老司机福利青青草| 97精品国产97久久久久久| 啊啊啊轻点在线观看| 欧美一区二区福利在线| 激情图片伦理国产一区二区日韩| 高潮精品| 天天欧美欧美亚洲网| 伊人嫩草| 人人操人人摸人 | 日韩精品永久在线观看| 日韩丝袜高跟制服在线观看| 无码人妻一区二区三区色欲aⅴ| 99成人| 天天久久久久久| 亚洲制服欧美另类内射| 日韩成人人妻网站| 精品性爱无码在线播放| wuyechaopeng| 91精品伊人久久久大香线蕉91| 久草热制服丝袜在线观看 | 九九夜精品九九在线| 牛牛AV人人夜夜澡人人爽| 午夜天天碰综合视频| 欧美亚洲丝袜人妻制服中文99| 国产成人无码网站在线视频| 大香蕉性欧美| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 激情综合av| 伦激情人妻另类人妻| 欧美大香蕉97| 色网在线视频观看免费| 茄子社区国产精品| 高清国产av无码| 亚洲中文字幕一区二区| 97亚洲综合电影| 免费精品国偷自产在线在线| 屌妞视频久久久久久久久久久久| 久久成人午夜精品影院| 好一吊区二区| 亚洲高潮少妇| а√天堂资源官网在线资源| 国产精品一区二区后入| 亚洲欧洲综合视频在线| 视频国产欧美在线播放| 欧洲精品一区二区三区| 国产精品无码论坛| 秋霞怕怕片| laoshunv91| 偷看洗澡一二三区美女| 亚州综合色| 欧美曰韩国产精品| 强奸乱亚洲| 国产一区二区三区高清视频| 国产精品久久久久久久免牛肉蒲团| 久久久免费一级黄片| 国产精品农村妇女| 午夜福利在线视频1000| 热九九精品| 13小男生GAY自慰脱裤子| 伊人亚洲综合| 久久久久性熟视频| 五月天玖玖资源站| 欧美一区二区三区不卡高清视频| 狠狠2050在线观看| 青青网三级视频| 国产亚洲女v在线观看| 怡春院久久| 日韩午夜国产| 91人妻超碰| 亚洲一区二区三区四区视频| 精品久久久av无码免费| 好湿好紧视频| 国产精彩女在线观看视频| 人妻久久久久久久久久久久久久久| 亚洲最新Av| 97色操| 欧美夜夜骑视频| 精品少妇后入一区二区三区四区人妻巨乳 | 丁香六月啪| 亚洲 自拍偷拍 欧美| 久久啊啊| 91男人综合| s片在线观看| 熟妇视频一区二区三区在线观看| 日本女人操逼| 国产精品一区二区 尿失禁| 免费观看性欧美一级| 淫淫综合网| 99这里都是精品| 99只有精品| 国产性刺激| 日韩亚洲美州欧洲综三区一品在线| 亚洲欧洲日韩国产自在线| 亚洲啪啪视频免费| 亚洲成人激情小说视频| 超碰色老头| 五月天久久人妻| 久久精品电影| 91无摭挡| 青青草女人天天干| 嗯~啊~快点 死我视频免费看网站| 久久嫩草国产成人一区| 97久精品| 国产有码一区| 国精综合一二三区影视| 青青久操| 中文字幕人乱码中文字的预防方法| 国产夜夜操| 久久伊人网视频一区二区三区 | 97干色| 啊啊啊无码| 精品人妻一区二区三区日产| 久操电影| 日韩极品无码B| 欧美熟妇成人一区二区| a片偷拍视频| 国模私拍一区二区三区神乳| 国产操伦| 333kkkk·亚洲com久久| 无码自拍SM| 激情五月天综合网| 丝袜夫妻自拍| 蜜桃色院一区久久 | 26uuu偷拍亚洲欧洲综合| 最新av中文字幕高清| 亚洲激情综合另类男同| 把腿张开老子CAO烂你| 91呆哥人妻| 一二三区在线| 欧美曰韩国产精品| 国产AV人人夜夜澡人人爽麻豆| 天天影视之亚洲综合网| 久久9精品| 人人看黄色视频| 亚洲一级特黄大片在线播放91| 欧美强奸一区二区诱惑| 蜜臀av在线播放一区二区三区| 99re6久热只有精品6在线直播| 久久久av爱| 视频在线中文字幕| 亚洲综合首页| 国产精品干干干| 成人av免费观看| 观看视频图片一区二区三区| 超碰97在线色男人??| 欧美色91| 亚洲激情在线观看一区| 国产综合操逼高清| 成人日韩中文字幕| 玖玖无码超碰| 国产日韩在线播放av| 乱色视频中文字幕| 亚洲视频一二区| 亚洲人妻色图| 色狠狠 - 百度| 六六久久日韩不卡| 蜜桃精品一区二区三区久在线| 天天日天天看| 国产精品色片一区二区| 成 人 影视 一区 二区 三区 四区| 裸体1区| 日日爱99| 一区二区三区欧美激情| 怡红院成人av| 精品一区二区三区国产| 秋霞视频一区二区| 91强在线播放| 黑人精品XXX一区一二区| 欧美日韩性爱视屏免费看了| 磁力99AV| 欧美亚洲自拍另类人妻| 婷婷成人五月天| 亚洲日韩久久精品一区| 人人操人人爽人人操人人| 97婷婷色| 青久久| 97精品熟女少妇一区| 精品熟女一区=区三区| 老熟女综合网| 操逼日韩无码 | 91老妇女| 黄aaaaaaaaaaaaaaaaaa色网站| 99re69综合| 久久久性| 日韩97视频!在线| 亚洲风情在线观看| 激情五月丁香五月| 精品无码一区二区三区| 粉嫩粉嫩一区性色AV片| 大香蕉综合在线| 操操逼视频| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 天天色怡春院| 午夜啪啪片| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 97超碰免费生活| 欧美αv.com| 天天天天天天天天综合| 日韩中文字幕视频| 中文字幕久久精视频久久大全| 亚洲成人激情小说视频| 99999精品成人| 国内毛片热久久思思热| 国产乱弄免费在线视频。| 日韩免费av片高清无码| 日本蜜桃| 黄色小视频日本txt| 亚洲高清在线se| 国产版a级片直播在线| 亚洲成人在线资源| 这里只有精品视频| 色综合一区二区三区| 在现视频女上位好爽| 国产午夜精品理论片a大结局| 嗯嗯啊啊啊好舒服| 亚洲国产ⅴ高清在线观看| 亚洲综合射| 岛国片在线观看视频亚洲| 啊啊啊啊嗯嗯在线久久久| 欧美天天插| 超碰97人人cao| 91丝袜在线视频| 一区二区三区机械有限公司| 欧美激情专区| 熟女欧美日韩综合婷婷| 中文久久爆乳| 日本久久女同性恋视频| 日本人妻天堂网站在线播放| 亚洲午夜福利视频| 大香蕉78| 国产热av| 91九九九馒头| 美国一区二区免费视频| 亚洲AV无码乱码| 精品一国2| 人妻啊啊人妻啊| 四虎国产精品永久地址入口| 青青草综合在线| 久久久久久久 九九九九九九九| 亚洲欧洲日韩天堂av| 国产91丝袜 在线播放| 黄色小说亚洲| 精品国产精品一区二区| 性爱视频免费网址| 欧美三级偷拍| 97超碰久久色| 偷拍欧美综合| 亚洲欧美国产成人综合不卡| 精品人妻一区二区三区四区不卡在| 91国产美女丝袜足交精品视频| 亚洲五月婷婷| 熟女这里只有精品6| 78操B| 午夜无码熟妇丰满人妻| 精品.99999| 免费视频a级毛片免费视频| 综合激情二| 91精品导航| 中文字幕AV片| 久久熟妇五十路一区| 91九色网| 欧美日韩性爱操大逼| 欧美一级黄色免费专区| 久久欧美激情| 99福利社| 白丝在线一区| 国产熟妇一区二区| 超碰在线974| 久久久久久午夜男人的天堂| 青青操狠狠撩| 亞洲久久直播| 波多野结衣一级视频| 成人线上超碰| 欧美精品97| 亚洲中文字幕熟女少妇一区二区| 97天天在线| 综合av影片| 麻豆伊人网| 97 国产一区| 九九九久千久久激情蜜桃在线看| 嗯嗯啊在线视频| 五月天婷婷基地| 成人午夜视频免费播放| 一级A片女人高潮叫床| 双插性欧美一二三区| 国产精品久久久久无码Av网曝门| 欧美色图 色综合图| 麻豆91熟妇人妻中文字幕茄子| 神马久久久久久久久| 91 国产丝袜在线播放-百度| 校园春色宗合网| 69久久久久久久久久久久久| 综合av影片| 欧美亚洲宗合色性图| 天天澡天天爽日日av| 大香蕉啪啪啪啪在线| 淫乱图区 | 白嫩少妇| 国产精品人妻无码久久久互動交流| 男女啊啊啊啊啊| 久久久久久久| 欧美一级A一级a爱片久久| 欧美激情综合| 高清国产无码av| 99老司机精品视频在线观看| 密乳无码| 国模少妇一区二区三区| 日韩一级片| 亚洲情色电影网| 天天综合有色网| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 91视频伊人| 国产AV色黄看到爽| 久久三| 欧美黄色片AAAAA| 亚洲黑丝在线| 午夜性| 视频二区熟女人妻| 97欧美日韩综合| 97超碰人人模人人拍人人| 69少妇一区二区| 亚洲色图殴美色图激情乱伦| 97人人干| 无码操逼网| 五月综合婷婷久久网站| 久久久久久九九九| 日韩一级久久毛片| 免费啪啪av| 国产极品美女高潮无套在线观看| 日韩在线观看字幕精品| 久久激情视频| 亚洲精品欧美专业| 亚洲黄色网址| 超碰色97| 无码人妻精品一区二区中文| 日韩午夜啪啪视频| 校园春色亚洲欧洲| 99蜜月精品久久| 亚洲在线| 欧美一级做a爰片免费视频| 熟女丰满人妻一区| 亚洲91综合| 91精品国产91综合久久蜜臀| 亚洲一级特黄大片在线播放91| 99热精品在线观看| 在线免费试看60秒| 欧差乱伦二三| 亚洲欧美成人在线| 99热导航| 精品久久久久久久| 欧美v亚洲v日韩v最新在线二区| 97九色人妻| 十八禁电影伊人网| 亚洲欧洲自拍图片专区满春格| 爱媛媛久久国产福利| 69综合网| 久久午夜色播影院免费高清| www.91理论| 91在线限制级| 久久婷婷成人综合色怡春院| 男女激情黄色网址| 国产丰满熟夫69mpp| 99热婷婷一区二区三| 思思热国产在线视频| 久久久久国产亚洲一区欧美色图日韩 | 一区久久久二区| 97国产精选| 国产日韩欧美亚洲精品95| 草b在线| 欧美天天射| www.久久爱| 欧美图片色五月天| 1禁看欧美黄片免费看| 日本不卡二三区| 亚洲一区中文精品| 99热这里只有精| 日韩一级二级三级在线不卡观看完整| 亚洲AV无码成人精品久久| 啊啊啊啊啊啊啊啊啊啊在线观看| 青娱乐福利99| 中文字幕乱碼在线| 黄片视频观看| 高清不卡一二三区视频......| 大香蕉伊人75| 久久人妻视频| 精品无吗m| 25国产精品免费观看| 久久久久女教师免费一区| 99热在线观看| 国产又粗又长的视频| 91黑人无码激情在线| 999九九九九国产动| 欧美成人一区二区三区在线播放 | 人妻aa| 狠狠干2020| 日韩av乱伦| 久久久久白虎| 精品四五区| 岛国1区2区3区在线观看| 日本一片一区| 凹凸视频在线观看伊人| 狠狠爱夜夜干| 亚洲色综合| 国产久久久久久| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 国产综合久久久麻桃个| 老鸭窝亚洲毛片| 亚洲 无码 偷拍| 男人网站婷婷| 亚欧性爱在线无码| 国产女人视频三四五区| 日本999精品视频| 最新中文字幕在线亚洲| av2014 日韩在线中文字幕| 五月丁香网站| 男女做爰猛烈动高潮A片免费应用| 国产青视频| 欧美精品自慰系列寂寞少妇| 啊啊啊好大好深| 男人的天堂激情| 欧美日韩 强奸乱伦| 这里都是精品| 日本 免费 一区二区三区 久久香蕉| 国产AV色黄看到爽| 激情文学亚洲| 国产无遮挡| 91操人| 国产品精品自在在线午夜免费| 丰满精品人妻少妇久久字幕| 亚洲AV成人无码一区二区三区在线观看| 人妻丝袜一区二区三区在线| 欧美亚洲第1页| 777奇米影视777四色| 久久久久久九九九| 亚欧美综合网。| 五月天婷婷欧美三区| 日韩综合无码色欲vv| 黄色成年| 熟女网站最新| 最新欧美色网| 亚洲av综合色区无码一| 久久免费少妇| 蜜臀aV午夜一区二区三区| 殴美牲| 新版天堂中文资源8在线| 男女啪啪啪18禁网站| 亚欧操逼片在线观看 | 欧美性第一页| 亚洲做性| 亚洲欧美精品久| 中日无幕一二三四区| 亚洲黄网在哪免费看| 精品美女久久久久| 九九热国产| 国产后入清纯| 蜜屁Av| 后入内射蜜桃臀| 中文字幕 人妻不满 在线视频| 草草网站影院白丝内射| 天天上日日上日韩精品| 精品1区2区3区| 97伦乱| 久草精品一区 | 成人小说另类在线| 大奶的诱惑| 97 国产精品| A一级色女| 大香蕉男人的天堂| 天天香香欲综合| 欧美日韩99精品麻豆传媒| 久久久国产三级黄色片| 国产综合网站在线播放 | 亚洲影院成人| 日韩欧美日韩| 国产日本一区二区三区蜜臀在线观看| avav青青草久久夜| 亚洲天天精品| 久久偷偷色综合蜜桃| 一级黄碟在线看| 操亚州| 欧美熟女丝袜| 久久久男人的天堂| 久久少妇人妻| 人妻激情在线视频| 国产久久男人天堂| 日韩精品国模| 乱操9999| 91色欧美| 天天噜| 蜜臀无码视频在线观看| 国产资源中文字幕在线| 日本爽爽爽爽爽爽免费视频| 欧美性爱精品七区| 国产三级在线现体验区| 色就色综合| 岛国大片在线观看网站入口| 黄骗免费| 2024人人操人人摸| 久久精品一区二区三区不卡| 麻豆天美久久91| 国产传媒日本欧美专区| 精品国产国产AV| 伊人96在线| 99操逼| 亚洲欧美日韩偷拍色图| 黄视频免费| 亚洲国产精品成人无码久久久| 青青草丝袜在线视频| 95人妻爽爽人人做人人澡 | 97色97干| 精品无码久久久久久国产浪潮| 国产宅男宅女在线观看| 人人天天干干| 亚洲情色第一页| 99国产精品久久久久久久成人热| 亚洲精品一卡二卡三卡福利视频网站| 欧美黑人91| 久久久久久久唑| 日本人妻伦在线中文字幕| 欧美性爱1080p| 婷婷色在线| 欧美性区| 精品一区二区2| 亚洲91色| www.91逼逼.com| 激情五月综合网| 青青草精品| 久久久久久无码人妻中文字幕| 2017天天插| 国产在线激情视频| 大香蕉五月天| 日韩在线人妻网站| 超碰97人人乐| 人人操 欧美| 婷婷丁香五月激情啪啪| 九一亚洲国产免费| 超碰在线1234区| 2017av无码免费无线播| 国产 丝袜 欧美中文 另类| 亚洲18禁| 青青草华人在线欧美在线| 人妻天天爽天天爽三区| 另类小色呦| 东北女人的毛片| 99精品九九九九九九| 日韩综合成人免费视频| 69人妻精品一区二区绯色| 啊啊啊啊啊啊啊啊啊啊在线观看| 91性感在线| 欧美性爱视频免费一区一A | 天天草夜夜草高潮片| 日韩有码免费视频| 欧洲一区二区三区四区在线观看| 新亚洲无码| 中文字幕成人| 亚洲图片在线| 女同女同恋久久级三级| 69超碰综合| 97久久超碰亚洲| 国产精品视频麻豆入口| 999日韩中文精品观看视频。| 欧美日韩97在线| 曰韩操B| 熟妇人妻一区二区三区| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 亚洲男人天堂2017| 久久亚洲精品成人av| 亚洲AV不卡在线观看尤物| 校园春色综合网| 五月天激情婷婷| 毛片99-全集电影手机免费观看完整-B029AV | 欧美人人操人人插| 人妻碰碰碰碰碰碰| 亚洲男人天堂网站| 亚洲图片偷拍视频区| 亚洲精品1区| av一区二区三区四区| 日本一区二区三区精品| 精品黄色电影| 理论久久婷婷网 8| 91n欧美| 五月天婷婷综合网| 1024精品在线| 97色婷婷| 亚洲97在线观看| 久久精品欧美一区蜜桃| 欧美亚洲图片| 久久久久精| 久久产精品一区二区三区电影| 麻豆久久久一区二区| 热热色91| 美女超碰978| 欧美97| 2025亚洲男人天堂| 粉嫩av平台| 男人的天堂VA在线| 人人操肉肉| 亚洲自拍青操视频| 一区在线观看中文字幕| 狠久久| 亚洲欧美大香蕉| 亚洲加勒比久久日本道| 草b在线 | 天天欧美色| 国产视频人人网| 老师充足的奶水小说| 伊人黄色片| 蜜臀无码一区二区| 日本精品成人无码| 天天欧美| 成人精品视频一区二区| 99久久久无码精品国产人| 精品九九淫乱男| 久久久国产成人一区二区三区在线| 99色在线观看| 去干网最新版| JuliaAnn丝袜熟女系列| http://qxhbdz.com| 免费看黄片现成| 日本三级韩国三级美三级91| 国产女性无套 免费观看| 91九色丨风韵犹存| 欧美色图亚洲特色| 在线无码操| 亚洲精品少妇| 国产精品网站免费 | 偷拍色图| 丁香六月婷婷综合| 人妻干天天| 欧美色蜜桃97| 另类亚洲图色| 日韩中文字幕视频在线观看| 亚洲色91| 日韩熟女视频二区| 色香色香欲天天天影视综合网| 18啪啪手机免费性爱| 久久婷婷一区| 综合网欧| 97在线精品| 一区二区三区高清天码| 欧美亚洲特P| 热久日综合| 99热| 国产高清在线观看欧美| 久久超碰网| 少好三P| 97中文字幕色| 激情深爱五月天| 国产女乱淫真高清免费视频| 亚洲97精品| 日本不卡一区二区三区| 精品人妻二区三区| 爱我干综合| 国产毛片久久久久久久| 国内伊人久久久久久网站视频| 日本三级韩国三级美三级91| 91在线综合网| 激情五月丁香五月| 精品成人动漫一区二区| 国产精品人妻无码久久久老鸭窝| 国产不卡的视频 | 人人操,操人人| 超碰精品国产无码| 亚洲资源站| 一本色道久久综合狠狠操| 日韩精品99久久久久久中文字幕| 亚洲男人bt天堂| 成人av动漫在线观看| 欧美色视频在线| 激情熟女12P| 久久精品一区二区三区四区五区| 午夜福利 成人 91| 日本顶级天天操狠狠操夜夜操中文字幕| 1024亚洲中文字幕久在线看片你懂的| 99精品久久久久久久婷婷蜜桃| 干干干天天| 国产毛片久久久久久久| 人人操,人人插| 久久精品国产Aⅴ| 激情小说亚洲| 丰满人妻一区二区三区免费 | 丁香激情网| 99re国产中文字幕| 黄色av一区二区在线| 在线综合色| 日本高清有码网址视频| 欧美成人一级免费电影| 精品视频免费在线一区| 国产乱色国产精品免费视| 在线中文字幕| 黄视频免费| 人妻啪| 国产中文精品一区二区在线观看| 丁香九月 婷婷| 手机在线中文字幕国产| 95自拍视频在线观看| av在线观看不卡网站| 午夜超爽| 日韩 欧美 另类 人妻| 日韩人妻 中文字幕| 囯产乱伦一区二区三女| 最新国产精品久久精品| 91九色网| 女同亚洲欧美一二三区久久电影| 久久女人一区二区三区| 日韩成人色图| 亚洲丝袜天堂| 亚州综合图片| 97射欧美| 亚洲日韩美女丝袜美腿人妻视频| 999精品久久久久久久| 欧美乱伦专区|