1. 首页 > 科技

西门子stl指令表?(西门子STL指令)

西门子stl指令表?(西门子STL指令)

西门子STL指令

set 将rlo置1

save 将rlo的值保存到br中。

目的:stl编写必须对br位进行管理。

西门子stl编程手册上明确说明,请仔细阅读。

西门子PLC中的STL和SCL指令

STL有点类似汇编语言,和机器码对应,无论哪种语言写的PLC程序都可以转换成STL查看,所以掌握基本的STL指令和语法是很有帮助的。另外STL直接操作寄存器,实现同样功能时可以减少运算量和寄存器调用次数,并且只关心数据类型的长度(例如不区分int和word),减少了数据类型转换,总的来说执行效率高,但实现复杂运算和逻辑时编程繁琐。

SCL类似于高级语言Pascal、C之类,可以通过简单的语句实现复杂的功能,逻辑清晰,在复杂数据类型的处理上也非常方便,虽然理论上执行效率比STL低,但实际一般不会有明显的影响。

另外,在同一个FC或FB中,STL可以和梯形图混合使用,而SCL编写的FC或FB不能混合其他语言

西门子STL指令

举例说明

A M0.0

=Q0.0

如果M0.0=OFF 则 ROL=OFF 那么 Q0.0=ROL=OFF

如果M0.0=ON 则 ROL=ON 那么Q0.0=ROL=ON

西门子plc 的STL语言求解

读取:DB1.DBD4

赋值给:#TEMP3(这个是临时变量,只在该块有效,且无法跳转)

调用:"TIME_TCK"

RET_VAL:=DB1.DBD4 (意思就是"TIME_TCK" 块有个引脚是RET_VAL,把DB1.DBD4赋值给这个引脚,这个块可以使系统块,也可以是自己写的)

读取:DB1.DBD 4

读取: #TEMP3

执行双整数相减指令(就是DB1.DBD 4减去 #TEMP3 )

读取:T#0MS

<D (执行双整数小于比较指令)

JC M003(如果上一步的结果是1,执行跳转指令跳转到标签M003处,如果不是1,继续往下走)

TAK (前边两个读取结果分别赋值给了两个寄存器,执行数据互换)

T DB1.DBW 8(赋值给DB1.DBW8)

DTR (双整转换为实数,也叫浮点数)

L 1.000000e+003(读取常量1000.0)

/R (执行实数相除指令)

T DB1.DBD 10(赋值给DB1.DBD 10)

M003: NOP 0(JC M003那一步如果执行了的话就跳到这里,然后这一步的命令是啥也不执行)