1. 为什么PNP和NPN总让人栽跟头
干自动化这行十几年,我见过太多人在这两个词上翻车。不是他们不懂三极管原理,而是教科书讲的是电子学,现场要的是“这根线到底接24V还是0V”。我印象最深的一次,一个做了五年电气的老师傅,新项目用三菱FX3U接欧姆龙的光电开关,传感器是NPN的,他按习惯把信号线接进X0,公共端S/S接24V,结果PLC输入灯常亮不灭,换了个传感器还是老样子,最后查了一下午才发现是公共端接反了。这种问题不复杂,但就是没人给你讲透。
这篇文章要解决的就是这个事。PLC输入端的PNP和NPN,说到底就是传感器输出信号的电平逻辑不同,导致PLC公共端和信号线的接法完全相反。你搞懂了这个底层逻辑,西门子、三菱、汇川、台达,所有品牌的PLC接线规则都是一通百通。我下面会从三极管原理讲起,然后落到西门子S7-200 SMART和S7-1200、三菱FX3U和FX5U的实际接线,最后给一份常见问题速查表。不管你是刚入行的新手,还是干了几年但一直没彻底搞明白的老手,看完都能直接上手接线,不用再翻手册试错。
提示:本文所有接线方案均基于漏型输入(Sink)和源型输入(Source)两种PLC输入类型展开,这是理解PNP/NPN接线的关键前提。
2. 从三极管到传感器:PNP和NPN的本质区别
2.1 三极管导通条件回顾
PNP和NPN的名字来源于三极管的结构。NPN型三极管,发射极(E)接低电位(0V),集电极(C)接高电位(24V),基极(B)收到高电平信号时导通,电流从C流向E。PNP型三极管反过来,发射极接高电位(24V),集电极接低电位(0V),基极收到低电平信号时导通,电流从E流向C。
这个基础很重要,因为传感器内部的输出级就是一只三极管。NPN传感器输出的是低电平有效信号,PNP传感器输出的是高电平有效信号。你可以这样记:NPN输出拉低,PNP输出拉高。这个口诀在现场比什么都管用。
2.2 传感器输出级的实际电路
以常见的光电开关为例,NPN型传感器的输出三极管是NPN管,发射极接地,集电极接信号输出线。当传感器检测到物体时,三极管导通,信号线被拉到0V,所以输出低电平。PNP型传感器的输出三极管是PNP管,发射极接24V,集电极接信号输出线。检测到物体时,三极管导通,信号线输出24V,所以输出高电平。
这里有个容易混淆的点:传感器本身的供电都是24V和0V两根线,但输出线的电平逻辑取决于内部三极管的类型。你用万用表测输出线对0V的电压,NPN传感器有信号时是0V,没信号时是悬空或通过下拉电阻拉到接近0V;PNP传感器有信号时是24V,没信号时是悬空或通过下拉电阻拉到接近0V。实测下来,悬空状态用万用表测会有虚电压,所以最好接上PLC输入端子再测。
2.3 为什么PLC输入类型决定了接法
PLC的输入端子内部也有一个光耦,光耦的发光二极管需要电流才能点亮。这个电流的方向决定了PLC是漏型输入还是源型输入。漏型输入(Sink)的公共端S/S接24V,电流从外部传感器经过信号线流入PLC输入端子,再经过光耦到公共端,最后回到24V电源的0V。源型输入(Source)的公共端S/S接0V,电流从PLC内部24V经过光耦流出输入端子,再经过外部传感器回到0V。
所以,NPN传感器配漏型输入PLC,PNP传感器配源型输入PLC,这是最标准的搭配。但现场经常遇到传感器类型和PLC输入类型不匹配的情况,这时候就需要通过改变公共端接法来适配。下面我会分别讲西门子和三菱的具体操作。
3. 西门子PLC实战接线:S7-200 SMART与S7-1200
3.1 S7-200 SMART的输入公共端接法
S7-200 SMART的输入端子排上有一个1M、2M这样的公共端。以CPU ST20为例,输入点I0.0到I0.7共用1M,I1.0到I1.7共用2M。这个公共端可以接24V,也可以接0V,接法不同,支持的传感器类型就不同。
接NPN传感器时,1M接24V。传感器的信号线接I0.0,传感器的0V接电源0V,传感器的24V接电源24V。当传感器有信号时,输出0V,电流从1M(24V)经过PLC内部光耦流向I0.0,再经过传感器输出三极管到0V,光耦导通,PLC读到信号。这个电流方向是从公共端流向输入端子,所以叫漏型输入。
接PNP传感器时,1M接0V。传感器的信号线接I0.0,传感器供电不变。当传感器有信号时,输出24V,电流从传感器信号线流入I0.0,经过光耦流向1M(0V),光耦导通。这个电流方向是从输入端子流向公共端,所以叫源型输入。
我实测过,S7-200 SMART的输入公共端接错不会烧PLC,但输入灯会常亮或者不亮,因为光耦一直导通或者一直不导通。所以接线前一定要确认传感器类型,然后决定公共端接24V还是0V。
3.2 S7-1200的输入公共端接法
S7-1200的输入公共端标注为1M、2M,和S7-200 SMART类似。但S7-1200的输入电路设计略有不同,它支持漏型和源型两种接法,但需要在硬件配置中确认输入滤波等参数。实际接线时,1M接24V对应NPN传感器,1M接0V对应PNP传感器。
这里有个细节:S7-1200的输入端子有24V输出端子(L+)和0V端子(M),可以直接给传感器供电。但要注意传感器的总电流不要超过PLC的24V输出能力,一般S7-1200的24V输出只有400mA左右,接几个传感器没问题,接多了要外接电源。
3.3 西门子PLC接线实战步骤
以S7-200 SMART接NPN光电开关为例,完整步骤如下:
- 确认传感器类型:看传感器标签,NPN常开或常闭。
- 确认PLC输入公共端:找到1M端子。
- 接线:传感器棕色线接24V,蓝色线接0V,黑色线接I0.0。1M接24V。
- 上电测试:用手遮挡光电开关,观察PLC输入指示灯是否亮起。
- 如果指示灯常亮不灭,检查1M是否接错,或者传感器输出是否被短路。
接PNP传感器时,只需把1M改接0V,其他不变。这个操作我做过上百次,只要公共端接对,基本一次成功。
注意:西门子S7-200 SMART的输入公共端是分组隔离的,1M和2M之间不连通。如果你用了I0.0和I1.0,需要分别接1M和2M,不能只接一个。
4. 三菱PLC实战接线:FX3U与FX5U
4.1 FX3U的输入公共端接法
三菱FX3U的输入端子排上,S/S是公共端。FX3U的输入类型是漏型还是源型,取决于S/S接24V还是0V。S/S接24V时,输入是漏型,支持NPN传感器;S/S接0V时,输入是源型,支持PNP传感器。
FX3U的输入端子内部电路和西门子类似,都是光耦隔离。但FX3U的输入电流要求是7mA左右,所以传感器输出能力要足够。我遇到过用FX3U接一个低功耗的NPN接近开关,输出电流只有3mA,结果PLC输入灯微亮,但程序读不到信号。换了一个输出电流10mA的传感器就好了。所以选传感器时,除了看PNP/NPN,还要看输出电流是否满足PLC输入要求。
4.2 FX5U的输入公共端接法
FX5U的输入公共端也是S/S,但FX5U支持更灵活的输入接法。FX5U的输入端子可以分组设置,每个组的公共端可以独立接24V或0V。这意味着你可以同时接NPN和PNP传感器,只要把不同组的S/S分别接对应的电平。
FX5U的输入电路还支持高速输入,用于编码器等高速信号。但高速输入端子对PNP/NPN的接法有额外要求,具体要看手册。我一般建议高速输入统一用NPN传感器,因为NPN输出拉低,抗干扰能力更强,高速信号更稳定。
4.3 三菱PLC接线实战步骤
以FX3U接NPN接近开关为例:
- 确认传感器类型:NPN常开。
- 接线:传感器棕色接24V,蓝色接0V,黑色接X0。S/S接24V。
- 上电测试:用金属物体靠近接近开关,观察X0指示灯。
- 如果指示灯不亮,用万用表测传感器输出对0V电压,有信号时应该是0V。
- 如果电压正常但灯不亮,检查S/S是否接24V,或者X0端子是否损坏。
接PNP传感器时,S/S改接0V。这个操作和西门子完全一致,所以我说一通百通。
提示:三菱FX3U的S/S端子是所有输入点共用的,不能分组。如果你需要同时接NPN和PNP传感器,FX3U做不到,只能换FX5U或者加中间继电器转换。
5. 常见问题与排查技巧实录
5.1 输入指示灯常亮或不亮
这是最常见的故障。输入指示灯常亮,说明光耦一直导通,可能是公共端接错,或者传感器输出被短路到24V。输入指示灯不亮,说明光耦一直不导通,可能是公共端接错,或者传感器输出没有信号,或者传感器供电接反。
排查步骤:先用万用表测传感器输出对0V电压,有信号时NPN应该是0V,PNP应该是24V。如果电压不对,检查传感器供电和传感器本身。如果电压对,检查PLC公共端接法。如果公共端对,检查PLC输入端子是否损坏,可以用短接线直接把输入端子对公共端短接,看指示灯是否亮。
5.2 传感器输出电流不足
有些传感器输出电流只有几毫安,而PLC输入光耦需要7-10mA才能可靠导通。这种情况下,输入指示灯可能微亮,但程序读不到信号。解决方法:换输出电流更大的传感器,或者加一个中间继电器转换,或者选用低功耗输入的PLC型号。
我实测过,欧姆龙E3Z系列光电开关输出电流是100mA,完全没问题。但一些小型接近开关输出电流只有5mA,接FX3U就会出问题。所以选型时一定要看传感器手册的输出电流参数。
5.3 同时接NPN和PNP传感器
如果PLC输入公共端不能分组,比如FX3U,就不能同时接NPN和PNP传感器。解决方法:加中间继电器,把PNP传感器信号转换成NPN信号,或者反过来。中间继电器的线圈接传感器输出,触点接PLC输入,公共端按触点类型接。
如果PLC输入公共端可以分组,比如FX5U或S7-1200,可以把不同组的公共端分别接24V和0V,然后分别接NPN和PNP传感器。但要注意,同一组的传感器类型必须一致。
5.4 常见问题速查表
| 故障现象 | 可能原因 | 排查方法 | 解决方法 |
|---|---|---|---|
| 输入灯常亮 | 公共端接错 | 检查S/S或1M接法 | 按传感器类型改接公共端 |
| 输入灯不亮 | 传感器无输出 | 万用表测输出电平 | 检查传感器供电和类型 |
| 输入灯微亮 | 输出电流不足 | 测传感器输出电流 | 换传感器或加继电器 |
| 程序读不到信号 | 输入滤波过长 | 检查PLC输入滤波设置 | 调整滤波时间 |
| 高速计数不准 | 传感器类型不匹配 | 检查高速输入接法 | 统一用NPN传感器 |
5.5 独家避坑技巧
第一个技巧:接线前先用万用表确认传感器类型。方法很简单,给传感器接上24V和0V,用金属物体或手触发传感器,测输出线对0V电压。有信号时0V就是NPN,24V就是PNP。这个操作30秒搞定,比查手册快。
第二个技巧:PLC公共端接法不确定时,先接24V试NPN,如果灯常亮就改接0V试PNP。因为接错不会烧PLC,所以可以大胆试。但要注意,如果传感器是PNP,公共端接24V,输入灯会常亮,因为传感器输出24V和公共端24V之间没有压差,光耦不导通,但指示灯电路可能通过其他路径微亮。所以最好还是用万用表确认。
第三个技巧:多组输入公共端时,用不同颜色的线区分。比如1M用红色接24V,2M用黑色接0V,这样一眼就能看出哪组接了什么。我见过一个项目,1M和2M接反了,查了半天才发现。
第四个技巧:传感器供电和PLC供电共0V。如果传感器用独立电源,一定要把传感器电源的0V和PLC电源的0V接在一起,否则信号电平没有参考点,PLC读不到正确信号。这个坑我踩过,当时传感器用开关电源,PLC用另一个开关电源,0V没共,结果输入灯乱闪。
6. 从接线到程序:PNP/NPN对编程的影响
6.1 输入逻辑的取反处理
NPN传感器输出低电平有效,PNP传感器输出高电平有效。这意味着同样的物理动作,在PLC程序中读到的状态是相反的。比如一个NPN常开传感器,检测到物体时输出0V,PLC输入端子读到0,程序里对应输入点是OFF。而PNP常开传感器,检测到物体时输出24V,PLC输入端子读到1,程序里对应输入点是ON。
所以,如果你换了传感器类型但没有改程序,逻辑就会反。解决方法:在程序里对输入点取反,或者用常闭触点代替常开触点。我一般建议在硬件接线时统一传感器类型,避免程序里到处取反,容易乱。
6.2 高速计数和中断输入
高速计数和中断输入对PNP/NPN更敏感。因为高速信号频率高,光耦的响应速度有限,NPN输出拉低比PNP输出拉高更快,所以高速输入一般推荐用NPN传感器。三菱FX5U的高速输入端子手册里明确写了推荐NPN接法,西门子S7-1200的高速输入也推荐漏型接法。
如果你用PNP传感器接高速输入,可能会出现计数不准或丢脉冲。解决方法:换NPN传感器,或者降低信号频率,或者加高速光耦转换。
6.3 模拟量输入的PNP/NPN问题
模拟量输入不涉及PNP/NPN,因为模拟量是电压或电流信号,不是开关信号。但有些PLC的模拟量输入端子有公共端,需要接0V或24V,这个和数字量输入的公共端类似。具体要看手册,但一般模拟量输入公共端接0V。
7. 选型建议与扩展思考
7.1 传感器选型:NPN还是PNP
国内项目一般推荐NPN传感器,因为国内PLC市场三菱和国产PLC占比高,这些PLC默认漏型输入,配NPN传感器最方便。欧洲项目一般推荐PNP传感器,因为西门子PLC默认源型输入,配PNP传感器更常见。但这不是绝对的,具体要看PLC型号和项目要求。
我个人的经验是:如果项目用西门子PLC,优先选PNP传感器;如果项目用三菱或国产PLC,优先选NPN传感器。如果项目混用多种PLC,统一用NPN传感器,然后通过公共端接法适配。
7.2 中间继电器转换方案
如果传感器类型和PLC输入类型不匹配,又不想换传感器,可以用中间继电器转换。NPN传感器接继电器线圈,线圈另一端接24V,继电器触点接PLC输入,公共端按触点类型接。这样NPN信号就转换成了继电器触点信号,PLC输入类型就不重要了。
但中间继电器有响应时间,一般10ms左右,不适合高速信号。而且继电器寿命有限,频繁动作会坏。所以只适合低速、低频的场景。
7.3 光耦隔离转换模块
市面上有专门的光耦隔离转换模块,可以把NPN信号转换成PNP信号,或者反过来。这种模块响应速度快,寿命长,适合高速信号。但价格比中间继电器贵,而且需要额外供电。我一般用在高速计数或精密控制场景。
7.4 未来趋势:IO-Link和智能传感器
现在越来越多的传感器支持IO-Link,通过数字通信传输信号,不再依赖PNP/NPN电平。IO-Link传感器接IO-Link主站,主站再接PLC,接线简单,参数可配置,还能传输诊断信息。但IO-Link成本高,目前主要用于高端设备。传统PNP/NPN传感器在低成本场景下还会长期存在。
我个人在实际操作中的体会是,PNP和NPN这个问题,说到底就是电流方向的问题。你只要记住NPN输出拉低、PNP输出拉高,然后根据PLC公共端接法判断电流方向,就能搞定所有品牌的PLC接线。我见过太多人在这上面浪费时间,其实花5分钟搞懂原理,后面接线就是肌肉记忆。最后再分享一个小技巧:接线前用万用表确认传感器类型,接线后用短接线测试PLC输入端子,这两个步骤能排除90%的故障。