简介:这份《S7-1500 PLC应用技术》第2章课件,面向自动化、电气控制专业学生及初学S7-1500的工程人员,用于梳理该系列PLC硬件体系与选型要点。内容分六部分:SIMATIC产品定位、CPU模块、电源模块、信号模块、通信模块与CPU操作模式。其中对比S7-1500控制器、ET200 CPU、软件控制器、S7-1500R/H冗余系统及CPU1513pro/1516pro的适用场景,说明冗余系统由主备CPU并行处理并在故障时无缝接管,pro型控制器防护等级达IP65/IP67;讲解标准型、紧凑型、故障安全型、工艺型CPU的分类与结构,并补充模块安装接线、固件更新方法、PM负载电源与PS系统电源、数字量/模拟量I/O及PROFINET、PROFIBUS、PtP通信,还说明RUN、STOP、STARTUP、MRES等操作状态。资源包为1个PPT文件,约6.09MB,章节清晰、要点集中,便于课堂讲解与对照复习。目前已有316人学习,适合快速建立S7-1500硬件框架,辅助设备选型与考试准备。
1. S7-1500 PLC 硬件系统不是选一颗 CPU 就完事
见过太多控制柜,CPU 型号挑得很漂亮,导轨一装发现短了 40 毫米;16 个继电器线圈把电源模块的 24V 负载电流吃干净,柜门一关就随机停机;前连接器和模块对不上,现场多等三天。S7-1500 的硬件系统讲的从来不是一张 CPU 参数表,而是导轨、系统电源、负载电源、CPU、信号模块、通信模块、技术模块、前连接器、U 型连接器这套东西怎么在同一排 DIN 导轨上配平。它决定了柜子装不装得下、跑不跑得稳、远程查不查得到故障。下面按"装得上、算得清、组得对、查得到"四件事往下走,适合正在从 S7-300/400 往 1500 迁移的电气工程师,也适合第一次独立做 1500 硬件配置的自控人。
2. S7-1500 的机架结构、导轨选择与电源电流预算
2.1 没有背板总线,靠 U 型连接器把模块串起来
S7-1500 取消了 S7-300/400 那种带插槽的机架底板,模块直接卡在 DIN 导轨上,相邻模块之间用 U 型连接器把背板总线接起来。这条背板总线上跑两样东西:5V 系统电源和模块间数据通信。所以"机架"在 1500 里其实就是"一排物理上相邻、U 型连接器连通的模块"。
槽位规则比较死:0 号槽固定给 PS 电源模块或 PM 电源模块,1 号槽必须是 CPU,2 号槽往后才是信号模块、通信模块、技术模块。电源模块可以空着不装,用 CPU 自带的系统电源,但一旦模块数量多、背板电流吃紧,就必须补 PS。
右扩展没有槽位数量限制,但 CPU 能带的模块总数有上限,超了要么换更高阶 CPU,要么改成分布式 IO。相邻模块之间需要一对 U 型连接器,批量配置前按"模块数量减一"把连接器配齐,缺一个整排背板总线就断,CPU 上电直接报模块缺失。
提示:拆模块时从最右侧开始拆,U 型连接器跟着模块一起退出来,别用螺丝刀硬撬,背板针脚弯一排就是几千块。
2.2 导轨型号与长度估算
导轨是标准化订货件,常见长度如下,选的时候按模块宽度累加,再留 20% 左右余量,方便以后加模块或者走线。
| 订货号 | 长度 | 典型用途 |
|---|---|---|
| 6ES7590-1AB60-0AA0 | 160 mm | 单 CPU 加两三个模块的小站 |
| 6ES7590-1AC40-0AA0 | 245 mm | 小型控制柜 |
| 6ES7590-1AE80-0AA0 | 482 mm | 中型集中式站 |
| 6ES7590-1AF30-0AA0 | 530 mm | 常见 19 寸柜内安装 |
| 6ES7590-1AJ30-0AA0 | 830 mm | 大型集中站 |
| 6ES7590-1BC00-0AA0 | 2000 mm | 需要现场截断的场合 |
估算方法很土但管用:信号模块按 35 mm 一块算,带显示屏的 CPU 宽度比信号模块大,具体数值查对应订货号的选型手册,累加完乘 1.2。别按图纸上的标称宽度凑,前连接器插上以后还要向前凸出一段,柜内深度也得一起算。
2.3 系统电源和负载电源是两笔账,别混在一起算
S7-1500 的供电分两层。系统电源走背板总线,是 5V,供模块内部逻辑芯片用,来源是 PS 电源模块或者 CPU;负载电源是 24VDC,供数字量输入回路的传感器、数字量输出的负载、模拟量变送器用,来源是 PS 的 24V 输出或者外部 SITOP 电源。
PS 25W 模块提供 5V/5A 加 24V/0.5A,PS 60W 提供 5V/5A 加 24V/2A。PM 系列只出 24V,不接背板总线,是纯负载电源。算账顺序是先算背板 5V,再算负载 24V。
# S7-1500 背板 5V 电流预算 # 数据来源:各模块技术数据里的“背板总线电流消耗”,单位 mA # 注意 CPU 自身也吃背板电流,算完要和电源模块的 5V 输出比 backplane_supply = 5000 # PS 25W / PS 60W 的 5V 输出上限,mA modules = [ # (模块名称, 数量, 单块背板电流 mA) ("DI 16x24VDC BA", 4, 45), ("DO 16x24VDC/0.5A BA", 4, 60), ("AI 8xU/I/RTD/TC ST", 2, 95), ("CM 1542-1", 1, 100), ] total = 0 for name, qty, cur in modules: sub = qty * cur total += sub print(f"{name:24s} x{qty:<3d} = {sub:5d} mA") print("-" * 42) print(f"{'背板电流合计':24s} = {total:5d} mA") print(f"{'余量':24s} = {backplane_supply - total:5d} mA " f"({(backplane_supply - total) / backplane_supply:.1%})")这段脚本把 CPU 右侧每个模块的背板电流乘数量累加,再和电源模块的 5V 上限比。backplane_supply按你实际选的 PS 型号技术数据填,cur取模块手册里的背板总线电流消耗,别用通道电流代替。经验上余量留到 30% 以上,低于 15% 就要考虑加一个 PS 或者把一部分模块挪到分布式站。
24V 这笔账更容易翻车:一块 DO 16x24VDC/0.5A 满通道导通就是 8A,PS 的 24V 输出只有 0.5A 或 2A,缺口必须用外部 24V 电源补。负载电流大于 8A 的柜子,直接上独立的 SITOP,PS 只管背板,两条回路分开,故障隔离也干净。
3. CPU 能力梯度与信号模块、分布式 IO 的选型边界
3.1 CPU 型号怎么按需选,而不是按"贵就好"
S7-1500 的 CPU 用后缀数字分层,1511 是入门,往上到 1513、1515、1516、1517、1518,工作内存、PROFINET 接口数量、运动控制轴数、是否带 PROFIBUS DP 接口依次递增。选型时按下面几个维度过一遍,比死记型号管用。
| 维度 | 入门层 | 中间层 | 高层 |
|---|---|---|---|
| 典型规模 | 单机、几十点 IO | 一条产线、几百点 | 多线体、上千点 |
| PN 接口 | 1 个 | 2 个 | 2 到 4 个,可做网络分离 |
| DP 接口 | 无 | 部分有 | 有 |
| 运动控制 | 少轴或不做 | 中等轴数 | 多轴插补、凸轮 |
| 冗余 | 不支持 | 不支持 | 有冗余型号可选 |
先数物理 IO 点数,再估程序和数据内存需求,然后数 HMI、上位机、变频器、伺服这些通信伙伴的数量,最后看是否需要 DP 老设备接入或者多轴同步。内存不够是最常见的翻车点,下载时提示装载内存不足,只能整机换 CPU 或者把程序拆到分布式控制器。
3.2 数字量、模拟量、技术模块和通信模块的搭配
信号模块按通道数和功能分级。数字量输入常见 DI 16x24VDC 和 DI 32x24VDC,数字量输出常见 DO 16x24VDC/0.5A、DO 32x24VDC/0.5A 和继电器输出型 DO 16xRelay。模拟量输入常见 AI 8xU/I/RTD/TC,能接电压、电流、热电阻、热电偶,模拟量输出常见 AQ 4xU/I。
模块后面的字母代表功能等级:BA 是基本型,参数几乎不能调;ST 是标准型,能开诊断、调滤波;HF 是高功能型;HS 是高速型。要断线诊断、超量程诊断,至少选 ST。技术模块用来做计数和位置检测,比如 TM Count 2x24V、TM PosInput 2;通信模块用来补 PROFIBUS DP 或者独立以太网口,比如 CM 1542-1、CP 1543-1。
3.3 集中式 IO 还是 ET 200MP / ET 200SP 分布式
IO 点集中在一个柜子里,用 S7-1500 主架加信号模块就够了。设备分散在几十米甚至上百米的产线上,硬拉线又贵又难查,就换成分布式 IO。ET 200MP 用的是和 S7-1500 一模一样的模块,柜内安装;ET 200SP 模块更窄,一个站能塞更多通道,接线密度高;防护等级更高的场合还有 IP65/67 的分布式站直接装现场。
判断标准是看走线成本和维护成本。一个点平均线缆成本超过分布式站分摊成本,就该转分布式。逻辑上分布式站挂在 PROFINET 上,地址是按站和槽位映射的,CPU 侧看到的仍然是一片连续 IO 区。
// 读模块 I&M0 记录,上电后核对实物订货号和组态是否一致 // HW_ID:模块硬件标识符,在设备视图属性里能看到 // INDEX = 16#AFF0 为 I&M0,16#AFF1 为 I&M1,依次类推 FUNCTION "ReadModuleIM0" : Void VAR_INPUT HW_ID : HW_IO; END_VAR VAR_OUTPUT Valid : BOOL; Busy : BOOL; Error : BOOL; Status : WORD; END_VAR VAR_TEMP Cnt : INT; Raw : ARRAY[0..63] OF BYTE; // I&M0 数据缓冲区 END_VAR BEGIN RDREC(REQ := TRUE, ID := HW_ID, INDEX := 16#AFF0, MLEN := 64, RECORD := Raw, VALID => Valid, BUSY => Busy, ERROR => Error, STATUS => Status, LEN => Cnt); // Raw 的前若干字节按 I&M0 结构解析,订货号和序列号以 ASCII 存放 END_FUNCTIONRDREC是读数据记录指令,REQ给上升沿触发一次,ID填模块的硬件标识符,INDEX指定数据记录号,MLEN是缓冲区长度,LEN返回实际读到的字节数。用它可以在开机自检里比对实物模块,换错型号立刻报警,比等到运行时通道行为异常再回头查省事得多。
4. 在 TIA Portal 里把硬件组态搭出来并分配 IO 地址
4.1 添加设备、摆模块的顺序
打开 TIA Portal,项目视图里进"设备和网络",右侧"添加新设备",展开控制器目录找到 SIMATIC S7-1500,按实际订货号选 CPU,不要凭系列名选,订货号选错后面模块目录对不上。
进入设备视图,机架 0 的 0 号槽先拖电源模块,1 号槽 CPU 已固定,从右侧硬件目录依次把 DI、DO、AI、通信模块拖进 2 号槽往后。拖动时目录会自动过滤只显示能装在当前槽位的模块。摆完后每个模块头上会有一个小方块显示槽号,槽号连续才算对。
4.2 模块参数里几个真正要动的项
不是每个参数都要改,改错了反而排查更难。下面以 ST 级别的数字量输入模块为例,列几个值得动的地方。
| 参数 | 可选值 | 建议 |
|---|---|---|
| 输入延时 | 0.05 到 20 ms | 机械触点用 3.2 ms 以上 |
| 断线诊断 | 启用/禁用 | 有诊断需求才开,开满会增加模块负担 |
| 通道组诊断 | 按通道/按组 | 按组够用,按通道诊断数据量翻倍 |
| 值状态 | 启用/禁用 | 需要 HMI 显示通道质量时启用 |
| 电位隔离 | 固定 | 一般不动 |
输入延时的取舍最实际:延时设太短,机械触点抖动会被当成多次边沿;设太长,高速信号丢脉冲。气缸磁开关、按钮、行程开关这类信号,3.2 ms 到 6.4 ms 比较稳;光电编码器这种信号别用 DI 模块,交给 TM 技术模块。
注意:修改硬件组态并下载会导致 CPU 停机。运行中改模块参数可以只选该模块下载,但一旦涉及槽位增删,仍然是停机操作,改前确认产线状态。
4.3 IO 变量表与符号寻址
模块摆好后系统自动分配起始地址,比如第一块 DI 从 I0.0 开始,第一块 DO 从 Q4.0 开始,模拟量从 IW64 开始。地址可以手动改,但更推荐的做法是在"PLC 变量"表里给每个通道起符号名,程序里全用符号寻址。
// 变量表里已把 I0.0 命名为 Start_Btn、I0.1 命名为 Stop_Btn、Q4.0 命名为 Motor_Run // 这样组态地址调整后程序不用动,只重新编译下载即可 "Motor_Run" := ("Start_Btn" OR "Motor_Run") AND NOT "Stop_Btn"; // 上升沿统计,R_TRIG 需要配一个背景数据块 #R_TRIG_Instance(CLK := "Sensor_PE", Q => #Sensor_PE_Edge); IF #Sensor_PE_Edge THEN "Part_Counter" := "Part_Counter" + 1; END_IF;第一行是起保停回路用布尔表达式展开,OR和AND NOT的优先级要写清楚,避免歧义。R_TRIG的第一个参数CLK给被测信号,Q输出一个扫描周期的高电平。符号名要和变量表里的名称完全一致,包括大小写,否则编译直接报未定义。
4.4 编译下载与在线一致性检查
编译后把硬件组态和程序一起下载到 CPU。下载完进"在线和诊断",看设备概览里有没有红色标记。常见的不一致有三类:槽位声明与实物不符、模块订货号不符、固件版本不一致。前两类必须停机改,第三类如果设了"允许不同固件版本"可以继续运行,但功能可能受限。
改完硬件组态,建议做一次"离线/在线比较",把在线 CPU 的实际组态和项目里的组态对一遍,避免现场工程师手动改过参数却没同步回项目。
5. 硬件诊断的三种入口和资源占用的查看手法
5.1 从 LED 到在线诊断的排查路径
CPU 面板上有 RUN、STOP、ERROR、MAINT 几个 LED。ERROR 红常亮一般是硬件组态错误或者模块故障,MAINT 黄亮是维护请求,通常对应诊断缓冲区里的一条待处理信息。模块本身的 DIAG LED 用红/绿双色表示通道状态和诊断。
进博途的"在线和诊断",设备概览里出问题的模块会带红色或黄色图标,点进去能看到诊断状态、通道故障类型、诊断缓冲区时间戳。诊断缓冲区是倒序排列的,第一条最近的故障往往就是根因,别从最上面一条一条往下翻。
5.2 用 OB 82 / OB 83 / OB 86 把故障接住
不写这几个 OB,模块报诊断时 CPU 只会把信息塞进缓冲区,程序该跑还跑,机器可能带着坏通道继续生产。OB82 是诊断中断,支持诊断的模块检测到断线、短路、超量程时触发;OB83 是模块插拔中断;OB86 是机架或分布式站掉站中断。
// OB82 诊断中断:由系统自动调用,不用手动触发 // 局部变量 LADDR 是触发中断的模块逻辑基地址 // RALRM 读出报警附加信息和诊断数据 ORGANIZATION_BLOCK "OB_Diagnostic" VAR_TEMP IO_State : HW_IO; MLEN : INT; DiagData : ARRAY[0..31] OF BYTE; AlrmInfo : ARRAY[0..15] OF BYTE; END_VAR BEGIN RALRM(IO_State := IO_State, MLEN := 32, RECORD := DiagData, INFO := AlrmInfo); // DiagData 前几个字节是通道相关诊断,具体位定义查模块手册 END_ORGANIZATION_BLOCKIO_State是系统填进来的模块逻辑地址,不用自己赋;MLEN是诊断缓冲区长度,要和你声明的数组上限对齐;INFO返回报警附加信息,能区分是哪一个通道触发。诊断数据的具体字节含义每个模块不一样,对着手册解析才能在 HMI 上给出"第 3 通道断线"这种人类能看的提示。
5.3 在博途中查看 PLC 资源使用情况
进"在线和诊断"的存储区页签,能看到装载内存、程序工作内存、数据工作内存、保持性内存各自的已用和总量。经验阈值是单项超过 80% 就要规划换 CPU 或者拆分程序,超过 90% 随时可能在下次下载时失败。分布式 IO 和 HMI 的连接数也在通信页签里看,连接资源耗尽时报错信息很含糊,容易误判成网络问题。
循环时间在"循环时间"页签里看当前值、最小值和最大值。把最大循环时间设成实测平均值的 1.5 到 2 倍,超时后 CPU 会调用 OB80,那里才是排查偶发卡顿的入口,光看平均循环时间看不出问题。
本文还有配套的精品资源,点击获取