MultipartFile 支持什么类型_西门子SCL编程入门教程连载(15)-Variant类型
西门子S7-1200/1500系列PLC提供Variant数据类型用于对数据进行引用,有着比ANY类型更强大的功能。今天这篇文章,我们就来聊聊Variant类型,并使用SCL语言编写一个简单的例程。
本文包括如下几个主题:
1、认识Variant类型;
2、Variant与ANY类型的区别;
3、Variant类型使用示例
封面
1、认识Variant类型
Variant是西门子S7-1200/1500系列PLC支持的一种新数据类型,它是一种可以指向基本数据类型、复杂数据类型或者用户自定义类型的引用。Variant的使用限于FB/FC/OB的形参,也就是说,只能在FB/FC/OB的参数列表中声明某个参数的类型为Variant,但FB的静态参数列表除外,也不能声明数据块(DB)的元素为Variant类型;
可以给FB/FC的Variant形参赋任何类型的变量,调用该FB/FC时,不仅会传递变量的值,而且会传递变量的类型;可以使用SCL指令TypeOf识别变量的类型并做相应的处理;2、Variant与ANY类型的区别
有两点:
- 两者支持的数据类型不同
ANY可以指向输入缓存区(I)、输出缓存区(Q)、外设(PI/PO)、位存储区(M)、数据块(DB)等存储区,支持基本数据类型、字符串等;但不支持数组、用户自定义类型等复杂数据类型;
Variant可以引用几乎所有的数据类型(数组、结构、UDT)的变量,比ANY功能强大;
注:S7-300/400/1500支持ANY类型 - 占用空间大小不同
ANY需要占用10个字节的存储空间,当把一个变量定义为ANY类型时,无论其是否指向目标变量,都要占用10个字节的存储空间;
Variant不占用背景数据块或者工作存储器的空间。Variant只是对另一个实例(可以理解为变量)的引用,相当于该实例的一个别名。在使用Variant指向该实例时,该实例已经被创建了;
3、Variant类型使用示例
举个例子,创建一个功能,名称为FC_VariantDemo,参数如下:
输入:
- oprand1,Variant类型;
- oprand2,Variant类型;
输出:
- ouput1,INT类型;
- ouput2,TIME类型;
FC功能描述:
- 若oprand1和oprand2的类型为整数,将两者相加,并将结果输出到output1中;
- 若oprand1和oprand2的类型为TIME,将两者相加,并将结果输出到output2中;
参数声明如下图:
参数声明
代码如下:
示例代码
上述代码中的TypeOf指令用来判断变量的类型,VariantGet指令可以访问一个Variant引用并获取其真实的数值及类型;这两个指令及其它与Variant操作的指令我们将在下一篇文章详细介绍。
创建DB_VariantDemo,添加元素如下:
在OB1中调用FC_VariantDemo的示例如下图所示:
调用子程序
好了,关于Variant类型就先介绍这么多。
我的新书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》出版了,欢迎点击下面的链接查看详细介绍:
新书《西门子S7-200 SMART PLC应用技术》出版了!
MultipartFile 支持什么类型_西门子SCL编程入门教程连载(15)-Variant类型相关推荐
- js 获取中括号里面字符串_西门子SCL编程入门教程连载(18)——字符串
今天这篇文章,我们来聊聊西门子S7系列PLC的一种数据类型--字符串. 本文包括如下几个主题: 什么是字符串: 怎样声明字符串变量: 怎样给字符串变量赋值: 1.什么是字符串 字符串(string)是 ...
- 西门子scl语言编程手册_西门子SCL编程PEEK指令讲解
单词"peek"在英语中表示"偷看,瞥一眼",在计算机编程中表示"读取数据". 在西门子SCL编程中,PEEK指令可以用来读取输入缓存区(I ...
- 怎么查看电脑有没有python_python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学...
本文由简码编程原创,保留所有版权,转载请注明出处. 本python人工智能爬虫系列教程基于Python3.0版本, 将python结合windows桌面开发工具aardio一起做可视化的开发, 用py ...
- 爬虫python对电脑要求_python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学...
本文由简码编程原创,保留所有版权,转载请注明出处. 本python人工智能爬虫系列教程基于Python3.0版本, 将python结合windows桌面开发工具aardio一起做可视化的开发, 用py ...
- 西门子上升沿指令_西门子SCL编程实例——霓虹灯顺序控制(DECO指令)
有如下控制任务: 舞台上有8根霓虹灯灯管,要求顺序点亮灯管.灯管编号1到8,从1号开始,每次只有一根灯管点亮,持续的时间为2秒钟.当8号灯管点亮结束后,再次从1号开始,如此循环. 今天这篇文章,我们使 ...
- 【转载】PHP面向对象(OOP)编程入门教程
面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持. 如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们 ...
- PHP面向对象(OOP)编程入门教程
面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就 ...
- TZC Python编程入门教程 ————题解
本博客原文地址:Python编程入门教程(以在线评测平台为载体) - 暴力都不会的蒟蒻 - 博客园,原文体验更佳 如果你是一名浙江2020级及以后的高中生要学习Python,抑或是一位科学工作者要学习 ...
- JAVA入门Hwork,HBase Java编程入门教程
一款优秀的数据库除了会提供客户端,还会提供编程语言接口,HBase 也不例外.HBase 除了支持使用 Shell 客户端来操作(请看<HBase Shell及其常用命令>),还提供了多种 ...
最新文章
- 玩转GridView
- netstat和lsof端口结果不一致
- window.open 弹出居中窗口
- 满汉全席(洛谷-P4171)
- 深度残差收缩网络:(四)注意力机制下的阈值设置
- 以太坊到底是什么 | 工作原理
- 【渝粤教育】国家开放大学2018年秋季 1141t工程经济与管理 参考试题
- 4g网络切换软件_游戏掉线坑队友?OPPO Reno网络切换超快,上分吃鸡更稳
- 数字图像处理学习路线
- html设置请求头host,Http请求头Host字段作用
- postgresql安装报错
- 2021年IEEE Fellow刚刚放榜!84位华人学者当选再创新高!
- Labview八段数码管0—9数字显示
- LaTeX 中使用三级标题
- js实现图片拖拽,定点缩放,旋转 (二)
- 攻防世界illusion暴力破解
- Python 使用requests实现网络小说爬虫案例(一)
- 三维格式学习-wrl
- Shell中的美元符号$
- 阿里云HPC助力新制造 | 上汽仿真计算云SSCC
热门文章
- 假期来啦!技术人如何用 Python 实现景区安防系统
- Thinkpad笔记本适配器器已连接,未充电(不是充电60%限制的问题)
- Spring源码-AnnotationConfigApplicationContext容器的创建过程
- iOS drawRect绘制圆形/圆环/饼图
- thinkphp5.0提示不支持redis详细解决办法
- 达摩院公布:2022十大科技趋势发布,我一个都看不懂!
- C#复习(十五)事件一_该用户还没想到昵称_新浪博客
- HTML合并单元格、折叠边框
- vue.js表情文本输入框组件
- 基于node批量上传图片cdn并且替换本地地址