日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

電子開(kāi)發(fā)網(wǎng)

電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 電子開(kāi)發(fā) >> 梯形圖實(shí)例 >> 正文

【圖文詳解】西門(mén)子PLC之S7-200SMART的TCP通信 TCP_CONNECT和TCP_SEND、TCP_RECV指令用法

作者:佚名    文章來(lái)源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2024/6/2

西門(mén)子plc之S7-200SMART的TCP通信 (上)

200SMART的開(kāi)放式通信(Open User Communication)包括TCP通信,UDP通信以及ISO-on-TCP通信,支持CPU固件版本V2.2以上,常用于與第三方支持相同協(xié)議的設(shè)備通信。

開(kāi)放式通信(OUC)編程可以通過(guò)指令或者調(diào)用OUC的指令庫(kù),通信雙方均要調(diào)用指令,通信數(shù)據(jù)量可以達(dá)到1024個(gè)字節(jié),這次我們將介紹OUC通信中的TCP通信。

TCP通信是一種面向連接的通信協(xié)議,通信之前需要先建立連接,是一種數(shù)據(jù)流的服務(wù),不傳輸開(kāi)始消息和結(jié)束消息,是一種可靠,安全的數(shù)據(jù)傳輸。所謂數(shù)據(jù)流,舉一個(gè)簡(jiǎn)單的例子來(lái)說(shuō),發(fā)送方第一次發(fā)送10個(gè)數(shù)據(jù),然后第二次再發(fā)送10個(gè)數(shù)據(jù),然后接收方啟用接受會(huì)一下子接收到20個(gè)數(shù)據(jù)。

TCP通信的編程可以通過(guò)通信指令或者開(kāi)放式用戶通信庫(kù)指令,如圖:

 

圖一:通信指令

 

  圖二: 開(kāi)放式用戶通信庫(kù)指令

這里建議使用開(kāi)放式用戶通信庫(kù)指令,編程和填寫(xiě)參數(shù)都能簡(jiǎn)單一點(diǎn)。

下面開(kāi)始介紹一下TCP通信的流程:

①:建立連接(關(guān)鍵!必須!)TCP_CONNECT和TCP_SEND、TCP_RECV指令用法

 

②:交換數(shù)據(jù)(發(fā)送/接收)

         

③:斷開(kāi)連接(一般不用)

 

④:分配庫(kù)存儲(chǔ)器(必須!建議選擇較大的地址避免沖突)

 

接下來(lái)介紹一下各個(gè)指令的每個(gè)引腳的含義,

首先介紹TCP_CONNECT指令

參數(shù)

數(shù)據(jù)類型

描述

EN

BOOL

使能輸入

Req

BOOL

如果Req=TRUE,CPU啟動(dòng)連接操作。如果 Req = FALSE,則輸出顯示連接的當(dāng)前狀態(tài)。

Active

BOOL

設(shè)置本地CPU在通信中的角色

Active= TRUE為主動(dòng)連接(一般用于客戶端)

Active= FALSE為被動(dòng)連接(一般用于服務(wù)器)

ConnID

WORD

CPU使用連接 ID (ConnID) 為其它指令標(biāo)識(shí)該連接。可能的ConnID范圍為0到65534。

IPadd

IPaddr4

BYTE

這些是IP地址的四個(gè)八位字節(jié)。IPaddr1到IPaddr4 填寫(xiě)通信伙伴的IP地址

RemPort

WORD

RemPort 是遠(yuǎn)程設(shè)備上的端口號(hào)。遠(yuǎn)程端口號(hào)范圍為 1 到 49151。對(duì)于被動(dòng)連接,使用零。

LocPort

WORD

LocPort 是本地設(shè)備上的端口號(hào)。本地端口號(hào)范圍為 1 到 49151,但存在一些限制。

Done

BOOL

完成標(biāo)志位,建立通信連接之后一直保持1。

Busy

BOOL

當(dāng)連接操作正在進(jìn)行時(shí),指令置位 Busy 輸出。

Error

BOOL

當(dāng)連接操作完成但發(fā)生錯(cuò)誤時(shí),指令置位 Error 輸出。

Status

BYTE

如果指令置位 Error 輸出,Status 輸出會(huì)顯示錯(cuò)誤代碼。如果指令置位 Busy 或 Done 輸出,Status 為零(無(wú)錯(cuò)誤)。

這里我們?cè)賹?duì)一些參數(shù)進(jìn)行一些補(bǔ)充解釋

  1. ConnID:ConnID用于標(biāo)識(shí)通信連接,不同的ConnID不能重復(fù),且占用開(kāi)放式通信資源最多16個(gè),客戶端的ConnID與服務(wù)器的ConnID無(wú)關(guān)。

  2. IPaddr:填寫(xiě)通信伙伴的IP地址,客戶端填寫(xiě)服務(wù)器的IP,服務(wù)器填寫(xiě)客戶端的IP。主動(dòng)連接不能填0.0.0.0,被動(dòng)連接可以填0.0.0.0,表示接受任意遠(yuǎn)程IP地址的連接。

  3. RemPort 和LocPort:端口號(hào)設(shè)置,建議采用2000~5000,主動(dòng)方和被動(dòng)方的RemPort 和LocPort交叉對(duì)應(yīng);對(duì)于被動(dòng)連接,本地端口號(hào)必須唯一(不重復(fù)),且可以忽略遠(yuǎn)程端口號(hào),RemPort可以填0。

  4. Req & Active:CPU作為客戶端:Active設(shè)置為T(mén)URE,然后再觸發(fā)Req,主動(dòng)發(fā)送報(bào)文,請(qǐng)求建立連接。如圖Active設(shè)置SM0.0。

 

CPU作為服務(wù)器先就緒,客戶端發(fā)送請(qǐng)求報(bào)文后,才可建立連接,否則被拒絕。

 

例如我設(shè)置本地客戶端IP為192.168.0.100,ConnID為10,端口號(hào)為2000;

遠(yuǎn)程服務(wù)器IP為192.168.0.101,ConnID為20,端口號(hào)為2001;如圖

 

 

這次關(guān)于200SMART的TCP通信就暫時(shí)介紹到這里,下一篇將繼續(xù)為大家介紹TCP的發(fā)送和接收指令,以及TCP程序編寫(xiě)。


西門(mén)子plc之S7-200SMART的TCP通信 (下)

上次為大家介紹了200SMART的TCP_CONNECT指令,這次繼續(xù)介紹TCP_SEND指令和TCP_RECV指令。

TCP_SEND指令和TCP_RECV這兩個(gè)指令比較簡(jiǎn)單,就放在一起介紹。

 

EN:使能,對(duì)于接收指令,建議常1觸發(fā)。

Req:發(fā)送指令觸發(fā)發(fā)送指令,建議使用上升沿觸發(fā)。

ConnID:連接標(biāo)識(shí),與各自的TCP_CONNECT的ConnID相同。

DataLen發(fā)送數(shù)據(jù)的長(zhǎng)度,最多1024個(gè)字節(jié)。

MaxLen:接收數(shù)據(jù)的最大長(zhǎng)度,最多1024個(gè)字節(jié)。

Length:實(shí)際接收數(shù)據(jù)的長(zhǎng)度。

DataPtr:發(fā)送數(shù)據(jù)的地址指針,發(fā)送數(shù)據(jù)的首地址。

其他的Done,Busy等與TCP_CONNECT指令相同。



接下來(lái)對(duì)這些參數(shù)進(jìn)行一個(gè)詳細(xì)的解釋:

如圖,是TCP_SEND的調(diào)用時(shí)序圖,藍(lán)色為Req上升沿觸發(fā),紅色為Req電平觸發(fā)。

 

使用Req上升沿觸發(fā)→Busy=1→完成后DONE=1(一個(gè)掃描周期)→Error=1且Status=24,然后等待下一次上升沿觸發(fā)信號(hào)進(jìn)行循環(huán),這里Status=24表示指令調(diào)用但是未觸發(fā)操作,并不代表錯(cuò)誤。

使用Req電平觸發(fā)→Busy=1→完成后DONE=1(一個(gè)掃描周期),然后不停循環(huán)Busy和Done。

這里建議使用上升沿觸發(fā)TCP_SEND指令。

如圖,是TCP_RECV的調(diào)用時(shí)序圖,藍(lán)色為EN上升沿觸發(fā),紅色為EN電平觸發(fā)。

 

EN上升沿觸發(fā),需要兩次觸發(fā)才可以接收數(shù)據(jù),DONE保持為1,直至下次上升沿的到來(lái);而EN電平觸發(fā),有數(shù)據(jù)就接收,大部分時(shí)間處于Busy,Done為1一個(gè)周期,所以建議EN使用電平觸發(fā)TCP_RECV指令。

對(duì)于TCP_RECV的MaxLen,當(dāng)MaxLen<發(fā)送方數(shù)據(jù)的長(zhǎng)度時(shí),按照MaxLen設(shè)置的長(zhǎng)度進(jìn)行接收,多余部分舍棄,Done不置位,同時(shí)Error=1,Status=25。

所以建議MaxLen=發(fā)送方數(shù)據(jù)的長(zhǎng)度,如果發(fā)送方的長(zhǎng)度是變化的,則MaxLen按照最大長(zhǎng)度進(jìn)行填寫(xiě)。

最后以下題為例:本地客戶端IP為192.168.0.100,ConnID為10,端口號(hào)為2000;遠(yuǎn)程服務(wù)器IP為192.168.0.101,ConnID為20,端口號(hào)為2001,將本地站從VB200開(kāi)始的10個(gè)字節(jié)發(fā)送到遠(yuǎn)程站的VB100開(kāi)始的10個(gè)字節(jié)。

首先我們?cè)谙到y(tǒng)塊中設(shè)置本地站和遠(yuǎn)程站的IP地址

 

 

然后設(shè)置TCP_CONNECT參數(shù),如圖

 

 

接著分別設(shè)置TCP_SEND和TCP_RECV

 

按下I0.4,啟動(dòng)客戶端TCP_CONNECT的連接,SM0.5不斷觸發(fā)SEND的Req,

如圖所示,數(shù)據(jù)成功發(fā)送,通訊成功。

 

Tags:TCP通訊,SMART,西門(mén)子plc  
責(zé)任編輯:admin
相關(guān)文章列表
西門(mén)子S7-200 SMART 模擬量概述及自建庫(kù)文件,西門(mén)子PLC子程序創(chuàng)
西門(mén)子PLC編程常用基礎(chǔ)邏輯
一文學(xué)會(huì)設(shè)備運(yùn)行時(shí)間累計(jì)程序編寫(xiě), 從零基礎(chǔ)到精通,收藏這篇就
S7-1200PLC入門(mén)初學(xué),需先熟悉PLC硬件結(jié)構(gòu)!S7-1200PLC硬件結(jié)構(gòu)
TIA Portal博途軟件和S7-1200PLC介紹
西門(mén)子200SMART PLC編程通過(guò)指針輕松實(shí)現(xiàn)多個(gè)數(shù)據(jù)排列
西門(mén)子S7-200SMART PLC如何實(shí)現(xiàn)星三角降壓?jiǎn)?dòng)多次調(diào)用?子程序編
西門(mén)子PLC子程序?qū)嵗琒7-200 SMART PLC帶參數(shù)子程序應(yīng)用實(shí)例
詳解步進(jìn)電機(jī)與PLC的接線,西門(mén)子、三菱等PLC接線(總結(jié)篇)PLC和
西門(mén)子PLC編程實(shí)例  4個(gè)基本控制電路設(shè)計(jì)方法
KingView 組態(tài)王如何建立TCP通訊
S7-200smart 恒溫PID控制_STEP7中PID設(shè)置溫度自動(dòng)控制編程
西門(mén)子plc傳送帶操作控制,傳輸帶控制
西門(mén)子PLC實(shí)現(xiàn)汽車涂裝前處理生產(chǎn)線中的磷化槽液位控制
|分享| S7-200SMART常用指令(二)
S7-200SMART PLC 模擬量輸入案例,AM06模擬量擴(kuò)展模塊和SIT_R指令
|實(shí)用|一文讓你讀懂使用中斷功能  ATCH和DTCH和RETI、DISI
神級(jí)匯總,西門(mén)子PLC中斷指令及例程 ATCH和ENI
STEP7【步驟詳解】西門(mén)子 PLC PID組態(tài)設(shè)置及PID常見(jiàn)問(wèn)題解答
西門(mén)子plc怎么產(chǎn)生PWM信號(hào),脈沖輸出向?qū)WM輸出向?qū)?/a>
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
推薦文章
最新推薦
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁(yè)面
下到頁(yè)底
晶體管查詢