Codesys中Function Block无法更新本地变量的问题咨询
CODESYS 函数块本地变量不更新问题排查建议
检查函数块的调用实例
别用临时调用的方式(比如直接写FB_Test()),这种方式每次调用都会创建新的临时实例,本地变量状态不会保留。必须先定义一个全局或静态的实例变量,比如FB_Instance : FB_Test;,再调用FB_Instance();,这样本地变量才能持续更新。检查本地变量的存储类型
看看你定义的本地变量a是不是设成了VAR_TEMP?临时变量在函数块执行结束后会被系统重置,无法保留值。改成普通的VAR(实例变量,每个实例独立保存)或者VAR_STAT(静态变量,所有实例共享状态)就能正常更新了。核对任务配置与执行时机
对比你和朋友的任务设置:比如函数块所在的任务周期是不是太长?有没有被高优先级任务抢占导致执行不及时?确保你的函数块在正确的循环任务里被调用,执行频率符合逻辑需求。排除监控显示的缓存问题
CODESYS在线监控偶尔会有缓存延迟,右键监控窗口里的变量选择「更新监控值」,或者重新下载程序到PLC后再监控,确认不是显示bug导致的“没更新”假象。
内容的提问来源于stack exchange,提问作者Axroxx
相关产品推荐
相关产品推荐

