技术论坛

应用探讨——STL 是不是真的就会被淘汰?

作者 主题
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
主题:应用探讨——STL 是不是真的就会被淘汰?
推荐帖


只看楼主 只看精华 楼主 2015-07-07 09:22:05
在S7-1500中STL运行环境是虚拟的,而且指令集真的很“精简”,是不是慢慢地就被淘汰了,希望各位大侠列举一些STL对比LAD的优点和缺点,看看有没有生存的空间了。

活动奖励:
此次集中交流将持续至8月6日,其中所有精华帖作者将获得加倍精华奖励积分;最终所有有效留帖的网友将获得加倍发帖积分。更多积分带给您更多奖品兑换的自由。
对于有突出发言贡献的网友可获得西币奖励,可以在当前的兑换奖品中兑换奖品。
交流结束后也将专门整理重要内容,供广大网友分享参考。
预祝大家交流愉快,收获丰富!
 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1235635&b_id=66&s_id=0&num=154

侠圣

经验值: 2480
发帖数: 118
精华帖: 1
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 1楼 2015-07-07 09:49:43
俺倒是希望哪位大师能贴一些用STL写的“经典”程式,让俺们也学习一下子。
学无止境
以下网友喜欢您的帖子:

  
侠客

经验值: 802
发帖数: 82
精华帖: 1
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 2楼 2015-07-07 09:55:37
用STL语句表可以方便进行复杂的数据运算,查看语句执行顺序,但是对于逻辑较复杂的编程还是习惯LAD,LAD比较直观,逻辑关系清楚。
工控十年,不断学习
以下网友喜欢您的帖子:

  
至圣

经验值: 55289
发帖数: 9644
精华帖: 489
回复:应用探讨——STL 是不是真的就会被淘汰?
精华帖精华帖星级1级


只看楼主 只看精华 3楼 2015-07-07 10:03:21
不会吧?STL被淘汰?那间接寻址、各种运算都用LAD或G来做?是不是有点本末倒置?
STL的强项在寻址,在运算,LAD的强项在逻辑,这相得益彰,为什么要淘汰STL?
天生不宜做胜利者,自来没有胜利的欲望,只是不甘失败,十分十分不甘心失败。木心
以下网友喜欢您的帖子:

  
至圣

经验值: 26310
发帖数: 5838
精华帖: 5
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 4楼 2015-07-07 10:05:43
用STL语句表可以方便进行模拟量处理,逻辑编程用LAD比较直观,STL我认为不会被淘汰。
天天学习,天天进步.
以下网友喜欢您的帖子:

  
侠士

经验值: 1988
发帖数: 201
精华帖: 7
回复:应用探讨——STL 是不是真的就会被淘汰?
精华帖精华帖星级3级 推荐帖


只看楼主 只看精华 5楼 2015-07-07 10:07:39
LAD是梯形图逻辑控制,是PLC使用最多的图形编程语言。LAD编写的程序,通俗易懂,容易上手,但编译成机器码后,LAD的程序会较为啰嗦,执行速度较STL慢许多,LAD编程适用于从电气控制转型到程序员的人员。
STL语言类似于汇编语言,语言简洁,但可读性不如LAD,但其执行速度比较快,同时可以用作对知识产权的变相保护,适用于从计算机语言转型到自控领域的人员。
许多老外都是先用LAD编写程序,之后转成STL语言下载到PLC中的。但STL语言编写的程序不便于后期对系统的维护,现场维护人员看到STL语言的程序头都会大两圈的,当设备出现问题的时候,用LAD编的程序可能一眼就能看出问题所在,但STL语言就有点困难了。
用 STL能解决一些LAD语言解决不了的问题,同样的功能如果用LAD编写需要编写许多程序段才能实现,但使用STL语言编写的话,或许几行就搞定了。因此STL语言功能强大,但是较难学习,特别是间接寻址部分的指针方面的学习更加博大精深,功能强大。
所以说,这两种编写怨言,各有所长,但对于中低端程序人员来讲,LAD语言的市场份额会相对较大一些。
我快乐,我自豪,我为自控添砖加瓦……
以下网友喜欢您的帖子:

  
至圣

经验值: 11495
发帖数: 1028
精华帖: 39
回复:应用探讨——STL 是不是真的就会被淘汰?
精华帖精华帖星级5级 推荐帖


只看楼主 只看精华 6楼 2015-07-07 10:28:02
有一定工作经验的人想学stl,可能就是弄lad被人鄙视了吧,呵呵。也听过别人说stl有多厉害,指针啊啥的,觉得很高深。放下cfc,sfc等不说,大多数工程师现在的编程主流还是lad,stl,scl,我大概分析了下,工程师手上学习stl的“学习资料”来源,其实也就是源程序:
stl:
1.设备供应商程序,一般国内外在某个行业做了很多年的设备供应商配套的程序,历经了多年的发展,当初的标准功能开发语言就是stl,运行快,简洁,寻址功能强大。
2.西门子编程实例,各种模块的使用,某种功能编程实例等由于lad不具备复制粘贴成文本的功能,且占用篇幅大还看不清,lad做文档不太合适,教早期的文档和老外的文档或翻译出来的文档基本就是stl了。那时候scl也不流行。
3.编程的人似乎被“指针”概念强烈吸引,lad指针很弱,scl也是没有指针概念,可以使用any,pointer数据也是需要用at指令分开才能做逻辑运算。网上说起stl,铺天盖地的就是讲怎么用间接寻址。

现在主要对功能块编程还是用起了scl,当年也痴迷过stl.. 为什么lar1 p##xyz 在fb里能用,在fc就不合法,fb用ar1,ar2老出错(ar2在fb的特殊作用),傻傻记不住jcn,jnb,jc,ju,jl....跳转太多,不知道bec,beu,be搞这么多干嘛,cc,uc,call 什么时候用.
现在编程依然还是会使用stl,lad,scl混编
lad做bit逻辑,主逻辑清晰明了,
stl做某段数据区的拆分转移,对dword,word等位拆分做逻辑都很方便,借助ar1,ar2,如通讯读写的数据区
scl就不用说了。stl能完成它几乎无所不能,文本一样的复制粘贴随时拷贝的走。做好注释,可读性强
有点天马行空了。想什么写什么。
 
以下网友喜欢您的帖子:

  
侠客

经验值: 970
发帖数: 165
精华帖: 1
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 7楼 2015-07-07 10:30:19
淘汰?完全没有可能性,STL实现循环,跳转比LAD简单太多
甚至间接寻址用LAD根本就无法实现,怎么可能会淘汰STL

以上只是在300、400中,1500暂时没用过,但是装了博途软件玩了玩,貌似1500建立程序块都没法选择STL,难道1500不能用STL编程?
好好学习,天天向上
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:应用探讨——STL 是不是真的就会被淘汰?
精华帖精华帖星级3级 推荐帖


只看楼主 只看精华 8楼 2015-07-07 10:34:53
个人认为STL是8位CPU时代的产物,像累加器、状态字、地址寄存器,这些都带有Intel 51系列单片机的硬件痕迹。STL最大的问题是累加器的问题,各种指令的操作都是用累加器来完成的。所以需要用大量的L指令将数据传送到累加器1,用T指令将运算结果从累加器传送到别的存储单元。因此同样功能的程序,有累加器的CPU比没有累加器的CPU的长得多。
很多年以前,Intal已经用96系列取代了51系列,解决了累加器带来的瓶颈问题。别的PLC(例如S7-200)的STL没有累加器。
别的PLC的梯形图和语句表程序是可以双向转换的。但是300/400 的STL程序不一定能转换为梯形图,有的功能(例如间接寻址和LOOP指令)只有STL才有,梯形图没有,所以300/400的STL语言对于用户来说是很难回避的。
STL最早用于S5系列PLC,S7考虑兼容性的问题,保留了STL。S7-1200没有STL语言,1500保留了STL,可能还是考虑S7-300/400程序的移植问题。从长远来看,当1500基本上取代了S7-300/400,STL是会被淘汰的。
追求完美
以下网友喜欢您的帖子:

  
侠士

经验值: 1049
发帖数: 17
精华帖: 0
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 9楼 2015-07-07 10:37:23
在SCL没有被西门子好好普及到每个人都会之前,STL都不会淘汰的。毕竟STL还是比SCL好懂一些,毕竟不是每个人都有较强的编程经验啊!
而且STL在处理类型转换方面比LAD等实在太强。
 
以下网友喜欢您的帖子:

  
至圣

经验值: 11495
发帖数: 1028
精华帖: 39
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 10楼 2015-07-07 10:42:33
以下是引用Automann在2015-07-07 10:34:53的发言 >8楼:个人认为STL是8位CPU时代的产物,像累加器、状态字、地址寄存器,这些都带有Intal 51系列单片机的硬件痕迹。STL最大的问题是累加器的问题,各种指令的操作都是用累加器来完成的。所以需要用大量的L指令将数据传送到累加器1,用T指令将运算结果从累加器传送到别的存储单元。因此同样功能的程序,有累加器的CPU比没有累加器的CPU的长得多。
很多年以前,Intal已经用96系列取代了51系列,解决了累加器带来的瓶颈问题。S7-200的STL也没有累加器。
别的PLC的梯形图和语句表程序是可以双向转换的。但是300/400 的STL程序不一定能转换为梯形图,有的功能(例如间接寻址和LOOP指令)梯形图没有,只有STL才有,所以300/400的STL语言对于用户来说是很难回避的。
STL最早用于S5系列PLC,S7考虑兼容性的问题,保留了STL。S7-1200没有STL语言,1500保留了STL,可能主要是考虑到S7程序的移植问题。所以从长远来看,STL是会被淘汰的。
我也这么觉得会被淘汰,短时间内还有不少改造 的stl,随着cpu等硬件的加强,根本就不需要stl的寻址去完成某种功能,也许很简洁,但是这些只是负载9牛一毛的优势。还是那句编程大师的老话:编程只是顺便把功能完成了。‘ 程序的可维护,开发难易才是最重要的。lad,cfc,sfc,scl都很容易入手呢?stl以后可以用来炫技不错。
 
以下网友喜欢您的帖子:

  
版主

经验值: 69053
发帖数: 12266
精华帖: 59
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 11楼 2015-07-07 10:54:25
我感觉不会
没用过1200和1500的PLC,只用过200 300 400的
LAD梯形图适合逻辑方面的编程,编程维护简单,看起来明了,而且入门要求低,熟悉继电控制写点简单的程序就没问题,甚至直接根据继电控制的原理图照搬上来就行(有的哈),但是计算方面的用梯形图编写感觉就很繁琐了,而且阅读起来也麻烦
STL适合高手使用,不管读写要求稍微高点,要在脑海中有清晰的思路,编写数据运算方面的简单,特别是循环计算等数据较大的,占用地址方面的也少,数据转换、计算方面很多在累加器里面就实现了。记得论坛里有位大神说的,STL执行效率高,用这个编写的话占用资源少,运行速度快
感觉STL就和计算机里面的机器语言似的,不管SCL GRAPH什么的程序都能转换成STL语言,功能还是很强大的
编写程序不是很多,就这么点体会,有不对之处请指正
Q群:https://jq.qq.com/?k=9BDuEgf6
以下网友喜欢您的帖子:

  
新手

经验值: 14
发帖数: 2
精华帖: 0
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 12楼 2015-07-07 10:59:54
这要看语言功能了,我用三菱的就不用语句表(STL),因为LAD中就可以进行间接寻址、跳转等操作,而且比较直观(别喷 阿), 我知道他的结构化编程很弱,但你不能否认它的LAD中的间接寻址和跳转,还有,我不习惯LAD中进行数学运算,太麻烦了,稍微复杂点就要翻看好几页,很是头痛,如果在LAD中加入间接寻址,加入方便的跳转指令,可以加入SCL语句(方便运算公式写入),我看那就完美了,在这一点上,真的要好好学习施耐德,虽然人家没有你的市场占有量大,但人家的软件也没你的那么占硬件资源,也符合标准。还有,本来STL和IEC61131-3中的IL是等同的,为什么还不把名字改了。
 
以下网友喜欢您的帖子:

  
侠士

经验值: 1988
发帖数: 201
精华帖: 7
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 13楼 2015-07-07 11:01:44
以下是引用JustLee在2015-07-07 10:30:19的发言 >7楼:淘汰?完全没有可能性,STL实现循环,跳转比LAD简单太多
甚至间接寻址用LAD根本就无法实现,怎么可能会淘汰STL

以上只是在300、400中,1500暂时没用过,但是装了博途软件玩了玩,貌似1500建立程序块都没法选择STL,难道1500不能用STL编程?
s7-1500是支持STL的,可能你没有找到。
看图

但确定好编程语言之后就无法自由切换了,当选择LAD语言编程之后,切换只能是FBD和LAD之间进行切换,而选择STL编程之后,是无法切换成任何一种其他语言的。
语言是LAD的:

语言是STL的:

我快乐,我自豪,我为自控添砖加瓦……
以下网友喜欢您的帖子:

  
至圣

经验值: 43587
发帖数: 15780
精华帖: 61
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 14楼 2015-07-07 11:03:21
我认为不会淘汰,每一个语言都有自己的优势。如lad:强于复杂逻辑运算;scl:强于复杂算法,graph:强于顺控;stl:强于物理地址的读写,指令执行效率高,cfc我还有用到,不便于发表意见,但是前面说的所有语言最后都能转换成stl,所以从这一点来说stl是各个语言的基础。
活到老,学到老!为了生活学习吧!
以下网友喜欢您的帖子:

  
官方工程师
西门子官方工程师

经验值: 2465
发帖数: 132
精华帖: 16
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 15楼 2015-07-07 11:10:07
找了一段STL的例子,老外编写指针都是这样了,当初学习STL不是为了用的,而是能看懂别人的程序。

L 0 //初始化临时变量#ADD_TEMP。
T #ADD_TEMP
L P##In_Data //指向存储地址指针P#M100.0的首地
址,并装载到地址寄存器AR1中。
LAR1
L 0 //判断OB1中赋值的地址指针是否为数
据块(参考POINTER的数据格式)。
L W [AR1,P#0.0]
==I
JC M1
T #BLOCK_NO
OPN DB [#BLOCK_NO] //如果是DB块,打开指定的DB块。
M1: L D [AR1,P#2.0] //找出需要计算数据区的开始地址,
POINTER数据中,后4个字节包含内部
交叉指针,将
LAR1 P#M100.0装载到AR1中。
L 0
L #NO //如果输入变量个数为0,结束FC3的
执行。如果不等于0作为循环执
==I 行的次数(NO_TEMP)。
JC END
NO: T #NO_TEMP //循环执行加运算,本例中循环执行的次
数为4。
L D [AR1,P#0.0] //装载MD100到累加器1中。
L #ADD_TEMP //与临时变量#ADD_TEMP相加后将计算结
+R 果再存储于#ADD_TEMP中。
T #ADD_TEMP
+AR1 P#4.0 //地址寄存器加4,下一次于MD104相加。
L #NO_TEMP //LOOP 指令固定格式。
LOOP NO //跳回“NO”循环执行,执行完定义在变
量#NO_TEMP的次数后自动跳出循环程序。
L #ADD_TEMP //求平均值,装载运算结果到累加器1中。
L #NO
DTR //将变量个数转变为浮点值便于运算。
/R
T #OUT_VAL //输出运算结果。
END: NOP 0
 
以下网友喜欢您的帖子:

  
游士

经验值: 163
发帖数: 27
精华帖: 0
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 17楼 2015-07-07 11:40:59
S7-1500中STL的指令都没有变化,LAD的太丰富了,而且不支持64位计算,我看可能要淘汰了。
 
以下网友喜欢您的帖子:

  
游士

经验值: 163
发帖数: 27
精华帖: 0
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 18楼 2015-07-07 11:43:32
忘了一点,higraph不就没有了吗,新来的都不学STL了
 
以下网友喜欢您的帖子:

  
侠客

经验值: 970
发帖数: 165
精华帖: 1
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 19楼 2015-07-07 12:23:08
以下是引用喵喵seisei在2015-07-07 11:01:44的发言 >13楼:s7-1500是支持STL的,可能你没有找到。
看图

但确定好编程语言之后就无法自由切换了,当选择LAD语言编程之后,切换只能是FBD和LAD之间进行切换,而选择STL编程之后,是无法切换成任何一种其他语言的。
语言是LAD的:

语言是STL的:
以下是引用JustLee在2015-07-07 10:30:19的发言 >7楼:淘汰?完全没有可能...

引用7楼详细内容:

淘汰?完全没有可能性,STL实现循环,跳转比LAD简单太多
甚至间接寻址用LAD根本就无法实现,怎么可能会淘汰STL

以上只是在300、400中,1500暂时没用过,但是装了博途软件玩了玩,貌似1500建立程序块都没法选择STL,难道1500不能用STL编程?

哦,可能我看到的是1200,记错了
多谢指正
好好学习,天天向上
以下网友喜欢您的帖子:

  
侠圣

经验值: 4524
发帖数: 572
精华帖: 8
回复:应用探讨——STL 是不是真的就会被淘汰?


只看楼主 只看精华 20楼 2015-07-07 12:32:44
我认为STL不会被淘汰,但是STL得应用应该在中型PLC,大量的数据计算的情况下,会被广泛应用。我接触的设备里,汽车冲压生产线,需要大量的计算,就用的是STL语言。LAD会在小型PLC,不需要大量计算的情况下,广泛应用。因为LAD语言,比较好学,但是如果用于计算,还是STL好用,有些语句,在计算的语句中,LAD是无法实现的,必须用STL来实现。
我们不要总是埋头工作,偶尔也要抬头看看世界
以下网友喜欢您的帖子:

  
收起
应用探讨——STL 是不是真的就会被淘汰?
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。