找回密码
 请使用中文注册
查看: 27|回复: 0

浮点数取小数点后的位数SCL程序

[复制链接]
阅读字号:

43

主题

197

回帖

474

积分

入门维修师

积分
474
发表于 3 小时前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?请使用中文注册

×
浮点数取小数点后的位数SCL程序
  前一些天,公司同事让我去看看,他所管理的工厂环保设备中,有一个“奇怪”的问题,让我过去诊断看看。
  我过去一看,cpu是ET200SP+维纶通触摸屏的基本设备控制配置。问题是显示其中一个I/O域(浮点数)数据,有时候显示正常,有时候显示异常。我让同事打开plc程序和触摸屏程序,看具体的数据是否有重复使用的交叉地址,一阵查找后,判断没有此现象。只是,浮点数运算显示的位数,与维纶通触摸屏I/O域显示的位数的匹配问题,当plc侧的该变量地址显示的位数大于一定位数后,触摸屏显示浮点数整数小数点后面变为“#”符号。问题找到,我按网友的处理方法,先将原浮点数据乘10.0,然后截断取整,再除10.0。按此思路将修改的程序保存,编译后下载,显示正常。
  回到办公室,想起这个处理过程,总认为可以处理能力强大的SCL编程来解决这个问题,找了找网上居也有同样的程序,于是,按那个方法“炮制”了一个,模拟仿真结果可以满足需要,特将此程序贴出来分享。程序:
创建一个FC,新建必要的输入、输出及temp变量,图示:


在OB1调用,并新建测试的DB数据块,取消优化访问,根据FC接口新建必要的数据,图示:
启动模拟仿真,将程序仿真测试,图示:


浮点数输入,输入一个圆周率数据3.1415926,小数取小数点位后的3位,结果3.141,能够满足我的要求。再次修改小数位数,结果满意,于是,将此程序发送给同事。此,也特分享大家。

您需要登录后才可以回帖 登录 | 请使用中文注册

本版积分规则

QQ|手机版|家电维修论坛 ( 蜀ICP备19011473号 川公网安备51102502000164号 )|网站地图|网站地图

GMT+8, 2026-8-28 12:13 , Processed in 0.101177 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表