发布于 2005-12-02 14:11:18
0楼
EU是用软件方法检测一个信号的由0至1的跳变, 此处是检测SM0.5的跳变. SM0.5是由系统每0.5S变化一次状态, 但在同一个扫描同期内状态是不变化的.
程序每次扫到EU指令所在处, 均对被测信号(此处是SM0.5)的前一次扫到此处的值和本次扫到此处的值作比较, 同时记下本次扫描的值以供下一次的比较, 如果前次的值为0而本次的值为1, 则EU的输出为1, 也就是说检测到一个上跳变.
因为你的EU放在子程序中, SM0.5在同一扫描周期内状态是不变的, 所以第二次调用该子程序时, SM0.5的上跳变已经不存在了(因为第一次调用已经刷新了SM0.5的前次值), ..........