一文读懂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的地址编制,往往需要耗费工程师很多的时间和精力。
在PLC连接点的属性对话框中,“地址”栏目下面可以手动录入相应的地址编号,显然这样为每一个PLC输入输出点手动录入地址的工作方式并不高效,也与EPLAN高效工程的理念背道而驰。
那么在EPLAN的平台上,我们是如何解决PLC地址编址这个问题的呢?
下面我们就一起看一下吧。
PLC编址前我们需要做一项准备工作:PLC的品牌选择。这决定了地址的编址格式。
通过【选项】—【设置】—【项目】—【设备】—【PLC】找到您在项目中使用的PLC品牌,这里采用菲尼克斯的PLC为例。
1)自动连续编址
这种情况下,我们为一个机架上的PLC进行编址时,不需要预留地址。我们可以采用PLC编址功能进行连续编址。
在PLC导航器中选中KF设备,执行【项目数据】—【PLC】—【编址】:
在弹出对话框中,设定起始地址,如下:
一键即可完成PLC的连续编址!
2)设定起始地址自动编址
有些情况下我们需要为输入输出模块预留一些地址,那么上述编址方式就不太适用了。EPLAN仍然有办法帮您解决。
首先,我们在PLC导航器的筛选器上选择【主功能】配置,此时导航器中只显示PLC盒子。
选中KF设备执行右键【表格式编辑】:
在弹出的表格式编辑对话框中,选择【机架】配置,在“PLC卡的起始地址<20419>”属性中,录入每一个PLC模块的起始地址。
上述设置完成后,将PLC导航器的筛选器恢复到“未激活”的状态,执行【项目数据】-【PLC】-【编址】:
在弹出的下述对话框中,直接点击【确定】,即可一键完成编址工作。
转发是最大的鼓励!谢谢您的支持!
小贴士
PLC专属资料: 含有从入门到高级所有PLC学习资料(三菱/西门子/欧姆龙) ,电气经典18本大全书,历年电气考试真题、电气必备实训仿真软件、电气自动化行业各类型技术手册!
相关问答
plc地址分配表怎么写?
PLC地址分配表是用来分配PLC系统中各个元件的地址信息的一种表格,通常用于控制逻辑电路的设计和PLC程序的编写。以下是一个基本的PLC地址分配表的示例:|元件...
plc端口设置?
位机开发中三菱PLC如果要走MC协议,是不需要额外编程的,但是需要做一些简单的配置。1.在右侧工程栏中双击PLC参数;2、在弹框中选择内置以太网端口设置,设置I...
plc编程中的符号和地址怎么填?
在PLC编程中,符号和地址是用来标识和访问输入/输出设备、内存区域和变量的。符号用于命名和表示不同的元素,例如输入端口、输出端口、计数器和定时器等。地址...
pLC编程地址怎么显示红色字?
是指的西门子STEP-7的编程软件吗?如果地址显示红色说明你写的地址不存在。是指的西门子STEP-7的编程软件吗?如果地址显示红色说明你写的地址不存在。
plc如何控制外部地址?
系统的定位控制执行采用伺服电机驱动完成,上层驱动器仅进行命令的下发和参数的设置。保持伺服电机及驱动器在控制系统中,作为独立的运动执行层,从而形成如下的...
如何用step7设置西门子300plcip地址?
1、双击打开STEP75.5编程软件2、单击工具栏中的“选项--设置PG/PC接口”选项。在弹出的窗口中,选择当前PC与PLC链接的网卡。注意:在同网卡下有多个选择...
plc显示所在区域无法登录怎么办?
如果PLC(可编程逻辑控制器)显示所在区域无法登录,可能是由于以下原因导致的:网络连接问题:检查网络连接是否正常,确保PLC所在区域的网络能够正常访问。...
plc连接电脑需要改ip地址吗?
PLC连接电脑需要改IP地址。如果你使用的是西门子的S7-1200PLC,你需要在D300Win软件的系统结构定义中依次插入基板与模块,然后再以太网模块的参数定义中输入IP...
plc通讯地址怎么写?
您好,PLC通讯地址的写法取决于具体的PLC品牌和型号。一般来说,PLC通讯地址通常由三个部分组成:CPU地址、IO地址和数据类型。CPU地址:通常是PLC的站号或节点...
plc符号地址是什么?
PLC是指可编程逻辑控制器,它是一种电子设备,常用于工业自动化控制。在PLC控制系统中,符号地址被用来标识各种输入输出信号、内部寄存器、计数器、定时器,以及...