长治西门子代理商
长治西门子代理商
一、S7 Open IE通讯概述
可以通过S7-300/400 PLC集成的 PROFINET 接口使用基于工业以太网的开放式通信与Simotion设备进行数据交换,下列通信协议支持开放式通讯:
• TCP
• UDP
PLC 通过工业以太网 OPEN IE 通信方式下的 UDP 协议进行数据交换,需要使用以下程序块:
• FB65 "TCON" 用于建立 UDP 端点
• FB66 "TDISCON" 用于断开 UDP 端点
• FB67 "TUSEND" 用于发送数据
• FB68 "TURCV" 用于接收数据
这些通信功能块可以在函数库 Standard Library -> Communication Blocks 中找到。 用于连接 UDP 端点的参数存储于一个数据结构体中。在这个例子中,数据结构体 UDT65 "TCON_PAR" 将被使用,用户将对这个数据结构体进行参数化。不需要在 NetPro 中配置通信连接。
S7-300/400 CPU 集成工业以太网口以 OPEN IE 的通信方式实现UDP 连接的通信程序示例请从下述链接中下载 :31938422
二、S7 Open IE通讯下载示例程序描述
从上述链接中下载的例程中,S7 程序中包括 FB65 "TCON" 的调用及带有 UDP 连接端点参数的数据结构体 UDT65 "TCON_PAR"。S7 程序中还包含函数库 Standard Library -> Communication Blocks 中函数 FB67 "TUSEND" and FB68 "TURCV" 的调用,FB67 "TUSEND" 用于将数据发送给一个 S7 站,一个 PC 站或第三方系统。FB68 "TURCV" 用于接收一个 S7 站,一个 PC 站或第三方系统发送的数据。
首先在硬件配置中生成 S7-300 站,在这里将 MB10 作为脉冲时钟,通过脉冲时钟发送数据。存盘编译并将硬件配置下载到 CPU 中。
STEP 7 程序包含程序块 OB100、OB1、 FB500 、 DB500、 FC95、 FC96、 UDT65、 UDT66 、 FB63、 FB64、 FB67 和 FB68。
OB100:
OB100 在 CPU 重新运行时执行一次(暖起动)。在这个 OB 块中*次的通信通过 M0.3 "START-UP" 触发。
OB1:
OB1 循环执行,FB500 (背景数据块:DB500) 在 OB1 中调用,使用 M0.3 "START-UP" 对 INIT_COM 赋值.,在 OB1 结束前将 M0.3 "START-UP" 复位。
图. 01: OB1
FB500:
FB500 在 OB1 中循环调用。在这个 FB 中调用 FC95 "SET_UDP_REMOTE" ,FC96 "SET_UDP_ENDPOINT" 及 FB65 "TCON", FB67 "TUSEND", FB68 "TURCV" 和 FB66 "TDISCON"。
通过 FC95 "SET_UDP_ENDPOINT" 定义本地 UDP 端点连接参数,下列参数需要考虑:
• ID: 连接 ID
• DEV_ID:
DEV_ID = B#16#2 用于 CPU 31x-2PN/DP
DEV_ID = B#16#3 用于 CPU 319-3PN/DP
DEV_ID = B#16#5 用于 CPU 41x-3PN/DP
• LOC_PORT: CPU 中的本地端口号
图. 02: 调用 FC95
通过 FC96 "SET_UDP_REMOTE" 定义远端的 UDP 端点连接参数。下列参数需要考虑:
• REM_PORT: 通信方的端口号
• IP_ADDR1 ... IP_ADDR4: 通信方的 IP 地址
图. 03: 调用 FC96
在 FB65 "TCON" 输入参数 "REQ" 施加一个上升沿触发本地 UDP 端点连接的建立。数据结构体 UDT65 "TCON_PAR" 中的本地端点参数包含在 FB500 的背景数据块中。在 FB65 "TCON" 的输入参数 "CONNECT" 定义了本地端点参数的数据区,本地端点连接在系统启动时建立并保持,通过 FB66 "TDISCON" 或 CPU 停止及断电可以断开通信连接。
图. 04: 调用 FB65 "T_CON"
在 FB67 "TUSEND" 输入参数 "REQ" 施加上升沿触发发送请求,发送请求通过脉冲时钟 M10.6 及变量 "C1.SEND_BUSY" 控制。如果发送请求正在运行,"C1.SEND_BUSY" 被置位,新的发送不能执行 ( 参考图05 )。
在输入参数 "DATA" 中定义数据发送区。在输入参数 "LEN" 中定义发送的字节数。
在输入参数 ADDR 定义接收方的 IP 地址,在示例程序中,通信方的地址参数存储于数据结构 UDT66 "TADDR_PAR" 中,数据结构包含于背景数据块 DB500 中。
通过输出参数 "DONE", "ERROR" 及 "STATUS" 可以查询请求状态。
图. 05: 调用 FB67 "TUSEND"
如果发送请求成功完成, "C1.SEND_BUSY" 被复位。新的发送请求可以被再次触发。
如果发送请求完成但是有错误,"C1.SEND_BUSY" 同样被复位,FB67 的输出参数 "STATUS" 存储故障代码用于故障分析。
图. 06: 上升沿触发发送请求/复位 "C1.SEND_BUSY"
图. 07: FB67 "TUSEND" 的输出参数 STATUS 存储发送状态
一旦 UDP 端点被连接即可接收数据。在输入参数 "DATA" 定义接收的数据区的地址和长度用于存储接收数据。在 ADDR 中定义的数据用于存储发送方的 IP 地址。在这个示例中,通信方的地址参数存储于数据结构 UDT66 "TADDR_PAR" 中,数据结构包含于背景数据块 DB500 中。
图. 08: 调用 FB68 "TURECV"
输出参数 "NDR" 用于显示接收新的数据。输出参数 "LEN" 指示接收数据的长度。
如果接收数据不成功,可以评估输出参数 "STATUS" 的存储的状态字。
图. 09: FB68 "TURECV" 的输出参数 STATUS 的存储发送状态
可以调用 FB66 "TDISCON" 断开 UDP 本地端点的连接。通过赋值 FB66 "TDISCON" 的输入参数 "REQ" 一个上升沿触发断开本地端点连接。
图. 10: 调用 FB66 "TDISCON"
下载 STEP 7 项目:
STEP 7 项目包含一个调用 FB500 及 FC95 "SET_UDP_ENDPOINT"、FC96 "SET_UDP_REMOTE" 的例子程序、FB65 "TCON"、FB66 "TDISCON"、FB67 "TUSEND" 和 FB68 "TURECV" 用于状态评估,例子程序使用 STEP 7 V5.4 SP3 生成。
配置 UDP 连接:
为了发送 UDP 数据包到多个通信方,需要配置额外的本地和远程的 UDP 端点。 可以复制 FB500 以便得到更多的功能块 (例如 FB501)。修改本地和远程的 UDP 端点的参数,可以生成新的背景数据块:
本地 UDP 端点的 ID 可以选择的值范围从 1 到 4095。
本地和远程端口可以选择的值范围从 2000 到 5000。
对于每一个本地的 UDP 端点,ID 和端口必须是单独的。即必须定义一个不同的 ID 和一个不同的端口对于每个本地 UDP 端点。
根据通讯方的配置,定义远程端口和 IP 地址。
下表显示了如何配置多个本地和远程 UDP 端点。在这个示例中,相同的 ID 和 同一端口被用于本地和远程终端。
本地/远程 UDP 端点 | 1 | 2 | 3 |
ID | 1 | 2 | 3 |
LOC_PORT | 2000 | 2001 | 2002 |
REM_PORT | 2000 | 2001 | 2002 |
通讯方的 IP 地址 | 140.80.0.50 | 140.80.0.51 | 140.80.0.52 |
本文以西门子公司的S7-300/400系列大中型plc为主要讲授对象。西门子的PLC以其极高的性能价格比,在国际占有很大的份额,在我国的各行各业得到了广泛的应用。S7-300/400属于模块式PLC,主要由机架、CPU模块、信号模块、功能模块、接口模块、通信处理器、电源模块和编程计算机组成,各种模块安装在机架上。通过CPU模块或通信模块上的通信接口,PLC被连接到通信网络,可以与计算机、其他PLC或其他设备通信。
1.CPU模块
CPU模块主要由微处理器(CPU芯片)和存储器组成。在PLC控制系统中,CPU模块相当于人的大脑和心脏,它不断地采集输入信号,执行用户程序,刷新系统的输出;存储器用来储存程序和数据。S7 - 300/400将CPU模块简称为CPU。
2.信号模块
输入( Input)模块和输出(Output)模块简称为I/O模块,开关量输入、开关量输出模块简称为DI模块和DO模块,模拟量输入、模拟量输出模块简称为AI模块和AO模块,它们统称为信号模块。信号模块是系统的眼、耳、手、脚,是联系外部现场设备和CPU模块的桥梁。
输入模块用来接收和采集输入信号,开关量输入模块用来接收从按钮、选择开关、数字拨码开关、限位开关、接近开关、光电开关、压力继电器等来的开关量输入信号。模拟量输入模块用来接收电位器、测速发电机和各种变送器提供的连续变化的模拟量电流、电压信号,或者直接接收热电阻、热电偶提供的温度信号。
开关量输出模块用来控制接触器、电磁阀、电磁铁、指示灯、数字显示装置和报警装置等输出设备,模拟量输出模块用来控制电动调节阀、变频器等执行器。
CPU模块内部的工作电压一般是DC 5V,而PLC的外部输入/输出信号电压一般较高,例如DC 24V或AC 220V。从外部引入的尖峰电压和干扰噪声可能损坏CPU模块中的元器件,或使PLC不能正常工作。在信号模块中,用光耦合器和小型继电器等器件来隔离PLC的内部电路和外部的输入、输出电路。信号模块除了传递信号外,还有电平转换与隔离的作用。
3.功能模块
为了增强PLC的功能,扩大其应用领域,减轻CPU的负担,PLC厂家开发了各种各样的功能模块。它们主要用于完成某些对实时性和存储容量要求很高的控制任务,例如高速计数、位置控制和闭环控制等。
4.接口模块
CPU模块所在的机架称为中央机架,如果一个机架不能容纳全部模块,可以增设一个或多个扩展机架。接口模块(简称为IM)用来实现中央机架与扩展机架之间的通信。
5.通信处理器
通信处理器(简称为CP)用于PLC之间、PLC与远程I/O之间、PLC与计算机和其他智能设备之间的通信,可以将S7 - 300/400接入各种通信网络,CP也用于实现点对点通信等。CPU模块集成有MPI通信接口,有的CPU模块还集成了其他通信接口。
6.电源模块
电源模块(简称为PS)用于将输入的AC 220V电源或DC 24V电压转换为稳定的DC 24V和DC 5V电压,供其他模块和输出模块的负载使用。
7.编程设备
S7 - 300/400一般使用安装了编程软件STEP 7的个人计算机作为编程设备,可以生成和编辑各种文本程序或图形程序。程序被编译后下载到PLC,也可以将PLC中的程序上传到计算机。编程软件还有对网络和硬件组态、参数设置、监控和故障诊断等功能