登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:如何从实数中提取出百位十位个位数

点击:4311 回复:15

我是一名PLC初学者,前几天编了个程序,在PLC的输出端口直接驱动三个数码管,能显示0-999的数字。现在想编个程序,把231TC模块热电偶检测到的温度,从PLC的输出端口直接显示温度值,要求显示百位十位个位,琢磨了很长时间,就是不知道怎么样能把转换成实数后的数据分离出百位数十位数个位数,让各位数通过SEG转换成段码后分别去驱动QB0、QB1、QB2。谢谢各位老师给予指点!
最后修改:2019/9/21 10:27:19
19-09-21 10:26
实际的测温范围大概有多少?分离后的百位数十位数个位数是要实数还是要整型?
19-09-21 10:44
实际温度大约二百多度,分离出来的要整数,希望得到您的指点,谢谢!
19-09-21 10:48
先转化成整型,再用数学公式啊
19-09-21 11:01
plc应该可以取模吧,如果可以就行。或者除100取余数得到百位,具体这类的可以直接百度编程语言的取位数的方法。
19-09-21 11:14
首先用round去除小数部分,再每次/10取余,依次得个位,十位,百位
附件 捕获.jpg
19-09-21 12:44
老师你好,假如热电偶检测到的温度285度(温度会变化),我需要分别提取出2、8、5这三位数字的。
19-09-21 16:18

引用 MU7668 在 2019/9/21 16:18:17 发言【内容省略】

温控模块读取到的数值本身就是一个整数,只是最后一位作为小数显示,例如285度,实际采集进来的数值为2850,因此,你可以除以1000求余得到2………………
Good Luck~
19-09-21 19:28
用一种简单的逻辑分离,用整数指令就可以省掉小数部分
假如是一个3位数的M,求X,Y,Z,则M=100*X+10*Y+Z.
M/100=X,         (本来结果为X.YZ,但是由于使用的是整数指令,则小数就会自动省略掉)
(M-100*X)/10=Y,
{M-(100*X+10*Y)}=Z.
再看程序
附件 333.jpg
19-09-23 14:45
分别除100.取商,得到百位数,其他类推
19-09-23 14:48

上一页下一页

工控新闻

更多新闻资讯