有没有现成的实数比较模块,输出最小值?或者怎么编一个这样的块?
问题补充:
只需要比较两个值,把最小的值输出。值为REAL格式
最佳答案
不知道你比较数目多吗?如果不多最简单的办法就是预先定义一个值作为最小值,保存在一个存储区,用其他数值和这个值比较,如果比这个预定义最小值小,就替换最小值,否则还保持最小值不变。举个例子:有5个实数要比较,分别保存在数据块DB1中,地址为DBD0、DBD4、DBD8、DBD12、DBD16。比较最小值结果保存在DBD20中。参考程序如下:
L DB1.DBD 0
T DB1.DBD 20
A(
L DB1.DBD 4
L DB1.DBD 0
<R
)
JNB M001
L DB1.DBD 4
T DB1.DBD 20
M001: NOP 0
A(
L DB1.DBD 8
L DB1.DBD 0
<R
)
JNB M002
L DB1.DBD 8
T DB1.DBD 20
M002: NOP 0
A(
L DB1.DBD 12
L DB1.DBD 0
<R
)
JNB M003
L DB1.DBD 12
T DB1.DBD 20
M003: NOP 0
A(
L DB1.DBD 16
L DB1.DBD 0
<R
)
JNB M004
L DB1.DBD 16
T DB1.DBD 20
M004: NOP 0
如果比较数值 比较多,建议使用循环指令加间接寻址来完成比较容易。
如果比较2个数值更简单。假设2个数值保存在DB1.DBD0 和DB1.DBD4中,比较最小值结果保存在DB1.DBD8中。在定义DB1数据块时候定义DB1.DD0、DB1.DBD4、DB1.DBD8为浮点数REAL类型即可。程序见附件图片。
图片说明:
提问者对于答案的评价:
对zhanglio的回答一并表示感谢!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc203038.html