linsinging
天明
级别: 论坛先锋
精华主题: 0
发帖数量: 103 个
工控威望: 1818 点
下载积分: 780 分
在线时间: 305(小时)
注册时间: 2021-03-22
最后登录: 2024-11-29
查看linsinging的 主题 / 回贴
楼主  发表于: 2021-04-11 12:32
图片:
A=a/b乘以B+1,如图,B值触摸屏可以改,会变,FX3U怎么写程序
〇·微尘ベ
级别: 论坛先锋
精华主题: 0
发帖数量: 329 个
工控威望: 1174 点
下载积分: 3191 分
在线时间: 287(小时)
注册时间: 2020-04-11
最后登录: 2024-07-19
查看〇·微尘ベ的 主题 / 回贴
1楼  发表于: 2021-04-12 11:12
你数学模型都出来了,剩下的就是找到相应的指令,实现你的要求就可以了。
小侯
小侯
级别: 工控侠客
精华主题: 0
发帖数量: 482 个
工控威望: 2612 点
下载积分: 8093 分
在线时间: 507(小时)
注册时间: 2008-10-17
最后登录: 2024-11-15
查看小侯的 主题 / 回贴
2楼  发表于: 2021-04-12 13:33
图片:




在PLC作計算時要考慮到乘除的轉換,在計算乘法會變成32位元,而除法時會有商數跟餘數,且除數不得為零
而我算式內超出±32767,用ST直接列算式計算,結果就有問題
Y=(A/X)*(X+1)

Y=[A(X+1)]/X
雖然計篹起來是一樣,但是在程式內的先後順序也會造成結果不一樣
一般來說都會先乘後除,減少餘數造成的影響
轉換成浮點數以後再做浮點數運篹比較好

另外A=(A/B)*(B+1),直接列這樣算式在PLC內一定有問題
本帖最近评分记录:
  • 下载积分:+1(renzhigang79)
    xuxulaifeng
    级别: 探索解密
    精华主题: 0
    发帖数量: 31 个
    工控威望: 122 点
    下载积分: 637 分
    在线时间: 44(小时)
    注册时间: 2015-01-03
    最后登录: 2024-02-04
    查看xuxulaifeng的 主题 / 回贴
    3楼  发表于: 2021-04-16 17:07
    弄得太复杂了吧,A=A*(B+1)/B换算一下不就是A=A+A/B,就简单几行程序不就出来了吗?唯一要注意的就是要用浮点数除法,直接D/会只有商,没有余数
    进击的工控人
    看什么看!
    级别: 家园常客
    精华主题: 0
    发帖数量: 299 个
    工控威望: 631 点
    下载积分: 1699 分
    在线时间: 271(小时)
    注册时间: 2019-05-29
    最后登录: 2024-11-27
    查看进击的工控人的 主题 / 回贴
    4楼  发表于: 2021-04-16 17:32
    引用
    引用第3楼xuxulaifeng于2021-04-16 17:07发表的  :
    弄得太复杂了吧,A=A*(B+1)/B换算一下不就是A=A+A/B,就简单几行程序不就出来了吗?唯一要注意的就是要用浮点数除法,直接D/会只有商,没有余数

    有余数,你这个化简一下的方便很多,老哥稳!
    加油!