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

今日头条

1142人已加入

描述

在西门子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。所有这些内存都是用钱买的,所以很浪费。

同样,如果有字节变量经常需要用字类型变量转换,让字节变量占用一个字的内存宽度,浪费一个字节,从而避免类型转换。

审核编辑:符乾江

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分