西门子6ES7313-5BG04-0AB0
2017-6-22 阅读(393)
西门子6ES7313-5BG04-0AB0
6ES7313-5BG04-0AB0 SIMATIC S7-300,CPU 313C, 紧凑型 CPU mit MPI, 24 DE/16 DA,4AE,2AA,1 Pt100, 3 schnelle 计数器(30 kHz), integr. 电源 DC 24V, 工作存储器 128 KByte, 前连接器(2x 40极)和 微型存储卡 需要 |
一、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 CPU 集成工业以太网口以 OPEN IE 的通信方式与Simotion间实现 UDP 连接的通信
附带文件中提供了通过317-2PN/DP集成工业以太网口以 OPEN IE 的通信方式与Simotion间实现 UDP 连接的通信的示例。
1.PLC侧的编程及设置
将链接 31938422 中的示例程序下载后打开,将程序拷贝至用户程序中。
打开FB500功能块,做如下参数修改:
西门子6ES7313-5BG04-0AB0
图. 11
图. 12
图. 13
图. 14
图. 15
2.Simotion侧的编程
(1)在Simotion的命令库中,包含UDP通讯函数,如图16所示:
图. 16
(2)发送数据
图. 17
SourcePort:本方的端口号
DestinationAddress:对方的IP地址
DestinationPort:对方的端口号
CommunicationMode :通信完成后是否释放通信资源
DataLength:发送的数据长度,zui大长度1400字节
Data:发送数据区,ARRAY [0..1399] OF BYTE
Return value:状态返回值
(3)接收数据
图. 18
Port:定义本方的端口号,与发送方的端口号对应
CommunicationMode:通信完成后是否释放通信资源
NextCommand :同步执行或异步执行
ReceiveVariable:数据接收区ARRAY [0..1399] OF BYTE
Return value:状态返回值
在S7-300或S7-400的本地机架或远程I/O站点(DP)中的I/O模块,可以通过调用SFC 55(WR_PARM) 系统功能在系统运行时修改模块参数。SFC 55只修改信号模块的参数数据,不能修改CPU装载存储区中关于目的模块系统组态数据(SDB),因此系统重启后,SFC 55修改的模块参数将被CPU装载的系统数据所覆盖,恢复下载的组态参数。SFC 55(WR_PARM)不适用于Profinet I/O。
1 参考手册
对于S7-300/400的信号模块,参数可编程模块及参数的数据记录格式请参考手册:
S7-300 模块数据手册
8859629
S7-400模板数据手册
1117740
对于系统功能SFC 55(WR_PARM)使用请参考手册:
用于 S7300/400系统和 标准功能的系统软件
1214574
2 S7-300/400参数可编程信号模块
当前S7-300参数可编程信号模块(表1):
类型 | MLFB | 备 注 |
SM321 | 6ES7 321-7BH01-0AB0 | DI 16 x DC 24 V |
6ES7 327-1BH00-0AB0 | DI 8/DX 8 x DC 24 V/0.5 A | |
SM322 | 6ES7 322-8BF00-0AB0 | DO 8 x DC 24 V/0.5 A |
6ES7 322-5FF00-0AB0 | DO 8 x AC120/230 V /2A ISOL | |
6ES7 322-5HF00-0AB0 | DO 8 x Rel. AC230V / | |
SM331 | 6ES7331-7NF00-0AB0 | AI 8 x 16 Bit |
6ES7331-7NF10-0AB0 | AI 8 x 16 Bit | |
6ES7331-7HF0x-0AB0 | AI 8 x 14 Bit High Speed; isochrone | |
6ES7331-1KF02-0AB0 | AI 8 x 13 Bit | |
6ES7 331-7KF02-0AB0 | AI 8 x 12 bit | |
6ES7331-7KB02-0AB0 | AI 2 x 12 Bit | |
6ES7331-7PF01-0AB0 | AI 8 x RTD | |
6ES7331-7PF11-0AB0 | AI 8 x TC | |
6ES7331-7PE10-0AB0 | AI 6 x TC isolated | |
SM332 | 6ES7332-7ND02-0AB0 | AO 4 x 16 bit |
SM334 | 6ES7334-0KE00-0AB0 | AI 4/AO 2 x 12 bit |
表1 S7-300参数可编程信号模块
当前S7-400参数可编程信号模块(表2):
类型 | MLFB | 备 注 |
SM421 | 6ES7 421-7BH01-0AB0 | DI 16 x DC 24 V |
6ES7 421-7DH00-0AB0 | DI 16 x UC 24/60 V | |
SM422 | 6ES7 422-5EH10-0AB0 | DO 16 x DC 20-125 V/1.5 A |
6ES7 422-7BL00-0AB0 | DO 32 x DC 24 V/0.5 A | |
6ES7 422-5EH00-0AB0 | DO 16 x AC 20-120 V/2 A | |
SM431 | 6ES7 431-7QH00-0AB0 | AI 16 x 16 Bit |
6ES7 431-7KF10-0AB0 | AI 8 x RTD x 16 Bit | |
6ES7 431-7KF00-0AB0 | AI 8 x 16 Bit |
表2 S7-400参数可编程信号模块
3 SM331 AI8 x12bit模块的参数
以SM331 AI8 x12bit (6ES7331-7KF02-0AB0,下略写为SM331(7KF02))为例,说明如何编程修改信号参数。
3.1 可修改参数
参考手册《S7-300 模块数据》A.4小节,表A-4列出SM331(7KF02)模块参数是否可组态,可编程修改为(表3):
参数 | 参数数据记录号 | 可编程… | |
… SFC55 | … PG | ||
诊断:组诊断 | 0 | 不支持 | 支持 |
诊断:使用断线监控 | |||
温度单位 | |||
温度系数 | |||
滤波 | |||
启用诊断中断 | 1 | 支持 | |
超*硬件中断 | |||
启用周期结束中断 | |||
噪声抑制 | |||
测量方法 | |||
测量范围 | |||
上限 | |||
下限 |
表3 SM331(7KF02)参数组态编程特性
3.2 参数数据记录1
通过数据记录1可以进行修改SM331(7KF02)参数,参数数据记录1一共是14个字节,结构为:
►字节0(图1):
图1参数数据记录1字节0
►字节1(图2):
噪声抑制 | 积分时间 | 代码 |
400 Hz | 2.5 ms | 2#00 |
60 Hz | 16.7 ms | 2#01 |
50 Hz | 20 ms | 2#10 |
10 Hz | 100 ms | 2#11 |
图2参数数据记录1字节1
►字节2至字节5(图3)
图3参数数据记录1字节2至字节5
部分测量方法与量程代码(表4):
测量方法 | 代码 | 测量范围 | 代码 |
… | … | … | … |
电压 | 2#0001 | ± 80 mV | 2#0001 |
± 250 mV | 2#0010 | ||
± 500 mV | 2#0011 | ||
±1 V | 2#0100 | ||
±2.5 V | 2#0101 | ||
±5 V | 2#0110 | ||
1 V到5 V | 2#0111 | ||
0 V到10 V | 2#1000 | ||
±10 V | 2#1001 | ||
± 25 mV | 2#1010 | ||
± 50 mV | 2#1011 | ||
… | … | … | … |
(上表仅列出本文示例所涉及测量方法及量程代码,其余代码请参考《S7-300模块数据手册》)
表4 SM331(7KF02)部分测量方法与量程代码
►字节6至字节13(图4)
图4参数数据记录1字节6至字节13
4 编程SM331 AI8 x12bit参数
组态SM331(7KF02) 0通道为0~10V电压测量,组态报警上限为9V,下限为1V,示例将报警的上限编程修改为8V,下限修改为2V。
4.1 组态SM331(7KF02)
图5 组态SM331(7KF02)在主机架
图6 SM331 参数组态
4.2 编程SM331(7KF02)写参数
OPN "DB1" | //要求DB1长度 >= 14 字节 | ||
L 2#10000100 | // 使能OB40 | ||
T DBB 0 | |||
L 2#10101010 | // 4个通道组的干扰抑制时间, 50Hz | ||
T DBB 1 | |||
L 2#11001 | // 4个通道组的量程,电压测量,+/-10V | ||
T DBB 2 | |||
T DBB 3 | |||
T DBB 4 | |||
T DBB 5 | |||
L 22118 | // 通道0上限报警值, 8V | ||
T DBW 6 | // 22118= 27648 / 10V * 8V | ||
L 5530 | // 通道0下限报警值, 2V | ||
T DBW 8 | // 5530 = 27648 / 10V * 2V | ||
L 26266 | // 通道2上限报警值,原组态的9.5V | ||
T DBW 10 | // 26266= 27648 / 10V * 9.5V | ||
L 1382 | // 通道2下限报警值,原组态的0.5V | ||
T DBW 12 | // 1382= 27648 / 10V * 0.5V | ||
CALL "WR_PARM" | // SFC 55 | ||
REQ | :=M0.0 | // M0.0触发写入参数 | |
IOID | :=B#16#54 | // 输入地址 | |
LADDR | :=W#16#110 | // 模块逻辑起始地址272 | |
RECNUM | :=B#16#1 | // 数据记录号 1 | |
RECORD | :="DB1".DR | // 将写入模块的参数数据 | |
RET_VA | :=MW2 | // RET_VAL = 0,无错误 | |
BUSY | :=M0.1 | // M0.1 True -> False,写完成 | |
AN M 0.1 | |||
R M 0.0 |
关键词
S7-300,S7-400,系统功能, 模块参数
西门子6ES7313-5BG04-0AB0