大家好,画面趋势报表等可以实现记录一个数据不同时刻的值和对应时间,假如我不用画面做,只用程序做,我再调用DB看数据,怎么实现?
比如,我有个电机振动值,需要我记录振动值过大时的振动值和对应时间。要求每次震动过大时的这两个数据都存在同一数据块DB1中,存到100条后自动存到DB2里面。依次往后存,要求数据被保存,不能被后来的数据覆盖。
这里就假定存两个DB块,每个存一百条后,两个全部清零,继续循环用。
这程序改怎么写?我想了很久不会。是不是要用指针啊?假设振动值过大时就是M0.0为1,只记录震动开始时刻就好,变成正常后再次过大时算下一次。
求给个程序!谢谢了!
问题补充:
指针功能不会用,可以给此例的指针程序吗?提供点有关指针的参考资料也行。谢谢了!
最佳答案
1、正如一楼所说,你用两个DB还不如用一个方便-----必须多编程把DB1拷到DB2。
2、这种应用场合肯定是用指针方便了,利用它建立一个环形表,还建议把此功能做成一个FB,使用“振动值过大”作为FB的使能信号,在FB中视需要按规定时间或每个扫描周期(可以使用输入变量来定义)读取振动值和时间,定义一个包含一个振动值和一个时间值的UDT,在FB的静态变量中按需要的个数申明UDT类型的变量,每读取振动值和时间值一次,保存到指针所指的单元,指针值移到下一个UDT,超出后指针回到申明的第一个UDT。
提问者对于答案的评价:
很感谢,掌握了思路,能提供范例或相关指针资料吗?这方面不懂
专家置评
西门子STL间接寻址常问问题集
http://www.ad.siemens.com.cn/download/docMessage.aspx?ID=6175&loginID=&srno=&sendtime=
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc240340.html