Address
宁波研发园A区2栋12B17
聚贤街道,鄞州区,宁波市,浙江中国
Work Hours
周一 to 周五: 8:30AM - 10:30PM
周六 to 周日: 9:30AM - 10:30PM

给西门子数控机床装测头,现场常遇到的第一个坎,往往不是测量循环本身,而是“测头触发了,信号却进不到系统里”。很多人从发那科机床转过来,拿着发那科的经验直接套,第一句话就问“跳步指令 G31 怎么配”。但西门子系统里没有 G31 这条语法,发那科的跳步思路在西门子上并不存在。西门子用的是 MEAS 测量指令,由它指定这次测量用哪一个测量输入,信号接入的物理路径和 PLC 侧的传递方式也自成体系。本文只讲信号接入这一条链路,不展开测量循环的编程细节,目标是把“从测头触发、信号进 PLC、传到 NC、再到系统能读”这一段完整讲清楚。覆盖测头与接收器输出接到分布式 I/O 或端子的接入点、PLC 梯形图里对触发信号的读取与向 NC 的传递、跳转功能(MEAS)与测量循环之间的接口关系、屏蔽与接地要求,以及用诊断画面和 PLC 状态表验证信号是否通到 NC 的最小检查法。结尾专门列出发那科移植到西门子时最容易弄错的几个点。文中涉及的西门子系统侧语法(MEAS 指令、$AA_IW 系统变量、CYCLE 测量循环、SPF 子程序、G71 公制)均来自已核实的官方资料,基线未收录的具体 I/O 地址、数据块号、端子号,一律以该机床的 PLC 程序与西门子官方手册为准,不做自行推算。
要理解西门子的接法,先要放下发那科的思维惯性。发那科机床上,测头信号经过光耦接入控制器的测量输入,靠 G31 跳步指令在运动中等待信号,触发后舍去剩余距离立即停止,坐标从 #5061~#5064 等系统变量读出。这条路径围绕“跳步指令 G31”建立,宏程序在 G31 行上等待触发,整个信号接入的设计都是为 G31 服务的。
西门子不采用这一套。按已核实的官方资料,西门子没有 G31 这条指令,发那科与三菱的 G31 语法在西门子上不存在。西门子用 MEAS 测量指令完成类似的触发采样:MEAS=±1 表示使用测头 1/测量输入 1 测量,MEAS=±2 表示使用测头 2/测量输入 2 测量(+ 为上升沿、− 为下降沿)。触发发生时,系统把轴的当前位置锁存下来,结果通过 $AA_IW[轴名] 这类轴位置系统变量读出。这就把两家体系的差别说清了:发那科把“等待触发”交给 G31 一个指令,西门子则把“指定测量输入并执行跳转、锁存触发位置”交给 MEAS 指令完成,对应的触发坐标读取走的也是系统变量而不是 #5061 这类宏变量。
这个差异决定了信号接入的思路不同。发那科的测头信号要尽量直连到控制器的测量输入,走一条相对独立的高速路径,才能配合 G31 实现低延迟跳转;西门子则更依赖 PLC 把测头信号读进、传递到 NC 侧可识别的测量输入,再由 MEAS 指令在合适时机使用。两者的排查顺序也相应不同:发那科先看光耦与测量输入端子,西门子则先看 PLC 的输入位和向 NC 的传递通路。理解了这条主线,后面各章讲到的分布式 I/O 接入点、PLC 梯形图传递、MEAS 与测量循环的接口,就不再是一堆孤立的技术点,而是围绕“信号如何从测头一路进到系统、系统又用哪个动作把它接住”铺开的同一件事。还要说明,西门子系统内部还有 828D 与 840D sl 两类型号,两者在测量功能与选项上存在差异,具体差异以对应型号的官方手册为准,这也是移植前要先确认的对象——同一家系统内部不同型号,功能边界都可能不同。明白了这一点,后面各章的接线、PLC、跳转与验证才有统一的主线,也才能读懂第5章那批“从发那科移植过来最容易弄错的地方”为什么容易错。
西门子的信号接入链路,物理起点的接法与发那科并不相同。测头或接收器的输出,通常要接到机床PLC侧的输入点。在西门子机床上,PLC的输入可以落在数控系统的分布式I/O上,也可以落在普通端子上,具体落在哪里,取决于这台机床的控制柜配置和 PLC 程序里的地址分配。测头输出的信号要进入的是 PLC 能读的输入点,而不是一个只挂着普通指示灯的逻辑点,这一点接线前要先定清楚。
先讲接入点的选择。西门子的 PLC 输入分两类来源:一类是集中式 I/O,直接挂在控制器的机架上;另一类是分布式 I/O,通过现场总线接在机床各处。测头信号接到哪一类,要看 PLC 组态里把输入点分配在哪个站、哪个模块上。有些机床把测头信号配在分布式 I/O 上,因为测头、对刀仪位置离电柜主干较远,就近接入分布式站能缩短信号线长度;有些则直接拉到集中端子。两类方式在功能上都能用,差别在于接线距离和 PLC 扫描对它的响应方式。具体这台机床把测头接在哪个站、哪个模块的哪个端子,以该机床的 PLC 程序与电气图为准,本文不列固定地址。
需要强调的是,接入点要看这个输入位在 PLC 地址分配里有没有被占用、是不是被别的逻辑用掉了。现场最常见的错误,就是随便挑一个“看着空”的输入点接测头信号,结果那个点实际已经被其他功能征用,或者被组态在另一个分布式站上。接线前先打开 PLC 组态和地址分配表,确认目标输入点的地址、站号、模块槽位三者在电气图和组态里一致,再下端子。
屏蔽与接地是这一段里核打量很大的项目。测头信号是短促的电平跳变,最怕干扰。主轴、伺服、变频器是机床里的主要干扰源,测头在主轴头上,信号线往往要穿过变频器、伺服电缆密集的区域,屏蔽做得不好,触发沿很容易被叠加的干扰翻转、丢失。屏蔽层的接法应以测头设备的官方接线说明为准,常见做法是把屏蔽层在电气柜侧做单点接地,避免两端同时接地形成地环路反而引入噪声。信号线走线时应当与动力线、伺服电缆保持距离,不要并行长距离放线,必要时用金属走线槽隔离。屏蔽层悬空是现场高频问题,表现为触发时有时无,值得在接线核对表里单独占一行。
供电与极性也是这一段的重点。测头和接收器通常需要直流供电,常见轨为 24V 与 0V。供电电压范围、测头的工作电压档,都以设备官方数据表为准,这里不推算。极性接反是低级但高频的错误:正负接颠倒,测头可能不工作,或工作时状态异常。供电回路还要留足余量,避免与机床其他大负载共用一路电源导致电压跌落;电压跌落超过允许范围,测头可能触发后信号电平不可靠。供电线径按电流与线长选择,长距离细线造成的压降会进一步压缩电压裕量。这些具体电压、电流、线径要求,以设备官方数据表与接线说明为准。
公共端(COM)连接是另一个高频错误点。西门子 PLC 输入点在电气上一般也分源型(源极输入)与漏型(漏极输入)两类接法,取决于输入模块的类型和公共端接 0V 还是接 24V 侧的源。测头输出的信号极性必须与输入模块要求的接法一致,公共端才接得对。若测头输出与输入模块的类型不匹配,信号电平会反向,读到的状态恒常错误或恒常正确。因此,公共端怎么接,取决于测头/接收器的输出方式与输入模块的类型,两者必须匹配,具体以设备官方说明为准。
端子压接与线头处理容易被忽视。跳转信号对接触电阻敏感,端子压接不实、线头氧化,都会造成接触电阻偏高,时有时无的触发往往由此而来。压接要用与端子规格匹配的压线钳,剥线长度适中,避免线芯毛刺与相邻端子短路。接线完成后逐点做导通检查,能把“虚接类”问题在第一时间截住。对于无线测头,接收器往往布置在机床内便于接收信号的位置,其安装高度、天线朝向以及与测头之间的遮挡物都会影响信号的稳定,安装位置应尽量避开金属遮挡与强干扰源;有线测头则省去这一层,但对信号线的走线路径要求更高,穿越干扰密集区域时更要依靠屏蔽与分槽布放。测头与对刀仪的信号接入点还可能不同——对刀仪常固定在工作台或床身,测头装在主轴头,两者的走线路径、干扰环境和接入的分布式站位置都可能不一样,接线时要把两类设备分开核对,不能因为测头接对了就默认对刀仪也是一样的接法。
还有一个值得推荐的做法:接线前先做一次端子到端子的核对记录,把实际接入的站号、模块槽位、端子号、信号线颜色、公共端类型逐行登记,再对照电气图和 PLC 组态复核一遍。这个核对记录在后续信号异常时能大幅加快定位。登记格式没有统一标准,内容以这台机床的实际接线为准。
把上述要点整理成一张接线核对表,供安装和复查时逐行打钩。表中的具体站号、端子号、屏蔽接法因机床型号而异,一律以该机床的 PLC 组态和电气图为准,本文不编造固定地址。
| 核对项 | 核对内容 | 常见错误 |
|---|---|---|
| 接入位置 | 接到 PLC 输入点,落在集中式或分布式 I/O 上 | 接到被占用的输入点或错误站号 |
| 地址一致性 | 电气图端子号与 PLC 组态地址一致 | 端子与组态地址对不上,张冠李戴 |
| 供电极性 | 正负按说明,电压在允许范围 | 正负极接反,测头不工作 |
| 公共端 | 与输入模块源型/漏型匹配 | 类型不匹配,信号状态恒常反向 |
| 屏蔽层 | 单点接地,规范布线 | 屏蔽悬空或两端接地成环路 |
| 布线间距 | 与动力/伺服线保持距离 | 与动力线并行长距离放线 |
| 插头与端子 | 压接可靠、锁紧 | 虚接、线头氧化、时有时无 |
这张表每一项都对应一类“信号进不去”或“信号不稳定”的现象。排查时按表从上到下核对,多数接线层面的问题就能定位。但接线正确只是第一步:信号进了输入点,还要看 PLC 侧有没有把信号读进来、传出去,这正是下一章的内容。
物理接线接对了,测头信号落在 PLC 输入点上,接下来就是 PLC 侧的工作。西门子机床上,PLC 负责机床侧的 I/O 与 NC 之间的信号交换,测头信号能不能被 NC 感知,取决于 PLC 梯形图里有没有一条把信号从输入位“搬运”到 NC 可识别测量输入的通路。这一章讲 PLC 要做的三件事:读入触发信号对应的输入地址、在梯形图里做必要的处理、再把它传递给 NC 侧。
先说输入位的读入。测头信号落在输入点后,表现为某个 PLC 输入位对应地址的状态变化。PLC 按扫描周期读取这些输入位,再按梯形图的逻辑处理。现场排查的第一步,可以在 PLC 的状态表或输入监视画面上观察这个输入位的实时状态:手动按下测头,看对应位是否翻转。这一步能验证“物理接线是否到位”——如果按下测头输入位不变化,问题多半还停留在第1章物理接线层;如果输入位变了,说明物理链路已通,下一步看梯形图有没有把信号递送出去。西门子系统的 PLC 侧观察,通常用调试软件打开 PLC 程序监视,或在诊断画面里看这个输入位的状态,具体工具与画面以该机床的说明书为准。
再讲梯形图里的处理。测头信号不能只停留在输入位,梯形图里要有一条逻辑把它映射到 NC 能识别的测量输入通路。这个映射用什么中间地址、走哪条通路,随各机床厂的梯形图设计而不同,没有统一可抄的固定地址。有些机床在梯形图里把测头输入位直接映射到一个 NC 侧的测量输入信号,有些则先经过中间继电器,再做去抖、取状态处理。具体路径以这台机床的 PLC 程序为准,不要套别人的地址。
与传递相关的还有极性或常开/常闭的处理。测头静止时可能输出高电平或低电平,触发时翻转。梯形图对这种信号的处理方式,决定系统侧读到的是“触发有效”还是“常态有效”。常开(NO)与常闭(NC)接法对应不同的逻辑起点,梯形图里把逻辑起点取反,系统会表现出恒常触发或从不触发。这一项要在 PLC 里核对常开常闭方向与输入模块类型、公共端设定三者一致。
梯形图还会引入扫描周期这个系统层面的延迟概念。PLC 按扫描周期工作,普通输入经过 PLC 扫描传递给 NC,快慢与扫描周期相关。换句话说,走 PLC 传递的信号,其响应不是即时的,存在一个与扫描周期同量级的延迟。这一点与发那科的高速跳转直连思路不同。西门子测量输入是否支持低延迟的独立通路、以及测头信号是否直连到 NC 测量输入,取决于这台机床的配置和 PLC 组态,本文不据此编造固定结论,具体以该机床的 PLC 程序与西门子官方手册为准。对延迟有清楚认识,才能在选通路时不做超出实际能力的假设。
PLC 这一层还要考虑输入滤波与去抖。机械触点或测头内部机构触发瞬间可能有抖动,若输入模块或梯形图对信号做滤波,一个极短的触发沿可能被滤掉。所以触发信号的持续时间要与滤波时间匹配:触发沿过短而滤波时间过长,信号会在滤波环节被吞掉,表现为偶发漏触发。输入滤波的设置方式随输入模块而异,以该机床的参数与输入模块说明为准。
综合来看,PLC 层的关键动作是:确认输入位能被读取、确认梯形图把信号传递到 NC 测量通路、确认常开常闭逻辑方向、并注意扫描周期与输入滤波带来的延迟和漏触发。需要特别指出,PLC 层的作用是“把已经到达输入位的信号正确地递送出去”,而不是“让信号产生”。如果输入位本身没有变化,PLC 层做得再完整也无从传递。这一点与“测头触发是信号链的起点”是同一个道理。
为帮助核对,下表列出 PLC 层需要确认的几件事与其现象判断。表里的地址与滤波项目因机型而异,以该机床梯形图与官方手册为准。
| PLC 核对项目 | 确认方式 | 现象判断 |
|---|---|---|
| 输入位可读 | PLC 状态表观察输入位 | 按下测头输入位不翻转=接线层有问题 |
| 传递通路存在 | 对照梯形图找映射关系 | 无映射=信号停留在输入位不识别 |
| 常开常闭方向 | 对比静止/触发状态 | 方向反=恒常触发或从不触发 |
| 扫描周期 | 了解程序规模与周期 | 传递响应随扫描周期变化 |
| 输入滤波 | 核对滤波时间设置 | 沿过短被滤掉=偶发漏触发 |
这张表和上一章的接线核对表合起来,覆盖了“物理连接”与“PLC 传递”两层。做完这两层,信号已经能从物理上到达系统侧;但系统能否按测量输入识别,还取决于跳转功能与测量循环的接口关系,下一章讲 MEAS 在其中的位置。
测头信号进了 PLC、传到了 NC 侧可识别的测量输入,接下来要解决的就是“系统如何利用这个信号”的问题。在西门子上,这个角色由 MEAS 测量指令承担。这一章讲跳转功能(MEAS)与测量循环之间的接口关系,核心是理解 MEAS 在信号接入链路里的位置:它既不是 PLC,也不是测量循环的完整编程,而是连接两者、把已经到位的触发信号转化为可用测量动作的一环。
按官方资料,西门子的 MEAS 测量指令后面的数字指的是用哪一个测量输入:MEAS=±1 表示使用测头 1(测量输入 1),MEAS=±2 表示使用测头 2(测量输入 2);+1/+2 为上升沿触发,−1/−2 为下降沿触发。MEAS 与 MEAW 的差别在于是否删除剩余距离:MEAS 删除剩余距离,MEAW 保留。触发发生的位置由 $AA_IW[轴名] 读出,这一变量对应的是机床坐标系下的实际值。也就是说,PLC 把信号送到 NC 测量输入,MEAS 在这个输入上使用该测量输入、让轴带测量输入运动,触发沿一到,系统就锁存该轴位置,程序再用 $AA_IW[轴名] 把这个位置取出来用。
理解这一层,就能看懂 MEAS 与测量循环的接口。西门子的原生测量循环是 CYCLE971、CYCLE972、CYCLE973 等一组(原生的测量循环号段涵盖 961 至 998 等多个编号,详见官方《Measuring cycles》手册)。这组循环内部完成“进测点、触发采样、读取坐标、计算偏差”的完整测量动作,而触发采样这一步,底层依赖的是测量输入机制——循环使用测量输入,让轴运动到触碰工件,触发后读取位置。测量循环是“完整测量流程”的上层封装,MEAS 则是流程里“指定测量输入并锁存触发位置”的底层动作,PLC 传递过来的触发信号是它的食粮。二者是上层流程与底层动作的衔接关系,不是两套无关的东西。
还要说明西门子存在两套并存的体系。按已核实的资料,一套是雷尼绍的 L98xx 宏体系加西门子原生循环,另一套是雷尼绍 GoProbe for Siemens,后者用 L9921 加 R0=21/22/23 的调用方式,直接调用子程序名而非 EXEC 方式。这两套虽然在循环的调用入口和结果回传上有差别,但都建立在同一套信号接入基础上:测头信号经 PLC 到 NC 测量输入,再经由含 MEAS 机制的底层动作完成触发采样。无论套用哪套循环,信号接入这一段是共通的。两套体系的具体编程入口与结果回传方式有差异,以对应厂商的官方手册为准,本文只讲它们共享的信号接入链路。
结果回传这一层也要讲清。西门子的结果读取与发那科不同。发那科用 #5061 这类宏变量直接读触发坐标,西门子则用 $AA_IW[轴名] 这类系统变量。在雷尼绍的西门子版宏体系里,结果往往通过兼容数组回传,比如 O98XX[135]~[149] 对应 #135~#149 一类。也就是说,触发坐标到底从哪个变量读、测量结果回传到哪个号段,取决于你用的是哪套循环体系,这一点的判断依据是厂商官方手册,基线未收录的具体号段不做编造。也正因为如此,移植时不能只看触发采样怎么写,还要把结果回传的位置一并确认清楚:发那科习惯把结果放进 # 变量等号段,西门子则可能落到系统变量或兼容数组的特定位置。如果只把触发部分移过去、没有同步结果回传的位置,测完读到的数据很可能对不上号,这一处是整套移植里容易被忽略的半截工程。移植前后最好各保留一份调用与结果回传的对照记录,把用哪套循环、结果落在哪个号段逐行写清,出错时按这份记录核对,能少走弯路。
字符串处理也是接口层容易撞的一处。西门子里 MSG(“文本”) 用于显示信息,但不能直接把变量拼接进字符串,比如 MSG(“文本”<<R50) 这种写法不成立。要先 DEF STRING[32] 定义字符串变量,拼接后再用 MSG() 输出。这个细节在看测量循环回传信息时经常用到,移植时容易被发那科的写法误导。
把接口关系整理清楚,下表给出 MEAS 指令与测量循环、PLC 信号之间的分工位置。表中的调用入口以官方手册为准。
| 环节 | 职能 | 在链路中的位置 |
|---|---|---|
| PLC 输入位 | 读取测头触发信号 | 信号接入的物理起点 |
| PLC 梯形图 | 把输入位映射到 NC 测量输入 | 信号接入与传递 |
| MEAS=±1 | 使用测头 1(测量输入 1) | 指定本次测量所用的输入 |
| MEAS=±2 | 使用测头 2(测量输入 2) | 指定本次测量所用的输入 |
| MEAS/MEAW | 删除/保留剩余距离 | 决定触发后是否舍去剩余行程 |
| $AA_IW[轴名] | 读取触发位置 | 结果的读取 |
| CYCLE971/972/973 | 完整测量流程封装 | 上层测量循环 |
这张表把信号接入、跳转功能、测量循环三层摆在一起,便于看清 MEAS 的落点:它不在 PLC 层,也不在测量循环的完整流程里,而是夹在两者之间、负责把已到位的触发信号转化为可用的测量动作。明白这个位置,就能理解为什么“信号进了 PLC 还不够,还要看 MEAS 有没有正确指定测量输入、$AA_IW 能否读到位置”。
到这里,物理、PLC、接口三层都讲清了。下一章把这些串起来,讲一套不依赖完整测量循环的最小验证法,直接用诊断画面和 PLC 状态表确认信号确实通到了 NC。
前三章把信号链路的各层拆开讲了一遍,这一章收拢成一套可执行的最小验证法。目标是在不写完整测量循环的前提下,确认“测头触发后,信号确实到达了 NC,且系统能读到位置”。这套方法用到的工具就是诊断画面和 PLC 状态表,不需要依赖某套循环的完整编程。
最小验证法的步骤可以这样设计:先把机床置于合适状态,打开 PLC 状态表,找到测头信号对应的那个输入位;手动按下测头,观察这个输入位是否翻转。这一步验证的是物理接线和 PLC 读入——如果输入位不动,问题在接线层或公共端、极性;如果输入位动了,说明信号已经进了 PLC。接下来,在 NC 侧用一个最小动作验证系统能不能利用这个信号:西门子里可以借助 MEAS 指令做一次简单的触发采样,让某个轴带测量输入以慢速向测头方向移动,在移动中用手或标准件触发测头,然后看系统能否记录这次触发、触发位置的系统变量是否被刷新。具体采用哪段指令、看哪个画面、哪个变量,以该机床的西门子官方手册为准,本文不列固定程序。判定标准是:触发发生时,PLC 输入位翻转,且 NC 侧读到的位置与物理接触点位置一致或接近。若输入位不变、或位置并未被记录,就说明链路里有断点,回到前面各层逐层查。这套方法虽然简单,却把物理接线、PLC 读入、传递通路和 NC 侧的使用与读取一次性串了起来,任何一环断掉都会在结果里露出痕迹。它还不依赖某套测量循环的完整编程,因此不受循环号段是否配好、结果回传是否已建这类前置条件限制,这正是称之为“最小”的原因。
执行这套验证时要注意安全。验证前先做好安全准备,避免在快速移动时用手触发测头,必要时使用专用触发件、降低进给,轴的移动控制在可安全停车范围内。这是现场安全纪律,应在执行前就位。
按出现的结果可以分层定位。结果一:按下测头,PLC 状态表输入位完全不动,则问题大概率在物理接线层,回到第1章的接线核对表检查端子、站号、极性、公共端和屏蔽。结果二:输入位会动,但 NC 侧没记录触发,或读到的位置不对,则问题更可能在 PLC 传递或 MEAS 指令层,回到第2章、第3章的步骤复查传递通路和 MEAS 的使用方式。结果三:触发不稳定,时而到时而不时到,优先怀疑干扰、虚接或输入滤波把短促触发沿滤掉,回到屏蔽、插头、滤波这几项。这三类结果把排查路径收敛得很干净。
还值得提醒一类容易混淆的现象:NC 侧“根本没记录”与“记录的位置明显不对”是两种不同的现象。根本没记录,说明信号没有进入系统可识别的测量输入通路,问题在 PLC 传递或 MEAS 指令未生效。位置记录了但数值明显偏离接触位置,则要回头看触发瞬间是否真的发生在移动中、以及轴名与读取的变量对应关系是否正确。两类现象指向的排查层不同,不要混为一谈。
下表把现场最常见的一批现象按可能原因和排查方向列出来。表中的排查方向都要回到前文对应章节,最终依据是该机床的 PLC 程序与西门子官方手册。
| 现场现象 | 可能原因 | 排查方向 |
|---|---|---|
| 输入位完全不动 | 极性接反、公共端不匹配、端子虚接 | 第1章接线核对表 |
| 输入位不动,供电正常 | 站号或端子接错、屏蔽悬空 | 第1章接入位置与屏蔽项 |
| 输入位会动,NC 侧不记录 | PLC 未传递、MEAS 指令未生效 | 第2章、第3章 |
| 触发时有时无 | 干扰、屏蔽悬空、滤波过长 | 第1章屏蔽、第2章滤波 |
| 恒常触发或从不触发 | 常开常闭或极性逻辑反向 | 第2章常开常闭方向 |
| 记录位置明显偏差 | 触发未发生在移动中、轴名对应错 | 第3章$AA_IW 读取、回第2章 |
这张表把“信号进不去”拆合成一批可对照的具体场景。使用时先看现象落在哪一行,再回对应章节做定向排查。需要强调,表里每一行都是“可能原因”而非定论,具体判定仍要结合这台机床实际接线与梯形图确认。
从发那科机床转过来装西门子测头,最容易弄错的就是拿发那科的体系逐条去套西门子。这一章把两家最容易被误搬的内容逐条对比,作为移植时的核对清单。核心差异一句话就能概括:发那科围绕 G31 建立跳步体系,西门子没有 G31,用 MEAS 加系统变量。除了语法层面的差异,移植时还要意识到两者背后的排查习惯也来自不同的体系:发那科的调试者习惯先确认光耦和测量输入端子是否直连正确,西门子的调试则要先把 PLC 的读入与传递链路走一遍。如果调试者只按老习惯查光耦,很可能会漏掉 PLC 梯形图里那段向 NC 的映射,导致反复排查不见结果。这个“习惯差异”比单个指令的差异更容易拖住现场进度,移植团队里最好有人明确分工:接线的查接线,PLC 的盯传递,NC 侧的盯 MEAS 的用法。
第一条、跳步指令:发那科与三菱的跳步是 G31(以及 G31.1 等多段跳跃),信号触发后舍去剩余距离立即停止。西门子没有 G31 这条语法,用 MEAS 测量指令:MEAS=±1 表示用测头 1(测量输入 1),MEAS=±2 表示用测头 2(测量输入 2)。移植时不要把任何 G31 写法搬进西门子程序,这一点最容易被惯性带偏。
第二条、公制编程:发那科用 G21 表示公制,西门子的公制是 G71。G21 是发那科的写法,在西门子上不成立。移植公制程序时,把 G21 换成 G71 这个差异如果漏掉,后续的进给、坐标单位设定都会被带偏。
第三条、结果读取变量:发那科的触发坐标从 #5061~#5064 等系统变量读出。西门子用轴位置系统变量 $AA_IW[轴名] 读机床坐标系下的实际位置,$TC_DP6(半径几何)与 $TC_DP12(长度磨损)等用于刀具补偿数据。移植时不要指望在西门子里读 #5061,位置读取的变量体系完全不同。
第四条、宏程序调用体系:发那科用 G65 单调调用、G66 模态调用等宏调用方式,宏变量是 #100~#199、#500~#599 公共变量和 #1~#33 局部变量。西门子的子程序是 SPF 文件(如 MPS_INI、MPS_CAL、MPS_PRES、MPS_INTL.SPF),配合 GUD9 全局用户数据使用;GoProbe for Siemens 用 L9921 加 R0=21/22/23 的直接调用子程序名方式。移植时把发那科的宏号和 # 变量体系直接搬过来的做法不成立。
第五条、测量循环体系:发那科常用 GoProbe 的 O98 系列(如 O9832 开测头、O9833 关测头)、Inspection Plus 的 O9801~O9843 系列。西门子的原生测量循环是一组带参数入口的循环,涵盖 CYCLE961 至 CYCLE998 等多个编号(如 CYCLE971/972/973/974/977/978 等),各有对应用途。移植时须按目标系统的循环文件与选项状态逐个核对可用性。西门子还存在雷尼绍 L98xx 宏加西门子原生循环两套体系并存的情况,具体用哪套按厂商官方手册定。
第六条、字符串显示:发那科在宏程序里拼接显示文本的做法不一定适用西门子。西门子用 MSG(“文本”),但不能直接 MSG(“文本”<<R50) 这样拼接变量,要先 DEF STRING[32] 定义字符串再拼接再输出。移植含信息显示的段落时,这一处容易报警。
第七条、信号接入路径的层级:发那科的测头信号常经光耦接入控制器测量输入,追求相对独立的高速路径。西门子更多依赖 PLC 把信号读进、传到 NC 测量输入,再由 MEAS 指令使用。移植时不要以为把信号一接光耦就完事,要看 PLC 梯形图有没有传递、MEAS 有没有正确指定输入,排查层级重心不同。
下表把两家对比集中列出来,作为移植时的速查。
| 对比项目 | 发那科 | 西门子 |
|---|---|---|
| 跳步/测量指令 | G31(G31.1 多点) | 无 G31,用 MEAS(±1 用测头 1、±2 用测头 2) |
| 公制编程 | G21 | G71 |
| 触发坐标读取 | #5061~#5064 | $AA_IW[轴名] |
| 子程序 | G65/G66 宏调用 | SPF 子程序文件+GUD9 全局数据 |
| 测头开/关 | O9832/O9833 等 | CYCLE971/972/973、L98xx 宏 |
| 测量循环范围 | GoProbe O98xx、Inspection Plus | 原生 CYCLE961~998 等多个编号 |
| 字符串显示 | 宏内拼接文本 | MSG(“文本”),先 DEF STRING 再拼接 |
| 信号接入层级 | 光耦直连测量输入 | 经 PLC 读入并传递到 NC |
这张表是移植时最容易踩中的八个点的速查。需要特别强调,表中列出发那科的写法只是为了对照找出“别搬过去”的内容,不构成对任何一家的评价。两家体系各有各的用法,本文只说明差异,不比较优劣。表中所有西门子侧内容均来自已核实的官方资料,未收录的具体调用号、变量号段以对应厂商官方手册为准。
问一:测头明明触发了,PLC 状态表里输入位却不翻,先查哪里?
先放下测量循环。按最小验证法,第一步在 PLC 状态表看测头对应输入位:按下测头,输入位不动,优先查第1章物理接线(站号、端子、极性、公共端、屏蔽);输入位会动但 NC 侧不记录,再查第2章 PLC 传递和第3章 MEAS 的用法。
问二:把发那科的 G31 写法搬进西门子程序,会怎么样?
西门子没有 G31 这条语法。按已核实资料,发那科与三菱的 G31 在西门子上不存在。程序里出现 G31 会被当作不支持的指令,系统报错或行为不可预期。西门子用 MEAS 测量指令完成触发采样,不用 G31。
问三:西门子的公制是 G21 还是 G71?
是 G71。G21 是发那科的公制写法,在西门子上不成立。移植公制程序时,要把发那科的 G21 换成西门子的 G71,这一处最容易漏。
问四:信号进了 PLC,为什么 NC 侧还是测不到?
信号进 PLC 只是第一步,还要看梯形图有没有把输入位映射到 NC 可识别的测量输入,以及 MEAS 有没有在合适时机指定测量输入。PLC 层排查见第2章(输入位可读、传递通路、常开常闭方向),MEAS 的用法与读取见第3章(MEAS=±1 用测头 1、MEAS=±2 用测头 2、$AA_IW 读取触发位置)。
问五:触发时有时无,是什么原因?
可能原因较多:屏蔽层悬空引入干扰、插头虚接、输入模块或梯形图的滤波把短促触发沿滤掉。优先查第1章屏蔽与布线,再看第2章输入滤波。注意滤波与信号持续时间的取舍,滤波过重会漏触发,需现场实测平衡。
问六:测头在西门子机床上用哪个测量循环?
西门子原生测量循环是一组编号(涵盖 CYCLE961 至 CYCLE998),各有对应用途。此外还有雷尼绍 L98xx 宏加西门子原生循环两套体系并存,用哪套按厂商官方手册定,本文不指定固定调用入口。
问七:触发坐标从哪个变量读?
西门子用 $AA_IW[轴名] 这类轴位置系统变量读机床坐标系下的实际位置;刀具补偿数据走 $TC_DP6(半径几何)、$TC_DP12(长度磨损)等。触发坐标的读取变量与发那科的 #5061 完全不同,具体用哪个变量取决于循环体系,以官方手册为准。
问八:为什么不能随便查一个网上流传的西门子地址表来接线?
西门子各机型、各配置下的 I/O 地址、数据块号、端子号差异较大,而且流传的地址表未必经过核实。已核实的可写项只有 MEAS 指令、$AA_IW 变量、CYCLE971/972/973、SPF 子程序、G71 这类系统侧语法。具体 I/O 地址、数据块号、端子号,一律以该机床的 PLC 程序与西门子官方手册为准,不要沿用来历不明的配置。
本文关于西门子系统侧语法的内容,包括无 G31、MEAS 测量指令(MEAS=±1 用测头 1/测量输入 1 测量、MEAS=±2 用测头 2/测量输入 2 测量(+ 上升沿、− 下降沿))、触发位置 $AA_IW[轴名]、刀具补偿数据 $TC_DP6(半径几何)与 $TC_DP12(长度磨损)、原生测量循环号段涵盖 CYCLE961 至 CYCLE998 等多个编号、SPF 子程序文件与 GUD9 全局数据、公制为 G71、字符串 MSG 需先 DEF STRING 再拼接、以及雷尼绍 L98xx 宏体系与 GoProbe for Siemens 用 L9921+R0=21/22/23 等,均来自已核实的官方资料,文中有明确标注的已核实项按官方资料写入。本文未收录的、以及各机型间存在差异的具体 I/O 地址、数据块号、端子号、站号、诊断画面编号、测量循环调用入口与结果回传号段,一律以该机床的 PLC 程序与西门子官方手册及对应厂商官方说明为准,本文不做推算或编造。涉及设备供电、屏蔽接法、公共端类型等接口事项,以对应测头与接收器设备的官方数据表与接线说明为准。
每台机床的配置、工况和预算都不一样,本文给出的只是参考框架。您可以:
宁波匠测科技——15 年专注精密测量,服务雷尼绍、马波斯、波龙全系测头与对刀仪的选型、安装、校准、维修与维保。
| 联系方式 | 信息 |
|---|---|
| 官方预约 | jcetech.cn/contact |
| 咨询热线 | 157-5780-7400 / 132-2194-1413 |
| 寄修地址 | 宁波鄞州研发园 A2-12B17 |
| 服务范围 | 全国上门 · 加急维修 48 小时响应 |
把问题发给我们,让专业工程师帮您算清楚这笔账。
打开微信扫一扫,关注「宁波匠测」
获取维修进度查询与技术支持
打开企业微信或微信扫一扫
添加专属顾问,随时沟通