这一篇学习笔记在新浪博客记录过,这里再记录一次。
工作中有时候会需要做一些均值计算,比如计算某个测量值近一分钟的均值,近一小时均值,近一天的均值。今天在家休息,试着做一下分钟均值,按照每秒一个数据,比如现在时刻10:07:10,那么计算从10:06:11到10:07:10这个时间段60个测量数据的算术平均值。由于没有实际的PLC硬件和检测仪表,是用模拟器和随机数来做练习。
1. 新建一个项目average,使用1500PLC,型号随便选一款。启用时钟存储器字节MB0,其它硬件属性使用默认设置,不组态其他硬件。设置一下CPU的时区

2. 新建一个数据块DB1,存放实时数据、平均值、系统日期时间、和等变量,取消“优化的块访问”设置。
3. 新建OB30循环中断组织块,在里面写程序
读取系统时间,前面设置时区就是为了读取的时间是北京时间

利用系统时钟的毫秒数作为随机数。在OB1写下面的程序
%MW2是word数据类型,需要转换成real类型,在OB1中执行
根据当前秒数,在OB30将数值放入相应的数组成员中,这里使用SCL编程,比梯形图简洁一点
完成后下载到PLC,这样每秒读取一个数据放入数组,一共60个成员,对应最近60秒的数值,SCL编程记录数据,计算和与均值。