8. Retain与Persistent有什么区别?

在TwinCAT停止时,Retain变量保存到一个二进制文件中

(TwinCAT\Boot\TCPLC_R_x.wbp, x=1..4 runtime number)
优点:启动时间短,可以迅速把数据恢复到内存中。
缺点:如果这个文件被破坏,TwinCAT 也不会启动。
建议: 由于这个缺点的存在,所以不建议大家使用 RETAIN类型变量。

在TwinCAT停止时,Persistent变量保存到一个二进制文件中
(TwinCAT\Boot\TCPLC_T_x.wbp, x=1..4 runtime number). 变量的名字、路径、数据长度、数值都会保存到一个二进制文件中
优点:如果启动时文件被破坏了,变量就会变为初始值。程序还是可以启动。
缺点:数据恢复到内存的时间比较长,如果使用FB来保存数据的话会需要更多的时间。

Persistent保存的二进制文件尺寸比Retain大。
提示:如果某个Persistent变量只是FB中的一个数据,那个整个FB的数据都会占用空间,但只保存Persistent数据。