程序如下:
//Copy pointers to areas in standard drives datablock
CALL "PIA_FC_GET_ANY_PTR" //fc129 调用 下面有完整内容
pIN :="DRVCBP_FIRSTDRIVE".OUT_SPEED //对应db1250.dbd8
pOUT:=#P_out_speed //临时变量 地址 L220.0
// Copy data from DataBlock
OPN #TL_EN_BRD_R1_DB // read data of bridle before TL/SCBR roll 1
// get pointer into data block
LAR1 P##P_out_speed
L LD [AR1,P#6.0] //这条为什么,没有将累加器1中偏移量6.0地址指针内容装载到AR1中。
LAR1 //用ACCU 1的内容(32位指针)装载地址寄存器AR1
// uses pointer to data in actual data block
L DBD [AR1,P#0.0] //dbd8
T #en_tl_brd_speed1
L DBD [AR1,P#14.0] //dbd22
T #en_tl_brd_diameter1
L DBD [AR1,P#18.0] //dbd26
T #en_tl_brd_gear1
//--------------------------------------------------------------------------
fc129
定义 输入管脚pIN Any
输出管脚pOUT Any
L P##pIN
LAR1
L P##pOUT
LAR2
L D [AR1,P#0.0]
T D [AR2,P#0.0]
L D [AR1,P#4.0]
T D [AR2,P#4.0]
L W [AR1,P#8.0]
T W [AR2,P#8.0]
//-----------------------------------------------------------------------------------------
个人理解
get pointer into data block
LAR1 P##P_out_speed //取 地址dbd8首地址8.0
L LD [AR1,P#6.0] //8.0+6.0=12.0
LAR1 //12.0,但是监控地址好像还是8.0,不是很懂。
//--------------------------------------------
请教大家。描述的不是很好,不知道能说清楚问题了吗。
仿真监控程序图1:

DB块信息:

定义的临时变量:

fc129 图4:
