怎样理解状态字(status word)
南自提供---标准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. 状态(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)。
解释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 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”)进行布尔逻辑运算操作。
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)

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”)进行布尔逻辑运算操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FAQ(常见问题)
Case No.:
产品类型:STEP 7 Software
问题:怎样理解状态字(status word)?
图表 1
1. /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”)进行布尔逻辑运算操作。
✓用户可以使用“SET”指令,无条件置位RLO为1;使用“CLR”指令,无条件复位RLO为0。
用户可以使用RLO的状态,触发跳转指令。
✓在一串“位逻辑指令”中的第一条指令,检测寻址接点的信号状态,并且产生一个“1的检测结果”,存放在RLO位,并且将“/FC”位复位至0。
3. STA,状态位
✓状态字的第2位——“STA”称为“状态位”;
✓一个读取存储区“位操作”的指令(如,A、AN、O、ON、X、XN)状态,总是与指令检测的位(即“逻辑操作的位”)状态一致;
✓一个写入存储区“位操作”的指令(如,S、R操作)状态,总是和指令所指明的“位”或者“数值”的状态一致;
✓对于不访问存储区的指令来说,状态位没有意义。
4. OR,或位
✓状态字的第3位——“OR”称为“或位”;
✓如果使用O指令执行“或操作”之前,需要逻辑“与操作”(如,A、AN、NOT),则必须使用OR(或位)。
5. OV,溢出位
✓状态字的第5位——“OV”称为“溢出位”;
✓“溢出位”表明一个错误。
如果,一个“算术指令”或者一个“浮点数比较指令”执行出现错误(如,溢出、非法操作、非法浮点数),“溢出位”被置位操作处理;
✓如果下一个“算术指令”或者一个“浮点数比较指令”正确执行,则复位该状态位。
6. OS,存储溢出位
✓状态字的第4位——“OS”称为“存储溢出位”;
✓当一个错误产生,“OS”存储溢出位和“OV”溢出位一起被置位为1。
另外,“OS”存储溢出位在错误被清除以后仍然被置位。
并且,指明在先前的指令执行中
是否产生了错误。
✓JOS(Jump label if OS=1,存储溢出后跳转)块的调用指令,可以使“OS”存储溢出位复位为0;
✓Call(Block Call)块的调用指令,可以使“OS”存储溢出位复位为0;
✓BE(Block End)块结束指令的调用,可以使“OS”存储溢出位复位为0。
7. CC1、CC0,条件码1和条件码0
状态字的第6、7位——“CC1、CC0”称为“条件码1和条件码0”,可以被用来作为有条件跳转(conditional jump instructions)。
8. BR,二进制结果位
✓状态字的第8位——“BR”称为“二进制结果位”。
✓“BR”位代表机器内部的存储位。
此位的状态是先前的字操作逻辑改变了“RLO”
位状态,而存入的。
因此,对于连续中断“位逻辑串”操作以后,可以再次使用
“RLO”位;
✓“BR”位相当于LAD方块图的使能输出(ENO)。
用户可以应用SAVE指令,在“BR”位中存放RLO位状态。
如:
1) 当FB、FC、SFC、SFB被正确执行时,在“BR”位中存放RLO位状态为
“1”;
2) 当FB、FC、SFC、SFB被错误执行时,在“BR”位中存放RLO位状态为
“0”;。