ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

PLC接线中PNP与NPN的实战解析:从原理到西门子三菱应用

PLC接线中PNP与NPN的实战解析:从原理到西门子三菱应用 1. 为什么PNP和NPN总让人栽跟头干自动化这行十几年我见过太多人在这两个词上翻车。不是烧了输入点就是传感器死活不动作查了半天线路才发现是PNP的传感器接进了要求NPN信号的PLC输入端子。更冤的是有些兄弟把PLC的公共端COM接错一上电就冒烟。这类问题在论坛上几乎每周都有人问说到底就是没把PNP和NPN的电流方向这件事彻底搞明白。这篇文章我打算用最直白的方式把PNP和NPN在PLC接线里的来龙去脉讲清楚。不管你是刚入行的电工、自学PLC编程的爱好者还是做了几年但一直靠经验接线没深究原理的老手看完都能有收获。我会从三极管的基本原理讲起然后落到传感器和PLC输入输出的实际接线最后给出西门子和三菱两个主流品牌的实战接线方案。整个过程不需要你翻教材跟着我的思路走就行。核心关键词先摆出来PLC、PNP、NPN、西门子、三菱。这五个词贯穿全文搞懂它们之间的关系接线这件事就再也不会含糊了。2. 从三极管到传感器PNP和NPN的本质区别2.1 三极管层面的PNP和NPN到底差在哪很多人一上来就看接线图结果越看越糊涂。我的建议是先花两分钟把三极管的电流方向搞清楚后面所有问题都会迎刃而解。三极管有三个极基极B、集电极C、发射极E。NPN和PNP的区别核心就在电流方向和导通条件上。NPN三极管电流从集电极流向发射极也就是C到E。导通条件是基极电压比发射极电压高出一个PN结压降约0.7V。简单记NPN是“拉低”型它的输出端在导通时相当于接到负极GND。PNP三极管电流从发射极流向集电极也就是E到C。导通条件是基极电压比发射极电压低一个PN结压降。PNP是“拉高”型它的输出端在导通时相当于接到正极VCC。用一个生活化的类比把三极管想象成一个水龙头。NPN的水龙头出水口朝下打开后水往低处流流向GNDPNP的水龙头出水口朝上打开后水往高处流流向VCC。这个方向感建立起来之后后面看接线图就不会晕。注意这里说的“高”和“低”是相对于电源正负极而言的不是绝对电压值。24V系统里高就是24V低就是0V。2.2 传感器上的PNP和NPN是怎么定义的工业现场用的接近开关、光电开关内部核心就是一个三极管加振荡电路。厂家把这个三极管做好了封装引出三根线棕色接正极V、蓝色接负极V-、黑色是信号输出线。NPN型传感器输出管是NPN三极管。当传感器检测到目标时黑色信号线内部导通到蓝色线负极输出低电平0V。所以NPN传感器也叫“低电平有效”或“漏型输出”Sinking。PNP型传感器输出管是PNP三极管。当传感器检测到目标时黑色信号线内部导通到棕色线正极输出高电平24V。所以PNP传感器也叫“高电平有效”或“源型输出”Sourcing。这里有个容易混淆的点传感器的“NPN”和“PNP”命名指的是它内部输出三极管的类型不是指它输出信号的极性。但因为三极管类型直接决定了输出信号极性所以实际使用中大家就默认NPN等于输出低电平PNP等于输出高电平。2.3 为什么PLC输入端子对PNP和NPN有要求PLC的输入电路本质上是一个光耦隔离电路。光耦里面有一个发光二极管需要电流流过才能发光光耦导通后PLC才能识别到信号。问题来了电流是有方向的。PLC输入端的公共端COM或M接法不同决定了电流从哪个方向流过光耦。漏型输入Sinking Input公共端接正极24V电流从公共端流入经过光耦从输入端子流出到传感器的输出端再通过传感器内部导通到负极。这种接法要求传感器是NPN型因为NPN传感器导通时把信号线拉到0V电流才能从PLC公共端流向传感器。源型输入Sourcing Input公共端接负极0V电流从传感器的输出端流入PLC输入端子经过光耦从公共端流出到负极。这种接法要求传感器是PNP型因为PNP传感器导通时输出24V电流才能从传感器流向PLC。一句话总结PLC输入公共端接正极配NPN传感器公共端接负极配PNP传感器。这个对应关系记死了接线就不会出大错。3. 西门子PLC的PNP/NPN接线实战3.1 西门子S7-200 SMART的输入接线西门子S7-200 SMART在小型自动化项目里用量极大它的输入端子设计比较灵活但也是最容易接错的一款。S7-200 SMART的输入端子有1M、2M等公共端。以CPU SR20为例输入点I0.0到I0.7共用1M公共端。这个1M可以接24V正极也可以接0V负极取决于你用的传感器类型。接NPN传感器时1M接24V正极。传感器棕色接24V蓝色接0V黑色接输入点如I0.0。当传感器动作时黑色输出0V电流从1M24V经过光耦流向I0.0再经过传感器到0V光耦导通PLC读到信号。接PNP传感器时1M接0V负极。传感器棕色接24V蓝色接0V黑色接输入点。当传感器动作时黑色输出24V电流从传感器经过I0.0经过光耦流向1M0V光耦导通PLC读到信号。这里有个实操细节S7-200 SMART的输入端子上1M和2M是分开的。如果你一组输入接NPN传感器另一组接PNP传感器理论上可以分别接不同的公共端。但我不建议这么干现场维护时太容易搞混。统一用一种类型的传感器省心。实操心得西门子S7-200 SMART的输入公共端在端子排上标注为1M、2M不是COM。很多新手找半天找不到COM在哪其实西门子叫M三菱叫COM功能一样。3.2 西门子S7-1200/1500的输入接线S7-1200和S7-1500的输入模块比如SM1221、SM521输入公共端通常标注为1M、2M。接线逻辑和S7-200 SMART一致但有一点需要注意S7-1200/1500的输入模块支持源型和漏型两种接法但需要确保同一模块内所有输入点的公共端接法一致。以SM1221 DI 8x24VDC为例它的1M是8个输入点共用的。你要么1M接24V配NPN传感器要么1M接0V配PNP传感器不能混着来。在实际项目中我基本都推荐用PNP传感器配西门子PLC。原因有两个第一PNP传感器输出24V高电平抗干扰能力比NPN输出的0V强长距离传输时信号更稳定第二欧洲品牌的设备默认就是PNP逻辑西门子作为欧洲品牌它的生态系统更偏向PNP。你如果做出口设备或者跟欧洲设备配套用PNP会省很多事。3.3 西门子PLC输出端的PNP/NPN问题输入说完了输出端也得提一句。PLC的输出类型分继电器输出、晶体管输出和晶闸管输出。继电器输出无所谓PNP/NPN因为它就是一个干接点不分极性。但晶体管输出就有讲究了。西门子S7-200 SMART的晶体管输出型如CPU ST20输出端是源型输出PNP输出。也就是说输出点Q0.0导通时Q0.0输出24V高电平。这意味着你接负载时负载的另一端要接0V。如果你用的是NPN输入的设备比如某些伺服驱动器的输入信号要求低电平有效那就需要在PLC输出端和负载之间加一个中间继电器转换或者选用漏型输出的PLC模块。这一点在选型时就要确认好别等柜子装完了才发现不匹配。4. 三菱PLC的PNP/NPN接线实战4.1 三菱FX3U的输入接线三菱FX3U在国内市场保有量巨大尤其是FX3U-32MR这类继电器输出型号几乎每个做非标自动化的公司都有几台。FX3U的输入端子公共端标注为COM而且FX3U的输入是漏型/源型可切换的。具体怎么切换看S/S端子。FX3U的输入端子上有一个S/S端子有些型号标注为SS。这个S/S端子就是输入公共端的选择端子。S/S接24V输入为漏型Sinking配NPN传感器。传感器黑色接输入点X0传感器导通时输出0V电流从S/S24V经过光耦流向X0再经过传感器到0V。S/S接0V输入为源型Sourcing配PNP传感器。传感器黑色接输入点X0传感器导通时输出24V电流从传感器经过X0经过光耦流向S/S0V。FX3U的S/S端子是所有输入点共用的所以整台PLC的输入只能统一用一种类型的传感器。这一点和西门子S7-200 SMART不同S7-200 SMART可以分组设置FX3U不行。注意三菱FX3U的输入端子排上COM和S/S是两个不同的端子。COM是输入点的公共端内部已经连接S/S是光耦公共端。接线时只需要接S/SCOM不需要额外接线。很多新手看到COM就往上接24V结果一上电就短路。记住FX3U输入接线只接S/S不接COM。4.2 三菱FX5U的输入接线FX5U是三菱近年主推的替代FX3U的机型输入接线逻辑和FX3U基本一致但端子标注有所变化。FX5U的输入公共端标注为S/S同样是所有输入点共用。FX5U的输入电路支持漏型和源型切换方式也是通过S/S端子的接法。S/S接24V配NPNS/S接0V配PNP。但FX5U有一个改进它的输入响应速度比FX3U快很多高速输入点可以做到微秒级响应。如果你用FX5U接PNP传感器做高速计数信号质量会比FX3U好不少。不过前提是传感器的响应频率要跟得上普通接近开关的响应频率也就几百赫兹接高速输入点意义不大。4.3 三菱PLC输出端的PNP/NPN问题三菱FX3U的晶体管输出型如FX3U-32MT输出端是漏型输出NPN输出。输出点Y0导通时Y0拉到0V。这意味着你接负载时负载的另一端要接24V。这和西门子S7-200 SMART的晶体管输出正好相反。西门子是源型输出PNP三菱是漏型输出NPN。所以如果你要把三菱PLC的输出信号接到西门子PLC的输入端中间必须做电平转换不能直接对接。我见过一个项目工程师用三菱FX3U的晶体管输出直接接西门子S7-200 SMART的输入点结果西门子PLC死活读不到信号。查了半天才发现三菱输出导通时是0V而西门子输入公共端接的是0V配PNP传感器两个0V怼在一起光耦根本没有电流流过。后来加了一个中间继电器才解决。5. 传感器与PLC匹配的选型原则5.1 先确定PLC的输入类型再选传感器这是最稳妥的流程。不要先买传感器再配PLC而是先看PLC的输入公共端怎么接方便再决定用PNP还是NPN传感器。如果你用的是西门子S7-200 SMART或S7-1200我建议统一用PNP传感器公共端接0V。原因前面说了抗干扰强符合欧洲标准。如果你用的是三菱FX3U或FX5UPNP和NPN都可以但要注意S/S端子的接法。如果现场已经有大量NPN传感器那就S/S接24V继续用NPN。如果新项目建议用PNPS/S接0V。5.2 不同品牌PLC混用时的注意事项现实项目中经常遇到西门子和三菱混用的情况比如主控用西门子S7-1500现场从站用三菱FX3U。这时候信号交互就要特别注意电平匹配。信号方向发送端接收端是否直接连接解决方案三菱输出到西门子输入三菱NPN输出0V有效西门子输入配PNP公共端0V不可以加中间继电器或改用西门子输入公共端接24V西门子输出到三菱输入西门子PNP输出24V有效三菱输入S/S接0V可以直接连接三菱输入配PNP模式三菱输出到三菱输入三菱NPN输出三菱输入S/S接24V可以直接连接注意共0V西门子输出到西门子输入西门子PNP输出西门子输入公共端接0V可以直接连接注意共0V这张表建议截图保存现场调试时拿出来对照能省很多时间。5.3 两线制和三线制传感器的区别现场用的传感器除了三线制棕蓝黑还有两线制。两线制传感器只有两根线不分PNP和NPN但它有漏电流的问题。两线制传感器在未动作时需要一定的漏电流来维持内部电路工作这个漏电流通常在0.5mA到1mA左右。对于PLC输入来说这个漏电流可能不足以让光耦导通但也可能刚好处于临界状态导致PLC误判。我的经验是PLC输入尽量用三线制传感器不要用两线制。三线制传感器工作电源和信号输出分开没有漏电流问题信号干净利落。两线制传感器只适合接中间继电器或者对信号要求不高的场合。6. 常见问题与排查技巧实录6.1 传感器动作了但PLC没反应这是最常见的故障。排查步骤按以下顺序来确认传感器类型和PLC输入公共端接法是否匹配。NPN传感器配公共端接24VPNP传感器配公共端接0V。用万用表量一下传感器黑色线对蓝色线的电压动作时NPN应该是0VPNP应该是24V。确认传感器供电是否正常。棕色对蓝色量一下应该是24V。如果电压偏低检查电源容量是否足够。确认PLC输入点是否损坏。把传感器黑色线拆下来直接用一根导线短接输入点到公共端注意公共端电压看PLC输入指示灯是否亮。如果不亮输入点可能烧了。确认PLC程序里输入点地址是否正确。我遇到过工程师把I0.0接到I0.1上程序里写I0.0查了一下午。6.2 传感器没动作但PLC输入指示灯常亮这种情况通常是漏电流或者感应电压导致的。如果是两线制传感器漏电流可能导致PLC输入常亮。换成三线制传感器即可解决。如果是三线制传感器检查信号线是否和动力线走在一起。变频器输出线、伺服电机线这些强电线路会在信号线上感应出电压导致PLC误判。解决方法信号线单独走线槽或者用屏蔽线并单端接地。还有一种可能是PLC输入点的响应时间设置太短导致干扰信号被捕捉到。在PLC编程软件里把输入滤波时间调大一些比如从默认的几毫秒调到十几毫秒能过滤掉大部分干扰。6.3 西门子PLC接PNP传感器时输入点烧毁这个问题我见过好几次基本都是公共端接错导致的。西门子S7-200 SMART的输入公共端1M如果接PNP传感器1M必须接0V。但有些工程师习惯了接24V结果PNP传感器输出24V1M也接24V传感器动作时24V直接怼到光耦两端没有限流电阻光耦瞬间烧毁。重要提示接线前一定用万用表确认公共端电压。西门子PLC的输入公共端标注为1M、2M不是COM不要想当然地接24V。6.4 三菱FX3U的S/S端子接错导致所有输入失效三菱FX3U的S/S端子如果悬空不接所有输入点都不会工作。有些新手看到S/S不知道接什么就空着结果PLC上电后输入指示灯一个都不亮。S/S端子必须接配NPN传感器接24V配PNP传感器接0V。没有第三种选择。另外FX3U的输入端子排上COM和S/S是分开的。COM是输入点的内部公共端不需要外部接线。如果你把24V接到COM上相当于把24V直接短路到0V因为COM内部已经连接到输入电路的地会烧毁PLC内部电路。6.5 常见问题速查表现象可能原因排查方法解决方案传感器动作PLC无反应传感器类型与公共端不匹配万用表量传感器输出信号调整公共端接法或更换传感器PLC输入常亮不灭漏电流或感应电压拆掉传感器信号线看指示灯是否熄灭换三线制传感器或加滤波输入点烧毁公共端接错导致过流检查公共端电压更换输入模块重新接线所有输入失效S/S端子悬空或接错量S/S端子电压按传感器类型接24V或0V信号时有时无线缆接触不良或干扰晃动线缆观察指示灯重新压接端子信号线远离动力线7. 几个容易忽略的实操细节7.1 共0V的问题不管是PNP还是NPN传感器和PLC的0V必须共在一起。很多现场故障就是因为传感器电源和PLC电源是分开的0V没有共导致信号回路不通。我的做法是在控制柜里设一个公共的0V端子排所有传感器的蓝色线、PLC的0V、开关电源的0V全部接到这个端子排上。这样不管用什么类型的传感器0V都是共的不会出问题。7.2 传感器电源容量计算一个24V开关电源能带多少个传感器这个要算一下。普通三线制接近开关的工作电流大约10mA到15mA。一个100W的24V开关电源额定输出电流约4A。理论上能带200多个传感器。但实际上要留余量一般按70%负载率计算带150个左右没问题。但如果传感器是光电开关或者激光传感器工作电流可能达到30mA到50mA那就要重新计算。另外如果传感器带加热功能或者输出电流较大也要单独计算。7.3 接线端子的压接质量这个问题看起来小但实际故障率很高。我见过太多因为端子压接不牢导致的间歇性故障。压接端子时注意剥线长度要合适不能太长导致铜丝外露也不能太短导致压接不牢。压线钳要选对规格压接后拉一下线确认不会脱落。如果是多股软线最好先拧紧再压接或者用管状端子。7.4 标记和文档接线完成后一定要在端子排和线缆上做好标记。标记内容至少包括线号、信号类型PNP/NPN、传感器类型、对应PLC地址。我习惯用不同颜色的号码管区分红色用于24V正极蓝色用于0V负极黄色用于信号线。这样后期维护时一眼就能看出线的作用不用翻图纸。8. 从接线到编程的衔接8.1 输入信号在梯形图中的表现PNP和NPN的差异在梯形图编程层面其实没有区别。PLC输入点读到信号后梯形图里就是常开触点闭合或常闭触点断开编程时不需要关心传感器是PNP还是NPN。但有一个地方需要注意急停、限位等安全信号。如果安全信号用的是常闭触点接线时要确保传感器或开关在正常状态下输出信号PLC输入点常亮。这样一旦线路断开PLC输入点熄灭程序能立即检测到故障。8.2 输出信号驱动不同负载PLC输出点驱动负载时要注意负载的电压和电流。继电器输出可以直接驱动220V的接触器线圈但晶体管输出只能驱动24V直流负载而且电流一般不超过0.5A。如果负载电流超过PLC输出点的额定值需要加中间继电器或者固态继电器。中间继电器的线圈电压要和PLC输出类型匹配PNP输出配24V线圈的继电器NPN输出配24V线圈的继电器注意继电器线圈的极性。8.3 调试时的信号模拟现场调试时如果传感器还没装好可以用导线短接输入点到公共端来模拟信号。但要注意短接时一定要确认公共端电压不要短接到错误的电压上。更安全的做法是用一个按钮开关或者拨动开关一端接输入点另一端接公共端对应的电压。这样调试时不会因为误短接而烧毁PLC。9. 个人经验总结PNP和NPN这件事说穿了就是电流方向的问题。三极管层面搞懂了传感器层面搞懂了PLC输入公共端搞懂了接线就再也不会错。我个人的习惯是新项目统一用PNP传感器PLC输入公共端接0V。这样不管是西门子还是三菱接线逻辑一致现场维护也方便。如果客户指定用NPN传感器那就把公共端接24V同时做好标记避免后期有人误改。最后分享一个我用了很多年的小技巧在控制柜门内侧贴一张A4纸上面画一个简单的接线示意图标注清楚传感器类型、公共端接法、PLC输入地址。这样不管是谁来维护打开柜门就能看懂不用打电话问我。这个习惯帮我省了无数个深夜被叫去现场的电话。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进