直播课堂
HOME
直播课堂
正文内容
plc编程地址 一文读懂PLC过程映像区和外设地址,PLC编程真的超简单
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

一文读懂PLC过程映像区和外设地址,PLC编程真的超简单

一、过程映像区

1.1 什么是过程映像区

当我们在用户程序中对输入 (I) 和输出 (Q) 地址区进行寻址时,CPU并不直接访问信号模块, 而是访问 CPU 系统存储器中的存储区。 该存储区就是过程映像区。该区域分为两部分: 输入过程映像区(PII)和输出过程映像区(PIQ)。有两种方式可以更新过程映像区:OB1更新过程映像区和PIP更新过程映像区。

1.2 使用过程映像区有什么好处

与直接访问输入/输出模块相比,访问过程映像区的优势在于在循环程序处理期间,可为CPU 提供一致的过程映像区数据,即在程序执行过程中,访问的过程映像区信号始终一致。 如果在程序执行期间输入模块的信号状态发生变化,过程映像区中的信号状态将保持不变,直到过程映像区在下一个周期中被更新。只有在过程映像区刷新时刻,I区和Q 区的内容才与输入/输出的实际值相同,所以它们并不能直接反映输入/输出的实际状态。

此外,由于过程映像存储在CPU的系统存储器中,访问过程映像区的速度明显快于直接访问信号模块。为了节省时间,通常程序中使用过程映像区的数据。

1.3 过程映像区的设置

对于S7-300/400的CPU而言,可以设置过程映像区的大小,具体设置方法如图1和图2所示,设置范围可以查看CPU的技术规范手册或者在组态界面查看。

对于S7-1200/1500CPU而言过程映像区不可更改。S7-1200 CPU输入过程映像区大小为1kbyte,输出过程映像区的大小为1kbyte。

S7-1500CPU输入过程映像区大小为32kbyte,输出过程映像区的大小为32kbyte。

图1 经典STEP7软件中设置CPU过程映像区

图2 博途STEP7软件中设置CPU过程映像区

对于S7-300/400的CPU来说,能否更改过程映像区的大小与CPU固件相关。

1.4 OB1更新过程映像区有什么特点

在地址的分配过程中,如果模块的地址位于过程映像区之内,则可以选择自动更新过程映像,自动更新即为按照CPU OB1的周期更新过程映像区,如图3所示。如果地址不在过程映像区,则该区域显示“无”。

图3 自动更新过程映像

对于S7-300/400的CPU而言,该区域默认显示设置为“OB1过程映像”。I/O模块会在此过程映像区中分配相应的地址,操作系统在其每个程序循环内自动更新此地址。PLC的循环程序处理过程如图4和表格1所示。

图4 PLC程序循环处理过程

表格1 PLC循环程序处理过程

1.5 PIP更新过程映像有什么特点

除 OB1 更新过程映像区之外,某些类型的 CPU 中还可以将输入/输出地址分配至过程映像分区 (PIP)中进行更新,比如一些I/O地址区域仅在相应的OB块,如循环中断OB被执行时才会被刷新,这种有条件的刷新方式也可以减轻CPU的负荷。

注意:只有具有输入或输出模块才能选择此选项,同时不能将同一输入/输出地址既分配至 OB1 过程映像区更新,又分配至过程映像分区 (PIP)做更新,只能二选一。

过程映像分区的更新有以下两种方式:

将 PIP 分配至 OB块更新通过在用户程序中通过调用 SFC 26 (UPDAT_PI) 和 SFC 27 (UPDAT_PO)系统功能块做更新

在IO地址区中,可以将过程映像分区连接到一个OB,启动OB后,系统将自动更新所分配的输入过程映像分区,在OB结束时,系统将分配的过程映像分区输出写入到I/O输出中。图5为通过过程映像分区6和循环中断做更新的示例,此外CPU还必须支持过程映像分区,可用的过程映像分区数量取决于CPU类型。

S7-300 CPU支持的过程映像分区的最大数量为1;S7-400 CPU支持的过程映像分区的最大数量为15;S7-1200 CPU支持的过程映像分区的最大数量为4;S7-1500 CPU支持的过程映像分区的最大数量为31。

图5 通过过程映像分区6和循环中断做更新

如果过程映像分区未分配给OB,则操作系统不会更新此PIP,此时可通过特殊指令更新过程映像分区

过程映像分区输入可使用SFC 26 (UPDAT_PI)指令过程映像分区输出则使用SFC 27 (UPDAT_PO)指令

需要注意的是:S7-1200CPU 不支持SFC 26 (UPDAT_PI)、SFC 27 (UPDAT_PO)指令。S7-300 CPU不支持PIP分配至OB块更新。

二、外设地址

2.1什么是外设地址

对于无法更改过程映像区的CPU来说,一旦所要使用的模板I/O地址超出了过程映像区范围,就必须使用外设寻址。

外设寻址就是指不经过过程映像区直接去访问I/O模板,使用时通过在地址前加上字母‘P’来表示。

2.2 外设地址如何标识

通过外设寻址同样可以访问已被分配过程映像区的 I/O 地址。

PIB --> Peripheral Input Byte 外设输入字节PQB --> Peripheral output Byte 外设输出字节PIW --> Peripheral Input Word 外设输入字PQW --> Peripheral output Word 外设输出字PID --> Peripheral Input Double-word 外设输入双字PQD --> Peripheral Output Double-word 外设输出双字

外设地址的最小地址为字节,即PIB、PQB。

以模拟量输入为例理解IW与PIW:

PIW:直接读取外设地址,即直接采集模板信号。 外设地址是实时更新数据,可能同一个扫描周期内有不同的实时数值。在某些需要对输入/输出进行较为实时处理的场合,需要选择使用直接外设寻址。IW:每个扫描周期将模板数据读取至过程映像区,程序访问过程映象区数值。

2.3什么情况下必须使用外设地址

下列情况需要使用外设地址:

模板地址超出过程映像区范围用户程序需要直接从输入模板读取实时值输出值需要直接输出至模板 (至少一个字节)

三、常见问题

3.1如何访问外设地址的Bool地址?

由于外设地址的最小地址为字节,因此无法直接读取Bool地址。以输入为例,需要先用PIB/PIW/PID将数值MOVE到其他的存储区(如M,DB区),再访问M或DB的Bool地址。 输出也是一样,需要对M或者DB的Bool地址写入,然后将M或者DB的字节/字/双字MOVE到PQB/PQW/PQD。

3.2PQW能否使用状态图表监控?

PQW为只写操作,无法监看。通常设置一个中间地址,写入数值先赋值给M区或DB区地址,再由M区或DB区地址,MOVE给PQW,监看这个中间地址即可。 同理,PIW为只读操作,无法写入。

3.3DP或PN通讯正常为何从站数据为零?

S7-300挂分布式IO,通讯指示灯正常,但是读不到/写不进从站数据;读取的数值一直为0,写入的数值能看到,但从站无变化?

访问外设地址或者更改CPU的过程映像区,将输入或者输出地址放在过程映像区之内。

3.4 模块地址能否跨过程映像区?

使用S7-300系列的控制器CPU313C-2DP(6ES7 313-6BG04-0AB0)实现控制要求,组态一个32点的DI模块,自定义地址,“Start”设置为126,此时会提示地址无效,推荐的New Address为128,这是为什么?

这是因为当前CPU的输入/输出IO映像区范围默认是128个字节,32点的DI模块需要占用4个字节,本体的DI输入地址是124-125,如果保持地址连续的话,DI模块的地址应为126-129,此时已经超过默认的过程映像区128。对于一个数字量模块而言,其输出地址不能“跨越”过程映像,即一部分地址位于过程映像区内而一部分地址在过程映像区外。如果要保持数字量输出地址连续,可将过程映像区范围改大。也可以选择建议的起始地址128。

3.5 CP343-1或者CP342-5的IO地址与过程映像区有什么关系?

CP343-1或者CP342-5的IO地址需要在CPU的过程映像区之外,不能在CPU过程映像区之内,否则编译会报错。

专业讲解:PLC的寻址和编程元件

一、寻址

就是寻找操作数的存放地址。大部分指令都有操作数,而寻址方式的快慢直接影响到PLC的扫描速度。了解了寻址方式也有助于加强对指令功能特别是功能指令的执行过程的理解。单片机,微机中的寻址方式较多,而PLC的指令寻址方式相对较少,一般有下面三种:

1、直接寻址

操作数就存放在数据的地址。基本逻辑指令都是直接寻址方式。

2、立即寻址

其特点是操作数(一般为源址)就是一个10进制或16进制的常数。

3、变址寻址

这是一种最复杂的寻址方式,立即寻址和变址寻址均用在功能指令中。我们只能举例加以说明。

MOV D5V0 D10Z0

这是一条传送指令,D5V0表示操作数的地址存放在从D5开始向后偏移(V0)的寄存器中,而D10Z0表示把数的传送到D10向后偏移(Z0)的寄存器中,如果V0=K8,Z0=K10,且D13中存放的数据是K300,则指令执行结果是把D5向后偏移8个单位,即5+8=13,也就是数D13所存的数据K300送到10+10=20即D20寄存器中去。

变址方式可以使一些程序设计变得十分简短。

上面所讲的指令寻址方式的某些知识,在这门课程中虽然不会用到,但只要希望不断提高自己的PLC应用能力,就一定会用到。

二、编程元件

PLC内部有许多具有不同功能的器件,这些器件通常都是由电子电路和存储器组成的,它们都可以作为指令中操作数地址,我们把常数K/H和这些器件(又称作软元件)统称为PLC的编程元件。

三菱FX2N的编程元件可以分为位元件和字元件两大类。位元件是只有两种状态的开关量元件,而字元件是以字为单位进行数据处理的软元件。位元件有X,Y,M,S。字元件有T,C,D,V,Z,P,I,N和组合位元件。我们把常数K/H也归入字元件。

往期优秀文章回顾:

多种方法教你用PLC与变频器连接!可以说是很全面啦

相关问答

plc寻址编程方法?

1.PLC寻址编程方法有多种。2.首先,常见的一种方法是直接寻址编程,即通过指定PLC的输入输出点的地址来进行编程。这种方法简单直接,适用于简单的控制任务。另...

PLC组态地址是多少进制?

PLC组态地址是十进制。PLC(可编程逻辑控制器)是一种广泛应用于工业自动化领域的设备,用于控制机器和生产线的运行。在PLC中,组态地址用于指定输入、输出和中...

西门子PLC在编程时地址是如何得到的?-盖德问答-化工人互助问...

你到西门子官方网站去下载s7-200使用手册上面也有例子

三菱plc默认ip地址多少?

答三菱FX3U的主机不带网口,因此也没有IP地址。如果是扩展的ENET-ADP模块的话,默认的是192.168.1.250。为了确保准确,最好是用D8400,D8401重新设置一下IP地...

信捷plc扩展模块地址怎么分配?

信捷PLC扩展模块地址分配需要根据具体的实际应用情况来定。因为PLC扩展模块可以通过多个地址进行分配,不同的地址代表不同的扩展模块。在分配地址时,需要考虑...

什么是PLC输入输出信号代码和地址编码?可以举例说明吗,我想编程,但是物理地址和plc内部地址联系不起来?

以西门子为例:西门子200plc,io地址在plc上有标注,如果扩展了io那么顺序往下数就行了.300plc的io地址是在配置的时候制定或者自动生成的.从step7中很直观的就...

plc仿真软件怎么链入程序?

1、先在7-200plc编程软件中创建一个简单项目。2、编译,保证无错误。3、创建文件名和文件存放地址。4、在西门子7-200plc仿真软件的文件夹中打开汉...1、...

ABplc编程软件RSLOGIX5000里,如果输出模块为I2:06,怎么查找对应程序里的地址?

在组态里能看到地址,你可以用一个别名把这个地址改下名字,这样有利于你编程。不知道是否帮上了你。在组态里能看到地址,你可以用一个别名把这个地址改下名字,...

PLC编程电脑接口有什么要求?-ZOL问答

你用的是什么牌子的PLC一般的串口都是用9针RS-232的,也有直接用USB连接的,还可以将232接口转换成USB的,但是需要一个USB驱动程序,驱动了以后就可以用了COM0口...

谁有西门子plc200的编程软件的下载地址-ZOL问答

西门子S7-300plc编程软件STEP7V5.4SP5中文版含授权送视频教程,含西门子S7-GRAPH编程软件有用(0)回复干嘛不下300的!!!有用(0)回复你去baidu搜...

 宝生园  高纤乐 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部