s7-200填表后 lifo 并且把所有数据填在断电保持区域,但是断电后还是不能保存,为什么
最佳答案
循环按字节保存数据。
如果待保存数据中存在WORD或DWORD变量,则必须确保处理过程中这些数据不发生改变。
如果发生改变,会影响数据一致性。
(技术背景:如果只保存变量的一部分,而该数值被临时改变,那么程序只保存缺失的剩余部分,这将会产生损坏的变量值。相 关的程序部分应当使用Busy位锁住。
图1:起始地址为整数(直接保存到EPROM)
参数 变量类型 说明
EN BOOL 必须始终为1(高)
Start BOOL 上升沿 (0 ->1)触发程序运行
V_Start INT 偏移量指定(起始地址)
例如,200=VB 200
Length INT 从偏移量(起始地址)开始待保存的字节数
Memory INT 用于子程序的临时存储区
Busy BOOL 正在处理状态1(高),程序在运行中
Done BOOL 结束状态1(高),成功完成保存
表1:直接寻址的示例参数
图2:启动地址为间接地址(间接保存到EPROM)
参数 变量类型 说明
EN BOOL 必须始终为1(高)
Start BOOL 上升沿 (0 ->1)触发程序运行
Address DWORD 规定偏移量(起始地址);必须由用户预先定义;例如
LD Q0.0
MOVD &VB200, MD20
地址从VB200转换到MD20
Length INT 从偏移量(起始地址)开始待保存的字节数目
Memory INT 用于子程序的临时存储
Busy BOOL 处理状态 1 (高),程序在运行中
Done BOOL 结束状态 1 (高),成功完成保存
表2:间接寻址的样例参数
相关子程序的说明在示例程序的注释中给出。
参考资料:simens
提问者对于答案的评价:
谢谢
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc349401.html