T_CONFIG的编程示例介绍

描述

简介

在以下示例中,将使用两个 CPU 间已组态的连接(如,UDP 连接)。使用指令“T_CONFIG”,可组态 CPU 1 的 IP 地址和 PROFINET 设备名称。

要求

设置连接:

两个 CPU(如,S7-1513-1 PN 系列)通过 PROFINET 进行互连,

且无需使用已组态的连接。

设置 CPU 1 的 PROFINET:

打开 CPU 1 的设备视图“> 属性 > PROFINET 接口 > 以太网地址 > PROFINET”(> Properties > PROFINET interface > Ethernet addresses > PROFINET)。
要设置设备名称,可选择以下选项:
“在设备中直接设置 IP 地址”(IP address is set directly at the device)
“在设备中直接设置 PROFINET 设备名称”(PROFINET device name is set directly at the device)。

调整“hwid”的值:

根据本地设备 (CPU 1) 中 PROFINET 接口的硬件 ID,更改“hwid”的值。

说明
打开“PLC 变量 > 显示所有变量 > 系统常量”(PLC tags > Show all tags > System constants)。查找数据类型为“Hw_Interface”的条目“”。该硬件标识符将包含在单元格“值”(value) 中。

创建变量并互连参数(CPU 1 中的程序)

要对该数据进行存储,需使用以下结构和变量,创建一个全局数据块(“SLI_gDB_T_CONFIG”)。

状态机

在结构“configData”中:分配系统数据类型为“IF_CONF_Header”的参数,指定 PROFINET 数据的大小,如下所示:

状态机

在结构“configData”中:分配系统数据类型为“IF_CONF_v4”的参数,定义 IP 地址,如下所示:

状态机

在结构“configData”中:分配系统数据类型为“IF_CONF_NOS”的参数,定义 PROFINET 设备名称,如下所示:

状态机

说明
“configData”的结构
“configData”结构信息说明如下所示:
在 Header (IF_CONF_Header) 中。
SubfieldCount = 2:值含义:下图中使用了 2 个附加结构(“deviceIP”,“deviceName”)(*)。
* 确保这两个结构的顺序保持不变。
在结构“deviceName”中(系统数据类型 IF_CONF_NOS)
Lenght = 11 (*)。该数值等于结构 NOS 的总长度(5 个字节的设备名称“myplc” + 6 个字节的参数 Id、Length 和 Mode)
* 默认起始值 (Lenght = 0) 可作为动态长度,而非绝对长度。
Mode = 1。该值将导致“myplc”中的设备名称发生永久性地更改。
NOS[1] ... NOS[5]。NOS 数组中包含有新的设备名称(1 个字符 / 字节)。

创建函数块“SLI_FB_T_CONFIG”,并在该数据块中创建以下局部变量。

状态机

程序段 1:互连“T_CONFIG”指令的参数,如下所示:

状态机

程序段 2:如果 T_CONFIG 出错,则保存状态信息,如下所示。

状态机

程序段 3:创建以下互连,退出 T_CONFIG。

状态机

结果

程序段 1:

输入参数 REQ(“T_CONFIG.start”)的信号状态为“TRUE”时,启动指令“T_CONFIG”。多次调用时,可使用指令“T_CONFIG”组态 CPU 中集成的 PROFINET 接口。根据输入参数 INTERFACE(“T_CONFIG.hwid”),指令“T_CONFIG”可确定所使用的接口。

数据记录 () 成功传送后,输出参数 DONE(“#done”)中的信号状态为“TRUE”。同时,“0000_0000”值将显示在输出参数 STATUS(“T_CONFIG.status”)中。由于输出参数的值仅在有效时才显示,因此成功消息将保存在变量“T_CONFIG.done”中。

输出参数 ERROR(“T_CONFIG.error”)或变量“T_CONFIG.memErrStat”)可用于指示本示例中的执行过程是否出错。

状态机

程序段 2:

如果 T_CONFIG 发出信号指示错误(“T_CONFIG.error”,“TRUE”),则将按以下方式保存报警:

将状态(“T_CONFIG.status”)保存在变量“T_CONFIG.memErrStat”中。

保存错误位置,并从 T_CONFIG 将变量“T_CONFIG.errorLocation”中错误位置输出到输出参数 ERR_LOC(“#errorLocation”)中。

在线与诊断

要检查 PROFINET 数据是否更改,可打开项目树中的以下路径:“在线与诊断 > 功能 > 分配名称”("Online & Diagnostics > Functions > Assign name)。

状态机





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分