kevin-q
一天加一分,总有一天可以达到100分。
级别: 家园常客
精华主题: 0
发帖数量: 105 个
工控威望: 888 点
下载积分: 346 分
在线时间: 91(小时)
注册时间: 2016-12-29
最后登录: 2019-07-03
查看kevin-q的 主题 / 回贴
楼主  发表于: 2019-01-24 11:58
图片:
图片:
今天想在设备上加一个生产的不良率,开始以为很简单,用不良数D202除以总数D212,然后把结果放在D216里,最后用D216乘以K100得出不良率放在D218里,可是写了两种方式还是不对,不知道为什么程序里的D218结果好像都不对,而且面板上显示的都是0,那位大哥可以教一下小弟要怎么写才行,谢谢了。
小侯
小侯
级别: 工控侠客
精华主题: 0
发帖数量: 482 个
工控威望: 2612 点
下载积分: 8103 分
在线时间: 507(小时)
注册时间: 2008-10-17
最后登录: 2024-12-09
查看小侯的 主题 / 回贴
1楼  发表于: 2019-01-24 16:59
第一張圖
你用
1、良數D200+不良數D202=生產總數D212
2、不良數D202/生產總數D212=不良率D216
3、不良率*k100=不良%數

原本你的思路應該是這樣
但是你整個都是用BIN碼計算
在2 的時候會變成商數D216...餘數D217
不良數一定低於生產總數那全部變成餘數
在3 時你又用DMUL這是32位元相乘
這樣當然會將(餘數D217,商數D216)*100變成一個很大的數

第二張圖
前面幾個還是一樣
但是你最後用EMUL這是浮點相乘
前面都是BIN碼到這邊才用浮點當然也會有問題

那用浮點的話就全部浮點計算
若是要用BIN碼的話
那就調換一下順序


楼主留言:
受教了,谢谢!说的很详细,我明白了。
本帖最近评分记录:
  • 下载积分:+1(18306677573)
  • 下载积分:+5(jeffwang2011) 热心助人!