如何让你编写的PLC程序运行速度更快!
时间:2022-12-22 02:00:00
以S以7-200为例,它的内存格式是我们常用的PC相反,它是高字在前面,低字在后面。因此,我们可以将单词变量放在后两个字节中,并在程序初始化时清除前两个字节(这两个字节不得用于程序的其他地方)。
当我们定义符号时,我们定义字变量VW2,同时保持VW0的值为零。可用于程序VW2以字形访问变量,也可以VD双字访问避免了类型转换。
为了避免使用过程中的混淆,最好用明确的符号定义来区分单词类型和单词类型。强烈推荐匈牙利命名方法:前缀指示变量类型,将首字母大写中有意义的英语单词组合成变量名。例如,使用这些下缀:
b-字节型变量(byte)
w-字型变量(word)
d-双字变量(double)
r-实型变量(real)
f-位变量(flag)
btn-输入自复位按钮(button)
sig-输入传感器、编码等电平信号(signal)
rly-输出继电器位(relay)
……
当然,根据个人习惯,没有规则,主要有利于区分自己。如果有一个单词类型的变量VarName,我们可以这样定义:
wVarName-VW2
dVarName-VD0
当程序初始化时VW0清零(如果是不需要记忆的变量,直接dVarName或者在数据块中清零VW0设置为零。则以后需要以字类型访问变量时就用wVarName,当需要用双字类型访问变量时dVarName。不需要类型转换。
该方法可以大大降低程序句数,使程序更简洁、更可读。由于不需要进行耗时的类型转换,程序运行效率也得到了提高。数学计算量越大,效率就越明显。
缺点是要占用更多的两字节内存,以后不能在程序中使用VW0。但S7-200的RAM空间很大,一般用不完。以226为例,多达10K的RAM,偶不超过1K。这些RAM都是花钱买的,不用白不用,不用浪费。
同样,如果有字节变量,则经常需要与字类变量相互转换,使字节变量占一个字的内存宽度,浪费一个字节,避免类型转换。