我正在做我的船员/ appretinceship公司,主要是用西门子模块进行PLC编程.事实上,大多数人都是电动人员并转投工程学.
我作为新手的问题是,当我编写PLC软件时,我不能真正高效和快速.
即使我在VS/Eclipse中编写C#或Java时非常有效
与"真正的"编程语言相比,我无法用PLC实现高效率.
你们对PLC有什么好的经验吗?你是如何通过它获得高效的?
注意:这是我去公司的最后一年,这也是我想要提高工作效率的原因.
期待许多伟大的答案!
Ira*_*ter 26
PLC编程在几个方面与传统的程序编程不同:
1)Relay Ladder Logic是一个相当原始的语言.很难有所作为.大多数PLC程序员不使用子程序; 它几乎就像PLC世界是时间和软件工程忘记的那样.您可以通过应用简单的软件工程方法来做好,例如,定义代码块之间的接口,即使是抽象的.
2)许多PLC编程都与布尔方程有关.如果你想要擅长PLC编程,就要努力处理布尔逻辑:学习布尔代数,特别是像De Morgans定理那样在AND和OR之间分配NOT(因为PLC通常不提供NOT运算符,你需要这个那么你经常会更多的时候)
3)了解PLC编程是关于实时控制和反馈的.如果有的话,大多数标准编程语言(例如Java)都很难解决这个问题.仔细考虑PLC代码是驱动输出的逻辑这一事实,并且被驱动的机械系统实际上是驱动PLC输入的"逻辑".我经常使用另一台PLC建模机械系统,只是让我调试我的PLC程序而无需真正的工厂机器来控制.这也可以让你模拟失败; 见第6点.
4)许多PLC编程都抽象地从状态转换到状态,其中状态表示PLC对外部世界的了解,并且当PLC读取外部输入并发现世界状态有所改变时发生转换.尽可能多地了解有限状态自动机和离散系统的监督控制.它会给你很好的报酬.
5)PLC经常需要记住过去的事件.因此,许多PLC逻辑都与设置/重置/测试布尔/数字状态变量和/或定时器有关.因此,虽然PLC程序的代码通常看起来像纯逻辑,但事实上它有很多副作用,这使得对程序的推理相当困难.事实上,就像用C或Java等更现代的语言写作一样困难.
6)注意处理机械故障.大多数PLC程序假设受控系统的工作方式与宣传的一样; 这真的很糟糕.在现实世界中,控制系统的工作原理只是广告,直到它打破了,它总是最终确实.如果您包含诊断代码以帮助确定PLC程序中的机械损坏,那么编写它们需要更长的时间,但用户会爱上你,因为没有什么比工厂机器更糟糕了但它不会告诉你你怎么.停工厂是一台停止的自动取款机,工厂经理讨厌这样做.
小智 9
当所谓的"真正的"程序员蔑视PLC编程时,这让我感到恼火.这里的几篇文章暗示了PLC编程本身就是一门学科的基本事实.
"了解PLC编程是关于实时控制和反馈的.大多数标准编程语言(例如Java)都解决了这个问题."
"因此人们开始提出用于结果和逻辑矛盾检查的分析工具,单独的时间和状态建模等,实际上并没有使事情更简单,并且偏离了减少问题空间的工程原理."
暗示梯形逻辑是"忘记纪律时间"是贬低执行它的功能的工具.毕竟,Ladder是实际代表软件中物理设备的第一种语言 - 它是面向对象编程作为范例的发源地.
此外,我们不要忘记PC和基于PC的控件完全不值得信任.它崩溃了; 组件过时,不能在几年内购买,充其量; 它崩溃了; 它被病毒和人们把"大金刚"放在他们的工作站上而被腐蚀了; 它崩溃了; 无聊的操作员在第三班卸载软件; 我提到了,它崩溃了吗?
在PC世界这么多年所谓的"进步"之后,PLC继续存在,因为到目前为止,个人电脑仍然是添加了虫子的一次性商品.你的数百万美元的装配线不是.
最后,我坚持了幽默测试 - 让我感到震惊的部分是看到IT人员试图编写PLC代码.我们似乎得到的永无止境的问题(字面上和比喻上)是,"当我跳回到程序的开头时,为什么会出现看门狗错误?" 或者另一个个人喜爱的 - "如何在梯子上写下一个下一个循环?"
两者都背叛了对PLC如何工作的基本缺乏知识,并进一步说明自动化编程是一个单独的学科,需要单独的工具.
TM值