设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
TIA Portal V15.0新特性介绍(6) REF
返回列表
发新帖
[西门子]
TIA Portal V15.0新特性介绍(6) REF
[复制链接]
110
|
0
|
2024-4-5 13:28:49
|
显示全部楼层
|
阅读模式
在TIA V15.0中,SIEMENS为博图引入了新的语言特性,增加了系统函数“
REF
”和运算符“
^
”(我个人认为他们应该都被归入到运算符中),SIEMENS官方分别称之为“
引用
”和“
取消引用
”。新的语言特性只有在固件版本V2.5以上的S7-1500中才能使用。
1、Pascal中的指针
鉴于“
引用
”和“
取消引用
”的说法颇为令人费解,所以这里先看一段Pascal程序,然后我们再慢慢揭开它的真面目。使用Pascal语言来演示是因为博图中的SCL是类Pascal的编程语言,它们的基本语法高度相似。
图一 Pascal语言中的指针操作
上图是一段Pascal语言中的指针操作代码,代码含义如注释所示。基本过程就是首先分别定义一个整型变量和一个整型指针变量,然后获取整型变量的内存地址并存储在指针里,最后读出指针指向的内存区域的值并在对话框中显示。程序执行结果如下图所示,指针指向内存区域的值就是整型变量的值。
图二 Pascal程序执行结果
2
、TIA中的REF
现在我们再看看REF在TIA博图中的使用。在下图中,我们用SCL重现了刚才的Pascal程序。首先分别定义一个整型变量和一个整型指针变量,然后获取整型变量的内存地址并存储在指针里,最后读出指针指向的内存区域的值并传送给输出参数Q。
图三 TIA博图中的REF使用
下载程序并运行,其执行结果如下图所示,结果也是56,和之前的Pascal程序执行结果完全一样。
图四 TIA博图中的程序执行结果
看到这里相信大家应该明白了吧,“
REF
”其实就是SCL中的指针,所以上面图中的注释我就直接写成指针了。系统函数“
REF
”用于获取变量的内存地址,其地址存储在相应类型的指针变量中,也就是图三中的“
a
”。操作符“
^
”用于对内存区域中的值进行操作,除了读取外也可以进行赋值。官方文档中的“
引用
”意为引用变量的内存地址,“
取消引用
”意为解除对地址的引用,改为对内存区域中的值进行操作。
3
、REF和Variant
TIA帮助里说Variant属于指针或引用类型,我个人认为这种说法是不严肃的,指针和引用类型还是有很大区别的(新出的REF才是真正的指针)。在
《TIA Portal高级编程》V15.0
中我已把Variant归为引用类型,并会进一步剖析Variant和REF,阐述引用类型和指针类型的区别,以实例说明REF在项目中的使用。
REF的引入进一步丰富了TIA SCL的语法特性,使SCL的功能更为强大,使用更为灵活(备注一下:REF在LAD/FBD中也是可以使用的)。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
直观学PLC
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』