简介:面向自动化产线集成、SMT 设备调试与运维人员的 SMEMA 协议技术资料,系统梳理表面贴装设备制造商协会标准在前后主机及外部搬运设备通信中的落地方式,适合需要统一设备间信号约定或补齐集成知识的初、中级工程师。内容覆盖硬件接口层面顶部与底部传送带的雌雄连接器定义、机间电缆 Pin1~Pin4 的接线规则,软件侧的板卡转移条件——上游有板可发、下游就绪接收;并逐一说明出口与入口传感器如何协同监测 T3、T4 状态以判断板卡进出,中间传感器在下游未发出就绪信号时如何拦停并暂存板卡、单条输送带只存一块以避免挤压碰撞,最后归纳协议在兼容性、可靠性与扩展性上的优势。压缩包共 1 个 PDF 文件,约 737KB,要点集中、图文紧凑,便于现场对照接线与排查传板异常。已有 1217 人学习,可作为产线调试与故障复盘的随手参考。
1. 一条线停了,报警只有"下游未就绪"
一条贴装加测试的连线停了,人机界面上只有一句"下游未就绪",可下游机台明明空着、皮带也在转。维修的人到现场把 SMEMA 那根电缆拔下来量了一遍,24V 有、信号没有——故障不在"通信",而在这条产线最不起眼的四根线上。SMEMA 协议在自动化行业里几乎是一份默认契约:它不定义报文、不定义协议栈,只规定几根 24V 信号线的高低电平顺序,却让不同厂商的贴片机、光学检测机、测试机和上下板机,靠一根电缆完成"我有板—你准备好—我开始送—你收到了"的全部协商。值得把它拆开看的原因是,产线上绝大多数所谓"设备不兼容",最后都落到电平极性、引脚方向、传感器时序这三件事上,而这三件事恰好是这类板传输标准规定得最薄、各家实现差异最大的地方。看懂它的握手条件,你才有资格判断一次停线到底是设备坏了,还是两端对标准条款的理解不一样。
2. 握手时序:三根信号线怎么把"板能不能过去"讲清楚
先给结论:SMEMA 的板传输协商本质是一个双边互锁,上游只能在下游明确表示"我能收"的时候启动皮带,下游只能在上游明确表示"我有板要送"的时候打开入口。所有信号都是电平型而不是脉冲型,这条特性直接决定了现场调试的思维方式——你不能用"抓一个脉冲"的思路去查它,只能用"看它什么时候还举着"的思路去查。
2.1 有板、就绪、传送:三个信号构成的最小握手
标准里真正被用到的就前四个引脚,其中三个是握手主干。这个标准文档本身写得很朴素,一页纸讲了接口定义,另一页讲软件控制逻辑,剩下的篇幅全在讲传感器怎么摆、传送面高度多少。但就是这几行字,撑起了整条线的节拍。
| 引脚 | 信号名 | 方向 | 电平含义 |
|---|---|---|---|
| Pin 1 | Board Available | 上游 → 下游 | 高电平表示上游出板口有待送出的板 |
| Pin 2 | Machine Ready | 下游 → 上游 | 高电平表示下游入口空闲、可以接收 |
| Pin 3 | Transmit / Board Transfer | 上游 → 下游 | 高电平表示上游皮带已启动、板正在移动 |
| Pin 4 | Receive / Board In | 下游 → 上游 | 高电平表示下游已检测到板进入 |
板上游到位之后,出板传感器触发,上游把 Pin 1 拉高——这是"我有货"。下游收到之后判断自己入口有没有板、缓存段有没有占、定位机构是不是回到位,条件都满足才把 Pin 2 拉高——这是"我能接"。上游看到 Pin 2 有效,才启动皮带,同时把 Pin 3 拉高——这是"我开始送了,你别中途关闸"。板头触发下游入口传感器之后,下游开始计时和定位,板到位、夹紧,才把 Pin 2 拉低,完成一次交接。
顺序看起来简单,真正决定成败的是三个信号的释放时机。常见实现思路是这样的:Pin 1 必须在板尾完全离开上游出板传感器之后才允许撤销,因为你一旦提前撤销,下游会认为"这板没了",可能提前关入口闸门或者提前进入下个循环,结果就是半截板卡在两台机器中间。Pin 3 的生命周期要覆盖整个板体移动过程,撤销太早,下游有些实现会把它解释成"传输被中断",直接报警。Pin 2 则要等板在下游定位点停稳、夹紧机构动作完成才拉低,早一步,上游就会把下一块板顶上来了。
下面这张表是我一般用来给新人讲时序的方式,把一次完整交接摊在时间轴上。注意这里没有绝对时间,全是相对顺序,因为不同机型的皮带速度、板长、定位方式差得太远。
| 时刻 | 上游动作 | 下游动作 | 线上信号状态 |
|---|---|---|---|
| t0 | 板到位,出板传感器触发 | 空闲 | Pin1 高 |
| t1 | 保持 Pin1 | 判断入口空、缓存空,置 Pin2 | Pin1 高、Pin2 高 |
| t2 | 启动皮带,置 Pin3 | 打开入口 | 三线全高 |
| t3 | 板尾离开出板传感器 | 板头触发入口传感器 | Pin3 保持高 |
| t4 | 延时后撤 Pin1、撤 Pin3 | 板到位、夹紧,撤 Pin2 | 全低,回到 t0 状态 |
这张表里最容易出问题的是 t4。理想情况下三条线同时归零,现实里往往差几十毫秒,而就是这几十毫秒,决定了下一块板是顺利进来还是撞上。
2.2 T3 与 T4:给握手加一个看门狗
互锁本身只能保证顺序对,保证不了"卡住了会有人喊"。板卡在中间、皮带打滑、下游定位气缸没回位,这些情况下信号状态看起来完全合法,线就那样静静地停着,没人报警。所以现场几乎都会在互通逻辑里加两个超时计时器,一般叫 T3 和 T4。
T3 管的是"出板到入板"这段过程:从 Pin 3 有效开始计时,到下游入口传感器被触发为止,超时就说明板没走到该到的地方。T4 管的是"入板到到位":从入口传感器触发开始计时,到定位完成或者板离开该传感器为止。这两个计时器的值不是拍脑袋定的,按传动距离和线速度算:
# T3 估算:出板传感器到下游入口传感器的中心距 / 皮带线速度 # 例:中心距 600mm,线速 0.15 m/s distance_mm=600 speed_mm_per_s=150 t3_raw=$(echo "scale=2; $distance_mm / $speed_mm_per_s" | bc) # 4.00 s # 再乘 1.5 的余量系数,加上传感器响应和皮带启动加速的延迟 t3_set=$(echo "scale=2; $t3_raw * 1.5 + 0.5" | bc) # 6.50 s echo "T3 建议设定:${t3_set}s"这段计算里三个量都有讲究。中心距要量传感器的实际安装位置,不是量机台外壳的间距,很多现场图省事按机壳算,结果短了 100mm 直接误报。线速度取的是实际带速,不是变频器面板上的额定值,负载不同带速会掉。1.5 的余量系数是我踩过坑之后固定下来的:加速段、板打滑、传感器响应各吃掉一点,1.2 根本不够。最后那个 0.5 秒是纯保险,宁可多等半秒,也别让正常走板触发报警。
T4 的算法不一样,它跟板长强相关。板越长,从板头触发入口传感器到板尾离开,时间越长。所以 T4 要按最长板型算,再留余量。如果一条线上混流生产长短两种板,T4 要么按最长的设,要么按板型切换配方——后者更靠谱,但要求设备能读到板型信息,这已经超出纯硬件互锁的能力范围了。
超时之后怎么办,是个策略问题,没有标准答案。三种常见处理:一是保持 Pin 3 不撤销、停线报警、等人来手动处理,最保守;二是自动复位重试一次,赌它是偶发卡顿;三是撤信号、退回初始态,让上游重新发起。第二种看着聪明,实际上最危险——板还在通道里没出来,你复位之后上游又重新置 Pin 1、下游又重新置 Pin 2,第二次送板就是叠板。我见过一次连叠三块板的现场,板底元件全废。
2.3 反向信号与那根 14 芯线
物理接口是一条 14 芯电缆。前四个引脚顺着板流方向定义,第 5 到第 8 引脚在常见实现里被分配给反向传输——也就是同一条线上要支持回板的时候,用另一组方向相反的同名信号。这个设计思路很朴素:一条连线可能要双向走板,正向用四个脚,反向再借四个脚,剩下几个留给电源和预留。
第 9 到 14 引脚各家用法不统一,有的留空,有的走 24V 和地,有的接一些厂商私有的辅助信号。这就埋下了一个隐患:如果两端设备的引脚定义表没对齐,插上就能烧东西。尤其是把 24V 落到对方某个信号输入脚上,光耦前面的限流电阻会直接冒烟。所以现场接新设备,第一件事不是上电,是拿万用表对一遍两端的引脚定义表。
还有一个细节值得说:失败板信号。标准文档里明确写了不需要失败板可用信号,也就是这块板是不是坏板,不在这四根线的表达范围内。这是个挺典型的取舍——板传输互锁只要能回答"能不能过",不回答"这板合不合格"。坏板信息交给打标机、交给制造执行系统、交给人工挑,都行,就是不走这条线。省下来的引脚和逻辑复杂度,换来的是任何厂商都能在十分钟内把线接上。代价是坏板只能靠后道拦,或者靠软件层去补。
3. 电气层:24V 湿接点、连接器朝向与 2910±10mm
信号逻辑再清楚,落到铜线上还是电气问题。这一层最没有讨论热度,但现场翻车最多的恰恰是这一层。
3.1 为什么是 24V 加光耦,而不是 5V 或 TTL
一根电缆要在两台设备之间走几米,旁边就是变频器、伺服驱动器、气缸电磁阀,电磁环境相当糟糕。5V 单端信号在这种环境里走出机柜就是天线,随便一个接触器吸合就能耦合出足够翻转逻辑电平的尖峰。24V 是工业控制里最通用的电压,抗扰余量大,而且绝大多数传感器、继电器、电磁阀本来就工作在这个电压上,备件通用。
光耦隔离解决的是另一半问题:地电位差。两台设备各自接各自的保护地,两个地之间可能差几百毫伏甚至几伏,直接连信号参考地会形成地环路,轻则信号抖动,重则烧接口。光耦把两端的电气连接切断,只保留光信号耦合,地环路就没了。常见的输入级是这样:24V 信号进来,串一个 2kΩ 左右的限流电阻,接到光耦发光二极管,二极管另一端接本机地,输出侧上拉到本机逻辑电平。2kΩ 配 24V,驱动电流大概 10mA 出头,正好落在大多数光耦的推荐工作区间。
这里有个必须讲清楚的坑:NPN 还是 PNP。同样是 24V 信号,有的设备输出是"拉高到 24V"(源型),有的输出是"拉到 0V"(漏型),还有的是无源干接点。三种接法之间不能互换。你把一个源型输出接到一个要求漏型输入的端口上,信号永远读不到;反过来接,可能直接把对方输入级击穿。这不是 SMEMA 标准规定的内容,但它是 SMEMA 现场能不能通的前提。我一般的做法是:接任何新设备之前,先量出对方每个信号脚在有效态和无效态下的对地电压,记在对接清单上,签完字再上电。
3.2 母头装在机器背面:连接器和线序的物理约定
标准建议把连接器装在机器背面。这个建议背后是三条现实约束:正面是操作面,要留给人工上下料、调机、清洁,不能被一根电缆挡着;背面通常是维护通道和线槽走向,电缆走背面对整线的可视性和安全性都更好;还有一个很实用的点——装在背面意味着两端设备的接口朝向一致,接线的人不需要绕到机器另一侧去够插头。
线序上是直通的,上游的 Pin 1 接到下游的 Pin 1,不交叉。这一点经常被搞通信出身的人搞错,因为串口思维里 TX 要接 RX、RX 要接 TX。SMEMA 不是这样:每个引脚本身已经带方向,Pin 1 定义死了就是上游输出、下游输入,所以两端设备各自的 Pin 1 本来就一个是输出一个是输入,直连就对。你要是按串口习惯做了交叉,结果是上游的输出接上了游的输出,两路推挽对顶,谁也别想读到有效信号。
母头和公头的选择也有讲究。装在机器上的是母头,跟着电缆走的是公头。理由很直接:机器是固定的、贵的,母头带护套、针孔内缩,不容易被工具磕弯;电缆是消耗品,公头便宜、好换。这个约定俗成的选法,让现场换线的时候不至于因为一个弯针停半天。
3.3 2910±10mm 与 450mm:机械基准才是握手成立的前提
电气上握手成功了,机械上没对上,板照样过不去。这类标准里一定会写传送面高度,某段产线的基准是 2910±10mm,也就是顶层传送带的承载面到这个基准的高度,允许上下浮动 10mm。底部传送段带宽 450mm,决定了能过多宽的板、板边搭接量有多少。
那 ±10mm 是怎么来的?不是随便给的容差,它大致对应几个误差源的叠加:板厚公差、皮带张力导致的带面下沉、机脚调平误差、长时间运行的热胀、以及换皮带之后的重新张紧量。超过这个范围,会出现几种典型失效:高度差大一点,板头会顶在下游皮带侧面,走不动;高度差小一点,板边只搭上一两毫米,板自重加上元件重量会把它压下去,掉在两台机器中间;两侧高度一致但水平有夹角,板会斜着走,最后卡在某个导轨边上。
450mm 这个带宽同样有含义。带太窄,宽板没有足够支撑,中间会塌;带太宽,窄板在上面没有导向,容易跑偏。板边搭接量一般要求每侧留出十几毫米,所以 450mm 的带实际能稳定过的板宽是有限的,不是 450 全用。
这套机械约束和电气握手之间有一个很隐蔽的耦合:如果你的高度差接近 ±10mm 的上限,板在过渡的瞬间会有一个轻微的下落或者抬升,这个动作会让板在传感器上多遮一会儿或者少遮一会儿。如果你的去抖时间设得紧,就可能出现"明明过板了但没检测到"的情况。所以调机械和调传感器不能分开做,必须先调平再调逻辑。
4. 传感器与状态机:一块板怎么被"看见"
握手信号说的是"我要送",传感器说的是"板在哪儿"。这两套东西必须严格对齐,否则逻辑再漂亮也是空中楼阁。
4.1 入板与出板传感器:为什么要边沿,不要电平
出板传感器装在出板口,入板传感器装在下游入口,它们的作用是确认板的实际位置,同时给 T3、T4 提供计时起点和终点。这两个传感器的信号在控制逻辑里怎么用,是个分水岭。
用电平是最直觉的做法:传感器被遮挡就是有板,没遮挡就是没板。但现场很快就会发现这不行。板在传送带上停住等待下游就绪的时候,它会长时间压在这个传感器上,电平一直是有效的。如果你的逻辑是"电平有效就认为板在移动",那等待期间就会被误判成一直在送板。更麻烦的是板型和颜色:黑色板吸光,漫反射传感器可能压根读不到;透明或半透明的载板,光直接穿过去,也读不到;有些板上有开窗、有缺口,边缘一晃而过,电平会抖。
正确做法是用边沿:上升沿表示"板进来了",下降沿表示"板离开了",电平有效期间只表示"板还在这个位置",不表示任何动作。这样一来,板停多久都不影响事件计数。
去抖时间要按最小板长和带速算。举个具体的:带速 150mm/s,最小板长 50mm,那么板完整通过一个传感器的理论最短时间是 333ms。去抖窗口设 10 到 20ms 足够滤掉抖动,又不会吃掉真实信号。但如果你把去抖设成 100ms,而某个小板只遮了 80ms,这个板就"隐身"了。
传感器类型的选择也在这个环节上。对射式最稳,黑白透明都能检测,缺点是发射端和接收端要分装两侧,安装空间要求高。漫反射只装一侧,方便,但对黑色和反光表面很挑,灵敏度要现场调。我一般建议入板传感器用对射,因为那是握手的关键触发点;出板传感器可以用漫反射,因为它主要用来判"板尾离开"。
4.2 中间传感器:为什么一段缓存只允许有一个
中间传感器装在两台机器之间的缓存段上,作用是当下游没发就绪信号的时候,把板停在这里存着,而不是让它顶在入口等。标准文档里把这条写得很死:一段传送带只用一个中间传感器,保证一段缓存只存一块板,防止底部传送带上的板与板相撞。
这个约束看起来保守,实际上是被现实教育出来的。底部传送带最怕什么?怕板撞板。板底面往往已经有贴装好的元件、有锡膏、有已经点过的胶,两块板一挤,底面的东西全废,而且废得很隐蔽,要到测试工位才发现,追溯起来根本不知道是哪次碰撞造成的。
如果一段缓存装两个传感器,你就得做排队逻辑:第一块板停在一号位,第二块板停在二号位,第三块板不许进。这套逻辑本身不难,难在错误恢复。一旦某个传感器误判一次——比如黑板漏检——整个队列的位置索引就全错位了,后面的板会停在不该停的地方,而逻辑自以为一切正常。单传感器方案没有这个问题:只有一个位置,只有"有"和"无"两个状态,误判最多是少存一块板,不会错位。
中间传感器的安装位置也有讲究,一般放在缓存段靠近入口的三分之一处,不是正中。原因是板存下之后,下游就绪时要重新启动把它送出去,需要一段加速距离。放在正中,加速段不够,板出缓存时会打滑或者走偏。放在靠近入口,后面留出的距离足够让板平稳加速到带速。
4.3 用状态机把传感器事件和信号线绑在一起
信号是电平,传感器是边沿,两者要在同一个状态机里对齐。下面这段是简化后的核心逻辑,跑在工控机的软 PLC 层,思路和梯形图是一一对应的。
from enum import Enum class State(Enum): IDLE = 0 # 出板口无板,Pin1 低 BOARD_READY = 1 # 板到位,Pin1 高,等下游 WAIT_DOWN = 2 # 下游 Pin2 有效,准备启动 TRANSFER = 3 # 皮带运行,Pin3 高 STORED = 4 # 板停在中间缓存段 FAULT = 5 # T3/T4 超时 class SmemaOut: def __init__(self): self.pin1_board_available = False self.pin3_transmit = False self.state = State.IDLE self.t3_start = None # Pin3 拉高时刻 self.t3_limit = 6.5 # 秒,按 2.2 节方法算出 self.board_len_min = 50 # mm,用于去抖下限校验 def on_outlet_rising(self): # 出板传感器上升沿:板到位 if self.state is State.IDLE: self.pin1_board_available = True # 我有货 self.state = State.BOARD_READY def on_downstream_ready(self, ready: bool): # Pin2 输入 if ready and self.state is State.BOARD_READY: self.state = State.WAIT_DOWN # 注意:这里不直接启动皮带,留给下一个扫描周期, # 目的是让 Pin2 至少稳定一个周期,滤掉下游的毛刺 def tick(self, now, inlet_blocked: bool): if self.state is State.WAIT_DOWN: self.pin3_transmit = True # 我开始送了 self.t3_start = now self.state = State.TRANSFER elif self.state is State.TRANSFER: if inlet_blocked: # 下游入口传感器被触发 self.state = State.STORED if self.hold_here else State.IDLE elif now - self.t3_start > self.t3_limit: self.state = State.FAULT # 板没走到,报警等人 self.pin3_transmit = False # 撤 Pin3,禁止自动重试 def on_outlet_falling(self): # 板尾离开出板传感器 # 关键:Pin1 必须等板尾完全离开才撤,早撤下游会以为板没了 self.pin1_board_available = False if self.state is State.TRANSFER: self.pin3_transmit = False这段代码里三个地方值得单独说。on_downstream_ready里刻意延迟一个扫描周期再启动皮带,是因为下游的 Pin 2 在某些机型上是继电器输出的,吸合瞬间会有抖动,直接拿来当启动条件会抖出一串假启动。on_outlet_falling里撤 Pin 1 的时机是整段逻辑里最关键的,它必须绑定在下降沿上而不是绑在"传送完成"这个抽象状态上,因为传送完成的定义各家不同,下降沿是物理事实。FAULT状态下把 Pin 3 撤掉且不自动复位,是一个明确的策略选择——宁可让人来按一下复位,也不要赌它能自己好。
hold_here这个标志对应中间缓存功能。如果这一段配有中间传感器且缓存段空闲,板停在缓存位上,状态进STORED,此时 Pin 1 和 Pin 3 都撤掉,等下游 Pin 2 有效再重新走一次WAIT_DOWN流程。如果缓存段已经占了,hold_here为假,板就不许进来,Pin 1 保持高,让上游自己等。
5. 避坑与排查:五类现场翻车记录
这一节全是血泪经验,每一条都能对应到一次真实的停线。现象、原因、解决办法按顺序写,遇到同类问题可以直接照着查。
5.1 现象:换线之后下游永远"未就绪",单机测试全正常
新接的一台设备,单独上电测试,四个信号脚输出都正常,接上原来的线就是不动。量下游的 Pin 2,一直低。
原因基本是两个。一是极性反了:这台设备的 Pin 2 是漏型输出,有效时拉到 0V,而上游读的是源型有效,逻辑正好反过来。二是信号定义的理解不同:有的厂商把 Pin 2 做成"接收完成"的回执,而不是"准备好接收"的许可,语义变了,时序自然对不上。
解决办法是不要猜,量。让下游进入"空载待机"状态,用万用表逐脚测量对地电压,记录有效态和无效态各是多少伏;再让上游手动强制读一次,确认它期望的是高有效还是低有效。两边对齐之后写进对接清单,附上测量人和日期。这件事听起来笨,但它能省掉后面三天的扯皮。
5.2 现象:偶发叠板,一天一两次,监控录像都抓不到
板有时候两块贴在一起从出口出来,废一块到两块。频率很低,查日志什么也没有。
原因是 Pin 1 撤早了。某些实现里,出板传感器的安装位置偏内侧,板尾还没完全脱离皮带,传感器就已经认为板走了,逻辑立刻撤 Pin 1、撤 Pin 3,然后马上允许下一块板进来。上一块板的尾部还在过渡区,下一块板的头部就顶上来了。
解决分两步。硬件上把出板传感器往出口方向挪,挪到板尾确实离开皮带之后才下降沿。软件上加一个可调的释放延时,一般 100 到 300ms,等下降沿之后再压一段时间才撤 Pin 1。这个延时值要按最短板型和最快带速去验证,取能稳定不叠板的最小值,不要一上来设 1 秒,那样节拍会掉得很明显。
5.3 现象:板停在中间缓存段不动,超时报警,撤下来重新放又好了
中间缓存偶尔会"假占用":缓存段上其实没板,但逻辑认为有,后面的板就进不来。
原因通常出在中间传感器上。黑色板吸光,漫反射传感器在板离开之后回波仍然偏弱,输出维持在高位一小段时间;或者传感器镜面被助焊剂雾气污染,灵敏度漂移,一直判有。还有一种更隐蔽的:传感器的检测光斑打在了传送带的缝隙或者金属挡边上,形成固定回波,永远判有。
解决办法按代价从低到高:先清洁镜头,用无尘布加异丙醇;再调灵敏度,用一块实际生产用的黑板和一块白板分别测,调到两边都能稳定区分;还不行就换传感器类型,缓存段这个位置用对射式最保险,因为它的判据是"光束被遮断",不受板面反射率影响。另外加一条逻辑兜底:如果中间传感器持续有效超过一个设定时长(比如 30 秒)而上下游都没有动作,判定为传感器故障,进报警而不是继续等待。
5.4 现象:白天正常,夜班或者大功率设备一启动就误触发
信号线上有毛刺,设备莫名其妙地认为下游就绪或者上游有板,动作错乱。白天负载轻、夜班开了更多机台,问题就冒出来。
原因是共地和走线。信号线和 24V 电源线、变频器输出线捆在同一根线槽里,长距离平行走线,耦合进来一堆共模干扰。或者两端设备的地电位差本来就大,光耦虽然隔离了信号,但屏蔽层两端都接了地,形成地环流,反而把干扰引进来了。
解决办法:信号线单独走线槽,跟动力线保持至少 20cm 距离,交叉时走直角不走平行;屏蔽层只在一端接地,另一端悬空;两端的光耦输入级各串一个限流电阻再加一个对地小电容做低通,截止频率按信号的最快变化率算,别把正常的边沿也滤平了。做完这些,再用示波器在信号脚上看一眼,正常的边沿应该是干净的单次跳变,而不是一串振铃。
5.5 现象:新设备一上电就误动作,还没开始生产信号就全乱了
插上电缆、上电,皮带自己动了一下,或者下游入口闸门开了。
原因是线序或者引脚定义对不上。最常见的两种:一是电缆做成了交叉接法(按串口思路做的),导致两边输出对顶;二是两端的 14 芯定义表不一致,把 24V 落到了对方的信号输入脚上,光耦输入级被长期加电,输出侧就一直是有效态。
解决办法只有一条,而且必须在上电之前做:拿两端设备的引脚定义表逐脚对照,重点看 24V、地、以及第 5 到第 14 脚的分配;然后用万用表通断档,一端短接某个脚,另一端量对应的脚,确认是直通不是交叉。这套点检做完再上电。上电之后第一次动作,手里要放在急停按钮上,别站在传送带边上。
6. 设计取舍:为什么标准只做到"能握手"就停手
把这几层拆完,会发现这套接口标准有一个很明显的克制:它只回答"板能不能过去",不回答"这块板是谁、要做什么配方、什么时候做完"。没有报文、没有地址、没有错误码、没有版本协商,甚至连板的好与坏都不在这四根线上表达。省下来的引脚和逻辑复杂度,换来的是任何一家厂商的工程师,拿着万用表,十分钟内能把两台素不相识的设备接上并跑起来。
这是拿表达能力换接入成本。以一条混流线的实际需求为例,下面这张表把两层东西摆在一起看,取舍就很清楚了。
| 需求 | 硬件互锁能不能扛 | 实际做法 |
|---|---|---|
| 板能不能往下一站走 | 能,四根线足够 | 走 SMEMA 接口 |
| 这块板是哪个工单、什么配方 | 不能 | 靠制造执行系统下发或机台本地选程序 |
| 这块板已经判废 | 标准明确不要求 | 打标 + 人工挑,或靠软件层传状态 |
| 这条线当前节拍、瓶颈在哪个站 | 不能 | 独立的数据采集层 |
| 上下游缓存各占几块 | 只能表达"有/无" | 单传感器单缓存位,用空间换确定性 |
所以现代产线常见的是两层叠加:底下这层硬件互锁保证物理上不撞板、不叠板、不把板掉地上,上面再挂一层软件协议去传工艺数据和状态。底下这层越简单越可靠,出了故障用万用表就能定位;上面那层坏了,顶多丢数据,不会把板撞坏。把两者混在一起做的方案,我见过,最后是电气故障和数据故障互相掩护,排查的时候两边都说不清。
还有一处取舍值得单独提:一段缓存只允许一个传感器、只存一块板。理论上完全可以做多仓位排队,提高缓存能力、吸收更多节拍波动。但每多一个仓位,就多一套位置索引、多一组错误恢复路径,而错误恢复一旦出错,代价是板撞板。在板底已经有元件的情况下,这个代价太高。用更少的缓存能力换绝对确定的物理行为,是这条线上的正确选择。
我自己的习惯是:任何新设备接入,先不上电,拿万用表和一张打印出来的引脚表,把四根信号线、24V、地逐条量一遍,量完在表上打勾签字;上电后先空载跑二十个循环,看 Pin 1 和 Pin 3 的释放时序;再上实际板型,跑一百块看有没有叠板。这套流程走完大概两小时,但它挡住过的故障,比我后来花在排查上的时间加起来都多。从那以后我每次接新机台都强制走一遍这个点检流程,不看对方的说明书写得多漂亮,只看表上打了几个勾。希望帮到你。
本文还有配套的精品资源,点击获取