你找到牛鼻子了吗?——由复现FC_Stack所想

已锁定

'Razor

西门子1847工业学习平台

  • 帖子

    3208
  • 精华

    41
  • 被关注

    222

论坛等级:至圣

注册时间:2008-03-31

钻石 钻石 如何晋级?

你找到牛鼻子了吗?——由复现FC_Stack所想

4933

15

2023-07-27 18:30:28

star star star star star

前几天论坛里新发了一帖子,里面有关于栈的内容,说FIFO栈,我心存疑惑,于是回翻老书,复习了一下栈stack相关的内容,确实是有点儿生疏了;再加上另外在微信平台看到一位师傅的SCL教程系列里面的一篇SCL实现栈FB的文章,于是也决定使用PLC代码再复现一下这基础的栈及相关的操作,采用全局DB+FC,相较常规以FB实现的方式,使用FC实现的话,有点儿坑,不过还好,功能完全复现了。

效果图如下





相较西门子常用状态字错误字的做法,我没有效仿,因为我想更直观地看到状态的变化,所以就直接全部采用了位变量。

关于栈这种基础的数据类型,常用也常见的操作就那么几样,reset/push/pop/getTop/getTopPointer/getDeepth/getSize/isFull/isEmpty,小计9种,栈变体在此处暂且不论。

----------------------------------------------------------------------------------------------------

如何找到牛鼻子并牢牢地牵住它?

----------------------------------------------------------------------------------------------------

牛鼻子是什么?牛鼻子是毛竹上面的那道细微的裂纹,是那团线团里的线头。

那栈的鼻子又在哪儿呢?

靠着那可怜地C语言基础,开始考虑应该如何编写PLC代码,从哪里下手?

先进行的isFull/isEmpty判断,怎么实现?

最原始的“比较”操作,里面的值和空栈初始值比较,数组遍历嘛,没问题。

其它操作无非就是push写、pop读后顺便再写个初始值进去,如何确定读写的具体位置?

开辟的buffer的形式是数组,使用数组索引变量吗?行,但是不是姓何的嫁给姓郑的——郑何氏,最多,它只能算是牛鼻子里的鼻毛!

谁是牛鼻子?栈顶指针!

栈顶指针通过什么获得,通过借助索引变量遍历数组和初始值比较获得。

你找到牛鼻子了吗?——由复现FC_Stack所想 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15113条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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