一文读懂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标签和地址命名规则及5个技巧
图片来源:CEChina
作者 | Frank Lamb
“
了解标签模板、常见的工厂自动化标签缩写、过程控制标签缩写以及5个标签和地址命名技巧。
”
过去, 可编程逻辑控制器(PLC) 地址是基于寄存器的。数据保存在诸如MW210、B3:6/2、N7:50 或DB5.dbx50.2 之类地址的寄存器中。它们不是很直观,对吧?
可以为这些地址分配一个“符号”或快捷方式,使它们更易于编程或查找,但是这些符号名称通常受到长度的限制。符号也没有保存在PLC 中;而是保存在编程计算机和软件中。
描述也可以分配给地址,但是它们也仅保存在软件中。它们提供了有关地址及其功用的其它信息,但仍不可搜索。
随着基于标签的PLC 系统的出现,地址变得更具描述性,并且基于寄存器的地址也被隐藏起来,变成不可见了。根据PLC 的品牌或平台的不同,标签名称具有不同的规则。它们的长度可以是40 个或更多的字符,并可以使用字母数字字符。有些平台允许使用空格,而有些平台则需要使用下划线。
▎ 工厂自动化和过程控制标签命名对于一致性、易于理解和故障排除至关重要。图片来源:Automation Primer
可以下载的标签
标签实际上已下载到PLC 中。它们也可以在标签数据库中按字母或数字顺序组织,这使命名约定很重要。由于可以使用如此多的字符,标签名可以非常具有描述性,并且包含大量信息。同时,带有太多缩写的长标签名可能很难阅读。
诸如AutoMode、AutoCycle、Faul t或CycleStop 之类的常用功能或术语在行业中很常见,不需要很多额外信息。系统或机器可能分为区域或站,并标签为Zone2,Cell15 或Station003,这些标签可能需要更多文档或说明。
用户自定义数据类型(UDT)由于允许使用“点”连接,因此使标签变得更加复杂,例如“VFDrive2100.ActualSpeed”。嵌套UDT 允许使用上述标签。
标签模板
大型公司、机器制造商和系统集成商,通常会准备一个用于编程的模板,该模板给出了如何命名标签。在模板程序中已经创建了许多常用标签,而其它标签名则可通过电子表格自动生成。各个公司使用的规则会有所不同,但目的是相同的:使程序更具可读性,更易于排除故障。
标签命名规则主要分为两个部分:工厂自动化和过程控制标签。在汽车以及其它制造业中,设备通常由其功能和位置来命名。通常情况下,它们还包括该设备在电气图纸中所处页面和行的参考数字。例如“PalletPushCyl_ ExtPX_4120”。该标签由组件(托盘推杆油缸)、设备及其位置(扩展接近开关)以及电气图纸中的位置组成。
工厂自动化标签缩写
工厂自动化设备通常用以下缩写表示:
• 光电传感器:PE,PEC,PER
• 接近式开关/ 霍尔传感器:PX,PRX
• 限位开关:LS
• 主控制继电器:MCR
• 按钮:PB,hPB(HMI)
• 开关:SW
• 电磁阀:SV
• 控制继电器:CR,K
• 电机启动器:MS
第二个规则来自于过程控制行业,例如石油或化学加工。他们的技术人员利用过程和仪表图(P&ID)。ISA 支持这些编码准则,但是各个公司可能有所不同。
这些图纸将装置编号分配给诸如水箱或滑轨之类的组件,并将回路编号赋予不同的控制组件,例如仪表和传感器。
由于设备名称是受控的,因此过程工业中的标签名称仅包含P&ID 号,而不是工厂自动化中使用的更具描述性的方法。这些名称与离散制造业中使用的标签名称完全不同。
例如,流量变送器可能被命名为20-FT-1982-A,其中区域代号为20,FT 是传感器的类型,1982 是回路号,A 表示另外至少还有一个冗余设备。由于在许多平台上,标签都不能以数字开头,因此字符的顺序可能会更改,或者在单元号之前可能会附加字母。例如,上面设备的标签可能是FT_20_1982A或d20_FT_1982A。这类标签可能不像离散制造中业使用的标签那样具有描述性,但可以增加“装置20 中1982 回路的流量变送器A”的说明。
过程控制标签缩写
过程控制设备可能使用下列标签名称:
• 流量变送器:FT
• 阀门:HV,FV
• 限位开关:LSL(低),LSH(高)
• 回路控制:FIC,PIC
• 按钮/ 开关:HS,HIS
• 光电眼,接近开关:ZS
• 电机启动器:M
• 压力变送器:PT,PIT。
创建标签名时,首先需要记住的是,要把技术人员或维护人员当做客户一样对待。帮助别人找到并理解代码,是程序员的首要职责。
5个标签和地址命名建议
设备或装置标签名称的命名规则很重要,有助于理解并加快故障排除速度。在决定标签名称模板或规则时,需要考虑以下5个建议:
1. 使名称尽可能描述标签的功能。使用技术人员容易理解的标准化术语和缩写。如有必要,添加说明。
2. 标签按字母和数字顺序显示,对相同功能或区域,使用相同的字母/ 数字开头的标签,对于组织顺序很重要。
3. 如有必要,请使用下划线或大写字母来使标签更具可读性。
4. 如果软件平台允许使用本地标签,请在将其复制到复用程序之前,为特定程序集或程序分配所有标签。这样可以节省很多时间。
5. 使用电子表格创建标签。这比手动在数据库中键入标签要容易得多。标签可以更容易地添加和复制数据。PLC 平台允许轻松导出/ 导入标签。这也可以确保程序员所使用的标签与电气和机械设计师所使用的相同。
关键概念:
■ 标签命名规则可能因PLC 的品牌而异。
■ 工厂自动化、过程控制标签名称缩写。
■ 在设计决策时,5个标签命名技巧会有所帮助。
思考一下:
哪些标签命名的最佳实践可以使您的编程工作更加顺利?
相关问答
三菱plc默认ip地址多少?
答三菱FX3U的主机不带网口,因此也没有IP地址。如果是扩展的ENET-ADP模块的话,默认的是192.168.1.250。为了确保准确,最好是用D8400,D8401重新设置一下IP地...
plc端口设置?
位机开发中三菱PLC如果要走MC协议,是不需要额外编程的,但是需要做一些简单的配置。1.在右侧工程栏中双击PLC参数;2、在弹框中选择内置以太网端口设置,设置I...
西门子PLC在编程时地址是如何得到的?-盖德问答-化工人互助问...
你到西门子官方网站去下载s7-200使用手册上面也有例子
西门子PLC编程,存储区域IQMLD分别是什么意思?
I:输入地址,对应输入模块通道q:输出地址,对应输出模块通道M:辅助寄存器地址L:局部变量地址,相当于程序中的内部变量地址D:应该对应的书DB数据块地址。I:...
西门子plc高低字节是如何排序的?
以S7300/400PLC为例:1、假设MW0是一个字。那么MB0就是高字节,MB1就是低字节。低字节高位就是指MB1.B7;高字节低位就是MB0.B02、如果是一个双字,高低字节...
plc连接找不到com端口怎么解决?
1.连接好通讯线后,给PLC接上电源,L端子接220V的火线,N端子接220V的零线,地线接上比较安全,不接PLC也能正常使用。2.通以电源后,PLC自检POWER和RUN指示灯亮...
欧姆龙PLC输入区输出区地址的代表符号是什么?
简单一些讲,是I与QI代表条件是否达到,比如传感器是开的还是关闭的Q代表输出了W代表机器动作中的一种状态,比如伸出气缸这个状态,通俗一点的话就是一种起...
西门子编程软件STEP7想直接在程序找到变量地址,怎么办?
您好,很荣幸看到您的问题。西门子编程软件的变量地址查询定位分别从老版本系列STEP7和博途STEP7进行介绍:一,老版本STEP7,在程序中找到变量地址,可以在任...您...
谁有西门子plc200的编程软件的下载地址-ZOL问答
西门子S7-300plc编程软件STEP7V5.4SP5中文版含授权送视频教程,含西门子S7-GRAPH编程软件有用(0)回复干嘛不下300的!!!有用(0)回复你去baidu搜...
plc编程运行标志位是什么意思?
1PLC编程运行标志位是指在PLC程序中用来表示某个特定条件或状态的变量。2运行标志位的作用是用来控制程序的执行流程,通过判断标志位的状态来决定是否执行某...