信捷C语言POU开发技巧-参数引用

对于POU,在定义区有以下几种参数类型,INPUT、OUTPUT、INOUT、VAR、VAR_TEMP,FC没有VAR,FB有VAR。

每种参数都可以定义多种数据类型,包括数组、结构体数组。

要讲这个,首先要讲一下指针。这里不深入,浅谈一点。

我们都知道,想要存放一个数据,那么就要根据他的数值范围给他安排一个容器,同时给这个容器一个好理解的符号,比如var0,然后这个容器就会有一个地址。就好比张三家,【张三的住址】,W小区X楼Y单元ZZZ,他的地址可以理解为WXYZZZ。同样我们存储数据也是这个道理,举个例子,我们要存储一个整数5,那么我们会定义一个int类型的【容器】,名字叫做a好了。当我们需要数值5的时候,找a要即可。

所以指针是什么呢?指针也是一直数据类型,只不过指针类型的【容器】存放的不是某种数值,存放的是对应数据类型【容器】的【地址】。例如如何保存a的地址,我们可以定义一个int类型指针的【容器】b,写法是int *b,“*”意味着名为b的【容器】是用来存放地址的,前面的int则表示他存放的是int类型【容器】的地址。

这样我们就得到了一个可以存放int类型【容器】地址的【容器】。那么在程序中如何向这个【容器】中存放地址呢,写法是b = &a。&符号是取地址符,意为取得a的地址。这样a的地址就装入了b中。这时b里存放的就是a的地址,我们可以通过一个之前出现过的符号【*】来实现一点特别的操作,b内不是存放a的地址么,我们在b前面加上【*】,*b则意味着b内存放的地址指向的数据,也就是a内的数据,也就是5。好了,指针先到这里,回到FB。

FB的三个参数INPUT为数值传递,INOUT与OUTPUT为指针传递。也就是说通过INPUT参数进入FB的是实际数值,通过另外两个参数传递进来的是【地址】。那么当我们在FB里使用对应的参数时,必须使用【*】符号,才可以指向实际的数值。

FB与FC最大的区别是FB拥有背景数据,这种数据是可保持的,于是FB比FC多了一个VAR型的变量。同时变量在程序中的引用方法也有一些区别。假设在定义区定义了一个参数类型为INPUT,数据类型为INT的参数VAR1,那么FB的程序里引用他的格式是self->VAR1,FC则直接写VAR1。如果参数类型是INOUT或者OUTPUT,那么FB内的格式就是*self->VAR1,FC是*VAR1。

这篇就到这里,受本人水平所限,错漏之处请多包含。

相关资料:

信捷PLC-C语言FB内编写轴控指令的方法举例-绝对定位与结构体

信捷PLC-C语言FB内编写轴控指令的方法举例-结构体数组

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贰佰肆拾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值