FC 与 FB 与 OB 的区别,时间标记冲突与一致性检查 有详细的步骤
关键字1 组织块的程序是由用户自己编写。
关键字2 时间标记冲突与一致性检查 有详细的步骤。
关键字3 FC 与 FB 与 OB 的区别?
(一)功能 功能块 区别 ?
FB 和FC均为 用户编写的程序。在他们的变量声明表中均有 IN OUT IN_OUT
和temp 变量 。
FC的返回值 Ret_Val 实际上属于输出参数。
下面是FC与FB的区别:
- 功能块有背景数据块,功能被哟背景数据块。只能在功能内访问功能的局部变量。
其它逻辑块可以访问背景数据块中的变量。
(2)功能没有静态变量。(STAT),功能块FB 有静态变量。
(3)功能FC如果执行完以后需要保存数据 只能用全局数据区(例如 共享数据块和M区。)
(4)如果功能,功能块内不使用全局变量。只是用局部变量 则移植容易。
(5)如果功能块使用了全局变量,在移值得时候 需要重新统一 分配 所有块内使用的全局变量的地址。。以保证不会发生地址冲突。
(6)功能块的局部变量有初始值。功能FC的局部变量没有初始值。
调用功能的时候需要给所有的输入,输出参数制定实参。
(二)组织块OB 与FB 与FC 区别?
事件或者故障出现的时候,由操作系统调用对应的组织块,其它逻辑块是由用户程序调用的。
组织块没有输入参数,输出参数,和静态变量,只有临时局部变量。
组织块自动生成的20B临时局部变量包括触发组织块的事件有关的信息。见下表1
他们由操作系统提供。
组织块中的程序是用户编写的。
用户可以自己定义和使用组织块前20B之后的临时局部数据。
表1 OB的临时局部变量
|
地址(字节) |
内容 |
|
0 |
事件级别与标识符 例如OB40的字节0为B#16#11(表示字节数据 16进制 值是0X11) 表示事件 |
|
1 |
用代码表示与启动OB的事件的有关信息 |
|
2 |
优先级 例如OB40 的优先级是16 |
|
3 |
OB的块号 例如OB40的块号 是 40 |
|
4~11 |
事件的附件信息 例如 OB40 的LB5是产生中断的模块的类型。 LW6为产生中断的模块的起始地址。 LD8 为产生中断的通道号。 |
|
12~19 |
OB被启动的日期和时间(年的低两位。月,日,时,分,秒,毫秒 星期) |
上表中,表示每一组织块 都有一个临时局部变量区域 。上表举例是OB40的。
时间标记冲突与一致性检查(重要 有详细步骤)
假设我在 实训 24 的变量声明表中 新增加了输入变量 ADD
如下图

然后 点击保存 FB1
提示一下错误 : 块接口地址冲突 警告信息

双击 打开 OB1 提示 至少有一个块调用 有时间标记 冲突 如下图

单击 确定按钮 打开以后 , 看到FB1的 方框 形参 ,实参 全部为红色 如下图

关闭OB1 打开simatic 7 的管理器 选中 左边窗口 的 "块"
执行菜单"编辑"----"检查块的一致性"

如下图

从上图可以 看到 OB1 和DB1 左边的红色故障指示灯点亮

点击工具栏 最左边的 的编译按钮,出现 要求关闭程序编辑器的"编译"对话框


点击 上图 的编译 开始 编译。
编译结束以后, 时间标志冲突被清除。 编译块的过程中 如下图

编译结束以后 ,DB1和 OB1 左侧的红色指示灯熄灭

重新打开OB1 红色方框以及 形参 实参 的红色消失、 同时 方框的左边出现了新增加的
输入参数 "ADD"

如果 用上述方法 还不能自动清除 有时间标志冲突, 只能删除有冲突的块。然后重新调用修改参数以后的块。
该文章没有录制视频。
FC 与 FB 与 OB 的区别,时间标记冲突与一致性检查 有详细的步骤的更多相关文章
- java continue break 关键字 详解 区别 用法 标记 标签 使用 示例 联系
本文关键词: java continue break 关键字 详解 区别 用法 标记 标签 使用 示例 联系 跳出循环 带标签的continue和break 嵌套循环 深入continue ...
- Linux下文件的三种时间标记(atime ctime mtime)
在windows下,一个文件有:创建时间.修改时间.访问时间. 在Linux下,一个文件有:状态改动时间.修改时间.访问时间. 1)查看文件(或文件夹)的三种时间标记 (stat 命令) Access ...
- Linux下文件的三种时间标记:访问时间、修改时间、状态改动时间 (转载)
在windows下,一个文件有:创建时间.修改时间.访问时间. 而在Linux下,一个文件也有三种时间,分别是:访问时间.修改时间.状态改动时间. 两者有此不同,在Linux下没有创建时间的概念,也就 ...
- 详解RPC远程调用和消息队列MQ的区别
PC(Remote Procedure Call)远程过程调用,主要解决远程通信间的问题,不需要了解底层网络的通信机制. RPC框架 知名度较高的有Thrift(FB的).dubbo(阿里的). RP ...
- eAccelerator、memcached、xcache、APC 等四个加速扩展的区别
折腾VPS的朋友,在安装好LNMP等Web运行环境后都会选择一些缓存扩展安装以提高PHP运行速度,常被人介绍的有eAccelerator.memcached.xcache.Alternative PH ...
- JUnit4 中@AfterClass @BeforeClass @after @before的区别对比
JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeCla ...
- Session和Cache的区别
以前实现数据的缓存有很多种方法,有客户端的Cookie,有服务器端的Session和Application.其中Cookie是保存在客户端的一组数据,主要用来保存用户名等个人信息.Session则保存 ...
- public/private/protected访问控制权限的区别
//public/private/protected访问控制权限的区别//时间:2016/8/16 //(一)修饰成员: //public: 在类内.类外都能使用 . //protected: 在类内 ...
- Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别
Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别 时间 2012-12-19 20:30:12 CSDN博客原文 http://blog.cs ...
随机推荐
- 「Luogu P5494 【模板】线段树分裂」
(因为没有认证,所以这道题就由Froggy上传) 线段树分裂用到的地方确实并不多,luogu上以前也没有这道模板题,所以就出了一道,实在是想不出怎么出模板了,所以这道题可能可以用一些其他的算法水过去. ...
- PLSQL Developer常用设置及快捷键
CSDN日报20170314--<40岁程序员真的要被淘汰了么?> 程序员2月书讯 [直播]用面向协议的思想简化网络请求 博客一键搬家活动开始啦 PLSQL Developer常用设置及快 ...
- smoj2828子数组有主元素
题面 一个数组B,如果有其中一个元素出现的次数大于length(B) div 2,那么该元素就是数组B的主元素,显然数组B最多只有1个主元素,因为数组B有主元素,所以被称为"优美的" ...
- C++中%d,%s,%x,%f,%.100f,%的意思
C++中%d,%s,%x,%f,%.100f,%的意思 标准格式化输出:格式字符有d,o,x,u,c,s,f,e,g等. 格式说明:由“%”和格式字符组成,如%d.%f等. %c用来输出一个字符; % ...
- 吴裕雄--天生自然HADOOP操作实验学习笔记:pvuv统计案例理论
实验目的 复习pv.uv的概念和原理 了解pv.uv的实际意义和获取方法 实验原理 前面我们已经基于mapreduce进行数据的etl处理,实验有很多不足之处,这次实验我们是基于url数据进行pv和u ...
- QQ企业通---登录模块设计--知识点
Rectangle 成员 存储一组整数,共四个,表示一个矩形的位置和大小.对于更高级的区域函数,请使用 Region 对象. Form与Control的区别? 窗体也是控件,继承Control类.可 ...
- java并发之CopyOnWriteArraySet
java并发之CopyOnWriteArraySet CopyOnWriteArraySet是基于CopyOnWriteArrayList实现的,持有CopyOnWriteArrayList的内部对象 ...
- 第1节 kafka消息队列:2、kafka的架构介绍以及基本组件模型介绍
3.kafka的架构模型 1.producer:消息的生产者,主要是用于生产消息的.主要是接入一些外部的数据源,从外部获取数据,比如说我们可以从flume获取数据,还可以通过ftp传入数据等,还可以通 ...
- 关于Java构造类与对象的思考
简单记录一下Java构造类与对象时的流程以及this和super对于特殊例子的分析. 首先,接着昨天的问题,我做出了几个变形: Pic1.原版: Pic2.去掉了T.foo方法中的this关键字: P ...
- Vue.js 内联样式绑定style
html <div class="Menu" v-bind:style="{height:clientHeight}"> </div> ...