PLC内存分配
了解PLC的工作原理需要从PLC的内存开始,PLC 的变量采用绝对地址变量方式,每个位变量或者数值变量在PLC内部都是唯一性的,编程时只能按要求读取和写入这些变量的值。这里通过了解某款PLC的继电器、数据存储器来理解一般 PLC 的内存分配情况,为单片机开发 PLC 做准备。
这张图是某款PLC的继电器、存储器和常数表,下面逐个做出解释。
2.1 继电器。 其中继电器分为5类,分别是输入类继电器、输出继电器、内部继电器、定时器与计数器、特殊内部继电器。这里的继电器并非利用线圈和触电组成的物理类继电器,而是PLC数据存储器中的某个位变量,当这个位变量为“0”时,表示该继电器断开,当位变量为“1”时表示继电器闭合。
2.1.1 输入类继电器(X),PLC可以通过这类继电器读取输入的通断信号,用“X”标记。如输入点0将标记为X0。表中说明了这款PLC共有208个输入点,标记为X0-X12F。标记中的解释信息如下:
在上表中,列表示字节地址,行表示位地址,继电器应由继电器名+字节地址+位地址组成,当字节地址为“0”时,总结地址省略。
所以 X5就是X05,表示此继电器为输入型继电器,字节地址为“0”,位地址为“5”。X37就是字节地址为“3”,位地址为“7”的输入型继电器。如果表中空白表示位值为“0”,阴影表示值为“1”,那么X5 = 0;X37 = 1.
2.1.2 输出类继电器(Y),PLC可以通过这类继电器输出控制外部接口的通断,从而控制外围设备中电磁阀的通断,指示灯、接触器等外部用电器的通断。输出继电器用“Y”标记。如输出点0将标记为Y0。表中说明了这款PLC共有208个输出点,标记为Y0-Y12F。标记中的解释信息如下:
2.1.3 内部继电器(R),PLC运行时的中间值将保存在内部继电器中。内部继电器保存程序运算中的中间位变量信号,如:R0 = X1 & X2,这里R0就用来保存X1和X2相与的结果。R0的结果只保存在内存中,与外部输出没有任何联系,除非将R0的结果赋值给输出继电器,如:Y3 = R0,这样R0的结果将通过Y3发送出去。
内部继电器的值是暂存状态的,如果PLC在失电后这些数据将变为0,所以为了保存某些内部位变量,需要改变“易失性”的特性,变成保持型继电器。一般PLC在使用手册上会注明内部保持型继电器的区域范围。
内部继电器用“R”标记。如内部继电器点0将标记为R0。表中说明了这款PLC共有1008个内部继电器点,标记为R0-R62F。标记中的解释信息如下:
2.1.4 定时器和计数器继电器(T/C),PLC可以利用这些继电器实现计时或计数的功能。定时器或计数器分为两部分,一个是时间继电器或计数继电器,另一个是触点。当计时或计数的结果到达时将设定对应的触点位变量为1。计时器和计数器使用减值工作法,如T0的设定值是5s,当T0的工作条件满足时,每经过1s,T0减1,直到T0的值为0时,T0的位变量值为1。当T0的工作条件不满足时,T0对应的位变量为0。同理,计数器的工作原理一样。只是计时器以内部时间为减1的触发信号,计数器以位信号输入为减1的触发信号。
2.1.5 特殊内部继电器(R),PLC运行时的用于指示状态的内部继电器。表中指出该PLC共有64个特殊继电器位变量信号,如:常On,常Off,秒计时标志,加法溢出标志,错误警告标志等。
2.2 值存储区。 表中的值存储区是指字变量数值的保存区域,共有8个类型。其中WX、WY、WR的字分别对应2.1中的X继电器、Y继电器、R继电器的位变量数值。
2.2.1 输入继电器数值存储器WX。 通过WX的字变量可以一次性读取输入信号的变量值,它和X继电器的位变量信号一一对应。如下所示:
表中是X0-XF的输入信号状态, 其中X2、X6、X8、XD、XE 为“1”,WX的值为:
WX0 = 1x2^2 + 1x2^6 + 1x2^8 +1x2^13 + 1x2^14 = H6144(16进制) = D24900(10进制)。
输入继电器字地址由WX0-WX12共13个字节。WX0字对应R0-RF的位变量,WX1字对应X10-X1F的位变量,以此类推最后一个字WX12对应WX120-WX12F的位变量。
WY、WR的字变量的值特性与WX一样。WY的地址也是0-12,WR的字地址为0-62。对于特殊内部继电器没有字地址的读取必要,所以PLC中不支持对特殊内部继电器字变量的读写。
2.2.2 数据寄存器(DT)。 用于程序中的数据存储,每个字位16位,地址由DT0-DT1659共1660个字。字可读可写,但不支持字中的位变量的读写。由16位的性质可以得到如果这是一个无符号整数,数值的范围是0-65535。如果这是一个有符号数,数值范围是-32768-32767。
2.2.3 定时/计数器设定值区(SV)和定时/计数器经过值区(EV)。 SV是用户为定时/计数器设定的数值。当触发器闭合时,设定时间[n]递减,当经过值达到零时,定时器触点Tn(n为定时器触点编号)闭合。若在运行过程中触发器断开,则运行停止且经过值复位(清零)。
通过下面的实例,大家理解一下设定值(SV)和经过值(EV)的区别。
定时器动作:
方法一:下面是用K常数来设置设定值的示例。指定设定值区(SV)时的动作的说明。
(1)当PLC模式切换到运行(RUN)、或在运行模式下接通电源,定时设定值被传输至相同编号的设定值区(SV)。
(2)当计时触发器由OFF变为ON时,设置值被由设定值区(SV)传输至相同编号的经过值区(EV)。
(若在触发器闭合的情况下PLC模式变为运行,则会进行同样的动作。)
(3)若触发器保持闭合状态,则经过值区(EV)的值递减。
(4)当经过值区(EV)的值达到零时,同号的定时器触点(T)变为ON。
方法二:直接指定设定值区编号作为定时器设定值
设定值区号(SV)可直接指定为设定值n。
上述程序的具体操作如下:
① 当触发器X0为ON时,执行高级指令F0(MV),将K30设置到SV5
② 触发器X1变为ON后,由设定的数值30开始进行递减操作。
指定n(设定值SV的编号)为与定时器相同的编号。
2.2.4 特殊数据寄存器。 该寄存器的地址从DT90000-DT90111共112个字节,用于存储特殊数据的数据存储区,如用户的不同PLC特性设置,PLC运行中的错误代码等将被存储这个区域。用户可以同过这些寄存器定制化如通信频率,脉冲输出等性能,也能通过错误代码区的信息发现程序运行中的代码问题,运行故障等,便于差错。
2.2.5 索引寄存器(I)。 共两个字节的寄存器(IX,IY),寄存器可被用作存储区地址和常数的修改器。索引寄存器用于间接指定常数和存储区地址。可使用IX 和IY 两个16 位寄存器。用索引寄存器中的值来改变地址和常数,称为“变址”。
地址变址:地址 = 基地址 + IX 或IY 中的值(K 常数)
修改常数:常数 = 基数据 + IX 或IY 中的值
变址修改方法:
西门子S7-1200编程实例,基本逻辑运算指令如何使用?
西门子S7-1200中的逻辑运算指令包括逻辑与、逻辑或、逻辑异或、取反、编码、解码、选择、多路复用等。下面我们来介绍基本逻辑运算指令的使用方法。
逻辑与、逻辑或、逻辑异或指令如下图所示,其中,问号处可选择的数据类型为字节BYTE、字WORD、双字DWORD。IN1、IN2和OUT必须具有相同的数据类型。指令执行时,将输入参数IN1、IN2的对应位分别进行逻辑与、逻辑或、逻辑异或运算,结果送到输出参数OUT中。
取反指令如下图所示,其中,问号处可选数据类型为各种整形、字节、字、双字。IN和OUT必须具有相同的数据类型。指令执行时,将输入参数IN各二进制位的值取反,也就是将0变1、1变0,结果送到输出参数OUT中。
下面,我们通过一个编程实例来说明基本逻辑运算指令如何使用。将MW2和MW4中的数据进行逻辑与后,送到MW6中。
一、编写程序。首先在项目树中打开PLC_1下面的程序块文件夹,双击MAIN打开程序编辑器,在指令树中打开字运算文件夹,选择与逻辑运算指令,双击或拖放到编程区域,单击问号处,选择数据类型为WORD,在IN1处输入地址MW2,编辑器自动为MW2生成了变量名称TAG_1,可以在PLC变量表中修改,IN2处输入地址MW4,OUT处输入地址MW6。这样,一个简单的逻辑运算指令应用实例就完成了,单击保存项目按钮保存项目。
二、编译、下载程序到PLC。选中项目树中的PLC_1,单击编译按钮编译项目,单击下载按钮将所有块下载到PLC。
三、查看程序运行情况。在项目树中单击打开监视表格文件夹,双击添加新监控表格,可以看到项目树中添加了监视表格_1,同时在工作区打开了监视表格编辑器,在地址列依次输入MW2、MW4、MW6,默认显示格式为十六进制,在MW2和MW4的修改值列中分别输入1234和00FF,将MW2的显示格式改为二进制,选中该单元格,将鼠标放在右下角的小方块处,当鼠标指示变为十字形时按住鼠标左键往下拉两行,可以看到显示格式均改为二进制,单击全部监视按钮,所有数据的当前值全为0,单击一次性修改所有选定值按钮将新值写入,观察逻辑运算结果。
本篇我们通过一个简单的编程实例来介绍了西门子S7-1200基本逻辑运算指令的使用方法,更多西门子PLC编程的相关内容请持续关注本号。
相关问答
PLC数字量输入S321有几个指示灯?
PLC数字量输入S321一般有两个指示灯,一个为电源指示灯,用于指示电源是否正常,另一个为输入状态指示灯,用于指示当前输入信号的状态,通常为绿色或红色。在PLC...
plc点怎么查输出点?
要查找PLC的输出点,您可以按照以下步骤进行操作:1.首先,确定您使用的PLC型号和品牌。不同的PLC可能有不同的操作界面和方法。2.进入PLC的编程软件或者监控...
plc上的lm指示什么?
plc上的lm指示表示接入的为直流电。plc上的lm指示表示接入的为直流电。
PLC上指示灯的是什么意思?
1.PLC上指示灯的意思是表示PLC设备状态或工作情况的信号灯。2.PLC上的指示灯通常有不同的颜色和闪烁方式,用于指示不同的状态,比如电源状态、通信状态、输...
plc输出为1什么状态?
在可编程逻辑控制器(PLC)中,输出为1通常表示输出设备处于激活状态。当输入信号满足程序的逻辑条件时,PLC将通过其输出信号激活相关设备或执行相应的操作。输...
plc中mov什么意思?
mov是传送指令;例[movk5d0];就是把5这个数值存在D0里;例[movk5k1y0];就是把5这个数转化为2进制、即是0101;0为低电位、1为高电位;体现在1组(k1.....
plc上的灯和接线端子怎么对应?
在PLC(可编程逻辑控制器)上,灯和接线端子的对应关系通常由制造商的规范和标准决定,但一般来说,灯和接线端子的对应关系可以根据以下几个方面来确定:灯的标...
三菱plc指令ADD用手持编程器肿么写-ZOL问答
三菱plc指令ADD用手持编程器无法直接输入。需要输入该应用指令的功能代号。ADD是加法指令,功能代号是FNC20.用手编输入方法:按“FNC”键,然后输入数字20,手编...
三菱plc32位加减计数器的用法?
您好,三菱PLC(可编程逻辑控制器)的32位加减计数器可以用于计数和累加操作。以下是其用法:1.配置计数器:在PLC编程软件中,选择适当的计数器指令并将其配置...
plc程序出错有没有指示?
如果程序出错,是肯定不能够上传到plc的或者报警灯会亮如果程序出错,是肯定不能够上传到plc的或者报警灯会亮