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的类型,然后根据判断结果再执行相应的控制逻辑。

图一 V15.0中的TypeOfDB

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

图二 创建UDT

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

图三 创建DB

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

图四 创建FB接口参数

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

图五 SCL源码

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

图六 调用FB

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

图七 测试FB功能

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如果说西安是一个开始,那么从我双脚踏入这片土地的那一刻起,我就疯狂了······ 一直在思考大五的我该如何写,因为...
    别一种痛痒阅读 471评论 1 3
  • 马克·吐温曾说:“一句称赞的话,可以让我活两个月。” 感性地表达爱的方式之一,就是用赞扬的字句。 口头的赞扬...
    桐趣阅读 519评论 0 0
  • 初一那年,我知道他的存在便深深的爱上他——权志龙。五年了,爱上他已经五年了,五年来我为他写了无数篇稿子,却从来没有...
    陌毕曦阅读 174评论 0 0
  • #新余#刚在路上等红灯,突然前车驾驶门打开了,我心里还想可能是换司机开,接着就见一只手丢出一个纸箱子……我也是醉了...
    新余佬阅读 139评论 0 0
  • 有人说,人生最浪漫的三个字 ——“我爱你!” 有人说,人生最幸福的三个字 ——“我等你!” 其实,人生最温暖的三个...
    听雨小咖阅读 489评论 0 0