LM小型可编程控制器软件(基于CoDeSys)笔记二十二:错误4268/4052

 写程序的时候遇到这个错误

字面意思:

4268:等待表达式

4052:这个名称为“   ”的adh164程序块必须为一个已声明的例子

 

后来发现是这个程序里面的调用这个程序块的时候,没有给这程序块一个名字,名字为空“  ”,所以提示了这个两个错误,把程序块写上一个名字,这两个错误就消失了。 

一个功能块是一个 POU,本身没有返回值,输出一个或多个值。功能块声明以关键字
FUNCTION_BLOCK 开始。在图 中,用 IL 编写了一个功能块 FUB ,有两个输入变量和两个输 出变量。其中一个输出是两个输入的乘积,另一个输出是相等比较结果。
LM小型可编程控制器软件(基于CoDeSys)笔记二十二:错误4268/4052_第1张图片
要想调用功能块,必须对功能块进行实例声明。例如定义一个名称为 INSTANZ FUB 功能块,
实例声明如下:
INSTANZ FUB
实例针对功能块而言,每个功能块实例就是一个独立的、可完成特定逻辑功能的活动对象。不
同的程序、不同的任务都可以定义和调用功能块的应用实例,每个调用实例都占用独立的内存,保
留独立的逻辑状态。通过定义实例实现对功能块的调用。
从外部只能改变功能块输入和输出参数。不允许对功能块的内部变量直接赋值。功能块实例名
可以作为函数或功能块的输入。
功能块的调用,只改变功能块实例中的值,结果只有当相同实例被调用时才起作用。通过输入
例名 . 变量名 ,调用功能块中的变量。
在文本语言 IL ST 中,可以在功能块实例名后加圆括号,设置输入参数的初始值。和声明变
量时初始化一样,赋值使用符号 “:=”
对于 SFC 语言,功能块调用只能发生在单步运行方式下。
功能块执行以后,所有的值都保留到下次执行之前保持不变。由于功能块中存在中间变量,使
表面上相同的输入参数实际上可能输出不同的输出值。

 

和利时编程软件错误解析.doc

你可能感兴趣的:(plc学习笔记系列,plc,错误4268,错误4052)