您现在的位置是:首页 > PLC技术 > PLC技术
STL编程语言状态位和二进制标志位的设置
来源:艾特贸易2017-06-05
简介数字功能对 CC0 、 CC1 、 OV 和 OS 状态位的影响如表 15-3 所示。特殊 STL 语句对 RLO 和 BR 状态位有影响。 表 15-3 设置状态位 1 . INT 和 DINT 计算的状态位 数据格式 INT 和 DINT 的算术功能设
数字功能对CC0、CC1、OV和OS状态位的影响如表15-3所示。特殊STL语句对RLO和BR状态位有影响。
表15-3 设置状态位
1.INT和DINT计算的状态位
数据格式INT和DINT的算术功能设置所有数字标志位(状态位)。计算结果为0时, CC0和CC1都置为“0”。当计算结果为正时,CC0为“0”而CC1为“1”;当计算结果为负时,CC0为“1”而CC1为“0”。计算结果超出范围时,OV和OS置位(请注意溢出时CC0和CC1的其他含义)。0作为除数时,所有的数字状态位都将置为“1”。
2.REAL计算的状态位
数字格式REAL的算术功能和数学功能设置所有的数字状态位。计算结果为0时,CC0和CC1设置为“0”。计算结果为正时,CC0为“0”而CC1为“1”;计算结果为负时,CC0为“1”而CC1为“0”。计算结果超出范围时,OV和OS均置位(请注意溢出时CC0和CC1的其他含义)。所有的数字状态位都置为“1”用于指示无效REAL数。
当REAL数要降低精度时,REAL数将做非标准化处理,指数为0;非标准化REAL数的绝对值小于1.175494×10-38。S7-300 CPU (CPU 318除外)将非标准化REAL数当成0处理。
3.转换功能中的状态位
实现转换功能时,补码对各数字状态位都有影响。此外,当出错(即超出范围或出现无效REAL数)时,下列的转换功能将OV和OS置位:
●ITB和DTB: INT转换成BCD。
●RND+、RND-、RND和TRUNC: REAL转换成DINT。
4.比较功能状态位
比较功能设置CC0和CC1状态位。执行比较功能的标志位是独立设置的,它仅与比较功能的两个值有关。REAL比较用来检测有效的REAL数。
5.字逻辑运算和移位功能状态位
字逻辑运算和移位功能将设置CC0和CC1状态位。OV将复位。
6.RLO的置位和复位
SET将RLO设置为“1”,CLR将RLO设置为“0”。与此类似,STA状态位也被设置为“1”或“0”。这些语句都是无条件执行的。
SET和CLR也将复位OR和/FC状态位,也就是,执行完SET和CLR之后,一个新的逻辑运算开始了下一次的扫描(检测)。用户可以通过SET指令编程实现二进制地址的绝对置位和复位。
SET ;
S M8.0; //置位存储器位
R M8.1 //复位存储器位
CLR ;
S C1; //复位用于“置位计数器”的边沿存储器位
RLO的直接置位和复位对定时器和计数器同样有用。定时器和计数器启动时,RLO需从“0”变为“1”(请注意,亦需要上升沿来启用)。主要数字逻辑运算的编程中,RLO通常不定义,例如位于检测数字标志位(状态位)的跳转功能之后。这里用户可以使用SET和CLR去处理RLO定义的置位和复位或RLO变化的编程。
7.BR置位和复位
通过SAVE用户可以将RLO存储在二进制结果中。SAVE将信号状态从RLO传送到BR状态位。SAVE无条件执行,不影响其他状态位。
SET ;
SAVE ; //把BR设置为“1”
…
AN OV;
SAVE ; //在溢出上把BR设置为“0”
点击排行
