很多初学者都经历过这样的场景:程序写好了,下载也成功了,满怀期待地按下按钮,结果PLC上的输出指示灯纹丝不动。
设备没反应,但程序明明是对的。这种情况十有八九不是程序逻辑的问题,而是你忽略了某些关键的设置。
下面这五个地方,每一个都能让你的输出“装死”。
1. PLC的“运行/停止”开关(物理开关)
这是最容易被忽略,也最基础的设置。
无论是三菱FX系列的拨动开关(RUN/STOP),还是西门子S7-1200/1500的模式开关,必须拨到“RUN”或“MRES”位置,CPU才会执行用户程序。
如果开关在“STOP”位置,CPU只会上电、建立通讯,但不会执行梯形图逻辑,输出模块自然不会有任何反应。
有些CPU支持通过软件切换模式,但物理开关优先级更高。 排查方法:看一眼CPU上的状态指示灯,“RUN”灯亮了才算数。
2. 程序被“禁止输出”或“安全状态”激活
某些PLC(特别是西门子)有“安全程序”或“强制输出禁止”功能。
如果你在程序里不小心激活了“输出禁止”位(如西门子S7-1200的“输出禁止”系统变量),或者设备触发了硬件安全中断,CPU会进入安全状态,所有数字量输出点会被硬件锁定为0或预设的安全值,程序里的Q点无论怎么置1都不会生效。
排查这类问题需要查看CPU的诊断缓冲区,是否有“安全事件”记录。
3. 组态与实际硬件不符(模块地址对不上)
你在软件里组态了一个数字量输出模块,地址是从Q0.0开始的8个点。
但你实际插入的是第一个槽位的模拟量模块,或者地址偏移了一位。
这样,你程序里写的Q0.0,实际上可能对应着一个不存在的物理点,或者对应着模拟量模块的某个状态位。 解决方法:打开硬件组态(设备视图),确认每个模块的起始地址,然后对照程序里的地址是否一致。
4. 外部电源没接或接反了(这个错误最不该犯)
PLC的CPU电源和输出模块的负载电源(L+/M)通常是分开的。
很多新手只给CPU上了电,看到CPU的灯亮了,就以为全部搞定了。
但输出模块需要独立的24V直流或220V交流电源来驱动外部继电器和指示灯。
如果输出模块的电源端子没接,程序里Q点即使亮了,物理端子上也量不到电压。 排查方法:用万用表测量输出模块的电源端子(如L+和M之间),确认有额定电压。
5. 程序里的输出点被“重复赋值”或“覆盖”了
如果在程序的两个不同网络里都对同一个Q点进行了赋值(一个置1,一个置0),那么最终决定物理输出的,是最后一个被执行的那个网络。
如果前面的网络把Q0.0置1了,但后面的网络又把Q0.0置0,那么物理输出就是0。
这种“双线圈”错误,在编译时可能只是警告,但运行时就会导致输出“没反应”。 排查方法:在程序中搜索该Q点的所有出现位置,检查是否有多次赋值,并确认执行顺序。
如果你检查完这五点,灯还是不亮,那就要考虑硬件本身是否有故障了。
但绝大多数情况下,问题都出在这五个设置里。
养成“先查硬件状态,再看软件设置,最后怀疑程序逻辑”的习惯,你会发现大多数问题都能快速解决。