
1. 从一个烧掉的传感器说起为什么PNP和NPN值得你花5分钟刚入行那会儿我在一个包装线上调试遇到一个特别典型的问题一个接近开关明明感应到金属了指示灯也亮了但PLC输入端就是没信号。当时我第一反应是传感器坏了换了一个新的还是不行。后来老师傅过来看了一眼说了一句让我记到现在的话“你这个传感器是PNP的PLC公共端接的是0V信号根本进不去。”那一刻我才意识到PNP和NPN不是教科书上两个抽象的三极管符号而是直接决定你接线能不能跑起来的硬门槛。很多新手在选型时只看“检测距离”“输出类型”却忽略了最关键的输出极性结果买回来接上不动作还以为是PLC坏了。这篇文章就是写给那些被PNP和NPN绕晕过的人。不管你是刚接触PLC的电气小白还是做了几年但一直靠“试”来接线的老手我都会用最直白的方式把这件事讲透。核心关键词就几个PLC、PNP、NPN、西门子、三菱。我会从三极管原理讲到传感器输出再落到西门子和三菱的实际接线端子上最后给你几张可以直接照着接的实战图。你不需要记住复杂的半导体物理只需要搞明白一件事信号是从哪里流出来的又流回到哪里去。搞懂这一点PNP和NPN就再也不会分不清了。2. 把三极管开关讲成人话PNP和NPN到底在干什么2.1 三极管不是放大器吗怎么变成开关了很多人一听到三极管脑子里浮现的是模电课本里那个放大倍数β、输入输出特性曲线的玩意儿。但在PLC和传感器这个场景里三极管只干一件事当开关用。它要么导通要么截止不工作在放大区。你可以把它想象成一个水龙头。NPN和PNP的区别不在于水龙头能不能出水而在于水龙头的把手往哪个方向拧以及水是从上面来还是从下面来。具体到电路里三极管有三个极基极B、集电极C、发射极E。基极是控制端集电极和发射极是电流通过的主回路。对于NPN来说发射极接低电位0V集电极接负载负载的另一端接高电位24V。当基极给一个高电平信号三极管导通电流从集电极流向发射极负载得电。对于PNP来说发射极接高电位24V集电极接负载负载的另一端接低电位0V。当基极给一个低电平信号三极管导通电流从发射极流向集电极负载得电。注意这里说的“高电平”“低电平”是相对于三极管的基极驱动电路而言的不是PLC输入端那个信号。很多人在这里搞混后面我会专门讲。2.2 一张表看懂NPN和PNP的电流方向特性NPN型PNP型发射极接法接0V低电位接24V高电位集电极接法接负载负载另一端接24V接负载负载另一端接0V导通条件基极给高电平基极给低电平电流方向从集电极流向发射极从发射极流向集电极输出信号导通时输出低电平0V导通时输出高电平24V常见应用漏型输出、NPN传感器源型输出、PNP传感器这张表你不需要背但你要理解最后一行的逻辑。NPN传感器导通时信号线被拉到0VPNP传感器导通时信号线被拉到24V。这就是为什么PLC输入端接错类型会没反应——PLC的公共端决定了它期待的是高电平还是低电平信号。2.3 为什么传感器厂商要分PNP和NPN两种这个问题我问过做传感器的朋友答案很直接因为PLC的输入电路有两种传感器必须跟着PLC走。早期PLC的输入电路设计不同有的采用源型输入公共端接0V输入端期待高电平有的采用漏型输入公共端接24V输入端期待低电平。传感器厂商为了适配所有PLC就做了两种输出极性的版本。PNP传感器输出高电平适合漏型输入的PLCNPN传感器输出低电平适合源型输入的PLC。后来日系PLC和欧系PLC在习惯上形成了差异三菱、欧姆龙等日系品牌早期多用漏型输入所以配套的NPN传感器多西门子等欧系品牌多用源型输入所以配套的PNP传感器多。但这几年这个界限越来越模糊因为大部分PLC的输入公共端都可以通过接线方式切换源型/漏型。提示不要死记“三菱用NPN、西门子用PNP”这是过时的经验。正确做法是看PLC输入端的公共端接的是什么再决定选什么传感器。3. 传感器端的PNP和NPN三根线里藏着的秘密3.1 棕线、蓝线、黑线分别是什么随便拿一个工业传感器你都会看到三根线棕色、蓝色、黑色。这是工业标准色标含义固定棕色线接24V正极蓝色线接0V负极黑色线信号输出线对于PNP传感器黑色线在传感器动作时输出24V对于NPN传感器黑色线在传感器动作时输出0V。这就是最核心的区别。你可以用万用表验证给传感器接上24V和0V用金属靠近感应面然后测量黑色线对蓝色线的电压。如果是24V左右就是PNP如果是0V左右就是NPN。这个方法我在现场用过无数次比查型号手册快得多。3.2 为什么PNP传感器不能直接接NPN输入的PLC假设你有一个PNP传感器黑色线输出24V。你把它接到一个源型输入的PLC公共端接0V输入端期待低电平信号。当传感器动作时黑色线给PLC输入端送24V但PLC的输入电路期待的是0V所以光耦不导通PLC读不到信号。反过来NPN传感器输出0V接到漏型输入的PLC公共端接24V输入端期待高电平同样不动作。这就是为什么选传感器之前一定要确认PLC输入端的公共端接法。如果你已经买了传感器发现极性不匹配也不是没办法可以用中间继电器转换或者加一个上拉/下拉电阻但这些是补救措施最好在选型阶段就避免。3.3 两线制传感器为什么不分PNP和NPN有些传感器只有两根线比如某些光电开关和接近开关。这种传感器不分PNP和NPN因为它没有独立的电源线信号线和电源线复用。两线制传感器相当于一个可变电阻串联在PLC输入回路中。传感器动作时电阻变小回路电流增大PLC输入端检测到电流就认为有信号。两线制传感器的优点是接线简单缺点是漏电流可能影响PLC判断而且响应速度通常比三线制慢。在选型时如果PLC输入端对漏电流敏感建议还是用三线制。4. 西门子PLC实战接线PNP传感器怎么接4.1 西门子S7-1200的输入公共端怎么接以西门子S7-1200为例它的输入端子通常标着1M、2M等这些就是公共端。对于DC输入模块公共端可以接24V也可以接0V取决于你要接PNP还是NPN传感器。如果你要接PNP传感器公共端接0V。这样当传感器输出24V时输入端和公共端之间形成24V电位差光耦导通PLC读到信号。如果你要接NPN传感器公共端接24V。传感器输出0V时输入端被拉到0V与公共端的24V形成电位差光耦导通。注意西门子S7-1200的输入模块通常支持源型和漏型两种接法但同一个公共端组下的所有输入点必须统一。你不能在同一个1M组里混接PNP和NPN传感器。4.2 实战接线图描述假设你有一个PNP型接近开关要接到S7-1200的DI0.0通道传感器棕色线接24V正极传感器蓝色线接0V负极传感器黑色线接PLC的DI0.0端子PLC的1M公共端接0V负极PLC的L接24V正极M接0V负极这样接好之后传感器动作时黑色线输出24VDI0.0与1M之间产生24V电压PLC输入指示灯亮。如果你用的是NPN传感器只需要把1M公共端改接24V正极传感器黑色线仍然接DI0.0。传感器动作时黑色线输出0VDI0.0与1M之间产生24V电压差PLC同样能读到信号。4.3 西门子S7-200 SMART的注意事项S7-200 SMART的输入公共端标法略有不同通常是1M、2M而且有些型号的公共端是分组的。比如CPU SR20有8个输入点分为两组每组4个点共用一个公共端。接线时要注意分组不要把不同组的公共端混在一起。另外S7-200 SMART的输入模块内部已经有双向光耦理论上支持源型和漏型但实际使用时还是建议按照手册推荐的方式接线。我遇到过因为公共端接错导致输入指示灯微亮的情况那就是光耦处于临界导通状态信号不稳定。5. 三菱PLC实战接线NPN传感器怎么接5.1 三菱FX3U的输入公共端接法三菱FX3U的输入端子通常标着COM这个COM就是公共端。对于FX3U的DC输入COM端可以接24V也可以接0V但要注意FX3U的输入电路是漏型还是源型。FX3U的输入电路默认是漏型输入也就是COM端接24V输入端期待0V信号。所以它天然适合接NPN传感器。传感器动作时输出0V输入端被拉到0V与COM端的24V形成电位差光耦导通。如果你要接PNP传感器需要把COM端改接0V。但FX3U的COM端通常是多个输入点共用的改接之后所有共用该COM的输入点都必须接PNP传感器。5.2 实战接线图描述假设你有一个NPN型光电开关要接到FX3U的X0端子传感器棕色线接24V正极传感器蓝色线接0V负极传感器黑色线接PLC的X0端子PLC的COM端接24V正极PLC的24V端子接24V正极0V端子接0V负极传感器动作时黑色线输出0VX0与COM之间产生24V电压差PLC输入指示灯亮。如果你用的是PNP传感器把COM端改接0V负极传感器黑色线仍然接X0。传感器动作时输出24VX0与COM之间产生24V电压差PLC同样能读到信号。5.3 三菱FX5U的差异FX5U的输入电路和FX3U略有不同它的输入公共端标着COM但内部电路支持源型/漏型切换。具体来说FX5U的输入模块上有一个切换开关或者接线方式决定源型/漏型。我在实际项目中用过FX5U接PNP传感器COM端接0V工作正常。但要注意FX5U的输入响应时间比FX3U快接线时要注意屏蔽线的处理否则高速信号容易受干扰。特别是接PNP传感器时信号线是24V更容易耦合干扰。6. 源型/漏型、PNP/NPN、公共端三个概念一次理清6.1 源型输入和漏型输入到底指什么这是最容易混淆的地方。我见过很多资料把源型/漏型和PNP/NPN混着讲结果越看越糊涂。其实只要抓住一个核心电流从哪里来往哪里去。漏型输入PLC输入端期待低电平信号电流从PLC输入端流出经过外部开关流向0V。所以外部开关需要把信号线拉到0V也就是NPN传感器。COM端接24V。源型输入PLC输入端期待高电平信号电流从外部开关流入PLC输入端再流向0V。所以外部开关需要把信号线拉到24V也就是PNP传感器。COM端接0V。你可以这样记漏型输入配NPN源型输入配PNP。但要注意这个对应关系是相对于PLC输入电路而言的不同品牌的定义可能相反。最可靠的方法还是看PLC手册里的接线图。6.2 为什么同一个PLC既能接PNP又能接NPN因为PLC输入电路的核心是一个双向光耦。光耦的发光二极管有两个方向只要输入端和公共端之间有足够的电位差不管哪边高哪边低总有一个方向的二极管会导通。所以当你把公共端接0V时输入端给24V电流从输入端流向公共端光耦导通当你把公共端接24V时输入端给0V电流从公共端流向输入端光耦同样导通。这就是为什么同一个PLC可以通过改变公共端接法来适配PNP或NPN传感器。但要注意同一个公共端组下的所有输入点必须统一极性不能混接。6.3 一个容易踩的坑公共端分组很多PLC的输入点不是共用一个公共端而是分成几组。比如西门子S7-1200的CPU 1214C有14个输入点分为两组1M对应前8个点2M对应后6个点。如果你只改了1M的接法2M还是原来的那么后6个点的传感器极性就错了。我在一个项目里就遇到过这个问题前8个点接PNP传感器正常后6个点接NPN传感器不动作。查了半天才发现2M公共端接的是0V而NPN传感器需要公共端接24V。改过来之后立刻正常。提示接线前一定要看清楚PLC输入模块的公共端分组最好画一张接线草图标清楚每个公共端接什么电位。7. 现场排查传感器动作了但PLC没反应怎么办7.1 第一步确认传感器输出极性不要猜直接用万用表测。给传感器接上24V和0V用金属或遮挡物触发传感器测量黑色线对蓝色线的电压。如果是24V就是PNP如果是0V就是NPN。这个方法最快最准。如果手头没有万用表可以看传感器上的型号标签。通常型号里会带“P”或“N”比如“PNP”或“NPN”。但有些厂商的命名规则不同最好还是查手册。7.2 第二步确认PLC公共端接法找到PLC输入模块的公共端看它接的是24V还是0V。如果公共端接0VPLC期待高电平信号应该配PNP传感器如果公共端接24VPLC期待低电平信号应该配NPN传感器。如果公共端接法和传感器极性不匹配有两种解决方案一是改公共端接法二是换传感器。改公共端接法更简单但要注意同一组下所有输入点都要统一。7.3 第三步检查接线是否松动或接错我遇到过好几次传感器极性没问题公共端也没问题但就是不动作。最后发现是黑色线接错了端子或者端子螺丝没拧紧。特别是现场施工时线号管看不清很容易接错。建议接线完成后用万用表通断档逐个检查传感器黑色线到PLC输入端子的通断公共端到24V或0V的通断。确认无误后再上电。7.4 第四步检查传感器是否损坏如果以上都没问题那可能是传感器坏了。可以用替换法拿一个同型号的传感器换上试试。或者用万用表测量传感器黑色线在触发时的电压变化如果没有变化说明传感器输出级损坏。传感器损坏的原因很多最常见的是接错电源极性。棕色线接0V、蓝色线接24V一上电传感器就烧了。所以接线时一定要看清色标不要凭感觉。8. 选型建议新项目到底该选PNP还是NPN8.1 看PLC品牌和型号虽然前面说了不要死记品牌但实际选型时品牌习惯还是有参考价值的。西门子PLC的输入模块默认推荐源型接法也就是公共端接0V配PNP传感器。三菱PLC的输入模块默认推荐漏型接法也就是公共端接24V配NPN传感器。如果你用的是西门子S7-1200或S7-1500建议优先选PNP传感器。如果你用的是三菱FX3U或FX5U建议优先选NPN传感器。这样接线最直接不需要改公共端。8.2 看项目所在地的供应链这个经验可能有点“土”但很实用。如果你在日系设备为主的工厂NPN传感器库存多、采购快如果你在欧系设备为主的工厂PNP传感器更常见。选型时考虑一下备件供应后期维护会方便很多。我在一个日系工厂做过改造当时选了PNP传感器结果备件库里全是NPN坏了之后要等一周才能到货。后来改回NPN问题就没了。8.3 看安全要求有些安全相关的传感器比如安全光幕、安全门开关通常只提供PNP输出。因为PNP输出在断线时信号线是0VPLC能检测到断线故障而NPN输出断线时信号线悬空PLC可能误判。所以安全回路建议优先选PNP。当然这也不是绝对的具体要看安全模块的要求。但如果你不确定选PNP通常更稳妥。9. 几个我踩过的坑和总结的经验第一个坑以为所有三菱PLC都只能用NPN。实际上FX3U和FX5U都可以通过改公共端接法来适配PNP只是很多人不知道。我在一个项目里用FX5U接PNP传感器COM端接0V工作完全正常。第二个坑忽略了公共端分组。前面提过S7-1200的输入点分组改公共端时只改了一组另一组没改导致部分输入点不动作。这个坑我踩过两次后来养成了画接线图的习惯。第三个坑用两线制传感器替代三线制。两线制传感器虽然接线简单但漏电流可能导致PLC输入端微亮特别是高阻抗输入模块。如果发现输入指示灯在传感器未触发时微亮大概率是漏电流问题加一个分流电阻或者换三线制传感器。第四个坑传感器电源和PLC电源不共地。有些现场传感器用独立的24V电源PLC用另一个24V电源两个电源的0V没有连在一起。这样传感器输出的24V信号在PLC看来没有参考点输入电路不导通。解决方法很简单把两个电源的0V连在一起。最后一个经验接线前先画图接线后先测量。不要凭记忆接线不要凭感觉判断。画一张简单的接线图标清楚每根线的去向和公共端的电位接完之后用万用表确认一遍。这个习惯让我少加了很多班。如果你刚开始接触PLC接线建议找几个报废的传感器和PLC反复练习PNP和NPN的接线用万用表测量信号电压。练上十几次形成肌肉记忆以后看到传感器型号就能条件反射地知道该怎么接。这比看任何教程都管用。