实训26 多重背景的应用 (假设功能块1与功能块2 的背景专用存储区变量类型一样,不需要两个背景专用数据块,节省空间)

实训26 多重背景的应用

应用场景

新建 功能块 FB10 激活 多重背景功能

功能块1 FB1 也应该激活 多重背景功能

实现多重背景的关键

在功能块FB10 的变量声明表中。声明了名为"Motor1"和"Motor2"的两个静态变量

(STAT), 两个静态变量的数据类型为 FB1,

功能块FB1也可以做为数据类型?

多重背景实际训练 建立 工程的步骤

试验目的: 假设需要控制两台电机 程序在 OB1 中。 OB1中两个控制功能块。

电机控制功能块1 FB1 电机控制功能块 2 FB2

两个功能块仅仅是 输入 输出 接口 不一样 ,内部的逻辑一样。

已知。 电机FB1 有一个专有的背景数据块1 DB1

电机 FB2有一个专有的背景数据块2 DB2

现在的想法是 没必要用两个背景数据块, 浪费资源, 所以想法就是 用一个 数据块。

供两个功能块 功能块1 和 功能块 2 共同使用 。

假设这个公用的背景数据块 为 DB10 则我还需要一个功能块 FB10

然后 仅在组织块OB1 中 调用功能块 FB10 就OK 了。

步骤一:建立FB1 并保存 不用建立 DB1 FB1 具有 多重背景数据块能力。

选择 属性 符号名 为 电机控制

步骤二: 建立功能块FB10 .具有多重数据块能力

步骤3 :

在FB10 的程序编辑部分 把FB1 拖进来。

步骤4

步骤 5 新建程序段 2

此时 FB1 还没有制定 背景数据块 DB1

步骤6 在FB10 的最放上的变量声明表中 在 静态变量STAT 里面 数据

类型 输入 "电机控制 "

前面已经建立了 符号名称 为"电机控制"的功能块 FB1

在变量声明表里面 的 静态变量 STAT 的 数据类型 中输入

步骤7

将两个 静态变量 STAT1 和 STAT2 的名称改为 motor1 和 motor 2

步骤 8 删除了FB11 程序里面的 两个"电机控制"的块

步骤9 在左侧的指令 里面的 多重背景 文件夹 下面

有 motor 1 和 motor 2 两个块 拖进程序里面。

步骤10

新建数据功能块 FB10的数据块 DB10

步骤11 建立 功能块 FB10 的专用数据块 DB10

打开DB10 顺便看一下:

发现 第11行的 定时器 变量的初值 也是 T0 ,我感觉应该不一样才对。

步骤12 制定 输入局部变量 输出局部变量

步骤13

打开 PLCSIM

分别下载 组织块 OB1

分别 下载 功能块 FB1

分别 下载 功能块 FB10

分别下载 功能块FB10 的 背景专用数据块 DB10

程序已经仿真通过 。

录制成视频 保存在百度网盘 。

原文地址:https://www.cnblogs.com/bailongwei654321/p/12271107.html

时间: 2024-10-08 10:34:39

实训26 多重背景的应用 (假设功能块1与功能块2 的背景专用存储区变量类型一样,不需要两个背景专用数据块,节省空间)的相关文章

实训24 功能块的生成与调用 注意功能块的背景数据块 变量表最左侧的地址是系统自动生成的。前面讲 功能块与功能的区别是 功能块不能一个扫描周期完成,本功能块例子 确实不是一个扫描周期能完成,例如判断转速超速 可能过了好多扫描周期

实训24 功能块的生成与调用 一定要注意 功能块的背景数据块中 最左侧的地址 是自动生成的. 我只需要在功能块的程序中输入 符号 名称 例如 start stop tof …….等等. 如下图 功能块 是用户编写的有自己存储区(背景数据块)的逻辑块. 功能块主要用于执行在一个扫描周期内不能结束的操作. TOF是timer 数据类型 属于输入局部变量. 本例程的输入参数TOF的数据类型为Timer(定时器),TOF的实参应该为定时器的编号 例如T1 PRESPEED 是静止变量 STAT 初始值是

<实训|第五天>通过搭建NFS,FTP实现共享文件附Vim脚本游戏

先说个事情:我周末是不更新这个系列教程的,不过其他内容的会更新,我周末就整理这一周的各种内容到我的微信公众号中,提供给大家! 期待已久的linux运维.oracle"培训班"终于开班了,小编从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到了什么知识点,用了什么方法,使用了什么工具,工具在哪里共享着等等,努力做到让每一位感兴趣的老司机都能在自己闲暇的时光学到一点额外的知识,指不定那一天你就用上了少许呢! 感谢大家的支持

<实训|第四天>Linux下的vim你真的掌握了吗?附上ftp远程命令上传。

期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到了什么知识点,用了什么方法,使用了什么工具,工具在哪里共享着等等,努力做到让每一位感兴趣的.关注我的.没关注我的老司机都能在自己闲暇的时光学到一点额外的知识,指不定那一天你就用上了少许呢! ------------------------------------------------------------

<实训|第二天>掌握linux6.7中安装vmware、vmware安装linux发行版本以及遇到的问题最后libreoffice的安装

期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到了什么知识点,用了什么方法,使用了什么工具,工具在哪里共享着等等,努力做到让每一位感兴趣的.关注我的.没关注我的老司机都能在自己闲暇的时光学到一点额外的知识,指不定那一天你就用上了少许呢! ------------------------------------------------------------

<实训|第三天>Linux登录界面的修改以及Richard Stallman、自由软件运动

在写博客之前我想说两点: 承认一个错误,昨天写的实训第二天,我把redhat6.7写成了Linux6.7,感谢热心人士的指出! 昨天写的文章名字太长了,今天改善,内容感觉表述不全,希望各位谅解! 官方跟我说的是安装配置类的文章不能放进首页中,今天虽然有一点,但是主体部分还是对GUN.Linux和TCP/IP以及IP的认识. 期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教

c++课程实训 银行储蓄系统

基本要求:定义了用户类(User)和银行类(Bank),用成员函数实现各种功能,多文件组织程序.能用文本文件存取数据(如演示样例中给出的技术): 拓展方向: 序号 加分项目 细       则 1 改变Bank类中用户信息的存储方式 用对象的指针数组存储(User *user[upNum]) 或者用动态数组(User *users.空间用new分配) 2 功能扩充 按银行实际业务的要求,添加User类中的数据成员,可以记录身份证号.家庭住址等信息,并在相关业务中使用这些数据. 记录用户的每一笔业

.NET MVC4 实训记录之四(Unit of work + Repository)

今日后开启进阶模式! 谈到MVC与EntityFramework,则不得不说一说事务与仓储(Unit of work + Repository). 仓储(Repository):领域对象集合.用于操作领域对象与数据库上下文(DbContext)的交互(在此不得不说一声,领域对象和数据库表对象还是有区别的.领域对象实际上是一组有业务关系的数据库对象的抽象.最简单的形式就是主表.关系表在同一个领域对象中进行定义.例如我们前几章看到的UserProfile,它即定义了用户信息,又定义了用户角色关系信息

.NET MVC4 实训记录之五(访问自定义资源文件)

.Net平台下工作好几年了,资源文件么,大多数使用的是.resx文件.它是个好东西,很容易上手,工作效率高,性能稳定.使用.resx文件,会在编译期动态生成已文件名命名的静态类,因此它的访问速度当然是最快的.但是它也有个最大的缺点,就是修改资源文件后,项目必须重新编译,否则修改的资源不能被识别.这对于维护期的工作来讲,非常麻烦.尤其是已经上线的项目,即使是修改一个title的显示,也需要停掉项目.由于本人做了好几年的维护,应该是从工作到现在,一直没有间断过的做维护项目,因此深受其害!必须找到一个

第一天的实训

今天我们的实训主要是做需求分析: 我们的倒计时基本功能是实现了,但是不够完善,所以我们小组的实训任务就是把倒计时进行完善,完善的方面主要从注册.登陆.加密文件.记事本.倒计时.背景图片等几个方面,如果还有其他功能,我们日后会在加上,现在这几个是主要方面,而其中的登陆注册是用到数据库方面的内容,我们小组这方面比较欠缺,希望通过这次实训能进步一下,还有那个加密文件,我个人觉得很好,比如,我的一些私人秘密我不希望别人知道,但是又怕忘记,这个加密文件就是一个很好的功能,当然其他还有一些功能都各有各的好处