[资料] 西门子PLC的STL语言编程基础知识资料说明
1192 查看
3 回复
 楼主 | 发布于 2019-05-18 | 只看楼主
分享到:

在学习STL语言的编程方式之前首先要了解西门子STL语言的最基本的知识:

状态字用于表示CPU执行指令时所具有的状态。
下列情况都将影响状态字的变化:
1、一些指令是否执行或以何方式执行,可能取决于状态字中的某些位;
2、执行指令时也可能改变状态字中的某些位;
3、也能在位逻辑指令或字逻辑指令中访问并检测他们;

状态字的结构如下:
FC
首位检测位:若FC=0,表明一个梯形逻辑网络的开始,或第一条指令。CPU对第一条指令的检测,产生的结果直接保存在状态字的二次检测存放在RLO中的01被称为首位检测结果。FC位在逻辑串的开始总是0,在逻辑串指令位为1,输出指令与逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将FC清零。

RLO
逻辑操作结果:该位存储逻辑指令结果。在逻辑串中,RLO位的状态能表示有关信号流的信息。RLO的状态为1,表示有信号流(通),0表示无信号流(断)。可用RLO触发跳转指令;
STA
状态位,状态位不能用指令检测,它只是在程序测试中被CPU解释并使用,如果一条指令是对存储区操作的位逻辑指令,则无论是对该位读或写操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA位没有意义,此时它总被置位1

OR
或位,在先逻辑与后逻辑或的逻辑串中,OR位暂存逻辑与的操作结果,以便进行后面的逻辑或运算。其他指令将OR位清零;
OS
溢出状态保持位:OV被置1时,OS也被置1OV被清零时,OS仍保持。所以它保存了OV位,可以用于指明在先前的一些指令执行中是否产生过错误。
只有下面的指令才能复位OS位:JOSOS=1时跳转),块调用指令和块结束指令;
OV
溢出位,溢出位为1,表明一个算术运算或浮点数比较指令执行时出现错误(错误:溢出,非法操作,不规范格式)。后面的算术运算或浮点数比较指令的结果正常的话,OV位就被清零。
CC0&CC1
称为条件码1和条件码0.这两位结合起来用于表示在累加器1中产生的算术运算或逻辑运算结果与0的大小关系。比较指令的执行结果或移位指令的移出位状态。

BR
二进制结果位:它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确(异常)。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。
LAD的方块指令中,BR位与EN0有对应关系,用于表示功能块指令是否被正确执行:如果执行出现了错误,则BR0EN0也为0;如果功能块被正确执行,BR位为1EN0也为1
在用户编写的FBFC程序中,必须对BR进行管理,当功能块正确运行后使BR1,否则使其为0
使用STL编程,指令SAVE,可将RLO的值存入BR中,从而达到管理BR位的目的。当FBFC执行无错误的时候,使RLO1,并存入BR,否则,在BR中存入0


+D:将累加器1和累加器2中的值累加,放入到累加器1中;
-D:可以将累加器2中的内容减去累加器1中的内容,结果保存在累加器1
TAR1:将寄存器1中内容送入到累加器1
LAR1:将累加器1中的内容装入地址寄存器1
T:将累加器 1 中的内容传送(复制)到目标地址
L:可以在累加器 1 的原有内容保存到累加器 2 并将累加器 1 置为&0&之后,将寻址字节、字或双字装入累加器 1 中;

JCN  RLO=0 JUMP

JNB  RLO=0 BR=1  JUMP

JU    无条件 JUMP

JC   RLO=1 JUMP

JN    非零 JUMP

JP     正   JUMP

 


本帖有更多资源,需 登录 才可以下载,没有帐号?立即 注册

(1 ) (0 )
回复 举报

回复于 2019-05-20 沙发

谢谢分享
(0 )
评论 (1) 举报

楼主 | 回复于 2019-05-27 2#

自己支持下
(0 )
评论 (0) 举报

回复于 2023-05-26 3#

谢谢分享
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部