当前位置: 首页 > article >正文

施耐德 Unity Pro 项目配置

这里列举常见的需要修改的项目配置

打开项目配置

打开项目,然后点击【工具】菜单 --> 【项目设置】选项,即可打开项目设置窗口

常见的配置内容

在项目设置窗口,左侧树的每个节点都有一些设置,可以都点进去看具体配置项

1. 总则

1. 生成消息的管理

主要内容:编译程序的过程中,检测到相关的状况,是否生成报警或者错误

建议:

  1. 必选警告:地址重叠、缺少网关
  2. 可选:DDT 兼容性、未赋值参数、不使用的变量生成

1.2 PLC 内嵌数据

有哪些数据上传到 PLC 中,这些上传到 PLC 中的数据可以直接【从 PLC 中上传到电脑】

这里点名表扬施耐德的 PLC,可以保存项目程序中的注释,这样可以直接根据 PLC 中的程序注释修改程序,防止因为资料遗失导致程序看不懂的尴尬情况

(点名批评 STEP-7 相关的 PLC,S7-400 说的就是你,程序注释不能保存到 PLC,一旦程序文件遗失了,就只能对着 PLC 中干干净净的程序段抓瞎了)

建议选择:上载信息、注释、动态数据表

1.3 时间

比较相关的是项目工程的时区设置

建议配置:

  1. 取消勾选【自定义时区】
  2. 时区选择【UTC+8 北京…】

1.4 配置(仅适用 M580 CPU)

M580 默认的输入输出点位使用的地址类型

  • 设备 DDT(Device DDT):施耐德官方称为非定位地址,类似 AB 中的 tag 变量的引用、四门子 DB 使用优化的块访问用变量名进行读写,将输入输出模块的数据定义为一个对象,使用类似 ST 语言对象体对象名.对象属性的写法。优点是无需记忆复杂的地址,且可以灵活映射变量到各寄存器中,缺点是不直观,看不出对应变量与硬件的对应关系,且由于没有绑定地址,这种 IO 变量无法直接被外部系统读写,要专门写程序做映射和地址绑定
  • 拓扑/ 状态 RAM:施耐德官方称为定位地址,类似传统的寄存器地址,要指定机架、插槽、通道等的地址
    • 如 DI 和 DO 类似%I0.1.2.3%Q0.1.2.3
    • AI 和 AO 类似%IW0.1.2%QW0.1.2

官方解释

建议:

  1. 这里使用【设备 DDT】
  2. 另写专门的 IO 映射程序段,实现输入输出数据在 PLC 寄存器地址中的映射。可保证项目程序的灵活性,防止中间变量占用过多寄存器地址,提高数据安全性和寄存器地址使用的效率

2. 变量

建议配置:

  1. 勾选【允许前导数字】。支持数字开头的变量名、程序名
  2. 字符集【Unicode】。支持中文变量名、程序名

    3.勾选【允许使用 EBOOL 跳变沿】
  3. 勾选【允许 INT、WORD 和 BYTE 位抽取】,以便能直接在程序中读写任意位,如下图中的写法
  4. 勾选【直接以数组变量表示】,以便能直接读写数组中的部分变量、部分位的值
  5. 其他保持默认即可

3. 程序

3.1 语言

勾选这个项目的程序支持的语言类型:

  • LD 梯形图
  • ST 语言
  • IL 指令表
  • SFC 顺控表
  • DFB 功能块图
  • 984 功能块图

建议:不选 IL、SFC、984,其他都选

Unity Pro 软件编程语言好用程度排行(最好用到最难用,个人排名):
FBD >> SFC > ST >> LD

  • LD 梯形图:鉴定为依托答辩,PLC 御三家(个人向)最难用,没有之一。界面梦回 Win98,默认给的空间小(下面有设置会讲到),管脚配置不好用,鼠标点击添加连线总是感觉程序有自己的想法。比不上日系甚至国产的梯形图界面。
  • ST 语言:基本可用,毛坯房。没有输入提示、自动完成等功能,且不能改字体(看这默认字体看的难受)基本就是 notepad 的显示水平,在有 vscode 这种文本编辑器的今天,这里自带的编辑器可以称之为石器时代。
  • SFC 过于高大上导致基本没人用(其实用得好拿来写顺控和状态机非常爽)
  • FBD 此软件最好用的编程语言,界面宽大,逻辑清晰(根本原因是其他的语言界面实在是太拉,相比之下最好)
  • 984 这个是施耐德收购前的公司做出来的奇葩编程语言(FBD FBD 的梯形图),基本没人用(只有施耐德自己的 PLC 支持),也基本被扫进历史的垃圾堆了,这里只是为了兼容性才有的功能,建议大家千万不要用。

3.2公共

建议:使用上面的默认值即可

相关选项说明:

3.2.1 允许过程、允许子程序

  1. 过程(procedure):与一般的程序块的不同就是支持 IN_OUT 类型的数据、且支持多个输出
  2. 子程序(subroutine):不在循环中定期执行的、只能被其他程序段调用时才执行的程序。
  3. 在 Unity Pro 中,子程序放在【SR 段】文件夹,周期执行的程序放在【逻辑】文件夹
3.2.2 非正式调用中允许空参数(IL/ST)
  1. 在 ST 和 IL 语言中,调用函数时,如果使用非正式调用(非形式调用),可以省略空的参数不写
  2. 非正式调用(非形式调用)与正式调用(形式调用)
    1. 非正式调用(非形式调用):施耐德 PLC 允许的特殊函数写法,省略引脚名称,根据引脚定义的顺序对应入参的定义
    2. 正式调用(形式调用):是 IEC 标准的函数调用写法,
      1. 需要写引脚名 与 入参名
        1. 输入引脚,如:CU:=var1
        2. 输出引脚,如:Q=>out
      2. 入参与引脚的顺序可以对应(因为上一点中已经说明,声明了入参与引脚的对应关系)
      3. 不赋值、不操作的引脚可以省略不写
  3. 实际不建议写上面这种【非正式调用(非形式调用)】形式,建议按照 IEC 规范,即写成【正式调用(正规调用)】形式,写明参数和数据的的输入输出关系
3.2.3 ST 表达式的使用(LD/FBD)

如果允许,则输入、输出触点可以写 ST 语言的简单表达式(一行以内的简单表达式,比如比较大小等)

举个栗子:数值的范围比较(MW0 寄存器值在 1~10 区间内)可以简写成这样

但实际上也不建议这么写,因为这也不是 IEC 标准语法,不利于程序移植,且这种表达式在线监控时无法直接看到各个变量的状态(只能看到表达式整体的输出状态)

3.2.4 保持禁用的 EF 上的输出链接(EN=0)

施耐德的功能块,默认隐藏功能块的 EN 和 ENO 引脚,并设置为所有调用的功能块 EN = 1(即所有功能块都启用)

  1. 若勾选,则既有项目的所有功能块的 EN 和 ENO 引脚会显示,且默认不会连接 EN,需要重新编译并修改所有相关的程序
  2. EN、ENO 引脚的功能
  • EN = 功能块使能。0 / 1 = 启用功能块 / 禁用功能块
  • ENO = 功能块状态。0 / 1 = 功能块禁用、功能块执行出错 / 功能块执行正常

建议不启用这个功能,如果某个功能块确实需要 EN 和 ENO 引脚,可在编程时,单独设置

单独启用功能块 EN、ENO 引脚功能:对功能块,右键 --> 属性 --> 显示 EN/ENO

3.3 LD

梯形图语言编程的设置

3.3.1 右对齐线圈

未勾选【右对齐线圈】

没勾选【右对齐线圈】

建议:依喜好进行设置,我比较喜欢右对齐,这样看起来比较整齐;但是输出会离输入比较远,看程序时可能不太方便

3.3.2 列数

梯形图的程序的宽度

列数设置范围 11 ~ 63,Unity Pro 默认只设置 11 列,而一个功能块会占用 2 列 + 输入、输出引脚各占用 1 列,导致默认设置下梯形图很难用,因此这里务必要改。

建议:列数设置为【20 以上】。

3.3.4 混合显示模式

Unity Pro 软件的梯形图界面有两种显示模式:输入输出显示、混合显示模式

输入模式混合显示模式

只显示变量地址或变量名

显示三行(从上往下):注释、地址、变量名
  1. 这个显示模式只有梯形图(LD)有,其他编程语言只有类似【输入模式】的显示模式
  2. 梯形图默认显示【输入模式】,可以通过菜单切换这个模式:视图 --> 混合显示模式

这个设置配置的就是三行内容显示的行数

建议注释行可以改大一点,方便长的中文显示,符号行、地址行保持默认

3.4 ST

启用跳转和标签

为 ST 语言启用这两种语法(跳转 JMP 和跳转到的标签定义),类似西门子的 GOTO 和标签指令
可实现在同一段程序中的跳转

建议:启用,保证程序的兼容性,但不建议实际编程中使用这个指令。详见《西门子程序设计规范指南 – DA018》

相关跳转建议使用条件指令(IF、WHILE)或子程序调用实现


http://www.kler.cn/a/597819.html

相关文章:

  • 前后端开发中,图片上传到不同格式(二进制数据ORbase64编码)
  • AI比人脑更强,因为被植入思维模型【17】万物联系思维模型
  • Unity | 游戏数据配置
  • 如何在Linux CentOS上安装和配置Redis
  • Okhttp响应Json数据升级版源代码
  • JS 算术运算符
  • 在 coc.nvim 插件中,自动补全时,候选词后面的 大写字母
  • 【机器学习】使用Python Spark MLlib进行预测模型训练
  • 【uniapp】内容瀑布流
  • 系统架构设计知识体系总结
  • k8s运维 设置Pod实现JVM内存根据容器内存动态调整
  • 使用BAT批处理加PYTHON进行WORD批量文字删除
  • 银河麒麟桌面版包管理器(五)
  • 使用vscode搭建pywebview集成vue项目示例
  • Android Coil3阶梯preload批量Bitmap拼接扁平宽图,Kotlin
  • Liunx系统Microsoft SQL Server数据库还原
  • 设计模式:创建型、结构型、行为型
  • 【Spring】深入理解 Spring 事务管理
  • Cesium 自定义路径导航材质
  • 运算放大器(一)运算放大器的参数、选型与应用