TwinCAT 2现场调试与PLC编程:老工控机EtherCAT实战指南
简介:《TwinCAT 2.0 从入门到精通》是一份面向Beckhoff CX、CPxxxx、Cxxxx系列控制器用户及TwinCAT 2软件使用者的实践型PDF教程,适合需要完成系统配置、PLC编程、硬件接入与通讯调试的工程师查漏补缺。全书以作者在倍福近15年的技术经验为基础,非官方正式发行,内容覆盖开发环境、常见错误、掉电保持、数据存储、配方、PID温控、EtherCAT与K-Bus、ADS、串口及Modbus/TCP通讯等模块,并穿插项目开发中的实用技巧与避坑提示;上册侧重系统与编程,下册延伸至NC PTP运动控制,目录按主题组织,便于检索。资源包仅含1个PDF文件,大小约5.55MB,适合在电脑或移动端随查随用。目前已有213人学习下载,可作为TwinCAT 2入门、现场调试和迁移至TwinCAT 3前打基础的中文参考材料;其价值在于把常见错误、配置步骤与调试思路放在同一份文档中,方便工程师对照项目快速定位问题。
1. 存量设备上那台不能重装的控制器,正好需要这本 PDF
现场最常见的场景不是新建产线,而是一台跑着 Windows XP 的老工控机,机箱里插着现场总线卡,屏幕上只有 TwinCAT 2.11 的两个蓝色图标——重装系统没人敢动,只能靠资料把配置一层层摸清楚。《TwinCAT 2.0 从入门到精通》这份第 3.1 版 PDF 就是为这种局面准备的:作者是长期做控制器技术支持的一线工程师,把系统概述、PLC 编程、开发环境、硬件与系统、常用功能、IO 与通讯、HMI、数据库这条线按 12 章拆开,截图和代码统一基于 TwinCAT 2.11(Build 2234)。它不讲工艺算法,也不讲软件工程,本质是一本加强版的软件使用说明。适合两类人:控制器软件已经预装好、只需要用自己电脑去编程的 CX/CP 系列用户;以及在第三方工控机上自己装 TwinCAT 2、要独立完成配置和调试的人。
2. 上册 12 章怎么对应现场:从选型表到配套文档的索引法
拿到一份 12 章、还带配套例程的技术资料,最大的浪费不是读不懂,而是按顺序从第一章读到第十二章,读完发现当下要解决的只是"为什么在 System Manager 里搜不到目标机"。这一章先把结构拆开,讲清楚每一块在项目哪个阶段用得上,再讲控制器和 IO 的选型逻辑,最后说清这套资料明明写着"从入门到精通"却不碰哪几块。
2.1 按项目阶段翻目录,而不是按页码翻
教材自己给了使用方法,但那段话容易被略过:项目考察阶段看第 1 章加目录,初学者把第 2 章所有小节走一遍,功能测试阶段按目录找对应章节并打开配套文档里同名的文件夹,项目开发阶段先读第 3 章、再按实际 IO 模块读第 7 章,项目收尾阶段回到第 4 章做系统备份和桌面接管。这个路径背后的逻辑是:TwinCAT 2 的坑集中在"配置层面"而不是"代码层面",配置错了,代码写得再漂亮变量也是红的。
我把这 12 章按现场节奏重新映射了一遍,实际用起来比原目录更好查:
| 章节 | 实际内容 | 什么时候翻它 |
|---|---|---|
| 第 1 章 | 分时多任务原理、PLC 数据区、控制器与 IO 选型、安装接线 | 出方案、报价、判断这台机器能不能扛住 |
| 第 2 章 | 装软件、设 IP 与 NetID、加路由、第一个项目、下载运行、Scope | 第一次接触这台控制器,必须按顺序读 |
| 第 3 章 | PLC Control 深入、任务优先级、实时性判断、变量链接、FAQ | 程序能跑但跑不稳、周期压不下去的时候 |
| 第 4 章 | 操作系统、系统备份、桌面接管、UPS | 设备要交付、要远程维护的时候 |
| 第 5 章 | 掉电保持、数据存储、配方、文件读写 | 参数需要断电不丢、需要换型生产 |
| 第 6 章 | 库文件扩展、温控、PID、Windows 功能扩展 | 不想自己造轮子,先看库里有没有 |
| 第 7 章 | EtherCAT 与 K-Bus、诊断信息 | 上电后从站不亮灯、诊断卡在 OP 之前 |
| 第 8 章 | ADS、EAP/RT Ethernet、EL6692 等控制器间通讯 | 两台控制器要交换数据 |
| 第 9 章 | 串口、Modbus、TCP/IP 与第三方仪表 | 接扫码枪、温控表、称重仪 |
| 第 10 章 | 14 种现场总线与工业以太网汇总 | 要和第三方 PLC 或远程 IO 对接 |
| 第 11 章 | ADS 触摸屏、组态软件、高级语言、TwinCAT HMI | 要做界面 |
| 第 12 章 | TwinCAT Database Server 连数据库或 MES | 数据要往上走 |
注意第 9 章在更新记录里被反复改过,2014 年那次标注是"修正严重误导",后续又补了原理介绍。凡是涉及 TCP/IP 和串口这种"看起来简单、边界条件一堆"的章节,优先看更新日期最新的一版,别拿早期打印稿对照。
2.2 控制器与 IO 选型:EtherCAT 不是默认答案
第 1 章的选型部分写得比较克制,但它给出的判断顺序很实用:先定控制器形态,再定 IO 系统,最后才谈扩展模块。控制器分两类,一类是软件已经预装好的 CX、CP、C 系列,通电就是一台带操作系统的控制器,你只需要用笔记本连上去编程;另一类是自己买第三方工控机、自己装 TwinCAT 2,好处是硬件成本可控、机箱形态自由,代价是实时网卡的兼容性、操作系统的干净程度都得自己兜。
这里有个很多人第一次做会翻车的地方:TwinCAT 2 的实时性依赖网卡驱动,不是随便一块板载网卡都能拿来跑 EtherCAT 或实时以太网。教材在"安装和接线"里提了要确认网卡型号,实际动手时我的做法是先查这块网卡能不能被识别为实时适配器,能识别再谈接线;识别不了,就换一张被支持型号的独立网卡,成本几十块,比后期查周期抖动省事得多。
IO 系统的选择上,EtherCAT 和 K-Bus 的差别不在"哪个更先进",而在现场条件。EtherCAT 带状结构、拓扑灵活、诊断信息细,适合轴多、从站多、要读诊断码的场合;K-Bus 是背板总线,模块插在耦合器后面,接线简单、成本低,适合点位集中、逻辑简单的设备。同一台机器上混用也完全可以,教材第 7 章就是两条线分开讲的。真正需要提前算的是总线周期和从站数量,从站越多、线缆越长,能压到的最小周期就越受限制,这一点在方案阶段不定,调试阶段就得靠降周期或者拆网络来补。
2.3 这套资料的边界:它明确不碰的三块
第一块是工艺和算法。前言写得很直白,正文会提常用程序组件和功能代码,但不涉及工艺本身。意思是它能告诉你 PID 库怎么调、参数怎么接,不会告诉你某个行业的温度曲线该怎么整定——后者得靠现场试。
第二块是运动控制。这套是上册,下册单独讲 NC PTP,教材要求读下册之前先熟悉上册的全部操作。如果你的设备带轴,别指望上册能解决回零、跟随误差、插补这些问题,它只到"控制器和 IO 通了、PLC 跑起来了"为止。
第三块是软件工程。没有版本管理、没有代码规范、没有架构设计,作者自己说的,这是加强版软件使用说明。所以照着它做出来的程序通常是一个 MAIN 加一堆功能块,项目小的时候没问题,超过几千行就得自己补结构,别指望资料替你规划。
还有一条要提前接受:截图和代码基于 TwinCAT 2.11(Build 2234),后续版本界面会变,例程代码也可能不适用。看到菜单名字对不上,先确认版本,再怀疑自己操作错了。
3. 跑通第一个 PLC 项目:从装软件到开机自启动的 7 个动作
第 2 章是整套资料里最值得逐字读的一章,因为它把"能跑起来"拆成了可验证的短步骤。这一章我按自己的现场顺序重排了一遍,把容易漏的动作补上,代码和配置都能直接抄。
3.1 装之前先确认三件事
第一件是操作系统。教材的目标环境是 Windows 7 和 Windows XP,控制器侧是预装系统的 CX 系列。现在手上如果只有一台 Win10 笔记本,装 TwinCAT 2 会遇到驱动签名和实时网卡识别的问题,常见做法是留一台 Win7 机器专门做工程站,或者在虚拟机里跑开发环境、只把运行环境留在现场机。这个不是玄学,是版本边界,越早接受越省时间。
第二件是网卡。工程站和控制器之间建议单独一段网络,不要和办公网、无线网混在一起。笔记本同时开着 WiFi 和有线,加路由的时候经常选错网卡,表现为"广播搜索搜不到设备",其实设备好好的。
第三件是授权。TwinCAT 2 在未授权状态下会以演示模式运行,跑一段时间后 PLC 会停下来,现场表现为"程序莫名其妙不执行了,重启又好了"。调试期先申请试用授权,交付前把正式授权激活,激活后回到 System Manager 确认授权状态,别等客户验收当天才发现。
装完软件先做一次基础连通性检查,Windows 命令行就够:
:: 工程站与控制器同网段时的基础检查,-n 是 Windows 下的次数参数 ping -n 4 192.168.1.10 :: 看本机网卡和 IP,确认走的是有线网卡而不是无线 ipconfig /all :: 看路由表和 ARP,排查"同网段却不通" arp -aping通不代表 TwinCAT 能连上,但 ping 不通就一定连不上,先用它排掉物理层和 IP 层的问题。arp -a里如果能看到控制器的 MAC,说明二层是通的,问题在 IP 配置或防火墙;看不到 MAC,先查网线和网段。
3.2 IP、NetID 与路由:为什么搜不到目标机
TwinCAT 的通讯走 AMS,不直接吃 IP。每台设备有一个 NetID,工程站靠 NetID 找到控制器,控制器再靠路由表找到工程站。第一次连接失败的绝大多数原因,是这条双向路只通了单向。
操作顺序是:先把控制器和工程站设到同一网段(比如 192.168.1.x / 255.255.255.0),然后在 System Manager 里打开 Add Route 对话框,用广播搜索的方式找设备。搜到之后需要输入控制器上 Windows 账号的用户名和密码,这一步很多人在 CX 上卡住,因为出厂账号和现场改过的账号不是一回事,提前问清楚。
NetID 默认由 IP 推导,也可以手工改成好记的固定值。要守的规则只有一条:同一个网络里不能重复。多台设备批量调试的时候,我习惯把 NetID 按设备编号写成固定值并记在调试记录里,避免换笔记本、换网段之后又要重新对一遍。
提示:加完路由后,在 System Manager 的树形结构里能看到目标机节点才算成功。只看到"广播搜索有结果"不算,那只是发现了设备,路还没通。
3.3 第一个程序:从 PLC 项目到下载运行
第一个程序不要写复杂逻辑,能验证"下载-运行-变量变化"这条链路就够。下面这段用梯形图的思路写成 ST,功能是一个带延时的启停计数,覆盖了定时器、沿触发、计数器三类最常见的元件:
PROGRAM MAIN VAR bStartBtn : BOOL; // 启动按钮,上升沿有效 bStopBtn : BOOL; // 停止按钮,常闭 fbDelay : TON; // 通电延时定时器 fbStartEdge: R_TRIG; // 启动沿检测 nRunCount : UDINT; // 启动次数累计,掉电不保持 bMotorRun : BOOL; // 输出 END_VAR // 沿检测必须在定时器之前调用,保证一个周期内只触发一次 fbStartEdge(CLK := bStartBtn); // 启动沿到来时开始计时,2 秒后允许输出 fbDelay(IN := fbStartEdge.Q, PT := T#2S); IF fbDelay.Q AND NOT bStopBtn THEN bMotorRun := TRUE; nRunCount := nRunCount + 1; ELSIF bStopBtn THEN bMotorRun := FALSE; END_IF这段的逻辑要说清三点。R_TRIG和TON都是功能块,必须每周期无条件调用,写在IF里面会导致定时器不刷新——这是新手最常见的翻车点,现象是"按钮按下去没反应,多按几次偶尔动一下"。PT := T#2S是时间字面量,改延时只改这一处,不要分散在多个地方写死常量。nRunCount声明成普通UDINT,断电就归零,要掉电保持得改成VAR_RETAIN或VAR_PERSISTENT,但保持能力取决于硬件有没有 NVRAM,这一条留到避坑那章细说。
写完代码之后的顺序不能乱:先在 PLC Control 里编译,确认无错误;再到 System Manager 里把 PLC 配置树展开,把程序变量和实际 IO 变量做链接;然后激活配置,控制器会重启 TwinCAT;最后在 PLC Control 里登录、下载、运行。下载时如果提示是否创建 boot project,选是。少了这一步,断电重启之后程序就没了,现场表现为"昨天调好的,今天开机什么都不动"。
程序跑起来后,用变量监视表看nRunCount是否随按钮递增,用 Scope 看fbDelay.Q和bMotorRun的时序对不对。这两个手段教材都讲了,先用起来,比盯着代码猜快得多。
如果要在上位机或自己的程序里读这个变量,走 ADS 是最直接的方式,PLC 运行时端口固定是 851:
using TwinCAT.Ads; // 目标机的 NetID 与 PLC 运行时端口 851;变量名要带引号写成绝对路径 using (TcAdsClient client = new TcAdsClient()) { client.Connect("5.xx.xx.xx.xx.xx", 851); // 读一个 BOOL,长度 1 字节 int hVar = client.CreateVariableHandle("MAIN.bMotorRun"); bool running = (bool)client.ReadAny(hVar, typeof(bool)); // 写一个 UDINT 做复位,注意类型要和 PLC 侧声明一致 int hCnt = client.CreateVariableHandle("MAIN.nRunCount"); client.WriteAny(hCnt, (uint)0); client.DeleteVariableHandle(hVar); client.DeleteVariableHandle(hCnt); }Connect的第一个参数是目标机 NetID,就是你刚在路由里配的那个;端口 851 对应第一个 PLC 运行时,多运行时依次往上排。CreateVariableHandle传的字符串必须是绝对路径,大小写和 PLC 里声明保持一致,否则返回句柄失败,错误码通常指向符号找不到,而不是通讯断了——区分这两种错误,排查方向完全不同。ReadAny和WriteAny的类型要和 PLC 侧严格对应,PLC 里是UDINT,这边写int就会读出错位的数据。
3.4 开机自启动:让别人接手时设备自己会跑
交付前最后一个动作是自启动。TwinCAT 的系统服务本身随 Windows 启动,PLC 程序下载成 boot project 后会随服务一起加载,所以自启动的关键不是"加一个启动项",而是"boot project 是不是最新的"。教材第 3 章专门讲了两件事:怎么禁止 TwinCAT 开机自启动(调试期不想让它抢资源),以及 Boot 文件夹及下属文件的作用。
Boot 目录里放的是当前激活配置的启动文件,改完配置不激活、或者激活了没生成 boot project,重启后跑的都是旧版本。我的习惯是每次改动之后固定走一遍:激活配置、确认 boot project 生成时间、断电重启一次、看 PLC 是否自动进 RUN。这一步多做五分钟,比在现场被电话叫起来强。
4. 任务周期与实时性:把 1ms 任务真正跑稳的参数
第 3 章的价值在于它不只讲怎么配,还讲怎么判断配得对不对。这一章重点拆三块:分时多任务到底怎么分、周期与优先级怎么定、以及用什么手段验证结果,最后补一个教材里被低估的功能——批量链接变量。
4.1 一个 CPU 上同时跑 PLC、NC 和 Windows
TwinCAT 的核心是让一台 PC 同时承担控制和人机界面两件事,做法是把 CPU 时间切片,控制任务拿固定周期,Windows 拿剩下的。教材第 1 章把这件事叫分时多任务原则,第 3 章又把任务和程序的运行机制单独讲了一遍,两处对照看才完整。
要抓住的概念是"基准时钟"。所有控制任务的周期都是基准时钟的整数倍,你把基准设成 1ms,任务周期就只能填 1、2、3、4ms 这种值,填 1.5ms 系统会直接拒绝或者自动取整。这是很多人第一次配周期的疑惑点:为什么我想要的周期填不进去。
另一半是 CPU 亲和性。多核机器上可以把控制任务绑到某个核上,让 Windows 的其它进程不去抢这个核。教材里"如何实现低于 1ms 的控制周期"和"如何设置任务的优先级"两节讲的就是这套组合:更小的基准时钟、独立的核、足够高的优先级。但周期不是越小越好,周期压得越狠,留给 Windows 的时间越少,界面会卡、远程桌面会掉,最后变成一个"控制很稳但没人能用"的设备。
4.2 周期、优先级与实时性的参数怎么定
下面这张表是我按教材内容加上现场经验整理的常用起点,具体数值必须按实际负载调,不能照抄:
| 参数 | 典型起点 | 调整依据 | 调错的后果 |
|---|---|---|---|
| 基准时钟 | 1ms | CPU 主频、任务数量 | 设太小导致 CPU 占用高、Windows 卡顿 |
| PLC 任务周期 | 2~10ms | 逻辑复杂度、IO 响应要求 | 太小浪费算力,太大响应变慢 |
| 任务优先级 | 控制任务高于界面任务 | 是否有 NC 轴、是否有高速计数 | 优先级颠倒导致周期抖动 |
| CPU 亲和性 | 控制任务独占一核 | 核数、是否有视觉等重负载 | 不绑定导致周期性尖峰 |
| 实时网卡 | 独立网卡,仅跑实时协议 | EtherCAT 从站数量 | 共用网卡导致丢帧、从站掉线 |
判断实时性好坏,教材给的方法是看 System Manager 里的实时性指标:CPU 占用、任务的最大/最小/平均执行时间、以及周期超限的次数。这几个数比任何主观感受都可靠。我的习惯是空载看一遍、满载看一遍、加界面刷新再看一遍,三次的最大执行时间如果接近周期值,就必须降负载或者放周期,别赌它不会超。
4.3 用 Scope 验证:波形不对,先怀疑采样
教材第 2 章讲 Scope View 的基本操作和曲线保存,第 3 章又讲了 Scope 2 的三个进阶用法:显示远端 PC 上的变量、显示数组和超采样变量、在 .NET 程序里集成显示控件。这两块合起来才是完整的调试手段。
用 Scope 最容易犯的错是把"没采到"当成"没发生"。采样周期和 PLC 任务周期不同步时,一个只持续一个周期的脉冲可能在波形上完全消失,你以为是逻辑没触发,实际上是采样漏了。判断方法很简单:把要观察的变量在 PLC 里做一次自锁或者计数,再看波形是否与计数一致。一致说明逻辑对、采样漏;不一致才是逻辑问题。
数组和超采样的用法值得单独练一次。看一组 8 个温度通道,用数组变量一次性加进去比加八次快得多;看高速脉冲,用超采样模式把采样率提上去,才能看清边沿。Scope 2 走的是 ADS 通知机制,远端显示时网络带宽和通知周期都会影响波形密度,这一点在远程调试时要有心理预期。
4.4 变量链接:批量操作省下的不是几分钟
教材 FAQ 里有一条"如何批量链接变量",还有一条"如何自动重新分配地址"。这两条在点数上百的项目里是救命功能。手工一个个拖变量,不但慢,还容易漏,漏了的变量在下载后表现为输入读不到、输出不动,查起来只能一个一个对。
批量链接的前提是命名有规律。我一般要求 IO 变量按"站号+通道+方向"命名,PLC 侧变量保持同样的后缀,这样在链接界面里按名称匹配能一次过。命名乱的项目,先花半小时统一命名,再谈批量,顺序反了会返工两次。
地址自动重分配解决的是另一个问题:改了硬件配置之后,原来的地址偏移全变了,链接关系断掉。教材里给的做法是让系统重新分配并核对差异,操作完一定要打开映射表看一遍,确认没有意外变化,尤其是模拟量通道的顺序。
5. 避坑与排查:5 个在现场真出过问题的细节
这一章全部按"现象→原因→解决"写,都是配置层面看着不像问题、出事之后又很难定位的类型。第 3 章末尾那份常见问题简答和编译常见错误值得先扫一遍,下面这 5 条是它没展开、但现场最费时间的。
5.1 改完程序下载,变量全变红
现象:程序编译通过、下载成功,但监视表里一片红,或者链接关系全部丢失,输出不动。
原因:改了 PLC 侧的变量声明(改名、改类型、调整顺序),System Manager 里原有的链接是按下标和偏移记的,声明一变就对不上。加了新变量之后地址自动重分配,也会让原有映射错位。
解决:改声明之前先导出一次链接关系或者截图留存;改完在 System Manager 里重新核对映射表,用批量链接按名称匹配重建,不要靠肉眼一个个点。频繁改声明的阶段,宁可多下载几次,也别攒着一起改。
5.2 结构体收发数据错位,协议怎么对都不对
现象:和第三方设备走 Modbus 或串口,报文长度对、功能码对,但解析出来的数值明显不合理,或者高低字节颠倒。
原因:PLC 里结构体默认按成员自然边界对齐,中间会插填充字节,而通讯协议是按紧凑字节排的。两边长度算出来差一两个字节,后面全部错位。
解决:给结构体加紧凑对齐属性,强制按 1 字节对齐,再和协议表逐字段核对长度。教材 FAQ 里"数据格式与对齐方式引发的问题"和"变量的格式转换"两节讲的就是这一类,配合一个字节数组把结构体逐字节打印出来看,比对着协议文档猜快得多。
5.3 掉电保持不生效,参数一断电就回默认值
现象:参数设好了,正常运行没问题,一断电重启全部回到初值。
原因:VAR_RETAIN和VAR_PERSISTENT只是声明,真正能不能保持取决于硬件有没有非易失存储和掉电检测。CX 系列带 NVRAM 和短时 UPS,普通的第三方工控机没有这套硬件,声明了也保不住。
解决:先确认控制器型号是否具备保持能力;不具备就改成写文件或者写注册表,上电时读回来,并且加一个"参数校验失败就用默认值"的分支。教材第 5 章把掉电保持、数据存储、配方放在一起讲,正是因为这个顺序:先确认硬件能力,再选存储方式,最后才谈配方管理。
5.4 换了台新电脑,连不上原来那台控制器
现象:老工程站能连,新装的工程站广播搜索搜不到,或者搜到了加路由失败。
原因:三个方向。新机器和控制器的网段不一致;新机器上有多张网卡,广播发到了无线网卡;控制器侧已经存在一条指向旧工程站的路由,路由表满了或者冲突。
解决:先ping和arp -a排掉物理层,再在 System Manager 里确认选的网卡,最后到控制器侧删掉不用的旧路由。这一步教材第 2 章"在 System Manager 中添加路由"讲了正向操作,反向清理没写,但现场几乎每次换工程站都要做一遍。
5.5 程序跑一阵自己停了,重启又正常
现象:设备运行几十分钟到几小时不等,PLC 突然停止,输出全部复位,断电重启后恢复,反复出现。
原因:最常见的是授权处于演示模式,超时后运行时停止;其次是看门狗被触发,某个任务执行时间超过设定值;还有一种是上位机 ADS 通讯开了句柄没释放,累积到上限后通讯异常,表现为 PLC 侧看起来"卡住"。
解决:先看授权状态和事件消息窗,事件消息窗里会记录停止原因,这条线索比任何猜测都准。排除授权之后,把各任务的最大执行时间拉出来对比周期,找超时的那个任务,通常是某个循环里塞了耗时操作。ADS 相关的,检查句柄是否成对创建和删除。
6. 把它当查询手册:备份、版本锁定与三条自检
资料里第 4 章讲系统备份和桌面接管,很多人读到这儿觉得跟编程无关就跳过了。我吃过亏之后才明白,这一章是整套书里唯一能在事故之后救命的部分。控制器交付前,我现在固定做三件事:一是用系统自带的备份功能把整个系统镜像一份,存到工程站和移动盘各一份;二是把 Boot 目录、配置文件和 PLC 工程源码单独打包,命名带上日期和版本号;三是把桌面接管配好并验证一次,确认远程能进得去再走人。
版本锁定这件事同样值得说。TwinCAT 2 的截图和例程基于 TwinCAT 2.11(Build 2234),工程站升级之后出现的界面差异、库版本差异,会让人误以为是自己的配置错了。我的做法是工程站不轻易升级,升级前先在虚拟机里跑一遍完整流程;控制器侧的操作系统更不动,除非有明确的安全或驱动需求。资料是 2018 年定稿的,配套文档按章节分文件夹组织,拿到手先整包解压到本地磁盘再打开,在压缩包里直接翻 PDF,附件和例程的路径会失效。
最后是三条自检,我把它写成了固定动作。第一条,任何配置变更之后,断电重启一次,确认程序自动进 RUN、保持参数还在、通讯恢复正常。第二条,用 Scope 抓一段完整周期的波形,看最大执行时间是否有尖峰,尖峰出现在哪个任务上。第三条,找一台没装过 TwinCAT 的电脑,按资料第 2 章的步骤从零走一遍,走不通的地方就是打包时漏掉的东西。
从那以后我每次交付前都强制走一遍断电重启加波形自检,不管项目多小、时间多赶。这两步花不到十分钟,能挡掉的返工是按天算的。希望帮到你。
本文还有配套的精品资源,点击获取