今日头条
在西门子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。所有这些内存都是用钱买的,所以很浪费。
同样,如果有字节变量经常需要用字类型变量转换,让字节变量占用一个字的内存宽度,浪费一个字节,从而避免类型转换。
审核编辑:符乾江
全部0条评论
快来发表一下你的评论吧 !