☰
施耐德Unity Pro安装与硬件组态避坑指南:从CPU选型到下载验证
2026/10/28 2:18:40 网站建设 项目流程

简介:《施耐德Unity Pro入门使用手册》是一份面向零基础自动化从业者与初学者的自学型操作手册,围绕施耐德Unity Pro编程软件的上手需求,帮助读者独立完成从新建程序到下载运行的完整流程。压缩包内共1个docx文件,约1.18MB,内容集中、便于按章节检索。手册从Quantum系列CPU与机架槽位替换讲起,覆盖CPU状态RAM地址范围、以太网及NOE模块的IP地址、子网掩码和网关配置,也说明基本变量与DFB类型创建、MAST段程序编写、动态数据表监控等操作。对热备状态RAM、非传输区域、实时时钟同步和测试连接也给出操作提示。对生成更改、标准/仿真模式切换、上传下载、STU文件保存及Excel批量建变量等环节亦有涉及,可作为边学边练的入门参考。已有1994人学习,适合需要快速熟悉软件界面、建立编程与调试思路的读者查漏补缺。

1. 那晚我把 CPU 型号选错,下载按钮灰了半小时

第一次装施耐德 Unity Pro 的人,十有八九会在同一个地方卡住:软件明明装好了,新建项目时 CPU 型号随手一选,机架还是默认的 16 槽,等到点下载才发现按钮是灰的,提示只有一个词——「不同」。我遇到过做 Quantum 系统的现场,工程师在驻地重装了三遍软件,换了两台笔记本,最后发现问题根本不在安装环节:新建项目时没选 140CPU67160,机架也没从 140XBP01600 换成图纸上的 140XBP01000,硬件组态和现场对不上,程序压根下发不下去。

这类坑在这份 Unity Pro 手册里其实都写着,只是零基础的人拿到手册,习惯先翻后面的功能块那一章,把最前面的组态跳过去了。下面按真实动手顺序走一遍:装之前查什么、安装向导怎么过、机架 CPU 通讯怎么配、变量和程序段怎么建,最后是装坏了怎么救、装完了怎么验证跑通。

2. 装前把环境确定清楚:Unity Pro 的 Windows 依赖与授权

Unity Pro 属于上一代工控编程平台,安装包对系统环境比现在的桌面软件挑剔得多。同一份介质,在甲机器上十分钟装完,在乙机器上能卡在解压阶段报一堆 DLL 缺失,差别往往就在系统组件和权限上。所以我不建议装到一半再回头补环境,先把三件事查清楚,比装完再反复改快得多。

2.1 系统版本与运行库:装之前先跑三条命令

我一般先开一个管理员权限的 PowerShell,把系统版本、位数、.NET Framework 3.5 状态、目标盘剩余空间一次看全。这三项里任何一项不满足,后面都会以各种看起来毫不相关的报错冒出来——这就是工控软件常见的麻烦之处,报错信息往往指不到真正的根因。

# 1. 确认系统版本与位数。Unity Pro 的组态组件大量依赖 32 位运行库, # 64 位系统能装,但必须确认 SysWOW64 组件完整 Get-ComputerInfo | Select-Object WindowsProductName, OsVersion, OsArchitecture # 2. 查看 .NET Framework 3.5 是否已启用。 # 安装包的解压模块和部分报表组件依赖它,State 为 Disabled 就要先启用 Get-WindowsOptionalFeature -Online -FeatureName NetFx3 | Select-Object FeatureName, State # 3. 看各磁盘剩余空间。完整安装加硬件目录和示例工程, # 我一般要求目标盘留出 10 GB 以上,系统盘再留 5 GB 给临时文件 Get-PSDrive -PSProvider FileSystem | Select-Object Name, @{n='FreeGB';e={[math]::Round($_.Free/1GB,1)}}

第一条命令里WindowsProductName给出系统具体版本,OsArchitecture是位数,这两个值决定了你后面要不要额外装兼容组件。第二条只查NetFx3一个特性,是因为它在老工控软件的安装失败原因里占比最高;如果返回Disabled,用下面这条启用,会要求重启,别嫌麻烦,跳过重启后面大概率还要返工。

# 启用 .NET Framework 3.5,需要联网或指定系统镜像作为源 Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All

第三条命令用了一个计算属性@{n='FreeGB';e={...}},把字节数换算成 GB,免得多位数看花眼。装 Unity Pro 时目标路径也别随便选,路径里不要带中文、不要带空格,我习惯统一放在D:\PLC\UnityPro这种短路径下。安装过程中会往注册表写大量键值、注册若干驱动,杀毒软件的实时防护最好临时关掉,装完再打开,否则经常出现「安装成功但打开报组件缺失」的假成功。

提示:如果机器上已经装过旧版本 Unity Pro,不要直接覆盖安装。先确认旧工程的备份,再卸载旧版、清掉安装目录残留,重启后再装新版。新旧共存导致的组件版本冲突,排查起来非常费时。

还有一点是血泪经验:老工控软件和新系统打架属于玄学范畴,同一版本在批次不同的机器上表现可能完全不一样。我一般会在装机完成后,用虚拟机做一个干净系统的快照,后面软件崩了直接回滚,比一遍遍重装省事。

2.2 安装向导:从介质到桌面快捷方式的完整路径

介质可以是光盘,也可以是 ISO 挂载出来的虚拟光驱。不管哪种,setup.exe都不要双击自动播放,右键「以管理员身份运行」。普通权限启动的安装程序,在写注册表和注册驱动的环节会被静默拦掉一部分,最后表现为装完了但硬件目录是空的——这个坑我踩过不止一次。

向导本身的步骤不多:欢迎页、许可协议、安装路径、组件选择、开始安装、完成重启。真正需要留意的是组件选择那一步。编程软件本体必选,硬件目录必选,不装硬件目录的话后面配机架时从目录里拖不出任何模块,只能干瞪眼。仿真器建议一起选上,后面做逻辑验证要用到它,缺了就得重跑一遍安装程序。

安装过程会弹出几次驱动签名确认,全部选安装。中途如果弹出「文件正在使用」,多半是杀毒软件在扫安装目录,临时关掉防护再点重试即可,不用整个重来。

装完第一次启动,桌面快捷方式同样右键管理员运行。首次启动会初始化工程数据库,进度条走得慢是正常的,不要以为卡死就强杀进程——强杀的后果是数据库文件损坏,下次启动直接报错,只能卸载重装。

授权这一步每个现场的方式不太一样,有的是加密狗,有的是授权管理器激活。常见做法是先确认授权相关服务在跑,再打开软件:

# 先把名字里带授权关键字的服务列出来,不同版本服务名不同,不要照抄 Get-Service | Where-Object { $_.Name -match 'Flex|Licen|Sentinel' } | Select-Object Name, Status, StartType # 找到对应服务后启动,并设为开机自启,避免每次重启后又要手动拉起来 Start-Service -Name "此处替换为上一条命令查到的服务名" Set-Service -Name "此处替换为上一条命令查到的服务名" -StartupType Automatic

Get-Service配合Where-Object的-match是正则匹配,Flex|Licen|Sentinel三个关键字覆盖了绝大多数授权服务命名习惯。第二、三条命令里的服务名必须替换成上一条实际查出来的名字,直接照抄会报「找不到服务」。如果服务状态是Stopped且启动就报错,先看它的依存服务有没有起来,再考虑重装授权组件,不要一上来就卸载主程序。

2.3 工程文件类型与备份:哪些能删,哪些删了要命

工程另存为的时候,保存类型选*.STU。保存完成后,同目录下会自动多出*.ztx、*.auto、*.sta、*.BAK这几种类型的文件。这四个都可以删,删掉不影响*.STU文件的打开,它们更像是编译缓存和上一版备份。我的习惯是每周清一次,但清之前一定确认工程已经关闭——工程开着的时候删这些附属文件,偶尔会出现下次打开提示工程损坏的情况。

真正要保住的是*.STU。我一般在下班前跑一个镜像备份,脚本放在桌面,双击就行:

@echo off REM 工程目录整体镜像到备份盘,日期后缀保证每天一份独立备份 set SRC=D:\PLC\Projects\Quantum_Demo set DST=E:\Backup\Quantum_Demo_%date:~0,4%%date:~5,2%%date:~8,2% robocopy "%SRC%" "%DST%" /MIR /R:2 /W:3 /LOG+:"E:\Backup\robocopy.log"

/MIR是镜像模式,会让备份盘和目标目录完全一致,注意这意味着源目录里删掉的文件在备份里也会消失,所以日期后缀那部分不能省,每天一份才是真正的后悔药。/R:2表示失败重试两次,/W:3表示每次重试等三秒,网络盘备份时这两个参数能避免脚本卡死。/LOG+是追加写日志,出问题可以回看是哪几个文件没同步过去。

跨版本这件事要单独说。用高版本软件打开低版本软件做的程序,必须先导出成*.XEF:点「开始」菜单里的导出项目,保存类型选*.XEF。反过来,低版本打不开高版本的工程,这一步没有绕过去的办法,只能回到高版本环境里导出。所以现场如果有多台机器,版本号要提前统一,别等到交付前一天才发现同事的工程你打不开。

3. 新建项目与硬件组态:机架、CPU、NOE 三处最容易配错

软件装好只是拿到工具,真正决定能不能下载程序的是硬件组态。Unity Pro 的组态逻辑是「先定平台和 CPU,再定机架,最后按图纸往槽位里塞模块」,顺序反了就要来回改。这一章按新建项目的实际点击顺序走,每一步都对应一个后面会出问题的点。

3.1 新建项目与替换机架:16 槽改 10 槽不是可有可无

点左上角「文件」→「新建」,或者直接点工具栏上的新建图标,弹出新建对话框。平台选 Quantum,CPU 型号在下拉里找 140CPU67160,选中后点确定。这一步选错,后面所有地址分配和模块兼容性判断都是错的,而且软件不会主动提醒你,只会在下载时报一个很含糊的「不同」。

新建完成后,硬件组态里默认给你的是 16 插槽机架,型号 140XBP01600。实际项目如果用的是 10 插槽机架 140XBP01000,必须右键点击槽位 1,选择「替换机架」,在列表里换成 140XBP01000。机架型号决定了可用槽位数量和背板上的地址分配方式,不换的话,你按图纸配出来的模块位置和实际机柜对不上,程序里的%I、%Q地址全部偏移。

替换完机架,开始往槽位里放模块。两种方式都行:双击空白插槽位置添加设备,或者从右侧硬件目录里直接把模块拖过来。我习惯用拖拽,因为目录里能顺手看到模块的订货号,减少选错型号的概率。按图纸顺序依次配置电源模块和通讯模块,CPU 在新建时已经占好位置,不用重复添加。

一个典型的 Quantum 机架槽位规划大致是这样,具体的电源和通讯模块型号按图纸选型,不要照抄:

槽位模块作用配置要点
0电源模块(按图纸选型)机架供电型号必须与背板功耗匹配
1140CPU67160CPU状态 RAM 地址范围在此配置
2NOE 以太网模块(按图纸选型)上位通讯网络名要与通讯配置一致
3 及以后按图纸的 I/O 模块现场信号地址段要与变量表对应

槽位放错是新手最容易犯的错,尤其是电源和 CPU 的顺序。放错之后软件不一定报错,但下载时会提示模块不匹配。养成习惯:配完一遍,把组态界面和图纸并排放着对一遍槽位号,比下载失败再回来找快得多。

3.2 CPU 配置:状态 RAM 地址范围决定变量能不能生效

双击机架上的 140CPU67160,进入配置对话框。这里最关键的参数是状态 RAM 的地址范围。程序的变量地址必须落在这个范围内才能生效,超出范围不会报错,但变量值永远是 0,程序逻辑看着完全正常,实际一动不动——这种问题排起来最耗时间,因为现象和逻辑错误长得一模一样。

范围怎么定?按工程实际的%MW用量往上留 20% 左右余量。比如变量表里最大用到%MW500,我会把范围设到%MW600附近,留出后续加点的空间。具体数值以软件里允许填写的边界为准,填完记得回变量表核对一遍最大地址,这一步花两分钟,能省掉半天排查。

热备对话框里有两项要处理。第一项是配置状态 RAM,对非传输区域进行配置,这块区域和上位机的数据库没有数据交换,只限内部使用,适合放一些中间标志位和临时计算值。第二项是选择「无 RIO 子站」,如果这套系统里确实没有 RIO 子站,就按无子站配,配错了会导致 CPU 启动时反复扫描远程站,白白拖慢启动。

实时时钟在「动态显示」→「实时时钟」里。有两种用法:选 PC→PLC,把编程电脑的时间直接写进 PLC;或者先手动设置好时间,再选用户→PLC。现场调试阶段我一般用前者,省事;项目交付前用后者,把时间固定成客户要求的基准,避免以后时间漂移对不上事件记录。

3.3 通讯网络与 NOE 模块:网络名不能以数字开头

先建网络。点「通讯」→「新建网络」,在可用网络列表里选以太网,名称给一个能看懂的,比如ETHERNET1。命名规则这里要特别注意:不支持中文,不支持数字和个别符号开头,建议以英文字母开头。输入框里敲中文或者以数字打头,确定按钮会直接点不动,很多人以为是软件卡了,其实是命名校验没过。

名称定下来之后,下一步配 IP 地址、子网掩码、网关地址,这三个值是为和上位机通讯准备的。规划的时候和现场的网段对一遍,别和办公网撞段:

参数示例值说明
网络名ETHERNET1英文字母开头,不能中文
IP 地址192.168.1.20与上位机同网段,避开已占用地址
子网掩码255.255.255.0按现场网段规划填写
网关地址192.168.1.1跨网段通讯时必填,同网段可留空

网络建好后,选中并双击主机架里的 NOE 模块,再双击模块下方的以太网口,弹出对话框里选择刚才建的ETHERNET。这里有一处极易漏掉的联动:NOE 模块里选的网络名,必须和通讯里新建的网络名完全一致,差一个字符都不行。我见过配完 IP 能 ping 通、但软件里始终连不上 PLC 的情况,最后就是这处没对齐。

三种连接方式的参数差异后面验证那一章会展开,这里先记住:USB 连接的介质是 USB、地址是SYS;以太网连接介质是TCPIP、地址就是 NOE 里配的那个 IP;MB+ 连接介质是MBPLUS01、地址是主机架上 NOM 模块的 MB+ 地址。这三组值填错任何一个,右侧的测试连接按钮都会给你一个失败提示。

4. 变量、DFB 与程序段:让「生成更改」不再报错

组态配完,工程还是个空壳,真正干活的是变量和程序段。Unity Pro 的变量管理有一套自己的规则,地址格式、命名限制、数据类型分层都和普通编程语言不太一样,硬套经验容易在「生成更改」这一步集中爆发错误。

4.1 基本变量表:五列怎么填,地址格式怎么对

进入路径是项目浏览器→「变量和 FB 实例」→「基本变量」。默认列有名称、类型、地址、值、注释五列,右键点击列名那一栏可以自定义列,右侧按钮调整显示顺序,勾选名称前面的检查框控制显示哪些列。

名称和类型是必填项。变量名称默认不能以数字开头,如果项目里确实有这种命名习惯,可以去「工具」→「项目设置」→「变量」,把「允许前导数字」勾上。类型分两类:EDT 是软件自带的基本数据类型,比如 BOOL、EBOOL、WORD、INT、REAL,数组写法是ARRAY[0..15] OF BOOL这种形式;DDT 是导出的数据类型,也就是在 DDT 类型里自定义出来的复合类型,比如 DDT 里定义了一个BigActSEQ,类型是ARRAY[0..34] OF WORD,那么在基本变量里就要写成名称Big_ActSEQ、类型BigActSEQ。

地址列是最容易写错的一列,格式对照如下:

地址形式含义典型用途
%MW100内部字中间计算、上位通讯数据区
%MW100.1内部字的某一位位标志、状态位
%I0.1.1离散输入按钮、限位开关
%Q0.1.1离散输出继电器、指示灯
%IW0.1.1模拟量输入字变送器、温度信号
%QW0.0.1模拟量输出字调节阀、变频给定

地址可以留空,留空的变量相当于内部临时变量,不占 I/O 地址。值列可以留空,也可以填常数。注释可有可无,但我强烈建议写——三个月后回来改程序,没有注释的变量表就是一串天书。

变量多了以后靠滚动找是不现实的。名称后面的空白处可以直接输入筛选条件,比如*abc*,星号代表若干个字符,回车就过滤。筛选还可以切换列,比如按注释或按类型过滤,配合自定义列一起用,找变量比一页页翻快很多。

4.2 用 Excel 批量建变量:导出 TXT 再导入的三步

一个中等规模的站,变量动辄几百个,逐个手填不现实。手册里给的办法是「先在硬件那栏建一个变量,导出成 TXT,再用 Excel 批量补齐,最后导入」。这三步里,Excel 打开 TXT 的设置是成败关键。

操作顺序是:先用 Excel 的「文件」→「打开」,文件类型选 TXT,找到刚导出的文件;弹出文本导入向导后,第一步选「分隔符号」,点下一步;第二步勾选「Tab 键」,再下一步;第三步按原变量表各列的实际内容,逐列选择数据格式,地址列一定选文本格式。

地址列选文本这一步是我用无数次翻车换来的经验。如果保持常规格式,Excel 会把%MW100里的百分号当特殊字符处理,或者把长数字串自动转成科学计数法,导入回软件后地址全部变样,报错还指不到具体哪一行。

导入之前,我一般先用一小段脚本自查一遍变量表,把重复地址和空名称挑出来:

# 导入 Unity Pro 之前自查变量表:地址重复、名称为空、名称以数字开头 # 输入是软件导出的 Tab 分隔 TXT,列序:名称 类型 地址 值 注释 import collections rows = [] with open("vars_export.txt", encoding="utf-8") as f: header = f.readline() # 第一行是列名,跳过 for line in f: cols = line.rstrip("\n").split("\t") if len(cols) < 3: continue # 空行或列数不足,直接忽略 rows.append(cols) addr = [r[2] for r in rows if r[2].strip()] dup = [a for a, c in collections.Counter(addr).items() if c > 1] bad_name = [r[0] for r in rows if not r[0].strip() or r[0][0].isdigit()] print("重复地址:", dup) print("非法名称:", bad_name) print("变量总数:", len(rows))

这段脚本读的是导出文件,不碰原始工程,跑坏了也没有风险。collections.Counter统计每个地址出现次数,大于 1 的就是重复地址;r[0][0].isdigit()判断名称首字符是不是数字,正好对应软件那条命名限制。把这两类问题在 Excel 里改完再导入,能少走一大截弯路。

导入之后不要急着写程序,回变量表抽查三五条,重点看地址有没有被 Excel 改过形。

4.3 DFB 与程序段:写逻辑块并让它编译通过

导出的功能块类型(DFB)适合把重复逻辑封装起来,比如模拟量换算这种每个通道都要用一遍的处理。路径是「变量和 FB 实例」→「DFB 类型」,输入变量名称AI_Converter,类型默认为 DFB,然后在输入、输出里填管脚变量名,段里填功能块变量名SCALE_Calculate。编程语言通常三选一:FBD 功能块、LD 梯形图、ST 语句表。复杂计算用 ST 更省事,纯开关逻辑用 LD 看着更直观。

双击SCALE_Calculate就能进去编程。下面这段是模拟量换算的 ST 实现,用到了原料里提到的几个数学和逻辑块:

(* 段名:SCALE_Calculate 语言:ST 作用:把模拟量通道原始值 0..10000 线性换算成工程量,并做越限报警 *) (* 1. 上升沿采样:Trig_AI1 是 R_TRIG 实例,只在 Sample_Flag 由 0 变 1 时输出一个扫描周期的脉冲 *) Trig_AI1(CLK := Sample_Flag); IF Trig_AI1.Q THEN Raw_AI1 := MOVE(Raw_AI1_In); (* MOVE 把输入值原样赋给输出 *) END_IF; (* 2. 线性换算:先乘量程 Span,再除以满量程 Full_Scale,最后加偏置 Offset *) Scaled := DIV(MUL(Raw_AI1, Span), Full_Scale); Scaled := ADD(Scaled, Offset); (* 3. 越限判断:GT 在 Scaled 大于 High_Limit 时输出 1 *) Alarm_High := GT(Scaled, High_Limit);

三个块的参数含义要说清。R_TRIG检测 0→1 的跳变,CLK是待检测信号,Q是输出,跳变发生后输出保持一个循环周期然后自动回 0,所以它适合做「只执行一次」的触发。MUL和DIV要求所有输入输出数据类型一致,混用 INT 和 REAL 会直接编译报错。GT属于比较块,只有IN1 > IN2时输出才为 1。

主程序在「程序」→「任务」→「MAST」→「段」下面建。右键选新建段,输入名称和编程语言,确定后就可以写。段名建议带上功能含义,别用Section1这种,后面查问题时按名字一眼就能定位。

写完或者增删过变量,必须点「生成更改」或「重新生成所有项目」,在「生成」菜单里也能找到。不生成的话改动不会生效,下载下去的还是旧逻辑。生成过程中如果有错误或警告,会显示在编辑程序的下方区域,有错误的情况下无法下载程序到 PLC,必须先把错误清干净。警告可以带着下载,但别养成无视警告的习惯,很多警告背后就是地址越界。

5. 避坑与排查:五条翻车记录,每条都能对上现象

这一章的五条,都是我在现场或者帮人远程时真实遇到过的。每条的写法都是「看到什么现象、根因在哪、怎么处理」,按这个顺序对,比一上来就重装软件高效得多。

5.1 下载按钮灰色,状态栏只有一个「不同」

现象:连接测试通过了,PLC 也能认到,但下载按钮是灰的,或者状态显示「不同」,点了没反应。

原因:PLC 里当前运行的程序,和你准备下载的程序不一致。这个提示本身是中性的,意思是「两者不同」,需要你确认是否覆盖。另一种情况是 PLC 处于运行状态,运行模式下不允许直接下载,必须先切到停止。

解决:先看状态栏那行字。显示「运行」就先停止 PLC;显示「不同」属于正常提示,确认要覆盖后继续下载即可。如果是仿真模式,状态栏会显示TCPIP:127.0.0.1,这时候连的根本不是真机,别对着仿真器找网线问题。

5.2 变量地址写了却不生效,值一直是 0

现象:变量表里地址填了%MW800,程序里也在用,但在线监控时值始终是 0,写进去也保持不住。

原因:CPU 配置里的状态 RAM 地址范围没覆盖到这个地址。超出范围的地址不会报错,但根本不会被 CPU 分配存储空间,表现出来就是永远读 0。

解决:双击 CPU 打开配置对话框,把状态 RAM 的地址范围往上调,覆盖变量表里的最大地址并留出余量,重新生成、重新下载。以后新建工程,我第一件事就是把范围按预估最大值设好,避免中途改。

5.3 网络名敲了中文或数字开头,确定按钮点不动

现象:新建网络时输入名称,确定按钮一直是灰的,怎么点都没反应,也没弹任何错误提示。

原因:网络命名有字符限制,不支持中文,不支持数字和个别符号开头。输入不合法时软件只是禁用按钮,不给文字提示,所以看着像卡死。

解决:把名称改成英文字母开头的短名,比如ETHERNET1,按钮立刻可用。改完记得同步改 NOE 模块里选的网络名,两处必须一致。

5.4 断开连接时点了「否」,下次上传不了程序

现象:调试完断开 PLC 连接,弹窗问是否更新上载信息,随手点了「否」。过几天再连上,想从 PLC 上传程序,发现上传功能用不了。

原因:断开时的那个提示是在问要不要更新上载信息,选「否」意味着本地的上载信息没有刷新,下次连接时软件认为本地信息和 PLC 不一致,就不让你上传了。

解决:断开连接时老老实实点「是」。如果已经点了「否」,常见做法是重新连接后先做一次生成更改,让本地信息刷新,再尝试上传;实在不行只能从其他保留着上载信息的机器上取。另外注意,上载信息那个勾选框如果被去掉,等于禁止上载程序,这是交付时保护程序的手段,调试阶段别乱动。

5.5 高版本打开低版本工程,直接打不开

现象:同事用高版本做的工程发过来,你这台机器版本低,双击*.STU提示无法打开或者打开后组态丢失。

原因:Unity Pro 的工程文件向下兼容,不向上兼容。低版本读不了高版本写的结构,这不是文件损坏。

解决:让高版本那边把工程导出成*.XEF:点「开始」→「导出项目」,保存类型选*.XEF,你再导入。反过来的方向也要记住——你要把工程交给低版本的人,主动导出 XEF,别等人找上门。现场统一版本号是最省事的做法,交付前确认一遍所有人装的都是同一版。

6. 验证跑通:从仿真 127.0.0.1 到真机三段连接

装完、配完、程序也生成通过了,最后一关是验证这套环境真的能跑起来。我的习惯是先仿真后真机,因为仿真能排除掉绝大部分逻辑和组态问题,剩下的才是接线和网络问题,两类问题混在一起查最费劲。

第一步切仿真模式。在「PLC」菜单下选择仿真模式,标准模式和仿真模式可以随时切换。标准模式下完成的是与实际 PLC 的通讯,仿真模式下则是和本地仿真器通讯。仿真器的连接参数固定为介质TCPIP、地址127.0.0.1,填好之后点右侧的「测试连接」,成功会有明确提示。连上之后下载、运行,打开动态数据表:在变量表里选一个或几个变量,右键初始化动态数据表,也可以直接在动态数据表里输入要查的变量名。模拟量点可以改数值,数字量点可以强制为 1 或 0,手动改几个值看输出跟不跟,逻辑对不对当场就能看出来。

第二步切回标准模式连真机。三种连接方式的参数完全不同,对照下表填:

连接方式介质地址物理接线
USBUSBSYSUSB 线连到 CPU 上的 USB 口
以太网TCPIPNOE 模块里配置的 IP,如 192.168.1.20网线连到对应 NOE 模块的以太网口
MB+MBPLUS01MB+ 主干网上主机架 NOM 模块的地址,如 2MBP 转 USB 转换器连 NOM 模块

每种方式填完都点一次「测试连接」,成功会给出提示,失败也会提示,这时候按顺序查三样:参数填得对不对、线接得通不通、对端设备有没有上电。以太网这一路最常见的问题是笔记本网段和 PLC 不在一个段,先 ping 通再谈软件连接。连接成功后点 PLC 的连接按钮,选「将项目传输到 PLC」完成下载,下载完点运行。反过来,选「从 PLC 中上传项目」就是上传。

第三步做一次完整回归。在运行模式下改一处程序,点「生成更改」,确认改动生效;断开连接时点「是」更新上载信息;关掉软件重新打开*.STU,确认工程能正常加载;最后再执行一次导出*.XEF,确认跨版本这条路也通。这四步走完,才算这套环境真的立住了,而不是碰巧这一次能下载。

从那以后我每次装完 Unity Pro,不管多赶时间,都强制走一遍「仿真跑通、真机连上、改一次生成更改、断开时点是」这四步,一步不落。装软件本身花不了多少时间,真正拖工期的是那些装完了以为能用、到现场才发现连不上的情况。希望这套流程能帮你少返工一次。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询