众所周知,角度是比较容易测量的物理量,但是角速度通常难以直接测量,而此时通常采用的方法是一阶差分来近似求解。
本例程用来讲解基于Siemens S7-1200 PLC实现角度速的测量。
所用到的硬件:
1200PLC: CPU 1214 AC/DC/Rly
角度传感器:P+F INY030D-F99-2U-V15
所需要的硬件知识包括1200 PLC模拟量采样时间和循环中断配置
1200PLC提供三种不同的采样时间,如下图所示。
循环中断 OB
循环中断 OB 以周期性时间间隔启动程序,而与循环程序执行无关。 循环中断 OB 的启动时间通过时间基数和相位偏移量来指定。
时间基数定义循环中断 OB 启动的时间间隔,并且它是基本时钟周期 1 ms 的整数倍。相位偏移量是与基本时钟周期相比启动时间所偏移的时间。 如果使用多个循环中断 OB,当这些循环中断 OB 的时间基数有公倍数时,可以使用该偏移量防止同时启动。
可以指定 1 ms 和 60000 ms 间的时间段作为时间基数。
在用户程序中最多可使用 4 个循环中断 OB 或延时 OB(OB 编号大于等于 123)。 例如,如果已使用 2 个延时中断 OB,则在用户程序中最多可以再插入 2 个循环中断 OB。 **使用相位偏移的示例**已在用户程序中插入 2 个循环中断 OB:
循环中断 OB1和循环中断 OB2
对于循环中断 OB1,已设置时间基数为 20 ms;对于循环中断 OB2,已设置时间基数为 100 ms。时间基数 100 ms 到期后,循环中断 OB1 第五次到达启动时间,而循环中断 OB2 是第一次到达启动时间。 然而要执行循环中断 OB 偏移,则请为其中一个循环中断 OB 输入相位偏移量。
-
首先配置PLC模拟量通道,积分时间选择50Hz,即采样时间为5ms。计算角速度需要采用循环中断,而循环中断时间只能为整数,因此采用5ms,而不是4.17ms。滤波选择强(32个循环)。
-
创建循环中断块,设置循环时间设置为5ms,相移0。建议给一阶微分单独配置循环中断,否则程序的添加可能会造成一阶微分出现偏差。
-
根据传感器量程得到测量角度。
-
计算角速度。首先判定输入值与上一次输入值是否相同,不同则计算两值之间的差值,并根据采样时间,得到角速度量。
判定两次输入值是否相同,若相同,则增加一个采样时间,若不同则将输入值幅值给上一次输入值并保存。