您现在所在的是:

PLC论坛

回帖:40个,阅读:2500 [上一页] [1] [2] [3] [4] [5] [下一页]
* 帖子主题:

也聊聊“标准化”

2485
724886236
文章数:124
年度积分:172
历史总积分:2485
注册时间:2017/4/20
发站内信
发表于:2021/11/26 15:48:35
#0楼
从个人角度,简单说说论坛里面经常讨论的标准化,不喜勿喷。
这里所说的标准化一直在强调面向对象的思想,为了严谨点,特地百度了下,找了个个人感觉优缺点总结的比较好的说明,如下:
假如要乘出租车去机场。

面向过程的方式是:告诉司机,按照启动、右转、左转、停止等单独的接口去机场。这种方式需要乘客对自己的行为负责,乘客需要知道每个城市去机场的路线。

面向对象的方式是:告诉司机,请载我去机场。显然这种方法比面向过程的方法要容易得多。

在面向过程编程时,由于主程序承担的责任太多,要确保一切正确工作,还要协调各个函数并控制它们的先后顺序,因此经常会产生非常复杂的代码。很多时候变化是不可避免的,而功能分解法(面向过程思想)却又无法应对可能出现的变化。一旦修改代码,则bug越来越多。

因此,面对复杂的软件开发时,主程序不能做太多的事情,必须通过分离关注点进行职责转移。在上面的例子中,尽管具体实现在广州、北京或上海等不同城市中是不同的,但在任何城市都可以这么说,因为司机知道怎么去机场,这就是职责转移。

这个主要是面向高级语言的思想,这里面的对象太多,“万物皆对象”。
但是在自动化现阶段来说,常规设备用到的对象,一般包含:伺服电机(旋转、直线、DD),电机(变频、调速、步进),气缸、油缸、电缸、机械手、阀门等执行机构。光电、模拟量、视觉、限位开关、测距等检测机构。
那么面向对象,以伺服电机、气缸为例。
先把伺服电机功能标准化,电机的检测,上下限位,近点信号,急停信号;电机的控制,点动,原点回归,点对点定位,连续轨迹定位,插补控制,同步控制,凸轮控制;电机的反馈,当前值,当前速度,定位完成,报警,报警代码,各种控制状态等。
气缸功能标准化,气缸动点,原点输出,动点、原点检测,动点、原点延时,报警延时。

那么总结下来,标准化,就是先把设备中用到的对象功能统一编程,然后根据设备工艺去调用。下面几张图是几个不同设备的简单截图,不能准确的说明面向过程和面向对象,但是可以简单的看出一些区别。

1、2、3/面向对象  将常用对象针对设备工艺用到的功能模块化编程,然后主程序根据设备工艺去调用。
附件 面向对象.jpg

附件 面向对象1.jpg

附件 面向对象2.jpg

4/面向过程   所有的动作都在主工艺流程中编写。
附件 面向过程.jpg

大家看了上面的程序分类是不是觉得这个其实没有这么复杂,就是自己经常用的编程方法。其实大部分工程师在工作当中,已经潜移默化的使用了面向对象的编程方式,因为“面向对象程序设计方法是尽可能模拟人类的思维方式,使得软件的开发方法与过程尽可能接近人类认识世界、解决现实问题的方法和过程”。

所以我个人理解的标准化,是根据设备工艺,将设备对应的执行机构根据设备需求,模块化(做成对应的功能块或者函数),然后主流程根据工艺调用执行机构的控制,监视执行结构的反馈或者检测部分,从而完成设备程序的编制。最终程序结构清晰,方便阅读,方便后续增改,方便别人手,方便同样工艺设备引用即是标准程序。

如果说一个标准化“思想”可以说在任何设备使用,在任何平台使用,那么没问题!
如果说一个标准化“程序或者功能块”可以在任何设备使用,在任何平台使用,那么多半是吹嘘骗人!
气缸不说了,太简单。就以伺服电机这个对象的标准功能为例,首先脉冲伺服上面,各个品牌控制的指令都是不同的,无法程序通用。总线伺服上面,西门子,AB,三菱,安川,贝加莱,倍福主导的EtherCAT系,底层协议不一样,程序更无法通用。
就以一个品牌来说,以三菱为例,你编制一个通用的伺服控制功能块的前提也要说是脉冲的FX系列、还是中大型PLC的*D75P(D)模块,还是Basic网络伺服系列,还是光纤总线伺服系列。另外一个通用的伺服控制功能块,如果包含所有功能(点动、定位、回原、插补、同步、凸轮),也是有弊端的,会使程序臃肿,不使用的部分占用大量PLC内存空间,使PLC的处理变慢。所以一个标准的功能应该根据设备工艺需求,编制对应功能的、精简的标准块。
所以建议大家如果要标准化,还是根据自己所使用的工控产品品牌,根据自己的设备工艺,花时间做出基础功能的标准块库。这项工作,在液晶、3C的设备大厂里面已经开展了多年,所以他们几百个电气工程师,人员流动很大的情况下,仍然可以保证设备开发的效率和基本稳定性。
以上仅代表个人观点,谢谢。
[此贴子已经被作者于2021/11/26 15:50:12编辑过]
101
陈嘉伟
文章数:471
年度积分:101
历史总积分:101
注册时间:2019/6/13
发站内信
发表于:2021/11/26 16:00:58
#1楼
说的真好,都在点子上了
万掌门真要有楼主这样说的细分,就不会在论坛像过街老鼠,人见人打
420
LY-刘
文章数:540
年度积分:420
历史总积分:420
注册时间:2020/4/29
发站内信
发表于:2021/11/26 16:28:36
#2楼
现在的问题是抢进度的同时搞标准化,搞得不伦不类的,人都累死
9240
chi1225
文章数:2466
年度积分:636
历史总积分:9240
注册时间:2014/7/31
发站内信
发表于:2021/11/26 17:06:41
#3楼
说得真好,不像某些人,长篇大论几种完全不同的标准化之后,结果推出广告!  恶心!~~
搞野心事业总是有风险的,当无路可退时,最明智的选择是想办法前进~~
405
红狼B7BM
文章数:60
年度积分:405
历史总积分:405
注册时间:2021/2/22
发站内信
发表于:2021/11/26 17:31:52
#4楼
其实也是可以的,就是块作进一步细分,根据脉冲总线等具体控制方式写不同的块,将其插在上一层的块中,抽象出同样的功能引脚。所以标准化并没有想象的那么玄学,很多人不知不觉也用到了。
14441
deweg
文章数:2039
年度积分:661
历史总积分:14441
注册时间:2005/6/10
发站内信
发表于:2021/11/26 19:33:38
#5楼
学习下C#,java面向对象,通过对象的属性存数据。编程都是一通百通的。
28180
cfg168
文章数:17072
年度积分:76
历史总积分:28180
注册时间:2012/11/28
发站内信
2018论坛解答高手
2015论坛贡献奖
发表于:2021/11/26 19:47:36
#6楼
点赞楼主!插几句话:
如果你接手编程的设备种类很少,甚至很多基本都是硬件相似,功能相似的自动化设备,做功能块程序归集利大于弊,这叫事半功倍!
相反,如果你接手编程的设备种类繁多,工艺千奇百怪,硬件五花八门,单单翻阅硬件手册+编程手册去熟悉都忙死都够呛了,还瞎折腾搞出N种不同硬件的功能块程序,估计以后用重复使用的概率也是极少的吧?
4151
1240368017
文章数:473
年度积分:169
历史总积分:4151
注册时间:2018/6/19
发站内信
发表于:2021/11/26 21:22:25
#7楼
像这样有明明白白的实例说明,很能说服人。总比空喊口号。高谈阔论强。
26494
goldage
文章数:15081
年度积分:1996
历史总积分:26494
注册时间:2006/1/10
发站内信
2018论坛热心网友
发表于:2021/11/26 21:49:58
#8楼
中肯
38045
知道一点
文章数:22547
年度积分:2464
历史总积分:38045
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2021/11/26 23:25:47
#9楼
标准化“思想”赞同

就去机场这个事,如果当地只有一个机场司机能送到地,如果有几个机场,司机在按惯例送你过去,就可能误点。就首都机场而言,是1号航楼还是2号(这还好些挨的近走过去就是了),送到3号就惨了,司机再不问清楚(菜鸟)。
路线也是个问题,要快还是路近,过去司机被投诉的不在少数。
同样,控制一个气缸,简单吗?将所有气缸类型都整出标准程序?
如果说一个标准化“程序或者功能块”可以在任何设备使用,在任何平台使用,那么多半是吹嘘骗人!点赞
说到“对象”,将图中注释替代上面的“M or T”就是万先生不不用M/T。能做到吗?不是所有PLC都能做到,的,能做到,你又是这样编程序,同样能只修改“对象”就将整个程序中这个“对象”做了修改。
快乐 幸福 自由 比什么都重要

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005