TIA 15.1创建SCL函数报错:FUNCTION标签未定义求解决
解决TIA Portal 15.1 SCL函数关键字“标签未定义”错误的思路
我帮你梳理几个可能的原因和解决步骤,都是这类问题的常见排查点:
确认块的语言类型选择正确
创建函数的时候,一定要在「添加新块」的弹窗里,把「语言」选项明确设置为 Structured Control Language (SCL)。如果默认选了梯形图(LAD)或功能块图(FBD),编辑器会把SCL关键字当成未定义标签,自然报错。修正代码的格式规范
你的代码在格式上有几个细节不符合TIA SCL的要求,调整后应该能解决识别问题:FUNCTION和函数名、返回类型之间需要空格VAR必须单独占一行,不能紧跟在返回类型后面
修正后的代码如下:
FUNCTION "test" : Void VAR V1: Bool; END_VAR END_FUNCTION安装TIA Portal 15.1的最新补丁
15.1的早期版本存在不少SCL编辑器的语法识别bug,比如对关键字的解析异常。建议安装官方发布的最新更新包(比如Update 6及以上),很多这类小问题在补丁中都得到了修复。重置编辑器缓存配置
有时候TIA的本地缓存或配置文件损坏,会导致编辑器功能异常。你可以尝试:- 完全关闭TIA Portal
- 删除用户目录下的TIA缓存文件夹:
C:\Users\<你的用户名>\AppData\Roaming\Siemens\Automation\Portal V15.1 - 重启TIA后重新创建SCL函数测试
排查项目兼容性问题
如果这个项目是从低版本(比如V14)升级而来的,可能存在语言块的兼容性残留。建议新建一个空白的V15.1项目,直接创建SCL函数测试,排除项目本身的问题。
内容的提问来源于stack exchange,提问作者Kantine




