S7200SMART通讯问题-以及太网设置.doc

上传人:一*** 文档编号:809497 上传时间:2019-07-16 格式:DOC 页数:170 大小:4.98MB
返回 下载 相关 举报
S7200SMART通讯问题-以及太网设置.doc_第1页
第1页 / 共170页
S7200SMART通讯问题-以及太网设置.doc_第2页
第2页 / 共170页
点击查看更多>>
资源描述

《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 地址的最

25、高有效字节,IPaddr4 是 IP 地址的最低有效字节。服务器侧 IP 地址写 0,表示接收所 有请求RemPort:0/RemPort 是远程设备上的端口号。远程端口号范围 为 1 到 49151。对于被动连接,使用零。LocPort:200 0/ LocPort 是本地设备上的端口号。本地端口号范围为 1 到 49151,但存在一些限制。DONE:V60 00.0/ 当连接操作完成且没有错误时,指令置位 Done 输 出。BUSY:V60 00.1/ 当连接操作正在进行时,指令置位 Busy 输出。ERROR:V60 00.2/ 当连接操作完成但发生错误时,指令置位 Error 输 出S

26、TATUS:VB6 002/ 如果指令置位 Error 输出,Status 输出会显示错误 代码。如果指令置位 Busy 或 Done 输出,Status 为零 (无错误)图 8. 指令位置及调用连接指令2.调用调用 TCP_SEND 和和 TCP_RCV 指令,如图指令,如图 9 所示。所示。CALL TCP_SEND/调用 TCP_SENDEN:S M0.5/使能输入Req:S M0.5/如果 Req = TRUE,CPU 启动发送操作。如果 Req = FALSE,则输出显示发送操作的当前状态。ConnID:1/连接 ID (ConnID) 是此发送操作所用连接的编号。使用 您为 TCP

27、_CONNECT 操作选择的 ConnID。DataLe n:10/DataLen 是要发送的字节数(1 到 1024) 。DataPtr:FALSE = 被动连接ConnID:1/ CPU 使用连接 ID (ConnID) 为其它指令标 识该连接。可能的 ConnID 范围为 0 到 65534。IPaddr14:192.168. 0.102/IPaddr1 是 IP 地址的最高有效字节, IPaddr4 是 IP 地址的最低有效字节。 192.168.0.102 为伙伴的 IP 地址RemPort:2000/RemPort 是远程设备上的端口号。远程端口 号范围为 1 到 49151。Lo

28、cPort:2000/ LocPort 是本地设备上的端口号。本地端口 号范围为 1 到 49151,但存在一些限制。DONE:V6000.0/ 当连接操作完成且没有错误时,指令置位 Done 输出。BUSY:V6000.1/ 当连接操作正在进行时,指令置位 Busy 输出。ERROR:V6000.2/ 当连接操作完成但发生错误时,指令置位 Error 输出STATUS:VB6002/ 如果指令置位 Error 输出,Status 输出会 显示错误代码。如果指令置位 Busy 或 Done 输 出,Status 为零(无错误)图 1. 指令位置及调用连接指令2.调用调用 TCP_SEND 和和

29、 TCP_RCV 指令,如图指令,如图 2 所示。所示。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:&V B0/DataPtr 是指向待发送数据的指针。这是指向 I、Q、M 或 V 存储器的 S7-2

30、00 SMART 指针(例如,VB100) 。Done:V6 000.6/ 当连接操作完成且没有错误时,指令置位 Done 输出。Busy:V6 000.7/ 当连接操作正在进行时,指令置位 Busy 输出。Error:V6 001.0/ 当连接操作完成但发生错误时,指令置位 Error 输出。Status:VB 6004/ 如果指令置位 Error 输出,Status 输出会显示错误代 码。如果指令置位 Busy 或 Done 输出,Status 为零(无错 误)CALL TCP_RECV/调用 TCP_RECVEN:SM 0.0/使能输入,常 1 接收ConnID:1/CPU 将连接 ID

31、 (ConnID) 用于此接收操作(连接过 程中定义)MaxLen:10/ MaxLen 是要接收的最大字节数(例如,DataPt 中缓 冲区的大小(1 到 1024) ) 。DataPtr:&V B2000/ DataPtr 是指向接收数据存储位置的指针。这是指向 I、Q、M 或 V 存储器的 S7-200 SMART 指针(例如, VB100)Done:V60 01.1/当接收操作完成且没有错误时,指令置位 Done 输出。 当指令置位 Done 输出时,Length 输出有效。Busy:V60 01.2/ 当接收操作正在进行时,指令置位 Busy 输出。Error:V60 01.3/ 当

32、接收操作完成但发生错误时,指令置位 Error 输出Status:VB6 005/ 如果指令置位 Error 输出,Status 输出会显示错误 代码。如果指令置位 Busy 或 Done 输出,Status 为零 (无错误) 。Length:VW 6006/Length 是实际接收的字节数。图 2. 调用发送和接收指令3.分配库存储区,如图分配库存储区,如图 3 所示。所示。图 3. 分配库存储区注意:为保证指令库可以正常工作,分配库存储区的时候,一定不能与程序中使用注意:为保证指令库可以正常工作,分配库存储区的时候,一定不能与程序中使用 的其他的其他 V 区地址重叠!区地址重叠!S7-30

33、0 侧硬件组态和编程侧硬件组态和编程 ( 服务器侧组态编程服务器侧组态编程 )1. 使用使用 TIA V13 SP1 Upd 9 软件软件 Portal 视图中,创建新项目视图中,创建新项目2. 添加硬件并命名添加硬件并命名 PLC进入 “项目视图”,在“项目树” 下双击 “添加新设备”,在对话框中选择所使用的 S7- 300 CPU 添加到机架上,命名为 PLC_2 如图 4 所示图 4. 添加新设备3. 启用时钟位启用时钟位为了编程方便,使用 CPU 属性中定义的时钟位,定义方法如下: 在 “项目树” “PLC_2” “设备组态” 中,选中 CPU ,然后在下面的属性窗口中,“属性” “时

34、钟存储器” 下,将时钟位定义在 MB0,如图 5 所示。 时钟位我们使用 M0.7 ,它是频率为 0.5 Hz 的脉冲,可以使用它去自动激活发送任务。图 5.启用时钟位4. 组态组态 CP 343-1 并为通信口分配以太网地址并为通信口分配以太网地址在“项目树” “ PLC_2” 设备视图硬件目录通信模块PROFINET/以太网CP 343- 1,选中并拖拽 6GK7 343-1EX30-0XE0 到相应插槽,点击 CP 343-1 上代表 PROFINET 通信口的绿色小方块,在下方会出现 PROFINET 接口的属性,在 “以太网地 址” 下分配 CP 343-1 的 IP 地址为 192

35、.168.0.102 ,子网掩码为 255.255.255.0,如图 6 所示图 6.为 CP 343-1 分配 IP 地址5.网络组态网络组态 TCP 连接及配置通信参数连接及配置通信参数打开网络视图,检查连接类型为 TCP 连接,鼠标点中 PLC_2 上 CP343-1 的 PROFINET 通信口的绿色小方框,拖拽出一条浅绿色的虚线,松开鼠标;再次回到 CP343-1 的通信口上出现可建立连接图标,双击通信口,连接已创建,高亮显示连接图标 ,如图 7 所示图 7. 配置 TCP 连接及参数填写6.创建用于交换数据的全局创建用于交换数据的全局 DB 块及定义变量块及定义变量通过“项目树”“

36、PLC_2”“程序块”“添加新块”,选择“数据块” 创建全局 DB 块,点击 “确定” 生成数据块。如图 8 所示。S7-300 生成的数据块都是非优化的数据块,不用单独 设置。图 8.添加新块双击生成的 “数据块_1” ( DB5 ) ,定义数组,10 个字节用于发送,10 个字节用于接 收,然后编译数据块。结果如图 9 所示。图 9. 定义交换数据区7.在在 OB1 中调用中调用 AG_SEND 和和 AG_RECV进入 “项目树” “ PLC_2” “程序块” “OB1” 主程序中,从右侧窗口 “指令” “通信” “通信处理器” “Simatic NET CP”下调用 AG_SEND 和

37、 AG_RECV 指令,调用结果如图 10 所示。图 10. 调用发送和接收指令接收和发送指令调用需要注意:接收和发送指令调用需要注意:程序块的 ID 要与网络视图建立 TCP 连接中设置的 ID 保持一致。SEND 和 RECV 为交换数据缓冲区 参数的填写方法 ( 以 AG_RECV 程序块为例 ):1、直接输入 : P#DB5.DBX10.0 BYTE 102、打开数据块,点击数据块右上角浮动按钮,移动数据块与 OB1 并排显示,选中数据块变量名称 “ TCP_RCV ” 拖拽到 AG_RECV 指令 RECV 参数处,该 区域显示为绿色,释放鼠标即可。通信结果通信结果将 S7-300

38、和 S7-200 SMART 程序编译,下载 ;S7-200 SMART 侧触发 TCP_CONNECT 指令的 Req (V6010.0 置位为 1 )以建 立连接 ;通信结果如下:(九)开放式以太网常见问题(九)开放式以太网常见问题常见问题常见问题1 1、IPIP 地址是否可以设置为地址是否可以设置为 0.0.0.00.0.0.0?答:答:只可在服务器端将 IP 地址设置为 0.0.0.0,此时 S7-200 SMART CPU 接受来自任 何远程 IP 地址的连接。如果设置为非零地址,则 CPU 只接受指定 IP 地址的连接。客户端不可设置为 0.0.0.0。另,IP 地址不能设置为:(

39、1)任何广播 IP 地址(例如,255.255.255.255) (2)任何多播地址 (3)本地 CPU 的 IP 地址2 2、客户端建立连接需要多长时间?、客户端建立连接需要多长时间?答:答:最多 30s,客户端可能最多需要 30 秒的时间来确定远程设备是否允许连接。此时服务器端显示 Busy 置位,直到连接建立。3 3、连接断开之后会自动恢复连接么?、连接断开之后会自动恢复连接么?答:答:连接关闭后,S7-200 SMART 不会自动尝试重新连接到设备。如果远程设备断开设 备连接,您的程序必须执行另一个 TCP_CONNECT 指令以重新连接设备。主动连接和被动连 接皆如此。4 4、为什么

40、、为什么 ERRORERROR 显示显示 2424 号错误?号错误?答:答:24 号表示目前没有操作正在进行。表示空闲状态。二二:ISO:ISO onon TCPTCP 通讯通讯( (一一) ) S7-200S7-200 SMARTSMART 与之间的与之间的 ISO-on-TCPISO-on-TCP 通讯通讯ISO-on-TCP 是一种使用 RFC 1006 的协议扩展。ISO-on-TCP 的主要优点是数据有一 个明确的结束标志,可以知道何时接收到了整条消息。S7 协议 (Put/Get) 使用了 ISO- on-TCP 协议。ISO-on-TCP 仅使用 102 端口,并利用 TSAP(

41、传输服务访问点)将消息路 由至适当接收方(而非 TCP 中的某个端口)。S7-200 SMART 与之间的 ISO-on-TCP 通讯可以通过两边调用 OUC(开放式用户通讯)指令 库中的 ISO_CONNECT、TCP_SEND、TCP_RECV、DISCONNECT 指令来实现。图 1.开放式用户通讯库开放式用户通信库需要使用 50 个字节的 V 存储器。开放式的用户通讯连接资源包括 8 个主动连接和 8 个被动连接。只可从主程序或中断例程中调用库函数,但不可同时从这两个程序中调用。所需条件:所需条件:1、软件版本:STEP 7-Micro/WIN SMART V2.22、SMART CP

42、U 固件版本:V2.23、通讯硬件:TP 电缆(以太网电缆)4、PC(带以太网卡)所完成的通讯任务:所完成的通讯任务:将作为服务器端(192.168.0.102)的 V3000-VB3003 的数据传送到客户端 (192.168.0.101)的 VB3000-VB3003 内。S7-200S7-200 SMARTSMART 客户端编程客户端编程1 1、设置客户端的、设置客户端的 IPIP 地址地址设置 IP 地址为 192.168.0.101图 2.设置 IP 地址2 2、建立、建立 ISO-on-TCPISO-on-TCP 连接连接调用 ISO_CONNECT 指令建立 ISO 连接。设置连

43、接伙伴地址为 192.168.0.102,连接标 识 ID 为 1,本地和远端的 TSAP 要交叉对应。TSAP 不能少于三个字符。利用 SM0.0 使能 Active,设置为主动连接。图 3.建立 ISO-on-TCP 连接指令的参数指令的参数输入参数:输入参数:EN :使能输入Req:沿触发Active :TURE=主动连接(客户端) FALSE=被动连接(服务器)ConnID:连接 ID 为连接标识符,可能范围为 0-65534IPaddr1 . IPaddr4 :IP 地址的四个八位字节。IPaddr1 是 IP 地址的最高有效字 节,IPaddr4 是 IP 地址的最低有效字节。Re

44、mTsap:RemPort 是远程 TSAP 字符串。LocTsap :LocPort 是本地 TSAP 字符串。输出参数:输出参数:Done:当连接操作完成且没有错误时,指令置位 Done 输出。Busy: 当连接操作正在进行时,指令置位 Busy 输出。Error:当连接操作完成但发生错误时,指令置位 Error 输出。 Status:如果指令置位 Error 输出,Status 输出会显示错误代码。具体错误代码对 应详见手册 。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。3 3、接收数据、接收数据将数据接收缓冲区设为 4 个字节,接收数据缓冲区以 VB300

45、0 起始。图 4.调用 TCP_RECV 指令指令的参数指令的参数输入参数:输入参数:EN :使能输入ConnID:连接 ID (ConnID) 是此发送操作的连接 ID 号。MaxLen :接收的最大字节数(1 到 1024)。DataPtr :指向接收数据存储位置的指针。输出参数:输出参数:Length :实际接收的字节数。仅当指令置位 Done 或 Error 输出时,Length 才有效。 如果指令置位 Done 输出,则指令接收整条消息。如果指令置位 Error 输出,则消息超出 缓冲区大小 (MaxLen) 并被截短。4 4、终止通讯连接、终止通讯连接用户可通过 DISCONNEC

46、T 指令终止指定 ID 的连接。图 5.调用 DISCONNECT 指令参数说明:参数说明:输入参数输入参数:EN :使能Req:沿触发。输出参数:输出参数:Done:当连接操作完成且没有错误时,指令置位 Done 输出。Busy: 当连接操作正在进行时,指令置位 Busy 输出。Error:当连接操作完成但发生错误时,指令置位 Error 输出。 Status:如果指令置位 Error 输出,Status 输出会显示错误代码。具体错误代码对 应详见手册。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。5 5、分配库存储区、分配库存储区开放式用户通信库需要使用 50

47、个字节的 V 存储器,用户需手动分配 。在指令树的 程序中,以鼠标右键单击程序块,在弹出的快捷菜单中选择库存储器。如图所示:图 6.库存储器在弹出的选项卡中设置库指令数据区:图 7.分配地址S7-200S7-200 SMARTSMART 服务器端编程服务器端编程1 1、设置服务器的、设置服务器的 IPIP 地址地址设置 IP 地址为 192.168.0.102图 8.设置 IP 地址2 2、建立、建立 ISO-on-TCPISO-on-TCP 连接连接调用 ISO_CONNECT 指令建立 ISO 连接。设置连接伙伴地址为 192.168.0.101,连接标 识 ID 为 1,本地和远端的 T

48、SAP 要交叉对应。TSAP 不能少于三个字符。利用 SM0.0 常闭点使能 Active,设置为被动连接。图 9.建立连接3 3、发送数据、发送数据调用 TCP_SEND 指令将以 VB3000 为起始,数据长度为 4 字节的数据发送到连接 ID 为 1 指定的远程设备。利用 1HZ 的时钟上升沿触发发送请求。图 10.调用 TCP_SEND 指令指令的参数指令的参数输入参数:输入参数:EN :使能输入Req:沿触发ConnID:连接 ID (ConnID) 是此发送操作的连接 ID 号。DataLen :DataLen 是要发送的字节数(1 到 1024)。DataPtr:DataPtr 是指向待发送数据的指针。输出参数:输出参数:Done:当连接操作完成且没有错误时,指令置位 Done 输出。Busy: 当连接操作正在进行时,指令置位 Busy 输出。Error:当连接操作完成但发生错误时,指令置位 Error 输出。 Status:如果指令置位 Error 输出,Status 输出会显示错误代码。具体的错误代码 详见手册 。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。监控结果监控结果图 11.监控结果例程例程为了更好地理解 ISO-on-TCP 的编程,可参考下面的例程。注意:注意:1. 该例程使用 ST

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com