攀枝花高价回收西门子模块 西门子模块回收,回收西门子plc,回收西门子cpu
S7-400H Local data分配
如何计算当前程序所需的Local Data大小并合理设置S7 400 CPU属性中的Memory选项卡中的Local Data,S7 400 CPU中的Local data设置不当会导致什么问题?
Local data顾名思义为本地数据,在西门子控制器中有一部分内存空间被设置为L区间,它被用于控制器在运行程序时存储临时数据。由于编写FB/FC程序的需要和OB中调用功能块结构的不同,不同的OB由于调用不同的FB/FC,因此所需的Local data的大小各不相同(被调用的FB/FC将占用当前调用他的OB块的Local Data资源)。在控制器硬件组态中的CPU属性设置中,Memory选项卡用于设置Local data的分配。如果相应OB块实际运行所需的Local data大于硬件组态中所设置的Local Data大小,那么相应的程序将无法运行,CPU将报告INTF错误,甚至更为严重的情况下CPU可能会停止运行。但如果盲目将Local Data的分配设置过大,将会浪费一部分宝贵的CPU内存空间。
S7 300CPU中的Local data不可修改,每个优先级固定设置为256 bytes,S7 400的Local data则可以人为修改。由此可以看出正确设置S7400 CPU的Local Data的大小非常重要。在控制器硬件组态中CPU属性à Memory选项卡的Local Data区域用于设置基于优先级的Local Data(如下图所示):
在PCS7组态的项目中,在编译CFC程序后,系统将会自动计算各OB块所需的Local Data大小,可以通过交叉索引(Chart reference data à Local data,如下图所示)查询到。
而普通的由用户采用Step7编程方式编写的程序,程序功能块及OB块各自的调用结构由用户自行控制,需要在编写完整个程序之后自行计算。
在手动计算Local Data时,需要获取如下信息:
1. 各OB块、FB块、FC块各自独立运行时所需的Local Data大小
可以通过如下方式查询到:在Block文件夹中选择相应功能块,右键 属性à General - Part2中即可查看到,如下图所示:
xiangbaijiao
注:嵌套调用时,上一级功能块将不会计算其嵌套调用的FB/FC所需的Local data大小;在上图中将不会累加嵌套功能块所需的Local data大小;