1)codeys是德国3s-software公司的软PLC软件,符合PLCOPEN的IEC 61131-3标准;而step7,只能讲是近似这个标准,因为很多概念和使用还是不一样的。个人觉得codesys更像JAVA,干净,有严格的规则,当然自由度是有限制的;而step7更像是C++,自由度更高,但某些概念会引起混乱,使用时也是充满陷阱和要注意的地方。
2)FC的定义。codesys中定义的FC就是单纯的FC,不允许有输出OUT参数;而step7的FC是兼顾了无参数的程序的功能,相当与codesys中的子PRG,带参数的FC可以带很多的输出OUT参数。在开始学习时Zui令人困惑的是,西门子提供的入门程序中,FC中竟然可以使用计时器!这个在plcopen中,FC是不可以带有保留数据的块的。
3)SCL的定义。codesys中的块,可以直接使用ST(structure text,和SCL一样)建立;而step7中,还要先建立source file,但所有的块的定义及编写都可以在一个sourcefile中全部定义,但顺序有严格的要求,稍不留神就出错了。
4)顺序功能图的使用。在codesys中为SFC,在step 7就叫GRAPH,step 7中增加了permanentinstructions和interlock,supervision等概念。特别是permanentinstructions,有时是需要增加一些附加逻辑的,在codeys中就很难实现。
5)EN/ENO。在codesysV2.3及标准中,是不定义EN/ENO的,那这样就很麻烦。比如MOVE指令,通常都要使用。当然在新出的V3.4版终于支持了。(山东创控教育)
6)指针。codesys支持指针,但说得很少。step 7的指针功能强大,但概念细分微妙。
7)复杂数据类型。codesys的这点做得挺好,挺规范。而step7又多了个UDT,Zui令我困惑的是UDT在块的参数设置时的使用。我在FB的IN/OUT参数中设置了一个UDT参数,外面建立了一个DB,类型也为UDT。但用此DB链接FB的此UDT参数时,显示出错。按照论坛的方法,先建立一个sharedDB,再在里面建立UDT的变量。这种用法真是无语了。
8)指令的多态性。step7仍然保留了不同数据按不同的指令,没有多态的概念,这点在1200中有改善。(山东创控教育自动化培训中心)