设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子博途:参数实例
返回列表
发新帖
[西门子]
西门子博途:参数实例
[复制链接]
275
|
0
|
2024-6-9 21:05:19
|
显示全部楼层
|
阅读模式
>
参数实例:
定义
参数实例是一种特殊的实例化方式:
在运行过程中,可以将待使用的块实例作为 in-out 参数 (InOut) 传送到调用块中。
优势
使用参数实例具有以下优势:
在运行过程中,可定义当前使用的实例。
在程序循环中,可通过迭代方式处理不同的实例。
说明
ARRAY 实例
要简化程序循环中实例的迭代处理过程,可定义一个 ARRAY 实例。
数据类型为“DB_ANY”的 ARRAY
多重实例 ARRAY
在程序循环过程中,可通过可变下标对各 ARRAY 元素进行寻址。
另请参见:参数实例的使用示例
参数实例的工作原理
下图显示了“Caller”,正使用另一函数块(“Valve”)。“Valve”的实例将作为参数实例进行传递。为此,需定义一个 in-out 参数(("#valveInstance")),用于在运行期间传送该特定实例。
创建参数实例
参数实例在调用函数块时定义。调用函数块时,可在显示的对话框中指定将该函数块作为单实例、多重实例或参数实例进行调用。此外,也可以在块接口中直接手动输入参数实例。
另请参见:声明参数实例
下图显示了函数块“Valve”的参数实例调用:
将实例作为参数传送
每次调用较高级别函数块时(本示例中为“Caller”),将为被调用函数块传送一个实例(本示例为“Valve”)。可传送以下类型的实例:
单实例
传送被调用函数块的现有背景数据块。
多重实例
传送被调用函数块现有的多重实例。
多重实例 ARRAY 的各个元素
传送多重实例现有 ARRAY 的元素。
数据类型为“DB_ANY”的变量 (S7-1200 >= V4.2 / S7-1500 >= V2.0)
将数据类型为“DB_Any”的变量传送到运行期间所分配的相应实例处。
请注意,“指令”(Instructions) 任务卡中的系统块实例不支持这种参数传递方式。
下图显示了函数块“Caller”的调用。通过“valveInstance”参数,传送实例“#currValve”。在运行期间,将通过 #currValve 参数处未决的实例调用“Valve”。
在 S7-1200/S7-1500 系列的 CPU 中,也可将位于另一函数块的背景数据块中的实例作为参数传送。
在以下示例中,所传递的实例位于背景数据块“MyOtherIDB”中 (S7-1200/S7-1500):
在以下示例中,所传递的实例位于背景数据块“MyOtherIDB”的 ARRAY of multi-instances 中 (S7-1200/S7-1500):
在以下示例中,从数据类型为“DB_ANY”的 ARRAY 中传送来的实例位于全局数据块“DB_ValveInstances”中:
声明参数实例
简介
下表列出了块接口中的声明方式和使用的参数实例:
声明
块类型
应用
InOut
FB
FC
之后,可调用在函数块中作为实参传送的实例。
Input
FC
用户读取作为实参传送的实例数据,但无法在块中调用该实例。
Output
FC
用户可写入作为实参传送的实例数据,但无法在块中调用该实例。
要求
块接口已打开。
操作步骤
要声明参数实例,请按以下步骤操作:
打开块接口的指定区域(参见表格)。
在“名称”(Name) 列中,输入实例待传送的 in/out 参数名称。
在“数据类型”(Data type) 列中,输入应定义实例的函数块名称。块名称必须用引号括起。
说明
自动声明参数实例
在程序段中编程一个块调用时,程序编辑器会自动声明参数实例,然后在“调用方式”(Call options) 对话框中指定将该块作为参数实例调用。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
机器人及PLC
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』