恭喜,你发布的帖子
发布于 2016-05-24 22:01:03
14楼
怎么能说没有原理呢,这个原理很容易理解的,错误中断不是说就是西门子定义的一种东西而是必须有的一个错误处理方式,以安全为例,CPU认为任何的程序错误或者硬件的看门狗出现问题都可能导致其他不可预料之风险所以每个错误中断出现时CPU就会去调用他的错误处理块就是那些OB,然后如果OB有错误处理程序则进行错误判断与处理如果没有就继续进行优先级低的OB,如果你没有下载此OB CPU认为可能存在安全隐患就会STOP因为CPU执行的指令或者他的管理层出现问题了他不能保证他接收到每个正确的外部信号不能保证他的每条指令能正确执行所以他停下来让你去查找原因如果你认为CPU的某些错误中断不会影响到系统的整体运行则可以忽略这个错误中断就是下载一个空的OB让他执行一个空的OB后再进行下层调用。OB1的优先级最低因为他是主程序必须无其他错误中断才能保证主程序扫描的可靠性及完整性所以它是这些OB最后一个调用的。
简单的说就是CPU停机是因为没有OB他调用了一个不存在的OB造成停机的,而他为啥要调用这个OB是因为系统规定分类某些错误中断后必须优先执行这个中断程序OB。为啥西门子要定义这些OB?为什么不在硬件组态里面做个选项选择某些错误中断要不要停机?这是因为西门子放开了放开了中断后你优先要处理的措施或者说程序可以自由定义或者自行设计错误处理机制。
请填写推广理由:
分享
只看
楼主