1. 项目概述:为什么S7-1200控制S120不是“接上线就跑”,而是工业自动化里的一道分水岭
在西门子中型PLC与高性能伺服驱动器的协同场景里,“S7-1200控制S120变频器”这九个字,表面看只是设备型号的简单组合,实则是一条横跨底层硬件、通信协议、工程组态与运动控制逻辑的完整技术链。它不是教科书里“PLC发启停命令→变频器执行”的线性流程,而是一个涉及PROFINET IO实时性保障、报文结构深度解析、工艺对象(Technology Object)建模、安全机制嵌入和故障闭环诊断的系统工程。我带过三届自动化专业实习生,几乎所有人第一次尝试时都卡在“PLC能读到S120的状态字,但写控制字后电机纹丝不动”这个环节——问题不在接线,而在对“报文”二字的理解停留在字面:他们以为报文是“数据包”,却没意识到它是S7-1200与S120之间唯一可信赖的“神经突触”,每一个字节的偏移、每一位的置位逻辑、每一帧的周期抖动,都直接决定着产线能否按毫秒级节拍稳定运行。
这个项目真正解决的,是中小型产线在升级柔性化产线时的核心矛盾:既要保留S7-1200的低成本、易编程优势,又要获得S120在动态响应、定位精度和多轴同步上的工业级性能。它绕不开博图V16这个关键载体——不是因为V16有多“新”,而是V16首次将S120的GSDML文件解析、报文配置向导、TO(Technology Object)调试面板全部整合进统一环境,让原本需要在STARTER、SCOUT、STEP 7多个软件间跳转的繁琐流程,压缩成一个工程文件内的连续操作。你不需要成为PROFINET协议栈专家,但必须理解“报文”不是抽象概念:它是PLC周期性发送的固定长度数据帧(比如标准报文3,共16字节),其中第0字节是控制字低字节,第2字节是主设定值(速度/位置),第4字节是状态字反馈——这些地址不是随便定的,而是由S120固件内置的PROFINET设备描述(GSDML)严格定义的。当热词里反复出现“西门子s7-1200顺起逆停”时,背后其实是TO中的“顺起/逆停”功能块对控制字Bit10(OFF3)和Bit11(OFF2)的精准时序控制;当搜索“博图v16安装教程”时,用户真正焦虑的是GSDML文件导入失败导致设备目录里根本找不到S120的IO映射入口。所以,这篇内容不是教你“怎么连网线”,而是带你拆开PROFINET报文的“外壳”,看清S7-1200如何用字节级操作,把控制指令稳稳地“钉”进S120的寄存器里。
2. 系统架构与通信原理:从模块化组成到PROFINET IO的物理层真相
2.1 S7-1200的模块化组成架构:不是所有CPU都天生适配S120
S7-1200的“模块化”常被误解为“插上扩展模块就能增强性能”,但控制S120的关键,首先取决于CPU本体是否具备原生PROFINET IO控制器能力。以常见型号为例:
CPU 1214C DC/DC/DC(6ES7 214-1BG40-0XB0):这是最常被选用的型号,但它仅支持PROFINET IO设备(Device)角色,即只能作为从站被上位机控制。若想让它作为IO控制器(Controller)去主动管理S120这个IO设备,必须确认其固件版本≥V4.2,并在博图V16中启用“Enable PROFINET IO controller”选项——这个开关默认关闭,很多工程师在硬件组态时漏掉,导致后续无论如何配置网络,S120始终显示“未连接”。
CPU 1215C DC/DC/DC(6ES7 215-1AG40-0XB0):V4.4固件起原生支持IO控制器,无需额外使能,且自带两个以太网口,可构建冗余环网。它的背板总线带宽(187.5 Mbps)比1214C(150 Mbps)更高,对多台S120轮询时的通信抖动更小。
CPU 1217C(6ES7 217-1AG40-0XB0):V4.5固件起支持IRT(等时同步)模式,这是实现多轴电子齿轮、飞剪同步的硬性前提。如果你的产线要求S120与另一台伺服轴保持±10μs级相位同步,1217C是唯一选择。
提示:不要迷信“最新CPU一定更好”。我曾调试一条包装线,客户坚持用1217C控制单台S120,结果因IRT配置复杂、周期设置不当,反而导致普通启停响应延迟比1215C高12ms。对单机控制,1215C是性价比最优解;只有明确需要同步轴控时,才上1217C。
S120的选型同样关键。S120不是单一产品,而是由CU(控制单元)、PM(电源模块)、TM(电机模块)组成的模块化系统。控制S120变频器,实际是控制CU320-2PN或CU310-2PN这类带PROFINET接口的控制单元。CU320-2PN支持标准报文(Standard Telegram)和西门子专用报文(Siemens Telegram),而CU310-2PN仅支持标准报文。这意味着:若你用博图V16配置CU310,只能选择Telegram 1(仅启停/方向)、Telegram 3(含速度设定/状态反馈)等基础报文;而CU320可选Telegram 111(含扭矩限制、加减速时间、故障复位等高级参数),这对需要精细工艺控制的场景(如卷绕张力闭环)至关重要。
2.2 PROFINET IO的本质:不是“网线通了就行”,而是确定性实时通信
PROFINET IO常被简化为“工业以太网”,但它的核心价值在于确定性(Determinism)。普通TCP/IP网络的数据包到达时间是随机的(可能1ms,也可能100ms),而PROFINET IO通过以下三层机制强制约束通信周期:
物理层隔离:PROFINET IO通信必须使用屏蔽双绞线(推荐IE FC Standard Cable),且全程避免与动力电缆平行走线超过1米。我见过最典型的干扰案例:某饮料厂将PROFINET网线与380V变频器输出电缆捆扎在同一桥架内,结果S120频繁报F07901(通信超时),更换为独立屏蔽桥架后故障消失。这不是玄学,而是因为变频器输出的PWM波含有高频谐波(可达10MHz),会通过容性耦合在网线上感应出噪声电压,破坏以太网信号的曼彻斯特编码电平。
数据链路层调度:PROFINET IO采用“生产者-消费者”(Producer-Consumer)模型。S7-1200作为IO控制器是生产者,周期性(如1ms)向S120发送输出数据(Output Data);S120作为IO设备是消费者,同时将输入数据(Input Data)回传给PLC。这个周期由PLC程序中的OB60(等时同步组织块)或系统默认周期(如10ms)决定。关键点在于:S120的输入/输出数据长度必须与PLC组态中配置的报文长度完全一致。例如,若组态为Telegram 3(16字节输出+16字节输入),但S120实际只映射了前8字节,剩余8字节未初始化,则PLC侧会持续报“IO设备数据不一致”错误。
应用层协议栈:PROFINET IO不直接传输“启动”、“停止”等语义指令,而是通过标准化的“控制字”(Control Word)和“状态字”(Status Word)进行位操作。控制字是16位二进制数,每一位有明确定义:
- Bit0(ON/OFF1):主电路使能(相当于接触器吸合)
- Bit1(OFF2):快速停止(切断PWM,电机自由滑行)
- Bit2(OFF3):安全停止(触发STO,机械抱闸)
- Bit10(Rising Edge of OFF3):上升沿触发安全停止
- Bit11(Rising Edge of OFF2):上升沿触发快速停止
注意:S120的“顺起逆停”功能,本质就是PLC程序在特定工艺条件下,对控制字Bit10和Bit11施加精确的上升沿脉冲。例如顺起时,先置位Bit0(ON/OFF1),再延时100ms后置位Bit11(OFF2上升沿);逆停时,先清除Bit0,再立即置位Bit10(OFF3上升沿)。这个时序不能靠TON定时器模拟,必须用POSITIVE_EDGE指令捕捉沿变化,否则S120无法识别。
2.3 博图V16:不是IDE,而是PROFINET IO的“数字孪生”工作台
博图V16(TIA Portal V16)之所以成为该项目不可替代的平台,是因为它实现了三个层面的深度集成:
GSDML文件解析引擎:S120的GSDML(General Station Description Markup Language)文件本质是XML格式的设备描述说明书。博图V16内置解析器能自动读取其中定义的:
- 支持的报文类型(Telegram ID)
- 每种报文的输入/输出数据长度(Bytes)
- 数据字节内各参数的偏移地址(Offset)和数据类型(UINT16, INT32等)
- 设备诊断信息(如温度、直流母线电压)的映射地址
当你将S120拖入网络视图时,博图不是简单显示一个图标,而是根据GSDML自动生成IO地址映射表。例如,Telegram 3的输出数据区(Output Data)会被映射到DB1.DBX0.0开始的16字节,其中DB1.DBX0.0对应控制字低字节,DB1.DBX2.0对应主设定值(速度给定)。这个映射关系一旦生成,就成为PLC程序读写的唯一依据。
报文配置向导:在设备属性→PROFINET接口→IO系统中,“Assign telegram”向导会引导你选择报文类型。这里的关键陷阱是:必须确保S120 CU的实际固件版本与GSDML文件版本严格匹配。例如,CU320固件V4.7需使用GSDML文件V4.7,若误用V4.5文件,向导可能允许你选择Telegram 111,但实际通信时S120会拒绝该报文,返回诊断代码0x8100(不支持的报文类型)。
TO(Technology Object)调试面板:在博图V16的“设备视图”中右键S120→“Open device view”,会弹出图形化调试界面。这里你能实时看到:
- 控制字/状态字的十六进制值(如控制字=047E,转换为二进制后可逐位分析)
- 主设定值(PZD1)、实际速度(PZD2)、实际电流(PZD3)等过程数据
- 故障代码(如F07901)、警告代码(如A01234)
这个面板的价值在于:它绕过了PLC程序,直接验证S120与PLC的底层通信是否正常。如果面板里能实时刷新速度值,说明PROFINET链路和报文配置100%正确;如果面板空白或报“无响应”,问题一定出在物理层或GSDML配置上,此时PLC程序再完善也无济于事。
3. 核心配置与实操步骤:从硬件组态到TO调试的全流程拆解
3.1 硬件组态:三步锁定物理连接的“黄金法则”
第一步:网络拓扑规划与IP地址分配
PROFINET IO网络必须遵循“树形拓扑”,严禁总线型或环形(除非启用MRP协议)。典型拓扑为:S7-1200 CPU以太网口 → 交换机(推荐西门子SCALANCE X200系列) → S120 CU的X127接口。关键参数:
- S7-1200 IP:192.168.0.1,子网掩码255.255.255.0
- S120 CU IP:192.168.0.2,子网掩码255.255.255.0
- 交换机管理IP:192.168.0.254(用于后续诊断)
注意:IP地址末位不能为0或255(广播地址),且同一网段内所有设备IP必须唯一。我曾遇到客户将S120 IP设为192.168.0.1(与PLC冲突),结果PLC始终无法发现设备,耗时2小时排查。
第二步:GSDML文件导入与设备添加
- 从西门子官网下载与S120 CU固件匹配的GSDML文件(如CU320_V47.gsdml)。
- 在博图V16中,项目树→“PLC站点”→右键“添加新设备”→“其他设备”→“PROFINET IO设备”→点击“...”按钮导入GSDML。
- 导入后,在设备目录中找到“SINAMICS_S120_CU320_2PN”,拖拽至网络视图。
- 右键S120设备→“属性”→“常规”→确认“设备名称”为默认值(如“S120_CU”),此名称将作为PROFINET设备名写入CU。
提示:设备名称必须全小写、无空格、不超过15字符。若设为“S120-CU”,CU会拒绝注册,报错“Device name invalid”。
第三步:报文分配与IO地址映射
- 双击S120设备→进入“属性”→“PROFINET接口”→“IO系统”→“Assign telegram”。
- 选择“Telegram 3(Standard)”(适用于大多数启停+速度控制场景)。
- 点击“OK”,博图自动生成IO映射:
- 输出数据(Output Data):16字节,映射至DB1(默认),起始地址DB1.DBX0.0
- 输入数据(Input Data):16字节,映射至DB1,起始地址DB1.DBX16.0
此时,DB1的结构如下:
| 地址 | 名称 | 类型 | 说明 |
|---|---|---|---|
| DB1.DBX0.0 | ControlWord_Low | WORD | 控制字低字节(Bit0-Bit15) |
| DB1.DBX2.0 | Setpoint_PZD1 | INT | 主设定值(速度给定,单位rpm) |
| DB1.DBX4.0 | Setpoint_PZD2 | INT | 辅设定值(如扭矩限幅,单位%) |
| DB1.DBX16.0 | StatusWord_Low | WORD | 状态字低字节 |
| DB1.DBX18.0 | ActualValue_PZD1 | INT | 实际速度(rpm) |
| DB1.DBX20.0 | ActualValue_PZD2 | INT | 实际电流(A) |
3.2 PLC程序编写:用字节操作代替“启停按钮”思维
PLC程序的核心,是将工艺逻辑转化为对控制字和设定值的精确位操作。以下是关键代码段(基于SCL语言):
// 声明全局DB块(DB1)的符号访问 PROGRAM PLC_PRG VAR // 引用DB1中的变量 ctrl_word : WORD := 16#0000; // 控制字初始值 setpoint_spd : INT := 0; // 速度设定值 status_word : WORD; // 状态字读取 actual_spd : INT; // 实际速度 END_VAR // 主循环逻辑 // 步骤1:读取S120状态字,判断是否就绪 IF "DB1".StatusWord_Low AND 16#0040 <> 0 THEN // Bit6=1表示"Ready to switch on" ready_to_start := TRUE; ELSE ready_to_start := FALSE; END_IF; // 步骤2:生成控制字(顺起逻辑) IF start_cmd AND ready_to_start THEN // 先置位Bit0(ON/OFF1) ctrl_word := ctrl_word OR 16#0001; // 延时100ms后置位Bit11(OFF2上升沿,触发顺起) IF TON_100ms.Q THEN ctrl_word := ctrl_word OR 16#0800; // Bit11=1 END_IF; ELSIF stop_cmd THEN // 清除Bit0,触发逆停 ctrl_word := ctrl_word AND 16#FFFE; // Bit0=0 // 立即置位Bit10(OFF3上升沿,安全停止) ctrl_word := ctrl_word OR 16#0400; // Bit10=1 END_IF; // 步骤3:写入控制字和设定值 "DB1".ControlWord_Low := ctrl_word; "DB1".Setpoint_PZD1 := setpoint_spd; // 步骤4:读取反馈 status_word := "DB1".StatusWord_Low; actual_spd := "DB1".ActualValue_PZD1;这段代码的关键细节:
- 状态字解析:Bit6(16#0040)是“Ready to switch on”,表示S120已上电、无故障、可以接收启动命令。必须在此位为1时才允许启动,否则强行置位Bit0会导致S120报F07900(命令无效)。
- 控制字构造:使用
OR和AND进行位操作,而非直接赋值。因为控制字是16位寄存器,直接:=会覆盖所有位,导致Bit0以外的位(如Bit10)被清零,引发意外停机。 - 顺起/逆停时序:TON_100ms定时器确保Bit0和Bit11之间有精确延时;逆停时Bit0清零与Bit10置位必须在同一扫描周期完成,否则S120可能进入“自由滑行”而非“安全停止”状态。
3.3 TO调试与诊断:用博图V16的“透视眼”直击问题根源
完成硬件组态和PLC编程后,必须通过TO调试面板验证底层通信:
- 在博图V16中,项目树→“设备视图”→展开S120设备→右键“Open device view”。
- 面板顶部显示设备状态:“Online”且绿色指示灯亮,表示PROFINET连接成功。
- 切换到“Process data”标签页:
- “Control word”栏显示当前控制字十六进制值(如047E)
- “Setpoint PZD1”栏显示速度设定值(如1500)
- “Actual value PZD1”栏实时刷新实际速度(如0,或1498)
实操心得:如果“Actual value PZD1”始终为0,但“Control word”能随PLC程序变化,说明S120未驱动电机——检查CU的“Drive enable”参数(p0840)是否为1,以及电机动力电缆是否接通。
- 切换到“Diagnostics”标签页:
- 查看“Alarm history”,可追溯最近10条故障(如F07901)
- 点击“Detailed diagnostics”,显示故障代码、发生时间、相关参数(如p0922=12345)
最关键的诊断技巧:利用“Force”功能模拟控制字。在“Process data”页,右键“Control word”→“Force value”,输入16#047F(Bit0, Bit6, Bit7, Bit8, Bit9, Bit10, Bit11均置1),观察S120是否响应。若响应,证明硬件链路完好;若不响应,问题在CU参数设置(如p0840=0)或电机端。
4. 报文深度解析与故障排查:从“抓包”到“字节手术”的实战指南
4.1 S120标准报文(Telegram 3)的字节级解剖
Telegram 3是S7-1200控制S120最常用的报文,其16字节输出数据(Output Data)结构如下(按字节顺序):
| 字节偏移 | 字段 | 长度 | 值示例 | 含义 | 关键位说明 |
|---|---|---|---|---|---|
| 0-1 | Control Word | 2字节 | 16#047E | 控制字 | Bit0=1(ON), Bit6=1(Ready), Bit10=1(OFF3) |
| 2-3 | Setpoint PZD1 | 2字节 | 16#05DC (1500) | 速度设定值(rpm) | 有符号INT,负值表示反转 |
| 4-5 | Setpoint PZD2 | 2字节 | 16#0000 | 辅助设定值(如扭矩限幅) | 默认0,表示不限幅 |
| 6-7 | Reserved | 2字节 | 16#0000 | 保留字段 | 必须为0,否则S120报错 |
| 8-9 | Reserved | 2字节 | 16#0000 | 保留字段 | 同上 |
| 10-11 | Reserved | 2字节 | 16#0000 | 保留字段 | 同上 |
| 12-13 | Reserved | 2字节 | 16#0000 | 保留字段 | 同上 |
| 14-15 | Reserved | 2字节 | 16#0000 | 保留字段 | 同上 |
输入数据(Input Data)16字节结构:
| 字节偏移 | 字段 | 长度 | 含义 | 关键位说明 |
|---|---|---|---|---|
| 0-1 | Status Word | 2字节 | 状态字 | Bit0=1(Running), Bit6=1(Ready), Bit7=1(Operation enabled) |
| 2-3 | Actual Value PZD1 | 2字节 | 实际速度(rpm) | 有符号INT |
| 4-5 | Actual Value PZD2 | 2字节 | 实际电流(A) | 有符号INT,单位0.1A |
| 6-15 | Reserved | 10字节 | 保留字段 | 必须为0 |
提示:S120的“状态字”与“控制字”是镜像关系。例如,当控制字Bit0=1时,若S120成功使能,状态字Bit7(Operation enabled)必为1;若状态字Bit6=0,说明S120未就绪,此时控制字Bit0置1无效。
4.2 常见故障速查表与独家排查技巧
| 故障现象 | 可能原因 | 排查步骤 | 我的实操技巧 |
|---|---|---|---|
| PLC在线,但S120设备显示“未连接” | 1. 物理层断开(网线/交换机) 2. IP地址冲突 3. GSDML版本不匹配 | 1. 用笔记本ping S120 IP(192.168.0.2) 2. 检查博图网络视图中设备图标颜色(灰色=未连接) 3. 查看S120 CU的X127接口LED:LNK常亮=链路通,ACT闪烁=有数据 | 技巧:在S120 CU正面按“Mode”键切换至“PROFINET”模式,查看LCD显示的IP和设备名。若显示“-- --”,说明CU未获取到IP,需检查DHCP或手动设置。 |
| S120能读状态字,但写控制字无效 | 1. 控制字未置位Bit0(ON/OFF1) 2. S120未就绪(状态字Bit6=0) 3. CU参数p0840=0(Drive enable禁用) | 1. 在TO调试面板中Force控制字=16#0001,观察是否响应 2. 检查状态字Bit6是否为1 3. 在STARTER中查看p0840值 | 技巧:用STARTER连接S120,执行“Quick commissioning”,自动设置p0840=1、p1000=1(速度控制)等基础参数。避免手动逐个修改。 |
| 电机启动后立即报F07901(通信超时) | 1. PROFINET周期设置过短(<1ms) 2. 网络存在强干扰 3. S120输入/输出数据长度不匹配 | 1. 在PLC属性→“周期”中,将“最小周期时间”设为2ms 2. 检查网线屏蔽层是否单端接地 3. 在S120 CU的“PROFINET”参数中,确认“Telegram length”与博图组态一致 | 技巧:在博图V16中,项目树→“PLC站点”→右键→“诊断”→“PROFINET诊断”,可查看每台设备的“Cycle time deviation”(周期偏差),若>10%,说明网络负载过高。 |
| 顺起时电机抖动,逆停时滑行距离长 | 1. 控制字Bit11(OFF2)与Bit0(ON/OFF1)时序错误 2. S120参数p1120(加速时间)、p1121(减速时间)设置过大 | 1. 用PLCSIM Advanced仿真,观察控制字变化时序 2. 在STARTER中调整p1120/p1121至合理值(如1.5s) | 技巧:在PLC程序中,用“TP”定时器生成精确脉冲,而非TON。TP的Q输出为单周期脉冲,完美匹配S120对上升沿的要求。 |
4.3 抓包分析:用Wireshark读懂PROFINET IO的“心跳”
虽然博图V16提供了完善的诊断,但深入理解报文仍需抓包。在PLC与S120之间的交换机上开启端口镜像,用Wireshark捕获:
- 过滤条件:
profinet && ip.addr == 192.168.0.1 && ip.addr == 192.168.0.2 - 关键字段解读:
PROFINETIO.FrameID: 0x0020 = Real-time frame(实时帧)PROFINETIO.DataLength: 16 = Telegram 3的输出数据长度PROFINETIO.Data: 显示16字节十六进制数据,对应DB1.DBX0.0开始的内容
例如,捕获到一帧Data为01 00 dc 05 00 00 00 00 00 00 00 00 00 00 00 00,解析为:
- 字节0-1:
01 00→ 16#0001 → 控制字=1(仅Bit0置位) - 字节2-3:
dc 05→ 16#05DC → 1500 → 速度设定值=1500 rpm
注意:Wireshark显示的字节顺序是网络字节序(Big Endian),而S7-1200内部存储为小端序(Little Endian)。因此,
dc 05在PLC内存中存储为05 dc,但Wireshark按网络序显示,符合标准。
5. 扩展应用与进阶实践:从单机控制到多轴协同的跃迁路径
5.1 控制4台S120的轮询策略:不是“复制粘贴”,而是资源调度的艺术
当项目需求从单台S120升级为4台时,简单的“复制PLC程序+添加设备”会引发严重问题:S7-1200的PROFINET IO控制器带宽有限,若4台S120均使用1ms周期,总带宽需求=4×16B×1000Hz=64KB/s,接近1215C的极限(约80KB/s)。此时必须采用差异化周期策略:
- 主轴(S120-A):周期1ms,使用Telegram 111(含扭矩、加减速参数),用于高动态响应。
- 辅轴(S120-B/C/D):周期10ms,使用Telegram 3,仅传输启停和速度设定。
在博图V16中实现:
- 将4台S120分别拖入网络视图。
- 对S120-A,右键→“属性”→“PROFINET接口”→“IO系统”→设置“Update rate”=1ms。
- 对S120-B/C/D,分别设置“Update rate”=10ms。
- 在PLC程序中,为每台S120分配独立DB块(DB1-DB4),避免地址冲突。
实测数据:某薄膜分切机项目,4台S120(1主3辅)采用上述策略后,CPU负载从92%降至65%,通信抖动<0.2ms。
5.2 与Modbus TCP轮询的共存:PROFINET与Modbus的“和平共处”
产线中常需S7-1200同时控制S120(PROFINET)和第三方仪表(Modbus TCP)。关键挑战是以太网口资源竞争。S7-1200只有一个以太网口,必须通过交换机分流:
- 方案A(推荐):使用带VLAN功能的交换机(如SCALANCE X200),将PROFINET流量(VLAN ID 100)与Modbus流量(VLAN ID 200)隔离。在博图V16中,为S120分配VLAN 100,为Modbus客户端分配VLAN 200。
- 方案B:启用S7-1200的“多网段”功能(需V4.4固件),将Modbus TCP通信绑定到另一个IP地址(如192.168.1.1),物理上仍走同一网口,但逻辑隔离。
警告:切勿将Modbus TCP轮询周期设为<100ms。Modbus TCP是事务型协议,每次请求需等待响应,高频轮询会堵塞PROFINET实时通道。我的经验是:Modbus设备轮询周期≥500ms,且避开PROFINET的1ms周期峰值(如在PLC扫描周期的第300ms执行Modbus读取)。
5.3 安全集成:STO(Safe Torque Off)的硬件级实现
S120的STO功能是功能安全的核心,它通过切断电机绕组的PWM信号,实现“安全停止”。但STO不是PLC程序能软件实现的,必须硬件介入:
- 接线要求:S120 CU的X9端子(Safety terminals)必须接入安全继电器(如PNOZ s30)的常闭触点。当安全继电器检测到急停信号时,断开X9,S120立即执行STO。
- 参数设置:在STARTER中,设置p0842=1(STO active),p0843=1(STO monitoring enabled)。
- PLC交互:PLC通过控制字Bit10(OFF3)触发STO,但前提是X9回路物理闭合。若X9断开,即使PLC置位Bit10,S120也会报F07920(STO fault)。
最后分享一个小技巧:在博图V16的“安全程序”中,为STO信号添加“Safe STOP”指令块,它会自动生成符合IEC 61508 SIL2认证的逻辑,比手写LAD更可靠。这个块的输出直接连接到S120的控制字Bit10,形成软硬结合的安全链路。