设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子博途:VARIANT_TO_DB_ANY:将 VARIANT 转换为 DB_ ...
返回列表
发新帖
[西门子]
西门子博途:VARIANT_TO_DB_ANY:将 VARIANT 转换为 DB_ANY
[复制链接]
293
|
0
|
2024-6-9 21:07:17
|
显示全部楼层
|
阅读模式
>
说明
可以使用指令“将 VARIANT 转换为 DB_ANY”查询 IN 参数地址指定的操作数的数据块编号。它可以是背景数据块或 ARRAY 数据块。IN 参数的操作数具有数据类型 VARIANT,这意味着在创建程序时不需要知道将被查询编号的数据块的数据类型。在运行期间将会读取数据块编号,并将其写入 RET_VAL 参数指定的操作数。
要求
如果满足条件,则执行该指令。如果不满足条件,则输出“0”作为数据块编号。
输出变量...
转换结果...
转换选项
VARIANT
... 作为 PLC 数据类型或系统数据类型 (SDT) 的背景数据块的数据块。
可以将该输出变量转换为数据块编号。
VARIANT
... 作为 ARRAY 数据块的数据块。
可以将该输出变量转换为数据块编号。
VARIANT
... 带有基本数据类型的对象
由于数据块中并不仅仅只包含一个基本数据类型,因此无法将该输出变量转换为数据库编号。
VARIANT
... 数据块中的结构
由于该结构仅仅是数据块中的一部分,因此无法将该输出变量转换为数据库编号。
参数
下表列出了该指令的参数:
参数
声明
数据类型
存储区
说明
IN
Input
VARIANT
L(可在块接口的“Input”、“InOut”和“Temp”部分进行声明。)
待读取的变量(“DB_ANY_TO_VARIANT”指令的函数值)。IN 参数处可使用全局变量或局部变量。
ERR
Output
INT
I、Q、M、D、L
错误信息
函数值 (RET_VAL)
DB_ANY
I、Q、M、D、L
结果:背景数据块的编号
有关有效数据类型的更多信息,请参见“另请参见”。
ERR 参数
下表列出了 ERR 参数值的含义:
错误代码*
(W#16#...)
说明
0000
无错误
252C
IN 参数的 VARIANT 数据类型的值为“0”,并且 CPU 更改为 STOP 模式。
80B4
存储在 ARRAY 数据块中的元素数据类型与 VARIANT 中传输的元素数据类型不匹配。
8130
IN 参数的数据类型为 ANY。
8131
数据块不存在、太短或位于装载存储器中。
8132
该数据块太短且不是 ARRAY 数据块。
8150
参数 IN 中数据类型 VARIANT 的值为“0”。要接收此错误消息,必须激活“在块内处理错误”块属性。否则 CPU 将更改为 STOP 模式并发送错误代码 16#252C。
8153
IN 参数的 VARIANT 数据类型不指向 ARRAY 数据块的起点,或者 VARIANT 的长度与数据块的长度不匹配。
8154
该数据块的数据类型不正确。
* 在程序编辑器中,错误代码可显示为整数或十六进制值。有关切换显示格式的更多信息,请参见“另请参见”。
示例
以下示例说明了该指令的工作原理:
SCL
"OutputDBNumber" := VARIANT_TO_DB_ANY(IN := #tempVARIANT,
ERR := "Tag_Error");
下表将通过具体的操作数值对该指令的工作原理进行说明:
参数
块接口中的声明
操作数
值
IN
Input
tempVARIANT
-
<函数值>
Output
OutputDBNumber
11
读取 tempVARIANT 操作数中指定的数据块的编号。由于操作数具有数据类型 VARIANT,所以在创建程序时不需要知道变量的数据类型。编号将写入具有 DB_ANY 数据类型的“OutputDBNumber”变量。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
机器人及PLC
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』