4、数字量输入地址分配:按钮、传感器、限位开关的地址分配策略与实战案例
好,咱们今天聊聊数字量输入地址分配。说实话,这块内容看着简单,但恰恰是很多现场故障的根源。我见过太多项目,程序写得花里胡哨,结果因为地址分配乱七八糟,调试时把自己坑得欲哭无泪。
数字量输入,说白了就是PLC的「眼睛」。按钮按没按?传感器有没有检测到?限位开关有没有碰到?这些信号都得通过输入点进到PLC里。地址分配得好,后续编程、维护、排故都顺风顺水。分配得不好?嗯,那就有意思了。
4.1 地址分配的核心原则
我个人习惯,不管项目大小,先定规矩。没有规矩,后面全是坑。
- 按功能分区:把同一类型的信号放在连续的地址段里。比如I0.0到I0.7全给按钮,I1.0到I1.7全给传感器。别混着来,否则查线时你会疯。
- 预留余量:每个功能区至少留20%的空余地址。我在项目中遇到过,设备都装好了,客户突然说要加两个急停按钮。要是没预留,你就得重新改柜子、改图纸、改程序,那叫一个酸爽。
- 按重要性排序:急停、安全门这些关键信号,放在最前面。为什么?因为很多PLC的输入滤波时间可以单独设置,关键信号需要最快的响应。
- 与图纸保持一致:地址分配表必须和电气原理图、端子排图一一对应。别问我为什么强调这个,我曾经见过图纸上写的是I1.2,程序里用的是I1.3,现场查了三天才发现是图纸没更新。
核心原则总结:功能分区、预留余量、按重要性排序、图纸一致。这四条,缺一条都容易出问题。
4.2 按钮的地址分配策略
按钮,最常见的输入设备。但你真的会分配吗?
我建议,按钮的地址分配要遵循「物理位置就近」原则。什么意思?就是操作面板上挨在一起的按钮,它们的输入地址也尽量挨在一起。这样编程时逻辑清晰,查故障时也方便。
举个例子,一个操作面板上有启动、停止、复位三个按钮。我会这样分配:
I0.0 — 启动按钮(绿色,常开)
I0.1 — 停止按钮(红色,常闭)
I0.2 — 复位按钮(黄色,常开)
这里有个细节要注意。停止按钮我习惯用常闭触点。为什么?因为如果线路断了,PLC检测到的是停止信号,设备会停下来,这叫「故障安全」。你想想看,要是用常开,线断了设备反而停不下来,那多危险。
小技巧:按钮的地址分配表里,建议加一列「线色」和「端子号」。现场接线工不看你的程序,他们只看图纸。把地址和物理位置对应好,能省很多沟通成本。
4.3 传感器的地址分配策略
传感器种类多,光电、接近、压力、温度...每种传感器的信号特点不一样,地址分配也要区别对待。
我的做法是:按传感器类型分组。比如把所有光电传感器放在I2.0到I2.7,所有接近开关放在I3.0到I3.7。这样做的好处是,程序里看到地址就知道是什么类型的传感器,不用翻图纸。
另外,传感器的响应速度也要考虑。高速计数用的传感器,比如编码器,最好用PLC的高速输入点。普通传感器就没这个要求。我在项目中遇到过有人把编码器信号接到普通输入点上,结果PLC死活读不到脉冲,折腾了半天才发现是地址选错了。
| 传感器类型 | 推荐地址范围 | 备注 |
|---|---|---|
| 光电传感器 | I2.0 - I2.7 | 响应时间一般<1ms |
| 接近开关 | I3.0 - I3.7 | 注意检测距离 |
| 压力开关 | I4.0 - I4.3 | 建议加延时滤波 |
| 温度开关 | I4.4 - I4.7 | 动作有惯性 |
4.4 限位开关的地址分配策略
限位开关,这玩意儿在自动化设备里太常见了。气缸到头了、滑台到极限了、门关上了...都得靠它。
限位开关的地址分配,我有一条铁律:正限位和负限位必须成对出现,且地址连续。比如:
I5.0 — X轴正限位
I5.1 — X轴负限位
I5.2 — Y轴正限位
I5.3 — Y轴负限位
为什么这么干?因为程序里处理限位逻辑时,通常都是成对判断。地址连续的话,可以用字或双字来批量处理,代码简洁很多。
另外,限位开关一定要分配在「掉电保持」的输入点上吗?不一定。但如果你用的是伺服或步进电机,我建议把硬限位接到PLC的「快速中断」输入点上。这样即使程序卡住了,硬件也能立刻响应。我曾经吃过这个亏,程序里一个循环没写好,设备直接撞到机械硬限位,把丝杠都顶弯了。从那以后,硬限位我必接中断输入。
警告:限位开关的地址一旦分配好,不要轻易改动。尤其是设备已经投入运行后,改地址意味着要改图纸、改程序、改接线,还可能影响安全联锁。我见过有人为了省一个输入点,把两个限位开关并联到一个地址上,结果设备撞了都不知道是哪个方向出了问题。
4.5 实战案例:一个简单的搬运机械手
光说不练假把式。咱们来看一个实际案例。
这是一个三轴搬运机械手,X轴左右、Y轴上下、Z轴夹爪。控制要求:按下启动按钮,机械手从A点取料,放到B点,然后回到原点。
输入信号清单:
- 启动按钮(1个)
- 停止按钮(1个)
- 急停按钮(1个)
- X轴正限位(1个)
- X轴负限位(1个)
- Y轴正限位(1个)
- Y轴负限位(1个)
- Z轴夹紧到位传感器(1个)
- Z轴松开到位传感器(1个)
- A点有料传感器(1个)
- B点有料传感器(1个)
- 原点传感器(1个)
一共12个输入点。我是这么分配的:
I0.0 — 急停按钮(常闭,最高优先级)
I0.1 — 启动按钮(常开)
I0.2 — 停止按钮(常闭)
I1.0 — X轴正限位
I1.1 — X轴负限位
I1.2 — Y轴正限位
I1.3 — Y轴负限位
I2.0 — Z轴夹紧到位
I2.1 — Z轴松开到位
I3.0 — A点有料传感器
I3.1 — B点有料传感器
I3.2 — 原点传感器
你看,我把急停放在最前面,因为安全第一。限位开关集中放在I1.0到I1.3,地址连续,方便程序里做轴保护。传感器按功能分组,夹爪的放一起,检测物料的放一起。这样分配,不管是编程还是排故,一目了然。
实战心得:地址分配表做好后,打印出来贴在控制柜门上。现场调试时,电工、机械工程师、甚至操作工都能看懂。别只存在电脑里,真到现场急用的时候,谁还有空去翻电脑?
4.6 避坑指南
最后,分享几个我踩过的坑,你们别再踩了。
- 别把24V和0V搞混:传感器和按钮的接线方式不同,有的用PNP,有的用NPN。地址分配时一定要标注清楚信号类型。我曾经在项目里把PNP和NPN的传感器混接到同一个输入模块上,结果一半信号读不到,查了半天才发现是共地问题。
- 预留地址别用零散的:有些人预留地址东一个西一个,结果后面加设备时发现地址不连续,程序写起来别扭。我建议预留地址也按功能区整段预留,比如I0.0到I0.7给按钮,只用了4个,剩下4个就是预留的。
- 别忘了滤波时间:有些PLC的输入点默认有滤波,比如10ms。对于按钮来说没问题,但对于高速传感器,这个滤波时间可能让你丢信号。地址分配时,需要高速响应的点要单独标注,编程时单独设置滤波参数。
好了,数字量输入地址分配这块,核心就是这些。记住:地址分配不是随便写几个数字,它直接影响到后续的编程效率、调试速度和维护成本。花半小时把地址规划好,后面能省你好几天的时间。这笔账,你算得过来。