编程

编程是控制系统的重要组成部分,因为它允许工程师和开发人员创建控制系统行为的指令和算法。在控制系统中,编程被用来指定系统的期望行为和它应该运行的条件。控制系统可以使用各种语言编程,包括C、c++和Python。所使用的具体语言将取决于控制系统的类型和应用程序的要求。指定系统的输入和输出变量:这包括定义用于在系统内收集数据和执行操作的传感器和执行器。定义控制算法:这涉及到创建逻辑和规则,这些逻辑和规则将用于根据输入和输出变量做出决策和控制系统。测试和验证控制系统:这包括使用模拟和原型工具来测试控制系统,并确保其行为符合预期。监控和维护控制系统:这涉及到使用编程来监控系统的性能,并进行任何必要的更新或调整,以确保它继续正常运行。总的来说,编程是控制系统的关键组成部分,因为它允许工程师和开发人员指定和控制系统的行为,以实现预期的结果。

编程的文章

PLC编程注意事项

可编程逻辑控制器(PLC)编程通常是为了解决眼前的问题,但这可能会导致长期的问题,特别是在原始程序员不在的情况下。

PLC编程见解

  • 可编程逻辑控制器(PLC)程序员倾向于为眼前的解决方案而不是长期的解决方案编写代码,这对任何在未来开始工作的人来说都是一个问题。
  • 一些PLC编程不包括复制/粘贴重复的逻辑和使用无法识别的标签名没有标签。
  • 一些PLC编程包括寻找重用有用代码的机会,并使用描述性标记名称,以便更容易找到内容。

产量下降,客户每小时损失10万美元,他们已经请了可编程逻辑控制器(PLC)程序员来尽快解决这个问题。程序员在查看最后一分钟的航班时启动虚拟专用网络(VPN)。一个小时后,程序员开始盯着一个新的(对他们来说)程序,成千上万的阶梯逻辑,没有标签描述,不清楚的命名约定,代码被复制和粘贴了100次,所有这些都是一个庞大的例程。这可能会导致程序员想知道原来的程序员在想什么。

PLC编程的八要点和五要点

一般的PLC程序员都倾向于为自己编写代码以获得即时解决方案。人们很容易忘记在未来需要维持这种状态的可怜的树液。如果我们不注意,我们很可能成为某人对着屏幕大喊脏话的原因。下面是一些教你如何不成为程序员的简单技巧。

一般的可编程逻辑控制器(PLC)程序员倾向于为自己编写即时解决方案的代码,这可能会导致长期的头痛。提供:布林机器自动化服务

-复制和粘贴重复的逻辑。假设有两个线圈你想依次激活。打开第一个,也许是延时定时器,然后打开下一个。除了将标签名称从“CoilOne”更改为“CoilTwo”外,梯级是相同的。我们都有这样的代码,因为通常就是这样,只有几个梯级。但是当你有50个线圈时会发生什么?在你按Ctrl+V之前…

-寻找重用代码的机会。循环是你的朋友。aoi、子例程,甚至基本数组都可以加快开发时间,保持代码更干净,并使未来的维护更容易。逻辑改变?您不必粘贴50个修复,只需对子例程进行一个小更改,就完成了。怎么啦?客户想要50线圈现在是100线圈?如果你做对了,你应该只需要改变一个标签,“Coil_Count”或其他什么,从50到100。

-使用无法识别的标签名称,没有标签
tmrdelay - Timer和delay为冗余。为什么要延迟?我们是用它来闪灯还是等一段安全的时间再放下重物?
“AB_XGI:我。Data[1] ",显然,这是一个连接设备的数据结构,但在你的主例程中引用它是放弃了自解释代码的机会。
“fireRobotMove”,哪个机器人?移动?我需要灭火器吗?这些标记名称本身并不是无用的,但是如果没有上下文,它们就没有多大意义。

—使用描述性标签名
名称应该说明标记的用途。格式也应该注意。甚至“tmrDelay”或“tmr_delay”会更好。没有人应该去猜“分离”这个词。

-在标签和梯级中添加描述
一个简单的缓冲区例程或别名可以将“AB_XGI:I。数据[1]”变成更有用的东西,如“partXPos”。“tmrdelay”可以变成“tmrDrivesReady”。更好的是在标签或横档上说明它的用途。

使用正确的拼写。曾经试图找到所有处理位置数据的标签,其中一个拼写为“poistion”?是的…

-忽视程序结构。没有人想要筛选200级名为“Main”的例程,它涵盖了从输入/输出(I/O)到处理流的所有内容。

-使用例程和用户定义的数据类型(udt)(或“结构”,取决于制造商)来保持组织。简单地将代码分解为几个名为“Camera”、“InputBuffer”和“Faults”的例程,就可以自动地使代码更具可读性。没有筛选50级不相关的逻辑-如果你需要相机逻辑搜索“相机”例程。

udt非常有用。它们允许对数据进行分组和命名,甚至是数组。例如,如果你有很多从视觉系统返回的位置数据,你可以通过创建一个带有“X”、“Y”和“Z”标签的“位置”UDT来组织它。带子标签的“point1”比“point1X”、“point1Y”和“point1Z”要好得多。更容易重命名,更容易交叉引用,更容易在数组中填充和迭代。

乐观一点:
“这个项目只需要几个月”
“客户清楚地知道他们想要什么”
"除了我,没人会看到"
或者我个人最喜欢的:
“我会记得我为什么这么做的。”

-记住墨菲定律:“任何可能出错的事情都会出错。”这一点确实突出了其他一切的必要性。积极的态度很少是坏事,但如果什么都不出错,我们可能就没有工作了。事情坏了,计划变了,意外发生了。可伸缩、可读、可维护的代码是Murphy的致命弱点。

为未知的未来做准备,我们能做的最好的事情就是留心以上几点s.通过使用数据结构、组织、一致的命名风格和描述性注释,我们编写的代码是可维护和灵活的。这使得每个人在未来都可以更容易地看待这个项目。

当客户需要添加一个新的按钮时,他们会感谢你的。你的同事会因为你的条理清晰而感激你。但根据我的经验,你帮助最多的人是你自己。因为说实话,我有50%的时间在抱怨代码,那是我自己的。

-让它起作用。

-花时间把事情做好。现在聪明地工作,以后工作就会更容易。

- - - - - -布林机器自动化服务公司是CFE媒体和技术内容合作伙伴。

编程的常见问题

  • 控制系统使用什么编程语言?

    • 结构化文本(ST):在控制系统中使用的高级编程语言,特别是在PLC(可编程逻辑控制器)系统中。
    • 梯形逻辑(LD): PLC系统中使用的图形化编程语言,通常用于描述简单的控制系统。
    • 功能框图(FBD): PLC系统中使用的图形化编程语言,通常用于描述更复杂的控制系统。(ST, LD和FBD属于IEC 61131-3编程语言。)
    • C:用于控制系统的高级编程语言,包括DCS(分布式控制系统)和SCADA(监控和数据采集)系统。
    • c++:一种用于控制系统的面向对象编程语言,包括DCS和SCADA系统。
    • Python:一种用于控制系统的高级编程语言,包括DCS和SCADA系统,由于其通用性和易用性。
  • 控制系统使用什么软件?

    控制系统使用各种软件,包括:

    • 人机界面(HMI)软件:用于监视和控制自动化过程的软件应用程序,通常通过图形用户界面(GUI)。
    • 可编程逻辑控制器(PLC)软件:用于编程和控制PLC系统的软件应用程序,通常使用用于控制系统的编程语言,如结构化文本、梯形逻辑或功能框图。
    • 分布式控制系统(DCS)软件:一种用于监视和控制分布式控制系统中的自动化过程的软件应用程序,通常通过监控和数据采集(SCADA)系统。
    • 监控和数据采集(SCADA)软件:用于监控和控制SCADA系统中的自动化过程的软件应用程序,通常通过图形用户界面(GUI)或其他类型的HMI。
    • 计算机辅助设计(CAD)软件:一种可用于帮助设计和建模控制系统的软件应用程序,通常由控制工程师用于开发控制系统设计和原理图。
    • 仿真软件:用于模拟控制系统的软件应用程序,允许控制工程师在实施控制策略之前测试和评估。
    • 网络安全软件:用于保护控制系统免受网络攻击的软件应用程序。网络安全软件可以包括防火墙、入侵检测系统和反病毒软件。
  • 为控制系统编程需要什么技能?

    控制系统编程需要技术和软技能的结合,包括:

    • 技术知识:深刻理解控制系统,包括控制理论,自动化和控制系统中使用的编程语言,如结构化文本,梯形逻辑,功能块图,C, c++和Python。
    • 分析能力:能够分析和解决复杂的控制系统问题,包括理解控制算法,过程动力学和控制策略。
    • 注意细节:能够密切关注细节,包括检测和纠正控制系统编程和设计中的错误。
    • 沟通能力:良好的沟通能力,包括与团队成员、利益相关者和客户有效合作的能力,以了解他们的需求,并开发满足他们需求的控制系统。
    • 解决问题的能力:能够创造性地思考和批判性地解决复杂的控制系统问题,包括开发和测试新的控制算法和策略。
    • 项目管理技能:能够有效管理控制系统项目,包括定义项目需求,跟踪项目进度,确保项目在预算内按时完成。
    • 熟悉行业法规:熟悉与控制系统相关的行业法规和标准,包括安全和网络安全法规。
  • 什么是阶梯逻辑?

    梯形逻辑是一种图形化编程语言,广泛应用于自动化行业,用于编程可编程逻辑控制器(plc)和控制工业自动化过程。它基于控制面板中使用的电气梯形图,旨在使熟悉继电器逻辑的电气技术人员和工程师易于理解。

    在阶梯逻辑中,程序被表示为类似于电子阶梯图的图表,阶梯的梯级代表单独的指令。阶梯逻辑程序中的指令控制电流的流动,就像在物理控制面板中一样。这些指令可用于控制输入和输出,执行数学运算,并根据条件做出决策。

一些常见问题的内容是在ChatGPT的帮助下编译的。由于人工智能工具的限制,所有内容都由我们的内容团队编辑和审查。