利用labview做了个PLC控制程序,PLC控制程序是做为子程序被动态加载到子面板的,问题是,我光打开PLC这个子程序来进行控制PLC,没有任何问题,但是我一旦采用动态加载的方式在子面板进行打开,发现PLC的QB0这个字节无法控制,要从QB1开始才受控制,不知道什么问题,各位多指教。这个怪现象。
你好,我采用的确实是OPC通讯,我看了一下,不管是采用静态还动态加载,OPC质量这一栏所有变量都显示为good,也就是说,通讯还是没有问题的,但是动态加载时确实只能控制QB1以后的点,,对于QB0无法控制,是不是在labview程序里面还要编写什么程序或者设置什么的 ???多指教
追答OK,现在问题更进一步了,我想知道你是采取哪种方式实现opc通讯的,DSC?DATASOCKET?还是直接前面板绑定的。
我推荐你先用前面板绑定QB0~QB7的地址,eg:opc:\\....\\simensnet.....看看结果。
如果没有问题,那就是你控制方法的问题了,我估计你用的是datasocket,那就是编程实现的问题了,你再试试。
绑定变量时,我是在属性对话框里面选择的是DATASOCKET,在DSTP服务器里面从S7200 OPC 里面浏览到的。特别提出,这个PLC程序是同一个程序,单独打开PLC程序时,控制没有问题,在OPC Quick Client 里面也可以监视到知道改变,但是采用动态加载的形式将该PLC程序进行动态加载后,就有这个现象。QB0无法控,在OPC Quick Client 里面监视到对应值也没有改变,但是质量这一栏显示为good ,其他的PLC点值却发生变化,
追答你动态加载时,无法控制QB0,此时你使用client控制QB0,看看行么?如果也不可以,那就是plc程序问题。还有关注一下,你绑定的access type是不是R&W。