熟悉
西门子的人都知道,西门子PLC支持的语言很多,除了最基本的LAD、FBD、STL之外,还有很多在国内不是很常见的语言,其中包括GRAPH、SCL、CFC、SFC等等。
这些语言虽然不是很常见,但对于一些特定的场合却可以起到很重要的作用。今天我们就来说说GRAPH。
西门子系列PLC包括300、400、1500系列(除S7-1200外)均支持GRAPH指令,而S7-200系列虽然没有
GRAPH语言,但是却拥有GRAPH的缩减版,那就是步进命令,有过实际编程经验的朋友都知道,在一些特定的场合需要使用循环反复的步进指令,这个指令可以自己编写,也可以直接使用PLC内部的步进指令。
只是GRAPH语言比步进语言强大得多了,所以西门子自300PLC开始,专门做了一个插件(升级包),该插件的授权需要在STEP7软件的基础上额外购买。
博途软件因为系统软件的高度集成化,所以GRAPH也集成在了博途软件里,所以安装过博途软件的朋友可以直接在博途里使用该语言编写300/400/1500系列PLC的程序,下面用一个简单的例子来说明GRAPH指令的应用。
假设,我们需要做一个顺序控制的程序,程序分为4步,每步对应不同的生产工艺即不同的输出,每步以不同的脉冲命令作为使能条件。
步骤如下:
1)、电脑需要安装带仿真的博途软件
2)、打开软件,建立新项目
3)、添加一个新设备,这里选择cpu317-2dp,保存项目
4)、回到程序编辑区,点开“程序块” 双击创建一个FB,选择GRAPH语言,依次编写程序,图示:
5)、在程序里输入指令如图;
第一步,输出命令置位Q0.0
第二步,执行条件为I0.2,输出命令为置位Q0.1
第三步,执行条件为I0.3,输出命令为复位Q0.0和Q0.1
第四步,执行条件为I0.4,输出命令为结束该程序块
6)、编写完程序后,回到OB1中调用FB1,系统会要求生成一个背景数据块,我采用默认数据块DB1,调用完程序后,我们填写FB1管角,仅需要填写第一个和第二个;第一个是中止功能块FB1命令,第二个是执行FB1功能块,也就是程序里第一步的执行条件。
7)、编译,如果没有问题就可以打开仿真,并下载到PLC里
8)、将PLC打到RUN模式,然后将测试的输入输出加到仿真里。
9)、然后测试,先后将I0.1,I0.2,I0.3,I0.4激活,可以看到输出也发生了变化。
其实GRAPH里面除了文中所述的步进指令外,还有其他的功能,其功能完全可以实现各种复杂的功能。