想做一个功能块,输入一个any指针,并对其指向的区域内进行判断,在区域内有一个位是1,输出结果则为1,我的想法是先得到该输入any指针的区域长度,然后进行loop逐个判断,但是现在难题在于不知道什么指令可以得到这个长度,请高手帮忙
ASs='html_titleimg_p' STyle='text-align:CEnter;'>
最佳答案
1:首先对ANY结构进行分析,打开STEP7软件,选择菜单帮助,然后搜寻“POINTER",在搜索出来的内容中选择”FormatofparameteRTypeany“,仔细阅读下所以类容
2:比如你的fb有一个ANY类型的接口AlarmBit,那么下面就是对ANY类型结构的分析
假设在调用FB时,你给AlarmBit赋值P#DB1.DBX10.0BOOL8
LP##AlarmBit
LAR1//getthestartaddressoftheanypointer
LB[AR1,P#0.0]//headforS7serialb#16#10S7CPU衡为16
T#AnyAlarmBit.HeadS7
LB[AR1,P#1.0]//DataType(01=bool;02=byte;04=word;06=dword)
T#AnyAlarmBit.DataType//等于01
LW[AR1,P#2.0]//cyclicfactor等于8
T#AnyAlarmBit.RepetitionFactor
LW[AR1,P#4.0]//DataBlockNumber,ifsourceisnotaDBarea,loadthe0forthisarea
T#AnyAlarmBit.DBNO//等1,指像DB1
LD[AR1,P#6.0]//指向P#DBX10.0
T#AnyAlarmBit.AddrPointer
知道重复系数W[AR1,P#2.0]和D[AR1,P#6.0]你你就可以利用LOOP指令和指针进行类似
ADBX10.0
=DBX0.0
提问者对于答案的评价:
知道了非常感谢我已经做出来了