梯形图编程,就说完全不用指针寻址这些,也不用循环指令,西门子300PLC中,遇到复杂的工况,比如说单个设备的控制比较复杂,而且一个项目中有几个以上的这样的设备,他们之间相互有联锁,相互有步骤限制的话,就可能使你的单个程序块中的程序行,在几百行以上。 如果遇到这种单个块都是几百行的,且每行都不是简单的重复功能的话,保证你完全看明白,要几个小时。且不说一个项目中可能有多个这样几百行的程序块。当然这种项目的点数一般都上点,所以说程序的复杂性,最终还是取决于工况的复杂性,以及控制要求的复杂性,当然点数多的话,计时简单也会使得项目程序比较多。最终的结果就是程序块,程序行都会比较多,这样程序就比较复杂了。 如果你想人为的设置一些复杂性,那么就要多用SFC20这样的批量数据的处理命令;或者将比如一个阀门的控制块做成能够适应各种阀门的功能块,然后在不同的阀门使用时候给予不同的实际参数,甚至不同的阀门很多的功能块的管脚都不被使用。比如阀门这个,如果某人想看明白你这个程序,那么就需要将每个管脚都搞清楚,但是结果发现很多管脚其实是不是给这种阀门服务的,这样就增加了阅读者的难度。如果多遇到几个这样的块,无心研究的人,也就会作罢了! 来看一下我说的SFC20,在很多比较复杂的程序中,应该都会使用到这个块! 这个块是实现把DB1中 DBB0-DBB1999这样2000个字节的内容复制到DBB3000-DBB4999中的2000个字节中去,2000个字节的数据内容,就这样一个块就复制过去了。比如你要查询DB1.DBD3500这个变量的时候,你在程序中搜索的话,是不能搜索到的,就只能通过交叉索引,看到原来这个DBD3500是被SFC20批量复制来的,然后就要去看DB1.DBD500中的值是从哪里来的,如果DB1.DBD500中的值也是被整段传送过来的,那么就需要继续向上寻找,有时候查找一个点,开4-5个程序块,也是很平常的事情。 (责任编辑:admin) |