[西门子] STL,ST,SCL等PLC高级编程语言介绍

[复制链接]
查看21770 | 回复0 | 2024-6-5 10:42:18 | 显示全部楼层 |阅读模式




概念清晰,逻辑思路清晰,是搞一切工程技术的必备条件。从事工业控制,如果你对概念是模糊的,或是一知半解的,那么,你永远无法深刻理解各种知识,你永远都会疲于奔命!!就像很多棒槌说的,怎么我学了西门子S7-200SMART,再去学习西门子的S7-1200像换了一个品牌,还要重新学??所以,明确各种概念,是你成为大神的必备条件。

虽然很多梯形图的铁杆粉丝进行了一轮又一轮的拉锯战,但是发现很多然连ST语言到底是什么都搞不清,喜欢ST语言的人也搞不太清什么是ST语言,今天就跟大家科普一下。

ST,是STRUCT TEXT 的缩写,是IEC61131-3标准制定的编程语言!!从字面理解,是结构化文本语言!很明显,它是为结构化编程而诞生的!!它以计算机的Pascal语言为基础,针对工业控制进行了一系列的优化和修改!!也可以认为它是根据C语言来的,但这种说法不太严谨,因为ST语言是不区分大小写的,而C语言严格区分大小写。这些都是根据工业控制的实际情况而制定的。

比如, Axis_Enable 和 AXIS_ENABLE 这两个变量,在ST语言中是没任何区别的,但在C语言中,可是完全不一样的。

提到工业4.0,提到工业自动化,西门子是一个绕不开的坎!!总之,它在工业自动化领域,就是泰山北斗,少林武当!而西门子也是非常强势的,它推出的博途软件平台,并不是完全遵守IEC61131-3标准,而是略有修改,就好比武林大佬们自创武功或是修改前辈留下的武功。西门子推出了自己的编程语言,SCL(Structured Control Language)语言,也就是结构化控制语言,它其实和IEC标准制定的ST语言是一样的,只是在个别语法和功能块(FB)调用上,略有不同!!最需要主要的比如

IF

语句 ;

END_IF;

在西门子的SCL中,END_IF是要加分号的,而在标准的ST语言中,是不用的。

所以,ST和SCL是一回事!!

而STL,是西门子在STEP7时代推出的语言,它不是STRUCT TEXT LANGUAGE的缩写,所以,它和ST语言完全没关系。STL语言是一种汇编语言,是面向机器底层的语言,可以直接操作寄存器,可读性不强,和80C51单片机的机器语言是一个层面。所以,它是一种低级语言,而ST,SCL都是中高级语言。

越高级的语言,可读性越好,越侧重于变量和算法,和硬件无关,而越低级的语言,越侧重于寄存器地址,和硬件关系紧密,并可以直接操作硬件,但可读性差,执行效率高。现在,西门子的博途平台是主推SCL的。

所以,STL和ST,SCL完全不是一回事,不可混为一谈,不要看上去都MOVE,都是英文,就认为是同一种东西!!这种思维方式,注定你会概念混乱的,而概念混乱,是从事工控行业的大忌!!

还有一种语言IL,称之为指令表,它其实是梯形图的一种描述,是可以和梯形图相互转换的,根本不是一种编程语言,严格说来,它只是梯形图的一种表现形式。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则