技术论坛

如何使用随机函数让一个不变变量出现范围内的动态变化

作者 主题
游士

经验值: 163
发帖数: 19
精华帖: 0
主题:【探讨】如何使用随机函数让一个不变变量出现范围内的动态变化


只看楼主 楼主 2021-04-14 23:31:22
本人在一个项目中,业主需要采集变频器电流与频率,但是现场已经只放了两根模拟量信号线,在不得已的情况下,探讨出以下解决方法
由于电流数值变化无规律可循,因此选择将变频器电流作为模拟量采集,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
出现异常时改频率将误导业主,谨慎使用
 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1691391&b_id=5&s_id=0&num=6

至圣

经验值: 23746
发帖数: 3385
精华帖: 52
回复:如何使用随机函数让一个不变变量出现范围内的动态变化


只看楼主 1楼 2021-04-15 08:02:29

楼主这个脚本写的有问题。


标准做法:  float rm = 0.0; //随机量;

float limit = 1.0;  // 输出范围 (+- 1.0)之间

rm = (0.5 - rand() * 1.0 / RAND_MAX) * limit;


//RAND_MAX是系统定义的随机量最大值, wincc是32767;


不忘初心
以下网友喜欢您的帖子:

  
至圣

经验值: 23746
发帖数: 3385
精华帖: 52
回复:如何使用随机函数让一个不变变量出现范围内的动态变化


只看楼主 2楼 2021-04-15 08:04:19

再说, 你这个问题, 从其他县借用一根信号线就够了。 何必装神弄鬼呢。


不忘初心
以下网友喜欢您的帖子:

  
奇侠

经验值: 5059
发帖数: 335
精华帖: 6
回复:如何使用随机函数让一个不变变量出现范围内的动态变化


只看楼主 3楼 2021-04-15 08:13:04

在一个项目升级改造中遇到过之前项目就是类似这样设置,个人十分反感,不认可楼主的做法,这跟坑蒙拐骗无差,糊弄谁呢,品德问题不是技术问题。
现场只有两根线,可以用MODBUS通讯。


仰望星空,脚踏实地
以下网友喜欢您的帖子:

  
版主

经验值: 43597
发帖数: 15780
精华帖: 61
回复:如何使用随机函数让一个不变变量出现范围内的动态变化


只看楼主 4楼 2021-04-15 11:09:24

没有就不显示,增加这么一个虚假信号有什么意思?


活到老,学到老!为了生活学习吧!
以下网友喜欢您的帖子:

  
奇侠

经验值: 5059
发帖数: 335
精华帖: 6
回复:如何使用随机函数让一个不变变量出现范围内的动态变化


只看楼主 5楼 2021-04-16 17:56:11
以下是引用zhangli0在2021-04-15 11:09:24的发言 >4楼

没有就不显示,增加这么一个虚假信号有什么意思?

有些项目,规范要求要显示设备频率和电流,楼主这么做假是为了项目能验收通过。


仰望星空,脚踏实地
以下网友喜欢您的帖子:

  
版主

经验值: 43597
发帖数: 15780
精华帖: 61
回复:如何使用随机函数让一个不变变量出现范围内的动态变化


只看楼主 6楼 2021-04-18 15:43:24

这不是瞎扯吗?没有设备,造假?如果甲方不想增加设备,那么就没有这个功能就好了!有了设备,你做不出来,另说。


活到老,学到老!为了生活学习吧!
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
如何使用随机函数让一个不变变量出现范围内的动态变化
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。