网站首页 > 技术文章 正文
GRAPH 编程
1.S7-GRAPH简介
相对于西门子 PLC 的其它类型编程语言,S7-GRAPH 与计算机高级编程语言有着非常相近的特性,只要使用者接触过 PASCAL 或者 VB 编
程语言,实现 S7-GRAPH 的快速入门是非常容易的。
1)S7-GRAPH具有以下特点:
- 适用于顺序控制程序
- 符合国际标准IEC 61131-3
- PLCopen基础级认证
- 适用于 SIMATIC S7-300 (推荐CPU314以上), S7-400, S7-1500, C7 and WinAC
2)S7-GRAPH针对顺序控制程序做了优化处理,它不仅仅具有 PLC 典型的元素(例如 输入/输出,定时器,计数器),而且增加了如下概念:
- 多个顺控器
- 步骤
- 每个步骤地动作
- 转换条件
- 分支条件
- 逻辑互锁
- 监控条件
- 事件触发功能
- 切换运行模式:手动、自动及点动模式
2.S7-GRAPH 的安装与使用
STEP7 Professional 版包括了S7-GRAPH 的软件包及授权,安装即可。在 S7 程序中,S7-GRAPH 块可以与其它 STEP7 编程语言生成的块互相调用。S7-GRAPH 生成的块也可以作为库文件被其它语言引用。
3.TIA portal中不同型号PLC使用GRAPH的可行性
博途软件本身已经集成GRAPH语言包。因为V11以上才支持S7-300/400,V12以上支持S7-1500,根据软件的产品发布通知总结如下:
- S7-300/400从STEP 7 Professional V11开始支持使用GRAPH语言
- S7-1200不支持使用GRAPH
- S7-1500从STEP 7 Professional V12 SP1开始支持使用GRAPH
下面以实际案例来说明Graph 流程:
不管是搞 PLC 项目开发,还是后续的维护,都有个麻烦事儿,那就是设备会莫名其妙地不工作。通常来说,有经验的 PLC 工程师会把报警写得挺详细,可还是难免会有疏漏。这时候,咱们该咋补救呢?接下来,给大伙讲讲一个挺有意思的应用,能把 PLC 流程在 HMI 上显示出来。只要设备停下,就能在 HMI 上实时显示停在哪一步,这一步是干啥的,需要啥条件。调试人员能省好多联机的时间,就算是不太会用 PLC 的人也能做个简单判断。
下面有个实现步骤,来达成这个功能。1)先创建一个 Graph 流程的 FB 块,用 FB 块来进行流程图的编程,打开 FB 功能块,然后在编辑菜单里勾选像图里那样的“从 HMI 显示/访问内部参数”
把 graph 功能块打开,然后做一下设置
2)在 HMI 里新弄一个画面,加一个控件叫“GRAPH 总览”,就像下面图里那样
添加控件
3)添加一个画面 4 ,然后在画面 4 里添加一个控件叫“PLC 代码视图”
添加PLC代码视图
4)给控件做配置,把变量连接到对应的 FB 块的背景块里的“OFF_SQ”
连接GRAPH块的变量
5)在事件里编辑“PLC 代码视图按钮单击”,这么做的目的是,出问题的时候按一下这个按钮就能直接跳到对应的画面四,并且在画面四中能显示出对应的 PLC 代码。
PLC代码编辑
6)执行的结果就像下面的图那样,停在了第二步,原因是 M20.0 这个信号没满足条件。
监视结果
好了,这个例子是个挺简单的实例。PLC 工程师在编程的时候应该把变量名、步号的名称这些都考虑到,这样才能有想要的效果。
西门子TIA博途PLC技巧:如何在HMI上显示PLC代码流程 PLC论坛-全力打造可编程控制器专业技术论坛 -
西门子TIA博途PLC技巧:如何在HMI上显示PLC代码流程
http://bbs.plcjs.com/forum.php?mod=viewthread&tid=505649&fromuid=1
(出处: PLC论坛-全力打造可编程控制器专业技术论坛)
猜你喜欢
- 2025-06-29 PLC中的梯形图(LAD)与结构化编程语言(SCL)的对比?
- 2025-06-29 PLC编程语言有哪几种?每种编程语言你都了解吗?
- 2025-06-29 [信捷PLC] 信捷PLC之C函数编程(一)
- 2025-06-29 PLC编程中常用的编程语言有哪些
- 2025-06-29 你要的西门子博途SCL指令,终于找齐了
- 2025-06-29 如何同时学会两门编程语言?
- 2025-06-29 软网推荐:请个多功能纯文本管理助手
- 2025-06-29 25种著名编程语言编写你的第一个程序Hello World
- 2025-06-29 PLC中ST语言的几种程序流程控制语句,温故而知新吧
- 2025-06-29 结构化程序设计方法
- 最近发表
-
- Qt编程进阶(63):Qt Quick高级控件的使用
- Qt编程进阶(47):QML鼠标事件处理(qt编程难不难)
- 使用Xamarin和Visual Studio开发Android可穿戴设备应用
- Qt使用教程:创建Qt Quick应用程序(三)
- QML性能优化 | 常见界面元素优化(qml布局自适应大小)
- Qt使用教程:创建移动应用程序(二)
- Qt Quick 多媒体开发播放音乐和视频
- Qt使用教程:创建Qt Quick UI表单(三)
- 如何将 Qt 3D 渲染与 Qt Quick 2D 元素结合创建太阳系行星元素?
- QML控件:TextInput, TextField, TextEdit, TextArea用法及自定义
- 标签列表
-
- axure 注册码 (25)
- exploit db (21)
- mutex_lock (30)
- oracleclient (27)
- nfs (25)
- springbatch (28)
- oracle数据库备份 (25)
- dir (26)
- connectionstring属性尚未初始化 (23)
- output (32)
- panel滚动条 (28)
- centos 5 4 (23)
- sql学习 (33)
- c 数组 (33)
- pascal语言教程 (23)
- ppt 教程 (35)
- java7 (24)
- 自适应网站制作 (32)
- server服务自动停止 (25)
- 超链接去掉下划线 (34)
- 什么是堆栈 (22)
- map entry (25)
- ubuntu装qq (25)
- outputstreamwriter (26)
- fill_parent (22)