0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过减少程序语句数来提高PLC程序运行效率

1bGT_GKYXT1508 2017-12-19 10:06 次阅读

通过本方法优化可以极大的减少程序语句数,使PLC程序更简洁、可读性更好,由于不需要做耗时的类型转换,程序运行效率也得到提高。且数学运算量越大,效率提高越明显。

缺点是要多占用两字节的内存,以后程序中不能使用VW0。但S7-200的RAM空间很大,一般是用不完的,以226为例,有多达10K的RAM,偶从来没有超过1K。这些RAM都是花钱买来的,不用白不用,不用也是浪费了。

通过减少程序语句数来提高PLC程序运行效率

同理,如果有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字的内存宽度浪费一个字节,避免类型转换。具体步骤如下:

1:根据工程实际需求,进行功能块规划,编写子程序

在PLC中子程序是为一些特定的控制目的编制的相对独立的程序。执行子程序调用指令CALL等,如果条件不满足子程序调用时,程序的扫描就仅在主程序中进行,不再去扫描这段子程序,这样就减少不必要的扫描时间。

2:用字或双字数据传送给DO点方法来控制输出

在PLC的应用中通常都会有大量的输出控制,用字或双字数据传送给DO点方法来控制输出可以提高速度,只要根据实际应用的要求,合理分配输出地址,变换控制输出控制字,可以大大减少PLC程序执行的步数,从而加快PLC的程序运行速度。

3:脉冲触发SET、RESET

PLC中,使用SET指令只执行一次即可,不必每次扫描都执行这个指令,很适合与脉冲输出(PLS/PLF)指令配合使用。有些工程人员忽视了这个问题,使用了常规的方法来驱动SET指令,无意中增加了PLC程序扫描运行时间。

4:避免类型转换,方法如下:

以S7-200为例,它的内存格式与我们常用的PC机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。

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

为了避免使用时混淆,最好以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀:b————字节型变量(byte

w————字型变量(word)

d————双字变量(double)

r————实型变量(real)

f————位变量(flag)

btn——-自复位按钮式输入(button)

sw————切换开关或自锁按钮输入(switch)

sig——-传感器、编码等电平信号输入(signal)

rly——-输出继电器位(relay)

……

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

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

wVarName————VW2

dVarName————VD0

在程序初始化时将VW0清零(如果是不需要记忆的变量,直接将dVarName清零也可)或者在数据块中将VW0设置为零。则以后需要以字类型访问变量时就用wVarName,需要以双字类型访问变量时就用dVarName。完全不需要类型转换。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    4974

    文章

    12252

    浏览量

    454866
  • reset
    +关注

    关注

    0

    文章

    33

    浏览量

    12730

原文标题:PLC编程优化方法,让程序运行提速!

文章出处:【微信号:GKYXT1508,微信公众号:工控云学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何提高labview程序运行速度?

    我为一台设备编写的labview采集、控制程序,随着功能逐步完善,运行速度却越来越慢。我是新手,不知道从哪些方面注意提高程序运行效率,应该
    发表于 06-07 23:12

    DSP程序运行效率

    程序在MATLAB里运行速度很快,我改成C程序以后在DSP里运行速度非常慢,MATLAB和DSP环境这两者有什么区别啊,电脑主频和DSP时钟频率相差几倍吧,自己改的
    发表于 04-28 10:49

    提高Python运行效率的7个窍门

    直接调用str,可以避免多次执行重复编译过程,提高程序性能。正则表达式模式匹配也类似,也最好先将正则表达式模式编译成regex对象(通过re.complie()函数),然后再执行比较和匹配。7、模块编程
    发表于 07-10 16:22

    如何提高C语言程序的执行效率

    的事那么效率就高。下面说说如何提高C语言程序的执行效率。1、尽量避免调用延时函数没有带操作系统的程序只能在while(1)里面循环执行,如果
    发表于 07-20 06:39

    嵌入式SQL语句与主语言之间的通信

    把SQL嵌入到高级语言中混合编程,程序中会含有两种不同计算模型的语句SQL语句高级语言语句数据库工作单元与源程序工..
    发表于 12-22 07:44

    使用c语言给单片机编写的程序运行的时候if语句运行的快还是switch语句执行的速度快?

    请问使用c语言给单片机编写的程序运行的时候if语句运行的快,还是switch语句执行的速度快?在优化之前的人写的
    发表于 11-08 06:55

    PLC程序运行效率得到提高的方法的解析

    通过本方法优化可以极大的减少程序语句数,使PLC程序更简洁、可读性更好,由于不需要做耗时的类型转
    的头像 发表于 12-25 09:16 3648次阅读
    对<b class='flag-5'>PLC</b><b class='flag-5'>程序</b><b class='flag-5'>运行</b><b class='flag-5'>效率</b>得到<b class='flag-5'>提高</b>的方法的解析

    如何提高PLC程序运行效率详细编程方法说明

    在西门子plc中,子程序是为一些特定的控制目的编制的相对独立的程序。执行子程序调用指令CALL等,如果条件不满足子程序调用时,
    的头像 发表于 02-03 12:57 2984次阅读
    如何<b class='flag-5'>提高</b><b class='flag-5'>PLC</b><b class='flag-5'>程序</b><b class='flag-5'>运行</b>的<b class='flag-5'>效率</b>详细编程方法说明

    如何使用SQL修复语句程序说明

    本文档的主要内容详细介绍的是如何使用SQL修复语句程序说明。
    发表于 10-31 15:09 5次下载

    PLC编程优化设计使程序运行提速

    PLC中子程序是为一些特定的控制目的编制的相对独立的程序。执行子程序调用指令CALL等,如果条件不满足子程序调用时,
    发表于 03-24 15:57 955次阅读

    编写plc程序的心得

    程序调试过程**(**别是设备改造时,你的程序是加入到原来设备的程序中时), 当程序语句中出现 条件满足, 而 输出线圈不接通 时, 可以
    发表于 04-04 17:14 673次阅读

    提高PLC程序运行有什么方法

    。 如何提高PLC程序运行速度,可以采用以下编程方法,仅供参考: 1.根据项目实际需要,制定功能块规划,编写子程序。 在
    发表于 01-10 15:57 621次阅读

    SCL用GOTO语句执行程序跳转

    用GOTO语句能够执行程序跳转。此引起立即跳转到指定标号,为此而到同块中不同的语句
    的头像 发表于 02-01 09:22 1943次阅读

    PLC梯形图的语句表怎么写

      PLC梯形图的语句表是指将梯形图对应的程序逻辑,转化为文字形式的表格。这个表格中会列出每个逻辑元件的名称、参数、描述以及连接的输入输出点,以方便程序员进行编写和调试。
    发表于 03-16 17:18 4129次阅读

    通过物通博联PLC远程调试网关实现PLC远程升级程序

    远程调试网关,实现了PLC远程升级程序的功能,提高了生产效率,降低了运营成本,并使PLC的升级和维护更加便捷。 物通博联
    的头像 发表于 03-09 17:19 72次阅读
    <b class='flag-5'>通过</b>物通博联<b class='flag-5'>PLC</b>远程调试网关实现<b class='flag-5'>PLC</b>远程升级<b class='flag-5'>程序</b>