Performance 成为一名更好/更高效的PLC程序员
我在这家公司实习/实习,主要是用西门子模块进行PLC编程。 这是因为大多数人都是电气工人,转而从事工程 作为新手,我的问题是,当我编写PLC软件时,我不能真正高效和快速 尽管我在VS/Eclipse中编写C#或Java时效率很高 与“真正的”编程语言相比,我不能真正有效地使用PLC,这真的让我很烦恼Performance 成为一名更好/更高效的PLC程序员,performance,plc,Performance,Plc,我在这家公司实习/实习,主要是用西门子模块进行PLC编程。 这是因为大多数人都是电气工人,转而从事工程 作为新手,我的问题是,当我编写PLC软件时,我不能真正高效和快速 尽管我在VS/Eclipse中编写C#或Java时效率很高 与“真正的”编程语言相比,我不能真正有效地使用PLC,这真的让我很烦恼 是因为缺少代码完成吗 是因为缺乏自动化方面的全面知识吗 是因为PLC与VS(LINQ、Dynamics、Lambda)相比缺乏创新吗 你们有PLC方面的经验吗? 你是如何用它来提高工作效率的 注
- 是因为缺少代码完成吗
- 是因为缺乏自动化方面的全面知识吗
- 是因为PLC与VS(LINQ、Dynamics、Lambda)相比缺乏创新吗
期待着许多伟大的答案 PLC编程与传统程序编程在以下几个方面不同: 1) 继电器梯形图逻辑是一种相当原始的语言。很难做到如此高效。
大多数PLC程序员不使用子程序;这就好像PLC的世界 一个被时间和软件工程所遗忘的。通过申请,你可以做得很好 简单的软件工程方法,例如定义接口 在代码块之间,即使是抽象的 2) 许多PLC编程都与布尔方程有关。如果你想做个好人 在PLC编程中,努力处理布尔逻辑:学习布尔代数, 特别是像De Morgans定理这样的不跨和或分布的定理 (由于PLC通常不提供NOT操作员,因此您需要更多 通常情况下,你会期望) 3) 了解PLC编程是关于实时控制和反馈的。 大多数标准编程语言(如Java)都不能很好地解决这个问题。 仔细考虑PLC代码是驱动输出的逻辑这一事实, 而且被驱动的机械系统是有效的“逻辑”,即 驱动PLC输入。我经常用另一个模型来模拟一个机械系统 PLC,只是让我调试我的PLC程序,而不需要真正的工厂机器 控制这也可以让你模拟失败;见第6点 4) 许多PLC编程抽象地是关于从状态到状态的转换, 其中,状态表示PLC对外部世界和过渡的了解 当PLC读取外部输入并发现世界状态已更改时发生 有些变化。尽可能多地学习有限状态自动机 以及离散系统的监控。它会给你丰厚的报酬 5) PLC通常需要记住过去的事件。因此,许多PLC逻辑是 与设置/重置/测试布尔/数字状态变量和/或计时器有关。因此,虽然PLC程序的代码通常看起来像纯逻辑,但实际上它 有很多副作用,这使得对程序进行推理变得相当困难。事实上,就像用更现代的语言(如C或Java)编写一样困难 6) 注意处理机械故障。大多数PLC程序假定 受控系统按照广告所宣传的那样工作;这真是糟糕的做法。在现实世界中,受控制的 这个系统只有在崩溃之前才会像广告中所说的那样工作,而最终它总是这样。 如果包括诊断代码以帮助确定PLC程序中的机械故障,则需要更长的时间 但是用户会喜欢你的,因为没有比这更糟糕的了 一台工厂机器坏了,但它不会告诉你怎么做。停产的工厂
是一台停止运转的自动取款机,工厂经理讨厌它。PLC软件工程有其背景:
* Is it the lack of code completion?
* Is it the lack of innovation in PLC as opposed to VS (LINQ, Dynamics, Lambda)