恭喜,你发布的帖子
发布于 2016-11-03 21:47:31
3楼
该程序来自于现场正在使用设备的备份程序,是德国员工编写的,今天设备出问题了,滑撬载码体读写错误,为了找原因被这个子程序绕了一圈,不知道自己理解的可正确?
调用块子程序如下:
ON #FREI_DAT_KOP // Daten Kopierung DBQU -> DBZI Freigabe
O #DAT_KOP_OK // Kopierung DBQU -> DBZI beendet
JC END2
LAR1 P##MOBY_DAT_QUELLE // ZEIGER AUF MOBY DATEN QUELLE
L B#16#10 // SYNTAX-ID IN DEN ANY POINTER EINTRAGEN
T LB [AR1,P#0.0]
L B#16#2 // BEREICHSTYP BYTE EINTRAGEN
T LB [AR1,P#1.0]
L #Laenge_daten_zu_uebertr // VARIABLE ANZAHL BYTE
T LW [AR1,P#2.0]
L #DB_Quelle_Nummer // ADRESSE QUELLE_DB LADEN
T LW [AR1,P#4.0]
L P#DBX 0.0
L #Zeiger_DBB_Quell_DB // ANFANG BEREICH LESEFACH IM QUELLE_DB
SLD 3
+D
T LD [AR1,P#6.0] // ZEIGER AUF QUELLE (LESEFACH)
LAR1 P##MOBY_DAT_ZIEL // ZEIGER AUF MOBY DATEN ZIEL
L B#16#10 // SYNTAX-ID IN DEN ANY POINTER EINTRAGEN
T LB [AR1,P#0.0]
L B#16#2 // BEREICHSTYP BYTE EINTRAGEN
T LB [AR1,P#1.0]
L #Laenge_daten_zu_uebertr // VARIABLE ANZAHL BYTE
T LW [AR1,P#2.0]
L #DB_Ziel_Nummer // ADRESSE ZIEL_DB SCHREIBEN
T LW [AR1,P#4.0]
L P#DBX 0.0
L #Zeiger_DBB_Ziel_DB // ANFANG BEREICH SCHREIBFACH IM ZIEL_DB
SLD 3
+D
T LD [AR1,P#6.0] // ZEIGER AUF ZIEL (SCHREIBFACH)
CALL "BLKMOV"
SRCBLK :=#MOBY_DAT_QUELLE // MOBY DATEN QUELLE
RET_VAL:=#RET_VALUE
DSTBLK :=#MOBY_DAT_ZIEL // ZEIGER AUF MOBY DATEN ZIEL
A #FREI_DAT_KOP // Daten Kopierung DBQU -> DBZI Freigabe
S #DAT_KOP_OK // Kopierung DBQU -> DBZI beendet
END2: NOP 0
AN #FREI_DAT_KOP // Daten Kopierung DBQU -> DBZI Freigabe
R #DAT_KOP_OK // Kopierung DBQU -> DBZI beendet
#MOBY_DAT_QUELLE和#MOBY_DAT_ZIEL是any指针, "BLKMOV"是系统块sfc20,我想问:若#Laenge_daten_zu_uebertr是60,那么程序若条件满足时是不是复制数据块中的60个字节到另外一个区域呢?
楼主仿真一下不就知道了吗?
请填写推广理由:
分享
只看
楼主