我有个用SCL语言编写的程序块,但是我没有源程序,这个程序块的STL语言形式是这样的
SET
SAVE
= L 10.1
L P##CommonPtrPin
LAR1
L D [AR1,P#0.0]
T LD 0
L P##CommonPtrPin
LAR1
L D [AR1,P#4.0]
T LD 4
L P##CommonPtrPin
LAR1
L W [AR1,P#8.0]
T LW 8
L #inModuleNbPin
ITD
L L#-1
+D
L L#2208
*D
L L#2176
+D
L LW 4
TAK
LAR1
TAK
OPN DI 1000
T DIW [AR1,P#0.0]
L #inModuleNbPin
ITD
L L#-1
+D
L L#2208
*D
L L#2192
+D
L LD 6
SRD 3
TAK
LAR1
TAK
T DIW [AR1,P#0.0]
L LW 2
T DIW11040
SAVE
BE
我想根据这个程序块写出它的源程序,我写出的源程序是这样的。
FUNCTION FC3001 : VOID
AUTHOR: EPI
NAME: ComOffst
FAMILY: MODULE
VERSION: '1.0'
VAR_INPUT
//
CommonPtrPin :ANY;
inModuleNbPin:INT;
END_VAR
VAR_TEMP
buffer : utANYPointer;
CommonPtrTemp : ANY;
END_VAR
BEGIN
CommonPtrTemp:=CommonPtrPin;
dbMachineConfig.arModulesConfig[inModuleNbPin].woDBNumber:=buffer.DB_Number;
dbMachineConfig.arModulesConfig[inModuleNbPin].inCommonOffset:=DWORD_TO_INT(SHR(in:=buffer.BytePointer,N:=3));
dbMachineConfig.inCommonModLength:=buffer.DataCount;
END_FUNCTION
但是在原来的STL块里并没有buffer这个变量的定义,而且我写的块编译之后没有CommonPtrTemp这个变量的定义。我不知道问题出在哪里。
有哪位大侠对这方面有研究的帮帮我,先谢谢了。