您现在所在的是:

PLC论坛

回帖:8个,阅读:639 [上一页] [1] [下一页]
2009
万泉河.
文章数:915
年度积分:-106
历史总积分:2009
注册时间:2009/12/4
发站内信
发表于:2022/9/7 17:24:03
#0楼
0906 【万泉河】一个问题:汇编语言支持面向对象编程吗?

这是一个很有意思的问题。

起因是我是首个把面向对象方法完全应用到工控行业的PLC工程师。 全世界范围内。

先别不服。

许多人看过我的视频讲座,讲座中通篇讲解了面向对象的方法在PLC程序设计中的应用。以及所著的新书《PLC标准化编程原理与方法》,其实通篇都在讲面向对象这件事。

有一些人,简单看了一眼视频后就先来杠了, 面向对象嘛,不是什么新玩意。在IT领域早就流行几十年了。 国内也早有自动化公司在做了。

看到没, 凡是跳出来不屑一顾的, 举例子的时候都会是举一个道听途说的别人家的公司。 就没见过谁勇敢地站出来说我我我!我做到了。

而我们从各大社区所能获得的各行各业的PLC项目例子程序中, 也从来没有见到过真正如烟台方法般实现了彻底的面向对象设计的案例。

人类科学技术发展到今天, 完全原创的创新已经很难有了。 现在能把不同行业之间的应用加以融合,卖出第一步,就算很不容易的创新了。

我工作20多年,前面很多年都只能碌碌无为做写重复性的工作, 挣点辛苦钱,养家糊口。 也就近4-5年,才有机会做出一点真正属于自己的创新型工作,一方面自认为运气好, 一方面也有厚积薄发的因素在里面。

所以, 我是当仁不让要把这个首创权霸占在自己名下了。有要跟我争这个名誉的,欢迎来争。 但要求是本人实名,拿自己作品来争。 而不要什么所谓路见不平者毫无证据空口为别人争。

当然还会有另外一些人不认可面向对象方法有多奇妙, 或者认为技术上在PLC领域操作系统编程语言环境根本不可能支持, 所以质疑我是否真的做到了,可以通过本文的逻辑分析见分晓。

首先一个基本的原理。

所有编程语言,最终都要经过其编译器或者解析器,编译成为汇编语言,然后再成为二进制的机器代码,交给CPU运行。通常认为汇编语言,对应的就是机器语言。  

百度百科的解释:
汇编语言, 即第二代计算机语言,用一些容易理解和记忆的缩写单词来代替一些特定的指令,例如:用"ADD"代表加法操作指令,"SUB"代表减法操作指令,以及"INC"代表增加1,"DEC"代表减去1,"MOV"代表变量传递等等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便。

所以, 假设一门完全支持面向对象的高级编程语言写成的程序,最终编译后得到的仍然是汇编语言。

所以,假设你手里没有原始的高级语言的编译器和源代码, 而只有其生成的汇编语言代码,那么你把这个代码全部抄写一遍,也自然写的是面向对象的程序。

即,结果是完全一样的。 无非过程中,对你的能力要求不一样, 你需要记忆更多的指令,以及更多的程序架构安排部署。

我们来看IEC 61131标准中规定的PLC程序语言IL指令表,在西门子中称为STL, 其语句语法基本就是如上述汇编语言用到的ADD /SUB/ INC/DEC/MOV等等。那么我们大致可以认为STL就是约等于汇编语言。

那么,如果我们认为用汇编语言可以做出面向对象的PLC程序, 自然STL也可以,那么LAD可以转化为STL,所有STL指令在LAD中也都有对应的指令,那么LAD梯形图自然也完全可以做出完整的面向对象的程序。

我们通常描述面向对象的三大特性,封装继承和多态,讨论PLC平台是否已经提供并支持这些功能的时候, 其实应当认识到的是,平台如果提供了这些功能,那么只不过是便于我们便捷使用。 而如果平台没有提供, 那么需要程序员自己的能力来实现。

所以,当我们评价某个PLC系统因为不支持所以不能做出面向对象的高内聚低耦合的系统设计的时候, 其实是我们推卸责任了。 把不能做到的责任推给了平台。 而其实那是我们自己能力不足导致。

这一点,我在研究信捷PLC的标准化架构的时候,领悟到的。 并在文章《0725 【万泉河】所有小型PLC也都能做标准化程序了》中有所表达。

本文则是重新从头做了逻辑的梳理。

这也是我近期开始对所有小型PLC平台感兴趣的原因。 在我眼里,所有PLC本质都是一样的,即便我从来没有摸过,甚至名字都没有听说过, 要有人问我敢不敢接开发任务, 在其平台上实现程序标准化架构,我现在可以毫不迟疑地回答:可以!

这是我近来认知上的最大的进步。 我前几年一些文章中,以及书中所表达的观点,抱怨一些PLC平台性能差而导致不能做标准化,是错误的。

而以往更多的同行,发表的更多的文章中,对所有PLC平台全部判死刑,认为缺少了这个或者那个功能而不可能实现的,那些作者们现在可以回头思考一下这个逻辑了。




PLC标准化编程
11304
346953791
文章数:2874
年度积分:771
历史总积分:11304
注册时间:2011/5/4
发站内信
发表于:2022/9/7 19:32:56
#1楼
内容与标题不符,重写。。
325
红狼B7BM
文章数:58
年度积分:325
历史总积分:325
注册时间:2021/2/22
发站内信
发表于:2022/9/8 10:15:15
#2楼
跳着看的,废话太多,你说汇编支持面对对象,我觉得逻辑和我的手会打字,组成我的手的原子会打字一样好笑
37637
知道一点
文章数:22327
年度积分:2056
历史总积分:37637
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2022/9/8 13:01:01
#3楼
请先解释清楚【对象】的定义
快乐 幸福 自由 比什么都重要
882
aqdhy123
文章数:11
年度积分:53
历史总积分:882
注册时间:2013/3/31
发站内信
西门子PLC体验(二)
发表于:2022/9/8 17:57:46
#4楼
我好奇一点,就这边文章来看这个人写的书真的出版了?也从来没有见到过真正如烟台方法般实现了彻底的面向对象设计的案例
3858
INotKissBoy
文章数:872
年度积分:285
历史总积分:3858
注册时间:2018/9/15
发站内信
发表于:2022/9/9 14:57:38
#5楼
废话连篇

先别不服。
“你之所以还在喜欢女人,是因为还没有遇到一个让你心动的男人,而我,就是辣个男人。”
                                                                                                           — — — —  鲁 迅
12354
蛇会大学
文章数:4586
年度积分:680
历史总积分:12354
注册时间:2015/12/14
发站内信
2018论坛分享达人
发表于:2022/9/10 15:53:16
#6楼
上一贴万掌门说自己反编译了某个汇编程序,现在又说汇编支持面向对象

你太牛B了
敏问找算丁亏楼累
敏问找算哭哲累嘿
敏问够算恐哈做累揍忍没催妹
比漏累伤醒更八音舍黑
我晕能以身问晕陪笨累
37637
知道一点
文章数:22327
年度积分:2056
历史总积分:37637
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2022/9/12 14:22:12
#7楼
万掌门最牛逼的是,偷换概念,混淆你的认知,从不正面回答问题,忽悠你入群以便谋利.
快乐 幸福 自由 比什么都重要
2009
万泉河.
文章数:915
年度积分:-106
历史总积分:2009
注册时间:2009/12/4
发站内信
发表于:2022/9/14 19:48:19
#8楼
以下是引用蛇会大学2022/9/10 15:53:16的发言:
上一贴万掌门说自己反编译了某个汇编程序,现在又说汇编支持面向对象

你太牛B了

反汇编工具实在太多了。

算不得什么高精技术。

前段时间还有个学员推荐给我一个软件, 我都没要。

现在没兴趣解读那些程序了。
PLC标准化编程

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

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

93.6006