前言

由于公司最近做的项目都是同样的,并且都采用S7-1500/S7-1200 与G120 系列做为主控系统,所以我一直在思考一个问题:如何标准化并且快速的编程调试。这样可以极大的缩短项目的调试周期,减少公司工程成本,同时也免去工程师在项目上做过多的重复劳动。


一、

首先介绍一下SiVArc到底能帮助我们在项目中能够做什么事情。具体的演示通过下文的图文来跟大家说明;

图1

可以看到图一的项目中只有一个PLC工程,并且OB1中只调用了一个"10007.G120无纺布设备"的FB块;
图2

图2的步骤为在网络视图中添加一个②TP1200 Comfort HMI,并且将①处选择为 连接 连接类型选择为 HMI连接 ,然后通过拖拽的方式将HMI的以太网口连接到PLC的以太网口(此操作可逆),此时我们会看到③已经建立一个HMI连接,如果再去HMI的 连接 中查看会发现TIA已经为我们生成一个如③处一样的连接,且连接名称也相同;

图3

由图3可见HMI的项目并未新建任何画面,到此下面就到见证奇迹的时刻了;

图4

通过右键HMI工程选择 生成可视化(SiVArc)然后在下一级菜单中选择 生成可视化

图5

此时会弹出一个窗口我们勾选HMI 和 PLC 然后点击生成按钮;

图6

现在项目已经自动生成一个与图一中程序段1 "10007.G120无纺布设备"FB 块背景数据块名称相同的画面 ① 主螺杆 且画面的图标与以前有所不同,它的右下角会呈现一个 SiV 的字样。在此画面中会生成一个面板实例② 且此面板实例的接口③中均已经连接变量;此生成过程基本在10秒以内。

相信大家通过上述的图文已经明白SiVArc 到底能为我们做一个什么样子的工作,接下来为大家讲述一下想要实现 SiVArc 这样的功能我们要怎样去对PLC进行编程。

首先编程我们要养成良好的习惯,一个设备中有大于或等于三个以上的重复单元,我们就可以使用模块化的编程思路;例如有3个需要单按钮启停的星三角启动电机,如果们采用一个程序段一个程序段那样的去编写程序,那么程序的可读性就会很差,并且也加重了自身的工作量。

个人建议:在使用FB或者FC时我们对参数的命名也需要遵循一定的规范,不然在调试FB\FC的时候容易把自己看晕;

我就以AutoStart举例;

在Input,Output,InOut中采用的写法均为AutoStart。
在Static中采用的写法则为 _AutoStart。
在Temp中采用的写法则为 _autoStart。
在Constant中采用的写法则为 AUTOSTART。

实现SiVArc 对项目有一些要求,必须要保证项目中功能单元的重复度高,可以重复调用写好的某一个FB块,同时HMI界面也相似。

在我看来实现SiVArc 的FB块有三种做法:

第一种:直接使用FB块的背景数据块,但是这样有个缺陷不便于程序的规范化,所有与HMI连接的变量都是分布式的,所有的连接状态都只能去背景数据块中查看,如果项目使用的是SIEMENS HMI 与 SIEMENS PLC 则没有很大的问题,如果采用第三方的HMI则在做HMI的编程的时候就会非常繁琐;

图7

第二种:在编写FB块的时候将FB块所需要连接到 HMI 的变量做成一个 PLC数据类型(UDT) ,同时在FB块的输入输出中新建此数据类型的参数①,之后新建一个HMIData 的DB块用于专门与HMI建立连接②,这样可以避免HMI连接的变量在程序中比较分散,便于查找与监控;

图8

第三种:第三种与第二种有点类似,但是在写FB块的时候完全不要去考虑如何连接HMI ,只需要按照功能编写FB就可以了①,但是PLC数据类型这个步骤还是不能省略,之后同第二种一样新建一个HMIData 的DB块用于专门与HMI建立连接③;此时接FB块的接口上连接的就是 HMIData 中实例化的数据类型相应的地址;


图9

了解了这三做法我们就依据第三种方式来做一个例子:

首先我们在程序块中新建一个FB块 名称就叫 11006.星三角电机 11006的前缀表示这个功能块号,同时这样做的好处为在程序文件夹下各个功能块能够依据前缀排序。

图10

然后依据我上述的规范来新建各种参数,并且保证红色框线内的钩均已选中;
图11

因为我们的FB块有些管脚是给硬件IO使用的所以我们在新建PLC数据类型的时候可以选择性的建立只在HMI上作用的参数,在建立的时候我们最好是多建立几个 Struct 以来区分各个接口功能。
图12

然后我们再建立与HMI建立连接的DB块 HMIData 并且在此DB块内实例化刚才新建的 PLC数据类型,同样保证红色框线内的钩均已选中。
图13

最后一步在OB1块中实例化 11006.星三角电机 并且给功能块的管脚连接上 HMIData或者 硬件IO 变量;
图13

至此PLC编程这块的工作就已经完成

二:
下面我们将依据上述示例中的功能块(图1)来编写一个 HMI面板。

编写之前我们需要确定我们这面板里面需要包含多少个元素,以 11006.星三角电机 我们可以看出,我们所需的元素有一下几点:

已知有六种元素那么我们就可以开始来创建一个 HMI面板(图2):

1.选择右侧导航器点击库①;
2.展开项目库→展开类型→双击添加类型②;
3.选择面板③;
4.选择 面板/WinCC Runtime Advanced ④;
6.为此面板命名⑤(最好是与FB块同名,以方便查找);
图2

在点击生成后TIA Portal 会进入如下图所示的一个界面(图3),在图中的①处是面板的编辑窗口。
图3

在上图的编辑窗口中我们拖入上述的元素并且将元素按照表格里面的第三栏命名(图4①),然后按照自己的习惯排列这些元素后我们会得到如下图所示的一个窗口(图4)。
图4

完成上述步骤后接下来就是将这些需要控制的点连接到 接口 上(仔细观察图4),但是连接变量也是有两种方案,这两种方案我先列出出来,这两种方案的各种特点我将在演示完这两种方案之后给大家阐述。

第一种:直接连接的方式,也就使用上述实例中的第一种 方式;

首先我们在 接口 中为所需连接的变量添加属性①,做好命名并且指定好数据类型。将②处 电机标签中所包含的对象中的文本拖拽至接口中动态属性中的电机名称上。此时我们会发现中间空白部分会生成一条带右箭头的线由①→②处,这就意味着我们已经将此属性关联到接口中。

继续添加下一个动态属性 延时时间

第一步①我们选中延时时间的I/O域,在属性②中的常规栏目中选择变量③,单击变量窗口中的下拉列表,④选择延时时间⑤。

之后我们通过同样的操作将所有的功能都连接至接口里的动态属性,连接完毕后我们将得到这样一个界面(图7)。
图7

所有项都连接完毕后,选中面板(点击面板的空白处)图八①,选择 插件② ,此时SiVArc属性中的属性接口会出现四个动态属性,这四个动态属性就是来给我们连接 SiVArc 变量表达式的。
图8

之后我们单击右上角的感叹号(图9)①,选择发行版本②。
图9

第二种方式:在接口中的动态属性中采用UDT (PLC数据类型)。

在HMI面板中使用UDT的话我们首先需要将在项目中的UDT添加到项目库中,也就是将图十中的UDT①拖拽至②处;

然后我们在接口中新建一个动态属性,它名称就叫 11006.星三角电机UDT 他的数据类型则选择我们在项目库中新建好的 11006.星三角电机UDT。

我们再将数据如同第一种方式那样关联起来,此时我们会发现图12①处SiVArc属性中的属性接口只有两个动态属性,其中电机名称是必须另外新建的。


至此HMI面板这块的工作就已经完成,


总结

通过上述的两种方式的描述,大家也能看出这两种方式的明显区别,前者更加的适应于SiVArc,因为他的接口变量中所填写的参数均为自动生成的,虽然他比较多,但是并会不加重工作量。而第二种则应用则适用性更强,它不仅能够适用于SiVArc,而且在做非SiVArc项目时也能给我们带来便捷,因为他的接口变量较少,能够减轻一部分的工作量;

使用Sivarc使PLC程序标准化相关推荐

  1. 米家扩展程序初始化超时_28条规范和建议,教你如何设计出一套完美的PLC程序...

    一套完整的PLC程序,并不仅仅是使系统能够运行起来这么简单,它也需要完整的注释.精良的架构.良好的可扩展性.完备的报警保护系统.运行前的模拟系统. 1. 简单性 使PLC程序尽可能简单.简单的含义就是 ...

  2. 米家扩展程序初始化超时_一套完整的PLC程序是什么样子

    完美的PLC程序需满足的设计要求 一套完整的PLC程序,并不仅仅是使系统能够运行起来这么简单,它也需要完整的注释.精良的架构.良好的可扩展性.完备的报警保护系统.运行前的模拟系统. 1. 简单性 使P ...

  3. 如何写出完美的PLC程序?

    工业控制中,plc程序编写是一项基础的工作,但也是确保生产正常运行的重要环节.PLC最好的评判标准是实践,看程序是否达到生产预期的目的,但这是远远不够的,因为能达到控制要求的程序还有优劣之分,到底什么 ...

  4. 怎么编写较好的PLC程序?

    "没有最好,只有更好",什么样的plc程序才是好的?一个赚钱的节目就是好节目,一句话,高能量低消耗! 主要有以下几个方面: 1.正确性(低调试成本) 首先,可编程控制器程序必须正确 ...

  5. 怎么判断计算机语言的好坏,PLC程序好坏的判断方法

    PLC是一种可编程控制器,在很多行业中都有一定的应用.PLC程序最好的评价标准就是它的实践,要看这个程序可以达到怎样的效果.那么程序在没有达到效果之间就不可以判断PLC程序的好坏了吗?其实是可以的那么 ...

  6. PLC 程序设计标准化方法

    PLC 程序设计的标准化方法先从内容或者方法层面进行 流程的分解,将分解的内容称为要素,要素的有机结合便构成 了标准化的设计.流程标准化设计完成之后需要对各个要素 分别进行标准化的设计. 2.1. P ...

  7. 合资大厂PLC程序怎么编(二)---组态是啥样?

    学习目标: 上一节介绍了FCA项目PLC的符号表编写规范,本节咱们继续学习硬件组态的参数设置和从站命名. 老铁们若有不明白的地方,欢迎评论区留言,咱们一起讨论.目标共同进步. 学习内容: 1. 硬件组 ...

  8. PLC学习第一篇:PLC程序架构

    前言:PLC资料获取 汇川官网,可以下载汇川PLC相关资料 倍福虚拟学院 西门子工业支持网站,西门子系列PLC的编程手册都可以查到 1.PLC编程语言发展 在PLC发展的早期阶段,由于没有统一的国际标 ...

  9. 三人抢答器逻辑电路图_三人抢答器plc程序图分享

    plc梯形图是使用得最多的图形编程语言,被称为PLC的第一编程语言.梯形图与电器控制系统的电路图很相似,具有直观易懂的优点,很容易被工厂电气人员掌握,特别适用于开关量逻辑控制.梯形图常被称为电路或程序 ...

最新文章

  1. 怎样理解js数组中indexOf()的用法与lastIndexOf
  2. MySQL数据库优化实战
  3. C语言实现Hanoi算法塔的功能(附完整源码)
  4. 安装和使用Ant Design Vue 图标库
  5. Python使用wordnet工具计算词集与词条基本用法(三)
  6. 基于spring多数据源动态调用及其事务处理
  7. 第四代移动机器人:灵动科技V-AMR全球首发
  8. php 当前时间转换,php时间转换
  9. 创建类(点击获得位置信息)—ArcGIS API for JavaScript
  10. 汉王考勤管理软件mysql数据库配置_汉王考勤管理软件使用说明书介绍.pdf
  11. 网易2021校招笔试题节选个人解答(题目来源:牛客)
  12. Spring Boot 2.1.2配置文件参考配置项官方谷歌翻译版本
  13. 对话知名视觉艺术设计师走尺:只要用心 人人是插画师
  14. 招商银行信用卡中心一面
  15. JADE盲源分离算法附MATLAB代码
  16. Glide系列(四) — Glide缓存流程分析
  17. Wireshark malformed packet
  18. golang标示废弃方法api
  19. 手写promise(详细版)
  20. 通达信行情数据获取--python_Python读取通达信数据

热门文章

  1. 程序员励志视频_5个最适合程序员的励志视频
  2. 和李兄之《定风波· 冬峦轻寒桂落香》一首
  3. idea鼠标控制放大缩小的操作
  4. 『教师节』程序猿用文心大模型带你一键加速祝福,祝老师们节日快乐
  5. 利用keras搭建基础模型莺尾花
  6. 机器学习系列(五) -- 逻辑回归(莺尾花数据集)
  7. 上海市社保和医保以及公积金转出到异地(注意事项)
  8. 《那些年啊,那些事——一个程序员的奋斗史》——25
  9. 从unity到unreal4 虚幻4学习笔记 一 : ue4与vs studio、vs code开发环境的安装与配置
  10. 银心科技与黑萤科技达成战略合作,联合构建区块链数据库存储生态至高点