如何提高PLC运行程序效率

2022/1/10 17:07:09

本文主要是介绍如何提高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运行程序效率的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程