S7-200PLCSM特殊功能寄存器赋值与功能SMB0至SMB29(S7-200只读特殊内存)。每次扫描循环后,S7-200CPU操作系统将新改动写入特殊内存中存储的系统数据中。如果从程序读取SMB0至SMB29,此为只读地址。如果程序尝试对只读SM地址写入,Micro/WIN会编译程序,不会出错。但是,CPU程序编译程序会拒绝程序,并显示“操作数范围错误,下载失败。”程序可以读取存储在特殊内存地址中数据、评估当前系统状态、并使用有条件逻辑决定如何应答。在运行模式中,对程序的连续扫描提供对所选系统数据的连续监管。SMB0系统状态位SMB1指令执行状态位SMB2自由端口接收字符SMB3自由端口奇偶校验错误SMB4中断队列溢出、运行时间程序错误、中断启用、自由端口传输器被强制SMB5I/O错误状态位SMB6CPU代码寄存器SMB8-SMB21I/O模块代码和错误寄存器SMW22-SMW26扫描时间SMB28-SMB29模拟调整SMB30至SMB549(S7-200读取/写入特殊内存)根据要求,S7-200CPU操作系统从特殊内存读取配置/控制数据,并将新改动写入存储在特殊内存中的系统数据。程序可以读取和写入所有SM地址30或更大的地址,但是SM数据的普通用法根据每个地址的功能不同而异。程序可以读取通常写入数据的SM地址。程序可以在SM地址中读取和写入数据。SM地址提供一种解释系统状态数据、配置系统选项和控制系统功能的方法。在运行模式中,对程序的连续扫描提供对特殊系统功能的连续存取能力。SMB30和SMB130自由端口控制寄存器SMB31-SMW32永久性内存(EEPROM)写入控制SMB34-SMB35用于定时中断的时间间隔寄存器SMB36-SMB65HSC0、HSC1和HSC2高速计数器寄存器SMB66-SMB85PTO/PWM高速输出寄存器SMB86-SMB94和SMB186-SMB194接收讯息控制SMW98I/O扩充总线—通讯错误SMB136-SMB165HSC3、HSC4和HSC5高速计数器寄存器SMB166-SMB194用于PLC(脉冲)指令的PTO包络表SMB200-SMB549为智能扩充模块提供的状态信息保留,例如EM277PROFIBUS-DP模块。SMB200至SMB249为系统中的第一个智能扩充模块(离CPU最近的模块)保留;SMB250至SMB299为第二个智能模块保留。SMB0系统状态位特殊内存字节0(SM0.0-SM0.7)提供八个位,在每次扫描循环结尾处由S7-200CPU更新。程序可以读取这些位的状态,然后根据位值作出决定。S7-200符号名SM位地址说明Always_OnSM0.0该位总是打开First_Scan_OnSM0.1首次扫描循环时该位打开,一种用途是调用初始化子例行程序Retentive_LostSM0.2如果保留性数据丢失,该位为一次扫描循环打开。该位可用作错误内存位或激活特殊启动顺序的机制RUN_Power_UpSM0.3从电源开启条件进入RUN(运行)模式时,该位为一次扫描循环打开。该位可用于在启动操作之前提供机器预热时间Clock_60sSM0.4该位提供周期60s时钟脉冲Clock_1sSM0.5该位提供周期1s时钟脉冲Clock_ScanSM0.6该位是扫描循环时钟,为一次扫描打开,然后为下一次扫描关闭。该位可用作扫描计数器输入Mode_SwitchSM0.7该位表示“模式”开关的当前位置(关闭=“终止”位置,打开=“运行”位置)。开关位于RUN(运行)位置时,您可以使用该位启用自由端口模式,可使用转换至“终止”位置的方法重新启用带PC/编程设备的正常通讯SMB1指令执行状态位特殊内存字节1(SM1.0-SM1.7)为各种不同的指令提供执行状态,例如表格和数学运算。这些位在执行时由指令设置和重新设置。程序可以读取位值,然后根据数值作出决定。S7-200符号名SM位地址说明Result_0SM1.0当操作结果为零时,某些指令的执行打开该位Overflow_IllegalSM1.1当溢出结果或检测到非法数字数值时,某些指令的执行打开该位Neg_ResultSM1.2数学操作产生负结果时,该位打开Divide_By_0SM1.3尝试除以零时,该位打开Table_OverflowSM1.4“增加至表格”指令尝试过度填充表格时,该位打开Table_EmptySM1.5LIFO或FIFO指令尝试从空表读取时,该位打开Not_BCDSM1.6尝试将非BCD数值转换为二进制数值时,该位打开Not_HexSM1.7当ASCII数值无法转换成有效的十六进制数值时,该位打开SMB2自由端口接收字符特殊内存字节2是自由端口接收字符缓冲器。在自由端口模式中接收的每个字符均被置于该位置,易于程序存取。S7-200符号名为“Receive_Char”。该字节包含在自由端口通讯过程中从端口0或端口1接收的每个字符。SMB3自由端口奇偶校验错误SMB3用于自由端口模式,包含在接收字符中检测到奇偶错误时设置的奇偶错误位。当检测到奇偶错误时,打开SM3.0。在程序接受和读取存储在SMB2中的讯息字符数值之前,使用该位测试自由端口讯息字符是否有传输错误。SM3.0的S7-200的符号名为“Parity_Err”该位表示在端口0和端口1中出现奇偶校验错误。(0=无错;1=错误),SM3.1-SM3.7保留SMB4中断队列溢出、运行时间程序错误、中断启用、自由端口传输器闲置、数值被强制特殊内存字节4(SM4.0-SM4.7)包含中断队列溢出位和一个显示中断是启用还是禁用的位(SM4.4)。这些位表示中断发生速率比可处理速率更快,或中断被全局中断禁用指令禁用。其他位表示:●运行时间程序错误●自由端口传输器状态●任何PLC内存数值是否目前被强制S7-200符号名SM位地址说明Comm_Int_Ovr**SM4.0通讯中断队列溢出时,该位打开Input_Int_Ovr**SM4.1输入中断队列溢出时,该位打开Timed_Int_Ovr**SM4.2定时中断队列溢出时,该位打开RUN_ErrSM4.3检测到运行时间编程错误时,该位打开Int_EnableSM4.4该位反映全局中断启用状态。启用中断时,该位打开Xmit0_IdleSM4.5传输器闲置(端口0)时,该位打开Xmit1_IdleSM4.6传输器闲置(端口1)时,该位打开Force_OnSM4.7当任何内存位置被强制时该位打开(仅限22x)注:**仅限在中断例行程序中使用状态位4.0、4.1和4.2。队列空置且控制返回主程序时,这些状态位被重设。SMB5I/O错误状态位特殊内存字节5(SM5.0-SM5.7)包含表示在I/O系统中检测到的错误条件状态位。这些位为检测到的I/O错误提供概述。S7-200符号名SM位地址说明IO_ErrSM5.0如果存在任何I/O错误,该位打开Too_Many_D_IOSM5.1如果过多数字I/O点与I/O总线连接,该位打开Too_Many_A_IOSM5.2如果过多模拟I/O点与I/O总线连接,该位打开Too_Many_IMSM5.3如果过多智能I/O模块与I/O总线连接,该位打开SM5.4保留SM5.5保留SM5.6保留DP_ErrSM5.7如果存在DP标准总线故障,该位打开(仅限S7-215)SMB6CPU代码寄存器特殊内存字节6是CPU标识寄存器。SM6.4-SM6.7识别PLC的类型。SM6.0-SM6.3为将来使用保留。SM6的S7-200符号名为“CPU_ID”,其中SM6.3—SM6.0为保留位,SM7—SM4为CPU型号:0000=CPU212/CPU222;0010=CPU214/CPU224;0110=CPU221;1000=CPU215;1001=CPU216/CPU226SMB8-SMB21I/O模块代码和错误寄存器SMB8至SMB21以成对字节组织,用于扩充模块0至6。每对偶数字节是模块标识寄存器。这些字节识别模块类型、I/O类型以及输入和输出次数。每对奇数字节是模块错误寄存器。这些字节提供该模块I/O中检测到的任何错误。S7-200符号名SM字节地址说明EM0_IDSMB8模块0识别(ID)寄存器EM0_ErrSMB9模块0错误寄存器EM1_IDSMB10模块1识别(ID)寄存器EM1_ErrSMB11模块1错误寄存器EM2_IDSMB12模块2识别(ID)寄存器EM2_ErrSMB13模块2错误寄存器EM3_IDSMB14模块3识别(ID)寄存器EM3_ErrSMB15模块3错误寄存器EM4_IDSMB16模块4识别(ID)寄存器EM4_ErrSMB17模块4错误寄存器EM5_IDSMB18模块5识别(ID)寄存器EM5_ErrSMB19模块5错误寄存器EM6_IDSMB20模块6识别(ID)寄存器EM6_ErrSMB21模块6错误寄存器SMW22-SMW26扫描时间SMW22、SMW24和SMW26包含有关扫描时间的信息。您可以毫秒为单位读取最后一次扫描时间、最小扫描时间和最大扫描时间。S7-200符号名SM字地址说明Last_ScanSMW22该字提供最后一次扫描的扫描时间Minimum_ScanSMW24该字提供自进入RUN(运行)模式以来记录的最小扫描时间Maximum_ScanSMW26该字提供自进入RUN(运行)模式以来记录的最大扫描时间SMB28-SMB29模拟调整特殊内存字节28和29包含与模拟调整0和1轴角位置对应的数字值。模拟调整电位器位于CPU前方存取门后方。用一把小螺丝刀调整电位器(沿顺时钟方向增加,或沿逆时钟方向减少)。此类只读数值可被程序用于各种不同的功能,例如,为计时器或计数器更新当前值,输入或改动预设值或设置限制。模拟调整有一个0至255的额定范围,以及计数的重合性。S7-200符号名SM字节地址说明Pot0_ValueSMB28该字节存储随模拟调节0输入的数值Pot1_ValueSMB29该字节存储随模拟调节1输入的数值SMB30和SMB130自由口控制寄存器SMB30控制端口0的自由口通讯;SMB130控制端口1的自由口通讯。您可以从SMB30和SMB130读取或向SMB30和SMB130写入。这些字节配置各自的通讯端口,进行自由口操作,并提供自由口或系统协议支持选择。S7-200符号名SM地址说明P0_ConfigSMB30配置端口0通信:校验、每个字符的数据位数目、波特率和协议P0_Config_0SM30.0为端口0选择自由接口或系统协议P1_ConfigSMB130配置端口1通信:校验、每个字符的数据位数目、波特率和协议P1_Config_0SM130.0为端口1选择自由接口或系统协议自由口模式控制字节SM30及SM130各位(.7—.0)为:Ppdbbbmm则有:mm为通讯协议选择,含义如下:00:点到点接口协议(PPI/从站模式)01:自由口协议10:PPI/主站模式11:保留(缺省是PPI/从站模式)注意:当选择mm=10(PPI主站),PLC将成为网络的一个主站,可以执行NETR和NETW指令。在PPI模式下忽略2到7位。bbb为波特率选择,含义如下:000:38400001:19200010:9600011:4800100:2400101:1200110:115200111:57600d为每个字符的数据位:0=8位/字符;1=7位/字符pp为校验选择:00=不校验;10=不校验;01=偶校验;11=奇校。SMB31和SMW32永久性内存(EEPROM)写入控制您可以将存储在V内存中的一个数值保存至受程序控制的永久性内存(EEPROM)中。欲执行此一功能,将需要保存的位置地址载入SMW32。然后,将命令载入SMB31,保存该数值。一旦您载入保存数值的命令,在CPU复原SM31.7表示保存操作已经完成之前,您不得改变V内存中的数值。在每次扫描结尾处,CPU检查是否发出将数值保存至永久内存的命令。如果发出命令,指定的数值被保存在永久内存中。