查看: 1082|回复: 11
收起左侧

[综合教程经验] PLC编程再思考之三:面向过程

邀请回答

马上注册,享受更多特权

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

x
现在的高级语言基本上都是面向对象的,但是PLC编程象较早的BASIC/FORTRAN语言一样,是面向过程的。
PLC逻辑处理的基本过程为:
1) 将外部设备输入的数据写入输入映像区(I)。
2) 逻辑处理,包括读I区、写Q区。
3) 将输出映像区(Q)的数据输出到外部设备。
其中,1)和3)是PLC内部处理的,所有的PLC用户程序只处理第2)部分。
PLC的这种处理方式带来了下面2个特点。
特点1:OB1调用的程序不存在并发
我们知道,PLC用户程序主要运行在2个地方:中断和OB1。
一般而言,能够在一个扫描周期里完成的逻辑处理,通常我们会在OB1中进行调用,而OB1中的程序是按照严格的调用顺序进行处理的。
比如CPU扫描周期是20ms,那么在某个ns,CPU只会处理某个特定的FC/FB/NW。
举个例子,1工位的工人同时按个2个按钮,而在PLC层面,对这2个按钮的事件处理是有先后顺序的。
因此,严格地说起来,PLC不存在真正的并发。
有效利用这一特点,可以让编程变得更轻松。
比如1条线有30个工位要进行呼叫处理,而每个工位的呼叫处理逻辑是一样的,那么我们可以建立一个临时DB,存储任意一个工位的所有中间变量。
OB1按照工位的顺序进行处理,当执行到第N个工位时,临时DB的变量值就记录了第N个工位的中间变量值。当执行到下一工位时,临时DB被重写,以用于下一工位业务处理。
由于PLC在任意一个瞬间只处理一个特定的工位,因此临时DB的值和此工位有严格的对应关系,因此我们无需在FC里声明变量,因为所有的变量都已定义在临时DB中。
这样处理可以让程序更加简洁通用、变量少,可以用FC变相地实现FB的功能。
特点2:后面赋值覆盖前面赋值
高级语言在符合条件的时候就会输出,而PLC只会在所有逻辑处理完成以后才会输出,并且只输出最后写入的值。
比如在同一个扫描周期,先执行了Q0.0=0,后执行了Q0.0=1,由于在执行的过程中,数据仍然存储于输出映像区,这2步操作相当于在同一个扫描周期内对Q0.0的映像区进行了2个赋值操作,并用后一次赋值覆盖前一次赋值,因此OB1最终将Q0.0赋值为1,然后将此值输出到外部设备。
我们在编程的时候利用这一特点,可以减少一些比较的运算处理。
比如某工位按下按钮1则亮黄灯(红灯灭),按下按钮2则亮红灯(黄灯灭),同时按下则红灯亮(黄灯灭)。
也就是说从业务上来说,按钮2的级别较高。
相对的,我们可以先写按钮1的处理逻辑,再写按钮2的处理逻辑,当2个按钮都按下时,根据PLC的特点,CPU只输出按钮2的处理结果,因此我们无需写比较的程序。
————————————————





上一篇:怎么变成浮点数了
下一篇:求助,这个H3S的COM0怎么和威纶的RS232通讯?

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

Patrical 2022-7-5 17:03:28 | 显示全部楼层
感谢分享,真的不错,好资料
回复 送花

使用道具 举报

一万九5 2022-7-6 00:19:16 | 显示全部楼层
FC变相地实现FB的功能
这句话是金典

对封装来说 是缺陷,可能会造成错误,关联了DB,麻烦一点

但对于动态的编程来说
好处太多


回复 送花

使用道具 举报

Parker 2022-7-6 08:02:42 | 显示全部楼层
内容详细,感谢分享
回复 送花

使用道具 举报

zhuyi 2022-7-13 09:09:47 | 显示全部楼层
谢谢分享!thanks!
谢谢分享!thanks!
谢谢分享!thanks!
回复 送花

使用道具 举报

zhuyi 2022-7-13 09:43:01 | 显示全部楼层
plc 编程 c语言编程实例,PLC面向对象编程和梯形图编程,谁OUT了?
http://t.csdn.cn/VG9oE
回复 送花

使用道具 举报

一万九5 2022-7-13 20:31:24 | 显示全部楼层
浏览自己的贴子
发现一个 继承的处理方式
继承 有点多了怎么办
如何精简
创建一个fb  通过INOUT,只关联一部分
回复 送花

使用道具 举报

一万九5 2022-7-13 20:36:59 | 显示全部楼层
这就要求 FB的编写  不能随便
变量组 的组合,要精简 和完善
方便继承

水笔
欢迎指正
回复 送花

使用道具 举报

一万九5 2022-7-13 20:47:10 | 显示全部楼层
struct的处理
嵌套就是一个简单的继承
可以多级
这样最大的好处
结构清晰
不会出错
缺点:好像是整体的引用
这个缺点还是可以处理掉的
回复 送花

使用道具 举报

一万九5 2022-7-13 20:49:30 | 显示全部楼层
FB 内部的规划  很重要
精简  完善
方便继承

水笔

欢迎指正
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部