玖玖玖视频-亚洲精品1卡2卡3卡-操欧美美女-真实国产乱子伦对白视频不卡-国产乱在线-大胸美女被吃奶爽死视频-久久亚洲美女精品国产精品-天堂在线www天堂在线-久久在精品线影院精品国产-国产又粗又长又大-欧美三级一区二区-超碰在线亚洲-天天cao在线-国产偷倩视频-亚洲啪

zhang2601312
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 26 個(gè)
工控威望: 128 點(diǎn)
下載積分: 859 分
在線時(shí)間: 20(小時(shí))
注冊(cè)時(shí)間: 2016-08-16
最后登錄: 2025-06-30
查看zhang2601312的 主題 / 回貼
樓主  發(fā)表于: 2025-06-12 20:48
圖片:
圖片:
圖片:
圖片:
圖片:
圖片:
圖片:
用的用戶(hù)自由通訊發(fā)送和接收功能塊。發(fā)送功能塊對(duì)下發(fā)送了一個(gè)讀取報(bào)文(01 03 00 12 00 04 EC 0C)然后就出現(xiàn)了一個(gè)問(wèn)題。就發(fā)送這個(gè)報(bào)文讀取4個(gè)字節(jié)數(shù)據(jù)時(shí)接收的數(shù)據(jù)是沒(méi)問(wèn)題的。但是我想多讀取幾個(gè)數(shù)據(jù)發(fā)送(01 03 00 12 00 10 EC 03)的話(huà)接收到的報(bào)文就和圖片1一樣亂的。這是為啥呢。問(wèn)了論壇好多高手的意思估計(jì)是接收功能塊設(shè)置問(wèn)題。但是我仔細(xì)看了幫助幾個(gè)模式(ADHOC設(shè)置位1或者0)都測(cè)試過(guò)了還是沒(méi)用。求助各位高手幫忙看下。十分感謝。PS:報(bào)文沒(méi)問(wèn)題
http200
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 17 個(gè)
工控威望: 62 點(diǎn)
下載積分: 328 分
在線時(shí)間: 10(小時(shí))
注冊(cè)時(shí)間: 2024-12-23
最后登錄: 2026-02-13
查看http200的 主題 / 回貼
1樓  發(fā)表于: 2025-06-16 00:41
開(kāi)放式tcp亂序是因?yàn)榘l(fā)送字節(jié)數(shù)和接收字節(jié)數(shù)對(duì)不上,不足接收字節(jié)數(shù)的就會(huì)被plc先緩存起來(lái)
樓主留言:
對(duì)的對(duì)的,接收區(qū)的字節(jié)數(shù)設(shè)置少了,然后數(shù)據(jù)存儲(chǔ)位不夠的話(huà)就會(huì)從頭開(kāi)始。所以看起來(lái)就像亂了一樣
http200
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 17 個(gè)
工控威望: 62 點(diǎn)
下載積分: 328 分
在線時(shí)間: 10(小時(shí))
注冊(cè)時(shí)間: 2024-12-23
最后登錄: 2026-02-13
查看http200的 主題 / 回貼
2樓  發(fā)表于: 2025-06-16 00:42
前幾天測(cè)試開(kāi)放式tcp也遇到一樣的問(wèn)題,問(wèn)deepseek和chatgpt解決的
樓主留言:
我也查了deepseek但是沒(méi)給有用的答復(fù),可能是我的問(wèn)題沒(méi)闡述清楚
http200
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 17 個(gè)
工控威望: 62 點(diǎn)
下載積分: 328 分
在線時(shí)間: 10(小時(shí))
注冊(cè)時(shí)間: 2024-12-23
最后登錄: 2026-02-13
查看http200的 主題 / 回貼
3樓  發(fā)表于: 2025-06-16 00:42
您遇到的數(shù)據(jù)順序錯(cuò)亂問(wèn)題是由于**TCP協(xié)議本身的無(wú)邊界性和PLC緩沖區(qū)處理機(jī)制**共同導(dǎo)致的。以下是具體原因和解決方案:

---

### **問(wèn)題根源分析**
1. **TCP流式協(xié)議特性**  
   TCP是字節(jié)流協(xié)議,不保證應(yīng)用層消息的邊界。若客戶(hù)端快速連續(xù)發(fā)送多組數(shù)據(jù),PLC可能將多次發(fā)送的數(shù)據(jù)合并到同一接收緩沖區(qū)(如網(wǎng)絡(luò)延遲或PLC處理速度慢時(shí))。

2. **PLC緩沖區(qū)覆蓋機(jī)制**  
   S7-1200的`TRCV`指令默認(rèn)采用**循環(huán)緩沖區(qū)**(FIFO機(jī)制)。當(dāng)新數(shù)據(jù)到達(dá)時(shí),會(huì)從緩沖區(qū)的當(dāng)前指針位置開(kāi)始覆蓋舊數(shù)據(jù),導(dǎo)致看似"亂序"。

3. **字節(jié)對(duì)齊差異**  
   如果客戶(hù)端發(fā)送時(shí)未顯式指定字節(jié)序(如大端/小端),而PLC默認(rèn)按大端序解析,可能引發(fā)分段錯(cuò)誤(但您的案例中實(shí)際是整體偏移,非字節(jié)反轉(zhuǎn))。

---

### **解決方案**
#### **(1) 顯式定義應(yīng)用層協(xié)議**
在數(shù)據(jù)包中加入**幀頭**和**幀尾**標(biāo)識(shí),例如:
```plaintext
[頭標(biāo)識(shí):0xAA][數(shù)據(jù)長(zhǎng)度:1字節(jié)][數(shù)據(jù):N字節(jié)][校驗(yàn)和:1字節(jié)][尾標(biāo)識(shí):0x55]
```
PLC側(cè)通過(guò)循環(huán)檢查緩沖區(qū)匹配完整幀后再處理。

#### **(2) 修改TRCV參數(shù)配置**
```pascal
TRCV(
    REQ     := TRUE,        // 持續(xù)使能
    CONT    := TRUE,        // 保持連接
    DATA    := #ReceiveBuf, // 接收緩沖區(qū)
    LEN     := 20,          // 預(yù)期接收長(zhǎng)度
    RCVD_LEN=> #ActualLen,  // 實(shí)際接收長(zhǎng)度輸出
    BUSY    => #BusyFlag);
```
關(guān)鍵點(diǎn):
- 設(shè)置`LEN`與發(fā)送方嚴(yán)格一致(您已設(shè)為20字節(jié))。
- 監(jiān)控`RCVD_LEN`確認(rèn)每次接收的實(shí)際字節(jié)數(shù)。

#### **(3) 強(qiáng)制單次接收同步**
在客戶(hù)端每次發(fā)送后增加延遲(如100ms),或通過(guò)PLC程序控制:
```pascal
IF #FirstReceive THEN
    TRCV(REQ := TRUE);      // 首次觸發(fā)
    #FirstReceive := FALSE;
ELSE
    TRCV(REQ := NOT #BusyFlag); // 上次接收完成后再請(qǐng)求
END_IF;
```

#### **(4) 使用`TRCV_C`替代`TRCV`**
`TRCV_C`集成連接管理,可減少緩沖區(qū)沖突:
```pascal
TRCV_C(
    CONT    := TRUE,
    LEN     := 20,
    DATA    := #ReceiveBuf,
    RCVD_LEN=> #ActualLen);
```

---

### **您的數(shù)據(jù)案例分析**
- **原始發(fā)送數(shù)據(jù)**(16進(jìn)制):
  ```plaintext
  15 3E 14 24 54 26 4E 28 51 29 53 AA 56 B0 2D 2D 5C 75 2F C8
  ```
- **PLC接收數(shù)據(jù)**:
  ```plaintext
  2D 2D 5C 75 2F C8 15 3E 14 24 54 26 4E 28 51 29 53 AA 56 B0
  ```
  **現(xiàn)象解釋**:  
  數(shù)據(jù)被**環(huán)形偏移6字節(jié)**,說(shuō)明PLC緩沖區(qū)中殘留了之前未及時(shí)讀取的6字節(jié)數(shù)據(jù),新數(shù)據(jù)從緩沖區(qū)第7字節(jié)開(kāi)始寫(xiě)入,形成"拼接"效果。

---

### **終極調(diào)試建議**
1. **清空緩沖區(qū)**  
   在建立連接后、首次接收前,調(diào)用`TRCV`連續(xù)讀取直到`BUSY`=FALSE,丟棄舊數(shù)據(jù)。

2. **Wireshark抓包驗(yàn)證**  
   過(guò)濾PLC的IP和端口,確認(rèn)客戶(hù)端是否真正按預(yù)期順序發(fā)送(排除調(diào)試助手本身問(wèn)題)。

3. **PLC側(cè)診斷**  
   在線監(jiān)視`TRCV`的`RCVD_LEN`和`STATUS`,正常時(shí)應(yīng)返回`16#7000`(無(wú)錯(cuò)誤)。

4. **代碼示例(清空緩沖區(qū))**  
```pascal
// 初始化階段清空緩沖區(qū)
#TempBuffer := ARRAY[1..100] OF BYTE; // 臨時(shí)緩沖區(qū)
WHILE TRUE DO
    TRCV(
        REQ  := TRUE,
        DATA := #TempBuffer,
        LEN  := 100,
        BUSY => #IsBusy);
    IF NOT #IsBusy THEN EXIT; END_IF;
END_WHILE;
```

---

通過(guò)以上方法,您應(yīng)該能解決數(shù)據(jù)錯(cuò)序問(wèn)題。如果仍有異常,請(qǐng)檢查:
- 客戶(hù)端是否啟用了Nagle算法(建議禁用)
- PLC的OB1循環(huán)時(shí)間是否過(guò)短(建議≥50ms)
- 是否有多余的`TRCV`調(diào)用覆蓋了緩沖區(qū)
樓主留言:
謝謝回復(fù)解答

主站蜘蛛池模板: 国产乱码精品一区二区三区爽爽爽 | 国产色婷婷 | 国语精品自产拍在线观看网站 | av中文无码乱人伦在线观看 | 国产日韩欧美激情 | 国精产品69永久中国有限 | 国产人成网线在线播放va | 中文字幕不卡免费视频 | 日韩少妇激情 | 插我一区二区在线观看 | 色综合婷婷 | 国产亚洲精久久久久久无码77777 | 吻胸摸激情床激烈视频大胸 | 婷婷综合缴情亚洲 | 免费无码av片在线观看网站 | 亚洲一区二区三区视频 | 国产丝袜美腿一区二区三区 | 开心激情综合网 | 久久综合给合久久狠狠狠97色 | 失禁大喷潮在线播放 | 国产无套内射普通话对白 | 欧美性黄色 | 久久久久久久久久免费视频 | 香蕉av久久一区二区三区 | 久久久久久无码午夜精品直播 | 日本强伦姧人妻久久影片 | 日日嗨av一区二区三区四区 | 女上男下啪啪激烈高潮无遮盖 | 亚洲精品99 | 国产综合久久久久久鬼色 | 女人大荫蒂毛茸茸视频 | 亚洲成av人片 | 日本一区二区三区免费播放视频站 | 91网站在线观看视频 | 97热久久免费频精品99 | 2021av在线| 黑人巨大精品欧美 | 丰满爆乳无码一区二区三区 | 亚洲欧美另类久久久精品 | 亚洲第九十九页 | 欧美国产成人久久精品 | 啦啦啦中文在线视频免费观看 | 成人免费毛片男人用品 | 色悠久久久久久久综合网 | 国产成人精品福利网站 | 国产精品久久久久久在线 | 亚洲成av人片天堂网无码 | 无码人妻一区二区三区免费手机 | 国产人久久人人人人爽 | 日本韩无专砖码高清 | 日本美女黄色 | 成人小视频在线 | 色久阁| 啪啪激情婷婷久久婷婷色五月 | 一区二区三区av波多野结衣 | 无码国产精成人午夜视频 | 国产精品传媒在线观看 | 人人玩人人添人人澡 | 人妻少妇精品视频无码专区 | 精品少妇人妻av无码专区 | 日韩在线观看网站 | 欧美日韩精品人妻狠狠躁免费视频 | 自拍偷拍2019 | 国产精品自产av一区二区三区 | 好男人视频www | 少妇把腿扒开让我添 | av片毛片 | 亚洲欧美网站 | 国产伦子沙发午休系列资源曝光 | 国产视频福利在线 | 亚洲一区二区在线看 | 色欲久久综合亚洲精品蜜桃 | 精品九九久久 | 在线观看xxxx | 中文字幕人妻a片免费看 | 爽爽精品dvd蜜桃成熟时电影院 | 一本色道久久88加勒比—综合 | 免费在线看黄的网站 | 男女爱爱好爽视频免费看 | 国产又粗又大又黄 | 99久久久无码国产精品秋霞网 | 欧美精品日韩少妇 | 91精品国产乱码久久久久 | 蜜桃视频一区二区三区 | 亚洲欧美日韩中文播放 | 中国无码人妻丰满熟妇啪啪软件 | 日韩精品一区二区午夜成人版 | 黑人巨大精品欧美久久 | 免费看黑人强伦姧人妻 | 亚洲人成小说网站色 | 亚洲人成激情在线播放国 | 麻豆蜜桃视频 | 国产av无码专区亚洲草草 | 亚洲午夜爱爱香蕉片 | 欧美人与物videos另类xxxxx | 色欲天天天综合网 | 久久久久人妻一区精品性色av | 日韩理论在线 | 国产精品美女久久久久久福利 |