热门标签 | 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



推荐阅读
  • 非公版RTX 3080显卡的革新与亮点
    本文深入探讨了图形显卡的进化历程,重点介绍了非公版RTX 3080显卡的技术特点和创新设计。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Søren Kierkegaard famously stated that life can only be understood in retrospect but must be lived moving forward. This perspective delves into the intricate relationship between our lived experiences and our reflections on them. ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • SQL中UPDATE SET FROM语句的使用方法及应用场景
    本文详细介绍了SQL中UPDATE SET FROM语句的使用方法,通过具体示例展示了如何利用该语句高效地更新多表关联数据。适合数据库管理员和开发人员参考。 ... [详细]
  • 本文介绍了如何在具备多个IP地址的FTP服务器环境中,通过动态地址端口复用和地址转换技术优化网络配置。重点讨论了2Mb/s DDN专线连接、Cisco 2611路由器及内部网络地址规划。 ... [详细]
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社区 版权所有