怎样理解状态字(status word)

合集下载

怎样理解状态字(status word)

怎样理解状态字(status word)

FAQ(常见问题)Case No.:产品类型:STEP 7 Software问题:怎样理解状态字(status word)?图表 11. /FC,首次检测位✓状态字的第0位——“/FC”称为“首次检测位”,控制一串逻辑指令的顺序。

“/FC”位信号状态为“0”,说明用户程序中从这一点开始下面的逻辑指令,作为新的逻辑串(换而言之:在每一个逻辑串开始时,“/FC”位总为0)。

✓每一个逻辑指令检测“/FC”位的状态,就像指令检测它的寻址接点一样,决定了指令对其寻址状态、信号状态检测结果的存放位置。

如果“/FC”位的状态为0,逻辑指令将结果存在(逻辑操作的结果位)“RLO”中,并将“/FC”位的状态置为1。

这一过程,称为“首次检测”。

经过首次检测存放在“RLO”中的0或者1,被称为“首次检测的结果”。

✓在一个逻辑串中,当CPU完成逻辑串中的第一条指令以后,“/FC”位的状态一直为1。

当“/FC”位为1时,指令操作将其寻址接点的“检测结果状态”与先前存放在“RLO”中的状态结合起来。

✓一串逻辑指令总是以一个输出指令(如:S、R、=),或者一个与逻辑操作结果相关的条件跳转指令(JC),或者一个嵌套指令[ 如:A(、O(、X(、AN(、ON(、XN( ] 作为结束。

这些输出指令、跳转指令、嵌套指令将“/FC”位复位至0。

2. RLO,逻辑操作的结果✓状态字的第1位——“RLO”称为“逻辑操作的结果(Result of logicoperation)”,存放一个位逻辑指令,或者算术比较指令的结果。

✓例如,在一串“位逻辑指令”中的第二条指令,检测寻址接点的信号状态,并且产生一个“0或者1的结果”。

然后,指令将这一“0或者1的结果”和状态字中的“RLO”值进行布尔逻辑运算,结果代替上一次的“RLO”值,并且存放在状态字的“RLO”中。

✓每一个接下来逻辑串中的指令,均是根据这两个值(一个值为“指令检测寻址接点所产生的结果”,另一个值为“当前的RLO”)进行布尔逻辑运算操作。

解释psw=8fh的具体含义

解释psw=8fh的具体含义

1. 介绍PSW=8FH的背景和起源PSW=8FH是计算机领域的术语,源自于X86架构的CPU。

在这个术语中,PSW代表程序状态字(Program Status Word),而8FH则代表一个十六进制的数值。

在讨论PSW=8FH的具体含义之前,我们需要先了解PSW在计算机系统中的作用以及8FH的数值所代表的含义。

2. PSW在计算机系统中的作用程序状态字(PSW)是一种用来存储程序状态信息的寄存器,它记录了CPU在执行程序时的各种状态和标志位,帮助CPU进行条件判断,控制程序执行流程。

在X86架构的CPU中,PSW通常包括零标志、进位标志、符号标志、溢出标志等,这些标志位可以影响程序的运行结果。

3. 8FH的含义在十六进制表示中,8FH代表的是一个8位的二进制数值,即xxx。

在计算机系统中,这个数值通常用来表示各种状态信息和标志位。

具体到PSW=8FH,这个数值代表了程序状态字中各种标志位的具体配置,从而影响了程序的执行结果。

4. PSW=8FH的具体含义PSW=8FH代表了一种特定的程序状态字配置,它可能在特定的计算机系统或特定的应用场景中产生特定的效果。

具体来说,PSW=8FH可能代表了特定的条件判断结果、特定的标志位状态,或者特定的程序执行状态。

5. PSW=8FH的使用场景根据X86架构的CPU规范,PSW=8FH可能被用于特定的指令集、特定的系统调用或特定的应用程序中。

在一些特定的条件判断、逻辑运算或算术运算中,PSW=8FH可能会被设置或需要被检查,以实现特定的程序控制流程或逻辑执行。

6. 总结在计算机系统中,PSW=8FH代表了一种特定的程序状态字配置,它通过设置各种标志位的状态来影响程序的执行结果。

在X86架构的CPU中,PSW=8FH可能会在特定的条件判断、逻辑运算或算术运算中发挥作用,帮助程序实现预期的逻辑控制或执行流程。

对于计算机领域的专业人士来说,理解并掌握PSW=8FH的具体含义和使用场景是极为重要的。

什么是状态字

什么是状态字
无溢出
整数算术运算
有溢出
浮点数算术运算
有溢出
0
0
结果=0
整数加时产生负范围溢出
平缓下溢
0
1
结果<0
乘时负范围溢出;加、减、取负时正溢出
负范围溢出
1
0
结果>0
乘、除时正溢出;加、减时负溢出
正范围溢出
1
1

在除时除数为0
非法操作
4.4.2.2比较、移位和循环移位、字逻辑指令后的CC1和CC0
CCl
CCO
状态字的位2称为状态位。状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。如果一条指令是对存储区操作的位逻辑指令,则无论是对该位的读或写操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA位没有意义,此时它总被置为1。
(4)或位(OR)
状态字的位3称为或位(OR)。在先逻辑“与”后逻辑“或”的逻辑串中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。其它指令将OR位清0。
什么是状态字?状态字的作用——西门子S7系列PLC
点击:发布日期:2007-7-26 13:41:00进入论坛
状态字用于表示CPU执行指令时所具有的状态。一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位,也能在位逻辑指令或字逻辑指令中访问并检测他们。状态字的结构如下:
比较指令
移位和循环指令
字逻辑指令
0
0
累加器2=累加器1
移位=0
结果=0
0
1
累加器2<累加器1


1
0
累加器2>累加器1

结果≠0

STATUS状态字

STATUS状态字

PIC单片机中程序状态字寄存器STATUS的各位含义如下:
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
IRP RP1 RP0 TO PD Z DC C
bit0/C: 进位/借位标志位。

被动参数
0:执行加法(或减法)指令时,最高位无进位(或有借位)
1:执行加法(或减法)指令时,最高位有进位(或无借位)
bit1/DC: 辅助进位/借位标志位。

(也称半进位标志位)
0:执行加法(或减法)指令时,低4位向高4位无进位(或者有借位)
1:执行加法(或减法)指令时,低4位向高4位有进位(或者无借位)bit2/Z: 零标志位。

被动参数
0:运算结果不为0
1:运算结果为0
bit3/PD: 降低功耗标志位。

被动参数。

0:执行sleep指令以后
1:上电复位,或者看门狗复位以后
bit4/T0: 超时标志位,被动参数
0:看门狗发生超时
1:上电或者看门狗清零指令或者sleep指令执行以后。

bit5--bit6:RAM数据存储体选择位,仅用于直接寻址,主动参数
RP1,RP0=0,0 选中体0
RP1,RP0=0,1 选中体1
RP1,RP0=1,0 选中体2
RP1,RP0=1,1 选中体3
bit7:RAM数据存储体选则位,仅用于间接寻址,主动参数
0:选择数据存储器低体位:即体0(FSR的bit7=0)或体1(FSR的bit7=1) 1:选择数据存储器高体位:即体2(FSR的bit7=0)或体3(FSR的bit7=1)。

变频器控制字状态字

变频器控制字状态字

西门子变频器与PLC 通讯时,PLC 如何给出控制字和主给定H-字体大小:I I 2010-02-11 12:51 - 工控网曾有过关于主题的文章,很精华,没找到链接,抱歉!下面给您 一篇我曾摘自工控网的技术文章:1.通讯方式的设定:PPO 4,这种方式为0 PKW/6 PZD,输入输出都为6个PZD,(只需要在STEP 理设置,变频器不需要设置);PROFIBUS 勺通讯频率在变频器里也不需要设置,PLC 方面默认为.在P60=7设置下,设置P53=3,允许CBP (PROFIBU 操作. 设置变频器的PROFIBU 地址.2.设置第一与第二个输入的PZD 为PLC 给变频器的控制字,其余四个输入PZD 这里没有用到.设置第一与第二个输出的PZD 为变频器给PLC 的状态字,设置第三个 为变频器反馈给PLC 的实际输出频率的百分比值, 第四个为变频器反馈给PLC 的实际输出电流的百分比值,其余两个输 出PZD 这里没有用到.给变频器的第一个PZD 存储在变频器里的K3001字里.K3001有16位,从高到底为3115到3100(不是到.变频器的参数 P554为1时变频器启动为 0时停止,P571控制正 转,P572控制反转.如果把P554设置等于3100,那么K3001的位3100就控制变频器的启 动与停止,P571设置等于3101则3101就控制正转,I阅读:143 - : 3P572设置等于3102则3102就控制反转.(变频器默认P571与P572 都为1时正转,都为0时为停止).经过这些设置后K3001就是PLC给变频器的第一个控制字.此时K3001的3100到3115共16位除了位3110控制用途都不是固定的,所以当设置P554设置等于3101时则3101可以控制启动与停止,P571等于3111时则3111控制正转,等等.K3001的位3110固定为“控制请求”,这位必须为1变频器才能接受PLC的控制讯号,所以变频器里没有用一个参数对应到这个位必须保证PLC发过来第一个字的BIT 10为1.这里设置为:P554=3100,P571=3101,P572=3102,当PLC 发送W#16#0403寸(既0000,0100,0000,0011)变频器正转.给变频器的第二个PZD存储在变频器里的K3002字里.变频器的参数P443存放给定值.如果把参数P443设置等于K3002,那么整个字K3002就是PLC给变频器的主给定控制字.PLC发送过来的第二个字的大小为0到16384(十进制),(对应变频器输出的0到100%),当为8192时,变频器输出频率为25Hz.5.变频器的输出给PLC的第一个PZD字是,第二个PZD字是,等等.要想把PLC接收的第一个PZD用作第一个状态字,需要在变频器里把=0032(既字K0032),要想把PLC接收的第二个PZD用作第二个状态字,需要在变频器里把=0033(既字K0032).(K0032的BIT 1为1时表示变频器准备好,BIT 2表示变频器运行中,等等.)(变频器里存贮状态的字为K0032,K0033等字,而变频器发送给PLC的PZD是,等)在变频器里把=0148,在变频器里把=0022,则第三个和第四个变频器PZD分别包含实际输出频率的百分比值和实际输出电流的百分比值6.程序:(建立DB100,调用SFC14,SFC15,6SE7的地址为512既W#16#200)A.读出数据CALL "DPRD DAT"LADDR :=W#16#200RET VAL:=MW200RECORD :二P# BYTE 12读取12 个BYTE)NOP 0B.发送数据CALL "DPWR DAT"LADDR :二W#16#200RECORD :二P# BYTE 12写入12 个BYTE)RET VAL:=MW210NOP 0C. L "DB100".DBW0T "MW20"NOP 0D. L "DB100".DBW2T "MW22"NOP 0则:控制启动与停止;控制正转;控制反转;变频器READY;变频器FAULT.不同的通讯方式有不同的通讯连接虽然先前也会一部分,但是楼主的详细说明,个人感觉,还是细致入微的。

怎样理解状态字(status word)

怎样理解状态字(status word)

FAQ(常见问题)Case No.:产品类型:STEP 7 Software问题:怎样理解状态字(status word)?图表 11. /FC,首次检测位✓状态字的第0位——“/FC”称为“首次检测位”,控制一串逻辑指令的顺序。

“/FC”位信号状态为“0”,说明用户程序中从这一点开始下面的逻辑指令,作为新的逻辑串(换而言之:在每一个逻辑串开始时,“/FC”位总为0)。

✓每一个逻辑指令检测“/FC”位的状态,就像指令检测它的寻址接点一样,决定了指令对其寻址状态、信号状态检测结果的存放位置。

如果“/FC”位的状态为0,逻辑指令将结果存在(逻辑操作的结果位)“RLO”中,并将“/FC”位的状态置为1。

这一过程,称为“首次检测”。

经过首次检测存放在“RLO”中的0或者1,被称为“首次检测的结果”。

✓在一个逻辑串中,当CPU完成逻辑串中的第一条指令以后,“/FC”位的状态一直为1。

当“/FC”位为1时,指令操作将其寻址接点的“检测结果状态”与先前存放在“RLO”中的状态结合起来。

✓一串逻辑指令总是以一个输出指令(如:S、R、=),或者一个与逻辑操作结果相关的条件跳转指令(JC),或者一个嵌套指令[ 如:A(、O(、X(、AN(、ON(、XN(] 作为结束。

这些输出指令、跳转指令、嵌套指令将“/FC”位复位至0。

2. RLO,逻辑操作的结果✓状态字的第1位——“RLO”称为“逻辑操作的结果(Result of logic operation)”,存放一个位逻辑指令,或者算术比较指令的结果。

✓例如,在一串“位逻辑指令”中的第二条指令,检测寻址接点的信号状态,并且产生一个“0或者1的结果”。

然后,指令将这一“0或者1的结果”和状态字中的“RLO”值进行布尔逻辑运算,结果代替上一次的“RLO”值,并且存放在状态字的“RLO”中。

✓每一个接下来逻辑串中的指令,均是根据这两个值(一个值为“指令检测寻址接点所产生的结果”,另一个值为“当前的RLO”)进行布尔逻辑运算操作。

PSW状态字百度百科

PSW状态字百度百科
程序状态字
PSW即程序状态字(有些教材也叫程序状态寄存器),Program Status Word
程序状态寄存器PSW是计算机系统的核心部件——控制器的一部分,PSW用来存放两类信息:
一类是体现当前指令执行结果的各种状态信息,称为状态标志,
如有无进位(CF位),有无溢出(OF位),
NV UP DI PL NZ NA PO NC依次表示OF DF IF SF ZF AF PF CF都为0.
PSW各位的定义如下:
Cy(PSW.7):即PSW的D7位,进位、借位标志。 进位、借位CY=1;否则CY=0.
AC(PSW.6):即PSW的D6位,辅助进位、借位标志。 当D3向D4有借位或进位时,AC=1;否则AC=0.
,即反映指令执行结果的一些特征信息。在debug程序中,可以使用R命令来查看PSW的值,
除了TF没有显示之外,其它8个标志的值显示方式如下:
标志名
设置 nv(清除) ov(溢出)
方向 dn(减) up(增)
中断Байду номын сангаас ei(启用) di(禁用)
F0(PSW.5及PSW.1):即PSW的D5位,用户标志位;
RS1及RS0(PSW.4及PSW.3):即PSW的D4、D3位, 寄存器组选择控制位;
OV(PSW.2):溢出标志。有溢出OV=1,否则OV=0;
F1(PSW·1):保留位,无定义;
P(PSW·0):奇偶校验标志位,由硬件置位或清0;存在ACC中的运算结果有奇数个1时P=1,否则P=0。
结果正负(SF位),结果是否为零(ZF位),
奇偶标志位(PF位)等;
另一类是存放控制信息,称为控制状态,

何为状态字

何为状态字
(7)条件码1(CC1)和条件码0(CC0)
状态字的位7和位6称为条件码1和条件码0。这两位结合起来用于表示在累加器1中产生的算术运算或逻辑运算结果与0的大小关系;比较指令的执行结果或移位指令的移出位状态。详见表4.4.2.1和表4.4.2.2。
4.4.2.1算术运算后的CC1和CC0
CCl
CCO
算术运算
状态字
状态字用于表示CPU执行指令时所具有的状态。一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位,也能在位逻辑指令或字逻辑指令中访问并检测他们。状态字的结构如下:
31……………9 8 7 6 5 4 3 2 1 0
BR
CC1
CC0
OS
OV
OR
STA
RLO
无溢出
整数算术运算
有溢出
浮点数算术运算
有溢出
0
0
结果=0
整数加时产生负范围溢出
平缓下溢
0
1
结果<0
乘时负范围溢出;加、减、取负时正溢出
负范围溢出
1
0
结果>0
乘、除时正溢出;加、减时负溢出
正范围溢出
1
1

在除时除数为0
非法操作
4.4.2.2比较、移位和循环移位、字逻辑指令后的CC1和CC0
CCl

状态字的位2称为状态位。状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。如果一条指令是对存储区操作的位逻辑指令,则无论是对该位的读或写操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA位没有意义,此时它总被置为1。
(4)或位(OR)
状态字的位3称为或位(OR)。在先逻辑“与”后逻辑“或”的逻辑串中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。其它指令将OR位清0。

Siemens S7系列PLC的状态字

Siemens S7系列PLC的状态字

Siemens S7系列PLC的状态字状态字用于表示CPU执行指令所具有的状态。

一些指令是否执行或以何方式执行可能取决于状态字的某些位;执行指令时也可能改变状态字的某些位,也状态字的位0称为首位检测位。

若/FC位状态为0,则表明一个梯形逻辑网络的开始,或指令为逻辑串的第一条指令。

CPU对逻辑串第一条指令的检测(称为首位检测)产生的结果直接保存在状态字的RLO位中,经过首次检测存放在RLO中的0或1被称为首位检测结果。

/FC位在逻辑串的开始时总是0,在逻辑串指令执行过程中/FC位为1,输出指令或与逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将/FC清0。

(2)逻辑操作结果(RLO)状态字的位1被称为逻辑操作结果RLO(Result of Logic Operation)。

该位存储逻辑指令或算术比较指令的结果。

在逻辑串中,RLO位的状态能够表示有关信号流的信息。

RLO的状态为1,表示有信号流(通);为0,表示无信号流(断)。

可用RLO触发跳转指令。

(3)状态位(STA)状态字的位2称为状态位。

状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。

如果一条指令是对存储区操作的位逻辑指令,则无论是对该位的读或是写操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA位没有意义,此时它总被置为1。

(4)或位(OR)或位在先逻辑“与”后逻辑“或”的逻辑串汇总,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。

其他指令将OR清0。

(5)溢出位(OV)溢出位被置1,表明一个算术运算或浮点数比较指令执行时出现错误(错误:溢出、非法操作、不规范格式)。

后面的算术运算或浮点数比较指令执行结果正常的话OV位就清0。

(6)溢出状态保持位(OS)溢出状态保持位(或称为存储溢出位),OV被置1时OS也被置1;OV 被清0时OS仍保持。

所以它保存了OV位,可用于指明在先前的一些指令执行中是否产生过错误。

S7-300状态字

S7-300状态字

Siemens S7系列PLC的状态字状态字用于表示CPU执行指令所具有的状态。

一些指令是否执行或以何方式执行可能取决于状态字的某些位;执行指令时也可能改变状态字的某些位,也状态字的位0称为首位检测位。

若/FC位状态为0,则表明一个梯形逻辑网络的开始,或指令为逻辑串的第一条指令。

CPU对逻辑串第一条指令的检测(称为首位检测)产生的结果直接保存在状态字的RLO位中,经过首次检测存放在RLO中的0或1被称为首位检测结果。

/FC位在逻辑串的开始时总是0,在逻辑串指令执行过程中/FC位为1,输出指令或与逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将/FC清0。

(2)逻辑操作结果(RLO)状态字的位1被称为逻辑操作结果RLO(Result of Logic Operation)。

该位存储逻辑指令或算术比较指令的结果。

在逻辑串中,RLO位的状态能够表示有关信号流的信息。

RLO的状态为1,表示有信号流(通);为0,表示无信号流(断)。

可用RLO触发跳转指令。

(3)状态位(STA)状态字的位2称为状态位。

状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。

如果一条指令是对存储区操作的位逻辑指令,则无论是对该位的读或是写操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA位没有意义,此时它总被置为1。

(4)或位(OR)或位在先逻辑“与”后逻辑“或”的逻辑串汇总,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。

其他指令将OR清0。

(5)溢出位(OV)溢出位被置1,表明一个算术运算或浮点数比较指令执行时出现错误(错误:溢出、非法操作、不规范格式)。

后面的算术运算或浮点数比较指令执行结果正常的话OV位就清0。

(6)溢出状态保持位(OS)溢出状态保持位(或称为存储溢出位),OV被置1时OS也被置1;OV 被清0时OS仍保持。

所以它保存了OV位,可用于指明在先前的一些指令执行中是否产生过错误。

模态代码名词解释

模态代码名词解释

模态代码名词解释模态代码是指在计算机科学和软件工程领域中用于描述、定义和规范系统行为的一种方法。

它是一种建模技术,用于描述系统在不同状态和事件条件下的行为,以及系统如何响应这些条件和事件。

下面是对模态代码中常用的术语和概念的详细解释。

1. 状态(States):状态是指系统或对象所处的一种特定情况或条件。

在模态代码中,状态用于描述系统的属性和特征。

状态可以是离散的或连续的,可以是简单的或复杂的。

状态可以通过变量或属性来表示,例如布尔变量、整数变量、枚举类型等。

2. 事件(Events):事件是指系统中发生的特定行为或条件。

事件可以是内部事件,如系统的状态改变,也可以是外部事件,如用户的输入或外部环境的变化。

事件通常会导致系统的状态发生变化或触发系统的响应。

3. 转换(Transitions):转换是指系统从一个状态转移到另一个状态的过程。

转换可以是自动的,也可以是由事件触发的。

转换可以包含条件和动作。

条件指定了触发转换的前提条件,而动作指定了在转换发生时要执行的操作。

4. 约束(Constraints):约束是指对系统行为的限制和规定。

约束用于约束系统在特定状态或事件下的行为和转换。

约束可以包括前置条件(preconditions)和后置条件(postconditions)。

前置条件指定了转换发生之前必须满足的条件,后置条件指定了转换发生后保证满足的条件。

5. 规约(Specifications):规约是对系统行为的正式定义和描述。

规约用于描述系统的状态、事件、转换和约束,并规定了系统的行为和性质。

规约可以使用形式化语言编写,例如基于状态机的规约语言(如Lustre、Promela)或基于逻辑的规约语言(如Z、TLA+)。

6. 状态机(State Machine):状态机是一种用于描述系统行为的数学模型。

状态机由一组状态、一组事件和一组转换组成。

状态机可以是有限状态机(Finite State Machine,FSM)或无限状态机(Infinite State Machine)。

怎样理解状态字(status word)

怎样理解状态字(status word)

FAQ(常见问题)Case No.:产品类型:STEP 7 Software问题:怎样理解状态字(status word)?图表 11. /FC,首次检测位✓状态字的第0位——“/FC”称为“首次检测位”,控制一串逻辑指令的顺序。

“/FC”位信号状态为“0”,说明用户程序中从这一点开始下面的逻辑指令,作为新的逻辑串(换而言之:在每一个逻辑串开始时,“/FC”位总为0)。

✓每一个逻辑指令检测“/FC”位的状态,就像指令检测它的寻址接点一样,决定了指令对其寻址状态、信号状态检测结果的存放位置。

如果“/FC”位的状态为0,逻辑指令将结果存在(逻辑操作的结果位)“RLO”中,并将“/FC”位的状态置为1。

这一过程,称为“首次检测”。

经过首次检测存放在“RLO”中的0或者1,被称为“首次检测的结果”。

✓在一个逻辑串中,当CPU完成逻辑串中的第一条指令以后,“/FC”位的状态一直为1。

当“/FC”位为1时,指令操作将其寻址接点的“检测结果状态”与先前存放在“RLO”中的状态结合起来。

✓一串逻辑指令总是以一个输出指令(如:S、R、=),或者一个与逻辑操作结果相关的条件跳转指令(JC),或者一个嵌套指令[ 如:A(、O(、X(、AN(、ON(、XN(] 作为结束。

这些输出指令、跳转指令、嵌套指令将“/FC”位复位至0。

2. RLO,逻辑操作的结果✓状态字的第1位——“RLO”称为“逻辑操作的结果(Result of logic operation)”,存放一个位逻辑指令,或者算术比较指令的结果。

✓例如,在一串“位逻辑指令”中的第二条指令,检测寻址接点的信号状态,并且产生一个“0或者1的结果”。

然后,指令将这一“0或者1的结果”和状态字中的“RLO”值进行布尔逻辑运算,结果代替上一次的“RLO”值,并且存放在状态字的“RLO”中。

✓每一个接下来逻辑串中的指令,均是根据这两个值(一个值为“指令检测寻址接点所产生的结果”,另一个值为“当前的RLO”)进行布尔逻辑运算操作。

何为状态字

何为状态字
无溢出
整数算术运算
有溢出
浮点数算术运算
有溢出
0
0
结果=0
整数加时产生负范围溢出
平缓下溢
0
1
结果<0
乘时负范围溢出;加、减、取负时正溢出
负范围溢出
1
0
结果>0
乘、除时正溢出;加、减时负溢出
正范围溢出
1
1

在除时除数为0
非法操作
4.4.2.2比较、移位和循环移位、字逻辑指令后的CC1和CC0
CCl
CCO
比较指令
移位和循环指令
字逻辑指令
0
0
累加器2=累加器1
移位=0
结果=0
0
1
累加器2<累加器1


1
0
累加器2>累加器1

结果≠0
1
1
不规范
(只用于浮点数比较)
移出位=1

(8)二进制结果位(BR)
状态字的位8称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确(异常)。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。在LAD的方块指令中,BR位与ENO有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,BR位为0,ENO也为0;如果功能被正确执行,BR位为1,ENO也为1。
(7)条件码1(CC1)和条件码0(CC0)
状态字的位7和位6称为条件码1和ห้องสมุดไป่ตู้件码0。这两位结合起来用于表示在累加器1中产生的算术运算或逻辑运算结果与0的大小关系;比较指令的执行结果或移位指令的移出位状态。详见表4.4.2.1和表4.4.2.2。

各类Http请求状态(status)及其含义详细解析

各类Http请求状态(status)及其含义详细解析

各类Http请求状态(status)及其含义详细解析Web服务器响应浏览器或其他客户程序的请求时,其应答⼀般由以下⼏个部分组成:⼀个状态⾏,⼏个应答头,⼀个空⾏,内容⽂档。

下⾯是⼀个最简单的应答:状态⾏包含HTTP版本、状态代码、与状态代码对应的简短说明信息。

在⼤多数情况下,除了Content-Type之外的所有应答头都是可选的。

但Content-Type是必需的,它描述的是后⾯⽂档的MIME类型。

虽然⼤多数应答都包含⼀个⽂档,但也有⼀些不包含,例如对HEAD请求的应答永远不会附带⽂档。

有许多状态代码实际上⽤来标识⼀次失败的请求,这些应答也不包含⽂档(或只包含⼀个简短的错误信息说明)。

当⽤户试图通过 HTTP 访问⼀台正在运⾏ Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回⼀个表⽰该请求的状态的数字代码。

状态代码可以指明具体请求是否已成功,还可以揭⽰请求失败的确切原因。

1xx - 信息提⽰这些状态代码表⽰临时的响应。

客户端在收到常规响应之前,应准备接收⼀个或多个 1xx 响应。

· 100 - Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。

(HTTP 1.1新)· 101 - Switching Protocols 服务器将遵从客户的请求转换到另外⼀种协议(HTTP 1.1新)2xx - 成功这类状态代码表明服务器成功地接受了客户端请求。

· 200 - OK ⼀切正常,对GET和POST请求的应答⽂档跟在后⾯。

· 201 - Created 服务器已经创建了⽂档,Location头给出了它的URL。

· 202 - Accepted 已经接受请求,但处理尚未完成。

· 203 - Non-Authoritative Information ⽂档已经正常地返回,但⼀些应答头可能不正确,因为使⽤的是⽂档的拷贝,⾮权威性信息(HTTP 1.1新)。

设计模式:状态(State)模式

设计模式:状态(State)模式

设计模式:状态(State)模式设计模式:状态(State)模式⼀、前⾔状态模式在某些场合中使⽤是⾮常⽅便的,什么叫做状态,如果⼤家学过《编译原理》就会明⽩DFA M和NFA M,在确定有限状态机和⾮确定有限状态机中,状态就是最⼩的单元,当满⾜某种条件的时候,状态就会发⽣改变,我们可以把时间中的⼀个时刻当做⼀个状态,那么其实整个社会都是有状态组成的,前⼀时刻到下⼀时刻,整个社会上的物质(空间)发⽣了什么样的变化,因此状态可以⾮常的⼤也可以⾮常的⼩,天⽓变化情况是状态,⽩天和⿊夜也是状态,⼈的⽣活作息等等都是状态,因此状态⽆处不在。

那么状态模式就是将⼀个状态看做⼀个类,这与以往我们对类的理解不⼀样,以往我们认为类是对对象的抽象,⽤来表⽰对象的,对象⼀般是具体的事物,⽽现在我们将状态这种⾮具体的看不见的但⼜真实存在的事物当做类描述的东西,这⼀点可能需要⼤家理解。

那么为什么必须要状态模式,不⽤状态模式可以吗?当然可以,但是还是回到了代码的可维护性、可扩展性、可复⽤性这个层⾯上来考虑问题,⽐如我们本例的内容,考虑⼀个银⾏系统,可以⽤来取款、打电话、报警、记录这四种功能,但是考虑如下需求:在⽩天如果我们去取款是正常的,晚上取款就要发出警报;在⽩天打电话有⼈接,晚上打电话启动留⾔功能;⽩天和晚上按警铃都会报警。

那么我们应该如何设计这个程序呢,当然我们可以对每⼀个动作(作为⼀个函数),在这个函数内部,我们进⾏判断是⽩天还是⿊夜,然后根据具体的情况做出反应。

这样当然是可以的,但是假如我们的状态(⽩天和⿊夜)⾮常的多呢,⽐如将24⼩时分成24个时间段(24个状态),那么我们对于每⼀个函数就要判断24遍,这⽆疑是⾮常糟糕的代码,可读性⾮常的差,并且如果需求发⽣了改变,我们很难去修改代码(很容易出现错误),但是如果我们考虑将这些状态都作为⼀个类,在每⼀个类内部进⾏处理、判断和相应的切换,这样思路就⾮常的清晰,如果再增加⼀种状态,代码需要修改的地⽅会⾮常的少,对于状态⾮常多的情景来说⾮常的⽅便。

状态流程框的使用

状态流程框的使用

状态流程框的使用1. 状态(State):表示系统或进程所处的各个状态。

状态可以是具体的,也可以是抽象的。

每个状态都可以由一个唯一的标识符来进行识别。

2. 转换(Transition):表示系统或进程从一个状态转移到另一个状态的行为。

转换通常由特定的条件触发,条件可以是事件、条件或操作。

每个转换都可以由一个唯一的标识符来进行识别。

3. 起始状态(Initial state):表示系统或进程的初始状态。

4. 终止状态(Final state):表示系统或进程的结束状态。

5. 动作(Action):表示在转换过程中执行的操作。

1.订单处理系统:一个订单处理系统可以包含多个状态,如待支付、待发货、已发货和已完成等。

状态之间的转换可以由用户的操作或系统自动触发,如用户支付订单后,状态由待支付转移到待发货状态,发货后又转移到已发货状态,最终完成订单转移到已完成状态。

状态流程框可以帮助我们清晰地描述和理解订单处理系统的流程。

2.电子邮件发送系统:一个电子邮件发送系统可以包含多个状态,如待发送、已发送、已接收和已读等。

状态之间的转换可以由用户的操作或系统自动触发,如用户点击发送按钮后,状态由待发送转移到已发送状态,接收方收到邮件后转移到已接收状态,接收方打开邮件后转移到已读状态。

状态流程框可以帮助我们更好地理解和设计电子邮件发送系统的工作流程。

3.导航应用程序:一个导航应用程序可以包含多个状态,如起始状态、目标状态和导航中状态等。

在导航过程中,状态之间的转换可以由用户的操作或系统自动触发,如用户输入起始和目标位置后,状态由起始状态转移到导航中状态,导航过程中可以发生多次状态转换,最终到达目标位置后转移到目标状态。

状态流程框可以帮助我们更好地理解和设计导航应用程序的导航流程。

4.交通信号灯控制系统:一个交通信号灯控制系统可以包含多个状态,如红灯、绿灯和黄灯等。

状态之间的转换可以由定时器或交通流量感应器等触发,如红灯持续一定时间后转移到绿灯状态,交通流量较大时可以通过感应器触发绿灯延长或黄灯提前转为红灯。

南自提供---标准FT3通讯规约格式

南自提供---标准FT3通讯规约格式

GB/T 20840.8-2007 通信规约1.1.1 链路层此链路层选定为IEC 60870-5-1的FT3格式。

此格式的优点是:——良好的数据完整性,——其帧结构使它有可能用于高速率的多点网络同步数据链接。

链接服务类别为S1:SEND/NO REPLY(发送/不回答)。

这实际上反映了互感器连续和周期性地传输其数值并不需要二次设备的任何认可或应答。

传输规则:R1 空闲状态是二进制1。

两帧之间按曼彻斯特编码连续传输此值1,为了使接收器的时钟容易同步,由此提高通讯链接的可靠性。

两帧之间应传输最少70个空闲位。

R2 帧的最初两个八位字节代表起始符。

R3 16个八位字节用户数据由一个16比特校验序列结束。

需要时,帧应填满缓冲字节,以完成给定的字节数。

R4 由下列多项式生成校验序列码:X16+X13+X12+X11+X10+X8+X6+X5+X2+1此规范生成的16比特校验序列是取反的。

R5 接收器检验信号品质、起始符、各校验序列和帧长度。

如果这些检验中任一项有误,该帧将废弃,反之交付给用户。

注1:规则R1:推荐在两帧之间填满尽可能多的空闲位;某些接收器的同步方法可利用紧接起始符前的小空白间隔,使接收器为传输来临做好准备。

注2:因为所用的服务类别是S1,故对IEC 60870-5-1的规则R5和R6已作修改:由于发送器无法知道接收器是否检测出错误,所以不需要IEC 60870-5-1对R5规定的最小行空闲状态,否则会导致不必要的高数据速率。

规则R1规定了最小行空闲状态,并可供检验使用。

2726252423222120起始符0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 0数据载入1(16个字节)注:数据CRCmsb 数据载入1的CRClsb数据载入2(16个字节)数据需要时为缓冲字节 需要时为缓冲字节 需要时为缓冲字节 CRCmsb 数据载入2的CRClsb 字节38数据载入3(16个字节)数据字节39 字节40 字节41 字节42 字节43 字节44 字节45 字节46 字节47 字节48 字节49 字节50 字节51 字节52 字节53 字节54 CRCmsb 负载3的CRC字节55lsb其中:CRC 为“循环冗余码”,msb 为“最高位”,lsb 为“最低位”。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FAQ(常见问题)
Case No.:
产品类型:STEP 7 Software
问题:怎样理解状态字(status word)?
图表 1
1. /FC,首次检测位
9状态字的第0位——“/FC”称为“首次检测位”,控制一串逻辑指令的顺序。

“/FC”位信号状态为“0”,说明用户程序中从这一点开始下面的逻辑指令,作为新的逻辑串(换而言之:在每一个逻辑串开始时,“/FC”位总为0)。

9每一个逻辑指令检测“/FC”位的状态,就像指令检测它的寻址接点一样,决定了指令对其寻址状态、信号状态检测结果的存放位置。

如果“/FC”位的状态为0,逻辑指令将结果存在(逻辑操作的结果位)“RLO”中,并将“/FC”位的状态置为1。


一过程,称为“首次检测”。

经过首次检测存放在“RLO”中的0或者1,被称为
“首次检测的结果”。

9在一个逻辑串中,当CPU完成逻辑串中的第一条指令以后,“/FC”位的状态一直为1。

当“/FC”位为1时,指令操作将其寻址接点的“检测结果状态”与先前存放在
“RLO”中的状态结合起来。

9一串逻辑指令总是以一个输出指令(如:S、R、=),或者一个与逻辑操作结果相关的条件跳转指令(JC),或者一个嵌套指令[ 如:A(、O(、X(、AN(、ON(、
XN( ] 作为结束。

这些输出指令、跳转指令、嵌套指令将“/FC”位复位至0。

2. RLO,逻辑操作的结果
9状态字的第1位——“RLO”称为“逻辑操作的结果(Result of logic
operation)”,存放一个位逻辑指令,或者算术比较指令的结果。

9例如,在一串“位逻辑指令”中的第二条指令,检测寻址接点的信号状态,并且产生一个“0或者1的结果”。

然后,指令将这一“0或者1的结果”和状态字中的
“RLO”值进行布尔逻辑运算,结果代替上一次的“RLO”值,并且存放在状态字的“RLO”中。

9每一个接下来逻辑串中的指令,均是根据这两个值(一个值为“指令检测寻址接点所产生的结果”,另一个值为“当前的RLO”)进行布尔逻辑运算操作。

9用户可以使用“SET”指令,无条件置位RLO为1;使用“CLR”指令,无条件复位RLO为0。

用户可以使用RLO的状态,触发跳转指令。

9在一串“位逻辑指令”中的第一条指令,检测寻址接点的信号状态,并且产生一个“1的检测结果”,存放在RLO位,并且将“/FC”位复位至0。

语句表程序输入I或者输出
检测结果 RLO位/FC位说明
Q的信号状态
“/FC”位为0,说
明下一个指令开始
新的逻辑串操作;
A I0.0 1 1 1 1 首次检测的逻辑结
果,存放在RLO
中,“/FC”位置1 AN I0.1 0 1 1 1 将“逻辑检测结
果”与上一个
“RLO”操作,放
置在“RLO”中。

“/FC”位置1 = Q4.0 1 0 将“RLO”赋值给
输出线圈,“/FC”
位复位为0 图表 2
3. STA,状态位
9状态字的第2位——“STA”称为“状态位”;
9一个读取存储区“位操作”的指令(如,A、AN、O、ON、X、XN)状态,总是与指令检测的位(即“逻辑操作的位”)状态一致;
9一个写入存储区“位操作”的指令(如,S、R操作)状态,总是和指令所指明的“位”或者“数值”的状态一致;
9对于不访问存储区的指令来说,状态位没有意义。

4. OR,或位
9状态字的第3位——“OR”称为“或位”;
9如果使用O指令执行“或操作”之前,需要逻辑“与操作”(如,A、AN、NOT),则必须使用OR(或位)。

5. OV,溢出位
9状态字的第5位——“OV”称为“溢出位”;
9“溢出位”表明一个错误。

如果,一个“算术指令”或者一个“浮点数比较指令”执行出现错误(如,溢出、非法操作、非法浮点数),“溢出位”被置位操作处理;
9如果下一个“算术指令”或者一个“浮点数比较指令”正确执行,则复位该状态位。

6. OS,存储溢出位
9状态字的第4位——“OS”称为“存储溢出位”;
9当一个错误产生,“OS”存储溢出位和“OV”溢出位一起被置位为1。

另外,“OS”存储溢出位在错误被清除以后仍然被置位。

并且,指明在先前的指令执行中
是否产生了错误。

9 JOS(Jump label if OS=1,存储溢出后跳转)块的调用指令,可以使“OS”存储溢
出位复位为0;
9 Call(Block Call)块的调用指令,可以使“OS”存储溢出位复位为0;
9 BE(Block End)块结束指令的调用,可以使“OS”存储溢出位复位为0。

7. CC1、CC0,条件码1和条件码0
状态字的第6、7位——“CC1、CC0”称为“条件码1和条件码0”,可以被用来作为有条件跳转(conditional jump instructions)。

8. BR,二进制结果位
9状态字的第8位——“BR”称为“二进制结果位”。

9“BR”位代表机器内部的存储位。

此位的状态是先前的字操作逻辑改变了“RLO”
位状态,而存入的。

因此,对于连续中断“位逻辑串”操作以后,可以再次使用
“RLO”位;
9“BR”位相当于LAD方块图的使能输出(ENO)。

用户可以应用SAVE指令,在“BR”位中存放RLO位状态。

如:
1) 当FB、FC、SFC、SFB被正确执行时,在“BR”位中存放RLO位状态为
“1”;
2) 当FB、FC、SFC、SFB被错误执行时,在“BR”位中存放RLO位状态为
“0”;。

相关文档
最新文档