作为一名as产品的热线工程师,在热线上经常会遇到客户的各种“疑难杂症”,必须“对症下药”才能帮助客户解决问题。其实有些“症状”可能只需要一个简单的设置就能解决问题。最近就遇到了这样一个case,在此与大家分享:
q:工程师您好,我现在用的是200的plc,刚刚看的系统手册,里面有个tp指令,可以以指定的周期产生脉冲,跟我的工艺刚好符合。但是我打开200的编程软件,怎么没找到指令啊,这怎么回事啊?
a:(哦,tp指令,是iec定时器指令。没找到?micro/win软件的编程模式问题。)您好!您在系统手册看的是定时器指令吧,tp应该是iec 1131-3编程模式下中的脉冲定时器指令?
q:是啊,iec的,我还看到了simatic 定时器,iec的特殊吗,系统手册里有,但软件中没找到这条指令,不能用啊?
a: 不是不能用,而是200的编程模式分两种,一种是simatic模式,一种是iec 1131-3模式(如图1),默认的编程模式是simatic 模式,这种模式下是不能使用iec指令的,必须修改编程模式为iec 1131-3 的才可以使用iec指令。
图1.编程模式选择
图2.simatic 编程模式 图3. iec 1131-3 编程模式
q:那我之前的程序都是默认siamtic下编的,那我这个指令不能用是吗?
a:没错,step 7-micro/win不提供在两种不同编辑模式之间移植程序的功能。
图4.不同编程模式下的程序不能移植
q:那我不能在simatic下使用tp指令了,那这功能我怎么实现啊?
a: 我们可以自己编程来实现这个功能。可以用脉冲启动一个有自保持功能的起保停电路,定时时间到后,通过常闭触点将输出点复位。(跟客户沟通具体的编程思路。。。)
图5.编程实现tp指令功能
至此,客户的问题已经解决了,消失的tp指令也重新出现了。
那各位看官,iec 1131-3编程模式和simatic编程模式有何区别,iec 1131-3编程模式又有何特殊之处呢,看我慢慢道来:
s7--200提供两种指令集用于完成各种自动化任务。
simatic指令集:大多数plc提供同类型的基本指令,但其外观和操作因供应商而异,通常有微小的差异。simatic语言仅是西门子公司提供的指令集,simatic指令通常执行时间最短, 所有三种编辑器(lad、fbd、stl)都可与simatic指令集共同使用。
iec指令集:符合plc编程的iec 1131--3标准,只能在lad和fbd编辑器中使用iec指令。国际电子技术委员会是为电子技术所有领域制订全球标准的国际性组织。在最近几年里,他们制定了专门针对众多plc编程领域的新标准。iec 1131-3就是其中之一,鼓励不同的plc制造商提供在外观和操作上相似的指令。
在simatic指令集和iec 1131-3指令集之间存在一些关键的差别:
1. iec 1131-3指令集中的指令较少。有些simatic通常包含的指令在iec 1131-3规格中并非标准指令,与simatic相当的指令以iec 1131-1指令集的非标准扩展形式提供。在指令树中用红色菱形〈♦ ) 标记。某些iec 1131-3指令与对应的simatic指令(定时器、计数器、乘和除)操作方法不同。
2.在iec指令中%表示直接地址。
图6. %表示直接地址
2. 一些iec指令可以接受多种数据格式,这个概念通常指多重功能。例如,数学指令盒中不区分add_i (整数加法)和add_r (实数加法),而是在加法指令中检查被加数的格式,并自动选择正确的cpu指令。
图7. 多重功能
算术指令、比较指令、传送指令,移位/循环指令也支持多重功能。
图8. 支持多重功能的指令
3. iec 1131-3模式编程,必须为全局符号表中的所有数值选择数据类型, iec编辑器具有细致数据类型检查,在该模式中,参数数据类型必须与符号或变量的数据类型完全匹配,和符号表(simatic 编程模式)在功能上的唯一区别是“数据类型”。
图9. simatic 符号表
图10. iec 全局变量表
4. 使用iec 1131-3指令时,必须使用类型声明,而且支持系统数据类型检查,这一功能有助于尽量减少编程语法错误。数据格式检查不需要用户介入。在编译过程中可以发现这些错误,simatic编辑器不具有此功能。
图11.编译过程中出现的错误
看到这,我想各位看官已经对iec1131-3这种编程模式心中有数了。