逛工控网有一阵子了,深知坛子里面大牛很多,小弟碰到一个蹊跷事,向各位大神求助。第一次发帖,描述可能不够精简,内容有点多,还请看客耐心看看,^_^
问题描述:
1.背景
我在做一个电机特性测试的项目。下位机选用西门子S7-200的PLC,用于采集扭矩和转速信号,采用Step7-Micro/Win编写下位机的梯形图控制程序;上位机选用西门子工控机,在VS2010平台下采用C#编写监控界面。RS485的串口,Modbus通讯协议找人用C#编的。
2.问题由来
我在上位机软件中设置每隔1秒向PLC读取一次数据并添加到动态曲线控件中去,实现动态显示功能。蹊跷的是,我发现,实际的显示效果是1s、1s、1s、1.5s、1s、1s、1s、1.5s、1s... ...。也就是说,动态显示曲线时没有严格地按照程序代码里面设定的一秒采集一次的规则,出现了1.5s这种异常。后来我索性把采集时间改为2s,结果还是2s、2s、2s、3s、2s... ...这样地动态显示。
3.导致后果
这倒好了,我现在用万用表测测PLC输出给驱动器的电压,发现那个电压竟然也是在每隔几秒跳变一下,这直接就导致无刷直流电机转速忽快忽慢的。
写了这么多,我现在都不知道我要问什么了,凌乱啊。
总之,电机忽快忽慢是不正常的,我用Step7-Micro/Win的在线监控功能直接给PLC发命令的时候,电机就乖乖地稳定旋转,工作正常,不知道为什么到了上位机监控软件上来就出问题了。
求问:这种采集时间突变是怎么回事?
p.s. Modbus协议测试过了,应该没问题,而且采集的扭矩、转速、温度信号是正常的,也可以给PLC写位操作。下图是动态曲线的监控图