PLC的指令是什么?
指令语句表编程语言是所有PLC都具有的最基本的编程语言。而指令语句表程序是由一条一条的指令堆砌而成的。因此,我们有必要对指令进行进一步的说明和解读。
1、指令格式
PLC的指令语句表程序和微机汇编语言程序非常的相似,我们也是以汇编语言的指令和指令系统方式来进行介绍。
所谓指令是指对PLC的一种操作命令,告诉PLC怎么做,做什么?人们设计了一系列的操作命令,并对他进行二进制编码。但是对于人们设计和交流沟通来说,二进制十分不便于记忆、阅读和书写。进一步又设计出了助记符形式的表示,这就是汇编语言的助记符指令格式。助记符指令十分好记,方便阅读和书写。更好的是它可以直接用键盘输入,然后通过PLC内部的编译程序把它变成一系列的二进制操作编码,由PLC的CPU来执行。
那么一条操作指令是由哪些内容组成的呢?一般来说,一条指令是由操作码和操作数组成的,例:
操作码又叫助记符。表示这条指令的性质和功能,就是要求PLC怎么做,一条指令,器操作码是必不可少的。
操作数又叫地址码,操作数地址,表示参与操作数据或数据的地址,在PLC中,也可以把它叫做编程元件。操作数告诉PLC做什么。上面这条指令表示和一个常开触点X0相串联,并完成逻辑“与”运算。
在PLC指令系统中,操作数可有可无,没有操作数的指令只表示完成一种功能,例如下面指令:
END
它就没有操作数,仅表示程序就此结束。
在功能指令中,操作数可以有1-4个,例如下面指令:
ADD D0 D1 D2
这条指令中操作数有三个D0 、D1、 D2。这时候把操作数分为源数(源址)和目的操作数(终址)。源址表示操作数的来源,而终址表示指令操作结果存放地址。上面这条指令表示做加法,把D0和D1相加,相加结果放在D2里。显然D0和D1为源址,D2为终址。
往期优秀文章回顾:
18张电气自动化控制动态图,各种实操原理一眼就能看明白
PLC的各种变量怎样使用?
我最早接触“静态变量”的概念是在计算机C语言的编程中,清楚的记得它需要用"static"关键字来声明。静态变量(Static Variable)其实也是一种变量(Variable),因此在介绍静态变量(Static Variable)之前,我们先来介绍下在计算机和PLC的编程中“变量(Variable) ”的概念。
1 什么是变量
所谓“变量 ”,是在程序的运行过程中,其值可以根据某些条件而发生变化的量。与“变量”相对的是“常量(Constant) ”,顾名思义,常量的值在整个程序的运行中保持不变。
变量的名字称为“变量名”,变量名通常是一个助记符,用来表示一个物理地址。在这个地址上存放着变量的值。
变量有两个特性:作用域和生命周期。
2 全局变量与局部变量
变量的作用域是指变量的作用范围,也就是在哪些范围内该变量是有效的。根据作用域的不同,变量可以分为全局变量(Global Variable)和局部变量(Local Variable)。
全局变量在整个程序范围内都有效。
在C语言中,全局变量是在函数外部声明的变量。比如下面C语言代码中的“a”和“x”都是全局变量:
注:由于C语言从上而下执行,全局变量x并不能在函数func1中访问。
在西门子S7系列PLC的编程中,那些存放在公共存储区的变量都属于全局变量。公共存储区包括输入缓存区(I)、输出缓存区(Q)、位存储区(M)、全局数据块(Global DB)、定时器(T)、计数器(C)等等。比如,位存储区的M0.0,你可以在主程序(OB)或子程序(FB、FC)中访问它,它是全局的。
局部变量(Local Variable)是只能在某个子程序(FB或FC)中访问的变量。
也就是说,局部变量是私有的,子程序(FB或FC)只能访问其自身内部定义的变量,而不能访问其它子程序内部定义的变量。
从生命周期来看,全局变量的生命周期是整个程序的运行周期。也就是说,只要PLC还运行用户程序,全局变量就一直有效。
而局部变量的生命周期则取决于其存放的位置。
2 临时变量与静态变量
对于S7系列PLC而言,局部变量有两个存放的位置:临时变量存储区 (堆栈)和背景数据块 (Instance DB)。
临时变量存储区(堆栈),也称为局部变量存储区(Local Memory),用来存放FB或FC在运行过程中的临时变量 。
在S7系列PLC中,FB、FC或者OB都被称为“程序组织单元(POU,program organizational unit)”。PLC为每个POU分配一定数量的临时变量存储区,在S7-300/400 PLC中,这个区域的大小为256字节;在S7-200 Smart PLC中,这个区域的大小为64字节。
临时变量存储区中的变量称为“临时变量 ”,它们只在当前POU运行时有效。当POU运行结束后,该变量将被释放(无法保存)。
注:当POU由于中断而被挂起时,其临时变量会被保存,以便下次中断现场恢复后继续执行。
如果想保存程序运行的中间值怎么办呢?答案是使用静态变量(Static Variable)。
在博途(TIA Portal)环境或Step7开发环境中,功能块(FB)接口有“Static(STAT)”一项。所有在“STAT”栏内定义的变量都将会被存放到背景数据块中。在FB运行结束后,“STAT”中定义的变量不会被释放。这种变量称为“静态变量 ”。如下图中的变量“STAT_test1”和“STAT_test2”:
注:FB中的IN、OUT参数也会保存到背景数据块中。背景数据块中的数据只能被拥有它的功能块(FB)访问。
说到这里,你应该明白了吧?静态变量从作用域上分属于局部变量;从生命周期上来看,它与用户程序的生命周期相同。临时变量也属于局部变量,不过其生命周期短,仅在POU运行的过程中有效。
相关问答
三菱PLC的助记符是啥意思?
1.助记符是指在三菱PLC(可编程逻辑控制器)中用来标识不同功能的符号或缩写。2.这些助记符的目的是为了方便用户在编程和操作PLC时快速识别和理解各个功能模...
plc断电延时定时器怎么使用-懂得
plc断电延时定时器使用:PLC:可编程逻辑控制器,它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向...
plc乘法指令的助记符是?
西门子PLCA的乘法指令助记符是MUL,它是multiply的简写西门子PLCA的乘法指令助记符是MUL,它是multiply的简写
plc断电延时定时器怎么使用-131****0446的回答-懂得
plc断电延时定时器使用:PLC:可编程逻辑控制器,它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向...
三菱plc梯形图怎样转换成助记符?
你好,将三菱plc梯形图转换成助记符需要注意以下两个步骤:第一步:将梯形图拆分成多段,每一段都对应一个特定的含义或功能。第二步:根据每一段的含义或功能,...
停止按钮是常闭触点,梯形图也是闭点,为什在PLC中,用常开接点呢?
PLC是继电器电路的软体功能实现,但是它完全是软的东西,最终要落地驱动继电器,还是需要转换的,这个转换过程,往往会造成逻辑电平上的颠倒,所以常开可以变成...KM...
PLC编程语言有哪三个?
1、PLC有五种标准化编程语言顺序功能图(SFC)、梯形图(LD)、功能模块图(FBD)三种图形化语言和语句表(IL)、结构文本(ST)两种文本语言,最常用的两种编程...功能...
plc中四则运算怎么实现?
plc中四则运算怎么现实,这个应该不是很难根据编程手册中的基本指令即可完成。这里面需要注意几个问题,对于使用三菱plc的编程者来说,有整型的还有浮点型的四则...
PIC的标准编程语言分别是?
指令格式;TRISf说明;TRISf是LoadTRISRegister的缩写。其功能是把工作寄存器W的内容送入I/O口控制寄存器f。当W=0时,置对应I/O口为输出;W=1,置I/O.....
plc浮点数的应用?
PLC(可编程逻辑控制器)中的浮点数广泛应用于工业自动化领域。浮点数可以用于表示和处理实数,如温度、压力、流量等连续变量。PLC使用浮点数进行精确的计算和控...