恭喜,你发布的帖子
发布于 2022-11-17 09:32:13
4楼
我来帮楼主理清一下在不用IN/OUT脚和没有任何特别处理的子程序,什么样的能重复调用,什么样的不能重复调用。
如果你的子程序在一个扫描周期内就可以有结果输出,这个子程序就可以重复调用。反之,你的子程序要多个扫描周期才能出结果,那么这个子程序就不能被重复调用。
这里只是帮楼主理清一下。
倒不是一个周期内必须有输出结果的子程序才能被多次调用,内部逻辑用了定时器且输出结果跟定时关联的子程序照样可以被重复调用的,关键是引脚定义要定义好,外部实参变量(包括复结构变量)赋给子程序形参(引脚)。
他这个程序中的星三角切换时间,在做子程序时不能定义为子程序的IN/OUT变量,应该定义成IN变量,子程序引脚IN/OUT实际是为了方便实参需经子程序内部处理后决定实参值的情况而设计的一个机制,星三角切换时间是外部设定值,这个值不是由子程序处理后决定的,所以应该赋到IN引脚,赋给IN/OUT引脚,如果子程序每个周期都能执行还好(比如他这个程序中的计数子程序,肯是每个周期都会被执行的,所以他也说了运行没问题),如果不是,就可能是个随机值(上电第一个扫描周期赋了初值也无济于事)。
针对你这个星三角问题,切换时间还是用定时器吧,实参定时器赋给子程序形参定时器
请填写推广理由:
分享
只看
楼主