高效学习PLC编程,使用ST语言编写控制程序无压力
大家都知道PLC编程有很多语言可选择,在学习 CoDeSys 的过程中常会问一个问题,哪种编程语言最好?
其实,没有哪种编程语言是绝对的好或不好,不同的工程应用具有不同的最佳编程方式,每种编程语言都具有其不同的特点,可根据实际工程应用的需求选用合适的编程语言。
涉及到算法部分建议选择 ST 语言,编写的程序往往简洁而高效。
简单介绍
结构化文本(ST-Struct Text)是一种高级的文本语言,在西门子中称为SCL(Structured Control Language)语言,不要与STL混淆,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。
结构化文本编程语言是一种高级语言,是 CoDeSys 中最常用的一种语言,对于熟悉计算机高级语言开发的人员来说,结构化文本语言更是易学易用,它可以实现选择、迭代、跳转语句等功能。在复杂控制系统中,结构化文本可以大大减少其代码量,使复杂系统问题变得简单。
当你的14寸电脑界面装不下一行梯形图,当你做一个算术运算洋洋洒洒几十步,那个时候发现用ST还是挺香的,只是看逻辑没有梯形图直观,编译速度相对较慢。大意了,有得必有失嘛,如果你不介意那就一起了解一下吧。
程序执行顺序
使用结构化文本的程序执行顺序根据“行号”依次从上至下开始顺序执行,每个周期开始,先执行行号较小的程序行。这是PLC的特性,从上至下循环扫描,周期性执行,在PLC配置中可以分配每段程序的扫描周期。同一段程序中被赋值两次,第一次的赋值将被覆盖。
这是PLC的特性,从上至下循环扫描,周期性执行,在PLC配置中可以分配每段程序的扫描周期。同一段程序中被赋值两次,第一次的赋值将被覆盖。
表达式执行顺序
表达式中包括操作符和操作数,操作数按照操作符指定的规则进行运算,得到结果并返回。操作数可以为变量、常量、寄存器地址、函数等。
在做算术运算时,根据表格中的表达式优先级运算,小括号的优先级最高,可以将你想要先执行的表达式写在小括号内。
指令语句
结构化文本语句表主要有 5 种类型,即赋值语句、函数和功能块控制语句、选择语句、迭代(循环)语句、跳转语句。
转发是最大的鼓励!谢谢您的支持!
小贴士
PLC专属资料: 含有从入门到高级所有PLC学习资料(三菱/西门子/欧姆龙) ,电气经典18本大全书,历年电气考试真题、电气必备实训仿真软件、电气自动化行业各类型技术手册!
有人说:SCL将成为PLC的主流编程语言?
现在很多大品牌的中高级 PLC 都支持国际电工委员会 IEC61131 标准中规范的五种编程语言的混合编程,即梯形图(LD)、结构化文本(ST)、流程图(SFC)、指令表(IL)和功能块(FB)。在这五种编程语言中,
此外,由于西门子 S7 系列 PLC 在国内工控领域中使用很广,它的编程软件 Step7 默认情况下只支持梯形图和指令表编程,但通过安装“S7-SCL”软件包和“S7-Graph”软件包可实现结构化文本和流程图编程。
结构化文本是一种类似于计算机高级语言的编程方式,它的语法规范接近计算机中的PASCAL 语言。
所以有人就问:SCL将成为PLC的主流编程语言么?
于是很多电气人发表了自己的看法,一起来看看吧!
bnnyygy 说:
我献丑来一个,半成品,给设备改造的,用的欧姆龙CP1L,ST语言功能块,部分节选。
wenpian 说:
还是梯形图适合逻辑。
ljj977 说:
程序写的不错。tia protal中可以采用SCL与LAD混编的模式。这样的灵活性就更大了。
作为一个有C基础的人来说,用SCL他可能更擅长,入门更快。作为习惯了LAD编程的人员来说,写一般的逻辑关系程序,确实要清晰些。
计算机的普通编程人员将会有一部分人能胜任1200的编程工作,而且他们的转行不会有多大的门坎。可以说,PLC的编程人员来源会更广泛。
fujifa 说:
在JAVA出现之前,C语言的菜鸟们也是认为C语言将一统江湖,在PYTHON出来之前,JAVA的菜鸟们也是这么认为的。菜鸟们总是习惯使用必将,一定等词汇来描述他们认为的事物,为什么老鸟们不这样认为呢?因为老鸟们知道:
1:SCL,也就是ST语言,编译为机器码的执行效率比其他语言效率低。
2:梯形图编程语言也在进步,去看看诸如富士、AB这类在梯形图中使用高级语言编程等增强型梯形图语言的厂家就知道了。
hgxmm123 说:
老外喜欢用SCL语言编程,它功能丰富。国人喜欢用梯形图编程,易于推广。
有些PLC语言不能实现的功能,用SCL就能实现。
twtynijj 说:
最多只能说是备选的语言方法 ,主流怕是很难,可读性并不是很好,推广也难。老外是因为人家母语就是字母组成,对他们来说可读性还是非常强。
现在PLC还是以LAD SFC ST CFC 这一类为代表,也符合IEC标准的。如果哪一家PLC只有一种你说的SCL,怕是干不了几年在中国就只能关门了,这是由市场决定的。
cvlsam 说:
西门子之所以称为SCL而不是ST,是因为其编程语言指令表叫做STL,为了避免混淆,所以叫做SCL,其实就是其他厂家的ST语言。
“还是以 LAD SFC ST CFC 这一类为代表”,看到这句就说明您不太熟悉西门子了啊。
twtynijj 说:
嗯,西门子是不熟悉,刚出社会那会接触过。换工作环境后就没怎么接触。而且也只会用梯形图呀。
pqsh 说:
我觉得,5-10年这些语言都将消失。
人工智能,会听懂人的语言和思想。只要你说清楚,机器就会执行。当然,这样汉语会失去优势,因为汉语逻辑不严谨。
fsjnzhouyan 说:
现在有些智能家居就能接收中文语音控制家电。
vao 说:
梯形图,这种应该是主流趋势,不是你自己擅长什么就一定会主流,工人容易看懂的才好。
gaoyingchun 说:
工控人要失业了
ljj977 说:
在数据的处理方面,SCL还是要比LAD更具有它的它快捷性,计算的功能也是十分强大的。比如一个一维数组,你在使用时,感觉用LAD不难,但一个二维数组、一个多维数组你再使用LAD编程,难度就要大多了。
作为博图软件三大编程语言,SCL就是其中的标配,在原来300/400编程语言中,还没有列入标配行列之中。这也说明了西门子对它的重视,也给大家一个信号。因此了解它、学习它还是有必要的。
SCL是三大语言之一,说它是主流的编程语言不为过吧。
cvlsam 说:
用过AB的梯形图的话,觉得其他语言都可以不要了。
其实三大语言并不包括ST语言。
以前是梯形图,指令表和功能块,现在部分厂商取消了指令表,被SFC替代了。
当然,多学习一点没有错,不过不是以西门子SCL语言为基础,西门子的SCL语言离标准还有点距离,要用也应该从菲尼克斯的学起,人家才是完全符合IEC标准的。
wgefwgef 说:
越是菜鸟,越是水平差,越抵制ST。
逍遥的久鸣 说:
不管白毛黑猫抓到老鼠才是好猫,越简单明了越好,这么多年过去了,梯形图还是那么坚挺!
如果后期维护,现场水平不高,是不是就要失业了?
hnhyczj 说:
高级语言应当是发展的方向。
乌龟船长 说:
老外喜欢用SCL语言编程,它功能丰富。国人喜欢用梯形图编程,易于推广。
fuhuafeng72 说:
SCL确实好,但一些工控不适合。
ljj977 说:
LAD是PLC编程使用最广泛的语言,用户量最多,当然它是老大。但SCL也一定会壮大起来的,因为它有自己优势。这里并不是说LAD不好,但有时候,有些人用SCL去编程反而更方便,特别是熟悉高级语言(如C语言等)的人。这两种语言的使用肯定是因人而异的,喜好不同、知识背景不同,他们的选择就不同。
用LAD语言写的程序,复杂一点的话,一般的电工是看不懂的。说句实在话,LAD语言,当初就是为电工准备的编程语言。那时候只有逻辑控制。电工如果满足了一般的逻辑控制,数据处理程序的编写就成了一句空话,别人用LAD写出来的程序也不见得看得懂。
现在时代不同了,PLC不只是去处理逻辑控制,还多了好多些功能。老早之前,S7-200就明显看到它的结构化编程的思想。300/400,到现在的1200/1500,它们都在朝着更先进的方向发展,LAD的语言更是如此。现在的LAD就是面向开发人员、工程师、技术人员的。再说电工也分好几类吧,一般的电工在工厂里是接触不到编程这一块的。LAD现在也是也是十分强大。
SCL未来将成为主流的语言,并不意味着LAD不是主流语言。大家还是不要误解了我的观点。
SCL能作为标配的编程语言出现在博途中,说明了什么,不正是说明它的存在价值吗。
年轻的朋友们,如果感兴趣,学习一下SCL语言的程序编写,我觉得还是蛮好的。
liuxd6909 说:
但凡是主流都是被大多数人所认同 的,所接受的。
fuhuafeng72 说:
企业有三六九等,很多小作坊,你给他传统的继电器系统原理图都搞不明白,不要说英文类C的程序了。世界就是个矛盾体。
LAD确实是一种不错的编程方式,之于类C,形如安卓之于IOS。
zhanghaiw 说:
做逻辑SCL确实不怎么样,搞搞算法还可以。建议LAD+SCL的组合,感觉非常棒。
965528555 说:
做逻辑也是非常好的,算法更是好用。而且方便转换其他PLC
以上观点都非常棒!至于结论如何,小编自身觉得每个语言都有自己的可取之处,对于大型的主流化编程语言,是作为一个资深的电气人应该了解的内容,时刻把握行业潮流动态,才不会让自己处于被动状态。看了以上内容,你觉得呢?留言哦!
往期优秀文章回顾:
新手学西门子PLC,要从哪开始?「附PLC与电动机控制精品讲解」
相关问答
codesys能用scl语言吗?
CODESYS是一种PLC编程语言,而SCL是一种结构化文本语言。CODESYS支持多种编程语言,包括ST、CFC和SCL等。因此,CODESYS可以使用SCL语言进行编程。CODESYS是一种.....
plc编程和c语言区别?
PLC(可编程逻辑控制器)编程和C语言有以下一些区别:1.应用领域:PLC编程主要应用于工业自动化控制系统,用于控制和监控各种工业过程。而C语言是一种通用的编...
codesys和西门子哪个好用?
codesys好用。相比西门子动不动30G的软件,CODESYS以不到2G的存储却有超越博途的功能,不得不让人惊叹。CoDeSys是一种功能强大的PLC软件编程工具,它支持IEC...
什么是SIMOTION?
在运动控制方面,两者功能是相同的,比如调速、定位POS、控制力/转矩、液压轴、电子齿轮GEAR、电子凸轮CAM、快速测量输入MeasuringInput、快速输出OutputCAM、...
砼简支梁怎么计算配筋-jNflXL9oPlc的回答-懂得
梁正截面受弯承载力计算书1已知条件梁截面宽度b=250mm,高度h=500mm,受压钢筋合力点至截面近边缘距离a's=35mm,受拉钢筋合力点到截面近边缘距离as=...
西门子的TDC应用在大型控制系统能否取代DCS?-盖德问答-化工...
几个概念。。。1.tdc是工艺型控制器,主打高速的闭环回路(5ms以下周期的),运动控制,而非常规慢速的pid回路(50ms以上)。典型的应有有冶金行业的...
如何破解abb机器人模拟软件
[回答]AC500系统的构成CPUCPU有PM571、PM581和PM591三个不同的等级。而这不同等级的CPU均可用同一个编程软件使用5种不同编程语言进行编程。CPU上...
谁能帮助我!中型速冻冷库的要求和用途?
[回答]中型速冻冷库温度控制系统:大型海鲜冷库一般采用PLC编程控制,可以按自己的要求设定温度和湿度等等;小型海鲜冷库一般采用微电脑自动控制系统,该系统...
ABB ACH550变频器代理商有哪些?
[回答]ABB变频器可以咨询浙江东华信息控制技术有限公司,是ABB传动产品分销与授权服务提供商之一。主要销售ABB变频器、电机、PLC,是ABB传动产品分销与授权...