下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、TCP协议通讯(一)S7200SMART之间的TCP通讯TCP 是一个因特网核心协议。在通过以太网通信的主机上运行的应用程序之间,TCP 提供了可靠、有序并能够进行错误校验的消息发送功能。TCP 能保证接收和发送的所有字节内容和顺序完全相同。TCP 协议在主动设备(发起连接的设备)和被动设备(接受连接的设备)之间创建连接。一旦连接建立,任一方均可发起数据传送。TCP 协议是一种流协议。这意味着消息中不存在结束标志。所有接收到的消息均被认为是数据流的一部分。S7200SMART 与之间的 TCP 通讯可以通过两边调用 OUC(开放式用户通讯)指令库中的TCP_CONNECT、TCP_SEND、T
2、CP_RECV、DISCONNECT 指令来实现。B-J|penUserCcmmumcatianv1.0)TCP,CONNECTIGO.CONMECTUDP.CONUECTTCP_SENDTCP_RECVUDP_SENJUOP.RECVDISCONNECT图 1.开放式用户通讯库军开放式用户通信库需要使用 50 个字节的 V 存储器。通开放式的用户通讯连接资源包括 8 个主动连接和 8 个被动连接。现只可从主程序或中断例程中调用库函数,但不可同时从这两个程序中调用。所需条件:1、软件版本:STEP7-Micro/WINSMARTV2.22、SMARTCPU 固件版本:V2.23、通讯硬件:TP
3、 电缆(以太网电缆)所完成的通讯任务:将作为客户端的 PLC (IP 地址为 01) 中 VB0-VB3 的数据传送到作为服务器端的 PLC(IP 地址为 02)的 VB2000-VB2003 中。口口:口S7-200SMARTS7-200SMART 客户端编程1 1、设置本机 IPIP 地址在客户端设置 IP 地址为 01以太网湍口I*里地址养囿定为不御盾,不能通过其它万式更万|卬地址;|132,L63/0H1C1子网撞玛;|次工行.C费认网关:;I6一.。C图 2.设置 IP 地址2 2、建立 TCPTCP 连接指令建立 T
4、CP 连接。设置连接伙伴地址为 02,远端端口为 2001,本地端口为 5000,连接标识 ID 为 1。利用 SM0.0 使能 Active,设置为主动连接。初始化连楂参敕,并建立连接。IF%192.168.010L伙伴1改址为14216&QJ口2。本地端口器为5。口。,远程端口碧为现。1年InM0连推标迎符。Req:上升君触发,客户发送建立湮接清天。Active:TRUE=主动连接,FALSE=被动连接。IF地址:伙伴的IF地址 q端口号:与远程端口号交叉对应。通信:数字笔输人.10.0-10.7一回 IL0-IL7.数字里输出 1:保持范田1:口:垃G 自动
5、调用 TCPCONNECTM10.OW101TIAlwgtys_OnTCP_CONNECTENReqActive1,ConnlDDone-M11.01盼 IPaddrlBusy-W11.1158-IPaddr2Error-M1120- IPsddrSStatus-MBH102-IPaddr2001-RemRort5000-LocPort图 3.调用 TCP_CONNECT 指令指令的参数输入参数:EN:使能输入Req:沿触发Active:TURE=主动连接(客户端)FALSE=被动连接(服务器)ConnlD:连接 ID 为连接标识符,可能范围为 0-65534。IPaddrl.IPaddr4:
6、 :IP 地址的四个八位字节。IPaddr1 是 IP 地址的最高有效字节,IPaddr4 是 IP 地址的最低有效字节。RemPort:远程设备上的端口号。远程端口号范围为 1 至 U49151。对于被动连接,可使用零。LocPort:本地设备端口号。范围为 1-49151,但是存在一些限制。本地端口号的规则如下:有效端口号范围为 1 到 49151。不能使用端口号 20、21、25、80、102、135、161、162、443 以及 34962 至 34964。这些端口具有特定用途。建议采用的端口号范围为 2000 到 5000。对于被动连接,本地端口号必须唯一(不重复)。输出参数:Don
7、e:当连接操作完成且没有错误时,指令置位 Done 输出。Busy:当连接操作正在进行时,指令置位 Busy 输出。Error:当连接操作完成但发生错误时,指令置位 Error 输出。Status:如果指令置位 Error 输出,Status 输出会显示错误代码。具体错误代码对应详见手册。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。3 3、调用发送数据指令 TCP_SENDTCP_SEND调用 TCP_SEND 指令发送以 VB0 为起始,数据长度为 DataLen 长度的数据发送到连接 ID 为 1指定的远程设备。利用 1HZ 的时钟上升沿触发发送请求。利用的时
8、钟触发点法指畲,发法长度存储在vwiwu中,发法缰斯区起始地址为vmuoCmMD连接标汉符,口出九白门发法的字节救。a 目指向待发送数据的指针口Always_OnTCP.SENDENClockJsp11-W1000-&VB0-r5SC|ConnlDDaneDataLenBusyDataPtrErrorStatus-M20.0M20.1M20.2-MB22图 4.调用 TCP_SEND 指令指令的参数输入参数:EN:使能输入Req:沿触发ConnlD:连接 ID(ConnlD)是此发送操作的连接 ID 号。DataLen:DataLen 是要发送的字节数(1 至 U1024)。DataP
9、tr:DataPtr 是指向待发送数据的指针。输出参数:Done:当连接操作完成且没有错误时,指令置位 Done 输出。Busy:当连接操作正在进行时,指令置位 Busy 输出。Error:当连接操作完成但发生错误时,指令置位Error 输出。Status:如果指令置位 Error 输出,Status 输出会显示错误代码。具体错误代码对应详见手册。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。4 4、终止通讯连接用户可通过 DISCONNECT 指令终止指定 ID 的连接。图 5.调用 DISCONNECT 指令参数说明:输入参数:EN:使能Req:沿触发指令。输出
10、参数:Done:当连接操作完成且没有错误时,指令置位 Done 输出。Busy:当连接操作正在进行时,指令置位 Busy 输出。Error:当连接操作完成但发生错误时,指令置位 Error 输出。Status:如果指令置位 Error 输出,Status 输出会显示错误代码。具体错误代码对应详见手册。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。5 5、分配库存储区开放式用户通信库需要使用 50 个字节的 V 存储器,用户需手动分配。在指令树的程序中,以鼠标右键单击程序块,在弹出的快捷菜单中选择库存储器。如图所示:断开I最为1的连接:.口旧连接标识符M30,OM30
11、.1IIMDISCONNECTENneqConn_lDDoneBu沙ErrorStatus-M3O2-M303-M30.4-MB31HE3M固ijQsI卜;由由目电白苻与由白状态Q*国口数据w:偃系统1%由同交更iS通信图 7.分配地址S7-200SMARTS7-200SMART 服务器端编程1 1、设置本机 IPIP 地址设置 IP 地址为 02全部嗝译MA导入*导出砺,囿凶向守,口工ML回收底1a库存据器一助图 6.库存储器在弹出的选项卡中设置库指令数据区:遑议地址|删赊库符号OpenUsComfiiiinication(vl.0)7000通过YBTQ49却学里输入-
12、niin.c-in.7ILC.117r数字更输上暝太网调口屏JP也出勒据值宛内卜固的自,不1维正其它用式定西1P也加:二192,168.D.10口保持范围安全旧动子网椅码;:默办网关;:Z55,55,255.CC0.0.Q图 8.设置本机 IP 地址2 2、建立 TCPTCP 连接调用 TCP_CONNECT指令建立 TCP连接。 设置连接伙伴地址为 01,远端端口为 5000,本地端口为 2001,连接标识 ID 为 1。利用 SM0.0 常闭点使能 Active,设置为被动连接。初自化连接鎏薮.并建立连横。本地IP为192.1&8.0,102,仅伴网址为192
13、.168.0,101,本地口号为2001,远程端口号为6口011。口僦口:连接标识符。一.Req:电平1找,服务器萌动等待客户端连接请求,Active:TRUE主动连播,FALSE械动连接,I咽此伙胖的IP1蜘。湍口号:与远程端口号交更对应。IM00IIICP.COMNECTENReq11M01IIIIAlwas_OnI;I1711-CkrnnlDDone-M&2192-iPaddrlBusy-MO31EIPaddiSEiror-M040-IPaddi3St咏用-MB1W1-IPaddr45000-RemPcrt之加1;LocPort图 9.调用 TCP_CONNECT 指令3 3、接
14、收数据调用 TCP_RECV 指令接收指定 ID 连接的的数据。接收的缓冲区长度为 MaxLen,数据接收缓冲区以 VB2000 为起始。捂受蓟据长度存储在口中,接受覆冲区起始地址为/52口口口+CcrnmD连接标识存。:接收的最大字节数DataPV;指向接收敷掘存诸位贵的指针M10.0IITCF-HECVEhl111VW1000-3.VB2000-L.IMConnIDDoneManLeriBusjiDalaFtrErrorLength-M10.2-M10.2-M1P3-M1P3-MB11-MB11-MW14-MW14图 11.调用 TCPRECV 指令监控结果其中客户端的 VW1000 是发
15、送的数据长度,服务器端的 vw1000 是接收的数据长度。图 12.监控结果例程为了更好地理解 TCP 的编程,可参考下面的例程。丛注意:1 .该例程使用 STEP7-Micro/WINSMART 编写。2 .在建立连接时需先触发服务器端的建立连接指令,再触发客户端。TCP 客户端程序TCP 服务器端程序心主意:L.幽渊J2001天的Li.I2UL2无鳄4-,B2ITS王鹤5有普WHO)铺台H鼾端此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门
16、。(二)S7-200SMART 与调试助手之间 TCP 通信TCP 协议通讯TCP 通信为面向连接的通信,需要双方都调用指令以建立连接及交换数据。S7-200SMART 与 TCP&UDPDebug 通过 TCP 通信,在 TCP&UDPDebug 建立客户端或服务器,在S7-200SMART 调用 OpenUserCommunication 库指令(TCP_CONNECT,DISCONNECT,TCP_SEND,TCP_RECV)。客户端:主动建立连接,可以理解为主站;服务器:被动建立连接,可以理解为从站。丛注意:S7-200SMART 在 CPU 硬件固件及编程软件版本均升
17、级到 V2.2 之后才开始支持开放式通信。编程软件版本低于 V2.2,无 OpenUserCommunication 库指令;硬件固件低于 V2.2,硬件不支持开放式通信协议。S7-200SMARTTCP 连接资源:8 个主动连接资源,8 个被动连接资源S7-200SMARTTCP 通信数据量:1024 字节硬件和软件需求及所完成的通信任务硬件:1PC(带以太网卡)(IP 地址 54;子网掩码 )2S7-200SMARTCPU(固件版本 V2.2)(IP 地址 0;子网掩码)TP 以太网电缆软件:1
18、TCP&UDPDebug2STEP7Micro/WINSMART(软件版本 V2.2)所完成的通信任务:TCP&UDPDebug 发送 10 个字节数据:-(S7-200SMART 侧)VB2000-VB2009TCP&UDPDebug 接收 10 个字节数据:-(S7-200SMART 侧)VB0-VB9TCP&UDPDebug 设置(客户端设置)1 .打开 TCP&UDPDebug 软件2 .右键客户端模式”-创建连接如图 1 所示,创建连接图 1.创建连接选择连接类型:TCP填写 S7-200SMART 的 IP 地址及端口号设置 PC 的端口号单
19、击创建3 .右键客户端模式”-连接”图 2.建立连接蓝色圆点:未建立连接;黄色三角箭头:正在建立连接;绿色三角箭头:连接建立成功;勾选自动连接”后,点击连接按钮。TCP&UDPDebug 设置(服务器设置)1 .打开 TCP&UDPDebug 软件2 .右键服务器模式”-创建服务器”属性左甲口客户卷位三E版符葡际图 3.创建服务器选才 iPC 的端口号后,点击确定3 .右键服务器模式”-启动服务器,屈性住a客户端槿式白包服务翱耘:Local(192.16B.0.254J;2000图 4.启动服务器S7-200SMART 侧编程1.打开 STEP7Micro/WINSMART项目
20、树指令树库OpenUserCommunication, 调用 TCPCONNECT,如图 5、 图 6 所示。MOCDUFHTUMaster(vZOModbusRTU|v2.0ModbusATUSlave(v31lDper(UserCommLirncatior(vlO)TCPCONNECTISO_CONt-IECTUDP_CONNECTTCPZSENDTCF_REC/LIDP_SENDUDP,RECVDISCONNECT图 5.开放式以太网通讯指令库由口白屋t:口口口口口口口口国日I0E1I57-2005MARTffiffiSActive-FLASE;S7-2taSMART儆客户湍Active
21、-TRUEAlwaysOnTCP_CaNNECT11EN11VS010.DIIReqIIAlways_OnJ,1AcliveAA1-ConnlDDore-VGDOttOJ192-IPdddilBusy-V6D00.1鹿身署:Active=FLASE1S8-IPadd2EirorV000.2客户墙:Active=TRUE0-IPad犯Status-VB60D1254-lPaddi42000-RemPort2000-LocPort图 6.TCP 连接块表 1.引脚说明TCP_CONNECT调用 TCP_CONNECTEN:SM0.0使能输入Req:V6010.0如果 Req=TRUE,CPU 启动
22、连接操作。如果 Req=FALSE,则输出显示连接的当前状态。使用上升沿触发Active:SM0.0 闭点/TRUE=主动连接;FALSE=被动连接ConnlD:1/CPU 使用连接 ID(ConnID)为其它指令标识该连接。可能的 ConnID 范围为 0 到65534。IPaddrl4:00/IPaddr1 是 IP 地址的最高有效字节,IPaddr4 是 IP 地址的最低有效字节。服务器侧 IP 地址写 0,表示接收所有请求RemPort:0/RemPort 是远程设备上的端口号。远程端口号范围为 1 至 IJ49151。对于被动连接,使用零。LocPort:2000/LocPort 是
23、本地设备上的端口号。本地端口号范围为 1 到 49151,但存在一些限制。DONE:V6000.0/当连接操作完成且没有错误时,指令置位Done 输出。BUSY:V6000.1/当连接操作正在进行时,指令直位 Busy输出。ERROR:V6000.2/当连接操作完成但发生错误时,指令置位Error 输出STATUS:VB6002/如果指令置位 Error 输出,Status 输出会显示错误代码。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)2.调用 TCP_SEND 和 TCP_RCV 指令,如图 7、图 8 所示。3发送数据,限止升洌艘g 国旗号卷轩措向娱中区首地址
24、,长度由口且杂做定左捷:漫法物据爆gR地址不能与格合嗡n型存储区分配地扯歪禽Clack1$repSEND11ENClockls111p1ReqkCenNDDon&VG00H610-DalsLenBu沙VG00D7fcVEO-DalaPlrEtroi-V60Q10tatu06004图 7.TCP 发送块表 2.引脚说明CALLTCP_SEND/调用 TCP_SENDEN:SM0.5使能输入Req:SM0.5/如果 Req=TRUE,CPU 启动发送操作。如果Req=FALSE,则输出显示发送操作的当前状态。ConnID:1/连接 ID(ConnID)是此发送操作所用连接的编号。使用您为
25、TCP_CONNECT 操作选择的 ConnID。DataLen:10/DataLen 是要发送的字节数(1 至 U1024)。DataPtr:&VB0/DataPtr 是指向待发送数据的指针。这是指向 I、Q、M或 V 存储器的 S7-200SMART 指针(例如,&VB100)。Done:V6000.6/当连接操作完成且没有错误时,指令置位 Done 输出。Busy:V6000.7/当连接操作正在进行时,指令直位 Busy 输出。Error:V6001.0/当连接操作完成但发生错误时,指令置位 Error 输出。Status:VB6004/如果指令置位 Error 输出,S
26、tatus 输出会显示错误代码。 如果指令置位错误)Busy 或 Done 输出,Status 为零(无4接收数提,可以脂揩常1接收闻则可含OnIITCP.RECVENComnlDDoneMawLanBusyDataPhEirorStatusLenath1r10-M2O0L-VG0011-Y60012-VE001.3-VBE005-WO0&图 8.发 TCP 接收块表 3.引脚说明CALLTCP_RECV调用 TCP_RECVEN:SM0.0使能输入,常 1 接收ConnID:1/CPU 将连接 ID(ConnID)用于此接收操作(连接过程中定义)。MaxLen:10/MaxLen 是
27、要接收的最大字下数(例如,DataPt 中缓冲区的大小(1 到 1024)。DataPtr:&VB2000/DataPtr 是指向接收数据存储位置的指针。这是指向 I、Q、M 或 V 存储器的 S7-200SMART 指针(例如,&VB100)Done:V6001.1当接收操作完成且没有错误时,指令置位 Done 输出。当指令置位 Done 输出时,Length 输出功效。Busy:V6001.2/当接收操作正在进行时,指令置位 Busy 输出。Error:V6001.3/当接收操作完成但发生错误时,指令置位 Error 输出Status:VB6005/如果指令置位 Error
28、 输出,Status 输出会显示错误代码。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。Length:VW6006/Length 是实际接收的字节数。3.分配库存储区,如图 9 所示。三要ji3i覃B为smacsfnaHcD;W0RKwofkk20(新增功需图 9.分配库存储区出注意:为保证指令库可以正常工作,分配库存储区的时候,一定不能与程序中使用的其他 V 区地址重叠!通信结果以 S7-200SMART 做服务器为例。将 S7-200SMART 项目编译,下载并触发建立连接;在TCP&UDPDebug 中点击连接。CpenUsciCnrrnLTicdbn
29、,一.口指与岸Ui*rCcmnuncMcn料学需要60字节的至1515“疗匹言指 W 里后门使用他此I行埼善斡拒】止电击建讪M址以使用程序交亮引同定位具有所需吉4库车使用块连边地M MOKICsncjdV&5CL0画过,1明419建议*6 6址二爰为楼亘是白与外等便忸地址全建的功能可变手时修改库存龄区起始地W.W.,如:手动曲入MI35OE通信结果如下:VI0十六谙制1EO01VII十六逑制1BH0S十六遍制1匈3友诺怔rGsttfci融僦|1皿巾宦近曲3十大立阳1-MM相4土壬制一友田要件厂友汪争跟到球拒话宇Vt4+士通制I臼U5a十六通制1删:IA111213MHK17:BKrU廿
30、掘制16W071心十六选制1诵帕vte十六法制1圜的VBy十六白制有苻目WZODQ十六口制16H1IjVEQ十六进制JI6121I1|8MUSIw*nI1 师则 19-HnSVEE皿十六过荆1就im1wzom十六迂制1F14/r保存剪文件用1i十六逋制ifitnSfVB20O5十六说制侬花111003nq05OfiorOBOSOaVE2QO6+士通制16nM图 10.测试结果VE2DD7+六通制1501BV12IT8十六迷制1BH19依然工卜九口制1阴2D(三)S7-200SMART 与 S7-1200 之间 TCP 通信一S7-200SMART 作为服务器TCP 协议通信TCP 通信为面向连
31、接的通信,需要双方都调用指令以建立连接及交换数据。S7-200SMART 与 S7-1200 通过 TCP 通信,在 S7-1200 调用 T-block 指令(TCON,TDISCON,TSEND,TRCV),在S7-200SMART 调用 OpenUserCommunication 库指令(TCP_CONNECT,DISCONNECT,TCP_SEND,TCP_RECV)。双方的发送和接收指令必须成对出现。客户端:主动建立连接,可以理解为主站;服务器:被动建立连接,可以理解为从站。己注意:S7-200SMART 在 CPU 硬件固件及编程软件版本均升级到 V2.2 之后才开始支持开放式通信
32、。编程软件版本低于 V2.2,无 OpenUserCommunication 库指令;硬件固件低于 V2.2,硬件不支持开放式通信协议。S7-200SMARTTCP 连接资源:8 个主动连接资源,8 个被动连接资源S7-200SMARTTCP 通信数据量:1024 字节硬件和软件需求及所完成的通信任务硬件:S7-1200CPU(IP 地址 00;子网掩码 )S7-200SMARTCPU(固件版本 V2.2)(IP 地址 0;子网掩码)PC(带以太网卡)TP 以太网电缆软件:1STEP7V13SP1U
33、pd92STEP7Micro/WINSMART(软件版本 V2.2)所完成的通信任务:3S7-1200 发送 10 个字节数据:(S7-1200 侧)DB4.DBB0-DB4.DBB9-(S7-200SMART 侧)VB2000-VB20094S7-1200 接收 10 个字节数据:(S7-1200 侧)DB4.DBB10-DB4.DBB19“PLCJ谩备组态”中,选中 CPU,然后在下面的属性窗口中,属性”系统和时钟存储器”下,将时钟位定义在 MB0,如图 2 所示。时钟位我们使用 M0.5,它是频率为 1Hz 的脉冲,可以使用它去自动激活发送任务。571;00ECFUjCPU)211CAC
34、/DDWy,CfLmtCDCi&ODCLaCPU1211CDCnCRyCPLI2UCAjCj&2jRy1CPU1Z12CCKXCCC!_JCPUIJUCDODRly ,CfLnCAO&ORy口ICPL1214CDCIDCIDCLjCPL1214CDCi&CRyCPU1215CAC/DClRy-CPUniceDdaaoc|5F,72r5-lA( (33HJKBQ而71-1AGdC-OCRrCPLIZISCDCOURyCPU121?COCOCIDCCPL1214FCDODCDCCfU1214FCDGDCM1/CfU121SFCDCiDtOCCPU1215FCDGDQ
35、ly萋的用CPUTOOCPU&IPLJS* *r rluLIclnluLIclnr ri*i*世备.订装号:版章:硼:叵打开设希视图卜jSIWnC57-1500*到wn亡7TMpiiL 丁.;n,rrfiS-2lS1AC400BOVJ立,MS工化存油暑一24VtX电蹙一3Di14x24VDC露野遁蛰.DQ10 x2+7D.312布用工低我&个百速”此港和4个翻:口输出信号板犷展版社 10 多这三个通信福铁用于品行通信-多达 8T 信号模块用于 ITO 扪 EMmW1000 短指台,2十方:)=3门端口用于细善,什 5 而FLCi曲通信图 2.启用时钟位4 .为 PROFINET
36、 通信口分配以太网地址在设备视图”中点击 CPU 上代表 PROFINET 通信口的绿色小方块,在下方会出现 PROFINET 接口的属性,在以太网地址”下分配 S7-1200CPU 的 IP 地址为 00,子网掩码为 ,如图 3 所示图 3.分配 IP 地址5.在 S7-1200 中调用建立连接指令,进入项目树”PLC_1程序块”“OBT主程序中,从右侧窗口指令”通信”开放式用户通信”下调用“TCON 指令,配置连接参数,如图 4 所示。F而11MttMa*梢*口工士mcu产Tl-HIIFCAR17r1TBMarifcaA.d#KWJ冲一曲大最
37、防鬟酬翦本布餐扩展取空,得库聿Si定两牌开r式展 n 席才-T5EE_匚*wa,c F4M上 TOON1DSO&HMHO.TOCV USEKIruFsn-TJttSFT UH必T_8讨心,.但训用卜要七E-ar*TTI地址口5E-OC-J堆址讦军信注知叶犁制T1 白FW.WDfiJ 图 4.调用 TCON 指令并配置连接参数6 .创建用于交换数据的全局 DB 块及定义变量通过项目树”PLC_T 程序块”潮罚口新块”,选择数据块”创建全局 DB 块,点击确定”生成数据块。如图 5 所示。图 5.添加新块通过项目树”PLC_T 程序块”点击生成的数据块_1”(DB4),右键属性,取消勾选优
38、化的块访问”。如图 6 所示。图 6.取消勾选优化的块访问双击生成的数据块_1(DB4),定义数组,10 个字节用于发送,10 个字节用于接收,然后编译数据块。结果如图 7 所示。数据块名称数据类受偏移更CQ-51atic2包kICRJENDArraj1.10|ofo.a3旬1CF_RCVArrayfl.10ofByte10.0图 7,定义交换数据区7 .在 OB1 中调用 TSEND 和 TRCV指令块位置及调用方法参考 TCON 指令的调用,调用结果如图 8 所示。程序段2 2L一TCF_SEND1H上脉冲触发发送T5END_DB徒制口叵|因ENfNO30520.0*Clock_1H/RE
39、QDONE_*Tag_6ID20.1BUSY-*Tag_720.2DATAERRORfag蛆MN.STATUS.CALLTSEND,DB3/调用 TSEND,使用背景 DB 块:DB3REQ:M0.5/使用 1Hz 的时钟脉冲,上升沿激活发送任务ID:1连接号,要与连接配置中一致DATA:P#DB4.DBX0.0BYTE10/发送数据区的数据,需要注意 DB 块要选用绝对寻址DONE:M20.0/任务执行完成并且没有错误,该位置 1BUSY:M20.1/该位为 1,代表任务未完成,不能激活新任务ERROR:M20.2/通信过程中有错误发生,该位置 1STATUS:MW22/宿错误发生时,会显示
40、错误信息号程序段3:7CP_RCV常1接收TPCVENENO加,EN_RNDR-TTogJlQIDSUSiYiTag_11*)4M30.2DATftERRQRiFq_127ATJ*Tag_15*加WM,RCVD_LEM!TH*Tag_14 CALLTRCV,DB5/调用 TRCV,使用背景 DB 块:DB5EN_R:M1.2准备好接受数据,常 1 接收ID:1连接号,要与连接配置中 T 攵 1DATAP#DB4.DBX10.0BYTE10/接受数据区的数据,需要注要选用绝对寻址噫 DB 块DONE:M30.0/任务执行完成并且没有错误,该位置1BUSY:M30.1/该位为 1,代表任务未完成,
41、不能激活新任务ERROR:M30.2/通信过程中有错误发生,该位置 1STATUS:MW32/宿错误发生时,会显示错误信息号RCVD_LEN:MW34/实际接受数据的字节数%M1.2AhvaTRUE-W&4,DBX10.a数兆块,TCPRCV一图 8.调用发送和接收指令的接收和发送指令调用需要注意:程序块的 ID 要与指令 TCON 中的 ID 保持一致DATA 参数的填写方法(以 TRCV 程序块为例):1、直接输入:P#DB4.DBX10.0BYTE102、打开数据块,点击数据块右上角浮动按钮,移动数据块与 OB1 并排显示,选中数据块变量名称“TCP_RCV拖拽到 TRCV 指令
42、 DATA 参数处,该区域显示为绿色,释放鼠标即可。S7-200SMART 侧编程(服务器侧组态编程)1 . 打 开 STEP7Micro/WINSMART 项 目 树 指 令 树 库 OpenUserCommunication , 调 用TCP_CONNECT,如图 9 所示。B-.B-.1库EI-TKJModbusRTUMaster( (72C)由-迫ModbusR7UMaster:Fh-fflModbusRIUSlave(73.1psnUserCornrrwriicstiorv1.0)TCP_COMNECTISO_CONNECTUDF.CONNECTTCF.SENDTCF_HECVUDP
43、,SEMDUDF_HECVDISCONNECTr-Uitr-a“.匚0B1+沿触发:nrZUtknn9为脏劳器,被的建立倬接,R电口触点使用上于AIga界I-I/GC10.yja 步 I小3n7CP_C0NMECTENRe:qActiveConnlDPoreIPaddrlBuspIPaddriEITQIIPddrJStalusIPaddrlRffmPoitLocPort-VG00QD-VS0001-V600012-VB60O201p1A113n1i-i-0-i-02000-TCP_CONNECT调用 TCP_CONNECTEN:SM0.0使能输入Req:V6010.0如果 Req=TRUE,C
44、PU 启动连接操作。如果Req=FALSE,则输出显示连接的当前状态。使用上升沿触发Active:SM0.0 闭点/TRUE=主动连接;FALSE=被动连接ConnlD:1/CPU 使用连接 ID(ConnID)为其它指令标识该连接。可能的 ConnID 范围为0 到 65534。IPaddrl4:00/IPaddr1 是 IP 地址的最局功效字节,IPaddr4 是 IP 地址的最低有效字节。服务器侧 IP 地址写 0,表示接收所有请求RemPort:0/RemPort 是远程设备上的端口号。远程端口号范围为 1 到 49151。对于被动连接,使用零。LocPort:2000/LocPort
45、 是本地设备上的端口号。 本地端口号范围为 1 到 49151,但存在一些限制。DONE:V6000.0/当连接操作完成且没有错误时,指令置位 Done 输出。BUSY:V6000.1/当连接操作正在进行时,指令置位Busy 输出。ERROR:V6000.2/当连接操作完成但发生错误时,指令置位 Error 输出STATUS:VB6002/如果指令置位 Error 输出,Status输出会显示错误代码。如果指令置位 Busy或 Done 输出,Status 为零(无错误)图 9.指令位置及调用连接指令2 .调用 TCP_SEND 和 TCP_RCV 指令,如图 10 所示。先送数据,脑迂升沿触
46、度,D就叩t信写指针指向麴冲区首地址,垠度由D3闾次夬定注意:发送豹据端冲区地址不能与指号库的库存储区分配地批重叠TCPJENDENCALLTCP_SENDEN:SM0.5调用 TCP_SEND使能输入Req:SM0.5/如果 Req=TRUE,CPU 启动发送操作。如果 Req=FALSE,则输出显示发送操作的当前状态。ConnID:1/连接 ID(ConnID)是此发送操作所用连接的编号。使用您为 TCP_CONNECT 操作选择的 ConnID。DataLen:10/DataLen 是要发送的字节数(1 至 U1024)。DataPtr:&VB0/DataPtr 是指向待发送数据
47、的指针。这是指向 kQ、M或 V 存储器的 S7-200SMART 指针(例如,&VB100)。Done:V6000.6/当连接操作完成且没有错误时,指令置位 Done 输出。Busy:V6000.7/当连接操作正在进行时,指令置位 Busy 输出。ClockCIQGK_1H-1IHReqReqConnlDDoneWS000.6DtaLen日四-V6000.1DtaFtrError-VSODIOStatusVB6Q041-10-tVBO-Error:V6001.0/当连接操作完成但发生错误时,指令置位 Error 输出。StatusVB6004/如果指令置位 Error 输出,Stat
48、us 输出会显示错误代码。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)4接收数据,可以Eg牖1接收AbvaysOnIITCPRECVCkl111-10-aE2C00 tr4ConnlDDoneMawLenBusyDataPtrEnrolStatu#Lenath-VG001.1-V6001.2-VE0013-VB6005-VW6O06CALLTCP_RECV调用 TCP_RECVEN:SM0.0使能输入,常 1 接收ConnID:1/CPU 将连接 ID(ConnID)用于此接收操作(连接过程中定义)。MaxLen:10/MaxLen 是要接收的最大字下数(例如,Da
49、taPt 中缓冲区的大小(1 至 IJ1024)。DataPtr:&VB2000/DataPtr 是指向接收数据存储位置的指针。这是指向 I、Q、M 或 V 存储器的 S7-200SMART 指针(例如,&VB100)Done:V6001.1当接收操作完成且没有错误时,指令置位 Done 输出。当指令置位 Done 输出时,Length 输出功效。Busy:V6001.2/当接收操作正在进行时,指令置位 Busy 输出。Error:V6001.3/当接收操作完成但发生错误时,指令置位 Error 输出Status:VB6005/如果指令置位 Error 输出,Status 输出
50、会显示错误代码。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。Length:VW6006/Length 是实际接收的字节数。图 10.调用发送和接收指令3 .分配库存储区,如图 11 所示。主要i一J(D:W0RKwo( (k20(中方增功展BCPU5R60i01理空口口仔岩奈:黎至口状MHsi选项雷苓稔器帮助序存储器分函33OpenUserCommmcdtion(v1.DJ*旨专库Qp即UsrCQEEJ由ationfvlQJ需要沔字节的全局Y存储器.指定该库可使用的HM存储器量的炮址.单击建议地址以使用程序交叉引用定位具有所需太小的未使用块麓浪地址二没有蛉查是式与
51、外部使用地址重整的功能司以手引信战座存佛区茴始地拉, 如:手动给入VH5000建议地址|删除一符号VB5OT0通过VBHM9OKCanellI图 11.分配库存储区心注意:为保证指令库可以正常工作,分配库存储区的时候,一定不能与程序中使用的其他 V 区地址重叠!导人通信结果将 S7-1200 和 S7-200SMART 项目编译,下载;S7-1200 侧触发 TCON 指令的 REQ(M10.0 置位为 1),S7-200SMART 侧触发TCP_CONNECT 指令的 Req(V6010.0 置位为 1)以建立连接;通信结果如下:些怖翱犯声史班特里启坳值芒柳电”1,51aticUitrqUW
52、Urt!1Jn?Q03|gyrr。口4日产1016#口5t=3JQ16#24.弁 m 卜六?步|十六阚!广NHrjpJ2/W十六自制QjMCD十六制|3y在q卜之更制EHWZDOQ-HtjflKJ1LJMB2NE+E#UI田山+黄*制-?15.2014十六更制归S3W20C5-hrdftBlQME20D?十六电制留界却图十六话制避看即出十 E 声和73-XU的1口愕3-KUEH【用B册SO-ie#I飙友n|对口用ft9向打他勺Krj&ENDre町骑广 WByk1,*|i:dxiP.SFDiioli办re901后却r 融-中加山5/曲藤IO.CU141aTtF_RC%|1J日偿=0iTe
53、r_v|3)自沙ID1日1!&#),3/:1,U2J1CH/IF2DTCF_RCVf7日仁SDIfrSUJ-TOP.KMaByt=7JO-二4(S7-1200侧)DB4.DBB10-DB4.DBB19S7-200SMART 接收 10 个字节数据:(S7-200SMART 侧)VB2000VB2009 项 目 树 指 令 树 库 OpenUserCommunication , 调 用TCP_CONNECT,如图 1 所示。白匚J度!+温ModbusRTUMaster0)日ModbusRTUMasterS(v2.0)+1.JModbusFJTUSlave(V3L11.1OpenUserC
54、ommunealionvl.O口TCP_CaNHECTj,口ISD_COMNECTk.U&P_CaNNECTkoTCFWENDi.QTCP.FIECV:口UBP/EMD-口UtP_RECV?nDISCONNECTTCP_CONNECT调用 TCP_CONNECTEN:SM0.0/使能输入Req:V6010.0/如果 Req=TRUECPU 启动连接操作。如果 Req=FALSE 则输出显示连接的当前状态。使用上升沿触发Active:SM0.0/TRUE=主动连接;FALSE=被动连接ConnlD:1/CPU 使用连接 ID(ConnID)为其它指令标识该连接。可能的 ConnID 范围
55、为 0 到 65534。IPaddr14:00/IPaddr1 是 IP 地址的最高有效字节,IPaddr4 是 IP 地址的最低有效字节。00 为伙伴的 IP 地址RemPort:2001/RemPort 是远程设备上的端口号。 远程端口号范围为 1 到 49151。LocPort:2000/LocPort 是本地设备上的端口号。本地端口号范围为 1 到 49151,但存在一些限制。DONE:V6000.0/当连接操作完成且没有错误时,指令置位Done 输出。BUSY:V6000.1/当连接操作正在进行时,指令置位 Busy 输出。ERROR:V6
56、000.2/当连接操作完成但发生错误时,指令置位Error 输出200 师演为官户湍,土前建 2 连演,R 叫触点使用上升触发TCP_CONNECEhAvvausOrRfiq1 CcnnlDDW8-1/6OOO.O192-IFacttlBuip-J6OW.I166-IPidtt2Error-76000.2-IPdd*3Status-7BG002100-IPaddH200bRanPoit2COO-LocPoitAliMaya_OnveinIJoblpActiveSTATUS:VB6002/如果指令置位 Error 输出,Status 输出会显示错误代码。如果指令置位 Busy 或 Done 输出
57、,Status 为零(无错误)图 1.指令位置及调用连接指令2.调用 TCP_SEND 和 TCP_RCV 指令,如图 2 所示。CALLTCP_SEND调用 TCP_SENDEN:SM0.5使能输入Req:SM0.5如果 Req=TRUE,CPU 启动发送操作。如果 Req=FALSE,则输出显示发送操作的当前状态。ConnlD:1连接 ID(ConnID)是此发送操作所用连接的编号。使用您为TCP_CONNECT 操作选择的 ConnID。DataLen:10/DataLen 是要发送的字节数(1 至 U1024)。DataPtr:&VB0/DataPtr 是指向待发送数据的指针。
58、这是指向 I、Q、M 或 V 存储器的 S7-200SMART 指针(例如,&VB100)。Done:V6000.6/当连接操作完成且没有错误时,指令置位 Done 输出。Busy:V6000.7/当连接操作正在进行时,指令置位 Busy 输出。Error:V6001.0/当连接操作完成但发生错误时,指令置位 Error 输出。Clock_1sIITCP.SEND匚uCIQGK_1SI_I_IpIIII111-ncc|ConnlE?Done-V6O0C.5ICi-DataLanBujy -V60007WBO-DataPtrError-V60D1.0Status-VB6D04缓冲区首地址
59、长度由M值由夬定由区分配地址重叠发送数据,口日息意;裳送数黯罐柒器 W 舞的Status:VB6004/如果指令置位 Error 输出,Status 输出会显示错误代码。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)CALLTCP_RECV调用 TCP_RECVEN:SM0.0使能输入,常 1 接收ConnID:1/CPU 将连接 ID(ConnID)用于此接收操作(连接过程中定义)。MaxLen:10/MaxLen 是要接收的最大字下数 (例如, DataPt 中缓冲区的大小(1 到 1024)。DataPtr:&VB2000/DataPtr 是指向接收数据
60、存储位置的指针。这是指向I、Q、M 或 V 存储器的 S7-200SMART 指针(例如,&VB100)Done:V6001.1当接收操作完成且没有错误时,指令置位 Done 输出。当指令置位 Done 输出时,Length 输出功效。Busy:V6001.2/当接收操作正在进行时,指令置位 Busy 输出。Error:V6001.3/当接收操作完成但发生错误时,指令置位 Error 输出Status:VB6005/如果指令置位 Error 输出,Status 输出会显示错误代码。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。Length:VW6006/Length 是实际接收的字节数。图 2.调用发送和接收指令3.分配库存储区,如图 3 所示。接收款据,可以Em牖1接收A13*5On11TCPREC/ENConnlDDoreMLenBusyDataPtrEiroiStatusLenath10-WE加DO-V50C1.1-V6001.2-VGCC13-VB6D0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人事做个合同
- 个人租房出租合同
- 沈阳月嫂合同
- 茂业管理合同
- 派遣合同和劳务合同
- 第2课 探究世界的本质 复习课件 2026年高考政治一轮复习 必修四 哲学与文化
- 火灾事故赔偿协议书
- 合伙买车的协议书怎么写
- 协议书工程师怎么样
- 酒店万能打折卡 协议书价
- 中国机械工业集团有限公司(国机集团)招聘笔试题库2025
- 黄金区块链技术演进-深度研究
- 精酿啤酒基础知识
- 2025年主播经济合同模板
- 2025年辅警招聘考试试题库(含答案)
- 施工单位村委会和解协议书(2篇)
- 深圳市人民政府法制办公室招考专职法律顾问法律助理高频重点提升(共500题)附带答案详解
- 极氪培训课件
- 沐足行业严禁黄赌毒承诺书1
- 砍伐枯树合同范例
- 2024-2025学年北京市某中学七年级上学期期中地理试卷(含详解)
评论
0/150
提交评论