应用与工具 11/2014 S7-1500 与 S7-300/400 基于 TCP 的开放式用户通信 S7-1500 S7-300/400 以太网开放式用户通信 http://support.automation.siemens.com/cn/view/zh/105107987
目录 1. 开放式用户通信概述... 3 2. S7-1500 侧的组态编程... 4 3. S7-300 侧的组态编程... 9 2
1. 开放式用户通信概述 通过开放式用户通信 (Open User communication,ouc), S7-1200/1500 和 S7-300/400 CPU 可以使用集成的 PN/IE 接口进行数据交换 开放式用户通信的主要特点是 在所传送的数据结构方面具有高度的灵活性 这就允许 CPU 与任何通信设备进行开放 式数据交换, 通信伙伴可以是两个 SIMATIC PLC, 也可以是 SIMATIC PLC 和相应的第三方设备, 前提是这些设备支持该集成接口可用的连接类型 由于此通信仅由用户程序中的指令进行控制, 因此可以在程序中建立和终止事件驱动型连接 在运行期间, 也可以通过用户程序修改连接 对于具有集成 PN/IE 接口的 CPU, 可使用 TCP UDP 和 ISO-on-TCP 连接类型进行开放式用户通信 开放式用户通信的编程一般包括三个步骤 : 建立连接 发送接收数据 断开连接一般需要用到如下指令和 UDT: 面向连接的协议 : TCP,ISO on TCP: o UDT 65 TCON_PAR, 提供数据结构, 可以指定连接参数 o "TCON", 用于建立连接 o "TDISCON", 用于终止连接 o "TSEND", 用于发送数据 o "TRCV", 用于接收数据 无连接协议 : UDP o UDT 65 TCON_PAR, 提供数据结构, 可以指定本地通信接入点的参数 o UDT66 TADDR_PAR, 提供数据结构, 指定通信伙伴接入点的参数 o "TCON", 用于建立本地通信的接入点 o "TDISCON", 用于取消本地通信接入点 o "TUSEND", 用于发送数据 o "TURCV", 用于接收数据 对于 S7-1200/1500, 还可以通过集成的精简指令即可实现建立和终止连接并传送数据, 这样编程会更简单 o TSEND_C( 连接建立 / 终止, 发送 ) o TRCV_C( 连接建立 / 终止, 接收 ) 3
对于 S7-1500 与 S7-300/400 之间进行开放式用户通信, 根据组态编程的方式不同, 可 以分为 : 用 TIA Portal STEP 7 在同一项目下组态编程 用 TIA Portal STEP 7 在不同项目下组态编程 不同项目下分别用 TIA Portal STEP 7 V1x 组态编程 S7-1500 和用 STEP 7 V5.x 组态编程 S7-300/400 本文以不同项目下分别用 TIA Portal STEP 7 V1x 组态 S7-1500 和以经典 STEP 7V5.x 组态 S7-30/400 为例介绍如何实现 S7-1500 与 S7-300/400 的 TCP 开放式用户通信 其中所用设备及 IP 地址如图 1-1 所示 图 1-1 网络结构图 2. S7-1500 侧的组态编程本例中在 S7-1500 侧采用集成的简单指令 TSEND_C 和 TRCV_C 来实现连接关系的建立中止以及数据的发送接收 2.1 在 TIA Portal STEP 7 V13 中组态 S7-1500CPU, 为集成 PN 口分配 IP 地址 192.168.0.10, 子网掩码 255.255.255.0, 如图 2-1 所示 4
图 2-1 配置 CPU 以太网地址 2.2 在主循环程序中调用功能块 TSEND_C 编写集成发送程序, 为其分配背景数据块 如图 2-2 所示 其接口参数可以通过组态进行配置, 在 2.3 中介绍 该块在 REQ 上升沿时触发数据发送 图 2-2 调用 TCON_C 管理连接并发送数据 2.3 选中 TSEND_C 块, 在属性组态菜单中, 按如下顺序为 TSEND-C 块组态连接参数 在本例中,S7-1500 与 S7-300 不在同一项目下, 所以首先通信伙伴选择为未指定 然后新建连接数据, 系统自动分配连接数据存储在 PLC_1_Send_DB 中 选择连接类型 5
TCP, 选择组态模式为使用程序块 指定通信伙伴的 IP 地址 192.168.0.20, 指定连接 ID 为 1, 选择一方主动要建立连接, 本例中选择 S7-1500 主动建立连接 接下来定义本地 的端口号和通信伙伴端口号 本例中都选择端口号 2000 如图 2-3 所示 此处定义的端 口号和 IP 地址必须与在 S7-300 侧一致 图 2-3 配置 TSEND_C 的连接参数配置完成后, 可以打开 PLC_1_Send_DB 查看, 如图 2-4 所示, 可以看到其中包含 TCP 连接所需的参数, 并且该 PLC_1_Send_DB 作为变量已经自动填到 TSEND_C 相应的输入管脚 CONNECT 上 图 2-4 TSEND_C 的连接参数 6
2.4 在属性组态菜单中, 按照文字说明为 TSEND-C 块组态块参数, 如图 2-5 所示 本例 中,CPU 以 1Hz 频率的系统时钟周期性发送数据, 在 REQ 上升沿时激活 连接关系在 CONT 为 1 时建立并保持, 为 0 时断开 发送的地址区为 M100.0 开始的 100 个字节 具体参数含义可以选中该块并按 F1 键, 参考在线帮助 图 2-5 调用 TRCV_C 管理连接并接收数据 2.5 在主循环程序中调用功能块 TRCV_C 编写集成接收程序, 为其分配背景数据块 如图 2-6 所示 TRCV_C 接口参数的配置参考 TSEND_C 块的配置, 此处从略 其中, 连接参数可以新建, 也可以直接选择刚才通过 TSEND_C 建立的连接数据块 PLC_1_Send_DB 本例中, 选择与发送同一个连接数据块 块参数中 EN_R 参数为 1 时接收以,CONT 参数为 1 时建立保持连接, 为 0 时断开连接 接收数据存储在 M200.0 开始的 100 个字节内 7
图 2-6 调用 TRCV_C 管理连接并接收数据 2.6 完成编程组态并下载后, 可以在 S7-1500 中, 通过点击 TSEND_C 或 TRCV_C 程序块右上角的诊断图标, 进入连接在线信息页面可以查看连接状态, 如图 2-7 所示 图 2-7 在 S7-1500 中查看连接状态信息 8
3. S7-300 侧的组态编程 3.1 在 STEP7 V5.5 中组态 S7300CPU, 为其 PN 口分配 IP 地址 192.168.0.20, 子网掩码 255.255.255.0, 如图 3-1 所示 图 3-1 配置 S7-300CPU 以太网地址 3.2 通过开放式通信向导, 创建连接参数 开放式通信向导下载地址 : http://support.automation.siemens.com/cn/view/zh/98957840, 下载安装后打开向导, 定位到所创建的 S7-300 项目, 如图 3-2 所示 图 3-2 启动开放通信向导, 定位项目文件夹 3.3 点击 Next, 新建连接参数 UDT, 如图 3-3 所示 9
图 3-3 新建连接 3.4 选择连接类型, 此处选择 TCP native, 如图 3-4 所示 图 3-4 选择连接类型 10
3.5 点击 Next 至一步, 因为本例中 S7-300 与通信伙伴 S7-1500 不在同一项目下而且通信伙 伴 S7-1500 不是 S7-300/400 系列产品, 所以勾选 Only communication partner A shall be configured( 仅配置伙伴 A) 和 Communication partner B is not a S7-CPU(eg. A PC)( 通信伙伴 B 不是 S7-CPU), 如图 3-5 所示 图 3-5 选择通信伙伴 3.6 点击 Next 至下一步, 定义连接 ID 和连接名, 选择是否主动建立连接, 本例中, 已经在前面配置由 S7-1500 主动建立连接, 所以此处选择 passive( 被动 ), 选择通信所用的接口, 本例中用的是 CPU315 指定通信伙伴的 IP 地址, 与 S7-1500 侧的组态信息要一致 如图 3-6 所示 11
图 3-6 指定连接属性 3.7 指定通信双方所用端口号, 要与 S7-1500 侧组态一致, 本例中都是 2000, 如图 3-7 所示 图 3-7 指定通信端口号 12
3.8 指定 UDT65 作为存储连接参数的自定义结构名, 如图 3-8 所示 图 3-8 指定 UDT 3.9 点击 Next 完成配置, 此时在项目中会自动生成 UDT65, 其中包含了连接参数的信息, 如图 3-9 所示 图 3-9 生成 UDT 3.10 接下来创建数据块 DB1, 定义一个变量, 类型为 UDT65, 如图 3-10 所示 图 3-10 创建连接 DB 块 13
3.11 在 OB1 中编程调用 TCON 建立连接, TCON 等程序块存储在 Libraries( 库 ) Standard Library( 标准库 )---Communication Blocks( 通信块 ) 下面 当 REQ 上 升沿时触发执行 CONNECT 参数输入前面 DB1 中类型为 UDT65 的变量 connection, 如图 3-11 所示 图 3-11 调用 TCON 建立 TCP 连接 3.12 连接关系建立后, 调用 TSEND 块和 TRCV 块发送和接收数据 发送数据块 TSEND 在 REQ 上升沿时触发, 接收块 TRCV 在 EN_R 为 1 期间激活, 每一管脚的含义可参考在线帮助 如图 3-12 所示 图 3-12 在 S7-300 中发送接收数据 3.13 要想查看连接信息, 对于 S7-300, 可以通过在线查看 CPU 信息, 在 Communication 标签下, 有 Open communication via Industrial Ethernet 选项, 如图 3-13 所示 14
图 3-13 在 S7-300 中查看通信状态 点击 Diagnostics 按钮, 查看诊断信息, 如图 3-14 所示 : 图 3-14 在 S7-300 中查看连接状态 15
3.14 可以根据需要通过调用程序块 TDISCON 来断开连接 该程序块在 REQ 上升沿时断 开相应 ID 的连接并释放连接资源, 如图 3-15 所示 图 3-15 断开连接块 TDISCON 的调用 16