回复:写了一个插值计算的小程序,但是运行起来总是不对,请教高手哪里有问题?

wingwf2000

  • 帖子

    333
  • 精华

    0
  • 被关注

    1

论坛等级:侠士

注册时间:2021-06-23

钻石 钻石 如何晋级?

发布于 2026-05-25 19:26:42

3楼

展开查看
以下是引用pphsy在2026-05-25 16:41:07的发言 >0楼

程序如下,只有边缘值检测可以按预期运行,中间值算出来都是0,或者就是没有执行

// 网络1: 边界检查 - 小于 P0_Fuel

LD     Always_On

MOVD   #pFuelTable, AC1


LDR<=  #Current_Fuel, *AC1

JMP    1


// 网络2: 边界检查 - 大于 P9_Fuel

LD     Always_On

MOVD   #pFuelTable, AC1

+D     36, AC1


LDR>=  #Current_Fuel, *AC1

JMP    2


// 网络3: 初始化查表指针

LD     Always_On

MOVD   #pFuelTable, AC1

MOVD   #pAirTable, AC2

MOVW   0, #i


// 网络4: 查表循环

LBL    4

LDW>=  #i, 9

JMP    5


// 未找到,移动指针

+D     4, AC1

+D     4, AC2

+I     1, #i


MOVR   *AC2, #Output_Air


JMP    4


// 网络5: 输出 P0_Air

LBL    1

MOVD   #pAirTable, AC2

MOVR   *AC2, #Output_Air

JMP    5


// 网络6: 输出 P9_Air

LBL    2

MOVD   #pAirTable, AC2

+D     36, AC2

MOVR   *AC2, #Output_Air

JMP    5


// 网络7: 插值计算

LBL    3

MOVR   *AC2, #Air_L

+D     4, AC2

MOVR   *AC2, #Air_R

-D     4, AC2


MOVR   #Current_Fuel, #Ratio

-R     #Fuel_L, #Ratio

MOVR   #Fuel_R, #Temp_Real

-R     #Fuel_L, #Temp_Real

/R     #Temp_Real, #Ratio


MOVR   #Air_R, #Temp_Real

-R     #Air_L, #Temp_Real

*R     #Ratio, #Temp_Real

MOVR   #Air_L, #Result

+R     #Temp_Real, #Result


MOVR   #Result, #Output_Air


// 网络8: 结束

LBL    5


不能转换为梯形图,逻辑不好分析

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9430条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。