新闻详情

新闻详情

首页 / 资讯中心 / 详情

西门子Variant变量介绍

发布时间:2026/9/1 5:08:49来源:尧图网络
西门子Variant变量介绍
为什么要使用Variant如果我们在编写FB或者FC块时使用了输入参数或者输出参数那么我们必须先给这个参数定义一个数据类型例如int realstring等。而我们要调用这个FC块或者FB块的时候也必须给对应的形参提供正确数据类型的实参。但如果有些块的功能它们逻辑完全一样只有输入的数据类型不同呢那我们是不是应该每种数据类型都编写一个块呢有没有方法可以实现就算输入不同的数据类型也能得到对应的结果呢答案就是我们今天要讲的这个variant数据类型。简单来说如果你不确定输入是一个什么类型的数据你可以先把它定义成variant然后当你输入实参时再去判断你输入的数据类型然后根据不同的数据类型进行不同的操作最后得出结果。如何使用Variant说得可能比较抽象那么我们直接举个例子来说明这个variant的用法吧。假设我要创建一个FB块它实现一个累加的功能它的输入是一个数组这个数组的长度不确定数组里面元素的数据类型也不确定要求我们把数组里面的所有项相加起来得出一个总和。为了简化这个模型我们假设输入只有两种数据类型分别是int和real。整体思路大概如下。下面是具体的实现方法。首先我们先创建一个FB块选择SCL语言编写。先定义一下输入输出引脚。这里要注意的是variant只能作为输入或者输入输出而不能作为输出。这里我们需要两个输入分别是arrayInput和start。其中前一个参数是用来接收一个数组对象。而start参数则用来控制求和开始。如果发生报警error为true。sum则是我们的求和结果。然后其他变量定义如下具体有什么作用后面我们使用时会介绍。开始我们要判断输入对象是不是一个数组这里我们要用到IS_ARRAY()这个函数如果是数组的话返回true否则返回false。首先不是数组的话我们直接把error置true。反之如果结果是数组接着我们要计算数组的长度。这里用CountOfelements()这个函数。接着我们就要判断这个数组它的元素类型。TypeOfElement()就可以实现这个功能。它会返回一个数据类型然后我们把这个返回值跟int还有real做对比。假设它返回的是一个int数组那么我们就把这个输入的数组赋值给一个int数组。同理如果返回的是real数组那么我就把arrayList赋值给real数组。int数值和real数组它的求和就比较简单了。这里就忽略不讲了。最后我们求出来的那个和它是一个int类型但这样子是不满足需求的。因为假设我们输入的是一个real数组那么我们不可能输出一个int值的和。所以我们要把这个int值再转化成variant类型。real写法也是同样道理。那样我们的这个FB块就完成了下面是具体的写法。写完之后我们再创建一个DB块。在里面添加两个数组分别是int类型和real类型。还有两个和。然后把两个数组按照以下的初始值来给它设定。最后我们在主程序里面调用两次FB块并在FB块填入data数据块里面的值。然后使用一个M10.0作为触发按钮。然后把程序下载到plc里面点击自动运行切换到在线监控。然后我们手动把那个M10.0切换成true。可以看到两个fb实例的那个和的值已经出来了。一个是15另一个是16.5。一个是整形一个是浮点数。说明这个fb块基本实现它的功能。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AI 智能体实践|OpenClaw 在 Windows 平台完整部署与使用记录 2026/9/1 20:34:43

AI 智能体实践|OpenClaw 在 Windows 平台完整部署与使用记录

🚀实测上手 OpenClaw 3.1.0|Windows 搭建本地自动化 AI 智能体🦞 前言💻 现在 AI Agent 越来越火,但很多项目配置门槛高,一堆环境依赖劝退普通玩家。OpenClaw(小龙虾 AI)是一款可以…

阅读更多 →
工业喷嘴微孔焊堵了?精密激光焊接三招护住 2026/9/1 20:34:42

工业喷嘴微孔焊堵了?精密激光焊接三招护住

这篇文章讲的是:工业雾化喷嘴、喷油嘴、喷气嘴等带微孔(0.1-2mm)的精密零部件,如何在激光焊接过程中保证微孔不被焊接飞溅或熔融金属堵塞。一个燃油喷嘴上有6-12个直径0.15-0.3mm的微孔。这些微孔决定了燃油的雾化效果——孔的形状…

阅读更多 →
新手向 OpenClaw 安装教程,路径与避坑要点汇总 2026/9/1 20:34:42

新手向 OpenClaw 安装教程,路径与避坑要点汇总

OpenClaw 一键集成包|图形化搭建本地 AI 智能体🦞 适配系统:Windows10/11 64 位、macOS 12 及以上 当前版本:Windows v3.1.0、macOS v2.7.9 安装包大小:约 45.8MB 下载地址 Windows3.1.0 版本:https://x…

阅读更多 →
零基础上手 OpenClaw,Windows 环境搭建自动化 AI 工具 2026/9/1 20:34:42

零基础上手 OpenClaw,Windows 环境搭建自动化 AI 工具

OpenClaw 本地 AI 智能体|Windows 3.1.0 一键部署实操指南 前言 在开源 AI 生态当中,OpenClaw 也被大家叫做小龙虾 AI,是一款可以直接操控电脑的智能体项目。不同于普通对话式大模型,它可以读懂自然语言指令,自动拆解…

阅读更多 →
告别百万域名库:用eBPF动态DPI让软路由流量识别更高效 2026/9/1 20:34:42

告别百万域名库:用eBPF动态DPI让软路由流量识别更高效

最近我帮朋友整理一台软路由,现象很有意思:平时跑满千兆都没压力的设备,最近网页频繁打不开,CPU 动不动就飙到 90%,内存也在持续上涨。打开进程一看,负责流量识别的服务正在后台一遍一遍地遍历一张百万行级…

阅读更多 →
大疆Air 2对比Air 2S:传感器、避障、图传差异与选购指南 2026/9/1 20:31:42

大疆Air 2对比Air 2S:传感器、避障、图传差异与选购指南

最近有朋友问我:大疆 Air 2 和 Air 2S 现在差价不小,到底值不值得多花一千多上 2S?这个问题在航拍圈几乎每周都会出现。很多人第一次买无人机,预算刚好卡在 5000 到 8000 元这个区间,而大疆 Mavic Air 2 和 Mavic Air …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞