我在论坛上看到某人写的MODBUS轮询程序,,看到他调用Modbus_Master指令的时候有点不太对劲,由于没设备所以程序无法实验。。他是在静态变量里声明一个Modbus_Master类型的DB,然后命名是Modbus_Master_DB,,,,,,下图是他的程序:

问题1:按照帮助里面的函数调用是下图这种方式,而他呢是以变量赋值的方式。这就对我产生了疑问,在块不调用的情况下,以他的这种方式能顺利执行?

于是我建立了两个FB做多重背景,FB1跟FB2 , FB2写一个自锁电路,,FB1调用FB2放到静态变量里面下图:


我在FB1里面以赋值的方式来控制FB2发现是无作用的,,FB2根本扫描不到。。


所以我觉得必须要要调用一下程序块才行, 我感觉他这个程序是有问题的,,,后来我调用了以后又发现了一个问题,,,此时程序是可以扫描到的,,,看下图:


输出不变1,,,,我感觉到是这条 A.输出:= "Tag_2"的原因, 我就把这条给放到 #A(输出:= "Tag_2");然后就可以了,,,


所以我在想如果我以赋值的方式来控制这个,,,我想把所有的参数放外面应该怎么办???像接口是输入的模式用赋值的方式可以:= ,,,输出的接口用=> 那输入输出的接口该用那种方式呢???

交换他们的赋值在左边在右边????那如果我用到一个字 有初始值,再以这种方式来,感觉不能实现啊,把我的输出值会覆盖啊。。我调用了一下Modbus_Master指令发现


接口类型是输入输出型却用 :=的方式来给变量。这我就有点纳闷了,,,谁能解释一下,,,