当前位置: 主页 > PLC控制

请问什么指令可以判断一个any指针区域长度

想做一个功能块,输入一个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

提问者对于答案的评价:
知道了非常感谢我已经做出来了

  • 关注微信

猜你喜欢

微信公众号