西门子工业支持中心技术论坛SIMATIC S7-1500(T)
【分享】工程师究竟该不该沉迷于编程? 精华星级星级星级星级星级
2018-06-05 21:53:59
楼主

镇楼:

        本人通STL,SCL,CFC,SFC,SFC type,Graph可以跟你们分享这些语言学习过程和技巧。(真大神不要打我。)


        我记得我在6年前刚进公司的时候,我跟所有的新手一样,刚入这行不知道为什么觉得学写程序就是工程师首要的学习任务。而且觉得会写程序光环加身,因为早就不知道羡慕那些拿着笔记本调试设备程序的工程师多少次了。

 

这些话熟悉吗?

“我好像只会LAD额”

" 想再学一种编程语言,STL和SCL,不知道学哪个好"

" CFC,SFC是什么鬼"

" 听说STL的指针很难,会的都是大神"

" 有没有SCL的源代码,贴出来学习一下"

" 我靠,这个逻辑用LAD写好麻烦"

       先说说大家都熟悉的STL和SCL,和我学习它们的基本过程:

       本人北漂一族,当年生活寒酸,租了一个没有窗户合租间,醒来时分不清白天黑夜的那种,我根本不愿意在里面待着,每天晚上在公司待到10点左右才回去,大把的时间研究编程这戏东西,加之带我的人就是使用STL的,公司也有大量的STL开源功能块可以研究,很快STL编程就有了质的飞跃。

       后来SCL盛行,不经意的一天,我也在朋友那里拿到了西门子BST库的实例,我也没想到这一天也是对我极其重要的一天。拿到BST后,我开始投入SCL的学习中,短短的5天时间,我就用SCL编写了一个功能复杂的功能块,就为了好玩,每天大概睡了4小时吧。

 

老板好着急啊!

每天路过你的工位都看见你在研究编程!

不管他说多少次编程够用关键是工艺都还是看见我在研究编程!

下班时间还要在公司蹭电到这么晚,没有自己的生活吗?

 

最近的一些事情,让我非常感激自己当时对编程这件事的执着。

1.       带工程师做项目,以下截图是我在他的S7-200 SMART程序里的截图,我真不敢相信这是工作快3年的工程师写的,而且是我在公司给他们培训了IEC61131-3,还给他们讲了一次又一次命名和编程规范的结果。

200 SMART子程序没做赋值和数据存储任何处理,程序一开始就是Set,Reset操作。

最让人气愤的是FMOpen =阀门open,GSDXSJ是什么拼音的首写字母?


通过这件事我反思:

我正是因为不断的研究编程,我提升了对自己的程序的要求。提高了自己的审美标准,对好的东西有种追求。正是我理解了什么是好程序,我才更关注工艺的原理,产品的微观变化,控制难点,安全要求。我去了解操作员的操作习惯,故障提前来临时他们是怎么样调节去避免发生的,实际自动就是模仿人的操作啊。我花更短的时间了解了编程的意义,远比一个连命名都没法标准的人走的弯路要少,走的更远。

我理解的一个PLC程序:

  1. 完成逻辑和基本的上位机要求功能,操作状态趋势消息操作记录等

  2. 如何处理故障和异常

  3. 优化,使其运行平稳,比如PID控制时是否需要对设定值斜坡等

  4. 最大可能做了怎么避免对操作员误操作的考虑吗?

  5. 操作是否简单,安全相关显示信息醒目吗?

  6. 断电开关机对设备的影响是什么,如何应对?

  7. 你是否在调试中能优化程序,提高生产效率,比如有些动作顺序执行可以改成并步进行而节省了时间,比如还可以通过优化程序优化,节省蒸汽等热能源。

  8. 你做完项目后,你能分析下你做的这个程序有哪些先进性吗?哪些设计是你强过别人的?这个绝对是你以后的谈资。

  9. 最后是一份漂亮的说明书。


不写了,再写跑题了。


已有8个人评论
展开
_领域:请问下顺序控制,分多个FB块,分别对应多个动作流程,也就是说一个步可能出现在多个FB中,还有并步,怎么用标准化来做呢?      2018-06-12 10:59:11回复   
渔明鱼工:西门子BST库能分享一下吗?      2018-06-10 05:50:26回复   
Zane回复宁超:是的,FC也是这样做的      2018-06-09 09:19:36回复   
宁超回复万泉河:不是不能用set,是s7-200输出接口都是temp地址,要保持数据需要开辟绝对地址给它 要么写在in_out接口。      2018-06-09 05:40:08回复   
万泉河回复Zane:SCL语言里的if ,,,,= ,,,本质上就是set。 我等楼主回过头看看他的SCL程序有没有用到等于。      2018-06-09 02:47:56回复   
Zane回复349568117:不用很正常      2018-06-07 11:17:44回复   
349568117:难道楼主编程不用S/R指令?      2018-06-06 09:41:26回复   
KITT:宁侠有一点我感觉理解错了,open/close FM中的FM大写的并不是阀门的意思而是ForceManual的意思。      2018-06-06 08:25:10回复   
回复:工程师究竟该不该沉迷于编程?
2018-06-05 22:12:24
1楼

业精于勤,宁工对于编程厉害了,对什么是好程序也有一个切身体会。

回复:工程师究竟该不该沉迷于编程?
2018-06-05 22:12:39
2楼

看来这个帖子又得火一把了。

没有该不该,我认为能够做着自己喜欢的工作,很好。


回复:工程师究竟该不该沉迷于编程?
2018-06-05 22:19:41
3楼

     你的经历好艰辛,这样的经历中打创出来的经验才更牢固,宝剑锋从磨砺出,水平高了自然看不惯那些,基础差还不上进的人。

    楼主说的程序标准很好,现在的仿真软件真好,做好项目可以以操作工预演,在完成工艺任务的同时打磨操作合理。赞!

回复:工程师究竟该不该沉迷于编程? 精华星级星级星级星级星级
2018-06-05 23:50:03
4楼

一说编程”是非“多!


针对宁侠的题目”工程师究竟该不该沉迷于编程?“


我想发表我的观点是:自动化工程师不该仅仅沉迷或关注于编程。除非你就是个专职的软件工程师。


编程仅仅是一个自动化工程师专业工作的一个方面而已,而一个自动化工程师的专业工作应该是多方面的,工艺消化,系统方案,产品选型,图纸设计,成套安装,软件开发,运行调试,培训维护等等都是需要考虑的问题。要做好一个项目和产品,上述的每一个方面都是很重要的。

 


但,最重要的是什么?编程吗?非也!


新入行的菜鸟们往往把编程看得那么高大尚,神奇,趋之若鹜,而忽略了其他方面的学习与训练及能力的培养,殊不知这恰恰给自己成长的道路上挖下了深坑。


我要说的是,编程一定要学,但在一定的阶段内真的不重要。


除非你有编程的天赋,否则就不要去过分的追求那些所谓的编程技巧,掌握基本的编程知识与技巧就足以应付绝大多数的项目编程需求了。虽然,每个人的编程水平有高低差别,但这都不是事儿。所以呢以上观点的反面就是现实中自以为是的人还是蛮多的。


一下几点供大家参考:

1. 扎实的硬件知识,对系统及指令的深入了解对编程是绝对有帮助的。

2. 算法与编程是两码事情,把算法转化为程序是编程,想出算法的人显然更高明。

3. 编程是有规范的,就是八股文,走套路。

4. 好的系统方案及硬件配置选型才是你能够完成编程任务的基础,硬件方案及设计上的缺陷,靠软件的是很难弥补的,相反,程序上的缺陷只要是硬件没问题,假以时日或者换人的手段,问题终究是可以解决的。


不是和万侠,宁侠唱反调,而是他们的观点与做法不是一个入门层次的技术员可以做到的,做了也是毫无理解的纯粹的模仿与瞎做,得修炼到一定的层次才行。



已有6个人评论
展开
卩丶呵呵:感觉只会编程还是不行,在我们公司就得选型、编程、组态、调试、售后等等,什么事情都得会干,才能拿到高工资!      2018-08-20 05:17:13回复   
黑色DE常青树:世界上最遥远的距离是-----“你不懂我“      2018-06-07 02:28:24回复   
DenTA_A:黄老师,这篇文章说的好!!!      2018-06-07 11:38:29回复   
KITT:如果过多的被强制那么可能看不到自己的特长特点。      2018-06-06 04:22:11回复   
holdkcsxyz:这个写的好!!      2018-06-06 08:18:51回复   
Triao:提纲挈领!      2018-06-06 08:09:11回复   
回复:工程师究竟该不该沉迷于编程?
2018-06-06 00:04:23
5楼

值得反思!

不过,楼主标题中的“沉迷”二字用的过了


回复:工程师究竟该不该沉迷于编程?
2018-06-06 00:46:46
6楼

我特别特别想知道学过高级语言编程的程序员来学习PLC编程是什么感觉?我理解的工业控制就是平台不一样,也就是门槛比较高,相比高级语言编程。

有个例子,当年有个同学被分配到轧钢厂做自控系统的维护。上次向他请教飞剪的问题,结果人家来了一句,学这干嘛,你想跳槽?我反问他飞剪驱动装置故障了怎么办?回答说有专人维护硬件,他不负责。像他这样程序维护的再好,对硬件不感兴趣,应该也不算一名合格的工程师。

回复:工程师究竟该不该沉迷于编程?
2018-06-06 01:22:56
7楼

路漫漫其修远兮,吾将上下而求索。

回复:工程师究竟该不该沉迷于编程?
2018-06-06 06:55:16
8楼
以下是引用Zane在2018-06-05 23:50:03的发言 >4楼

一说编程”是非“多!


针对宁侠的题目”工程师究竟该不该沉迷于编程?“


我想发表我的观点是:自动化工程师不该仅仅沉迷或关注于编程。除非你就是个专职的软件工程师。


编程仅仅是一个自动化工程师专业工作的一个方面而已,而一个自动化工程师的专业工作应该是多方面的,工艺消化,系统方案,产品选型,图纸设计,成套安装,软件开发,运行调试,培训维护等等都是需要考虑的问题。要做好一个项目和产品,上述的每一个方面都是很重要的。

 


但,最重要的是什么?编程吗?非也!


新入行的菜鸟们往往把编程看得那么高大尚,神奇,趋之若鹜,而忽略了其他方面的学习与训练及能力的培养,殊不知这恰恰给自己成长的道路上挖下了深坑。


我要说的是,编程一定要学,但在一定的阶段内真的不重要。


除非你有编程的天赋,否则就不要去过分的追求那些所谓的编程技巧,掌握基本的编程知识与技巧就足以应付绝大多数的项目编程需求了。虽然,每个人的编程水平有高低差别,但这都不是事儿。所以呢以上观点的反面就是现实中自以为是的人还是蛮多的。


一下几点供大家参考:

1. 扎实的硬件知识,对系统及指令的深入了解对编程是绝对有帮助的。

2. 算法与编程是两码事情,把算法转化为程序是编程,想出算法的人显然更高明。

3. 编程是有规范的,就是八股文,走套路。

4. 好的系统方案及硬件配置选型才是你能够完成编程任务的基础,硬件方案及设计上的缺陷,靠软件的是很难弥补的,相反,程序上的缺陷只要是硬件没问题,假以时日或者换人的手段,问题终究是可以解决的。


不是和万侠,宁侠唱反调,而是他们的观点与做法不是一个入门层次的技术员可以做到的,做了也是毫无理解的纯粹的模仿与瞎做,得修炼到一定的层次才行。



非常赞同,黄工对编程思路的说法,只有在这一行修练到一定层次,才会有这样体会。点赞

回复:工程师究竟该不该沉迷于编程?
2018-06-06 07:27:46
9楼
该不该沉迷就看你的目标咯。
如果是只为了学习,可以沉迷一下。
如果是为了更好的生活,千万别沉迷,能够完成任务才是好的结果。

楼主的批判,只能说你只是以自己的立场看问题,这并不是对方的目标。我见过太多的自动化工程师,编程只是为了熟悉这一个框架,很多最后都成了老板成立了自己的公司,反观楼主这样执拗的都还在打工撸码…
所以呢,人家的目标从来不是你想象的那样做一个码农,人家才不会把生命浪费在那些没太多价值的代码规范研究上。
就好比人生就一次,生命就几十年,你硬要浪费生命不去赚更多的钱,晚年的生活的不如意才能让你清醒什么是人生吧。
已有5个人评论
展开
Zaxife回复KITT:没什么榜样不榜样的,不同的人不同的人生目标。如果为了追逐自己的目标就是急功近利的话,那你的人生目标又该怎么说呢。      2018-06-08 09:55:39回复   
菲戈回复Letham:是的,但是专研编写PLC是没啥用的,最多出两本书吧。      2018-06-07 06:52:56回复   
Zane回复Letham:是的      2018-06-07 06:34:00回复   
Letham回复KITT:中国 需要一些专研技术的人!      2018-06-07 01:49:37回复   
KITT:这个似乎不对,像你说的这些人现实中是什么样的?什么都弄不了只知道搞关系,急功近利不能说我们都需要以此类为榜样。      2018-06-06 04:19:20回复   
上一页 1/8    跳转> 下一页
返回顶部 | 访问电脑版
×
您收到0封站内信:
×