AS控制器内存分配及优化.docx
- 文档编号:1952064
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:13
- 大小:577.16KB
AS控制器内存分配及优化.docx
《AS控制器内存分配及优化.docx》由会员分享,可在线阅读,更多相关《AS控制器内存分配及优化.docx(13页珍藏版)》请在冰点文库上搜索。
AS控制器内存分配及优化
AS控制器内存分配及优化
隐藏订货号显示订货号订货号:
0.前言
西门子SIMATICS7家族中的控制器按照应用场合、性能等分为S7-1200、S7-200、S7-300、S7-400等各种不同的系列。
而每一系列中又细分不同的型号,例如,S7-400系列中有S7-412、S7-414、S7-416、S7-417等型号。
不同系列、不同型号的控制器对应不同的控制性能(运算速度、内存容量等)。
本文基于S7-400系列控制器,详细介绍内存的类型、分配情况及实际使用过程中可能的内存优化方法。
1.内存类型
S7-400型控制器的内存按照功能的不同,可以分为:
√系统内存(SystemMemory)---控制器的自身功能(M、T、C等)
√工作内存(workMemory)---用于运行程序;
√装载内存(LoadMemory)---用于装载程序;
其中,工作内存部分又可以细分为:
√代码工作内存(CodeMemory)---用于运行程序的代码部分;
√数据工作内存(DataMemory)---用于运行程序的数据部分;
S7-400型控制器的内存按照集成方式的不同,可以分为:
√集成内存(Integrated)---直接集成在控制器内部随控制器一起提供,无需额外订购;
√扩展内存(Expanded)---通过扩展存储卡的方式扩展提供,需要额外订购;
一般情况下,控制器的工作内存不可扩展,而装载内存则可以通过FEPROM或RAM的方式进行扩展。
如果希望和集成的RAM装载内存无缝扩展使用,则扩展的装载内存必须选用RAM类型。
下图为CPU412的性能参数示例。
图1CPU412的性能参数示例
控制器内存信息也可参考如下链接内容:
22610157
2.内存分配
控制器内存详细分配情况如下表所示。
#
内存类型
内容
注释信息
装载内存
系统数据/SystemData
硬件组态数据
程序块/ProgramBlocks
程序块
(FBs,FCs,OBs,Symbols1),Comments1))
工作内存
数据块/DataBlocks
数据块(DBs)
(数据部分)
系统数据/SystemData
硬件组态信息,非装载内存中的全部硬件组态数据
SFC动态创建的DB块/DBsCreatedbySFC
通过SFC21/22等动态创建的数据块
本地数据/LocalData
各优先级中断所需的临时数据存储区
工作内存
逻辑功能块/LogicBlocks
逻辑功能块(FBs,FCs)
(代码部分)
通信数据缓冲/CommunicationDataBuffer2)
通信功能所需的临时缓冲区(动态分配)
通信作业数据/CommunicationjobsData(72字节/每作业)
通信功能块占用的通信作业数据区
输入输出映像区/PII/PIQ(12字节/每映像区字节)
输入/输出过程映像区所占用的数据空间
诊断缓冲区/DiagnosticBuffer(32字节/每记录)
CPU诊断消息
系统内存
M区间、定时器T、计数器C
M存储区间、定时器/计数器存储区间
功能块/中断堆栈
堆栈区级通信/诊断/本地数据缓冲区
表格1控制器内存分配祥表
1).通过PLCSavetoMemoryCard(EPROM)菜单才会下载到装载内存中
2).运行时动态分配
实际应用过程中,当前控制器的内存占有率及分配情况可以通过控制器在线信息Memory页面查询到,如下图所示。
图2控制器内存在线分配情况
从该图中可以看到内存被划分为四个部分:
LoadMemoryRAM(装载内存RAM)、LoadMemoryEPROM(装载内存EPROM)、WorkMemoryCode(工作内存Code)和WorkMemoryData(工作内存Data)。
每个部分的实际占用状况可以通过下侧的Free(空闲内存)、Assigned(已分配内存)、Total(总内存)、LargestFreeBlock(最大连续空闲内存空间)和Max.Pluggable(最大可安插内存量)看到。
而每个部分详细的内部分配情况可以通过选择相应内存列后,点击右侧的DetailsMemoryArea按钮查询到,如下图所示。
图3装载内存详细分配情况
图4工作内存Code部分详细分配情况
图5工作内存Data部分详细分配情况
3.内存优化
根据上述介绍的内容可以查看到实际控制器内存的分配和使用情况,同时在项目组态阶段,也可以参考表格1中的内容,按照如下方式计算、检查各部分的内存需求情况,并对其进行相应优化。
3.1用户程序内存需求
在SimaticManager中右键点击Blocks文件夹ObjectProperties可以打开如下对话框,切换到Blocks页即可查询当前用户程序的内存需求情况。
图6用户程序内存需求情况
从上图中可以看到,用户程序所需装载内存为5354bytes,系统数据(硬件组态)所需装载内存为7616bytes,总和为12970bytes,和CPU在线内存分配情况吻合(见上图3装载内存详细分配情况中loadobjects所示)。
用户程序所需工作内存代码部分为2682bytes,所需工作内存数据部分为630bytes,和CPU在线内存分配情况吻合(见上图4工作内存Code部分详细分配情况中logicblocks部分所示和上图5工作内存Data部分详细分配情况中datablocks部分所示)。
3.2工作内存数据部分本地数据内存需求
控制器中的本地数据区用于存储各优先级中断运行的程序所需的临时数据,这部分存储空间是在控制器启动初始化时完成预留分配。
各功能块所需的临时数据存储区大小可以通过功能块属性GeneralPart2中的Localdata查询到,如下图所示。
图7功能块所需本地数据大小
控制器中按照中断的优先级的方式分配本地数据的大小,通过CPU的属性对话框Memory中设置,下图所示本地数据离线设置为8192bytes,与上图5工作内存Data部分详细分配情况中在线的Localdata分配吻合。
离线程序中实际所需的本地数据可以参考如下连接文档进行计算:
80027837
按照实际程序所需的本地数据进行下图8所示的Localdata的设置,可以优化内存的分配。
图8CPU本地数据分配
3.3工作内存代码部分通信作业内存需求
通信作业用于实现控制器和外围设备的通信功能,每个通信作业在内存中需要占用一定的存储空间,这部分存储空间是在控制器启动初始化时完成预留分配。
离线的通信作业数可以参考上图8CPU本地数据分配中的Communicationresources进行设置。
此处为300个,参考表格1中的数据,每个通信作业需要分配72bytes的空间,总共所需300*72=21600bytes,与上图4工作内存Code部分详细分配情况中在线的Communicationjobs内存分配吻合。
PCS7系统中可以通过Chartreferencedata的统计数据查询到离线程序所需的通信作业数,Step7系统下则只有下载程序后通过上图4查询到。
查询到实际程序所需的通信作业数后,预留一定余量后对图8进行设置,可以优化内存的分配。
3.4工作内存代码部分输入/输出映像区内存需求
输入/输出映像区为控制器预留的、用于存储I/O的映像数据的区间,控制器按照一定的机制进行I/O数据的动态更新,可以优化程序读取I/O的速度和性能。
PCS7中要求必须基于映像区的方式进行I/O信号的读取,冗余控制系统中也要求基于映像区的方式进行I/O信号的读取。
这部分存储空间是在控制器启动初始化时完成预留分配。
通过CPU的属性对话框Cycle/ClockMemory页面进行设置,如下图所示。
图9CPU过程映像区分配
此处为1000Processimageinput/1000Processimageoutput,参考表格1中的数据,每个映像区字节需要分配12bytes的空间,总共所需1000*12=12000bytes输入/输出,与上图4工作内存Code部分详细分配情况中Process-imageinputs、Process-imageoutputs内存分配吻合。
实际程序中所需的映像区范围可以通过I/O卡件的地址范围查询到,查询到实际程序所需的映像区范围后,预留一定余量后对图9进行设置,可以优化内存的分配。
图10查询I/O地址范围
如上图红色标识所示,输入地址为0~515,则输入映像区范围最小设置为516字节,输出地址为0~515,则输出映像区范围最小设置为516字节。
注:
地址范围查询时不用关心上图10中Type列中带*的输入地址(卡件诊断地址)。
此外图9中的映像区范围必须设置为偶数。
3.5工作内存代码部分诊断缓冲区内存需求
诊断缓冲区用于存储CPU在线的诊断信息,以便用于诊断维护等。
CPU在线信息中的Diagnosebuffer即为此处所说的诊断缓冲区。
这部分存储空间是在控制器启动初始化时完成预留分配。
图11CPU在线诊断信息
通过CPU的属性对话框Diagnostics/Clock页面进行设置,如下图所示。
图12CPU诊断缓冲区设置
此处为120条,参考表格1中的数据,每条消息需要分配32bytes的空间,总共所需120*32=3840bytes,与上图4工作内存Code部分详细分配情况中Diagnosebuffer内存分配吻合。
该消息存储区间为Ring型存储区间,如果消息条数充满,例如,此处120条,则系统将用新的消息覆盖最老的消息。
根据实际项目情况进行设置,设置范围:
最大3200条,最小100条。
越大存储的消息越多、时间越长。
4.总结
参考上述内容对CPU相应的参数进行设置,可以大大优化控制的内存分配。
此处需要注意的是,上述大部分控制器参数设置均需要停机下载,因此建议在项目实施初期,控制器可以停机的情况下进行。
关键词
内存,工作内存,装载内存,系统内存,优化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AS 控制器 内存 分配 优化
![提示](https://static.bingdoc.com/images/bang_tan.gif)