回复:关于配方添加问题

工控伟哥

西门子1847工业学习平台

  • 帖子

    29
  • 精华

    0
  • 被关注

    0

论坛等级:游士

注册时间:2022-08-25

黄金 黄金 如何晋级?

发布于 2023-07-15 10:32:40

4楼

展开查看
以下是引用Siemens_PLC编程精英训练营在2023-07-14 23:00:35的发言 >3楼

upperBound对应的是配方表数组上限,不是长度,如下图:

如果首条记录为空,确实会存在问题,可以采取如下的处理方法:

在添加配方前需要先判断配方表是否空表,如果是空表,则添加的记录作为首条记录,如果不是空表,则记录添加在原表最后一条后。

参考如下:




以下是引用工控**在2023-07-14 11:07:35的发言 >0楼:在配方添加程序中,...

引用0楼详细内容:

在配方添加程序中,如果查询到配方返回的是第0位的配方应该如何处理?

再读取配方表数据的For循环中使用的是FOR tempI := 0 TO upperBound DO,这其中的upperBound教学中说的是配方存储单元的长度,那这个超出了数组边界,是否应为FOR tempI := 0 TO upperBound - 1 DO

另外练习中的程序是错误的,没有考虑第0位,会导致数据超出边界




那我们拿到的程序得更改了,里面的上一条记录是用当前找到的第一条非空记录减去1来作为上一条记录,如下:

    #recipeList.RecipeList[#temp_x] := #recipeAdded;

    #temp_i := #temp_x - 1;

    #temp_j := #recipeList.RecipeList[#temp_i].Next;


按目前您说的,我们应该通过for循环来读取出原配方表中的最后一条记录作为#temp_i的值

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

PLC编程精英训练营

共有1542条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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