如何快速提高PLC运行速度,让工程师都受益的编程方法
怎样来提高PLC程序运行速度,可以采用以下几种编程方法,仅供参考:
1、根据工程实际需求,进行功能块规划,编写子程序
在PLC中,子程序是为一些特定的控制目的编制的相对独立的程序。执行子程序调用指令CALL等,如果条件不满足子程序调用时,程序的扫描就仅在主程序中进行,不再去扫描这段子程序,这样就减少了不必要的扫描时间。
2、用字或双字数据传送给DO点方法来控制输出
在PLC的应用中通常都会有大量的输出控制,用字或双字数据传送给DO点方法来控制输出可以提高速度,只要根据实际应用的要求,合理分配输出地址,变换控制输出控制字,可以大大减少PLC程序执行的步数,从而加快PLC的程序运行速度。
PLC的执行步数根据程序长短会不同,扫描时间会根据执行步数的不同而不同,如果用一个字或双字mov指令完成8个数字量输出的控制,当然比用8个mov指令完成8个数字量输出的控制所需要的程序步数少。
3、脉冲触发SET、RESET
PLC中,使用SET指令只执行一次即可,不必每次扫描都执行这个指令,很适合与脉冲输出(PLS/PLF)指令配合使用。有些工程人员忽视了这个问题,使用了常规的方法来驱动SET指令,无意中增加了PLC程序扫描运行时间。
4、避免了类型转换,方法如下
以S7-200为例,它的内存格式与我们常用的PC机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。
如我们定义符号时将字变量定义在VW2,同时保持VW0的值为零。则程序中可以用VW2以字型访问该变量,同时也可以VD0以双字型访问,避免了类型转换。
为了避免使用时混淆,最好以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀:
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。完全不需要类型转换。
本方法可以极大的减少程序语句数,使程序更简洁、可读性更好,由于不需要做耗时的类型转换,程序运行效率也得到提高。且数学运算量越大,效率提高越明显。
缺点是要多占用两字节的内存,以后程序中不能使用VW0。
同理,如果有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字的内存宽度浪费一个字节,避免类型转换。
如何快速提高PLC运行速度,让工程师都受益的编程方法
怎样来提高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以双字型访问,避免了类型转换。
为了避免使用时混淆,最好以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀:
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。完全不需要类型转换。
本方法可以极大的减少程序语句数,使程序更简洁、可读性更好,由于不需要做耗时的类型转换,程序运行效率也得到提高。且数学运算量越大,效率提高越明显。
缺点是要多占用两字节的内存,以后程序中不能使用VW0。但S7-200的RAM空间很大,一般是用不完的,以226为例,有多达10K的RAM,偶从来没有超过1K。这些RAM都是花钱买来的,不用白不用,不用也是浪费了。
同理,如果有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字的内存宽度浪费一个字节,避免类型转换。
关于第3点'使用SET指令只执行一次即可,不必每次扫描都执行这个指令,有些工程人员忽视了这个问题,使用了常规的方法来驱动SET指令,无意中增加了PLC程序扫描运行时间'
最后:不是很理解,能不能说得细一点
1:如果在ob里编写子程序段,是扫描的, 但是如果您编写为FC调用,那么在FC的调用条件没有满足时,FC中的程序暂时不执行。这也是我所说节省时间的意思。
2:PLC的执行步数根据程序长短会不同, 扫描时间会根据执行步数的不同而不同,如果用一个mov指令完成8个数字量输出的控制,当然比用8个mov指令完成8个数字量输出的控制所需要的程序步数少。
添加一个:
以上就是提高PLC运行速度的编程方法。
相关问答
modbusrtu,plc怎么控制变频器?
要使用PLC控制变频器,可以使用ModbusRTU通信协议。以下是一种可能的步骤:1.首先,你需要了解你的变频器支持的ModbusRTU地址和寄存器映射结构。这些信息通常...
谁清楚!步进电机怎么加速与减速?
[回答]滑行。每个阶段都由脉冲掌控,加快PLC掌控Q电机,假如我必须1000个脉冲,还是只是匀速阶段的脉冲,那这1000个脉冲式还包括了这四个阶段的脉冲数,由于Q...
三菱plc怎么控制伺服电机重复运动?
三菱plc控制伺服电机重复运动的方法:设定伺服电机参数:通过三菱plc的编程软件,设定伺服电机的相关参数,如额定转速、最大转矩、加速/减速时间等。创建运动...
用三菱PLC控制步进电机的编程是怎样写的?
M206:正转M207:反转Y0:脉冲输出Y1:反转信号D4200:频率(用于控制速度,数据来源于触摸屏)K99999999:脉冲数量K100:加速时间向左转|向右转如图,这个就是一...M20.....
如何自学PLC?
自学PLC可以按照以下步骤进行:1.学习PLC基础知识:了解PLC的基本概念、工作原理、组成部分等。可以通过阅读相关书籍、查阅在线教程、观看视频教程等途径进行...
PLC的CPU有高速缓存区吗?
是的,大多数PLC的CPU都配有高速缓存区。高速缓存区可以提高CPU对数据的访问速度,从而加快PLC的工作效率。通过在高速缓存中存储最常用的数据和指令,CPU可以更...
plc的加减速时间和伺服一样吗?
PLC的加减速时间和伺服并不完全一样。PLC的加减速时间是指控制输出信号的改变速率,即输出信号从一种状态过渡到另一种状态所需的时间。加减速时间的设定取决于...
富士变频器怎么用按钮控制加减速,不用PLC?
变频器一般都有加速减速这个功能的你可以先把变频器的参数设置好把两个继电器输入点设置为加速减速,然后分别接两个按钮就可以啦但是这种是只能点动的即...
请问plc电池报警可以直接更换吗?_土巴兔装修问答
大多数公司PLC均采用3V或3.6V的大容量免充电锂电池来储存程序。如果你要更换该电池最好在设备带电的情况下更换;为了防止引起不必要的纠纷最好将机...
PLC变频器三段调速安全注意事项?
变频调速是通过变频器改变电动机供电电源频率进行调速的一种方法。由于变频器能适应生产工艺的多方面要求,具有调速性能好、调速范围宽、运行效率高、使用操作...