找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
从下面多方面根本上解决问题。
1、传感器的质量
2、系统接地是否良好,线用的是屏蔽线吗?屏蔽层单端接地,并且远离强电,如果接地不好,可以将接地与构筑物钢筋骨架连接。
3、信号负与 M 短接;
未连接的电流/电压模拟输出通道的 3 个输入不应连接信号,而是连接到 MANA(前连接器
的针脚 20)。 这样可确保最大程度地抑制这些模拟量输入的干扰
接线部分参考
4、电源部分加隔离变压器
5、通道加信号隔离器
SIMATIC S7-300 CPU 31xC 和 CPU 31x:技术规范
https://support.industry.siemens.com/cs/document/12996906
如果确实要做滤波程序。参考
计算读入的任意数量的数值的平均值
http://support.automation.siemens.com/CN/view/zh/28027081
或者将测量值放在队列中,再求平均值
功能和样例:缓存测量值的“FIFO”
https://support.industry.siemens.com/cs/document/8685494
根据FIFO原则在环形缓冲器临时存储接收到的数据并传给用户接口
https://support.industry.siemens.com/cs/document/16825843
不知编程用的是TIA还是经典STEP7,是用 STL 还是 SCL 较熟呢?
补允:
数据定义如图
代码如下,复制即可
//OB100中写上电初始化部分
"滤波".计数 := 0;
"滤波".累加和 := 0;
"滤波".平均值 := 0;
FOR "滤波".原数据下标 := 0 TO 99 BY 1 DO
"滤波".原数据["滤波".原数据下标] := 0;
END_FOR;
"滤波".原数据下标 := 0;
//
//滤波代码,可在FC中也可在OB100中,复制即可,数据定义在数据块中
"滤波".累加和 := "滤波".累加和 - "滤波".原数据["滤波".原数据下标]; //累加和减掉最先进循环队列的数据
"滤波".原数据["滤波".原数据下标] :="滤波".新原始值; //向数组中添加新的原始值
"滤波".累加和 := "滤波".累加和 + "滤波".新原始值; //新的累加和
"滤波".计数 := "滤波".计数 + 1; //对循环队列中的有效数据计数
IF "滤波".计数>99 THEN //当有效数等于100个时就计算平均值
"滤波".平均值:=DINT_TO_INT("滤波".累加和/100);
"滤波".计数 := 99;
END_IF;
"滤波".原数据下标 := "滤波".原数据下标 + 1;
IF "滤波".原数据下标 > 99 THEN //当数据下标到了末尾,下标回到0,实现循环存储。
"滤波".原数据下标 := 0;
END_IF;
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城