LW#16#1002//
TLW[AR1,P#0.0]
ASs='html_titleimg_p' STyle='text-align:CEnter;'>
麻烦分析一下W#16#1002,这个16进制表示的字
这一句有什么意义吗?有什么作用?谢谢啊
最佳答案
1:你的LW#16#1002之前应该还有,类似下面的语句LP##XXX。XXX应该是临时变量里面一个类型为ANY的变量。
2:你所说的语句是对ANY参数类型进行分析的语句(建议你打开STEP7,然后选择帮助,在帮助文件里面搜索“POINTER”,然后找到ANY,进行查看)。
ANY类型占10字节
比如P#DB1.Dbx0.0Byte10
BYTE0对于S7PLC固定是16进制10
BYTE1对应数据类型,2代表是BYTE。
BYTE2到3是重复系数,相当于P#DB1.DBX0.0BYTE10的数字10.
BYTE4到5是DB号,如果为0,则是非DB区。
BYTE6到9是32位指针,即相当于P#DB1.DBX0.0BYTE10中的指针地址DBX0.0即DW#16#84000000
对于你的程序完整应该如下
如果XXXANY类型的指向P#DB1.DBX0.0BYTE10.那么对XXX的分析过程如下
LAR1P##XXX
LW#16#1002
TLW[AR1,P#0.0]
LMW100//变量或者常数10
TLW[AR1,P#2.0]
LMW102//或者采用常数10,用变量程序随时可以更改DB号到10或者11等。
TLW[AR1,P#4.0]//代表DB10
LDW#16#84000000//或者00000000或者P#DBX0.0是32位指针
TLD[AR1,P#6.0]
以上就是对ANY的完整分析,这样再调调用SFC20或者SFC21等带有ANYIN,IN_OUT,OUT参数类型接口时,对里面的ANY接口赋值时你就不必以P#DB1.DBX0.0BYTE100的形式输入了,在对XXXANY类型进行赋值后,直接将XXX填进接口参数就行。
希望你明白了吧,。这样做的好处是,可以对ANY类型的接口参数,根据自己的需要,随时指向别的存储区域。
提问者对于答案的评价:
谢谢,知道你们说的什么了,我还要再研究研究。
专家置评
已阅,最佳答案正确。