西门子的实例解析(单实例,多重实例,参数实例)

实例

定义:函数块调用后,需要相应的存储器保存工作数据。这些数据又称为实例。

实例具有以下特性:

实例通常分配给一个 FB。

实例的结构取决于所关联函数块的接口,且只能在此进行更改。

实例在函数块调用时自动生成。

单实例:

被调用的函数块将数据保存在自已的背景数据块中。

使用单实例具有以下优势:

函数块可重用

适用于简单程序的完美结构

缺点:如果重复调用会导致大量数据块,不方便管理。

多重实例:

被调用函数块不会将数据保存在自已的背景数据块中,而是保存在另一函数块的实例中。

使用多重实例具有以下优势:

适用于复杂块的完美结构。

背景数据块的数量较少。

轻松编写本地子程序,如本地定时器或边沿评估等。

注意:多重实例数据位于调用块的“Static”区域中。

参数实例:

将函数块的实例作为输入输出参数 (InOut) 传送到另一数据块中。该块可访问已传送实例中的数据或调用关联函数块。

使用参数实例具有以下优势:

在运行过程中,可定义当前使用的实例。  
在程序循环中,可通过迭代方式处理不同的实例。

注意:参数实例数据位于调用块的“InOut”区域中。

实际测试

单个实例

首先先新建一个FB块作为主程序。

在这里插入图片描述

开始生成一个单个实例

在这里插入图片描述

可以看到再FB块下生成了一个相应的DB块。

在这里插入图片描述

多重实例

生成一个多重实例

在这里插入图片描述

注意没有DB块生成。

在这里插入图片描述

实例的数据存到调用的块里面去了。

在这里插入图片描述

参数实例

生成一个参数实例

在这里插入图片描述

注意没有DB块生成。

在这里插入图片描述

实例的数据接口到了调用块的输入接口。

在这里插入图片描述

Linux中的多线程实际上是通过进程来模拟实现的。在Linux中,多个线程是通过共享父进程的资源来实现的,而不是像其他操作系统那样拥有自己独立的线程管理模块。因此,在Linux中所谓的“线程”其实是通过克隆父进程的资源而形成的“线程”。这也是为什么在Linux中所说的“线程”概念需要加上引号的原因。 对于Linux中的线程,需要使用线程库来进行管理。具体来说,Linux中的线程ID(pthread_t类型)实质上是进程地址空间上的一个地址。因此,要管理这些线程,需要在线程库中进行描述和组织。 由于Linux中没有真正意义上的线程,因此线程的管理和调度都是由线程库来完成的。线程库负责创建线程、终止线程、调度线程、切换线程,以及为线程分配资源、释放资源和回收资源等任务。需要注意的是,线程的具体实现取决于Linux的实现,目前Linux使用的是NPTL(Native POSIX Thread Library)。 总结来说,Linux中的多线程是通过进程来模拟实现的,线程共享父进程的资源。线程的管理和调度由线程库完成。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux —— 多线程](https://blog.csdn.net/sjsjnsjnn/article/details/126062127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值