|  | 6ES7231-5ND32-0XB0SIMATIC S7-1200,模拟输入, SM 1231,4 模拟输入, +/-10V,+/-5V,+/-2.5V,+/-1.25 或 0-20mA/4-20mA, 15 Bit+符号 Bit | 
  联系人  郑鑫  135八五七五四八零三
  说明
  有一系列从入门级CPU直到高性能CPU,用于配置控制器。所有CPU控制大量结构;多个CPU可以在一个多值计算配置中一起工作以提高性能。由于CPU的高处理速度和确定性的响应时间,可缩短机器的循环周期。
  不同的CPU具有不同性能,例如,工作存储器,地址范围,连接数量和执行时间。十款款标准的CPU,集成PROFIBUS、PROFINET 总线接口。
  应用
  S7-400尤其适合于加工工业中的数据密集型任务。高处理速度和确定性的响应时间,缩短高速机械制造业设备控制的循环周期。
  S7 - 400好用于整体协调各种设备,控制低级别的系统。这是由高速通讯能力和集成接口来保证的。
  在S7- 400的许多器件也可用于极端环境条件下的SIPLUS版本。
  S7-400 的成功应用如下:
  汽车工业
  标准机械设备制造包括定制的机械设备制造
  仓储系统
  建筑工程
  钢铁行业
  发电和配电
  造纸和印刷业
  木工
  纺织业
  医药制品
  食品和饮料行业
  处理工程,例如水和废水处理设施
  化工和石化
  效益
  由于采用各种级别的CPU,S7-400可以灵活扩展升级;I/O能力几乎是无限的。
  强大的CPU允许集成新的功能,无需额外硬件投资,例如处理质量数据,用户友好的诊断,到更高层次的MES解决方案或通过总线系统的高速通讯。
  可以以模块化的方式构建S7 - 400,有各种用于集中配置和分布式结构的模块,以实现处理备件方面的低成本。
  在操作过程中可以修改S7- 400 的分布式I/O配置(在运行中配置)。另外在工作时还可以删除和插入信号模块(热插拔)。这使得很容易扩展系统或出现故障时替换模块。
  项目的完整数据存储包括CPU上的符号和注释,简化了服务和维护过程。
  可以将安全技术和标准自动化集成到一个单一的S7- 400控制器,可以通过S7- 400的冗余结构增加设备的可用性。
  S7- 400的许多器件也可用于外部环境条件SIPLUS版本,例如:扩展温度范围(-25+60°C)和在恶劣环境/冷凝条件下使用。
  S7- 400的高速背板总线确保集中式I/ O模块的高速通讯。
  设计和功能
  模块化
  S7 - 400的一个重要特点是它的模块化。S7- 400的高速通讯背板总线和允许直接插入CPU集成的DP接口,允许多条通讯线路的高性能运行。例如,把一根总线用于HMI通讯和编程任务,一根总线用于高性能运动控制,一根总线用于普通I / O现场总线通讯。
  此外,也可以实现另外连接到MES-/ERP系统或通过SIMATIC IT连接到互联网的需要。根据任务情况,可对S7 – 400进行集中扩展或分布式配置。附加设备和接口模块也可集中用于此目的。在CPU中集成的PROFIBUS或PROFINET接口上也可实现分布式扩展。如果需要,也可以使用通讯处理器(CP)。
  设计
  设计一个S7 - 400系统基本上包括机架,电源,和中央处理单元。它可以以一个模块化的方式安装和扩展。所有的模块都可以自由地放置在左侧插入的电源旁边。S7- 400具有无风扇的坚固设计。信号模块可以热插拔。一个多层面的模块范围可用于中央扩展以及具有ET200的分布式拓扑结构的简单配置。
  在集中式扩展中,额外安装机架直接连接到中央控制器。
  除了标准的安装机架,也提供9槽和18槽铝合金安装机架。这些铝机架可以很高地耐受不利环境条件,紧固耐用,重量轻25%左右。
  多值计算
  多值计算,也就是在一个S7- 400中央控制器中的几个CPU的同时操作,为用户提供不同的益处:
  可通过多值计算共享的S7 - 400的整体性能。例如,在技术复杂的任务中,如开环控制,可以将计算机或通讯分割和分配给不同的CPU每个CPU分配给自己的,用于此目的本地输入/输出。
  有些任务也可以从每个多值计算方式中断开,一个CPU处理关键时间的处理任务,另一个处理非关键时间的任务。
  在多值计算操作中,所有的CPU的运行行为像一个CPU,也就是说,当一个CPU进入STOP状态,其他的也停止。几个CPU的动作可以通过同步指令选择性地协调调用。此外,CPU之间的数据交换通过高速的全局数据通讯机制。
  数据/程序存储器
  从精细分级的各种CPU中选择合适的CPU取决于集成工作存储区的大小。集成装载存储器(RAM)足以满足中小型企业方案。对于大型程序,通过插入RAM或FEPROM存储卡增大装载内存(64 KB到64 MB)。
  特殊功能
  S7- 400 CPU有一些非常有用的特殊功能:
  从工程工作站通过网络更新固件实现更简单和快速的升级
  通过一个系统功能实现额外的写保护(例如没有从PC器件下载到CPU)
  通过读取存储卡的序列号获得保护,因此,保证了程序只与特定的存储卡一起运行
  集成的路由功能允许在不同总线系统和网络上访问数据记录,例如控制级PC可以通过S7 -400控制器与连接在PROFINET或者PROFIBUS接口上的现场设备进行通讯。1.1 程序功能介绍
  通过系统功能SFC 51 "RDSYSST" (读取系统状态),可以读取系统状态列表或部分系统状态列表,例如指示灯状态,序列号,从站状态等等。
  调用SFC 51时,通过将值“1”赋给输入参数REQ来启动读取。如果可以立即读取系统状态,则SFC将在BUSY输出参数中返回值0。如果BUSY包含值1,则尚未完成读取功能。
  表1 SFC51参数说明
| 参数 | 描述 |  | 
| REQ | 输入参数 | REQ = 1:启动处理 | 
| SSL_ID | 输入参数 | 将要读取的系统状态列表或部分列表的ID号 | 
| INDEX | 输入参数 | 部分列表中对象的类型或编号。 | 
| RET_VAL | 输出参数 | 如果执行SFC时出错,则RET_VAL参数 | 
| 将包含错误代码。 | 
| BUSY | 输出参数 | TRUE:尚未完成读取。 | 
| SSL_HEADER | 输出参数 | LENTHDR是SSL列表或SSL部分列表的数据记录的长度。 | 
| • 如果仅读取了SSL列表的标题信息,则N_DR包含属于它的数据记录数。 | 
| • 否则,N_DR包含传送到目标区域的数据记录数。 | 
| DR | 输出参数 | SSL列表读取或SSL部分列表读取的目标区 | 
| 域: | 
| • 如果仅读取了SSL列表的标题信息, | 
| 则不能评估DR的值, | 
| 而只能评估SSL_HEADER的值。 | 
| • 否则,LENTHDR和N_DR的乘积将指 | 
| 示已在DR中输入了多少字节。 | 
  2 读取CPU指示灯
  可以通过SFC 51读取CPU的指示灯状态,使用的SSL_ID参数为16#74(16#19)读取全部指示灯状态 或者16#174(16#119)读取单个指示灯状态
  2.1 编程
  首先需要创建一个数据块,用来存放读取出来的指示灯状态结果
  图1 创建DB1,存放读取结果
  打开OB1,在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)
  图2 创建名为length的结构变量
  双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:
  图3 创建length的结构变量的两个word成员
  编写SFC51程序:
  CALL "RDSYSST"
  REQ :=TRUE
  SZL_ID :=W#16#74 //读取全部指示灯状态
  INDEX :=W#16#0
  RET_VAL :=MW0
  BUSY :=M2.0
  SZL_HEADER:=#length
  DR :=P#DB1.DBX0.0 BYTE 500 //结果输出到DB1数据块中
  DB1存放的结果即为模块的指示灯状态,每个指示灯有4个字节的长度来描述。
  前两个字节表示灯的类型(见表二),表示是SF灯还是BF灯等等。
  第三个字节表示灯是亮还是灭,如果为1则灯亮,如果为0则灯的状态是灭。
  第四个字节表示灯是否闪烁,0表示不闪,1表示正常闪烁(2hz),2,表示慢闪(0.5hz)
  灯的类型列表如下(不同的CPU会有不同数目的指示灯):
  表2 前两个字节的含义
| 16#1 | SF | 
| 16#2 | INTF | 
| 16#3 | EXTF | 
| 16#4 | RUN | 
| 16#5 | STOP | 
| 16#6 | FORCE | 
| 16#7 | CRST | 
| 16#8 | BAF | 
| 16#9 | USR | 
| 16#A | USR1 | 
| 16#B | BUS1F | 
| 16#C | BUS2F | 
| 16#D | REDF | 
| 16#E | MSTR | 
  注意事项:
  关于系统功能SFC51的更多详情请参阅STEP 7的在线帮助,或者通过Start > SIMATIC > DOCUMENTATION选择手册“System Software for S7-300/400 System and Standard Functions”
  3 读取Profibus DP从站 状态
  3.1 编程
  首先需要创建一个数据块,用来存放读取出来的状态结果
  图4 创建DB1,存放读取结果
  打开OB1,首先在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)
  图5 创建名为length的结构变量
  双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number: