S7-300数据范围
刘玉蓉
发布于2014-09-28 17:19
22
0
标签:
S7-313C, 在编写程序的时候,FB里的STAC静态变量,当超过118的时候,CPU就报警,"数据长度超出范围", 但是TEMP临时变量,超过200的时候,也没有任何报警,是什么原因?
另外,每种PLC CPU的数据范围在哪里可以查到?
佳答案
FB中的静态变量(STAT)定义在背景数据块中,当被调用块运行时,能读出或修改静态变量;被调用块运行结束后,静态变量保留在数据块中。对每个具体的CPU型号而言,用作数据块的存储器总量是有限制的,如CPU314,用作数据块的存储器多为8KB,所以使用STAC静态变量对于具体的CPU是有限制的。
临时变量(TEMP)是一种在块执行时,用来暂时存储数据的变量,这些临时数据存储在PLC工作存储器中局部数据堆栈(L Stack)中。当块执行时它们被用来存储数据,一旦块执行结束,堆栈重新分配,这些数据将丢失。由于TEMP是块执行时保存在工作存储器的数据堆栈中,因此根据不同CPU型号,本地数据字节可以为0 – 65535LB,它要比FB的背景数据块存储器大很多。
每种PLC CPU的数据范围可以在CPU技术规格中查到,如CPU315-2DP,工作存储器为128KB,装载存储器为128KB – 8MB MMC卡。