简介:三菱AD71系列伺服定位模块用户手册是面向工业自动化领域设计的一份权威技术文档,适用于A系列PLC系统中AD71(S1/S2/S7)及A1SD71-S2(S7)型号的定位模块。手册重点服务于需要实现高精度伺服运动控制的电气工程师、PLC编程人员与设备维保人员,内容涵盖模块架构、接口特性、运动控制模式、硬件安装与接线、参数配置、故障代码排查及安全注意事项,可帮助读者从原理到实操全面掌握该模块的选型与应用。资源包为单个PDF文件,整体大小8.06MB,内容为三菱官方英文版用户手册,结构完整,包含技术规格、功能说明和操作指南,适合作为工程现场查阅的离线参考资料。目前已有142人浏览学习,对于正在使用或计划引入三菱A系列定位模块的自动化项目团队而言,这份手册能大幅缩短学习曲线,并在调试和排除定位异常时提供关键依据。
1. AD71定位模块:老A系列PLC产线上依然能打的伺服定位方案
很多维修电工把AD71定位模块当成一个黑匣子:伺服不动了就换件,换完还是不动就怀疑伺服放大器,折腾半天才发现是参数没写进去。其实这块A系列PLC专用的定位模块,逻辑并不复杂,它负责把PLC程序里的位置、速度、加减速时间翻译成伺服放大器能识别的脉冲指令。S1/S2/S7三种配置加上A1SD71-S2(S7)这个派生型号,覆盖了从单轴点位控制到连续轨迹控制的大部分场景。这份手册最有价值的地方,是把缓冲存储器地址表、接线端子定义、报警代码三块拼图一次给全了,适合维护老产线的电气工程师、做备件替换的采购,以及想在手头老设备上做点位改造的人。
2. 拆开型号与接线:确定你手里的AD71是哪一版
2.1 型号后缀怎么看:S1、S2、S7与A1SD71-S2(S7)
拿到模块先别急着上电,看面板上的完整型号。AD71(S1/S2/S7)和A1SD71-S2(S7)不是同一个东西换了个壳,后缀差异直接决定你该翻手册的哪一章。S1是基础配置,适合单轴点位定位,速度要求不高的场合;S2在功能上做了增强,缓冲存储器的地址布局和错误代码定义跟S1不一样。S7则是功能更全的一版,脉冲输出模式、回原点逻辑、多段定位数据的编排都有区别。A1SD71-S2(S7)这个名字里带A1S,表示它是配合A1S系列CPU使用的子型号,如果你手头是A2S或A1S的基板,选型时就必须注意这个前缀。
我看过不少备件仓库里的模块,标签上只写了AD71,实际翻开侧面的铭牌才发现是S7版,结果按S1的地址表去写程序,一启动就报错。所以第一步永远是核对铭牌上的完整型号和版本号,再去找对应章节。
| 模块型号 | 适用系列 | 典型应用场景 | 手册查阅重点 |
|---|---|---|---|
| AD71(S1) | A系列基板 | 单轴简单点位定位 | 基本接线、基础缓冲存储器地址 |
| AD71(S2) | A系列基板 | 速度与位置切换控制 | S2专用地址、错误代码差异 |
| AD71(S7) | A系列基板 | 多段定位、复杂回原点 | S7指令格式、状态字定义 |
| A1SD71-S2(S7) | A1S系列基板 | 小型CPU配套定位 | I/O分配规则、模块号设置 |
2.2 安装与电源接线:基板槽位、5V电源与FG接地
安装这块模块之前,先确认基板上空槽位的I/O分配。A系列基板的每个槽位有固定的起始I/O号,模块插上去之后,CPU通过这个起始I/O号来访问它。这里有个老手都懂的坑:模块占用的I/O点数不一定等于物理点数,手册里明确写了AD71在基板上占用的点数,如果你按常规16点去算,后面FROM/TO指令里的模块号可能整体偏了一位。
电源接线方面,模块本体需要基板供电,一般从基板背板取5V,不需要额外接外部电源。但伺服放大器的脉冲指令线、方向指令线必须按手册的端子图逐根对,常见做法是脉冲输出和方向输出各用一对双绞屏蔽线,屏蔽层单端接到控制柜的接地排。FG端子是功能接地,我习惯把它和模块安装导轨的接地端一起接到同一接地排,减小高频干扰。
接线顺序也有讲究。先把伺服放大器的电源断开,再接模块到放大器的信号线,最后上电核对。曾经有人带电插拔信号线,模块端的输出光耦直接击穿,LED不亮但基板供电正常,外观完全看不出问题。手册里那段防静电和断电操作的提示,不是套话,踩过一回就长记性了。
2.3 DIP开关设置:模块地址与输出脉冲模式
DIP开关是新手最容易忽略的一步。AD71模块的DIP开关一般有两个功能:设定模块在基板上的地址编号,以及选择输出脉冲的模式。地址编号决定CPU用FROM/TO指令访问它时填的模块号,比如某项目X里,模块插在起始I/O号为32的槽位,模块号就是32除以16等于2,那么程序里的模块号就填2。这个换算关系手册里有表,照着查就行。
输出脉冲模式一般分正逻辑和负逻辑两种。正逻辑是脉冲输出为ON时表示有脉冲,负逻辑正好相反。这个必须跟伺服放大器侧的输入形式匹配。比如伺服放大器参数里设的是负逻辑,模块这边DIP开关却是正逻辑,就会出现指令位置和实际位置对不上的情况,而且不报错。DIP开关在带电状态下拨动不会生效,必须在断电后设置,上电后再读一次确认。我见过有人在PLC运行中拨DIP开关,结果模块内部参数被重置,整个定位数据全部丢失,只能重新下发。
3. 缓冲存储器与FROM/TO指令:把定位参数写进模块的正确姿势
3.1 为什么把缓冲存储器叫黑匣子
AD71模块内部有一块RAM区域,叫做缓冲存储器,外部CPU不能直接用X、Y、D、M这样的软元件去操作它,只能通过FROM和TO两条指令来读写。这就是很多初学PLC的人觉得它玄学的原因:看着手册里的地址表,不知道哪个地址该写、哪个地址只读,更不知道写入顺序错了会不会把模块搞挂。
缓冲存储器的本质,是模块和CPU之间的一个数据交换区。CPU用TO指令把目标位置、速度、加减速时间、启动指令这些控制字写进去,模块按顺序执行;执行过程中,模块把当前位置、状态字、报警代码持续刷新到缓冲存储器另一个区域,CPU用FROM指令读出来。理解了这个机制,再看手册里的地址分配表,思路就清晰了:先找“哪些你要写”,再找“哪些你要读”。
3.2 建立自己的地址映射表
手册里的缓冲存储器地址表是英文的,而且按功能分散在不同的章节,用起来很别扭。我的习惯是拿到手册先建一张自己的映射表,把项目里用得到的地址集中到一页纸上。下面是我在模拟项目X里整理过的表格模板,地址编号不保证和你手上的模块版本完全一致,但分类思路可以直接抄作业:
| 地址类型 | 用途 | 访问方向 | 说明 |
|---|---|---|---|
| 控制命令区 | 启动、停止、回原点 | 写 | 每次启动前先清零,再置位 |
| 参数设定区 | 速度、加减速、定位数据 | 写 | 上电后先写入,再确认状态 |
| 状态监视区 | 就绪、运行中、定位完成 | 读 | 用于程序联锁 |
| 当前位置区 | 当前坐标值 | 读 | 断电后不一定保持 |
| 报警代码区 | 最近一次故障原因 | 读 | 处理完要按手册清除报警 |
建表的时候要把手册里的地址编号填进去,然后在旁边标注数据类型是二进制位还是十六位整数。这一步看起来繁琐,实际排查故障时能省大量时间。
3.3 FROM/TO读写:先清状态,再写参数,最后启动
写程序之前先记住三个原则。第一,模块上电后缓冲存储器里的数据是随机的,必须先用参数写入指令把速度、位置、加减速时间全部初始化一遍,不能依赖模块的默认值。第二,启动指令是一个脉冲信号,不能在M继电器上长按,否则模块会认为一直在请求启动。第三,状态字和报警字必须先读一次再判断,避免把上电瞬间的历史故障当成当前故障。
下面是A系列PLC里典型的写参数和启动指令序列,用指令表的写法表达:
LD M0 ; 初始化脉冲 TO H2 K12 D0 K4 ; 把D0开始的4个数据写入模块2的缓冲存储器地址12 ; D0=目标速度,D1=加速时间,D2=减速时间,D3=目标位置 FROM H2 K25 D10 K1 ; 读状态字到D10 LD M10 ; 启动脉冲 TO H2 K0 D20 K1 ; 写启动命令,D20的位0置1这里的H2就是DIP开关设定的模块号,K12是缓冲存储器地址,D0是PLC侧的数据寄存器,K4表示连续写4个点。启动按钮M10只ON一个扫描周期,所以D20里存的启动位要在一个周期内先置位再复位,或者用M10的上升沿去驱动TO指令,避免模块收到持续启动信号。
FROM指令的参数含义也一样:H2是模块号,K25是状态字地址,D10是存放读出数据的寄存器,K1是读1点。每次启动前先读状态字,确认模块已经准备好,是一个值得养成的习惯。
4. 定位控制程序框架:从设备就绪到定位完成的状态机
4.1 定位时序的四个阶段
AD71定位模块的工作时序,可以拆成四个阶段。第一阶段是上电等待,模块自检后输出就绪信号,此时缓冲存储器里的状态字对应位变为1。第二阶段是参数下发,CPU把速度、加减速时间、目标位置写入缓冲存储器,如果是多段定位,还要写入定位数据编号。第三阶段是运行监视,CPU写入启动命令后,模块开始输出脉冲,状态字里的运行位置监视,直到实际位置到达目标位置,定位完成位置1。第四阶段是结束确认,CPU检测到定位完成位后,要么继续下一次定位,要么做后续的夹具动作。
这个顺序看起来简单,但现场翻车往往发生在阶段切换的边界处。比如定位完成信号保持的时间很短,PLC扫描周期稍长就漏读了;再比如第二段定位开始前,没有先确认第一段已经完全停止,结果两段运动叠加在一起。
4.2 一个可落地的梯形图框架
一个稳定的定位程序至少包含三个程序块:初始化块、启动块、监视块。初始化块只在PLC上电后的第一个扫描周期执行一次,负责写参数和清状态;启动块用按钮上升沿触发启动指令;监视块每个扫描周期都读状态字,判断当前处于运行中还是定位完成。
下面是简化的梯形图指令表表达,用按钮X0启动一次定位:
; 初始化块,仅在首次扫描执行 LD M8002 ; A系列PLC首次扫描标志 TO H2 K25 D100 K1 ; 读状态字 LD M8002 TO H2 K12 D200 K4 ; 写入速度、加减速时间和目标位置 ; 启动块,X0上升沿触发 LD X0 PLS M20 ; M20只在X0上升沿ON一个扫描周期 LD M20 TO H2 K0 D300 K1 ; 写启动命令 ; 监视块,常读状态字 LD M8000 ; 运行监视常ON FROM H2 K25 D10 K1 ; 读状态字 LD D10.0 ; 就绪位 AND D10.2 ; 运行中位 OUT M30 ; 运动状态指示这里M8002是首次扫描标志,专门用来做初始化。M8000是运行监视触点,保证FROM指令在PLC RUN期间持续执行。PLS M20把X0的常开信号转成一个扫描周期的脉冲,避免启动指令被模块当成持续请求。D10.0和D10.2是按位访问D寄存器,具体哪个位对应就绪、哪个位对应运行中,以你手上手册的状态字位定义为准。
写完这段逻辑后,在GX Developer里还能用软件自带的监视功能,在线看M20是不是只亮一下就灭,看D10里的每个位跟随动作变化是否正确。这一步是验证程序逻辑最直接的方法。
4.3 脉冲数、速度与加减速的换算
定位控制的最终对象是伺服电机,而伺服电机的运动单位是脉冲。手册里的参数虽然有位置和速度,但它们在模块内部都要折算成脉冲频率和脉冲个数。这个折算是项目里最需要和机械工程师对齐的一步。
我一般会先用一个实例走一遍。假设丝杠导程是10毫米每转,伺服放大器电子齿轮比设为1比1,电机每转需要5000个脉冲,那么模块里目标位置写入的脉冲数就是:位移量除以导程再乘以每转脉冲数。移动50毫米,计算结果是50除以10再乘以5000,等于25000个脉冲。速度参数同理,假设要每秒走100毫米,折算后的脉冲频率就是100除以10再乘以5000,等于50000赫兹。
这个计算在手册里不一定有现成公式,但几乎每个使用AD71的项目都要用到。建议把电子齿轮比、丝杠导程、每转脉冲数三个值固化成一张铭牌贴在控制柜门上,现场调试时不用每次翻图纸。
加减速时间的设置则要参考机械负载。负载惯量大时加减速时间太短,伺服会过流报警;负载惯量小时加减速时间太长,又影响节拍。手册给了加速时间参数的范围表,但我建议从机械允许的极限值的一半开始试,逐步缩短,而不是直接怼到最小值。
5. AD71常见问题避坑:四条现场血泪经验
5.1 定位完成后第二次启动没反应
现象是第一次定位正常,到位信号ON,按钮再按一次,模块毫无反应。把状态字读出来,发现启动位一直为1,模块认为还在上一次的启动请求中。
原因是启动指令写入后没有复位。AD71的启动命令需要手动清零,如果程序里写的是一个长期ON的M点,第一次启动后它一直保持,第二次按下时模块收到的不是新请求,还是同一个遗留信号。
解决方法是把启动信号做成脉冲,写入启动命令后延时一个扫描周期,再执行一次TO指令把启动位清零。这个脉冲逻辑要做到和启动按钮的机械抖动隔离,建议用PLS指令配合,而不是直接在X0上取反,否则抖动会造成一次按键触发多次定位。
5.2 模块上电后LED常闪,但PLC通讯正常
现象是模块的LED以固定频率闪烁,程序里FROM指令能读到数据,但伺服电机完全不动。看起来不像是通讯故障,排查一度陷入僵局。
原因是伺服放大器的READY信号没接回来,或者接回来的端子虚接。AD71在执行定位前要确认伺服放大器已经准备好,这个确认信号没到位,模块就一直停在等待状态,LED闪烁表示等待中。
解决方法是把伺服放大器输出的READY触点接到模块的对应输入端子,并且在程序里通过FROM指令确认状态字里的伺服就绪位已经置1。我还在放大器侧加了一个中间继电器,把READY信号转换成干接点再进模块,隔离效果更好。
5.3 定位位置总是差半圈,偶尔丢步
现象是每次定位完成后测量机械位置,都和指令位置差半圈,但伺服没报警,位置偏差也没有累积。
原因是输出脉冲模式和伺服放大器的输入模式不匹配。AD71的DIP开关设的是正逻辑,放大器侧参数设的是负逻辑,模块给出的脉冲在放大器那里被反向解释,导致每转少接收了半个周期的有效脉冲。丢步偶发则是加减速时间太短,脉冲频率变化率超过了伺服跟随能力。
解决方法是先核对DIP开关和放大器参数,把两边统一成同一种逻辑;再延长加速时间,增加一个小的起始速度,让伺服从低速平缓启动。如果统一后还差半圈,检查一下方向输出是不是正好落后半个脉冲周期,必要时在参数里加一个固定的补偿脉冲数。
5.4 报警代码查到了,但处理完还报警
现象是模块LED显示一个报警代码,手册里查到是过电流或过载,检查外部线路后也没发现问题,清除报警后LED灭,但一启动定位又立刻跳同样的报警。
原因是报警的触发条件可能不是单一因素。比如过电流报警,外部线路正常不代表伺服放大器内部的电流环参数合适,或者机械部分有卡滞,运行瞬间电流飙升。还有一个常见坑是报警代码对应的缓冲存储器地址没有按手册要求在清除前先读取,模块误以为故障未处理。
解决方法是按手册的报警处理流程完整走一遍:先读报警代码,再读报警详情参数,记录完整的故障字,然后按顺序写清除命令,检查机械负载,最后做一次手动伺服试运行,把电流值从监视画面里调出来看是不是接近报警阈值。
6. 用状态区反查定位异常:不停机判断故障源的三个地址
调试AD71还有个非常实用的习惯:不看LED,直接在线监视缓冲存储器的状态区。LED只能告诉你故障类别,状态区能告诉你故障发生在哪一个环节。
我会在PLC程序里固定留出三个D寄存器做在线监视:一个放状态字,一个放当前位置,一个放报警代码。故障时先看状态字,如果就绪位是0,故障在模块自身;如果就绪位是1但运行中位没有亮,故障在参数下发环节,重点查速度、目标位置是不是写入了非法值;如果运行中位亮了但位置值长时间不变,故障在执行环节,要么伺服没跟上,要么放大器的使能信号没有闭合。报警代码其实是最后才看的,它告诉你为什么停,而不是停在哪一步。
LD M8000 FROM H2 K25 D10 K1 ; 状态字监视 FROM H2 K26 D11 K1 ; 当前位置监视 FROM H2 K27 D12 K1 ; 报警代码监视三个地址每次扫描都刷新,我习惯在GX Developer里把它们单独放到一个监视窗口。走完三级排查之后再去翻图纸查接线,基本一次就能锁定问题。从那以后我每次调试带AD71的机台,都强制走一遍状态字、报警码、接线这三步,很少再靠拆模块来猜故障。希望帮到你。
本文还有配套的精品资源,点击获取