本人在一个项目中,业主需要采集变频器电流与频率,但是现场已经只放了两根模拟量信号线,在不得已的情况下,探讨出以下解决方法
由于电流数值变化无规律可循,因此选择将变频器电流作为模拟量采集,wincc页面上正常显示。
页面上是有做频率设定的,采集这个设定值(浮点数),做以下处理
新建一个输入输出域,选择输出,在输出值建立c函数
假设设定值为MD0,电流为MD4
i =GetTagFloat("MD0");
j =rand()%5;
float k =(float)j/10;
if(GetTagFloat("MD4">1)
{
return (double)(i-k);
}
else
{
return 0;
}
这样可以实现显示一个在MD0值随机加0.1至0.5的值的效果
要点1
输入输出域返回值必须为double或者char
2
变量管理中的变量以及rand函数无法强制转换数据类型
3
直接随机小数rand()/X将导致输入输出域无法正常显示,因为数据将无限长
4
修改触发器可以实现变化周期控制
5
使用SetOutputValue函数可以在全局脚本中定义输出
6
无电流时会显示0
7
出现异常时改频率将误导业主,谨慎使用