2018-04-26

TIA Portal V15.0新特性介绍(3) TypeOfDB

原创 2017-12-27 HwLib(慧兰博) HwLib慧兰博

新版本V15.0增加了新指令TypeOfDB,该指令的出现进一步强化了Variant的功能(Variant类型是被设计用于替代ANY和Pointer类型的新类型,它是一种引用类型,和指针不一样的是Variant是一种安全的类型,详见《TIA Portal高级编程》V12.0)。使用指令TypeOfDB我们可以很方便的判断传入参数DB_ANY的类型,然后根据判断结果再执行相应的控制逻辑。

2018-04-26_第1张图片

图一 V15.0中的TypeOfDB

下面以一个简单的例子来说明新指令TypeOfDB的使用。首先创建两个UDT,分别命名为“udtTest1”和“udtTest2”。为“udtTest1”添加a1和a2两个变量,类型分别是int和real。为“udtTest2”添加b1、b2和b3三个变量,类型分别是bool和real,参见下图所示。

2018-04-26_第2张图片

图二 创建UDT

创建2个类型为udtTest1的数据块,分别命名为”dbTest1.1”和“dbTest1.2”。创建2个类型为udtTest2的数据块,分别命名为”dbTest2.1”和“dbTest2.2”,参见下图。

2018-04-26_第3张图片

图三 创建DB

再创建一个FB,添加两个INPUT参数dbAny1和dbAny2,类型为DB_ANY。添加一个类型为“udtTest”的静态变量“sBuff”,具体的功能块参数声明参见下图。

2018-04-26_第4张图片

图四 创建FB接口参数

演示FB的功能是先判断传入参数dbAny1和dbAny2的DB类型,如果是udtTest1则送入dbTest1.2,如果是udtTest2则送入dbTest2.2,代码参见下图(此代码仅用于测试TypeOfDB,如果用于工程环境请添加相应的除错程序)。

2018-04-26_第5张图片

图五 SCL源码

在Main中调用该程序,参数dbAny1和dbAny2分别连接dbTest1.1和dbTest2.1,下载并运行PLC,参见下图。

2018-04-26_第6张图片

图六 调用FB

同时打开dbTest1.1和dbTest1.2或者同时打开dbTest2.1和dbTest2.2并激活监控可以发现当我们修改dbTest1.1或者dbTest2.1中变量值时dbTest1.2或者dbTest2.2中的值会自动更新。

2018-04-26_第7张图片

图七 测试FB功能

你可能感兴趣的:(2018-04-26)