PLC教程理论篇之PLC 编程语言二

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PLC教程理论篇之PLC编程语言二
一、指令系统
一个PLC所拥有指令的全体称为该PLC的指令系统。

指令系统代表着PLC的性能或功能。

一般讲,功能强、性能好的PLC,其指令系统必然丰富,不仅指令类型多,而且功能强,所能干的事也就多。

PLC指令系统是基于硬件的,加上所用的语言又未强制标准化,所以,各厂家PLC的指令系统都不相同。

即使是同一厂家,型号不同的PLC,其指令系统也不完全相同。

PLC的指令系统是在对其编程之前必须弄清楚的。

不熟悉指令系统,等于不懂语法用不好语言一样,PLC的程序是设计不好的。

从广义上讲,厂家提供的系统函数块与功能块,也应算为指令系统的一个部分。

如西门子PLC的功能块FB41、42、43用于实现PID算法,实质上它就是别的PLC的PID指令。

当今各家高性能的PLC多都有此类函数块。

这样函数块的功能当然比一般指令要更强些。

为了加深对PLC指令的了解,本讲先对PLC指令作分类分析,随后将对一些较常用的指令逐步进行介绍。

1.按指令的操作数分:
如考虑操作数的数量,则有:
(1)无操作数指令,如END(程序结束)指令、NOP(空指令,不作任何操作),仅操作码,无操作数。

这类指令不多。

(2)单操作数指令,如LD(装载)指令,除了操作码(LD),还要有操作数(位地址)。

(3)多操作数指令,如MOV(传送)指令,除了操作码(MOV),还要有被传送字源地址及目标地址。

执行它后,则把字源地址的内容,传送到目标地址中去。

多操作数,有的操作数可多达三个。

如ADD(加)指令,在操作码ADD之后有三个地址。

第一操作数为被加数;第二操作数为加数;第三个操作数为和。

指令在内存中占用的字节、字与指令长度有关。

单字及双字长的占一个字。

多字的占用不只一个字。

有的PLC指令在内存中占用的地址以“步”(STEP)计。

三菱PLC一个步占用4个字节。

OMRON CJ1机的“步”与以前的字基本上相同,OMRON 提供有方法可供换算。

这里的操作数多少,与在指令执行中,参与操作的实际数的数量,并不是一回事。

操作数可能只有两个,但实际参与操作的数可能是几十、几百,以至于几千个。

真正参与操作的数到底多少,是由指令的功能及特点决定的。

如考虑操作数本身的特点,则有:
(1)位(bit)操作数,它相当于输入、输出点,或内部继电器。

(2)数位(digit)操作数含4个bit。

作数位处理时,要用到它。

OMRON PLC多有此处理。

三菱PLC的数位操作,可用K1M0,即把M0到M3作为一个数位。

如K2M0,则两个数位。

当然,开始地址可以是任意的,不一定是M0,所以用起来较灵活。

(3)字节(byte)操作数,含有8个bit。

作字节处理时,要用到它。

西门子PLC用此作内部器件标号单位,其标志为B(用其作后缀)。

(4)字(word)操作数,它含两个字节,16个位。

如果表示10进制数,可表示4位(digit)数,即常用的BCD码。

多数PLC都有这种操作数,特别是使用数据运算、处理时,更是这样。

西门子PLC用字时,其标志为W(用其作后缀)。

(5)双字(Double word)操作数,它含两个字(通道),可表示8位BCD码,或8位16进制数。

三菱及西门子PLC用双字时,其标志为D(三菱用其作前缀,西门子用其作后缀),而OMRON为L(用其作后缀)。

(6)多字操作数,有多个数据参与操作。

2.按地址的表达及作用范围分:
如考虑操作数地址的表达方法,则有:绝对地址、符号地址。

(1)绝对地址,它使用PLC厂家定义的地址。

如D0600,即DM区第0600字。

(2)符号地址,用程序设计软件符号编辑器编辑的,与PLC厂家定义的地址对应的符号(用有意义的文字符号表达)地址。

使用符号地址是不仅可增加PLC程序的可读性,而且,还可使所程序设计序便于修改,便于重用。

是PLC程序设计技术的发展方向。

作为符号变量操作数地址,如考虑其作用范围,则有:局部变量、全局变量。

(1)全局变量,它在PLC中定义。

用于PLC有关的所有程序。

(2)局部变量,它在程序中定义。

用于有关程序,只在本程序有效。

3.按操作数寻址方式分:
如考虑操作数寻址方式的特点,则有:
(1)即时数,即常数。

可为BCD码,也可为16进制数或字符。

等等。

(2)(2)直接寻址,即对这个地址的内容进行操作。

(3)(3)间接寻址,这时,以这个地址的内容作为地址,再用这个地址的地址的内容进行操作。

间接寻址的方法较多。

可以用索引寄存器,也可用累加器(西门子PLC),也可用类似于C 语言的指针。

当PLC用于数据处理时,常要使用到间接间接寻址。

具体方法将在以后的实例中逐步介绍。

4.按指令的作用分:
这个作用是从逻辑关系上讲的,有:
(1)输入类指令,用以处理输入信号及反馈信号,以建立相应的逻辑条件。

执行这类指令不产生输出,但它为输出类指令工作提供条件。

可知,一个有效程序,不可能仅使用这类指令。

输入类指令有两种执行方式:
正常执行,每一扫描周期,都依它的操作数正常I/O刷新后得到的值,进行逻辑处理。

立即输入刷新执行,每次执行它前,先进行输入刷新,然后再依刷新后操作数取得的新值,进行逻辑处理。

要这样使用指令,则要在它的代码之前加感叹号“!”。

在梯形图上的符号为:
还可对输入指令作微分处理。

有上沿微分与下沿微分。

上沿微分,当它的操作数从OFF到ON的那个周期,此操作数按ON处理,其它的均
为OFF。

要这样使用指令时,要在它的代码之前加向上的箭头符号。

在梯形图上的符号为:
下沿微分,当它的操作数从ON到OFF的那个周期,此操作数按ON处理,其它的均为OFF。

要这样使用指令时,要在它的代码之前加向下的箭头符号。

在梯形图上的符号为:
输入指令的执行方式与PLC的生产公司及PLC的型号有关,不是所有PLC都有这么多的执行方式。

(2)输出类指令,用以产生输出,或执行某种信息处理。

但是,产生什么输出,以及是否进行信息处理,要依在它执行之前,由执行输入指令所建立的逻辑条件决定。

显然,在执行这些指令之前,一般讲,总是要先执行输入类指令的。

不然,输出怎么能去反映输入呢!
输出类指令有多种执行方式:
正常执行,每一扫描周期均依执行它时的逻辑条件情况,处理该指令;到了输出刷新时,才把这个输出传送给输出锁存器。

立即刷新执行(AN immediate refresh,IR),处理该指令后立即进行输出刷新,把输出的结果送给相应的输出锁存器。

要这样使用指令,则要在它的代码之前加感叹号“!”。

上沿微分执行(A differentiated up,DU),当它的执行条件从OFF到ON的那个周期执行,否则,即输入条件不变,或OFF或ON,都不执行。

要这样使用指令时,OMRON PLC 要在它的代码之前加符号“@”,而三菱PLC则在其前加P。

西门子无此指令处理方法。

下沿微分执行(A differentiated down,DD),当它的执行条件从ON到OFF的那个周期执行,否则,即输入条件不变,或OFF或ON,都不执行。

要这样使用指令时,OMRONPLC要在它的代码之前加符号“%”;三菱及西门子无此处理方法。

输出指令的执行方式与PLC的生产公司及PLC的型号有关,不是所有PLC都有这么多的执行方式。

(3)中间指令,是为了便于程序设计、提高程序效率而新增的指令类型,老式的PLC多没它。

这类指令承上启下,既按在本指令之前建立的逻辑条件,执行本指令;又依本指令的
执行情况,再建立相应的逻辑条件,为后续指令的执行提供前提。

中间指令的右方,可先为输入指令,然后才为输出指令。

以至于输入、中间指令多次相间,最后才为输出指令。

新型西门子PLC常有这中间指令。

以至于有的原为输出类指令,如数据传送、运算等很多指令,也可当中间指令处理。

这样,当执行数据传送后,会依传送的情况,对这个指令的执行结果标志位输出一个逻辑值。

而这个逻辑值又可作为下一个指令的逻辑条件。

这种指令的处理又称“EN”、“ENO”机制。

即:每个指令都有“EN”,即输入条件,输入条件成立,才执行本指令;还都有“ENO”,执行结果,指令成功执行了,或执行后取得某期望的结果,则ENO为1,否则为0。

如图4-7,这里的加(ADD-I)与乘(MUL-I)指令都是作为中间指令使用。

如图程序,要使Q0.0 ON,其条件是I0.0 ON以及这里的加(ADD-I)与乘(MUL-I)指令成功执行。

可知,这样的梯形图的表达是很简练的,效率是很高的。

只是,这样的梯形图就不大像电气原理图,与创立梯形图的初衷略有违背。

也许这也算“与时俱进”吧。

5.按指令的执行情况分:
PLC的输入指令,在每扫描周期中,总是执行的。

多数输出指令,在执行(即与其有关的输入)条件具备时,也总是执行的,并立即产生执行后的效果。

传统PLC的输出指令也都是这样的。

但,在新型的PLC中,有的指令就不完全是这样的。

如PID指令,尽管执行条件具备,设定又无不当之处,但它的执行周期不是取决于扫描周期,而主要决取于对PID工作周期的设定。

再如求平均数、求总数,这样表处理或文字处理指令,要在一个扫描周期内实现它的功能,所用的处理时间很长。

新机型允许其分开在若干扫描周期内完成。

这样,可避免出现,执行这类指令时扫描周期过长,不执行时又较短,而I/O响应时间一致性。

6.按指令的使用分:
这里的使用是指使用频率及表达它的方法。

按这个使用分有:
(1)基本逻辑(有的称顺序)指令:用得最多,简易编程器上多有其对应的专用键。

主要用于逻辑操作。

(2)应用指令,有的称为功能指令,可实现比逻辑操作更为复杂的功能。

在简易编程器上,一般无与其对应的专用键。

用简易编程器,输入这种指令有两种办法,一是用先输入功能键(FUN),后输入功能号。

OMRON及三菱有的的PLC就是用这种方法。

另一为在编程器上显示指令菜单,在菜单中选择所要输入的指令,西门子、松下的PLC就是用这种办法。

随着功能指令增多。

仍用两位数的功能码不够了。

所以,功能指令分为两种:一为有固定的功能码,如01,固定代表END指令;另一为无固定功能码,如PULS(脉冲)指令,就没有固定的功能码,使用前现做指定。

没有固定的功能码的指令,OMRON称之为扩展指令。

其功能码要在使用前分配。

当然,有的PLC把功能码提升为3位数,就不存在此问题了。

此外,还可按功能,即按指令能干什么事分类,把类似的归在一起,PLC指令的类型还是很多的。

以CJ1机为例,OMRON把它分有32种之多。

再进一步归纳还有:(1)基本逻辑类指令,用于逻辑关系处理,是最常用、最基本的指令。

(2)定时、计数类指令,用于定时,或计数,也是经常要用到的指令。

(3)数据处理类指令,用于数据运算、传送、比较、译码、编码、移位及其它有关指令。

(4)流程控制类指令,用于控制程序执行的流程。

可使PLC执行指令能按所控制的顺序进行,而不一定非要从零地址开始到最高地址,依此执行。

(5)监控类指令,用于处理PLC或被控制对象的故障检测,有助于提高PLC及其控制系统工作的可靠性。

(6)处理I/O类指令,用于处理PLC应急I/O刷新或数据(信息)的入或出。

(7)通讯类指令,用于处理PLC与PLC,或PLC与计算机,或PLC与智能设备间的通讯。

(8)内存管理指令,用以管理PLC的各个存储区,存贮卡。

相关文档
最新文档