ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何提高PLC运行程序效率

2022-01-10 16:00:07  阅读:216  来源: 互联网

标签:类型转换 字节 程序 子程序 PLC 效率 变量


  在西门子plc中,子程序是为某些特定的控制目的而编制的相对独立的程序。执行子程序CALL指令等。如果条件不满足子程序调用,程序的扫描将只在主程序中进行,而不是扫描这个子程序,从而减少不必要的扫描时间。

  如何提高PLC程序的运行速度,可以采用以下编程方法,仅供参考:

  1.根据项目实际需要,制定功能块规划,编写子程序。

  在PLC中,子程序是为了某些特定的控制目的而编译的相对独立的程序。执行子程序CALL指令等。如果条件不满足子程序调用,程序的扫描将只在主程序中进行,而不是扫描这个子程序,从而减少不必要的扫描时间。初学者可以结合plc视频教程来学习

  2.通过向DO点发送字或双字数据来控制输出。

  在plc的应用中,通常会有大量的输出控制。使用字或双字数据来控制输出可以提高速度。只要根据实际应用需求合理分配输出地址,改变输出控制字,就可以大大减少西门子PLC程序执行的步骤数,从而加快PLC的程序运行速度。

  3:脉冲触发置位和复位

  在PLC中,SET指令只能执行一次,不需要每次扫描都执行该指令。它非常适合与脉冲输出(PLS/PLF)指令一起使用。一些工程师忽略了这个问题,采用常规方法驱动SET指令,无意中增加了PLC程序的扫描时间。

  4.避免如下类型转换:

  以S7-200为例,它的内存格式和我们常用的PC正好相反,高字优先,低字次之。所以我们可以把单词variable放在最后两个字节,并在程序初始化时清除前两个字节(这两个字节不能在程序的其他地方使用)。

  例如,当我们定义符号时,我们将单词变量定义为VW2,同时将VW0的值保持为零。变量在程序中可以用字体VW2和双字体VD0访问,避免了类型转换。

  为了避免使用中的混淆,最好用明确的符号定义来区分字型和双字型。在这里,强烈建议使用匈牙利命名法:有意义的英语单词的小组合作变量名,前缀表示变量类型,首字母大写。我习惯使用下列词缀:

  b字节变量(字节)

  w字体变量(单词)

  双变量

  R -实数变量(实数)

  f位变量(标志)

  Btn -自复位按钮输入(按钮)

  开关或自锁按钮输入(开关)

  Sig -传感器、编码和其他电平信号输入(信号)

  Rly -输出继电器位(继电器)

  ……

  当然,根据个人习惯,没有规定,主要是有利于自己区分。

  如果有一个名为VarName的字类型变量,为了使用前面的转换技巧,我们可以定义如下:

  wVarName - VW2

  dVarName - VD0

  程序初始化时,复位VW0(如果是不需要记忆的变量,也可以直接复位dVarName)或将数据块中的VW0置零。未来我们需要访问word类型的变量时会用到wVarName,需要访问双word类型的变量时会用到dvvarname。根本不需要类型转换。

  这种方法可以大大减少程序语句的数量,使程序更加简洁可读,在不需要耗时的类型转换的情况下,提高程序的运行效率。而数学运算量越大,效率的提升越明显。

  缺点是多占用两个字节的内存,VW0在以后的程序中无法使用。但是S7-200的RAM空间很大,一般取之不尽用之不竭。以226为例,10K RAM那么多,我从来不超过1K。所有这些内存都是用钱买的,所以很浪费。

  同样,如果有字节变量经常需要用字类型变量转换,让字节变量占用一个字的内存宽度,浪费一个字节,从而避免类型转换。本文来源:https://www.jcpeixun.com。

标签:类型转换,字节,程序,子程序,PLC,效率,变量
来源: https://www.cnblogs.com/HindyHill/p/15784748.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有