OB100与First Scan的区别
在实际应用中,对基本数据的初始化操作往往会使用到OB100和First Scan标志位,在本次没有验证前,我认为是调用OB100是需要对相对工作原理稍微复杂的操作,所需要调用的情况。而对应于一般的单个数据的初始化操作,调用First Scan标志位就可以了。今天看到论坛上有类似的提问,也正好手头上一直有s7-1214C的硬件条件,也萌生出验证一番的冲动。
验证条件:
验证硬件cpu是s7-1214C,将2个数据从2个位置分别赋值给同一个变量,看结果情况。如果是具备优先执行逻辑理念,那么,赋值传送的结果一定是First Scan标志位传送的那个值,OB100赋值传送数据被First Scan标志位赋值传送数据所覆盖。
验证过程:
1) 新建一个测试项目,并定义系统时钟及系统标志位MB1及调用OB100,图示:


2) 分别在不同的区块编辑测试程序,图示:
在OB100中编辑将16#0A传送到MW100,图示:

在OB1中编辑用First Scan标志位,将16#0B传送同样的变量地址MW100中,图示:

将程序下载到实际的plc中,看MW100的结果是什么数据值?
3) 新建监控表,监控MW100的变量数值,图示:

刻意将16#的数据兑换,看MW100 = 16#0A?

监控的结果符合验证前的想法,说明OB100优先于First Scan系统标志位执行程序段,由此说明组织块优先的说法是正确的。