这个FC看不懂啊。。 关于移位的 请各位指教啊 点击:477 | 回复:8



leoorc

    
发表于:2010-05-26 14:47:09
楼主

FC如下:

IN:InSignal   Real

     DB_No  Pointer

     DataLength  Int

     StartAddr  Pointer

// function:Analog data left shift
// copy data in DBD【X-P#4.0】 to DBD【X】

 

L P##StartAddr
LAR1
L D 【AR1,P#2.0】
L DW#16#84000000
-D
T #Start_Addr

L P##DB_No
LAR1
L W 【AR1,P#4.0】
T #DB_Number

//calculate the Max_Addr of the data source
L #DataLength
L 4
*I
SLW 3
L #Start_Addr
+D
T #Buff
L P#4.0
<D
JC EXT

L #Buff
L P#4.0
-D
T #Addr

OPN DB 【#DB_Number】 //open the data source
L #DataLength //load the data length
L 1
-I
LP1: T #Index
L #Addr
L P#4.0
-D
T #Addr_small
L DBD 【#Addr_small】 //shift left
T DBD 【#Addr】
L #Addr_small
T #Addr

L #Index
LOOP LP1

LAR1 #Start_Addr
L #InSignal
T DBD 【AR1,P#0.0】


EXT: SET
SAVE
BEU

        只知道功能是每Insignal得电,就将数据记录在DB的某个区域内,类似于堆栈。可是具体程序就看不懂了,尤其是开头。。望达人解释指教。小弟在此谢过~



楼主最近还看过

���� SSI �ļ�ʱ����