首页 理论教育 指令语句编程:PAC编程基本教程及应用示例

指令语句编程:PAC编程基本教程及应用示例

时间:2023-10-26 理论教育 版权反馈
【摘要】:语句编程的适应性强表现在很多情况下可以跟梯形图指令或功能块互换,这就是指令语句编程。图19-12 语句编程完成的增减计数还有一个比较有趣的例子是脉冲前沿执行的OSRI功能块和脉冲后沿执行的OSFI功能块,同样是前面章节的例子,如图19-13所示。举一反三,指令的语句编程,只要是在梯形图中具有组态页面的,都可以在线监视和修改,请尝试采用上述MSG指令组态的方式来操作。

指令语句编程:PAC编程基本教程及应用示例

语句编程的适应性强表现在很多情况下可以跟梯形图指令或功能块互换,这就是指令语句编程。我们先来看看两个熟悉的例子,了解语句编程与梯形图指令或功能块的互换关系。

关于增减计数器功能块的操作,如图19-11所示。

978-7-111-36030-8-Chapter19-11.jpg

图19-11 增减计数器功能块

若换用语句编程来完成相同的动作,如图19-12所示。语句执行的结果与增减计数器功能块是一样的。

被命名为CTUD_01的计数器结构标签被赋值语句逐个赋值,有的是立即数的赋值,有的是标签的赋值,等同于功能块中的数据连接。然后,一条指令语句CTUD(CTUD_01)直接指定了功能块。

978-7-111-36030-8-Chapter19-12.jpg

图19-12 语句编程完成的增减计数

还有一个比较有趣的例子是脉冲前沿执行的OSRI功能块和脉冲后沿执行的OSFI功能块,同样是前面章节的例子,如图19-13所示。

978-7-111-36030-8-Chapter19-13.jpg

图19-13 前沿触发和后沿触发的功能块

编写成语句,即为如图19-14所示。两条赋值语句分别将外部的标签与功能块的参数关联,功能块用代码OSRI和OSFI加上括号中指定的功能块结构数据标签即可。

978-7-111-36030-8-Chapter19-14.jpg

图19-14 语句编程完成的前沿触发和后沿触发

指令语句编程虽然是一条指令语句便指定了执行动作和执行对象,但是围绕这条指令的执行却需要一些相关的数据处理,所以指令语句一般是不会单独存在的。但是相关数据处理的方式是不同的,以上的两个例子是最常见的赋值语句。

无须相关数据的处理,在梯形图指令的互换中最常见的就是调用子例程指令JSR,如图19-15所示的梯级逻辑。若使用语句编程实现,就是如图19-16所示的语句结构。这样的语句通常在SFC的步中出现,以实现调用一个子例程。可以看到,一条指令在此只是一条语句,括号中便是指令的参数,如果指令有多个参数,则顺延排列在圆括号中。譬如说,调用子例程如果有带入参数和带出参数,就顺延排列在例程名称之后,这正是我们在梯形图指令中所做的参数设定。

978-7-111-36030-8-Chapter19-15.jpg(www.xing528.com)

图19-15 调用子例程指令JSR的梯级逻辑

978-7-111-36030-8-Chapter19-16.jpg

图19-16 语句编程实现的子例程调用

即使是较为复杂的指令,例如MSG指令的执行,同样可以由语句编程来实现,如图19-17所示,将令MSG指令反复地执行,若改为语句编程,如图19-18所示。看上去语句编程是非常简单的,参数只有一个,梯形图的MSG指令也只有MESSAGE结构数据标签一个参数。

978-7-111-36030-8-Chapter19-17.jpg

图19-17 MSG指令的执行由梯形图逻辑来实现

978-7-111-36030-8-Chapter19-18.jpg

图19-18 语句编程实现的MSG执行

但是,MSG指令除了编写执行的逻辑外,还需要对指令的执行内容进行组态,不但要组态访问对象的数据标签,还要组态通信路径和连接方式,这些都需要通过组态页面来实施。语句编程方式又是如何进入到组态的页面呢?这在离线文件中是不能操作的,只有将项目下载到控制器,处于在线监视状态才有可能。如图19-19所示,连接在线的控制器项目,在语句编程部分选中MSG指令执行语句的结构数据标签MSG_Text,点击右键,选择Con-figure“MSG_Text”,点击便可进入MSG指令的组态页面了,可方便地在线进行监视和修改。

978-7-111-36030-8-Chapter19-19.jpg

图19-19 在线对MSG组态

在梯形图逻辑编程的MSG指令不管是在线还是离线,都有一个组态页面提供给我们去完成所有的有关通信的组态。语句编程如果想在离线时进行通信组态,不得不到数据库的MESSAGE结构标签中去设置,这的确不够直观,只有对MSG指令和MESSAGE结构数据标签相当熟悉和了解才能找到相应的参数。在这种情况下,我建议借助于梯形图指令对这个MSG的结构数据标签完成组态,不管是梯形逻辑执行的MSG还是语句执行代码执行的都是一样。

举一反三,指令的语句编程,只要是在梯形图中具有组态页面的,都可以在线监视和修改,请尝试采用上述MSG指令组态的方式来操作。

语句编程还有一点值得注意的是,只要被扫描到,满足条件的语句就会被执行,对于梯形图中需要触发才能执行的指令,在结构语句中很可能每次扫描都会执行,要确保惟一性操作,就要特别地编写OSRI或OSFI指令来给予限制。这也是语句编程的不同之处。

语句编程最大的特点就是适应性强,可以编写出很多功能代码,代替指令或功能块的实现,执行速度也足够快,可惜直观性不够,尤其是遇到大量数据需要组态时,离线无法提供一个直观的组态页面。从这一点来看,指令和功能块的优势便更为明显,MSG指令就是一个很说明问题的例子。在PAC控制器中组合梯形图、功能块和语句编程的特长来运用,是Logix控制器的产品优势之一。

当用语句编程互换梯形图指令或者功能块时,是用梯形图指令互换,还是用功能块互换,应该查看在线指令帮助文件,那里列举了互换的关系。尽管我们说语句编程就是将梯形图指令或功能块的代码加上括号内的参数组成,但实际上究竟是互换梯形图指令还是互换功能块是不能主观臆测的,例如宽脉冲转为窄脉冲的单脉冲触发,语句编程是只能跟功能块互换而不能跟梯形图指令互换的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈