ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

汇川AM401伺服张力控制系统实战:从硬件选型到PID调试全解析

汇川AM401伺服张力控制系统实战:从硬件选型到PID调试全解析 做过收放卷、张力控制项目的朋友应该都清楚汇川AM401-cpu1608TN这套组合在中小型设备里出场率相当高。它把EtherCAT总线主站、模拟量采集、逻辑控制集成在一个CPU里用来拖伺服驱动加张力传感器正好覆盖了卷绕、印刷、线缆、轧制这些典型应用。这篇文章我就从一张白纸开始完整过一遍硬件选型、接线、参数配置、程序框架和调试排障把我实际踩过的坑和验证过的做法都放进来给后面接手类似项目的兄弟一个能直接照着干的参考。先说清楚这套系统能干什么AM401通过EtherCAT总线带伺服驱动完成速度或位置控制张力传感器通过模拟量模块把实时张力反馈给PLCPLC内部做PID运算后输出速度修正量给伺服实现恒张力闭环控制。整个过程中涉及总线配置、伺服参数整定、模拟量标定、PID调试等几个关键技术点适合刚接触汇川中型PLC或者第一次做张力控制项目的人参考。1. 项目背景与整体方案设计1.1 为什么用AM401-cpu1608TN汇川AM401-cpu1608TN属于AM400系列中型PLC定位在小型机H系列/Easy系列和大型高端机型之间。从具体硬件特性来看它最值钱的地方有三块一是内置EtherCAT主站可以带几十个从站伺服二是本机集成若干路模拟量输入输出省掉了部分扩展模块三是编程软件是InoProShop底层基于Codesys平台用结构化文本、梯形图、功能块都行对熟悉Codesys的人几乎没有学习门槛。我当初选它还有一个实际原因就是项目里既有高速总线伺服又需要采集模拟量张力信号还希望触摸屏走以太网。如果用小型机往往EtherCAT和模拟量扩展模块占了槽位剩下资源比较紧张。AM401-cpu1608TN的以太网口项目和触摸屏走Modbus TCP通了以后程序里就留一个Socket或Modbus服务器功能块省事很多。1.2 系统硬件组成与通讯拓扑一个典型的张力控制工位硬件上通常包含PLC主机AM401-cpu1608TN、伺服驱动器我这里用SV660N系列、伺服电机、张力传感器、变送器、触摸屏、开关电源和若干继电器断路器。通讯拓扑如下PLC与伺服之间走EtherCAT网线直连或通过交换机级联周期最快可以做到1ms以内实际跑2ms、4ms都没有压力PLC与触摸屏走网线Modbus TCP或者厂商私有协议均可张力传感器信号经变送器输出0~10V或4~20mA进PLC模拟量输入通道若现场还有变频器可以用RS485走Modbus RTU但注意同一时刻通讯负担不要过重。从整机布局角度看强电柜和弱电信号线必须分开走线槽张力传感器的屏蔽线一定要单端接地这是我后来被干扰折磨得出的最深刻教训。1.3 方案对比为什么不选Easy320或H5U很多朋友会问现在Easy320和H5U也很热门为什么不用它们做张力控制。Easy320确实是性价比很高的选择但它的模拟量扩展能力、EtherCAT带轴数量和程序容量在大型张力控制上会紧张一些。H5U是支持EtherCAT的编程风格接近小型PLC如果项目比较简单、轴数不多用H5U完全没问题。但本项目用AM401还有一层考虑后期可能要扩展视觉、追标、凸轮曲线等功能AM401系列在Codesys平台下做这类高级运动控制更顺手且CPU1608TN算力够用不需要再换平台。如果你只是单轴张力控制、不考虑后期扩展那Easy320或H5U会更省钱如果项目有持续演进需求AM401不会让你被硬件天花板卡住。2. 硬件接线图与现场布线要点2.1 主回路与控制回路接线先说主回路。AM401-cpu1608TN供电一般为24V DC最大功耗要看具体型号建议用100W以上的开关电源单独供电不要和伺服主回路共用一路电源避免伺服启动瞬间压降导致PLC重启或模拟量跳变。控制回路里24V要给PLC、触摸屏、传感器变送器、伺服控制电等分区配电每路加保险丝或断路器。主回路典型接线如下三相或单相交流电进伺服驱动器RST或L1L2按驱动器规格接伺服驱动器U/V/W接伺服电机对应端子编码器线插CN2或专用口注意别插反很多伺服驱动器的编码器接口虽然防呆但大力出奇迹之后针脚歪了很难查伺服驱动器控制电一般也是24V DC由PLC侧给过来用于保持通讯和参数运行。PLC这边电源端子标注比较明确L/M或者24V/0V正负极别接反。AM401的输入是漏型/源型兼容具体按你接的传感器类型选公共端方式这里建议统一用漏型接法很多国产传感器和按钮默认也是这个逻辑。2.2 伺服驱动与电机接线以SV660N为例接线主要是这些环节主回路电源进线R、S、TPE接地建议用4平方以上的线具体看驱动器规格电机动力线U、V、W和电机的U、V、W对应相序错误会导致电机抖动或报故障编码器线SV660N通常是DB接口或者网口形式编码器线必须用屏蔽双绞线屏蔽层在驱动器端接地抱闸线如果电机带抱闸需要单独接24V抱闸电源注意抱闸线圈是感性负载必须并在续流二极管或压敏电阻否则触点拉弧严重。从实际经验看动力线、编码器线、控制线三者在同一个线槽里走是导致编码器干扰报警的主要原因。我一般让动力线和编码器线相隔至少20cm实在无法避免就加金属隔板。伺服上电后报编码器相关报警先别怀疑编码器坏了大概率是接线或干扰问题。2.3 张力传感器与模拟量模块接线张力传感器常见的输出是毫伏级信号必须经过变送器放大成标准信号。本项目用0~10V模拟量输入通道接线如下变送器供电24V DC正负传感器信号接变送器信号输入信号-接信号输入-变送器输出接PLC模拟量输入AI输出-接PLC模拟量输入AI-屏蔽线在PLC侧单端接地。如果传感器本身就是0~10V或4~20mA输出可以跳过变送器直接进PLC但依旧建议加隔离器或确保传感器供电与PLC供电同一个稳定源。对于张力信号这种满量程可能只有几十公斤、但精度要求到几十克的应用信号线远离变频器和伺服动力线是基本操作不然PID算出来的张力值本身就不准闭环就是空中楼阁。2.4 接线避坑清单PLC的模拟量输入通道不要和传感器变送器共用一个24V开关电源输出端口尽量分路屏蔽线单端接地两端都接地反而会形成地环路低频干扰更严重网口接线用带屏蔽的工业以太网线水晶头要压接到位EtherCAT掉站的故障里有相当比例就是网线接触不良动力线去吃功率控制线去传信号这个观念要从画图阶段就刻进脑子里防止接线错误导致烧通道模拟量接反常见后果是读数为异常满偏或零偏一般不会烧毁但如果把24V直接引入模拟量端子那基本就是通道报废。3. 从零开始配置伺服驱动与张力传感器3.1 软件准备与新建工程配置AM401必须用InoProShop这个软件官网可以下载安装过程没太多坑但要注意版本和PLC固件匹配。最好选和固件版本接近的软件版本否则在线连接时可能提示固件不匹配。自动化软件这个领域版本对齐是省时间的头等大事。新建工程时选对PLC型号AM401-CPU1608TN确认IO点数和固件版本。工程建好后左侧设备树里会有PLC节点右键可以添加EtherCAT主站、从站设备、模拟量扩展模块等。这些操作和Codesys几乎一致如果你是Codesys转过来的可以直接上手。3.2 EtherCAT主站扫描与伺服轴参数配置伺服配置是整套系统最关键的一步。在设备树里右键添加EtherCAT主站然后在主站下右键扫描从站前提是伺服驱动器已经上电且网线连接正常。扫描后软件会列出在线设备直接应用即可。如果扫描不到优先检查网线、驱动器的站号拨码、伺服是否处于通讯就绪状态。扫描完成后SV660N会出现在从站列表里这时需要做几件事分配站号建议和实物拨码一致方便日后维护导入或配置伺服配置文件ESI文件SV660N的ESI文件在汇川官网或驱动器的资料包里都有没有配置的话伺服无法识别为驱动类设备在PLCopen轴管理里创建轴实例把EtherCAT从站映射到轴上这样程序里才能用MC_Power、MC_MoveVelocity这些功能块控制它。伺服本身的参数比如电子齿轮比、方向取反、最大转速、加减速时间可以通过InoProShop在线写入也可以先在伺服面板或调试软件里设好。我的习惯是先在伺服调试软件里把基础参数调通再回PLC侧做总线控制这样排查问题时更容易定位是伺服还是PLC的问题。伺服工作在EtherCAT模式下关键参数一般有这几项运行模式速度模式或位置模式按项目需要选电子齿轮比决定指令单位与电机旋转角度的换算关系常用1:1然后通过MC_FeedOverride或速度给定处理方向参数实际旋转方向和程序预期相反时直接改方向取反或交换编码器方向限位与急停这些必须在伺服侧或硬接线实现不能只依赖PLC逻辑。3.3 模拟量通道采集与张力信号标定张力传感器通过变送器输出0~10V进AM401模拟量输入通道。在InoProShop里模拟量采集通常有两种方式一种是在设备树里组态模拟量模块得到原始值通常是0~27648或者0~65535看模块位数再在程序里做量程变换另一种是用系统自带的模拟量通道变量直接读取工程值。标定是张力传感器调试中最容易被跳过但最要命的环节。假设传感器量程0~50kg变送器输出0~10VAM401内部采样值0~27648那么换算公式为张力实际值 采样原始值 / 27648 * 50kg但这只是理想线性换算。实际情况中传感器在零点和满量程附近往往有非线性加上机械安装预紧力的存在传感器空载时输出可能不是严格的0V。所以一定要做两点或三点标定先让张力辊空载记录当前原始值作为零点偏移再挂标准砝码或者用标准拉力计加载记录满量程原始值。把这两个点写在PLC参数里程序里按实际斜率和偏移量计算张力值而不是直接用理想公式。我项目里也碰到过传感器信号本身比较小、变送器增益不稳的情况后来在模拟量通道加了软件滤波一阶低通滤波时间常数大概50~200ms既保留了响应速度又能有效抑制机械振动带来的高频毛刺。3.4 张力-速度PID控制程序示例张力闭环控制的逻辑说起来很直白设定一个目标张力读取当前实际张力两者偏差送PIDPID输出作为伺服速度修正量叠加到运行速度上控制伺服。需要注意在收放卷这种变径场合控制对象是一个典型的积分环节PID参数和卷径补偿往往需要做额外处理否则张力波动很难压下来。下面是一段ST语言示例展示程序框架VAR bEnable : BOOL; rSetTension : REAL : 10.0; // 目标张力 kg rActTension : REAL; rTensionFb : REAL; // 滤波后实际张力 rPIDOut : REAL; rBaseSpeed : REAL : 300.0; // 基础线速度 mm/s rSpeedRef : REAL; PID_Tension : PID; // 调用库中的PID功能块 END_VAR // 张力信号滤波 rTensionFb : rTensionFb (rActTension - rTensionFb) * 0.1; // PID计算 PID_Tension(SetValue : rSetTension, ActualValue : rTensionFb, Output rPIDOut, Gain : 0.5, // 比例增益 Ti : 200, // 积分时间 ms Td : 0); // 微分一般不用或很小 // 速度给定 基础速度 PID输出 rSpeedRef : rBaseSpeed rPIDOut; // 伺服运行 MC_Power(Enable : bEnable, Status ...); MC_MoveVelocity(Axis : Axis1, Velocity : rSpeedRef, Acceleration : 100, Deceleration : 100, Execute : bEnable);这段代码只是简化示意实际项目里PID功能块的接口、库版本写法可能略有差别。有一点要提醒PID先调P再加ID尽量不给。张力对象本身滞后不算大D给大了反而放大噪声导致伺服速度抖动。我常见的做法是P给0.3~1.0I给100~500ms然后根据实际张力曲线慢慢调。4. 现场调试实录与常见问题排查4.1 EtherCAT通讯不上与伺服掉线这个问题出现频率极高特别是在第一次上电配总线的时候。现象一般有两种一种是扫描从站时干脆扫不到。排查顺序是伺服控制电有没有上、站号拨码是否正确、网线是否插在主站和从站的正确端口有人把伺服两个网口插反了导致链路不通、电脑防火墙有没有拦InoProShop。扫不到时还可以用伺服自带的调试软件确认驱动器本身通讯正常再回PLC侧查。另一种是运行一段时间后伺服从站掉线报警是总线同步丢失或从站超时。这时候重点看网线和水晶头质量工业现场震动大劣质网线很容易接触不良再看伺服驱动器和PLC之间的接地是否良好如果接地电位差大EtherCAT信号质量堪忧。有条件的话在InoProShop里看从站的丢帧计数和误码率统计这是定位总线不稳定最直接的手段。4.2 张力波动大与信号干扰张力值在触摸屏上频繁跳动闭环跟随效果差这是做张力项目最常见的痛点。先把PID摘掉直接看模拟量采样值的变化如果采样值本身就乱跳问题大概率在传感器、变送器或接线环节和PID无关。检查顺序建议先确认传感器安装是否受力均匀有时候张力辊两端的轴承卡滞传感器读到的是波动的机械力再确认变送器电源是否稳定可以用万用表看输出电压毛刺然后看模拟量通道是否采集到较多的工频干扰给通道加滤波能缓解一部分但治标不治本还是要从接线上把干扰源切断。另外还有一个容易忽视的问题机械共振。如果张力波动频率和设备的机械固有频率接近无论怎么调PID都会震荡。这时候可以考虑加陷波滤波器或者调整机械结构、降低速度环增益效果往往比死磕PID参数要好。4.3 伺服报警代码速查SV660N常见的报警代码和处理思路如下实测比较管用报警代码含义处理思路Err.410 / 420过流或过载检查电机动力线相序、负载是否卡死、加减速时间是否过短Err.431过压检查输入电源电压、制动电阻是否接入再生能量大时考虑外接制动电阻Err.511编码器通讯异常检查编码器线是否接触好、屏蔽层是否接地Err.710EtherCAT通讯丢失检查网线、从站配置、主站是否进入运行态Err.830位置偏差过大检查机械卡滞、电子齿轮比设置、速度环增益现场处理报警时先在伺服面板或调试软件里看报警发生时刻的电流、速度、母线电压等历史记录数据这对判断是电气原因还是机械原因非常有帮助。有些报警在复位后能消除但根本原因没解决过一会儿又会出现千万不要靠反复复位硬撑要按表逐个排查原因。4.4 上电顺序与下电逻辑这些细节坑经验越足越会发现出问题往往不是大环节而是上电下电顺序这种细节。我建议的启动顺序是先合主回路给伺服和变频器送电等母线电压稳定后再给PLC和触摸屏送控制电让PLC程序启动后去初始化EtherCAT主站和伺服。如果反过来先给PLC送电再给伺服送电虽然多数情况下也能恢复通讯但偶尔会出现总线主站初始化失败或首帧通讯不完整运行时更容易埋下隐患。下电时顺序相反先让程序里伺服轴停止、主站进入非运行态再断开伺服控制电最后断开主回路。如果在伺服高速运行中直接断总闸下次上电时可能出现编码器多圈数据丢失或位置原点漂移。还有一点要注意AM401断电保持区和普通寄存器要提前规划。张力设定值、PID参数、标定零点这些关键数据应该放到断电保持区否则设备重启后所有参数归零现场操作人员会以为设备坏了。标定数据建议单独做一个参数区程序启动时读出来用调试时改完参数记得触发保存。最后说说我在实际调试中的体会张力控制这类系统最花时间的不是编程和接线而是机械和电气配合的调优。伺服参数、PID参数、机械刚度、传感器安装每一项都可能成为系统性能的瓶颈。做项目时一定要预留足够的调试时间并且把每一步的测试数据记录下来。你会发现当你把干扰问题从源头解决后PID的调参过程会比想象中顺利得多。希望这篇实战记录能给你省下几个熬夜的夜晚。
返回列表