回复:从来都没搞懂,什么叫面向对象编程?

已锁定

手机用户20200103736849

  • 帖子

    50
  • 精华

    0
  • 被关注

    0

论坛等级:游侠

注册时间:2020-01-03

普通 普通 如何晋级?

发布于 2022-08-09 16:58:03

46楼

面向对象应该是数据和算法(工艺)封装到一个块.输入输出加背景数据块是我以前以为的标准化,是可以只少量更改接口参数或屏蔽某个功能块输入,就可以实现同一个程序块用在不同的类似设备上,或者同一个工程项目的不同硬件控制上,我觉得对于非标设备前期方案的不确定性和后期的快速更改调试有用.只是这样既费内存空间又增大扫描周期.而有些情况,直接写更简单有效率,plc又不像pc有无限的内存,对实时性要求又不高

不过看论坛上的标准化,似乎是更侧重于plc资源的标准化利用,约定好各段资源用来干什么,以及程序架构的标准化


我觉得面向过程和面向对象,在plc上可以粗浅的理解为面向输入和面向输出,流程控制本来就是靠启停初始化急停复位,以及各种光电信号,计数信号,模拟量等等,来启动流程和切换流程的,所以面向过程可以理解为面向输入,根据输入条件的变化来控制,围绕流程来组织程序

面向输出,就是面向执行元件,执行元件其实就是控制对象,电机气缸伺服加热棒等等,每一个都有自己的启停和状态变化流程,虽然实际上可能用的都是同样的启动停止信号

面向输入,对信号的读取比较集中,对输出的写入改变比较分散,比如流程1,对一些输出置复位,流程2,对另一些输出置复位

面向输出,对信号的读取比较分散,对输出的写入改变比较集中,比如启停信号在不同的子程序调用都用到,而如果输出使用线圈,那么整个程序只有一个地方会改变输出状态,同样对于中间量也可以使用线圈,不使用置复位,或者只在一个子程序内部使用置复位,子程序以外只读不写,这样时序监控就比较清晰.


面向流程,程序比较好写,面向输出,监控调试比较方便,我现在是写流程,但在流程中不输出置复位,也不使用中间变量,只是在输出线圈那边使用流程作为起保停的条件.其实如果使用s寄存器也是相当于中间变量,如果是高级点的plc,可以定义枚举类型,倒可以定义流程步的枚举,现在只能在注释里写各个流程值是什么意思,流程步多的话,注释还写不下,符号表可以给常量命名,但上传程序后就没了,最后的办法就是用多个寄存器存常量



评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9016条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。