菜鸟:
Temp
ElementTemp "Elment" 0.0
Ret_Val_Temp Int 28.0
Bvar Byte 30.0
CALL FILL
ptr_type:=Any
BVAL :=P#DB6005.DBX0.0 BYTE 1
RET_VAL :=#Ret_Val_Temp
BLK :=P#L0.0 BYTE 28
CALL "Interface2"
A1_Element_DB_Pointor :=P#L0.0 BYTE 28
A2_Element_DB_Pointor :=P#DB3310.DBX0.0 BYTE 28
B_Element_DB_Pointor :=P#DB3320.DBX0.0 BYTE 28
C_Element_DB_Pointor :=P#DB3030.DBX0.0 BYTE 28
NOP 0
其中DB6005中为一个byte类型的数据,初始化为0
是否正确
写成如下:程序出错
L B#0
T #Bvar
NOP 0
CALL FILL
ptr_type:=Any
BVAL :=P#L30.0 BYTE 1
RET_VAL :=#Ret_Val_Temp
BLK :=P#L0.0 BYTE 28
NOP 0
CALL "Interface2"
A1_Element_DB_Pointor :=P#L0.0 BYTE 28
A2_Element_DB_Pointor :=P#DB3310.DBX0.0 BYTE 28
B_Element_DB_Pointor :=P#DB3320.DBX0.0 BYTE 28
C_Element_DB_Pointor :=P#DB3030.DBX0.0 BYTE 28
NOP 0
请高手指教
大虾:
你需要让程序知道所使用的临时变量区域已经被定义或隐含定义了,在Temp区域定义,或者P#L30.0 BYTE 1直接写成LB30。
菜鸟:
临时我定义了啊,
Temp
ElementTemp "Elment" 0.0
Ret_Val_Temp Int 28.0
Bvar Byte 30.0
我看帮助上说可移动的数据区没有L区,是不知道是源区和目标区都不可以吗?
大虾:
帮助里存储区域是包含L区的,程序错误是指什么?返回值不为0吗?
菜鸟:
SFC21:返回值为0.
CALL "Interface2"
这个程序内部有错误,执行结果不对。
帮助内容:
存储区
可以使用“填充块”指令移动以下存储区的数据:
数据块区域
位存储区
过程映像输入表
过程映像输出表
与程序执行无关的数据块
大虾:
SFC21:返回值为0.
说明SFC21正确执行了,你的错误可能是其它方面的原因。