北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8637271

谈谈S7-200 Smart系列PLC的特殊存储器(SMB0/SMB1)

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。

cover.png

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的位信息,请看下面的表格:

SMB0.png

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)的指令状态信息位,请看下面的表格:

SMB1.png

S7-200 smart系列PLC的特殊存储器很多,本文介绍了其中的SMB0和SMB1,更多内容在之后的文章中继续介绍。

欢迎扫描下面的二维码关注我们的微信公众号,及时浏览工业智能控制领域(PLC、机器人、单片机、工业通信)的原创文章。


取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论