加入收藏 在线留言 联系我们
关注微信
手机扫一扫 立刻联系商家
全国服务热线18475208684
公司新闻
西门子实例详解s7-200 smart CPU与CPU之间 TCP通信
发布时间: 2024-05-23 16:18 更新时间: 2024-11-23 08:00

图片image-20240326145354710

TCP 协议通讯介绍

TCP是一个因特网核心协议。在通过以太网通信的主机上运行的应用程序之间,TCP 提供了可靠、有序并能够进行错误校验的消息发送功能。TCP  能保证接收和发送的所有字节内容和顺序完全相同。TCP  协议在主动设备(发起连接的设备)和被动设备(接受连接的设备)之间创建连接。一旦连接建立,任一方均可发起数据传送。

TCP协议是一种"流"协议。这意味着消息中不存在结束标志。所有接收到的消息均被认为是数据流的一部分。

s7-200 smart 与 s7-200 smart之间TCP通讯实例

S7 200  SMART与之间的TCP通讯可以通过两边调用**OUC(开放式用户通讯)**指令库中的TCP_CONNECT、TCP_SEND、TCP_RECV、DISCONNECT指令来实现。

图片image-20240326112029520

  • 开放式用户通信库需要使用 50 个字节的 V 存储器。
  • 开放式的用户通讯连接资源包括8个主动连接和8个被动连接。
  • 只可从主程序或中断例程中调用库函数,但不可同时从这两个程序中调用。
  • 测试环境:

    1. 软件版本:STEP 7-Micro/WIN SMART V2.8
    2. SMART CPU固件版本:V2.6
    3. 通讯硬件:TP电缆(以太网电缆)

    硬件配置:

    序号名称IP硬件型号功能说明
    1tcp客户端192.168.0.101ST20 V2.06发送VB0~VB3数据至服务器PLC的VB2000~VB20003中
    2tcp服务端192.168.0.102ST20 V2.06接收客户端VB0~VB3数据并写入到VB2000~VB2003
    S7-200 SMART TCP 客户端编程
    1. 设置本机IP地址,客户端设置为192.168.0.101

      图片image-20240326113749026
    2. 建立TCP连接 调用TCP_CONNECT指令建立TCP连接。设置连接伙伴地址为192.168.0.102,远端端口为2001,本地端口为5000,连接标识ID为1。利用SM0.0使能Active,设置为主动连接。

      图片image-20240326132644880

      注:在建立连接时需先触发服务器端的建立连接指令,再触发客户端。

      参数说明

      参数声明数据类型描述
      ENINBOOL使能输入
      ReqINBOOLReq = TRUE,CPU 启动连接操作。
      Req = FALSE,则输出显示连接的当前状态。
      ActiveINBOOLTRUE  = 主动连接
      FALSE = 被动连接
      ConnIDINWORDCPU  使用连接 ID (ConnID) 为其它指令标识该连接。可能的 ConnID 范围为 0 到 65534。
      IPaddr1…IPaddr4INBYTE这些是  IP 地址的四个八位字节。例如:192.168.0.101对应IPaddr1=192,IPaddr4=101
      RemPortINWORDRemPort  是远程设备上的端口号。
      LocPortINWORDLocPort 是本地设备上的端口号。
      DoneOUTBOOL当连接操作完成且没有错误时,指令置位  Done 输出。
      BusyOUTBOOL当连接操作正在进行时,指令置位  Busy 输出。
      ErrorOUTBOOL当连接操作完成但发生错误时,指令置位 Error  输出。有关详细信息,请参见“开放式用户通信库指令错误代码”。
      StatusOUTBYTE如果指令置位 Error  输出,Status 输出会显示错误代码。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。

      RemPort:远程设备上的端口号

      LocPort:本地 CPU 上的端口号

    3. 有效端口号范围为 1 到 49151。
    4. 不能使用端口号 20、21、25、80、102、135、161、162、443 以及 34962 至 34964。这些端口具有特定用途。
    5. 建议采用的端口号范围为 2000 到 5000。
    6. 对于被动连接,本地端口号必须唯一(不重复)。
    7. 有效端口号范围为 1 到 49151。
    8. 建议采用的端口号范围为 2000 到 5000。
    9. 对于被动连接,CPU 会忽略远程端口号(可以将其设置为零)。
    10. 调用发送数据指令TCP_SEND 发送以VB0为起始,数据长度为DataLen长度的数据发送到连接ID为1指定的远程设备。使用1HZ脉冲触发发送请求;

      图片


    1536471552.jpg

    1539421255.jpg

    1541592146.jpg

    1544737207.jpg

    1546191112.jpg


    联系方式

    • 电  话:13922889745
    • 经理:向小姐
    • 手  机:18475208684
    • 微  信:18475208684