简介:这份《施耐德Unity Pro入门使用手册》面向零基础学习施耐德PLC编程的读者,也适合需要快速熟悉Unity Pro软件操作流程的电气调试与自动化从业人员。内容从新建Quantum项目、替换机架槽位讲起,依次覆盖电源与通讯模块配置、CPU状态RAM设定、以太网与NOE模块通讯配置、基本变量与导出功能块类型创建、MAST段程序编写、动态数据表监控,以及生成更改、标准/仿真模式切换和上下载程序等环节,侧重把软件界面操作与工程配置顺序讲清楚。资源包共1个docx文件,约1.18MB,适合作为随查随用的入门操作笔记。该手册已有1994人学习,读者可据此建立从硬件组态、变量定义到程序下载调试的完整认识,并借助动态数据表、变量筛选和快速建变量等细节减少上手时的反复试错。
1. 先弄明白:Unity Pro 到底是干什么的软件
第一次翻开 Unity Pro 入门手册的人,十个里有八个会在前三页卡住:满屏的机架、槽位、%MW 地址,看着像天书。先把这件事说清楚——Unity Pro 是给工业现场的 PLC(可编程逻辑控制器)写程序的软件。PLC 是控制柜里那块铁盒子,Unity Pro 是你笔记本上用来指挥它的工具:告诉它哪个信号来了要开阀、哪个数值超了要报警、哪台电机要先启后停。这份手册不讲控制理论,讲的是把「新建一个项目」到「程序真的在 PLC 里跑起来」这条路一步步走通。它适合三类人:刚入行做电气自控、要接手现场已有程序做日常维护、以及做课程设计需要交一份能运行的功能块或梯形图程序的新手。你不需要先会 C 语言,也不需要懂电路板设计,需要的是耐心,按顺序把每一步点对。
2. 从零建第一个项目:CPU 型号、机架槽位、模块怎么填
新建项目这一步,很多人是「一路点确定」,点完发现后面配置全对不上,只能推倒重来。原因很简单:Unity Pro 的项目不是空白文档,它一开始就要你交代清楚「我这套系统长什么样」——用哪块 CPU、机架有几个槽、每个槽插什么模块。这几件事定下来,后面的变量地址、通讯地址才有落脚点。所以这一章我们把新建项目到模块配置完整走一遍,慢一点没关系,走对了后面省一半时间。
2.1 新建项目,第一步是选对 CPU 型号
打开软件,点左上角「文件」——「新建」,或者直接点工具栏上的新建图标,会弹出一个对话框让你选 CPU 系列和型号。手册里给的例子是在 Quantum 系列里选 140CPU67160。这一步是相当于先选定城市再填地址:你选的 CPU 决定了后面能挂哪些模块、变量地址能用到多大范围、有没有热备功能。
选型号不要凭感觉,要按现场控制柜里实际装着的那块 CPU 来选。因为你在软件里配的每一个模块、每一个地址,最终都要和柜子里的实物一一对应,选错了,程序下载下去要么报错,要么运行起来和预期完全不一样,而这种问题排查起来非常折腾。如果你是纯练习、手上没有实物,就把手册里这套配置当成标准样例照抄一遍,等以后接触真实项目时再按图纸改。
点「确定」之后,软件会生成一个项目树,左边一栏能看到「结构」「硬件」「程序」「变量和 FB 实例」这些节点。新手看到这一堆别慌,前期你只需要盯住两个地方:硬件树用来配机架和模块,变量和 FB 实例用来建变量,其余的先放着。
这里有个小习惯建议从第一天就养成:项目刚建好就先把文件另存为一个带日期的名字,格式是*.STU。软件在保存时会顺带生成*.ztx、*.auto、*.sta、*.BAK几个附属文件,这些是可以删的,不影响*.STU主文件打开。听起来是小事,但现场改程序改到一半断电、或者改错了想退回上一版的时候,这个习惯就是后悔药。
2.2 机架从 16 槽换成 10 槽:用右键「替换机架」
新建项目之后,软件默认给你的是一个 16 插槽的机架,型号 140XBP01600。但实际项目里柜子可能只装了 10 个槽的机架,型号 140XBP01000,这时候就要改。
正确做法是在硬件树里右键点击那个机架编号(例子中是「1」),选择「替换机架」,然后在弹出的型号列表里换成 10 槽的。为什么强调用「替换」而不是把机架删掉重建?因为删掉之后,你已经拖进去的模块、已经配好的槽位关系大概率要重新弄一遍,槽位编号也容易乱,后面照着图纸核对时会一个头两个大。替换是在原有机架上换型号,配置习惯保持一致。
换完之后你会看到左边槽位编号从 1 排到 10,空槽位是浅色的、可以双击。这时候先别急着填模块,把图纸摊开对一遍:机架上到底几个槽、电源在哪一格、CPU 在哪一格、通讯模块插在第几格。这一步就像装电脑主机前先看主板说明书,插槽顺序弄反了不是不能用,是后面接线和排查会很别扭。
2.3 按图纸往槽位里填模块:双击和拖拽两种方式
填模块有两种操作方式,效果一样,看个人习惯:一种是双击空白插槽位置,在弹出的设备列表里找模块;另一种是打开硬件目录,直接把模块拖到目标槽位上。新手建议先用双击,因为有列表可以逐个看型号,不容易拖错位置。
放置顺序按图纸来,常规排布大致是这样:
| 槽位 | 放什么 | 作用 |
|---|---|---|
| 第 1 槽 | 电源模块 | 给整个机架供电 |
| 第 2 槽 | CPU 模块 140CPU67160 | 程序在这里运行 |
| 第 3 槽及以后 | 通讯模块(含 NOE) | 和上位机、其它设备交换数据 |
这张表只是帮助你理解「谁管什么」,真正的槽位顺序必须照现场图纸填,因为模块插错槽位,CPU 认到的地址映射就对不上。
模块填完之后做个自检:机架上每一格要么是已配置的模块,要么是明确留空,不能出现「图纸上有、软件里漏了」的情况。漏配一个通讯模块,后面你会发现网络怎么都建不起来,回头查半天才想起来是硬件树里少了一块——这类问题我见过不止一次。
还有一点,配置完硬件不要马上跳去写程序。先把项目保存一次,然后点「生成更改」或「重新生成所有项目」,让软件把刚才的硬件配置编译一遍。如果配置有问题,这个时候就会在编辑区下方报出来,比等到下载的时候才发现要省事得多。
3. 让变量真正生效:CPU 配置、以太网、变量表
硬件配好只是搭好了架子,真正决定程序能不能跑、能不能和上位机说上话的,是接下来三件事:CPU 里的状态 RAM 地址范围、以太网网络配置、变量表。这三样任何一样没配对,现象都很像:程序编译没报错,下载也成功,但数值就是不刷新,或者连不上 PLC。所以这一章我们一个一个来,配完一项就检查一项。
3.1 状态 RAM 地址范围:变量地址的「天花板」
双击机架上的 140CPU67160,会打开 CPU 的配置对话框。这里有一个很多人会随手跳过的设置:状态 RAM 的地址范围。
它的作用说白了就是划一条线:程序里所有变量的地址都必须落在这个范围内,超出范围,变量不生效。不生效不是报错那种明显的失败,而是「你以为它在工作,其实它没动」,属于最费时间的那类问题。所以第一次配置就把它设对,宁可设宽一点,也别卡着边。
同一个对话框里还有几个页签值得看一眼:
- 热备页签里可以配置状态 RAM 的非传输区域。这个区域不和上位数据库交换数据,只给内部使用,练手项目可以直接按默认来。
- 同一页要选择「无 RIO 子站」,因为这套示例系统里没有 RIO 子站,有子站才需要配。
- 实时时钟页签里可以选择把 PC 的时间传给 PLC(选 PC→PLC),也可以自己填一个时间再下发(选用户→PLC)。现场调试建议用 PC→PLC,省得手填错。
配完记得再生成一次项目。很多新手在这一步会想「反正还没写程序,先跳过」,结果后面变量地址一填就出问题,又得回头重来。
3.2 新建以太网网络:名字、IP、NOE 模块三件事
要和上位机通讯,就得建一个网络。路径是「通讯」菜单——「新建网络」,在可用网络列表里选以太网。
网络名称这一栏有讲究:不支持中文,也不支持用数字或个别符号开头,建议直接用英文字母开头,比如ETHERNET1。新手最常见的翻车是用「网络1」这种名字,点确定没反应,还以为软件坏了。原因就是命名规则不认。
网络建好后,选中ETHERNET1,配置 IP 地址、子网掩码、网关地址。这三个值要和你所在网络的规划一致,上位机 IP 要和 PLC 在同一网段,否则连不上。这里不需要背网段计算,你只要记住:IP 前三段一样、最后一段不同,通常就能通。
接着配 NOE 模块。双击主机架里的 NOE 模块,再双击它下面那个以太网口图标,弹出对话框后选择ETHERNET,把它挂到刚才建的网络上去。做完这一步,PLC 才真正拥有了一个可以被访问的网口身份。
顺序别搞反:先建网络、再配 NOE 模块挂接。反过来做,NOE 模块里那个下拉框会是空的,你会以为模块坏了。
3.3 建变量:手敲十条不如 Excel 批量导一次
变量在「项目浏览器」——「变量和 FB 实例」——「基本变量」里创建。默认显示的列有名称、类型、地址、值、注释,列可以自己加:右键点列名那一行,选「自定义列」,右边按钮能调顺序,勾选名称前的检查框就能显示对应列。
几条硬规则先记住:
- 变量名称和类型是必填项。
- 变量名称默认不能用数字开头。如果确实要这么起名,去「工具」——「项目设置」——「变量」,把「允许前导数字」勾上。
- 类型可以选基本类型(bool、ebool、word、int、real 等),也可以选数组
ARRAY[0..15] OF BOOL,或者你自己在 DDT 类型里定义好的导出类型。
地址怎么写,这张表对着看:
| 地址写法 | 含义 | 典型用途 |
|---|---|---|
| %MW100 | 内部字存储器 | 中间结果、上位机读写 |
| %I0.1.1 | 离散输入 | 按钮、限位开关 |
| %Q0.1.1 | 离散输出 | 继电器、指示灯 |
| %IW0.1.1 | 模拟量输入字 | 温度、压力信号 |
| %QW0.0.1 | 模拟量输出字 | 调节阀、变频给定 |
地址也可以留空,留空的变量就只做内部运算用。
变量多了以后,一条一条手敲非常磨人。手册里给的技巧很实用:先在硬件那一栏建一个变量,把它导出成 TXT 文档,再用 Excel 打开这个 TXT,把其它点位的变量按同样格式补齐,最后导入回去。Excel 打开 TXT 时要选「分隔符号」,勾 Tab 键,然后按原表各列的数据格式逐列设置,导入才不会错位。
变量表右上角还有筛选功能,在名称后面输入*abc*回车,就能筛出包含 abc 的变量,*代表若干个字符。变量上千条的时候,这个比肉眼翻页靠谱多了。
4. 写出第一段能跑的逻辑:功能块、段、仿真
到这里,架子搭好了、地址划好了、变量也有了。接下来是最有成就感的一步:真正写一段能跑的逻辑。Unity Pro 的编程不是从零手写文本,而是把现成的功能块像积木一样接起来,再用语句或图形方式连成一段一段的程序。这一章我们先认积木,再动手搭第一段。
4.1 先认四个逻辑块:AND、OR、NOT、RS
功能块里最基础的是逻辑块,规则只有一条:所有输入值和输出值的数据类型必须相同,比如都是 BOOL。
- AND(与):两个输入都是 1,输出才是 1,其它情况都是 0。
- OR(或):两个输入都是 0,输出才是 0,其它情况都是 1。
- NOT(非):输入 0 输出 1,输入 1 输出 0。
- XOR(异或):两个输入不一样时输出 1。
除了这几个纯逻辑运算,还有两个新手特别容易忽略的块:
RS 是有「复位优先」属性的存储器。S 端变成 1,输出 Q1 就变 1,之后即使 S 回到 0,这个 1 也会一直保持;R1 端变成 1 时,Q1 回到 0。如果 S 和 R1 同时为 1,优先让 R1 生效,输出归 0。这就是工业上常说的「急停优先」思路。
R_TRIG 和 F_TRIG 是边沿检测块。R_TRIG 检测从 0 变 1 的那一瞬间,输出 Q 在这一次扫描周期里变 1,随后自动回到 0;F_TRIG 检测从 1 变 0。这两个块在「按一下按钮只计一次数」这类场景里几乎是必需品,因为按钮按下去会持续很多个扫描周期,不做边沿处理就会计数几十次。
4.2 数学、比较、计数器:最常用的三组积木
数学块同样要求输入输出类型一致:ADD 加法、SUB 减法、MUL 乘法、DIV 除法、MOVE 赋值。还有一个 DIVMOD,一次算出商和余数,商从 Quotient 输出,余数从 Modulo 输出,做配方、分装这类计算时很好用。
比较块是判断条件的主力:EQ 等于、NE 不等于、GE 大于等于、GT 大于、LE 小于等于、LT 小于。输出统一是 BOOL,为 1 表示条件成立。写联锁逻辑时基本离不开它们。
计数器里先说 CTU 加计数器:CU 端每来一个上升沿,当前值加 1;R 端置 1 时复位;PV 是预设值;计到预设值时输出 Q 变 1。注意 CU 一定要接边沿信号,直接接一个保持为 1 的按钮,计数器会一次加满。
4.3 建一个段,把第一段程序写进去
程序写在「程序」——「任务」——「MAST」下面。右键「段」,新建一个段,输入名称,选编程语言。常用的三种是 FBD(功能块图)、LD(梯形图)、ST(语句表)。新手如果习惯看文字,先选 ST 会更容易上手。
假设变量表里已经建好了这几个变量:StartBtn(%I0.1.1)、SafetyOK(%I0.1.2)、MotorRun(%Q0.1.1),再建一个 R_TRIG 类型的实例EdgeDetect。第一段程序可以这样写:
(* 段1:启动按钮与安全条件同时为 1,电机才输出 *) MotorRun := AND(StartBtn, SafetyOK); (* 段2:捕捉 MotorRun 从 0 变 1 的那一个扫描周期 *) EdgeDetect(CLK := MotorRun); StartPulse := EdgeDetect.Q;逐句解释一下。第一句调用了 AND 功能块,把两个 BOOL 输入相与,结果赋给MotorRun,也就是 %Q0.1.1 这个输出点。第二句是把MotorRun接到边沿检测块EdgeDetect的 CLK 输入端,每检测到一次上升沿,EdgeDetect.Q就在那个扫描周期输出 1,被赋给StartPulse,后面的计数或置位逻辑就可以用这个脉冲。
参数上有两点要注意:EdgeDetect不是变量,是功能块实例,要在变量表里单独建一个类型为 R_TRIG 的实例名;StartPulse必须事先定义成 BOOL 变量,否则编译过不去。
写完之后,别忘了点「生成更改」或「重新生成所有项目」。这两个按钮的意思是「把刚才的改动编译成 PLC 能执行的代码」。改完程序不生成就下载,跑的还是老逻辑,这是新手最容易犯、也最难自己发现的问题之一。有错误或警告会在编辑区下方列出来,有错误时是没法下载到 PLC 的。
4.4 生成更改与仿真模式:不接 PLC 也能先验证
手上没有真实的 PLC 也能练。在「PLC」菜单里可以切换标准模式和仿真模式。标准模式下和真实 PLC 通讯;仿真模式下,软件自己模拟一个 PLC,连接地址是TCPIP:127.0.0.1。
三种真实连接方式顺便交代一下,方便你以后对号入座:
- USB:介质选 USB,地址是 SYS,用 USB 线连到 CPU 的 USB 口。
- 以太网:介质选 TCPIP,地址填 NOE 模块里配的那个 IP,比如 192.168.1.20,用网线连到 NOE 的以太网口。
- MB+:介质选 MBPLUS01,地址填主机架上 NOM 模块在 MB+ 主干网里的地址,比如 2。
设置完点右边的「测试连接」。成功会有提示,不成功就回去检查设置和接线,别硬着头皮往下走。
连接成功后点「PLC」里的连接按钮,选择「将项目传输到 PLC」就完成下载,下载完点「运行」,程序就跑起来了。上传则是选「从 PLC 中上传项目」。
上传和下载还有几个细节要留意。界面上会显示当前状态:出现「不同」表示 PLC 里的程序和你要下载的不一致;显示「运行」表示 PLC 正在运行;显示TCPIP:127.0.0.1说明你现在是仿真模式。另外,断开连接时软件会问你要不要更新上载信息,这里一定要选「是」,否则下次连接时无法上传程序。如果希望程序被人随便上载,就把「上载信息」的勾去掉,那样就无法上载了。
还有一个保存上的知识点:高版本软件要打开低版本软件做的程序,不能直接开,得先在低版本里「开始」——「导出项目」,存成*.XEF格式,再拿去打开。
5. 新手避坑:五个最常见的翻车现场
下面这五条,是我见过出现频率最高的。每一条都按「现象—原因—解决」写,看到症状直接对号入座就行。
5.1 配置阶段最容易错的三件事
第一条:变量写了,值就是不刷新。
现象是程序编译通过、下载也成功,但某个 %MW 地址的值一直不变。原因多半是变量的地址超出了 CPU 状态 RAM 配置的地址范围,超出部分不生效。解决办法是回到 CPU 配置对话框,把状态 RAM 的地址范围调大,重新生成项目后再下载。我第一次遇到这个问题时,对着变量表看了半小时,最后发现是范围差了那么一截。
第二条:新建网络点确定没反应。
现象是在「新建网络」里名字填完,点确定,列表里没出现新网络。原因是名称用了中文、数字开头或者带了个别不支持的符号。解决方案很简单,改成英文字母开头的名字,比如ETHERNET1,再点确定。
第三条:NOE 模块里那个网络下拉框是空的。
现象是双击 NOE 模块下面的以太网口,弹出的对话框里选不到网络。原因是先配了模块、后建的网络,顺序反了。回去先把以太网网络建好,再重新打开 NOE 的配置,就能看到ETHERNET并选上了。
5.2 下载和运行阶段的两件事
第四条:程序改了,PLC 里跑的还是老逻辑。
现象是明明改了判断条件,运行效果完全没变。原因是改完没有点「生成更改」,PLC 里还是上一版代码。解决方式:在运行模式下改完程序,先点「生成更改」,再重新下载或确认生效。这条几乎人人踩过一次,养成「改完必生成」的肌肉记忆就好。
第五条:下次连上 PLC,上载失败。
现象是第一次下载很顺利,隔天再来,想从 PLC 上传程序却传不了。原因是上次断开连接时,弹窗问「是否更新上载信息」,顺手点了「否」。解决办法是下次连接时先做一次正常下载并正确更新上载信息,把信息补回去。所以那个弹窗别嫌烦,老老实实点「是」。
6. 下一步学什么:从「能跑通」到「敢上手现场程序」
把前面几章走完,你已经能独立建项目、配机架、配以太网、建变量、写一段带边沿检测的逻辑,并且在仿真里跑起来。接下来别急着啃厚手册,按三个阶段往下走会更稳。
| 阶段 | 目标 | 怎么检验自己 |
|---|---|---|
| 第一阶段:重复三遍 | 把「新建—配硬件—配网络—建变量—写段—生成—下载」这一整套流程不看手册走完 | 能在 30 分钟内从空白项目做到仿真运行 |
| 第二阶段:啃功能块库 | 把常用块当字典用,先吃透 AND、OR、NOT、RS、R_TRIG、F_TRIG、ADD、SUB、MUL、DIV、MOVE、EQ、GT、LT、CTU 这十几个 | 给你一个「按下启动、3 秒后开阀、计满 10 次报警」的需求,能独立写出来 |
| 第三阶段:读别人的程序 | 学会用动态数据表和交叉引用去看现场已有程序 | 能说清一个现成段里每个变量从哪来、到哪去 |
第二阶段有个很实用的练习方法:把手册里的功能块介绍当成查字典,不要从头背到尾。每遇到一个需求,去目录里找对应的块,看完定义马上在仿真里写一遍、看它怎么动作。定时器和计数器尤其要动手验证,只读文字很容易以为自己懂了,一写就露馅。
第三阶段最考验人。真正到了现场,你面对的往往不是自己写的程序,而是别人几年前写好、跑了很多年、谁也不敢动的那套逻辑。这时候动态数据表就是你的黑匣子:在变量表里选几个变量,右键初始化动态数据表,或者直接在表里输入变量名,就能实时看到当前值。部分模拟量点可以改数值,部分数字量点可以强制成 1 或 0,用来验证某个条件到底有没有生效,非常有效。但强制这个动作要谨慎,验证完立刻解除,别留着自己也忘了。
还有个小技巧值得早点养成:给每个变量都写注释。变量表里注释那一列是可填可不填的,但等到三个月后你回头看自己写的段,没有注释的程序和天书没区别。
我带新人的时候反复说过一句话:配置类的工作,宁可慢一点、对着图纸核一遍,也别图快一路点确定。从那以后我每次新建项目,都是先摊开图纸、先把机架槽位和模块清单核完,再动鼠标;改完程序一定先点生成更改,断开连接时那个「更新上载信息」从来不点「否」。这三条看着笨,但省下的时间比任何技巧都多。希望帮到你。
本文还有配套的精品资源,点击获取