热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

怎么编程比较好的PLC程序?

“没有最好,只有更好”,什么样的plc程序才是好的?一个赚钱的节目就是好节目,一句话,高能量低消耗!主要有以下几个方面:1.正确性(低调试成本)首先,可编程控制器程序必须正确工作,

  “没有最好,只有更好”,什么样的plc程序才是好的?一个赚钱的节目就是好节目,一句话,高能量低消耗!

  主要有以下几个方面:

  1.正确性(低调试成本)

  首先,可编程控制器程序必须正确工作,以满足实际控制过程的要求。这是PLC程序的基础。如果做不到这一点,其他一切都将毫无意义。

  2.可靠性(低维护成本)

  不仅正确,而且可靠。你不能偶尔出错。可靠性反映了PLC程序的长期稳定性,这也是PLC程序的基本要求。(初学者可以结合plc视频教程来学习)

  有些PLC程序在正常工作条件下或合法运行时可以正常工作,但在非正常工作条件下(如临时断电、即将通电)或非法运行(如按下某些按钮出现故障,或同时按下几个按钮或连续按几次)后,程序就不能正常工作。这种程序不太可靠,或者说不稳定,那就是一个坏程序。

  好的PLC程序可以识别异常工况,并将其与正常工况联系起来,使程序适应各种情况。好的PLC程序可以拒绝非法操作,不会留下任何“痕迹”。只接受合法操作,即预防性稳健规划。

  联锁是拒绝非法操作的常用手段。这种方法常用于继电器电路,PLC也可以继承这种方法。

  3.可读性(低学习成本)

  要求设计的程序可读、易懂、易于调试、易于他人阅读和使用您的程序、易于维护;必要时,程序还可以作为标准模板,便于推广。要使程序可读:

  1)方案的设计脉络要尽可能清晰,结构要分层;

  2)功能层模块化或采用面向对象的方法设计;

  3)使用一些标准设计和通用设计;

  4)变量层尽可能用符号名编程;

  5)参数在使用前立即设置参数值(即准备使用);

  6)I/O地址分配要有规律,便于记忆和理解;

  7)内部设备的使用也要有规律,同一功能的地址分配要保持一定的不连续的“故障余量”(如果X功能的地址分配使用到K,那么下一个功能的地址分配就不要从k+1开始,而是从k+n开始),防止功能发生变化;

  8)必要时做一些标注工作;

  编程之初要注意可读性。这并不容易做到。因为在程序调试过程中,指令的增减和内部设备的使用变化可能会让原本比较清晰的程序变得有些凌乱。所以在设计的时候,有调试的余地,调试完再整理,这样设计出来的程序质量更高。

  4.简单性(低存储成本)

  使PLC程序尽可能短也是应该追求的目标。

  短程序可以节省用户存储面积;在大多数情况下,它还可以节省执行时间,提高对输入的响应速度,提高程序的可读性。

  程序是否短,一般可以用程序中使用的指令数量来衡量。如果使用的指令数量少,程序自然会短。

  一般来说,要注意程序结构,提取实现相同功能的代码段的共性,使用子程序、中断等方法减少代码量。

  用过程控制指令简化程序,减少某个时间点的工作量,不做不需要做的事,尽量少做;

  从小的方面来看,需要用多处理能力的强指令代替单一处理能力的弱指令(用大级别数据代替小级别数据或数据结构,如用字节、字、双字操作数代替位操作数的指令、故障字、状态字、控制字、通信字等。);

  使用间接寻址代替连续寻址存储单元的相同操作;用块转移指令代替多字节、字、双字转移指令,可概括为“批量操作”)并注意指令的排列顺序等。,并注意程序的可读性。

  5.节省时间(运营成本低)

  程序的简短可能会节省程序的运行时间,但简洁和节省时间不是一回事。因为程序的运行时间与程序拥有的指令数量有关,也与使用了什么指令有关,即与程序算法有关。不同的PLC算法执行时间不同。此外,一些指令在逻辑条件为开和逻辑条件为关的不同时间执行。此外,由于使用了过程控制指令,程序中的指令并非都必须执行。因此,程序运行时间的计算更加复杂。但需要平均时间少,最长时间不要太长。这样可以提高PLC的响应速度。

  节约时间的关键是利用好过程控制指令。根据情况,确定一些必须作为必要部分执行的指令,剩下的可以按照程序进行,有选择地执行,或者设计一些分时工作避免过长的最大时间等。

  6.易于修改(可变成本低)

  使程序易于更改,即易于修改。

  PLC的特点之一就是方便,可以灵活应用于各种场合。解决办法是修改或重新设计程序。

  重新设计的程序用于改变可编程控制器的工艺要求。不仅程序被重新编程,而且输入输出也被重新分配。在大多数情况下,没有必要重新编程程序,只需做一些修改。这要求程序易于修改,易于修改。

  容易改变的是灵活性,只需要很少的改变就可以达到改变参数或动作的目的。

  1)参数设置应尽量采用间接赋值法,常量参数值应尽量使用符号名,以名识义;

  2)控制尽可能使用中间存储器(如M、W)作为介质和中间层,隔离逻辑上I/O的直接耦合,换逻辑更方便;

  3)尽量实现功能的插件模块块,让用户可以“自由配置”,从而实现按需、随用随用。

  在设计PLC程序的过程中,应同时考虑和平衡上述要求,得不偿失。

  本文来源:https://www.jcpeixun.com



推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • Yii 实现阿里云短信发送 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • Windows 系统下 MySQL 8.0.11 的安装与配置
    本文详细介绍了在 Windows 操作系统中安装和配置 MySQL 8.0.11 的步骤,包括环境准备、安装过程以及后续配置,帮助用户顺利完成数据库的部署。 ... [详细]
  • 在Windows系统上安装VMware Workstation 2022的详细步骤
    本文将详细介绍如何在Windows系统上安装VMware Workstation 2022。包括从官方网站下载软件、选择合适的版本以及安装过程中的关键步骤。此外,还将提供一些激活密钥供参考。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • HTTP 请求与响应详解
    本文深入探讨了HTTP请求和响应的结构,详细解释了每个部分的作用,并提供了相关示例。通过本文,读者可以全面理解HTTP协议中请求和响应的工作原理。 ... [详细]
author-avatar
卟媞1亽儚
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有