[西门子] 西门子PLC 组织块 (OB)

[复制链接]
查看187 | 回复0 | 2024-8-16 21:11:51 | 显示全部楼层 |阅读模式
>
1.什么是西门子PLC组织块 (OB)
组织块(OB)就像是操作系统和用户程序之间的桥梁,给程序提供了结构。它们是靠事件来驱动的,比如说诊断中断或者时间间隔这类事情,都会让CPU去执行对应的OB。有些OB里面已经设定好了启动事件和要做的事情。
程序循环OB特别重要,因为它里面装着用户的主程序。而且,用户程序里可以有多个这样的程序循环OB。当设备处在RUN模式的时候,程序循环OB会以最低的优先级运行,这意味着其他类型的事件可以打断它。不过,启动OB是个例外,它不会打断程序循环OB,因为CPU在进入RUN模式之前,会先执行启动OB。
程序循环OB处理完事情后,CPU会马上重新开始执行它。这种循环处理在可编程逻辑控制器里是很常见的“正常”处理方式。对于很多应用来说,整个用户程序都放在一个程序循环OB里。
当然,我们也可以创建其他的OB来执行特定的功能,比如处理中断和错误,或者按照特定的时间间隔来执行某些程序代码。这些OB可以打断程序循环OB的执行。

2. 创建 OB
  要使用“添加新块”(Add new block) 对话框在用户程序里创建一个新的OB,你得知道这些OB都是靠事件来驱动中断处理的。也就是说,一旦有这类事件发生,CPU就会立马打断用户程序的执行,去调用已经设置好的、专门用来处理这个事件的OB。等这个中断OB执行完了,CPU又会回到原来的地方,继续执行用户程序。
3. 创建附加 OB
你可以给用户程序,甚至是程序循环和启动OB事件,创建好多个OB。想创建新的OB时,就用“添加新块”(Add new block) 对话框,然后给OB起个名字。
如果你给用户程序创建了多个程序循环OB,那CPU就会按照数字顺序,一个接一个地执行这些程序循环OB。也就是说,它会从编号最小的那个程序循环OB(比如OB 1)开始执行。等第一个程序循环OB(比如OB 1)执行完了,CPU就会接着执行编号稍大一点的那个程序循环OB。
4. 组态 OB 的属性
可对 OB 的属性进行修改。例如,可组态 OB 编号或编程语言。

5. 功能 (FC)
功能(FC)就像是一个代码小盒子,专门用来对一组输入值进行特定的运算。运算完的结果,它会存到一个特定的地方,比如存储器里。你可以用这个FC来做很多事儿,比如数学计算,或者执行一些工艺上的功能,比如用位逻辑运算来控制某些东西。而且,FC的好处是你可以在程序的不同地方反复调用它,这样编程就变得简单多了,特别是对于那些经常要重复做的任务。
FC没有自己的背景数据块(DB),它用的是一个叫做局部数据堆栈的东西来存那些临时算出来的数据。这些数据只是临时存一下,不会一直保存。如果你想把数据长期保存下来,你可以把运算的结果存到一个全局的存储器位置,比如M存储器或者全局DB里。
6. 功能块 (FB)
功能块(FB)是个特别的代码块,它会用一个叫做背景数据块(DB)的东西来保存自己的参数和不会变的数据。你可以把这个背景DB想象成是一个和FB紧密相关的小仓库,它专门用来存放和FB有关的变量。每当FB运行完后,这个小仓库就会保存下所有的数据。
更厉害的是,你可以给FB的不同调用配上不同的背景DB。这样,一个通用的FB就能控制好多不同的设备了。构建程序的时候,你只需要让一个代码块去调用FB和对应的背景DB就行。
然后,CPU就会去执行FB里的程序代码,并把那些块参数和不会变的局部数据都存到背景DB里。FB运行完后,CPU就会回到原来调用它的那个代码块里。而背景DB呢,它会一直保留着这个FB实例的值。所以,不管你是在同一个扫描周期里还是别的扫描周期里再次调用这个功能块,都能用到这些值。




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则