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 ...
随机推荐
- CR LF CR/LF
CR:Carriage Return,对应ASCII中转义字符 '\r' (0x0D),表示回车LF:Line Feed,对应ASCII中转义字符 '\n' (0x0A),表示换行CRLF:Carri ...
- Python 之网络编程之socket(1)TCP 方式与UDP方式
一:socket介绍 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API) ...
- Xcode Edit Schemes
关于本文:有关“Xcode Edit Schemes”的设置,还是有很大的学问的.由于时间关系,我一点一点的补充. 1.在开发的时候,至少将Run的Build Configuration设置为Debu ...
- 十 用栈解决LeetCode20题括号的匹配
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAiIAAACWCAYAAADjcONgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjw
- 夯实Java基础(十八)——泛型
1.什么是泛型 泛型是Java1.5中出现的新特性,也是最重要的一个特性.泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类. ...
- 注意重写类的equals()方法
注意在java中在比较引用类型时==和原生的equals()方法比较的都是看它们否是同一个对象(说的更直白一点就是他们在内存的位置是否是一样的),但我们在真实世界中关注的往往只是其中的某个属性是否相等 ...
- java的基本类型和对应的封装类
封装,是java这门语言的重要核心思想之一,封装也是对面向对象这一思想很好的体现. 在很多情况下,我们需要对数据进行一些转换,如:将一字符串"123"转换成int类型的123,或者 ...
- luogu P2766 最长不下降子序列问题
第一问可以直接DP来做,联想上一题,线性规划都可以化为网络流?我们可以借助第一问的DP数组,来建立第二问第三问的网络流图,考虑每一种可能,都是dp数组中满足num[i]>=num[j]& ...
- 5.9 Nginx的配置优化
- 条形码识别手持终端(PDA)人们每日触碰的科技
时尚达人的你,收快递物流时,毫无疑问在有时会好奇心,派送员腰部取出的那把“扫枪”,轻轻地一扫后,给你打开享有开拆快递物流的开心時刻.老湿机的你,是否会突然发觉,泊车交费时收费员哥哥已不找你许多零钱,只 ...