quote:以下是引用emil128在2012-04-12 03:55:45的发言:quote:用s7 v5.5 模拟运行无问题,但是将程序用v5.4 编译后下载到plc中执行结果变为大于105置位,低于或等于105后就复位了。
楼主模拟运行的是单独的FC还是完整的项目(和PLC里跑的程序完全一样)?
如果是单试FC正常,问题应该是youhm大侠分析的那样,在实际PLC里运行时,这个FC被调用前,temp变量(moto1和moto2)被别的程序改写,不是上个周期被调用后的结果了,使得自锁失败。
楼主愿意的话,把FC改为FB,moto1和moto2用静态变量就没这个问题了。
确实是改成静态变量就没问题了,但是我想知道为什么出现这种情况。该fc不存在多处调用,并且moto1和moto2 肯定也没有被别的程序改写。