S7-200 Smart系列PLC将系统相关的一些状态(比如:CPU报错、指令溢出、IO错误)存放在特殊的内存地址中,可以在编程的时候通过读取相关内存地址的内容来获取当前的状态(比如:若系统存在IO错误,则SM5.0将被置1);也可以通过编程来修改相关内存地址的内容来达到参数配置的目的(比如:SMB30可以来配置系统串口Port0的参数)。这些特殊的内存区域,被称为特殊存储器(Special Memory),英文简写“SM”。
特殊存储器有两种存储形式:SMB和SMW。“SMB”表以字节(Byte)形式存储的特殊存储器;“SMW”表示以“字(Word)”的形式存储的特殊存储器。在编程的时候,可以"字"、"字节"、"位"的方式对特殊存储器进行访问,位的方式访问按照"SM."的规则进行,比如前面提到的“SM5.0”。
S7-200 Smart系列PLC提供了大量的特殊存储器,今天这篇文章,我们先来聊聊SMB0和SMB1。
SMB0称为“系统状态(System Status)”特殊存储器,顾名思义,它与系统的状态相关。SMB0提供了8个可访问的位(SM0.0~SM0.7),CPU在每次扫描周期的结束之前都会更新这些位(bits)的状态。
SM0.0(Always_ON)会被始终置1,
SM0.1(First_Scan_ON)在CPU的第一个扫描周期被置1,之后被复位。该位可以用来执行初始化的相关操作,类似于S7-300的OB100的功能;
SM0.4(Clock_60s)提供一个60秒的时钟脉冲(30s为真,30s为假),可以用于简单延时或者蜂鸣器的报警;
SM0.5(Clock_1s)提供一个1秒的时钟脉冲(0.5s为真,0.5秒为假),可以用于简单延时或者蜂鸣器的报警;
SM0.6(Clock_Scan)提供一个扫描周期时钟,在一个扫描周期其值为真(TRUE),在下一个扫描周期其值为假(False),如此反复。该位可以作为扫描周期计数器来使用。
更多SMB0的位信息,请看下面的表格:
SMB1称为“指令执行状态(Instruction execution status)”特殊存储器,包含8个位(SM1.0~SM1.7),这些位会在指令执行期间被置位或复位。
SM1.0(Resut_0)当运算结果为0时,会被置位;
SM1.0(Overflow_Illegal)当出现运算溢出或检测到非法数值时,被置位;
SM1.1(Neg_Resut)当运算结果为负数时,数学运算指令会将其置位;
SM1.2(Divide_By_0)当CPU检测到除数为0时,该位被置位;
SMB1还包括关于表操作、BCD及十六进制数(HEX)的指令状态信息位,请看下面的表格:
S7-200 smart系列PLC的特殊存储器很多,本文介绍了其中的SMB0和SMB1,更多内容在之后的文章中继续介绍。
领取专属 10元无门槛券
私享最新 技术干货