S7200SMART通讯问题-以及太网设置.doc
《S7200SMART通讯问题-以及太网设置.doc》由会员分享,可在线阅读,更多相关《S7200SMART通讯问题-以及太网设置.doc(170页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、一:一:TCPTCP 协议通讯协议通讯(一)(一)S7S7 200200 SMARTSMART 之间的之间的 TCPTCP 通讯通讯TCP 是一个因特网核心协议。在通过以太网通信的主机上运行的应用程序之间,TCP 提供了可靠、有序并能够进行错误校验的消息发送功能。TCP 能保证接收和发送的所有字 节内容和顺序完全相同。TCP 协议在主动设备(发起连接的设备)和被动设备(接受连接 的设备)之间创建连接。一旦连接建立,任一方均可发起数据传送。TCP 协议是一种“流“协议。这意味着消息中不存在结束标志。所有接收到的消息均被 认为是数据流的一部分。S7 200 SMART 与之间的 TCP 通讯可以通
2、过两边调用 OUC(开放式用户通讯)指令库中的 TCP_CONNECT、TCP_SEND、TCP_RECV、DISCONNECT 指令来实现。图 1.开放式用户通讯库开放式用户通信库需要使用 50 个字节的 V 存储器。开放式的用户通讯连接资源包括 8 个主动连接和 8 个被动连接。只可从主程序或中断例程中调用库函数,但不可同时从这两个程序中调用。所需条件:所需条件:1、软件版本:STEP 7-Micro/WIN SMART V2.22、SMART CPU 固件版本:V2.23、通讯硬件:TP 电缆(以太网电缆)所完成的通讯任务:所完成的通讯任务:将作为客户端的 PLC(IP 地址为 192.
3、168.0.101)中 VB0-VB3 的数据传送到作为服务 器端的 PLC(IP 地址为 192.168.0.102)的 VB2000-VB2003 中。S7-200S7-200 SMARTSMART 客户端编程客户端编程1 1、设置本机、设置本机 IPIP 地址地址在客户端设置 IP 地址为 192.168.0.101图 2.设置 IP 地址2 2、建立、建立 TCPTCP 连接连接调用 TCP_CONNECT 指令建立 TCP 连接。设置连接伙伴地址为 192.168.0.102,远端端 口为 2001,本地端口为 5000,连接标识 ID 为 1。利用 SM0.0 使能 Active,
4、设置为主动连 接。图 3.调用 TCP_CONNECT 指令指令的参数指令的参数输入参数:输入参数:EN :使能输入Req:沿触发Active :TURE=主动连接(客户端)FALSE=被动连接(服务器)ConnID:连接 ID 为连接标识符,可能范围为 0-65534。IPaddr1 . IPaddr4 : :IP 地址的四个八位字节。IPaddr1 是 IP 地址的最高有效字 节,IPaddr4 是 IP 地址的最低有效字节。RemPort:远程设备上的端口号。远程端口号范围为 1 到 49151。对于被动连接,可 使用零。LocPort :本地设备端口号。范围为 1-49151,但是存在
5、一些限制。本地端口号的规则如下:有效端口号范围为 1 到 49151。不能使用端口号 20、21、25、80、102、135、161、162、443 以及 34962 至 34964。这些端口具有特定用途。建议采用的端口号范围为 2000 到 5000。对于被动连接,本地端口号必须唯一(不重复) 。输出参数:输出参数:Done:当连接操作完成且没有错误时,指令置位 Done 输出。Busy: 当连接操作正在进行时,指令置位 Busy 输出。Error:当连接操作完成但发生错误时,指令置位 Error 输出。 Status:如果指令置位 Error 输出,Status 输出会显示错误代码。具体错
6、误代码对 应详见手册。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。3 3、调用发送数据指令、调用发送数据指令 TCP_SENDTCP_SEND调用 TCP_SEND 指令发送以 VB0 为起始,数据长度为 DataLen 长度的数据发送到连接 ID 为 1 指定的远程设备。利用 1HZ 的时钟上升沿触发发送请求。图 4.调用 TCP_SEND 指令指令的参数指令的参数输入参数:输入参数:EN :使能输入Req:沿触发ConnID:连接 ID (ConnID) 是此发送操作的连接 ID 号。DataLen :DataLen 是要发送的字节数(1 到 1024)。Da
7、taPtr:DataPtr 是指向待发送数据的指针。输出参数:输出参数:Done:当连接操作完成且没有错误时,指令置位 Done 输出。Busy: 当连接操作正在进行时,指令置位 Busy 输出。Error:当连接操作完成但发生错误时,指令置位 Error 输出。 Status:如果指令置位 Error 输出,Status 输出会显示错误代码。具体错误代码对 应详见手册。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。4 4、终止通讯连接、终止通讯连接用户可通过 DISCONNECT 指令终止指定 ID 的连接。图 5.调用 DISCONNECT 指令参数说明:参数说
8、明:输入参数输入参数:EN :使能Req:沿触发指令。输出参数:输出参数:Done:当连接操作完成且没有错误时,指令置位 Done 输出。Busy: 当连接操作正在进行时,指令置位 Busy 输出。Error:当连接操作完成但发生错误时,指令置位 Error 输出。 Status:如果指令置位 Error 输出,Status 输出会显示错误代码。具体错误代码对 应详见手册。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。5 5、分配库存储区、分配库存储区开放式用户通信库需要使用 50 个字节的 V 存储器,用户需手动分配 。在指令树的 程序中,以鼠标右键单击程序块,在
9、弹出的快捷菜单中选择库存储器。如图所示:图 6.库存储器在弹出的选项卡中设置库指令数据区:图 7.分配地址S7-200S7-200 SMARTSMART 服务器端编程服务器端编程1 1、设置本机、设置本机 IPIP 地址地址设置 IP 地址为 192.168.0.102图 8.设置本机 IP 地址2 2、建立、建立 TCPTCP 连接连接调用 TCP_CONNECT 指令建立 TCP 连接。设置连接伙伴地址为 192.168.0.101,远端端 口为 5000,本地端口为 2001,连接标识 ID 为 1。利用 SM0.0 常闭点使能 Active,设置为 被动连接。图 9.调用 TCP_CO
10、NNECT 指令3 3、接收数据、接收数据调用 TCP_RECV 指令接收指定 ID 连接的的数据。接收的缓冲区长度为 MaxLen,数据接 收缓冲区以 VB2000 为起始。图 11.调用 TCP_RECV 指令监控结果监控结果其中客户端的 VW1000 是发送的数据长度,服务器端的 vw1000 是接收的数据长度。图 12.监控结果例程例程为了更好地理解 TCP 的编程,可参考下面的例程。注意:注意:1. 该例程使用 STEP 7-Micro/WIN SMART 编写。2.在建立连接时需先触发服务器端的建立连接指令,再触发客户端。TCP 客户端程序TCP 服务器端程序注意:注意:此指令库/
11、程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软 件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线 支持,用户不必为 此联系西门子技术支持与服务部门。(二)(二)S7-200 SMART 与调试助手之间与调试助手之间 TCP 通信通信TCP 协议通讯协议通讯TCP 通信为面向连接的通信,需要双方都调用指令以建立连接及交换数据。S7-200 SMART 与 TCPFALSE = 被动连接ConnID:1/ CPU 使用连接 ID (ConnID) 为其它指令 标识该连接。可能的 ConnID 范围为 0 到 65534。IPaddr14:00/IP
12、addr1 是 IP 地址的最高有效字节, IPaddr4 是 IP 地址的最低有效字节。服务 器侧 IP 地址写 0,表示接收所有请求RemPort:0/RemPort 是远程设备上的端口号。远程端 口号范围为 1 到 49151。对于被动连接, 使用零。LocPort:2000/ LocPort 是本地设备上的端口号。本地端 口号范围为 1 到 49151,但存在一些限制。DONE:V6000.0/ 当连接操作完成且没有错误时,指令置位 Done 输出。BUSY:V6000.1/ 当连接操作正在进行时,指令置位 Busy 输出。ERROR:V6000.2/ 当连接操作完成但发生错误时,指令
13、置位 Error 输出STATUS:VB6002/ 如果指令置位 Error 输出,Status 输出会 显示错误代码。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)2.调用调用 TCP_SEND 和和 TCP_RCV 指令,如图指令,如图 7、图、图 8 所示。所示。图 7. TCP 发送块表 2.引脚说明CALL TCP_SEND/调用 TCP_SENDEN:SM0.5/使能输入Req:SM0.5/如果 Req = TRUE,CPU 启动发送操作。如果 Req = FALSE,则输出显示发送操作的当前状态。ConnID:1/连接 ID (ConnID) 是此发送操
14、作所用连接的编号。使用 您为 TCP_CONNECT 操作选择的 ConnID。DataLen:10/DataLen 是要发送的字节数(1 到 1024) 。DataPtr:FALSE = 被动连 接ConnID:1/ CPU 使用连接 ID (ConnID) 为其它 指令标识该连接。可能的 ConnID 范围为 0 到 65534。IPaddr14:00/IPaddr1 是 IP 地址的最高有效字节, IPaddr4 是 IP 地址的最低有效字节。服务 器侧 IP 地址写 0,表示接收所有请求RemPort:0/RemPort 是远程设备上的端口号。远 程端口号范围为 1 到 49151。对
15、于被动连 接,使用零。LocPort:2000/ LocPort 是本地设备上的端口号。本 地端口号范围为 1 到 49151,但存在一些 限制。DONE:V6000.0/ 当连接操作完成且没有错误时,指令 置位 Done 输出。BUSY:V6000.1/ 当连接操作正在进行时,指令置位 Busy 输出。ERROR:V6000.2/ 当连接操作完成但发生错误时,指令 置位 Error 输出STATUS:VB6002/ 如果指令置位 Error 输出,Status 输出会显示错误代码。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)图 9. 指令位置及调用连接指令2.调用
16、调用 TCP_SEND 和和 TCP_RCV 指令,如图指令,如图 10 所示。所示。CALL TCP_SEND/调用 TCP_SENDEN:S M0.5/使能输入Req:S M0.5/如果 Req = TRUE,CPU 启动发送操作。如果 Req = FALSE,则输出显示发送操作的当前状态。ConnID:1/连接 ID (ConnID) 是此发送操作所用连接的编号。使用 您为 TCP_CONNECT 操作选择的 ConnID。DataLe n:10/DataLen 是要发送的字节数(1 到 1024) 。DataPtr:FALSE = 被动连接ConnID:1/ CPU 使用连接 ID (
17、ConnID) 为其它指令标 识该连接。可能的 ConnID 范围为 0 到 65534。IPaddr14: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:
18、V6000.1/ 当连接操作正在进行时,指令置位 Busy 输出。ERROR:V6000.2/ 当连接操作完成但发生错误时,指令置位 Error 输出STATUS:VB6002/ 如果指令置位 Error 输出,Status 输出会显示 错误代码。如果指令置位 Busy 或 Done 输出, Status 为零(无错误)图 1. 指令位置及调用连接指令2.调用调用 TCP_SEND 和和 TCP_RCV 指令,如图指令,如图 2 所示。所示。CALL TCP_SEND/调用 TCP_SENDEN:S M0.5/使能输入Req:S M0.5/如果 Req = TRUE,CPU 启动发送操作。如果
19、 Req = FALSE,则输出显示发送操作的当前状态。ConnID:1/连接 ID (ConnID) 是此发送操作所用连接的编号。使 用您为 TCP_CONNECT 操作选择的 ConnID。DataLen:10/DataLen 是要发送的字节数(1 到 1024) 。DataPtr:FALSE = 被动连接ConnID:1/ CPU 使用连接 ID (ConnID) 为其它指令标识该 连接。可能的 ConnID 范围为 0 到 65534。IPaddr14:00/IPaddr1 是 IP 地址的最高有效字节,IPaddr4 是 IP 地址的最低有效字节。服务器侧 IP 地址写 0,表 示接
20、收所有请求RemPort:0/RemPort 是远程设备上的端口号。远程端口号范 围为 1 到 49151。对于被动连接,使用零。LocPort:2000/ LocPort 是本地设备上的端口号。本地端口号范 围为 1 到 49151,但存在一些限制。DONE:V6000.0/ 当连接操作完成且没有错误时,指令置位 Done 输出。BUSY:V6000.1/ 当连接操作正在进行时,指令置位 Busy 输出。ERROR:V6000.2/ 当连接操作完成但发生错误时,指令置位 Error 输出STATUS:VB6002/ 如果指令置位 Error 输出,Status 输出会显示 错误代码。如果指令
21、置位 Busy 或 Done 输出, Status 为零(无错误)图 8. 指令位置及调用连接指令2.调用调用 TCP_SEND 和和 TCP_RCV 指令,如图指令,如图 9 所示。所示。CALL TCP_SEND/调用 TCP_SENDEN:SM0.5/使能输入Req:SM0.5/如果 Req = TRUE,CPU 启动发送操作。如果 Req = FALSE,则输出显示发送操作的当前状态。ConnID:1/连接 ID (ConnID) 是此发送操作所用连接的编号。 使用您为 TCP_CONNECT 操作选择的 ConnID。DataLen:10/DataLen 是要发送的字节数(1 到 1
22、024) 。DataPtr:FALSE = 被动连接ConnID:1/ CPU 使用连接 ID (ConnID) 为其它指令标 识该连接。可能的 ConnID 范围为 0 到 65534。IPaddr14:192.168. 0.101/IPaddr1 是 IP 地址的最高有效字节, IPaddr4 是 IP 地址的最低有效字节。 192.168.0.101 为伙伴的 IP 地址RemPort:2000/RemPort 是远程设备上的端口号。远程端口 号范围为 1 到 49151。LocPort:2000/ LocPort 是本地设备上的端口号。本地端口 号范围为 1 到 49151,但存在一些
23、限制。DONE:V6000.0/ 当连接操作完成且没有错误时,指令置位 Done 输出。BUSY:V6000.1/ 当连接操作正在进行时,指令置位 Busy 输出。ERROR:V6000.2/ 当连接操作完成但发生错误时,指令置位 Error 输出STATUS:VB6002/ 如果指令置位 Error 输出,Status 输出会 显示错误代码。如果指令置位 Busy 或 Done 输 出,Status 为零(无错误)图 1. 指令位置及调用连接指令2.调用调用 TCP_SEND 和和 TCP_RCV 指令,如图指令,如图 2 所示。所示。CALL TCP_SEND/调用 TCP_SENDEN:
24、SM0.5/使能输入Req:SM0.5/如果 Req = TRUE,CPU 启动发送操作。如果 Req = FALSE,则输出显示发送操作的当前状态。ConnID:1/连接 ID (ConnID) 是此发送操作所用连接的编号。使用 您为 TCP_CONNECT 操作选择的 ConnID。DataLen:10/DataLen 是要发送的字节数(1 到 1024) 。DataPtr:FALSE = 被动连接ConnID:1/ CPU 使用连接 ID (ConnID) 为其它指令标识该连接。 可能的 ConnID 范围为 0 到 65534。IPaddr14:00/IPaddr1 是 IP 地址的最
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- S7200SMART 通讯 问题 以及 设置
限制150内