S7200SMARTCPU与S71200进行TCP通信SMART做客户端.docx

上传人:b****1 文档编号:23259302 上传时间:2023-05-15 格式:DOCX 页数:27 大小:174.87KB
下载 相关 举报
S7200SMARTCPU与S71200进行TCP通信SMART做客户端.docx_第1页
第1页 / 共27页
S7200SMARTCPU与S71200进行TCP通信SMART做客户端.docx_第2页
第2页 / 共27页
S7200SMARTCPU与S71200进行TCP通信SMART做客户端.docx_第3页
第3页 / 共27页
S7200SMARTCPU与S71200进行TCP通信SMART做客户端.docx_第4页
第4页 / 共27页
S7200SMARTCPU与S71200进行TCP通信SMART做客户端.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

S7200SMARTCPU与S71200进行TCP通信SMART做客户端.docx

《S7200SMARTCPU与S71200进行TCP通信SMART做客户端.docx》由会员分享,可在线阅读,更多相关《S7200SMARTCPU与S71200进行TCP通信SMART做客户端.docx(27页珍藏版)》请在冰豆网上搜索。

S7200SMARTCPU与S71200进行TCP通信SMART做客户端.docx

S7200SMARTCPU与S71200进行TCP通信SMART做客户端

S7-200SMART与S7-1200之间TCP通信一S7-200SMART作

为客户端

TCP协议通信

TCP通信为面向连接的通信,需要双方都调用指令以建立连接及交换

数据。

S7-200SMART与S7-1200通过TCP通信,在S7-1200调用T-block扌旨令(TCON,TDISCON,TSEND,TRCV),在S7-200SMART调用OpenUserCommunication库指令

(TCP_CONNECT,DISCONNECT,TCP_SEND,TCP_RECV)。

双方的发送和接收指令必须成对出现。

客户端:

主动建立连接,可以理解为主站;服务器:

被动建立连接,

可以理解为从站。

1注意:

S7-200SMART在CPU硬件固件及编程软件版本均升级到V2.2之

后才开始支持开放式通信。

编程软件版本低于V2.2,无OpenUser

Communication库指令;硬件固件低于V2.2,硬件不支持开放式通信协议。

S7-200SMARTTCP连接资源:

8个主动连接资源,8个被动连接资

S7-200SMARTTCP通信数据量:

1024字节

硬件和软件需求及所完成的通信任务

硬件:

1S7-1200CPU(IP地址192.168.0.100;子网掩码255.255.255.0)

2S7-200SMARTCPU(固件版本V2.2)(IP地址192.168.0.55;子网掩码255.255.255.0)

3PC(带以太网卡)

4TP以太网电缆

软件:

1STEP7V13SP1Upd9

2STEP7Micro/WINSMART(软件版本V2.2)

所完成的通信任务:

1S7-200SMART发送10个字节数据:

(S7-200SMART侧)VB0〜VB9-->(S7-1200侧)

DB4.DBB10〜DB4.DBB19

2S7-200SMART接收10个字节数据:

(S7-200SMART侧)VB2000〜VB2009<--(S7-1200

侧)DB4.DBB0~DB4.DBB9

S7-200SMART侧编程(客户机侧组态编程)

1.打开STEP7Micro/WINSMART>项目树>指令树>库>OpenUser

宙"ij]

H-

Communication,调用TCPCONNECT,如图1所示。

ModbusFlTUMasler(vZCJModbusRTUMaster2"20]

■0

ModtxisRTUSteve(v3.1]□psnUser匚ommuriication(vlTCF.COMMECT150.CONNECTUD巳CONNECTTCP_5ENDTCP_RECVUDP_SENDU[)P_REC¥DISCONNECT

TCP_CONNECT

EN

Rsq

Active

CormlD

Dorie

IPaddrI

Busy

IPaddrE

Error

IPaddG

Status

IPaddr4

RemRort

LocPoit

168

0

100-

192-

-V60002-V96002

-V6000.(J

-VG000.1

乩测沛乩拘客户端,主动翟立连揺R旳触点便用上升沿利发

Alwa^f_Or

7G01QO

TCP_CONNEC

:

T

//调用TCPCONNECT

EN

:

SMO.O

//使能输入

Req

:

V6010.0

//如果Req=TRUECPU启动连接操作。

如果Req=FALSE则输出显示连接的当前状态。

使用上升沿触发

Active

:

SM0.0

//TRUE=主动连接;FALSE=被动连接

ConnlD

:

1

//CPU使用连接ID(ConnID)为其它指令标识该连接。

可能的ConnID范围为0到65534。

IPaddr1~4

192.168.0.100

//IPaddr1是IP地址的最高有效字节,IPaddr4是IP地址的最低有效字节。

192.168.0.100为伙伴的IP地址

RemPort

:

2001

//RemPort是远程设备上的端口号。

远程端口号范围为1到49151。

LocPort

:

2000

//LocPort是本地设备上的端口号。

本地端口号范围为1到49151,但存在一些限制。

DONE

:

V6000.0

//当连接操作完成且没有错误时,指令置位Done输出。

BUSY

:

V6000.1

//当连接操作正在进行时,指令置位

Busy输出。

ERROR

:

V6000.2

//当连接操作完成但发生错误时,指令二^

2001

2000

置位Error输出

STATUS

:

VB6002

//如果指令置位Error输出,Status输出会显示错误代码。

如果指令置位

Busy或Done输出,Status为零(无错误)

图1.指令位置及调用连接指令

2.调用TCP_SEND和TCP_RCV指令,如图2所示。

釁蠶脱緩跖鹦鶴黠離龜豔护由2竝

□ockl?

TCPJEND

EN

Req

ComIDDone

■V6000.6

D^taLsnEu幼

■V6000.7

D^taPbError

-VGO01J

Status

■YB6004

V

1C-

WBC-

CALLTCPSEND

〃调用TCP_SEND

EN

:

SM0.5

//使能输入

//如果Req=TRUE,CPU启动发

Req

:

SM0.5

送操作。

如果Req=FALSE,则输

出显示发送操作的当前状态。

//连接ID(ConnlD)是此发送操作

ConnID

:

1

所用连接的编号。

使用您为

TCP_CONNECT操作选择的

ConnlD。

DataLen

:

10

//DataLen是要发送的字节数(1到1024)。

DataPtr

:

&VBO

//DataPtr是指向待发送数据的指针。

这是指向1、Q、M或V存储

器的S7-200SMART指针(例如,

&VB100)。

Done

V6000.6

//当连接操作完成且没有错误时,

指令置位Done输出。

Busy

V6000.7

//当连接操作正在进行时,指令置

位Busy输出。

Error

V6001.0

//当连接操作完成但发生错误时,指令置位Error输出。

Status

:

VB6004

//如果指令置位Error输出,

Status输出会显示错误代码。

如果

指令置位Busy或Done输出,

Status为零(无错误)

 

Akua3JS_0n

TCP.REO/

EN

CorrilD

Done

MaxLen

Busy

DataFli

Error

Status

Length

&VB2000-

1

10-

-VSCO11

-VG0D1.2

CALLTCPRECV

//调用TCP_RECV

EN

:

SMO.O

//使能输入,常1接收

ConnID

:

1

//CPU将连接ID(ConnID)用于

此接收操作(连接过程中定义)。

MaxLen

:

10

//MaxLen是要接收的最大字节数

(例如,DataPt中缓冲区的大小(1至y1024))。

DataPtr

:

&VB2000

//DataPtr是指向接收数据存储位置的指针。

这是指向1、Q、M或V

存储器的S7-200SMART指针

(例如,&VB100)

Done

:

V6001.1

//当接收操作完成且没有错误时,指

令置位Done输出。

当指令置位

Done输出时,Length输出有效。

Busy

:

V6001.2

//当接收操作正在进行时,指令置

位Busy输出。

-V60013

-VBG0O5

-VW6006

 

Error

:

V6001.3

//当接收操作完成但发生错误时,

指令置位Error输出

Status

:

VB6005

//如果指令置位Error输出,

Status输出会显示错误代码。

如果

指令置位Busy或Done输出,

Status为零(无错误)。

Length

:

VW6006

〃Length是实际接收的字节数。

图2.调用发送和接收指令

3•分配库存储区,如图3所示

 

三要

EJ

图3分配库存储区

 

1注意:

为保证指令库可以正常工作,分配库存储区的时候,一定不

能与程序中使用的其他V区地址重叠!

S7-1200侧硬件组态和编程(服务器侧组态编程)

1.使用TIAV13SP1Upd9软件Portal视图中,创建新项目

2.添加硬件并命名PLC

进入项目视图”,在项目树”下双击添加新设备”,在对话框中选择所使用的S7-1200CPU添加到机架上,命名为PLC_1如图4所示

 

控制器

*•黑制器

▼!

jgSIMA71CS7J200〒匸CPU

■CPU1^11CAO'Da'Rly

►SCPU1211CDC/DCiDC

►LlCPU1211CDODC/Rly

»JCPU1212匚ACjDQ'ftly

►rjiCPU1212CDGDCi'D匚

CPU1212CDODC^Rly

HMM

k”CPUI^UCAC'DaRly

►匚HJ1214匚DQ'DCi'DC

吃和克

►牙匚FU1214CDGD匚fRly

►jCPU1215CAO'DC/fily

I

16ES7215-1AG31-aXBO

1

6ES7215-1AG斗MX50

▼QiiCPU1215匚DDD口D匚

CPU1215CDC/DGRly匚PU1217CDC/DCDC

CPU1214FCDODODC

CPU121斗FCDGD匚;Rly

CPU1215FCDCDODC

CPU1215FCDGD5Rly

非特走的CPU1200

]CPU5IFLUS

b®SIMA71CS7-1500

*&SIMA11CS7-300

M十

订货号:

版本:

Illi

刁打开设裔视圉

rn

CPU1215COaDGDC

I6ES7215-1AG4IXJXB0

说明:

125KB存储器-24.DC电氟板载D114x24/DC届型源型■DQ10X24/DC尺Al2利AQ2

-板载6个誣计数器和4个矗冲输出.信号板扩展板载I03F通信檯块用于串行通信-參

这吕个信号複快用于IP扩展-004ms/1000^指令.2个PROFINET端口用于编程HMI和PL匚闾的逋信

确定

取消

图4.添加新设备

3.启用时钟位

为了编程方便,使用CPU属性中定义的时钟位,定义方法如下:

在项目树”>“PLC_1设备组态”中,选中CPU,然后在下面的

属性窗口中,属性”>系统和时钟存储器”下,将时钟位定义在MB0,

如图5所示

时钟位我们使用M0.5,它是频率为1Hz的脉冲,可以使用它去自动激活发送任务。

图5.启用时钟位

4.为PROFINET通信口分配以太网地址在设备视图”中点击CPU上代表PROFINET通信口的绿色小方块,在下方会出现PROFINET接口的属性,在以太网地址”下分配

S7-1200CPU的IP地址为192.168.0.100,子网掩码为

255.255.255.0,如图6所示

图6.分配IP地址

5.在S7-1200中调用建立连接指令,进入项目树”>“PLC_1”程

序块”>“OB1主程序中,从右侧窗口指令”>通信”>开放式用户

通信”下调用“TCON指令,配置连接参数,如图7所示。

V

Ea

HI-TIII

toPl

■■KOU_Wh

iron

•區1

强D

yjnoja

pW10J

fq_"—

00«

10

炽KO2

*SDS2

eiMr

sPl£1

"(M1<03

Ccnnfrtliqp^CS'

3HNfCI

fRR&ft

一TH0-4+

WWJ

■MflL寸

程斥段1

£■I--MKi-盟」慢

1.盘击監冬旦丄豈宣

B请楚方育呂恥

应点:

本丸

三北孑

丄艺

■普

*23s?

ft]*

-_J昇”却戶直忙

*TSE-JD_C

*1CV.C

*TWH_C

背它

*K04M

*IDIS^H«-l^EW

■HtC'i

•USEND

♦TURCV»1_RESET

*1_DE

♦1LOONF1C

[B

»山曲為»二J臭n

»'jinflux

fis口:

FLjmphaHN曰播口」[xi:

HMgiJl■

子阿;

鬧址:

fflftc汁遇柚.

=1

离1?

和IS;[PLC\Ccrenftoor皿

$爵■冑户机

地址讦堀信血

金聒鬻W醸。

'凹竺:

曲亘piSllF!

-技

本姒口

匸计;盲厂

诂口<-则:

2«t

图7.调用TCON指令并配置连接参数

6.创建用于交换数据的全局DB块及定义变量

通过项目树”>“PLC_1程序块”>“加新块”,选择数据块”创建全局

DB块,点击确定”生成数据块。

如图8所示

图8.添加新块

通过项目树”>“PLC_1程序块”点击生成的数据块_1”(DB4),右键属性,取消勾选优化的块访问”。

如图9所示。

图9取消勾选优化的块访问

双击生成的数据块_T(DB4),定义数组,10个字节用于发送,10

个字节用于接收,然后编译数据块。

结果如图10所示。

块_1

名称

数IS类型

偏移里

O▼Static

丄呦■卜TTP^SEND

Array(1.1OJof舟t已

00

O・卜TCFLRCV

Arreyfl.1OlofByte

10.0

图io.定义交换数据区

7.在OB1中调用TSEND禾口TRCV

指令块位置及调用方法参考TCON指令的调用,调用结果如图11所示。

程序段2:

tcp_send冲MS岌送

^B3

'KEND-DB*

BEND

■eN

ENO

伽0_5

^20.0

Tlcck_1hlf-

REQ

DONE―Fg少

-ID

15M2OJ

POB4.D6XD.D

BUSY―Tag_7'

■敎拥块」■一

^20.2

TCP_SEND-

DATA

ERROR―Tag_B'

STATUSFg』

 

CALLTSEND

DB3

〃调用TSEND,使用背

景DB块:

DB3

REQ

:

M0.5

〃使用1Hz的时钟脉冲,

上升沿激活发送任务

ID

:

1

〃连接号,要与连接配置

中一致

DATA

P#DB4.DBX0.0BYTE10

//发送数据区的数据,

需要注意DB块要选用

绝对寻址

DONE

:

M20.0

//任务执行完成并且没

有错误,该位置1

BUSY

:

M20.1

//该位为1,代表任务

未完成,不能激活新任

ERROR

:

M20.2

//通信过程中有错误发

生,该位置1

STATUS

:

MW22

//有错误发生时,会显

示错误信息号

"TnfV_DB*

TRCV

匚用

ENO

伽13

・AlwayslRUE'-

-EN_R

NOR―'Ta9^0,

1-

ID

WJO.l

P1DB4.0BX10.0

BUSV―*Tag_lT

墩据I一

TIM30.2

1CP_RCW-

DAI^

ERROR―'Tag_13*

血TIK—Fg_1于

MlVW斗

gnj_ENB-・^g_i甲

CALLTRCV

DB5

〃调用TRCV,使用背景

DB块:

DB5

EN_R

:

M1.2

〃准备好接受数据,常1

接收

ID

:

1

〃连接号,要与连接配置

中一致

DATA

P#DB4.DBX10.0

BYTE10

//接受数据区的数据,

需要注意DB块要选用

绝对寻址

DONE

:

M30.0

//任务执仃元成并且没

有错误,该位置1

BUSY

:

M30.1

//该位为1,代表任务未完成,不能激活新任务

ERROR

:

M30.2

//通信过程中有错误发

生,该位置1

STATUS

:

MW32

//有错误发生时,会显

示错误信息号

RCVD_LEN

:

MW34

//实际接受数据的字节

图11.调用发送和接收指令

上接收和发送指令调用需要注意:

程序块的ID要与指令TCON中的ID保持一致

DATA参数的填写方法(以TRCV程序块为例):

1、直接输入:

P#DB4.DBX10.0BYTE10

2、打开数据块,点击数据块右上角浮动按钮

 

移动数据块与0B1并排显示,选中数据块变量名称

TCP_RCV”拖拽到TRCV指令DATA参数处,该区域

显示为绿色,释放鼠标即可。

通信结果

将S7-1200和S7-200SMART项目编译,下载

S7-1200侧触发TCON指令的REQ(M10.0置位为1),S7-200

SMART侧触发TCP_CONNECT指令的Req(V6010.0置位为1)

以建立连接;通信结果如下:

 

邑琢

雇榕里

启叮左

1

F5(3lie

2

■▼TCP_SEMD

amyl.iQof0)t*

□0

3

・TCr_SESOpl

Dyie

00

伽。

1S#21

4

■TC?

_SEN0(2]

Byr#

10

16*22

5

■TCr_5ESO[3]

Dyte

2.0

1CAC

16*23

■TCP,EM⑷

Byte

30

16t0

1034

7

■口」Eh£l[勺

Byte

4.0

16#C

16#25

8

・TCP_SE^[6]

B>fp

50

16ft0

16gf26

9

•TCP_SESD[7]

日yx

60

16ii0

16*27、

10

■(□I

■KP_SENOI8]

Byre

70

16*0

16*26\

11i

«D

■TCP_£ES0[3]

Byre

3.0

16*0

\

12

■sLU

■TEf_5tMJ(i0]

匕沁

30

1&?

5D

13

・-TCP_PtC7

Anay*|1.JlO'atEjte

1t>0

14

•Kr.KVt11

Byte

Q.Q

!

&?

□!

15

TCP.H342J

日疔

10

16#0

16*02

16

■lLf_K>Ai]

B/ie

20

伽0

levo(s

17

・TCP_PCVfi]

Bytt

3.0

伽0

IE#04

IB

・TCf_RC45]

Bytt

4.0

IA#O

15105

19

・TC*_KMfi]

Byte

5.0

16s0

20

-Ttf_ftCVf7l

Byie

fi-0

16fi:

0

15SC57

21

■T:

P_RCV{Sj

Byte

70

16^0

i6^as

22

■TUr.ACVl?

]

Dy^c

3。

16*0

16*0?

23

>TU?

_PG41O]

fy*®

90

1640

搐式

当茴直

WO

十"制

i£mn

2

VB1

十六进制

1EW2

3

VB?

十六舟制

1KU03

4

W3

I六遊制

1EH04

b

VEJ4

+六创制

Ibaos

G

VD5

+六麵

1SWG

7/

g

十六曲制

16W7

§/

VQ7

十六删

IBttOS

VB5

十"制

佃403

VB?

+六或制

1EW.

VB2D00

+六出制

1E021

VB2D01

+六型制

1BH22

1\

VB?

0ft2

+六咗制

1BA23

1心

V920O2

+A删

1E1I24

15

VB?

0O4

十六倂制

1W5

V02OK

16X26

1?

VD2D0C

卜六狮

1D«7

1d

VB20U7

+"制

】沁

ig_

VB20®

H疋制

16S39

2J

VB2Q1B

十為蝴

1Ett2D

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1