
先回答一个被问烂了却依然有人搞混的问题NPN和PNP传感器到底怎么接PLC这篇文章不绕弯子直接给你把原理、接线、实操、排错讲透。全文基于我实际调试三菱FX3U、西门子S7-1200以及各种国产PLC的经验来写新手看完能直接上手接线老手也能在混接排查那块找到点新东西。记住5分钟理解不是问题5分钟接好线才是目的。1. 三极管开关逻辑NPN和PNP的本质区别一句话就能说清很多教程上来就讲电路图结果越讲越晕。今天换个思路先讲清楚这两个词到底在说什么。NPN和PNP指的是传感器内部输出级的三极管类型。三极管在这里不是用来放大的是当开关用的。1.1 NPN三极管的导通与截止条件NPN三极管的结构是集电极C接正电源发射极E接负极0V基极B是控制端。当基极电压比发射极电压高约0.7V时管子导通电流从集电极流向发射极。当基极电压不够或者为零管子截止电流通道断开。对应到传感器上NPN型传感器导通时输出线会被拉低到0V。也就是说负载一端接在24V正极另一端接传感器输出线。传感器一旦检测到目标内部三极管导通负载下端被接到0V电流流过负载形成一个完整的回路。传感器不触发时输出线和0V之间是断开的负载两端没有电压差自然不工作。这是理解NPN的钥匙导通即拉低输出低电平。脉冲信号从24V变成0VPLC的输入点能捕获到这个下降沿。1.2 PNP三极管的导通与截止条件PNP三极管的极性跟NPN正好相反。发射极E接正电源集电极C接负载基极控制信号是低电平有效。当基极电压比发射极低0.7V左右时管子导通电流从发射极流向集电极。这也就是说PNP管是高侧开关它在导通时把正电源送到负载上。对应传感器PNP型导通时输出线被拉高到24V。负载一端接0V另一端接传感器输出线。传感器触发时输出线输出24V电流从传感器输出经负载流到0V负载得电工作。PNP的理解钥匙恰恰相反导通即拉高输出高电平。脉冲信号从0V变成24VPLC输入点捕获到上升沿。1.3 传感器输出级为什么都用集电极开路结构你可能会问传感器内部既然已经有三极管了为什么不能直接把输出接进去还要搞什么集电极开路因为传感器厂家不知道你外部的负载是什么、电压是多少、电流多大。集电极开路OC门就是把三极管的集电极单独引出来不接内部任何电源这样你就可以在外面随便接不同电压的负载。对于NPN来说输出管集电极开路发射极接传感器内部0V触发时输出线直接和0V接通。对于PNP来说输出管集电极开路发射极接内部电源正极触发时输出线直接和电源正极接通。明白了这个结构后面接PLC就非常有数。PLC输入端就是一个负载你说它接在0V侧还是24V侧决定了你该配NPN还是PNP。2. PLC输入端两种接线制式漏型输入和源型输入这是接线的底层逻辑上面理解了传感器现在要反过来看PLC。PLC的输入端不是简单的两根线它由内部电路和公共端COM端或M端构成有漏型Sink和源型Source两种接法。搞不懂这两个词接线必出问题。2.1 漏型输入Sink Input电流流入输入端日系PLC三菱FX系列、欧姆龙CP系列、台达DVP系列大多数默认漏型输入。什么叫漏型电流从公共端COM流进PLC输入端子再通过传感器流到0V。这么说可能有点绕换个角度漏型输入时COM端接的是24V正极输入端子X需要通过外接元件拉低到0V才能形成电流。所以漏型PLC配NPN传感器是天作之合。NPN传感器导通时把输出线拉到0V电流从COM端经过PLC内部光电耦合器、经过X端子、经过传感器内部三极管流到0V。光电耦合器有电流流过PLC就读到信号了。三菱FX3U手册里的规范表达是FX3U输入端子的公共端接电源正极输入信号为低电平有效。这是标准的漏型接法。2.2 源型输入Source Input电流从输入端流出源型输入是欧系PLC西门子S7-1200/1500、部分基恩士、松下等的常见形式。源型输入时PLC输入端的公共端M接0V输入端子需要外部信号把高电平24V送进来。信号端是高电平电流从传感器输出流入PLC输入端子再经过内部回路流回COM0V。源型输入配PNP传感器是标配。PNP传感器导通时输出24V这个高电平信号进入PLC的X端子电流从传感器输出流过光电耦合器最后回到0V公共端。PLC读到一个1信号。一句话记住PLC公共端接的是正极要配NPN传感器公共端接的是负极要配PNP传感器。这是整个接线的核心口诀。2.3 万用表实测看电平不如看电流方向很多新手问我用万用表怎么量传感器输出是NPN还是PNP我教你的方法任何场合都好使。第一步给传感器通电棕色线接24V蓝色线接0V。第二步万用表打到直流电压档红表笔接传感器黑色输出线黑表笔接0V。第三步触发传感器看电压变化。如果无触发时电压约为24V触发瞬间降到0V附近说明输出是NPN型导通拉低。 如果无触发时电压约为0V触发瞬间升到24V说明输出是PNP型导通拉高。这个方法的本质就是检测输出电压的高低变化。注意如果传感器是常闭型NC电平变化方向会反过来判断时要把是常开还是常闭也考虑进去。3. 三菱FX3U接NPN传感器标准接法一步一步来现在进入正题。三菱FX3U是市面上最常见的小型PLC也是很多人的入门机型。它同时支持漏型和源型输入出厂默认能接NPN传感器。如果你的项目用的就是FX3U或类似日系PLC这一节直接照做。3.1 FX3U的输入端子和COM端关系FX3U的输入端子编号是X0到X17等输入公共端是S/S或者是COM端子。不同型号位置不同接线逻辑完全一致。FX3U内部每个X端子与S/S端子之间串联了一个光电耦合器和一个限流电阻。所谓漏型接法就是S/S端子接24V外部NPN传感器导通时把X端子拉到0V。顺着这个思路电流路径是24V → S/S端子 → 内部光耦 → X端子 → 传感器输出线 → 传感器内部三极管 → 0V。3.2 NPN传感器与FX3U的具体接线步骤所需工具和材料NPN型接近开关或光电传感器1只、三菱FX3U PLC 1台、24V开关电源1台、导线若干建议0.5到0.75平方、剥线钳、万用表。接线步骤确认传感器线色定义棕色线接24V蓝色线接0V黑色线是信号输出。开关电源的V端子接PLC的S/S端子或者用导轨端子排转接。开关电源的V-端子接传感器蓝色线。开关电源的V端子还要接传感器棕色线。传感器黑色输出线接PLC的X0端子。如果还有其他传感器黑色线分别接X1、X2等棕色蓝色线并联到电源正负即可。接完线之后给PLC通电在编程软件GX Works2或GX Developer里监视X0的状态。用手或金属块靠近传感器感应面X0应该从OFF变为ON。如果没反应先检查传感器的供电指示灯有没有亮再用万用表在传感器输出线和0V之间量电压变化。这里有一个常见坑有些FX3U的S/S端子在出厂时可能接了一个跳线或者你需要对照说明书确认具体位置。我遇到过学员把S/S接到0V上了结果传感器怎么触发PLC都没反应因为输入回路完全反了。3.3 FX3U改成源型接法接PNP传感器行不行FX3U支持源型输入关键还是在S/S端子上做文章。源型接法时S/S端子接0V外部信号必须是高电平有效这样电流路径是24V → 传感器输出线 → X端子 → 内部光耦 → S/S端子 → 0V。这种接法适合PNP传感器。你有没有发现接线图上传感器棕色线依然接24V蓝色线依然接0V变化的只是PLC公共端的位置。这也解释了为什么很多人手上只有PNP传感器照样能用FX3U前提是你把S/S接到0V上。但是FX3U源型接法对模块型号有要求某些早期型号或者晶体管输出型PLC可能只支持漏型。换型号之前先翻一下手册别改完接线发现输入点根本不工作白折腾半天。3.4 FX3U接线实操中的注意事项以下是实际项目里踩过的坑写下来给你避雷。电源共地问题传感器和PLC必须共用一个0V参考点。如果你用了两个开关电源一个给PLC供电一个给传感器供电两个电源的0V端子必须接在一起。不然传感器输出的0V和PLC内部的0V不是同一个电位信号永远传不过去。这问题特别隐蔽万用表量着有电压PLC就是没反应最后查半天发现是两个电源没共地。传感器压降NPN传感器导通时三极管本身有饱和压降大概0.2到0.7V。这意味着X端子的低电平不是绝对的0V而是0.2V左右。对于PLC输入电路来说0.2V足够判定为逻辑0完全没有问题。但如果传感器输出线接了很长距离线缆本身有压降信号质量会下降。长距离传输建议用屏蔽线屏蔽层单端接地。线径和颜色标准国产传感器线色基本统一棕正蓝负黑输出但进口传感器不一定守规矩。德国和日本的一些老型号传感器输出线可能是灰色或者粉色的。接之前一定看铭牌或说明书不要凭经验瞎猜。我见过一台德国传感器输出线是绿色的差点被当成接地线接错。感应类型不影响接法不管是接近开关电感式、电容式、光电传感器、霍尔传感器还是光纤放大器只要输出级是NPN接线方式完全一样。传感器检测原理区别很大但输出级逻辑是一样的。这个规律能帮你少记很多东西。4. 西门子S7-1200接PNP传感器源型输入的标准接法西门子S7-1200是欧系PLC里市场占有率最高的和日系PLC的接法思维完全不一样。S7-1200的CPU本体集成数字量输入默认是源型输入也就是要求外部信号提供高电平。对应的传感器自然是PNP型。4.1 S7-1200源型输入原理与端子定义S7-1200的输入端子有一个公共参考点叫做1M或者M端子。源型接法时M端子接24V的0V。输入端子DI接到外部传感器的信号线传感器触发时输出24V电流从传感器输出流入DI端子经过内部电路回到M端子0V。如果你把PNP传感器接到S7-1200上信号路径是24V → 传感器内部三极管 → 输出线 → DI端子 → 内部光耦 → M端子 → 0V。这和FX3U源型接法几乎一模一样。但S7-1200的CPU本体输入不能改接成漏型除非用特殊型号的SM模块所以不要试图用NPN传感器直连S7-1200的本体输入结果大概率是信号读不到。4.2 S7-1200接PNP传感器的具体步骤接线步骤确认传感器是PNP型棕色线接24V蓝色线接0V黑色线是信号输出。开关电源0V端子接PLC的M端子。开关电源24V端子接传感器棕色线。开关电源0V端子接传感器蓝色线。传感器黑色线接PLC的DI a.0端子以S7-1200 CPU 1214C为例。PLC上电后在博途TIA Portal里新建项目添加CPU监视DI a.0的输入状态。正常触发传感器后DI a.0应该会变成绿色对勾TRUE。如果没信号优先检查传感器的电源指示灯再量DI端子和M端子之间的电压。PNP传感器触发时这个电压应该在24V左右。4.3 西门子S7-1200只买了NPN传感器怎么办这个问题几乎是新手必问。方案有三条按推荐顺序排。方案一买一个继电器转接模块或者光耦隔离模块做电平转换。这是最稳的做法。中间继电器线圈是24V由NPN传感器控制继电器的常开触点一端接24V另一端接PLC的DI端子。NPN传感器触发时继电器线圈得电触点闭合24V信号送到DI端子。但是继电器响应有延迟高速信号别用光耦模块更合适。方案二更换PLC输入模块。S7-1200有支持漏型输入的SM 1221数字量输入模块型号和订货号在博途里查得到。这种模块可以直接配NPN传感器不用做转换。缺点是预算增加而且还得占一个扩展槽位。方案三换传感器。如果传感器还没装到设备上直接换成PNP型号成本最低改动量最小。我已经不止一次遇到客户为了省钱用NPN传感器配S7-1200最后花在转接模块上的钱比传感器差价还贵。所以选型阶段最好先确定PLC型号再下单传感器。4.4 西门子PLC接传感器时的常见误区很多教程说西门子PLC只能接PNP传感器这句话不完全对。S7-1200本体的DI点确实是源型输入只能配PNP或者用外接继电器转换。但S7-200 SMART则有些型号可以配置为漏型/源型两用S7-1500的某些AI/AO模块和DI模块也支持两种接法。所以查手册永远是第一位的别用一个型号的接线经验套所有型号。另一个误区是有人觉得PNP传感器输出的是稳定24V直接接PLC一定安全。实际上如果传感器和PLC的电源不是同一个或者传感器输出电压有波动超过PLC输入端的耐压值一样会烧模块。S7-1200的DI端子允许的电压范围是-3V到30V超过这个范围就有风险。工业环境电压波动大建议传感器和PLC共用一个稳压电源。5. 选错传感器之后的补救方案继电器转换与光耦隔离说了这么多总有人已经踩坑了。传感器买回来是NPN的PLC却是西门子或者传感器是PNP的PLC是三菱。别着急退货有三种补救办法各有优劣。5.1 中间继电器转换最直观但速度慢中间继电器转换的逻辑很简单NPN传感器的输出端接继电器线圈的负极线圈正极接24V。传感器导通时线圈得电触点吸合。触点的公共端接24V常开触点接PLC输入端。这样PLC收到的是一路干净的24V开关信号。优点是容易理解成本低一个继电器几块钱。缺点是响应时间一般在10到20毫秒高速计数或者高频检测完全跟不上。如果你的应用是普通开关逻辑比如门限检测、液位报警继电器方案完全够用要是做编码器计数或者高频脉冲检测就别想了。5.2 光耦隔离模块高速转换的正解光耦隔离模块内部是光电耦合器输入侧接受NPN传感器的低电平信号输出侧输出高电平或者低电平信号模块上一般有跳线可以选NPN或者PNP输出。光电耦合器的响应时间在微秒级完全满足高速脉冲输入的要求。使用光耦模块时要注意两点一是输入侧和输出侧的电源要分开供电这样才能真正起到隔离作用二是模块的输出侧如果是PNP输出照样要接到源型输入的PLC上。有些光耦模块偷工减料隔离耐压不足或者响应速度虚标买之前看参数表最好实测一下波形。5.3 PLC公共端跳线的妙用最后一招很多PLC其实有隐藏的接线跳线或者端子定义能在输入端改变sink/source模式。三菱FX3U只需要改变S/S端子的接线位置就能在NPN和PNP之间切换。我见过一些国产PLC用一个物理跳帽来切换还有的是通过软件参数配置端口模式。如果你不确定自己的PLC支不支持切换教你去官网下载该型号的用户手册搜关键词sink、source或者漏型、源型看端子接线图和输入电路原理图。输入电路原理图是判断一切的根本。我在实际项目中就是靠看输入电路原理图判断一台老式PLC的输入方式才避免了烧模块的悲剧。所以查手册比问人要快得多也准确得多。6. 接线、测量与排错一份来自现场的经验清单结构原理都讲完了最后给你一份可以直接打印出来贴在工作台上的排查清单。这些经验来自无数个现场调试的夜晚每一条都对应一个踩过的坑。6.1 用万用表快速区分NPN和PNP传感器的输出类型现场没有说明书也没有铭牌的时候这个方法屡试不爽。前提是传感器通电且是常开NO型。万用表拧到直流电压档量程选50V或100V档。黑表笔接0V红表笔接传感器的信号输出线。不触发传感器时记录电压值。触发传感器再次记录电压值。无触发0V触发后24VPNP常开型。无触发24V触发后0VNPN常开型。注意如果是常闭NC型传感器电压跳变方向正好相反。判断时先确认是常开还是常闭最简单的方法是看铭牌缩写——NO是常开NC是常闭。6.2 PLC输入点没反应的排查顺序按照这个顺序查百分之九十的问题都能定位。看传感器电源指示灯不亮就是供电问题量棕色线和蓝色线之间的电压是否在额定范围内。量输出线电平变化在传感器信号线和0V之间量电压。触发和不触发之间没有电压跳变说明传感器坏了或者感应距离不对。量PLC输入端子和公共端之间的电压传感器正常但PLC没信号量这个电压。NPN接法拉低时应该有0VPNP接法拉高时应该有24V。量不出来就是线断了或者公共端接反了。查PLC侧接线S/S端子或M端子的位置是不是接对了。这是最容易犯的低级错误尤其是FX3U换到S7-1200的时候。检查软件和模块配置有时候硬件一切正常就是博途里没有启用输入通道或者三菱PLC的程序里用了一个你没注意到的常闭触点。把程序里该点的逻辑捋一遍别上来就怀疑硬件。两个电源不共地这个问题在3.4节里提过这里再强调一次。不同开关电源的0V必须确保电位相同。6.3 抢修时的保命技巧遇到过几次半夜被叫去现场手边没有万用表传感器类型未知的情况。教你们一个应急办法看PLC公共端接的是正还是负。如果PLC公共端接24V那就找NPN传感器如果公共端接0V就找PNP传感器。很不幸手里只有不匹配的传感器又着急试运行用小继电器倒腾一下也能顶一晚上但第二天一定要换成匹配的或者加上转接模块。还有一个小技巧很多传感器的感应面上印着接线图上面画三极管符号标注了是NPN还是PNP。现场环境脏了看不见用湿巾擦一擦再看。我靠这个方法省了不少拆线时间。6.4 关于高速输入和编码器信号的特殊提醒如果你的NPN或PNP传感器不是普通接近开关而是编码器或高速计数器的信号源接线要求就不一样了。高速信号对上升沿、下降沿的时序要求很高中间如果串了继电器波形会被严重钝化导致计数不准或者丢失脉冲。这种情况下建议直接用匹配PLC输入类型的传感器或者用光耦隔离。编码器A相、B相、Z相分别接PLC的高速输入点公共端接法不变但要注意线缆阻抗和屏蔽层的接地。我做过一个项目传感器输出线没有用屏蔽线结果变频器一启动PLC读数疯狂跳变把屏蔽层单端接地后问题立刻消失。7. 选型建议接线的痛苦早在选型那一刻就注定了最后聊一聊选型。大多数接线问题本质上是选型阶段埋下的雷。你去买传感器的时候供应商问你要NPN还是PNP你含糊一句都行拿回来就傻眼了。成熟的流程是这样的先定PLC型号确认它是漏型输入、源型输入还是两者都支持。再定输入信号类型是普通开关量还是高速脉冲。然后定传感器输出类型漏型PLC配NPN源型PLC配PNP。高速信号选光耦输出型传感器普通信号选三极管输出型就够了。最后定常开还是常闭。安全回路建议用常闭NC型比如急停、超行程限位断线时能立即报故障。正常检测逻辑用常开NO型程序写起来符合直觉。如果你做的是设备出口项目或者经常要面对不同品牌的PLC建议常备一批NPN和PNP传感器再加几个光耦转换模块。这就跟螺丝刀一样你不一定每次都用但关键时刻没有它整个项目就得停下来等快递那种难受劲儿我太清楚了。从我个人的经验来看刚开始接触这些概念的时候最好自己动手接一套最小系统用一个传感器、一个PLC、一个电源实际触发几次再用万用表量各个关键点的电压。理论看十遍不如亲手接一遍记得牢。等你有过几次半夜在现场排故的经历NPN和PNP这六个字母大概就永远忘不掉了。