返回主站|会员中心|保存桌面

西门子PLC服务商    

PLC、变频器、电机,触摸屏,低压

联系方式
  • 联系人:黄经理
  • 电话:18124228889
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 西门子1200以太网通讯功能块中的CONNECT参数具体怎么使用?
新闻中心
西门子1200以太网通讯功能块中的CONNECT参数具体怎么使用?
发布时间:2025-12-03        浏览次数:5        返回列表

在西门子 S7-1200 的以太网通讯中,ConNECT 参数的核心用法是:先创建并配置 “连接结构体”(存储通信链路信息),再将该结构体赋值给 TSEND_C/TRCV_C/TCON 等功能块的 ConNECT 引脚,实现通信链路的绑定。以下是分场景的详细操作步骤(含 TCP 客户端 / 服务器、UDP,基于 TIA Portal 软件),新手可直接照搬:

一、前提准备

  1. 硬件:S7-1200 PLC(需带以太网口,如 1214C)、电脑(安装 TIA Portal)、交换机 / 网线(连接 PLC 与通信伙伴);

  2. 软件:TIA Portal(推荐 V16 及以上,需安装 S7-1200 固件对应的 GSD 文件);

  3. 明确通信需求:

    • 通信协议(TCP 或 UDP);

    • 角色(TCP 客户端 / 服务器,UDP 无主次角色);

    • 伙伴信息(IP 地址、端口号);

    • 本地端口(PLC 侧使用的端口,默认可自动分配,建议手动指定避免冲突)。

二、核心步骤:创建并配置 ConNECT 对应的 “连接结构体”

ConNECT 参数的数据类型固定为 TCON_IP_V4(IPv4 通信),需先在数据块中定义该类型变量,再配置其属性(协议、IP、端口等)。

步骤 1:创建数据块(存储连接配置)

  1. 在 TIA Portal 项目树中,右键「PLC_1」→「添加新块」→ 选择「数据块」,命名为「DB_Connection」(自定义,如 “连接配置 DB”);

  2. 数据块属性设置:「块类型」选「全局数据块」,「访问权限」设为「完全访问」,勾选「优化的块访问」(默认勾选,无需修改);

  3. 点击「确定」,打开 DB_Connection 数据块的编辑界面。

步骤 2:定义 TCON_IP_V4 类型变量

  1. 在数据块的「名称」列输入变量名(如 “TCP_Client_Conn”,对应 TCP 客户端连接);

  2. 「数据类型」列手动输入 TCON_IP_V4(或在下拉列表中搜索选择);

  3. 按同样方法,可定义多个变量(如 TCP 服务器、UDP 连接,分别命名为 “TCP_Server_Conn”“UDP_Conn”);

  4. 点击「保存」,完成变量定义(此时变量下方会显示黄色感叹号,需后续配置属性)。

步骤 3:配置结构体属性(关键!)

双击数据块中 TCON_IP_V4 类型变量的「属性」列(或右键→「属性」),打开配置界面,按通信场景填写参数:

通信场景核心配置项(TCON_IP_V4 属性)
TCP 客户端1. 「协议」:TCP;2. 「主动建立连接」:是(客户端主动发起连接);3. 「本地端口」:自定义(如 2000,需与伙伴端口不同);4. 「远程地址」:伙伴设备 IP(如 192.168.0.100);5. 「远程端口」:伙伴设备监听端口(如 3000);6. 其他默认(超时时间可设 1000ms)。
TCP 服务器1. 「协议」:TCP;2. 「主动建立连接」:否(等待客户端连接);3. 「本地端口」:自定义(如 3000,需告知客户端);4. 「远程地址 / 端口」:留空(无需指定,允许任意客户端连接);5. 其他默认。
UDP(无连接)1. 「协议」:UDP;2. 「本地端口」:自定义(如 4000);3. 「远程地址」:伙伴设备 IP(如 192.168.0.200);4. 「远程端口」:伙伴设备本地端口(如 4000);5. 「主动建立连接」:自动灰显(UDP 无需连接)。

✅ 配置技巧:

  • 端口号范围:1-65535,避免使用 1-1023(系统保留端口);

  • 若需允许多个客户端连接 TCP 服务器,需为每个连接单独定义一个 TCON_IP_V4 变量(或使用数组)。

三、分场景:调用功能块并绑定 ConNECT 参数

创建好配置好的 TCON_IP_V4 变量后,需在 OB1(主程序)中调用对应的通信功能块,将变量赋值给 ConNECT 参数,实现链路绑定。

场景 1:TCP 客户端(PLC 主动连接服务器,如连接触摸屏、其他 PLC)

需求:S7-1200(IP:192.168.0.1)作为 TCP 客户端,连接服务器(IP:192.168.0.100,端口 3000),发送 / 接收数据。

步骤 1:调用 TCON(建立 TCP 连接)
  1. 打开 OB1,在指令库中搜索「TCON」,拖拽至程序段 1;

  2. 配置 TCON 的输入输出参数:

    TCON 参数赋值内容(示例)说明
    ENTRUE(或由按钮控制,如 I0.0)使能连接指令
    CONNECTDB_Connection.TCP_Client_Conn绑定之前配置的 TCP 客户端连接结构体
    REQTRUE(或脉冲信号,如 R_TRIG (I0.0).Q)触发连接请求(脉冲信号避免重复连接)
    DISCFALSE(或由按钮控制,如 I0.1)断开连接(默认关闭)
    DONEM0.0(自定义中间变量)连接建立成功标志(TRUE = 连接成功)
    ERRORM0.1(自定义中间变量)连接错误标志(TRUE = 连接失败)
    STATUSMW10(自定义字变量)错误代码(如 8000 = 未连接,0 = 正常)
步骤 2:调用 TSEND_C(持续发送数据)
  1. 搜索「TSEND_C」,拖拽至程序段 2(需在 TCON 连接成功后使能);

  2. 配置 TSEND_C 参数:

    TSEND_C 参数赋值内容(示例)说明
    ENM0.0(TCON 的 DONE 信号,连接成功才发送)使能发送指令
    CONNECTDB_Connection.TCP_Client_Conn绑定同一连接结构体(与 TCON 一致)
    DATAP#DB_Send.DBX0.0 BYTE 10(自定义发送 DB)发送数据缓冲区(如 10 字节数据)
    LEN10(发送数据长度,与 DATA 一致)字节数(最大不超过 PLC 通信缓冲区限制)
    REQTRUE(持续发送,或脉冲控制发送频率)发送请求(TRUE = 持续发送)
    DONEM0.2(发送成功标志)TRUE = 单次发送完成
    ERRORM0.3(发送错误标志)TRUE = 发送失败
    STATUSMW12(发送状态代码)如 0 = 正常,8001 = 连接未建立
步骤 3:调用 TRCV_C(持续接收数据)
  1. 搜索「TRCV_C」,拖拽至程序段 3(与 TSEND_C 并行);

  2. 配置 TRCV_C 参数:

    TRCV_C 参数赋值内容(示例)说明
    ENM0.0(连接成功才接收)使能接收指令
    CONNECTDB_Connection.TCP_Client_Conn绑定同一连接结构体
    DATAP#DB_Receive.DBX0.0 BYTE 10(自定义接收 DB)接收数据缓冲区(与发送端长度一致)
    LEN10(接收数据长度)需与发送端 LEN 匹配
    NDRM0.4(新数据接收标志)TRUE = 接收到新数据(脉冲信号)
    ERRORM0.5(接收错误标志)TRUE = 接收失败
    STATUSMW14(接收状态代码)如 0 = 正常,8002 = 缓冲区溢出

场景 2:TCP 服务器(PLC 等待客户端连接,如多设备接入)

需求:S7-1200(IP:192.168.0.1,本地端口 3000)作为 TCP 服务器,等待客户端连接后收发数据。

步骤 1:调用 TCON(开放服务器端口)
  • 配置与 TCP 客户端类似,仅 ConNECT 参数绑定「TCP_Server_Conn」(之前配置的服务器结构体);

  • REQ 设为 TRUE(持续使能,服务器一直监听端口);

  • DONE=TRUE 时,说明服务器端口已开放,等待客户端连接。

步骤 2:调用 TSEND_C/TRCV_C
  • 与 TCP 客户端完全一致,仅 ConNECT 参数绑定「TCP_Server_Conn」;

  • 需注意:只有客户端连接成功后,TSEND_C/TRCV_C 才能正常收发数据(可通过 STATUS 代码判断连接状态)。

场景 3:UDP 通信(无连接,如广播、快速数据传输)

需求:S7-1200(IP:192.168.0.1,本地端口 4000)与伙伴(IP:192.168.0.200,端口 4000)通过 UDP 收发数据。

步骤:直接调用 TSEND_C/TRCV_C(无需 TCON)

UDP 无需建立连接,直接绑定 UDP 配置的结构体即可:

  1. TSEND_C 的 ConNECT 参数赋值为「DB_Connection.UDP_Conn」;

  2. EN 设为 TRUE(持续使能),DATA/LEN 配置与 TCP 一致;

  3. TRCV_C 的 ConNECT 参数同样赋值为「DB_Connection.UDP_Conn」,DATA/LEN 与发送端匹配;

  4. 关键:UDP 的 NDR(接收标志)触发时,需及时读取 DATA 缓冲区数据,避免被新数据覆盖。

四、关键注意事项(避坑重点)

  1. 连接结构体与功能块必须匹配

    • 同一通信链路的 TCON、TSEND_C、TRCV_C,必须绑定同一个 TCON_IP_V4 变量(如 TCP 客户端连接,三者的 ConNECT 都选 TCP_Client_Conn);

    • 若需多个独立通信链路(如同时连 2 个 TCP 服务器),需定义多个 TCON_IP_V4 变量(如 TCP_Client_Conn1、TCP_Client_Conn2),分别绑定不同功能块。

  2. 端口与 IP 配置禁忌

    • 本地端口不能与 PLC 其他以太网服务冲突(如 Web 服务器默认 80 端口、PLC 编程端口 102 端口);

    • TCP 服务器的本地端口需固定,且告知所有客户端;TCP 客户端的本地端口可自定义,也可让 PLC 自动分配(留空)。

  3. 状态代码排查

    • 若 STATUS=8000(TCON):未建立连接,检查 IP / 端口是否正确、伙伴设备是否在线;

    • 若 STATUS=8001(TSEND_C):连接未建立,等待 TCON 的 DONE=TRUE 再使能发送;

    • 若 STATUS=8002(TRCV_C):接收缓冲区溢出,增大缓冲区长度(LEN)或加快数据读取频率。

  4. 数据块与缓冲区配置

    • 发送 / 接收缓冲区(DB_Send、DB_Receive)需为 “全局数据块”,且勾选「优化的块访问」;

    • 缓冲区长度(LEN)需根据实际数据量设置(如传输 2 个 int 型数据,LEN=4 字节),不能超过 PLC 最大通信缓冲区(S7-1200 单链路最大通常为 1024 字节)。

五、测试验证步骤

  1. 下载程序到 S7-1200 PLC,启动 PLC(RUN 模式);

  2. 确保 PLC 与通信伙伴(如另一台 PLC、电脑上位机)网络连通(ping 测试 IP 是否可达);

  3. 若为 TCP 客户端:触发 TCON 的 REQ 信号(如按下 I0.0),观察 M0.0(DONE)是否为 TRUE,STATUS 是否为 0(连接成功);

  4. 连接成功后,观察 TSEND_C 的 DONE(M0.2)和 TRCV_C 的 NDR(M0.4),若频繁触发,说明数据收发正常;

  5. 若失败,通过 STATUS 代码(如 MW10、MW12)查询故障原因,针对性排查 IP、端口、链路绑定是否正确。

通过以上步骤,即可完成 ConNECT 参数的配置与使用。核心逻辑是 “先定义配置结构体,再绑定功能块”,无论 TCP 还是 UDP,都遵循这个流程,仅需调整结构体的协议和地址参数即可。如果需要具体的程序截图或某一步的详细操作,可以进一步说明!

收缩
  • QQ咨询

  • 电话咨询

  • 18124228889
  • 添加微信客服