尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

S7-1200混搭V90 PN与第三方伺服:PROFINET组态调试

S7-1200混搭V90 PN与第三方伺服:PROFINET组态调试 三根轴两家的伺服一台 S7-1200。这个组合在近两年的小产线改造里出现得越来越频繁SINAMICS V90 PN 负责标准动作因为它跟 TIA Portal 贴得紧、文档齐全、备件好买某一根轴因为机械接口、安装尺寸或者交期问题换了第三方伺服顶上步科 MD60 就是这类场景里比较常见的一个选择。控制器大多停在 S7-1200 这个档位1214C 或者 1215C做 PROFINET IO 控制器带十几个从站绰绰有余成本也压得住。真正费时间的从来不是能不能通而是三家设备各自的控制字、状态字、使能时序、单位换算逻辑都不一样。V90 有 V-ASSISTANT 和官方例程兜底第三方伺服只有一本通讯手册和厂家自己的上位机软件很多细节得靠自己一点点试。下面这套做法是我和几个同行在类似配置上反复折腾之后沉淀下来的从选型分工、报文组态、程序骨架一直写到现场排查的完整链路尽量按能直接抄作业的程度来讲。刚上手的朋友可以顺着做一遍做过几个项目的同行可以直接看第四章和第六章那两块才是第三方伺服真正吃时间的地方。1. 先把三台设备的角色分清楚混搭方案才成立1.1 S7-1200 在这套系统里到底扮演什么角色很多人一上手就想让 1200 干所有事包括位置环、插补、多轴同步这个思路在 1500T 上没问题在 1200 上就有点勉强。S7-1200 作为 PROFINET IO 控制器能力边界大致是最多带 16 个 IO 设备只支持 PROFINET RT 实时通讯不支持等时同步IRT也没有运动控制专用的伺服任务。这意味着它适合做调度员——发命令、收状态、管逻辑、做简单定位而不是做运动控制器。网络口的数量直接决定接线方式。1211C、1212C、1214C 只有一个 PROFINET 口两个伺服加一台触摸屏就占满了必须加一台工业交换机1215C、1217C 自带两个口内部是交换机结构可以串成菊花链V90 接一台、MD60 接一台省掉一个交换机的钱和柜内空间。这一点在选 CPU 的时候就要想清楚不要等柜子装好了才发现口不够。还有一个容易被忽略的硬限制是定位轴资源。S7-1200 的定位轴数量跟 CPU 型号和固件版本强相关从 2 轴到 4 轴不等选型之前必须翻手册里的运动控制资源表。如果超了最省资源的办法就是让伺服自己去做定位V90 的 EPOS 模式PLC 只发启动信号和位置值一个 TO 都不占。1.2 V90 和 MD60 的差异决定了两套组态思路V90 PN 是西门子自家的驱动在 TIA Portal 里可以被直接组态成驱动装置报文选择、状态字解析、诊断信息都是现成的甚至手册里还附带了用标准报文 3 做 EPOS 定位的完整例程。它的调试软件 V-ASSISTANT 可以自动识别电机、做编码器零点标定、设置机械传动比和软限位把驱动侧的机械参数先理顺后面 PN 通讯出问题时才能把变量范围缩小到通讯和参数两块。第三方伺服的路径完全不同。它的 GSDML 文件要手动导入报文往往只实现了 PROFIdrive 标准报文的一个子集控制字的某些位可能根本不响应状态字里也可能没有反馈到位信号。调试软件是厂家自己的一套参数名、故障码、报警一览都得重新学。所以我的建议是V90 走 EPOS 或者 TO 工艺对象都行第三方伺服就老老实实走标准报文 自己写控制字的最笨但最可控的路子每一个位都自己确认过不依赖任何自动功能。1.3 什么情况下值得这么混混用两家伺服从来不是技术偏好而是现实选择。常见的有三种一是机械接口特殊进口伺服的输出轴或者法兰尺寸对不上换一家反而省事二是交期主线用 V90 保供辅轴用现货第三方伺服顶上三是成本某些只做速度控制或者简单定位的轴用第三方伺服能省下不少预算。代价也很真实两套调试软件、两本手册、两套故障码表、两套备件后期维护的人得同时懂两家。所以混用之前先问自己一句这根轴是不是非得用第三方如果只是价格差几百块其实不值。2. PROFINET 把接线问题变成了组态问题2.1 设备名才是真正的通讯地址这是新手最容易绕不过去的一道坎。PROFINET 的循环数据交换靠的不是 IP 地址而是设备名。IP 地址只用于诊断、下载和上位机访问。你在 TIA 里给设备起了什么名字现场设备里就必须写入完全一样的名字大小写、连字符、小数点全部要对上只能用 a 到 z、数字、短横线和小数点不能用中文长度也有限制。标准流程是先在线访问到设备用分配设备名称功能把名字写进去顺便勾上分配 IP 地址让控制器按组态把 IP 发给它。这里有个顺序陷阱——如果你先在别的地方把设备 IP 改成了组态里的 IP再去分配设备名有时候会找不到设备因为搜索用的是 DCP 协议跟 IP 不在一个网段也能搜到但前提是你的电脑网卡和它物理连通。给一个我常用的 IP 规划表写进项目文档里后面谁都改不乱设备设备名IP 地址备注PLCplc-1215c192.168.0.1控制器V90 送料轴ax01-v90192.168.0.11报文 3EPOSV90 封切轴ax02-v90192.168.0.12报文 3EPOSMD60 推杆轴ax03-md60192.168.0.21标准报文速度/位置触摸屏hmi-700192.168.0.31诊断用提示设备名里别塞中文、空格和特殊符号也别两台设备用同一个名字。同名是现场最常见的一类幽灵故障一台通一台不通查半天查不出来。2.2 线、交换机、屏蔽这些看起来很土的问题PROFINET 跑在工业以太网上线材是有讲究的。用四芯屏蔽工业以太网线绿色护套那种别拿办公网线凑合更别用那种几毛钱的成品跳线。连接器优先选工业级的 RJ45 或者 M12金属壳屏蔽层要压接可靠。柜内走线时把网线和动力线分开走槽实在分不开就垂直交叉别平行贴着一米以上。交换机方面非管理型工业交换机就够用但要选宽温、导轨安装、带冗余电源输入的型号。有些朋友拿家用路由器上的 LAN 口当交换机用短时间能通跑一段时间随机掉站最后查出来是交换机扛不住工业现场的电磁环境。这个钱不能省一台工业交换机也就几百块。2.3 更新时间与看门狗默认值不一定适合第三方伺服每个 PROFINET 设备属性里都有更新时间和看门狗时间。更新时间就是循环数据刷新的周期从 1ms 到几百毫秒可调。V90 一般可以给到比较小的值第三方伺服的处理能力参差不齐给太小可能出现丢帧或者看门狗超时报警表现为诊断里周期性闪断。但这里要强调一点把更新时间调大只是缓解症状不是解决问题。如果第三方伺服在默认更新时间下就闪断先检查线材、屏蔽、交换机和设备名冲突最后再考虑放宽时间参数。我见过一个案例现场把更新时间从 4ms 调到 32ms 之后确实不闪断了结果两个月后换了一批网线才发现原来那根线的水晶头压接不良一开始就走了弯路。3. SINAMICS V90 PN报文、V-ASSISTANT 和 EPOS 三条线3.1 先用 V-ASSISTANT 把驱动本身弄明白PN 通讯之前先把驱动单独调通。用 V-ASSISTANT 通过 USB 连上 V90让它自动识别电机型号、编码器类型然后设置机械传动比、软限位、回零方式和抱闸逻辑。这一步跟通讯没关系但它决定了后面所有定位动作的精度和安全性。传动比算错的典型症状是位置指令走 100mm实际走了 100 除以某个比例或者直接超程撞限位。软限位一定要设而且要留足够的安全余量。V90 的软限位是在驱动器内部判断的响应比 PLC 侧程序快得多属于最后一道机械保护。抱闸控制建议交给驱动器自己管它有专门的抱闸输出时序参数先励磁再松闸、先抱闸再断使能自己写程序很难做到那么精确。3.2 报文怎么选控制字里那几个位不能漏V90 PN 支持的报文大致分三类速度控制类标准报文 1、2以及给工艺对象用的 102、位置控制类标准报文 3、5以及 105。选型逻辑很简单——PLC 只控速度就用 1 或 2要让驱动器自己做定位就用 3 或 5要用 PLC 的工艺对象做轴控制就用 102 或 105。报文控制方式典型场景关键内容标准报文 1速度控制简单调速、PLC 只发速度控制字 STW1、速度设定 NSOLL_B状态字 ZSW1、速度反馈 NIST_B标准报文 2速度控制需要扭矩限幅或附加设定在报文 1 基础上增加 STW2、ZSW2标准报文 3位置控制EPOS驱动器内部定位PLC 只发命令除 STW1 外增加位置控制字 POS_STW、位置反馈标准报文 5位置控制EPOS与报文 3 类似的定位应用位定义有差异以手册为准SIEMENS 报文 102速度控制配 PLC 工艺对象的转速轴STW1、NSOLL_B、STW2SIEMENS 报文 105位置控制配 PLC 工艺对象的位置轴位置设定与位置反馈不管选哪个报文速度控制里有一个位绝对不能漏控制字 STW1 的第 10 位由 PLC 控制。这一位不置 1驱动器根本不接受 PLC 的控制命令你发什么它都当没看见。另外 OFF2、OFF3 这两个禁止位在正常运行时必须为 0很多人习惯性把所有位都写 1结果轴一动不动。状态字 ZSW1 的用法也要拎清楚第 0 位是准备接通第 1 位是准备运行第 2 位是运行使能第 3 位是故障。做使能判断时一般等第 1 位准备运行为 1 才认为驱动器准备好了第 2 位为 1 表示功率输出已经打开。故障位为 1 时先查故障码再复位不要盲目清故障。提示报文 3 里除了 STW1 还有一个位置控制字 POS_STW回零、点动、定位启动这些动作是靠模式选择位加启动位的上升沿触发的同时要看状态字里的应答位。这一块的位定义我不建议凭记忆写直接用西门子官方那份 V90 EPOS 控制例程把位表对着手册核一遍再用。3.3 EPOS 还是 PLC 侧工艺对象这两种方案各有适用面。EPOS 是把位置环放在驱动器里PLC 只发回零走绝对位置走相对位置这几条命令优点是几乎不占 PLC 资源逻辑简单一根轴对应几个字的读写十几个轴也不怕。缺点是轴与轴之间没法做联动电子齿轮、凸轮这类功能实现不了。PLC 侧工艺对象正好相反位置环和插补都在 PLC 里算能做多轴联动、能在线改齿轮比但它吃资源1200 的轴数上限摆在那里。我的经验是单轴定位、上下料、简单的往复运动用 EPOS联动、追剪、飞锯这类才上工艺对象。同一台 1200 上混着用也完全可以一根轴走 EPOS另一根轴走工艺对象互不干扰。4. 步科 MD60 的接入第三方伺服的 GSDML 与地址映射4.1 拿到 GSDML 之后先确认三件事导入 GSDML 只是第一步导入之前先看清楚三件事。第一它支持哪些报文PZD 长度是多少能不能选标准报文 1 或者 3还是只有厂家自定义报文。第二它支持的循环更新时间范围和最大 IO 数据长度有些第三方设备的数据长度比西门子的同类驱动小组态的时候要留意。第三它是否支持由 IO 控制器分配 IP 地址以及自动设备名如果不支持就得手动用上位机软件把设备名和 IP 都写进去。这三件事都在 GSDML 对应的手册里通常是一个表格。别嫌麻烦花十分钟看明白比在现场折腾两小时强。我见过最离谱的情况是某台第三方伺服的 GSDML 是旧版本导入之后 TIA 里显示的报文和实物固件里的报文对不上最后找厂家要了新版本的 GSDML 才解决。4.2 地址映射I 区和 Q 区各占多少字节怎么对上组态完成之后在设备概览里能看到输入输出地址的起始位置和长度。这一步必须记下来因为后面写程序全靠这几个地址。我的习惯是在 PLC 变量表里给每个字建一个符号名比如 MD60_STW1 对应 %QW68MD60_ZSW1 对应 %IW68程序里全部用符号名不直接写地址。这样以后改组态、加设备导致地址偏移时只需要在变量表里改一处。高低字序是第三方伺服上最容易翻车的地方。西门子的 PLC 和 PROFINET 都是大端序一个字的高字节在前。但有些第三方设备的 32 位位置反馈是以两个 16 位字发出的而且低字在前PLC 直接当成双字读就得到一个完全错误的大数。判断方法很简单让轴慢慢往一个方向走看 PLC 读到的数值是不是单调变化。如果数值像跳大神一样乱蹦基本就是字序反了用 SWAP 指令把两个字交换一下即可。提示位置值超过 16 位范围时一定要用 32 位变量接收同时确认字序。位置量因为字序反了导致轴往反方向飞、或者直接撞限位是第三方伺服调试里最危险的一类错误第一次上电务必把轴和机械脱开空转验证。4.3 第三方伺服常见的三个不一样第一个不一样是硬件使能。很多第三方伺服除了通讯使能之外还有一个硬件使能端子或者 STO 安全端子必须给它 24V 才能输出功率V90 在这方面的要求相对宽松一些。现场症状就是通讯一切正常、状态字也正常但轴死活不动最后发现是那个端子悬空。上电之前把端子定义表看一遍能接的都接上。第二个不一样是控制字位定义。第三方伺服的控制字通常是 PROFIdrive 的子集有些位不支持有些位虽然支持但语义有细微差别。比如有的设备故障复位不是靠上升沿而是靠一个单独的数字量输入。所以不能拿西门子的位表硬套必须对着它自己的通讯手册一位一位核。第三个不一样是抱闸和到位信号的处理。第三方伺服的到位判断有时是延迟若干毫秒之后才置位有时干脆没有到位状态位只能靠位置反馈跟指令值比对来判断。这种情况下程序里就得自己写一个容差判断窗口别指望有现成的信号可以用。5. 1200 侧的程序骨架从使能到定位的状态机5.1 使能顺序和调用规范不管走 EPOS 还是工艺对象使能都必须按顺序来。以 EPOS 为例正常的上电流程是驱动器上电自检完成状态字显示准备接通PLC 发使能命令置 STW1 第 0 位、第 3 位等驱动器回到准备运行确认状态字第 2 位运行使能为 1 之后再发运动命令。跳步的后果要么是不动作要么是报故障。如果用工艺对象的 MC 指令规范就更明确了MC_Power 的 Enable 引脚一旦置 1 就必须保持而且在每个扫描周期都要调用背景数据块要固定不变。同一个轴的所有 MC 指令必须用同一个背景 DB不能两个地方同时调一个轴否则会出现指令互相打架、Busy 信号闪烁的怪现象。工艺对象的调用位置建议放在循环中断里节拍稳定位置控制更平滑。5.2 回零、绝对定位和速度切换回零是定位系统里最容易出问题的环节。EPOS 模式下回零由驱动器内部完成PLC 只负责启动和等待应答需要注意的是回零开关和编码器零脉冲的配合V90 的 V-ASSISTANT 里可以选不同的回零方式选择依据是机械上有没有参考点开关。工艺对象模式下回零由 PLC 控制MC_Home 的 Mode 参数决定是找开关还是直接设当前位置主动回零一般用 Mode 3。绝对定位用 MC_MoveAbsolute相对定位用 MC_MoveRelative速度模式用 MC_MoveVelocity。这三条指令的 Execute 引脚必须用上升沿触发不能常置 1。很多人图省事把 Execute 接成一个常 1 的变量结果轴走完一次之后就再也不动了因为指令没有检测到新的上升沿。正确的做法是用一个手动脉冲或者状态机里的步序号来产生上升沿。提示多轴系统回零要有顺序通常让有机械干涉风险的轴先回或者按从远到近的顺序回。如果两台伺服的机械行程有重叠不管谁先回都可能撞这时候要在程序里做互锁限定同一时间只允许一根轴处于运动状态。5.3 报警复位与掉站处理V90 复位用 MC_Reset 或者写控制字的故障复位位第三方伺服复位方式看它的手册。这里要分清报警和故障报警通常是提示性的自动消失故障需要明确复位而且要在故障原因排除之后再复位反复清故障容易把小问题拖成大问题。特别重要的一点是S7-1200 如果没有下载 OB86机架故障和 OB82诊断中断任何一个 IO 设备掉站都会直接导致 CPU 停机。这在调试阶段是灾难性的因为 CPU 一停机所有输出都断开整个产线都停。正确做法是先下载空的 OB86 和 OB82在 OB86 里判断是哪个站掉了、掉了之后要不要做安全停车这样单站故障就不会拖垮整个系统。6. 联调时最容易翻车的几个现场从诊断到定因的排查链6.1 第一类诊断里显示未分配设备名或者设备名不匹配这个报错说明 PLC 根本没找到匹配的设备。排查顺序是这样的。先在 TIA 的在线访问里刷新可访问的设备列表看能不能搜到该设备搜不到就是物理链路问题——检查网线、交换机、端口指示灯。能搜到但名字对不上说明设备里的名字跟组态不一致用分配设备名称重新写一遍。写完还是不行把设备断电重启再分配一次有些第三方设备必须重启才生效。还有一种更隐蔽的情况设备名写得对但设备被分配到了另一个组态里的同名设备上。比如项目里有两台同型号伺服名字只差一个字符分配的时候手抖分错了。症状是两台都不正常或者一台正常另一台报错。这种时候把两台设备的 GSDML 诊断信息逐个拉出来对照就可以定位。6.2 第二类通讯正常但轴不动诊断里显示设备良好状态字也能读到数值但轴就是不动。这是第三方伺服上最常见的组合症状按下面的顺序查。第一步确认控制字写到了正确的 Q 地址可以用强制表给某个位强制置位同时用厂家上位机软件看驱动器收到的控制字是什么两边一对比就知道是地址错了还是驱动器没响应。第二步确认控制字第 10 位由 PLC 控制是否置 1这一步漏掉的比例相当高。第三步确认硬件使能端子有没有给 24V。第四步看状态字的准备位有没有置起来如果一直是 0说明驱动器自身还有报警没清。6.3 第三类能动但位置不对、来回抖动位置不对分两种。一种是系统性偏差走 100 毫米只走了 90 毫米这是传动比或者电子齿轮比设错了回到 V-ASSISTANT 或者厂家软件里把机械参数重新算一遍。另一种是随机跳动数值忽大忽小基本可以锁定是字序问题用 SWAP 交换高低字。如果是定位完成之后来回抖动通常是位置环增益过高降低增益或者加大到位窗口。排查这类问题有一个万能手段把 PLC 读到的位置反馈和驱动器上位机显示的位置值放在一起对比同时观察。两个数完全一致问题在机械或参数两个数不一致问题在通讯映射。这一招比翻手册快得多。6.4 第四类跑几小时后随机掉站这类问题最难查因为发生时往往不在现场。可能的原因有四个网线屏蔽没做好或者水晶头压接不良交换机是非工业级动力线和网线同槽敷设更新时间设置过小超过第三方伺服的处理能力。排查方法是先用 TIA 的诊断缓冲区看掉站的频率和规律如果有规律地每隔固定时间掉一次多半是看门狗时间太紧如果毫无规律重点查线缆和电磁干扰。7. 把两家伺服放在同一个节拍上周期、单位与同步7.1 循环中断和 MC 指令的调用节拍工艺对象的 MC 指令放在 OB1 里不是不行但 OB1 的扫描周期随程序量变化位置控制的平滑度会受影响。更稳的做法是放到循环中断 OB 里比如 OB30 到 OB38 中的一个周期设成 4ms 或者 8ms把所有这些轴的 MC 指令都放在里面调用节拍固定位置输出也更均匀。但要注意循环中断的最小周期跟 CPU 型号有关设置过小会造成中断嵌套反而把 CPU 拖垮。经验值是 4ms 起步轴数多的话给到 8ms。另外MC_Power 和运动指令必须在同一个中断里调用不能一个在 OB1 一个在 OB30否则会出现使能丢失或者指令未激活的报错。7.2 机械单位换算LU 与毫米的关系别算错工艺对象里有个机械单位的概念位置值用 LU长度单位表示需要你告诉系统多少个 LU 等于一毫米或者一转。这个换算涉及减速比、丝杠导程、编码器分辨率三个参数任何一个填错都会导致位置成比例偏移。我一般用这个公式核对每转 LU 数 编码器每转脉冲数 × 4 ÷ 减速比如果减速比是电机转数比负载转数。填完之后一定用手动点动的方式实测让轴走 10 毫米用卡尺量实际位移反复校准到误差可接受。EPOS 模式的换算是另一套参数在 V-ASSISTANT 里设置跟工艺对象的参数不通用别搞混。7.3 多轴联动别指望硬同步用软握手前面提过S7-1200 不支持等时同步两个伺服的报文不可能做到严格同步到达。所以多轴联动只能靠程序上的软握手比如让主轴先动、从轴根据主轴的实际位置反馈跟着动用位置跟随而不是位置同步的方式实现。如果工艺要求必须严格同步比如飞剪那 1200 这个级别的控制器就不合适得换带运动控制功能的平台。对于一般的上下料、推料、封切这类应用软握手完全够用。实现方式是在主轴的循环中断里读主轴位置计算从轴的指令位置然后立即下发中间不加额外的等待。响应延迟通常在几个毫秒对大多数包装机械来说可以接受。8. 现场经验里那些零碎但值钱的几条调试顺序永远是从单机到联机、从手动到自动。先把 V90 用 V-ASSISTANT 单独点动跑通再把 MD60 用厂家软件单独点动跑通然后接上 PN 让 PLC 单独控每一根轴最后才跑自动流程。反过来做一次出三个问题你根本分不清是哪个环节的错。参数备份要养成习惯。V90 的参数可以用 V-ASSISTANT 导出成文件第三方伺服的参数导出方式看手册导出之后连同 GSDML 文件、TIA 项目一起归档。现场换件的时候没有备份就得从头调一遍两天时间就没了。手册版本要对上。第三方伺服的通讯手册经常改版不同固件版本对应的报文定义可能不一样拿到设备第一件事是记下固件版本号找对应版本的手册。V90 这边也要注意固件版本报文 102 和 105 是某个版本之后才支持的老固件选不到。最后说一个我个人踩过的坑。第一次做这种混搭的时候我把所有设备放在同一个网段但没做 IP 规划调试时用电脑临时改 IP 连来连去改到最后自己都记不清哪个 IP 是哪台设备。后来每次项目一开始就先画一张网络拓扑表设备名、IP、报文类型、I/O 地址全部写进去贴在电柜门上。这个习惯看着笨但省下来的时间非常可观尤其是半年后设备出问题需要远程指导的时候打开那张表很多问题在电话里就能解决。第三方伺服这类设备只要把控制字和地址映射这两件事啃透剩下的就是重复劳动了。真正难的不是技术本身是手册里没写、要靠经验补上的那些细节比如硬件使能端子、字序、掉站处理。这些东西没人会主动告诉你只能一个坑一个坑踩过来。
返回列表