您现在的位置是:首页 > PLC技术 > PLC技术

STL编程语言状态位和二进制标志位的设置

来源:艾特贸易2017-06-05

简介数字功能对 CC0 、 CC1 、 OV 和 OS 状态位的影响如表 15-3 所示。特殊 STL 语句对 RLO 和 BR 状态位有影响。 表 15-3 设置状态位 1 . INT 和 DINT 计算的状态位 数据格式 INT 和 DINT 的算术功能设

数字功能对CC0CC1OVOS状态位的影响如表15-3所示。特殊STL语句对RLOBR状态位有影响。

15-3 设置状态位

设置状态位

设置状态位

1INTDINT计算的状态位

数据格式INTDINT的算术功能设置所有数字标志位(状态位)。计算结果为0时, CC0CC1都置为“0”。当计算结果为正时,CC0为“0”而CC1为“1”;当计算结果为负时,CC0为“1”而CC1为“0”。计算结果超出范围时,OVOS置位(请注意溢出时CC0CC1的其他含义)。0作为除数时,所有的数字状态位都将置为“1”。

2REAL计算的状态位

数字格式REAL的算术功能和数学功能设置所有的数字状态位。计算结果为0时,CC0CC1设置为“0”。计算结果为正时,CC0为“0”而CC1为“1”;计算结果为负时,CC0为“1”而CC1为“0”。计算结果超出范围时,OVOS均置位(请注意溢出时CC0CC1的其他含义)。所有的数字状态位都置为“1”用于指示无效REAL数。

REAL数要降低精度时,REAL数将做非标准化处理,指数为0;非标准化REAL数的绝对值小于1.175494×10-38S7-300 CPU (CPU 318除外)将非标准化REAL数当成0处理。

3.转换功能中的状态位

实现转换功能时,补码对各数字状态位都有影响。此外,当出错(即超出范围或出现无效REAL数)时,下列的转换功能将OVOS置位:

ITBDTB: INT转换成BCD

RND+RND-RNDTRUNC: REAL转换成DINT

4.比较功能状态位

比较功能设置CC0CC1状态位。执行比较功能的标志位是独立设置的,它仅与比较功能的两个值有关。REAL比较用来检测有效的REAL数。

5.字逻辑运算和移位功能状态位

字逻辑运算和移位功能将设置CC0CC1状态位。OV将复位。

6RLO的置位和复位

SETRLO设置为“1”,CLRRLO设置为“0”。与此类似,STA状态位也被设置为“1”或“0”。这些语句都是无条件执行的。

SETCLR也将复位OR/FC状态位,也就是,执行完SETCLR之后,一个新的逻辑运算开始了下一次的扫描(检测)。用户可以通过SET指令编程实现二进制地址的绝对置位和复位。

SET  ;

S   M8.0;  //置位存储器位

R    M8.1  //复位存储器位

CLR  ;

S    C1;    //复位用于“置位计数器”的边沿存储器位

RLO的直接置位和复位对定时器和计数器同样有用。定时器和计数器启动时,RLO需从“0”变为“1”(请注意,亦需要上升沿来启用)。主要数字逻辑运算的编程中,RLO通常不定义,例如位于检测数字标志位(状态位)的跳转功能之后。这里用户可以使用SETCLR去处理RLO定义的置位和复位或RLO变化的编程。

7BR置位和复位

通过SAVE用户可以将RLO存储在二进制结果中。SAVE将信号状态从RLO传送到BR状态位。SAVE无条件执行,不影响其他状态位。

SET    ;

SAVE  ;    //BR设置为“1

AN    OV;

SAVE ;    //在溢出上把BR设置为“0