故事作者:大连穆工

最近创作

看看TA的故事

【有新意】+ 浅谈DB_ANY数据类型的用法

已锁定

大连穆工

  • 帖子

    1579
  • 精华

    1
  • 被关注

    82

论坛等级:奇侠

注册时间:2010-03-01

钻石 钻石 如何晋级?

【有新意】+ 浅谈DB_ANY数据类型的用法

367

0

2024-01-06 20:44:51

今天,看到有人问关于西门子博途中的DB_ANY数据类型的相关问题,那么索性谈谈自己对西门子博途中DB_ANY数据类型的使用心得。

      西门子博途中的DB_ANY 数据类型主要是用来标识任意数据块的。对于西门子最新的S7-1200/1500 系列的PLC来说,可以用来选择访问编程期间尚不可用的数据块,但是300/400系列的PLC没有用过,不知道是否支持。所以,在访问块的接口时,需要先创建一个 块参数,数据类型为DB_ANY 数据类型。其中数据块名称或先前分配给数据块名称的 DB_ANY 数据类型的变量将在运行期间传送到此参数中。然后通过以下指令,处理数据块中用符号表示的内容。

VARIANT_TO_DB_ANY:将 VARIANT 转换为 DB_ANY

DB_ANY_TO_VARIANT:将 DB_ANY 转换为 VARIANT

有关这些指令的更多信息,请参见“基本指令 > STL/SCL > 转换操作 > VARIANT”(Basic instructions > STL/SCL > Conversion operations > VARIANT)。

该过程具有以下优势:不需要知道将要处理的数据块就能创建程序代码。

另外关于ANY数据类型,在编程语言 SCL 和 STL 中,如果在块参数中设定了一个 ANY 指针,则任意类型的存储器都可以在块调用时传递。但是,ANY 指针不能存储有关存储器结构的任何信息。例如,ANY 指针不能保存指向 PLC数据类型变量的信息。ANY 指针将其作为 BYTE 类型的 ARRAY。

ANY 数据类型的参数可以被传递到系统函数块 (SFB) 或系统函数 (SFC)。

ANY数据类型允许用作FB和FC的形式输入参数、输入/输出参数,及FC的输出参数。常量不允许用作其实际参数或用在其赋值语句的右边,除NIL常量外。

当调用FB或FC时,如果将临时变量用作ANY类型的形式参数,不能传递参数到远程块,传递他们时临时变量将失效。

这种类型变量不能用作结构类型的组件类型或作为数组的元素类型。

当调用FC或FB时,如果形式参数作为输入参数声明,只能指定过程输入(%PEW)给ANY类型的形式参数。

当调用FB时,如果形式参数作为输出参数声明,只能指定过程输出(%PAW)给ANY类型的形式参数。

就简单说这么多,自己用的也不是很多,望大家指正并补充


【有新意】+ 浅谈DB_ANY数据类型的用法 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3363条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。