步进指令多是教学用,三菱是STL指令,西门子S300据说没有独立的步进指令,但可以用很多方式代替实现。 梯形图、指令表、SFC等是编程的方式,也可以叫语言种类。 编程习惯实际受个人能力制约,编程也没有固定格式,只要单位许可,几乎可以随心所欲。 一般的常开常闭,以及步进指令是初级指令。 SHL等位移指令是中级指令。 高级指令的定义比较宽泛,通常带有技巧性与特殊定义,比如调用宏文件,格雷码转换等。 严格的说,步进是程序步,不能算成一个独立的指令。 至于别人怎样编写我不能解释,就我本人接触到的做一下描述,仅供参考。 一、越是重要地方,涉及生死的场所,维护人员越多的程序,越是习惯用基础指令。程序的优劣拼的是对设备的熟悉度。比如特种设备的起重机设备,多是Mov指令,读取变频器反馈值送到触摸屏显示窗口等等。 二、为了优化程序与减少程序步,使用一些特殊指今。比如我将输入端Mov给MB0(西门子),后期调用时直接用M0.x就可以了,不再需要一一定义输入端。 三、花里胡哨的程序往往表明的是编程员不懂,而不是高手。工控与电气通常要求程序简单与目的性明确,看似高大上的编程很多暴露了编程员的实际能力,虽然结果相同。我曾与一个写C的一起做启停保,这在PLC里实在不值一提,然而这个C又是写定义,又是写注释,好像还做了很多底层文件,还把文件名保存为启停保.00.xx.01。PLC一步的,他写了一大篇,重点是很好看,且看不懂。 就我个人习惯,比如一个比较指令(位指令),当MB0=1时,实际置位的是M0.0,等于2时是M0.1,等于4时是M0.2,等于8时是M0.3。 眼尖的可能已经看出来了,这不是8421码吗?对的,所有M与Q都能用8421码置位或复位。这就是基本指令的秘密,所有的指令不过就是在控制那个点的置位与复位而已。 步进指令也可以叫顺控指令,实际在DCS等中控系统里还是应用很广的。 针对步进指令为什么应用少,是因为这个指令只适用固定格式,单独产品的需求,在一些小型场合还是可行的。但在一些需要配合,数据釆集等中大型场所,不可能等你一步一步去执行,这不仅涉及中断,还有一系列的问题存在。 所以步进指令不会或很少用在系统化设备主程序里,但可用在能独立运行的终端设备里。 很多设备的控制都不用步进指令(在西门子PLC中叫顺控指令),其实是不确切的。 造成这个现象的原因是,实现顺序控制的方法比较多,比如用定时器配合SET/RESET指令,或者使用移位指令也可以实现。所以主要还是看编程人员的个人爱好,用很多组的SET/REST指令是比较灵活的,不用去按照步进指令的指定格式去做,因此很多人能不用步进指令的时可能就不想去用步进指令了。 但是,利用顺控指令的程序流程更明晰,所以还是有很多程序中在使用顺控指令的。西门子200系列PLC中的顺控指令是属于程序控制指令的,在西门子300/400系列STEP7软件,也配置了GRAPH的安装组件,可以看一下: 这个图片上的STEP1/STEP5/STEP6,就是步骤1,5,6。这些都是方便程序的步骤按顺序执行或跳转的! (责任编辑:admin) |