关键字1 组织块的程序是由用户自己编写。

关键字2 时间标记冲突与一致性检查 有详细的步骤。

关键字3 FC 与 FB 与 OB 的区别?

 

(一)功能 功能块 区别 ?

FB 和FC均为 用户编写的程序。在他们的变量声明表中均有 IN OUT IN_OUT

和temp 变量 。

FC的返回值 Ret_Val 实际上属于输出参数。

 

下面是FC与FB的区别:

  1. 功能块有背景数据块,功能被哟背景数据块。只能在功能内访问功能的局部变量。

    其它逻辑块可以访问背景数据块中的变量。

(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 的区别,时间标记冲突与一致性检查 有详细的步骤的更多相关文章

  1. java continue break 关键字 详解 区别 用法 标记 标签 使用 示例 联系

    本文关键词: java continue break 关键字 详解 区别  用法 标记  标签 使用 示例 联系   跳出循环 带标签的continue和break 嵌套循环  深入continue ...

  2. Linux下文件的三种时间标记(atime ctime mtime)

    在windows下,一个文件有:创建时间.修改时间.访问时间. 在Linux下,一个文件有:状态改动时间.修改时间.访问时间. 1)查看文件(或文件夹)的三种时间标记 (stat 命令) Access ...

  3. Linux下文件的三种时间标记:访问时间、修改时间、状态改动时间 (转载)

    在windows下,一个文件有:创建时间.修改时间.访问时间. 而在Linux下,一个文件也有三种时间,分别是:访问时间.修改时间.状态改动时间. 两者有此不同,在Linux下没有创建时间的概念,也就 ...

  4. 详解RPC远程调用和消息队列MQ的区别

    PC(Remote Procedure Call)远程过程调用,主要解决远程通信间的问题,不需要了解底层网络的通信机制. RPC框架 知名度较高的有Thrift(FB的).dubbo(阿里的). RP ...

  5. eAccelerator、memcached、xcache、APC 等四个加速扩展的区别

    折腾VPS的朋友,在安装好LNMP等Web运行环境后都会选择一些缓存扩展安装以提高PHP运行速度,常被人介绍的有eAccelerator.memcached.xcache.Alternative PH ...

  6. JUnit4 中@AfterClass @BeforeClass @after @before的区别对比

    JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeCla ...

  7. Session和Cache的区别

    以前实现数据的缓存有很多种方法,有客户端的Cookie,有服务器端的Session和Application.其中Cookie是保存在客户端的一组数据,主要用来保存用户名等个人信息.Session则保存 ...

  8. public/private/protected访问控制权限的区别

    //public/private/protected访问控制权限的区别//时间:2016/8/16 //(一)修饰成员: //public: 在类内.类外都能使用 . //protected: 在类内 ...

  9. 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 ...

随机推荐

  1. 三、linux基础-常用命令man_cd_|_find_ln_>_history

    3通用命令3.1 man命令man pwd      来查看该命令的全部帮助手册备注:命令最终是在内核中执行的,但是内核并无法直接识别,所以先通过shell执行,然后再交给内核执行3.2 cd 命令c ...

  2. 手机wifi的mac地址是什么??

    简单来说,每个能够接入网络的设备,无论是平板.手机.电脑.电视都有一个专门的序号,这个序号就被称为MAC,正常来说可以看做是这款设备的唯一标识,手机里的MAC其实是特指Wi-Fi无线网卡的MAC地址. ...

  3. 谷歌下,因为给外层大容器设置 overflow:visible; 而导致问题,IE、火狐正常

    #selector { height: auto !important; width: 1024px!important; margin: auto; overflow:visible !import ...

  4. Python 基础之模块之math random time

    一:math 数学模块import math#(1)ceil() 向上取整操作 (对比内置round)res = math.ceil(6.001)  #注意精度损耗print(res)#(2)floo ...

  5. 记一个 protobuf 的 jar 包冲突

    尝试使用 spark 以 bulkload 的方式写 HBase 时,遇到一个问题,错误堆栈如下 19/02/02 09:00:43 ERROR Utils: Aborting task java.l ...

  6. unity 骨骼 蒙皮

    https://blog.csdn.net/weixin_44350205/article/details/100551233 https://www.jianshu.com/p/d5e2870eb3 ...

  7. ISAP 算法

    Dinic 算法其实已经足够处理大多数的网络流了,但还不够快.接下来介绍的是最优秀的增广路最大流算法:ISAP(Improve Shortest Argumenting Path).它的时间复杂度上界 ...

  8. importlib 与__import__的区别

    importlib 与__import__的区别 importlib import importlib name = "lib.test" # lib.test指的是lib路劲下的 ...

  9. Acwing897 最长公共子序列

    题目大意:求两个字符串的最长公共子序列的长度. 分析:这是一个典型的dp入门题,LCS. 代码: #include<bits/stdc++.h> using namespace std; ...

  10. ROS学习笔记6-理解主题

    本文来源于:http://wiki.ros.org/ROS/Tutorials/UnderstandingTopics ROS主题假设turtlesim节点已经运行,打开一个新终端,使用如下命令运行键 ...