文末有SCL核心编程实战案例资料
导读:堆栈用于做数据处理,是一种数据项按先后顺序排列的数据结构,只能在一端对数据项进行放入和取出操作,也就是入栈和出栈,符合先进后出的特性。
在编写堆栈程序时,我们要先理解几个概念:
我们可以把它比喻成1个表格,这个表格可以存入数据,有3种不同的状态:
(1)状态1:空栈,栈里没有元素或者所有元素都被取出。这种状态是不允许出栈,因为它没有数据!
(2)状态2:入栈,栈里有部分数据,可以入栈。入栈一次,向堆栈内存入一个元素,同时堆栈指针上移一个位置。当堆栈处于满栈状态时,不能入栈。
(3)状态3:满栈,栈里存满元素,没有空闲空间。
出栈顺序:如下图所示,当需要出栈时,第一个取出是数据是“6”,其次是“5”,最后出栈的是“1”。它的规律遵循的是先入后出(FILO)
程序编写:
编写一个手动、出栈入栈的程序
(1)新建FB块并且定义接口变量
程序行3是入栈按钮检测,行4是出栈按钮检测
程序行7和8是判断栈数据大于10或者小于0时栈满和栈空标志位接通!
程序行10至14是入栈程序:当每检测到一次入栈标志时,把需要入栈的数据“PushData”的值存入到栈中,第一次存入的地址是“Stack[0]”中,第二次存入的是“Stack[1]”中,依次类推! 程序行17至20是出栈,先取出的是栈定的数据,出栈时每次指针要减1。
(2)新建DB数据块
(3)主程序调用FB程序块
最近有很多小伙伴说要案例书籍,说是手机上看文章不是很方便,我抽时间把SCL核心编程实战案例全部整理出来,案例都是比较典型的,其中包括SCL的语法结构、气缸控制程序、报警程序、运动控制程序、模拟量控制变频器、V90伺服通信等实战案例。需要的可以加我微信:biao467524527,如果加不上可以私信我!