硬件:台达PLC/台达模拟输入模块DVP04AD-E2
模拟量采集时受到多种干扰,使得获得的数值跳变比较厉害,本来想写程序采用软件滤波方法的,后来看到其实台达的模拟块已经写好程序了,我们调用一下就行了,查了下资料好像台达采用的是递推平均滤法,试了下效果还可以,毕竟我这场合要求也不需要那么高。
使用控制寄存器CR的#8,CH1平均次数,用CR#12获得平均值,不要用CR#20。在触摸屏中可以设置CR#8的值,这样可以随现场调整平均次数来获得不同的速度响应,效果还是不错的。
模拟量转换为数字量时,台达的模拟块各通道使用的电压信号标准是0-5V,0-10V等,竟然没有0-24V,我觉得非常奇怪,像电子尺这样电阻型的模拟传感器,如果直接接0-24V的话就非常方便了,至于为什么工业PLC标准和传感器变送器等当中都没有用0-24V本人还是不明白,毕竟涉水不深,呵呵。但是串个电阻也能很好解决问题,怕电阻的精度会随环境变化,所以还是买个5V的开关电源得了,不值得省这几个钱。通过这个试验也明白了怎么使用电压输入模拟块和电流输入模拟块,其实这只是初中的物理知识,我等菜鸟刚开始还不明白,后来摸索了下,其实模拟块的输入就相当于万用表,会用万用表就会接模拟块了。
最后的结果还是不错,325mm长的电子尺,显示小数点后两位,0.01mm,最后位一直跳动不超过4,这还是在调试环境下,还没连上强电设备,现场结果还得等下回分解。
但是程序中用了滤波的平均次数,这个值是0-100,0时就是当前输入信号的现在值,100时发现延迟比较大了。假设PLC程序10ms扫描一次,100次就是1秒了,那延迟滞后相当可观了,更何况一般达不到10ms扫描的速度。
现在想想,很多机床显示的数值小数点多少多少位,其实看到的未必是真实的,那只是程序、软件的结果,硬件宣称达到多少um,我看未必。