FB块里的程序。
LAR1 P##CSW_AREA
L W [AR1,P#0.0]
T #_DB
L D [AR1,P#2.0]
#CSW_AREA:为此程序的 IN_OUT 借口参数,他的变量类型还不懂。请看图1
#_DB:为临时变量 word
对寄存器指针还是懂些,但是对这几句一点不懂,个人觉得好像是把临时变量的值存到临时变量,但是后面程序中 #_DB被如下程序用到?
OPN DB [#_DB]
L P#DBX 0.0
OD
LAR1
L W [AR1,P#0.0]
T LW 0
很是不懂,请高手指导下
问题补充:
火麒麟 大侠万分感激您啊!
您的意思就是说这里的这个IN_OUT是指针类型了?
为什么这里不写成 pointer ,而是 Phase_SW,这是什么类型啊,我在下拉表里找不到啊?还有 Phase_StepW,TON 这两个类型又是什么意思?也在下拉表找不到???请大侠讲解下?谢谢了
图片说明:
最佳答案
#CSW_AREA为Pointer类型参数。
想了解这段程序,需要了解Pointer指针类型的结构。Pointer为6个字节,前面2个字节存储DB的编号,后面4个字节存储具体地址。
LAR1 P##CSW_AREA:将CSW_AREA的首地址存入AR1
L W [AR1,P#0.0]:取出前面2个字节,即首字。如前述,代表DB编号。
T #_DB:付给临时变量,留作后用。
详细见附图:
图片说明:
提问者对于答案的评价:
火麒麟- 谢谢您,您是讨论。
其他各位就没看清我问的什么,我如果没用过指针,不懂变量类型,也不会问这个问题,再怎么也做了快两年多设计与程序编制了,虽然不是很精。
关于在临时变量里建立 用户自定义类型的 你可以说说怎么做,不是在DB块里建?
有些复制粘贴的 链接 您也查查,现在还能打开不,但最后还是谢谢你们。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc240868.html