本人现有个改造项目,使用CPU为S5-115U 943B,从中读出来的程序中有DB1、DB6、DB24、DB34、DB124、DB134共六个数据块,在初始化程序OB21和OB22中的程序完全相同,在OB21和OB22中用“G”语句生成数据块DB24和DB34,并马上调用FB24对DB24和DB34进行了一些操作,操作手册上对“G”语句的解释说“如果要生成的数据块已经有了,
则不执行G DB语句”,我的问题是
1:从CPU中读出来的DB24和DB34是在编程时预先写入的(类似于S7的共享数据块的预先编制),还是由“G”语句生成的。
2:如果是预先编制的,是不是就不需要再在程序中使用“G”语句生成该数据块。
3:预先编制的数据块和程序中生成的数据块(内容需要经常变动的)在下载到CPU时一般
都放置在那些存储区(RAM、EPROM或是其它什么存储区)。
4:从CPU中读出程序时是从那些存储区的读取的。
5:一般的话是需要把所有的程序块、数据块都读出来呢(包括内容经常变动的数据块),
还是说有些数据块不必要不需要读出来。
本人之前从未接触过西门子,实属菜鸟级别,望高手多指教!!
最佳答案
1:从CPU中读出来的DB24和DB34是在编程时预先写入的(类似于S7的共享数据块的预先编制),还是由“G”语句生成的。
这个数据块是由语句生成的。你下载的时候,可以不用下载DBX,程序在上电启动的过程中,会自动生成。
2:如果是预先编制的,是不是就不需要再在程序中使用“G”语句生成该数据块。
如果你已经预先编制了,那么这个G DBX语句就可以忽略了。
3:预先编制的数据块和程序中生成的数据块(内容需要经常变动的)在下载到CPU时一般
都放置在那些存储区(RAM、EPROM或是其它什么存储区)。
RAM中,你可以把程序保存到EPROM中,但程序工作一定在RAM中的。
4:从CPU中读出程序时是从那些存储区的读取的。
RAM中
5:一般的话是需要把所有的程序块、数据块都读出来呢(包括内容经常变动的数据块),
还是说有些数据块不必要不需要读出来。
CPU内部的FB你是是读不出来的,其它的块你在备份的时候全部读上来就可以了。
提问者对于答案的评价:
谢谢!!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc139223.html