恭喜,你发布的帖子
发布于 2025-06-12 18:05:01
13楼
什么通讯有本事检索L区的值啊?而且是能够侦测到正在调用指定的子程序的指定调用的时候去检索L区。就指定的子程序:是说plc有很多子程序,之中的求和子程序。
指定调用:是说求和子程序在程序中被不同地方调用过很多次,而其中的关于AIW48这个的调用。
就连plc自己本身,除了正在调用的子程序之外,都没有任何可能得知本次调用中的L值。L地址也没有提供地址给通讯去访问。试问,什么通讯这么牛逼能检索L区的值?
你这个L一旦输出到V区,说明这次调用已经结束。结束才写出去一次。上一次的写也就是上次的调用结束。中间并没有再次赋值。
你好好斟酌一番了。
看看是不是我们之间谁一直误会了些什么?
简化一下,我们争议的是不是 OUT 是最后整个子程序执行完才赋值给外部接口?还是 在计算过程中赋值?
你的理解是,OUT 就像C语言的返回值一样,在函数最后的Return中返回出去。
我的理解是,IN 和 OUT 类似C语言的函数参数,函数参数分 传值调用 和 引用调用, 引用调用是通过的指针的方式传递,改变形参的值就是改变实参的值,比如这里如果我们OUT(LW6)接的是VW0,那LW6改变的同时,VW0也会跟着变,如果外部设备在计算过程中读取了VW0,可能读到的就是一个临时数值。
我认为 OUT 是引用调用的可能性非常高,如果是传值调用,那它自己得建一个临时变量作中间值,不太合理,但也只是我的推测,我也很难验证。
请填写推广理由:
分享
只看
楼主