wincc7.5,与第三方的小PLC进行通讯,小PLC仅有485接口,modbus规约,买了一个串口服务器做网关,modbusTCP转modbusRTU。小PLC中的modbusRTU的寄存器地址为0x0080~0x008D,而且要求一次性读取。
目前测试的问题是:wincc启动后,首先一直读取寄存器0的数据,从串口处监视的报文为01 03 00 00 00 01 84 0a;而PLC中寄存器0中无数据,则没有回复,wincc就一直这样,而不去读取0x0080~0x008D的数据。
我在串口服务器的485口直接连一台电脑,通过电脑的(Modbus Slave)模拟软件,模拟从站0x0000~0x008D所有的数据,则wincc第一次读取了0寄存器的地址后,就开始一直读取后面变量做好的数据了,01 03 00 80 00 0e c5 e6,数据显示就没有问题了。
而且测试wincc只有在运行界面显示数据包含了这些变量,才会去读取这些寄存器的数据,如果切换到其他界面,就又一直读取0寄存器地址了。
这种情况,wincc可不可以通过什么方法,不读取0寄存器地址,而是一直读取变量里面做好的地址;不然现场设备就通不上。
wincc变量配置,3x400001代表寄存器地址0;