I堆栈中保存的内容有:
F 累加器及地址寄存器的内容;
F 数据块寄存器的内容;
F 局部数据堆栈,状态字,MCR寄存器和B堆栈指针。
如果新的OB块调用FB和FC,则每一个块的处理数据将被存储堆栈中(B堆栈)
B堆栈中保存的内容有:
F DB和DI寄存器;
F 临时数据(L堆栈)的指针;
F 块的号码及返回地址。
OB可以分为两类:执行周期性工作的OB(日时钟中断)和响应错误的OB(错误中断)。
执行周期性工作的OB(日时钟中断)
在特定的日期或时间执行
从一个编程事件开始一段特定延时后执行
按特定周期循环执行
响应错误的OB(错误中断)
当 CPU检测到一个过程/硬件错误时执行
当 CPU检测到一个不依赖于程序指令的错误时执行
当 CPU检测到一个与程序指令处理有关的错误时执行
定时器字中的剩余时间值以二进制格式保存,用L指令从定时器字中读出二进制时间值装入累加器1中,称为直接装载。也可用LC指令以DCD码格式读出时间值,装入累加器1低字中,称为BCD码格式读出时间值。以BCD码格式装入时间值可以同时获得时间值和时基,时基与时间值相乘就得到定时剩余时间。
L T1 //将定时器T1中二进制格式的时间值直接装入累加器1的低字中
LC T1 //将定时器T1中的时间值和时基以BCD码格式装入累加器1 低字中
对当前计数值也可以直接装载和以BCD码格式读出当前计数值。
L C1 //将计数器C1中计数值以二进制格式装入累加器1的低字中
LC C1 //将计数器C1中的计数值以BCD码格式装入累加器1低字中