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