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)。


近来LCD电视面板价格飞涨,LGD的LCD面板生产线将延后推迟关闭
配电箱内主要元器件的选型指南
全球树莓派领先制造商与分销商e络盟宣布推出全新第三代树莓派B型板
苹果已经在走下坡路?十周年iPhone 8能否拯救苹果?
太阳能WiFi气象站的制作
T_CONFIG的编程示例介绍
诺基亚8国行还没上市,诺基亚9又曝光了:屏占比将会超越三星Note8
润和软件HopeStage操作系统推动江苏长江商业银行信创转型
全方位测评奔驰GLK260动感型
什么是AI芯片? AI芯片将助力中国打破在芯片行业中的重重阻碍
重庆大学机器人创新人才培养中心正式揭牌成立
今年整个汽车行业的产量将减少约100万辆
诺基亚S8曝光黑科技真强:骁龙835+6GB运存
储能电池的成本要素构成以及在电网中发挥的作用
LED发光腰包BSEEN上线众筹 可为iPhone充电
区块链技术可以有效的维护我国经济安全
FPGA在基站上的应用
捷豹路虎:寻求健康发展,将中国打造成全球创新中心
手机数据传真接收
iphone8什么时候上市?iphone8设计图纸流出,网友称:还好指纹解锁是前置屏幕内