当前位置: 主页 > PLC控制

300plc的局部变量的问题

在FC里面有IN、out、in-out它们的地址是连续的从L0.0开始;但是下面的temp
变量也是从L0.0开始的,假如我的编程时这个样子的:
AI0.0
FPL0.0
SQ0.0
我想问下这里的L0.0是指IN等一类的还是归属于temp一类的,作何解释
希望各位专家帮忙解释下。
还是就是能不能帮我引荐一些个指针的例子特别是pointer和any在fc里面的应用。

ASs='html_titleimg_p' STyle='text-align:center;'>

问题补充:
1、首先说下,我在局部变量表里建立变量表up1,地址为0.0。
AI0.0FP#up1LMW0+1TMW0
我测试的时候没有出错,为什么是正常的,二楼说的不宜的原因是什么?
2、一楼说inoutin-out是形参而二楼说是实参到底哪个市正确的,能否解释下
3、我在out里面建立一个变量表out,ouTPut
AI0.0L#OUTPUT,+1,TOUTPUT
有人说不对,说这个变量必须建立在in-out里,但是我测试的时候没有出错啊为什么?

最佳答案

1、fc中in,out,in_out只能定义变量,没有地址,只有临时变量才有地址;fb中的in,out,in_out,stat,temp变量才有地址,除了temp外其他的地址都是连续的(可以再背景db中看到数据),temp变量只是程序内使用的,不保存,所以数据块中没有他们的地址。
2、AI0.0
FPL0.0
SQ0.0
这样编程时错误的,因为临时变量不能保存,所以不能用于上升沿检测,如果你这样用那么sq0.0这个指令就会一直执行的,我想这不是你想要的结果的。


补充回答:
1、AI0.0FP#up1LMW0+1TMW0这里你是想i0.0有一个上升沿mw0才加1吧?实际上你的程序每扫描一次,就执行一次自加正确用法是:fc中定义in_out,fb中定义in_out或者stat变量up1,然后:
AI0.0
FPUP1
JCNM1
LMW0
L1
+I
TMW0
M1:NOP0
2、形参就是fc,fb的引脚的名称,实参就是fc或者fb被调用时在调用块中给fb,fc的引脚连接的地址,比如你给fc定义一个输入参数in1,real,在再调用这个fc的程序中给in1连接地址md0,in1就是形参,md0就是实参。
3、不要总是相信权威,实践出真知。

提问者对于答案的评价:
各位前辈说的都有道理,但是只能选择一个—抱歉。

专家置评

楼主说正确执行的程序写错了啊,应该加跳转指令才行啊。另外就算测试的时候能够正确执行。也并不表明这段程序就会在任何环境下能够正确执行。

  • 关注微信

猜你喜欢

微信公众号